@@ -7,7 +7,7 @@ url="https://github.com/samba-in-kubernetes/sambacc"
7
7
bdir=" /var/tmp/build/sambacc"
8
8
distname=" ${SAMBACC_DISTNAME} "
9
9
# use SAMBACC_BUILD_TASKS to limit build tasks if needed
10
- tasks=" ${SAMBACC_BUILD_TASKS:- task_test_tox task_py_build task_gen_sums} "
10
+ tasks=" ${SAMBACC_BUILD_TASKS:- task_test_tox task_py_build task_rpm_build task_gen_sums} "
11
11
12
12
info () {
13
13
echo " [[sambacc/build]] $* "
@@ -48,6 +48,13 @@ chk() {
48
48
info " skipping task: $1 "
49
49
}
50
50
51
+ get_distdir () {
52
+ dname=" $1 "
53
+ ddir=" /srv/dist/$dname "
54
+ mkdir -p " $ddir " > /dev/null
55
+ echo " $ddir "
56
+ }
57
+
51
58
setup_fetch () {
52
59
# allow customizing the repo on the cli or environment
53
60
if [ " $1 " ]; then
@@ -85,20 +92,51 @@ task_py_build() {
85
92
if [ " $distname " ]; then
86
93
# building for a given "distribution name" - meaning this could be
87
94
# consumed externally
88
- distdir=" /srv/dist/ $ distname"
95
+ distdir=" $( get_distdir " $ distname" ) "
89
96
info " using dist dir: $distdir "
90
- mkdir -p " $distdir "
91
97
$python -m build --outdir " $distdir "
92
98
else
93
99
# just run the build as a test to make sure it succeeds
94
100
$python -m build
95
101
fi
96
102
}
97
103
104
+ task_rpm_build () {
105
+ if ! [ " $distname " ]; then
106
+ return
107
+ fi
108
+ if ! command -v rpmbuild ; then
109
+ info " rpmbuild not found ... skipping"
110
+ return
111
+ fi
112
+
113
+ distdir=" $( get_distdir " $distname " ) "
114
+ info " using dist dir: $distdir "
115
+ for spkg in " $distdir /sambacc" -* .tar.gz; do
116
+ info " RPM build for: ${spkg} "
117
+ ver=" $( basename " ${spkg} " | sed -e ' s/^sambacc-//' -e ' s/.tar.gz$//' ) "
118
+ if echo " $ver " | grep -q " +" ; then
119
+ rversion=" $( echo " ${ver} " | sed -e ' s/\.dev/~/' -e ' s/+/./' ) "
120
+ else
121
+ rversion=" $ver "
122
+ fi
123
+ info " Using rpm-version=${rversion} pkg-version=${ver} "
124
+ rpmbuild --nocheck -ta \
125
+ -D " pversion ${ver} " -D" rversion ${rversion} " \
126
+ -D " _rpmdir ${distdir} /RPMS" \
127
+ -D " _srcrpmdir ${distdir} /SRPMS" \
128
+ " $spkg "
129
+ done
130
+ }
131
+
98
132
task_gen_sums () {
99
133
if [ " $distname " ]; then
100
134
info " generating checksums"
101
- (cd " $distdir " && sha512sum * > " $distdir /sha512sums" )
135
+ distdir=" $( get_distdir " $distname " ) "
136
+ info " using dist dir: $distdir "
137
+ (cd " $distdir " && \
138
+ find . -type f -not -name ' sha*sums' -print0 | \
139
+ xargs -0 sha512sum > " $distdir /sha512sums" )
102
140
fi
103
141
}
104
142
@@ -119,4 +157,5 @@ setup_update "$1"
119
157
120
158
chk task_test_tox
121
159
chk task_py_build
160
+ chk task_rpm_build
122
161
chk task_gen_sums
0 commit comments