2 # script to run after "release bump" style change.
3 # takes Release from spec and creates commit with message
4 # groups similiar commits together.
13 if [ -x /usr/bin/rpm-specdump ]; then
14 rpm_dump=$(rpm-specdump "$specfile" 2>&1) || success="n"
16 rpm_dump=$(rpm --specfile "$specfile" --define 'prep %dump' -q 2>&1) || success="n"
18 if [ "$success" != "y" ]; then
20 echo >&2 "You need icon files being present in SOURCES."
27 ${0##*/} [-i] [-g] [-u] [-t|-n] [-m <MESSAGE>] <SPECLIST>
31 Try to increment package release
33 get packages if missing, do nothing else
35 update packages (git pull)
37 Test mode (dry-run). do not commit
39 Specify commit message
45 rel=$(awk '/^%define[ ]+_?rel[ ]+/{print $NF}' $specfile)
46 if [ -z "$rel" ]; then
47 dump=$(get_dump "$specfile")
48 rel=$(echo "$dump" | awk '$2~/^(PACKAGE_)?RELEASE$/{print $NF; exit}')
58 s/^\(%define[ \t]\+_\?rel[ \t]\+\)$rel\$/\1$newrel/
59 s/^\(Release:[ \t]\+\)$rel\$/\1$newrel/
66 rel=$(expr ${release} + 1)
78 # - PACKAGE/PACKAGE.spec
79 # - ./PACKAGE/PACKAGE.spec
80 # - rpm/PACKAGE/PACKAGE
81 # - rpm/PACKAGE/PACKAGE.spec
82 # - ./rpm/PACKAGE/PACKAGE.spec
85 local specfile="${1%/}" package
88 specfile=${specfile%:*}
90 specfile=${specfile##*/}
92 package=${specfile%.spec}
98 local specfile="${1%/}" branch
100 branch=${specfile#*:}
102 if [ "$branch" != "$specfile" ]; then
109 if [ ! -x /usr/bin/getopt ]; then
110 echo >&1 "You need to install util-linux to use relup.sh"
114 t=$(getopt -o 'm:inguth' -n "${0##*/}" -- "$@") || exit $?
115 # Note the quotes around `$t': they are essential!
145 echo 2>&1 "Internal error: [$1] not recognized!"
152 topdir=$(rpm -E '%{_topdir}')
159 branch=$(get_branch "$pkg")
160 # pkg: package %{name}
161 pkg=$(package_name "$pkg")
163 # spec: package/package.spec
164 spec=$(rpm -D "name $pkg" -E '%{_specdir}/%{name}.spec')
165 spec=${spec#$topdir/}
170 # specname: only spec filename
174 if [ -n "$branch" ]; then
175 echo "$pkg:$branch ..."
181 [ "$get" = 1 -a -d "$pkgdir" ] && continue
183 if [ "$update" = "1" -o "$get" = "1" ]; then
184 if [ -n "$branch" ]; then
185 ./builder -g -ns "$spec" -r $branch
187 ./builder -g -ns "$spec"
191 [ "$get" = 1 ] && continue
194 rel=$(get_release "$spec")
195 if [ "$inc" = 1 ]; then
196 if [[ $rel = *%* ]]; then
198 newrel=$(bump_release ${rel%%%*})
199 set_release "$spec" $rel "${newrel}%${relmacro}"
201 newrel=$(bump_release ${rel})
202 set_release "$spec" $rel $newrel
206 rel=$(get_release "$spec")
211 [ -n "$message" ] && msg="${msg}$message$n$n"
212 msg="${msg}Release ${rel%%%*} (by relup.sh)"
214 echo git commit -m "$msg" $spec
215 if [ "$test" != 1 ]; then
217 git commit -m "$msg" $specname