]> git.pld-linux.org Git - packages/rpm-build-tools.git/blame - update-kf5.sh
When tripping over a GIT_ var, give a useful error
[packages/rpm-build-tools.git] / update-kf5.sh
CommitLineData
dc29987d 1#!/bin/bash
3f7f205f 2
dc29987d 3PKGS="
3f7f205f
AM
4kf5-extra-cmake-modules
5kf5-attica
dc29987d 6kf5-karchive
3f7f205f
AM
7kf5-kcoreaddons
8kf5-kauth
ed598251 9kf5-kcodecs
ed598251 10kf5-kconfig
dc29987d 11kf5-kwidgetsaddons
ed598251 12kf5-kcompletion
ed598251 13kf5-ki18n
ed598251 14kf5-kdoctools
ed598251 15kf5-kguiaddons
ed598251 16kf5-kconfigwidgets
dc29987d
WF
17kf5-kdbusaddons
18kf5-kwindowsystem
19kf5-kcrash
20kf5-kglobalaccel
21kf5-kitemviews
ed598251 22kf5-kiconthemes
dc29987d 23kf5-kservice
ed598251 24kf5-sonnet
ed598251
AM
25kf5-ktextwidgets
26kf5-kxmlgui
27kf5-kbookmarks
dc29987d
WF
28kf5-kjobwidgets
29kf5-knotifications
30kf5-kwallet
31kf5-solid
ed598251 32kf5-kio
dc29987d
WF
33kf5-kfilemetadata
34kf5-kidletime
35kf5-baloo
36kf5-bluez-qt
37kf5-breeze-icons
38kf5-frameworkintegration
91557ccd 39kf5-kpackage
ed598251 40kf5-kdeclarative
ed598251
AM
41kf5-kcmutils
42kf5-kactivities
dc29987d 43kf5-kactivities-stats
f81dcb5f 44kf5-kapidox
dc29987d
WF
45kf5-kinit
46kf5-kded
47kf5-kparts
f81dcb5f 48kf5-kdewebkit
dc29987d 49kf5-kplotting
f81dcb5f 50kf5-kdesignerplugin
dc29987d 51kf5-kemoticons
f81dcb5f
AM
52kf5-kunitconversion
53kf5-kdelibs4support
dc29987d
WF
54kf5-kpty
55kf5-kdesu
56kf5-kdnssd
57kf5-kjs
58kf5-khtml
59kf5-kimageformats
60kf5-kirigami2
61kf5-kitemmodels
f81dcb5f
AM
62kf5-kjsembed
63kf5-kmediaplayer
dc29987d
WF
64kf5-knewstuff
65kf5-knotifyconfig
f81dcb5f 66kf5-kpeople
dc29987d
WF
67kf5-kross
68kf5-plasma-framework
69kf5-threadweaver
70kf5-krunner
71kf5-syntax-highlighting
72kf5-ktexteditor
73kf5-kwayland
f81dcb5f 74kf5-kxmlrpcclient
f81dcb5f
AM
75kf5-modemmanager-qt
76kf5-networkmanager-qt
dc29987d
WF
77kf5-prison
78kf5-qqc2-desktop-style
3f7f205f 79"
1556d225 80
dc29987d
WF
81newver="5.40.0"
82topdir=$(rpm -E '%{_topdir}')
83
84n="$(echo -e '\nn')"
85n="${n%%n}"
86test=0
87get=0
88
89get_dump() {
90 local specfile="$1"
91 if ! out=$(rpm --specfile "$specfile" --define 'prep %dump' -q 2>&1); then
92 echo >&2 "$out"
93 echo >&2 "You need icon files being present in SOURCES."
94 exit 1
95 fi
96 echo "$out"
97}
98
99set_release() {
100 local specfile="$1"
101 local rel="$2"
102 local newrel="$3"
103 sed -i -e "
104 s/^\(%define[ \t]\+_\?rel[ \t]\+\)$rel\$/\1$newrel/
105 s/^\(Release:[ \t]\+\)$rel\$/\1$newrel/
106 " $specfile
107}
108
109set_version() {
110 local specfile="$1"
111 local rel="$2"
112 local newrel="$3"
113 sed -i -e "
114 s/^\(%define[ \t]\+_\?ver[ \t]\+\)$rel\$/\1$newrel/
115 s/^\(Version:[ \t]\+\)$rel\$/\1$newrel/
116 " $specfile
117}
118
119set_framever() {
120 local specfile="$1"
121 local rel="$2"
122 local newrel="$3"
123 sed -i -e "
124 s/^\(%define[ \t]\+_\?kdeframever[ \t]\+\)$rel\$/\1$newrel/
125 " $specfile
126}
127
128while [ -n "$1" ]
129do
130 case "$1" in
131 "--help")
132 echo "Usage: $0 [--help] [--get] [--test] [--message message] newversion"
133 exit 0
134 ;;
135 "--get")
136 get=1
137 ;;
138 "--test")
139 test=1
140 ;;
141 "--message")
142 shift
143 message="$1"
144 ;;
145 *)
146 newver="$1"
147 ;;
148 esac
149 shift
150done
151
152cd "$topdir"
153for pkg in $PKGS ; do
154 # spec: package/package.spec
155 spec=$(rpm -D "name $pkg" -E '%{_specdir}/%{name}.spec')
156 spec=${spec#$topdir/}
157
158 # pkgdir: package/
159 pkgdir=${spec%/*}
160
161 # specname: only spec filename
162 specname=${spec##*/}
163
164 # start real work
165 echo "$pkg ..."
166
167 # get package
168 [ "$get" = 1 -a -d "$pkgdir" ] && continue
169
170 if [ "$update" = "1" -o "$get" = "1" ]; then
171 ./builder -g -ns "$spec"
172 fi
173
174 [ "$get" = 1 ] && continue
175
176 # update .spec files
177 dump=$(get_dump "$spec")
178
179 ver=$(awk '/^%define[ ]+_?rel[ ]+/{print $NF}' $spec)
180 if [ -z "$ver" ]; then
181 ver=$(echo "$dump" | awk '/PACKAGE_VERSION/{print $NF; exit}')
182 fi
183 rel=$(awk '/^%define[ ]+_?rel[ ]+/{print $NF}' $spec)
184 if [ -z "$rel" ]; then
185 rel=$(echo "$dump" | awk '/PACKAGE_RELEASE/{print $NF; exit}')
186 fi
187 framever=$(awk '/^%define[ ]+_?kdeframever[ ]+/{print $NF}' $spec)
188 newframever=$(echo "$newver" | awk -F. '{printf "%s.%s", $1, $2}')
189
190 echo $ver-$rel
191
192 set_release "$spec" $rel "1"
193 set_version "$spec" $ver $newver
194 set_framever "$spec" $framever $newframever
195
196 # update md5sums
197 ./builder -U "$spec"
198
199 # commit the changes
200 msg=""
201 [ -n "$message" ] && msg="$msg- $message$n"
838a8561 202 msg="$msg- updated to $newver (by update-kf5.sh)"
dc29987d
WF
203 echo git commit -m "$msg" $spec
204 if [ "$test" != 1 ]; then
205 cd $pkgdir
206 git commit -m "$msg" $specname
207 git push
208 cd ..
209 fi
210done
This page took 0.061987 seconds and 4 git commands to generate.