]>
Commit | Line | Data |
---|---|---|
0916169e | 1 | #!/bin/sh |
98f4b7db | 2 | set -e |
0916169e | 3 | |
e80b5fcd ER |
4 | dir=$(cd "$(dirname "$0")"; pwd) |
5 | rpmdir=$(rpm -E %_topdir) | |
6 | dist=th | |
7 | ||
8 | pkgs_head=" | |
9 | dahdi-linux | |
a6889455 JR |
10 | e1000e |
11 | igb | |
e600b426 | 12 | ipset |
a6889455 | 13 | ixgbe |
6655c4d8 | 14 | lin_tape |
a6889455 | 15 | linuxrdac |
e600b426 JR |
16 | lirc |
17 | madwifi-ng | |
18 | open-vm-tools | |
19 | r8168 | |
20 | VirtualBox | |
21 | xorg-driver-video-fglrx | |
612a650b | 22 | xorg-driver-video-fglrx-legacy-12.x |
e600b426 JR |
23 | xorg-driver-video-nvidia |
24 | xtables-addons | |
e80b5fcd ER |
25 | " |
26 | ||
ac57a4f6 | 27 | pkgs_longterm= |
e80b5fcd ER |
28 | |
29 | # autotag from rpm-build-macros | |
30 | # displays latest used tag for a specfile | |
31 | autotag() { | |
5f0ba6b8 | 32 | local out spec pkg ref |
7f33ba6f | 33 | for spec in "$@"; do |
e80b5fcd | 34 | # strip branches |
7f33ba6f | 35 | pkg=${spec%:*} |
e80b5fcd | 36 | # ensure package ends with .spec |
7f33ba6f ER |
37 | spec=${pkg%.spec}.spec |
38 | # and pkg without subdir | |
39 | pkg=${pkg#*/} | |
40 | # or .ext | |
41 | pkg=${pkg%%.spec} | |
68a30f8a | 42 | cd $pkg |
113cb5b0 | 43 | git fetch --tags |
5f0ba6b8 JR |
44 | if [ -n "$alt_kernel" ]; then |
45 | ref="refs/tags/auto/${dist}/${pkg}-${alt_kernel}-[0-9]*" | |
46 | else | |
47 | ref="refs/tags/auto/${dist}/${pkg}-[0-9]*" | |
48 | fi | |
49 | out=$(git for-each-ref $ref --sort=-authordate --format='%(refname:short)' --count=1) | |
7f33ba6f | 50 | echo "$spec:$out" |
bb343a80 | 51 | cd - |
e80b5fcd ER |
52 | done |
53 | } | |
54 | ||
55 | get_last_tags() { | |
56 | local pkg spec | |
ea0b3fb4 ER |
57 | |
58 | echo >&2 "Fetching package tags: $*..." | |
59 | for pkg in "$@"; do | |
e80b5fcd | 60 | echo >&2 "$pkg... " |
ea0b3fb4 ER |
61 | if [ ! -e $pkg/$pkg.spec ]; then |
62 | $rpmdir/builder -g $pkg -ns -r HEAD 1>&2 | |
63 | fi | |
64 | if [ ! -e $pkg/$pkg.spec ]; then | |
65 | # just print it out, to fallback to base pkg name | |
66 | echo "$pkg" | |
67 | else | |
68 | spec=$(autotag $pkg/$pkg.spec) | |
7f33ba6f | 69 | spec=${spec#*/} |
ea0b3fb4 ER |
70 | echo >&2 "... $spec" |
71 | echo $spec | |
e80b5fcd | 72 | fi |
e80b5fcd ER |
73 | done |
74 | } | |
75 | ||
bb343a80 ER |
76 | # The HP-UX ksh and POSIX shell print the target directory to stdout |
77 | # if CDPATH is set. | |
78 | (unset CDPATH) >/dev/null 2>&1 && unset CDPATH | |
79 | ||
ea0b3fb4 | 80 | cd $rpmdir |
0916169e | 81 | case "$1" in |
0916169e | 82 | head) |
7f33ba6f | 83 | kernel=$(get_last_tags kernel) |
7cdd8ec7 | 84 | kernel=$(echo ${kernel#*auto/??/} | tr _ .) |
8e4d8772 | 85 | specs="" |
e80b5fcd | 86 | for pkg in $pkgs_head; do |
0cd8550e | 87 | echo >&2 "Rebuilding $pkg..." |
e80b5fcd | 88 | $rpmdir/builder -g $pkg -ns |
98f4b7db | 89 | $rpmdir/relup.sh -m "rebuild for $kernel" -ui $pkg/$pkg.spec |
8e4d8772 | 90 | specs="$specs $pkg.spec" |
0916169e | 91 | done |
de0df67d | 92 | $dir/make-request.sh -nd -r -d $dist $specs |
0916169e | 93 | ;; |
e80b5fcd | 94 | longterm) |
7f33ba6f | 95 | kernel=$(alt_kernel=longterm get_last_tags kernel) |
7cdd8ec7 | 96 | kernel=$(echo ${kernel#*auto/??/} | tr _ .) |
8e4d8772 | 97 | specs="" |
ac57a4f6 JR |
98 | if [ -n "$pkgs_longterm" ]; then |
99 | for pkg in $pkgs_longterm; do | |
100 | echo >&2 "Rebuilding $pkg..." | |
101 | $rpmdir/builder -g $pkg -ns | |
102 | $rpmdir/relup.sh -m "rebuild for $kernel" -ui $pkg/$pkg.spec | |
103 | specs="$specs $pkg.spec" | |
104 | done | |
105 | # first build with main pkg (userspace), later build from tag | |
106 | $dir/make-request.sh -nd -r -d $dist --without kernel $specs | |
107 | fi | |
e600b426 | 108 | specs=$(get_last_tags $pkgs_head $pkgs_longterm) |
de0df67d | 109 | $dir/make-request.sh -nd -r -d $dist --kernel longterm --without userspace $specs |
e80b5fcd | 110 | ;; |
0916169e | 111 | *) |
ea0b3fb4 ER |
112 | # try to parse all args, filling them with last autotag |
113 | while [ $# -gt 0 ]; do | |
114 | case "$1" in | |
115 | --kernel|--with|--without) | |
116 | args="$1 $2" | |
117 | shift | |
118 | ;; | |
119 | -*) | |
120 | args="$args $1" | |
121 | ;; | |
122 | *) | |
123 | specs="$specs $1" | |
124 | ;; | |
125 | esac | |
126 | shift | |
127 | done | |
128 | specs=$(get_last_tags $specs) | |
de0df67d | 129 | $dir/make-request.sh -nd -r -d $dist $args $specs |
0916169e AM |
130 | ;; |
131 | esac |