]>
Commit | Line | Data |
---|---|---|
dc29987d | 1 | #!/bin/bash |
3f7f205f | 2 | |
dc29987d | 3 | PKGS=" |
3f7f205f AM |
4 | kf5-extra-cmake-modules |
5 | kf5-attica | |
dc29987d | 6 | kf5-karchive |
3f7f205f AM |
7 | kf5-kcoreaddons |
8 | kf5-kauth | |
ed598251 | 9 | kf5-kcodecs |
ed598251 | 10 | kf5-kconfig |
dc29987d | 11 | kf5-kwidgetsaddons |
ed598251 | 12 | kf5-kcompletion |
ed598251 | 13 | kf5-ki18n |
ed598251 | 14 | kf5-kdoctools |
ed598251 | 15 | kf5-kguiaddons |
ed598251 | 16 | kf5-kconfigwidgets |
dc29987d WF |
17 | kf5-kdbusaddons |
18 | kf5-kwindowsystem | |
19 | kf5-kcrash | |
20 | kf5-kglobalaccel | |
21 | kf5-kitemviews | |
ed598251 | 22 | kf5-kiconthemes |
dc29987d | 23 | kf5-kservice |
ed598251 | 24 | kf5-sonnet |
ed598251 AM |
25 | kf5-ktextwidgets |
26 | kf5-kxmlgui | |
27 | kf5-kbookmarks | |
dc29987d WF |
28 | kf5-kjobwidgets |
29 | kf5-knotifications | |
30 | kf5-kwallet | |
31 | kf5-solid | |
ed598251 | 32 | kf5-kio |
dc29987d WF |
33 | kf5-kfilemetadata |
34 | kf5-kidletime | |
35 | kf5-baloo | |
36 | kf5-bluez-qt | |
37 | kf5-breeze-icons | |
38 | kf5-frameworkintegration | |
91557ccd | 39 | kf5-kpackage |
ed598251 | 40 | kf5-kdeclarative |
ed598251 AM |
41 | kf5-kcmutils |
42 | kf5-kactivities | |
dc29987d | 43 | kf5-kactivities-stats |
f81dcb5f | 44 | kf5-kapidox |
dc29987d WF |
45 | kf5-kinit |
46 | kf5-kded | |
47 | kf5-kparts | |
f81dcb5f | 48 | kf5-kdewebkit |
dc29987d | 49 | kf5-kplotting |
f81dcb5f | 50 | kf5-kdesignerplugin |
dc29987d | 51 | kf5-kemoticons |
f81dcb5f AM |
52 | kf5-kunitconversion |
53 | kf5-kdelibs4support | |
dc29987d WF |
54 | kf5-kpty |
55 | kf5-kdesu | |
56 | kf5-kdnssd | |
57 | kf5-kjs | |
58 | kf5-khtml | |
59 | kf5-kimageformats | |
60 | kf5-kirigami2 | |
61 | kf5-kitemmodels | |
f81dcb5f AM |
62 | kf5-kjsembed |
63 | kf5-kmediaplayer | |
dc29987d WF |
64 | kf5-knewstuff |
65 | kf5-knotifyconfig | |
f81dcb5f | 66 | kf5-kpeople |
dc29987d WF |
67 | kf5-kross |
68 | kf5-plasma-framework | |
69 | kf5-threadweaver | |
70 | kf5-krunner | |
71 | kf5-syntax-highlighting | |
72 | kf5-ktexteditor | |
73 | kf5-kwayland | |
f81dcb5f | 74 | kf5-kxmlrpcclient |
f81dcb5f AM |
75 | kf5-modemmanager-qt |
76 | kf5-networkmanager-qt | |
dc29987d WF |
77 | kf5-prison |
78 | kf5-qqc2-desktop-style | |
3f7f205f | 79 | " |
1556d225 | 80 | |
dc29987d WF |
81 | newver="5.40.0" |
82 | topdir=$(rpm -E '%{_topdir}') | |
83 | ||
84 | n="$(echo -e '\nn')" | |
85 | n="${n%%n}" | |
86 | test=0 | |
87 | get=0 | |
88 | ||
89 | get_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 | ||
99 | set_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 | ||
109 | set_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 | ||
119 | set_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 | ||
128 | while [ -n "$1" ] | |
129 | do | |
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 | |
150 | done | |
151 | ||
152 | cd "$topdir" | |
153 | for 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 | |
210 | done |