]>
Commit | Line | Data |
---|---|---|
1 | #!/bin/sh | |
2 | set -e | |
3 | ||
4 | dir=$(cd "$(dirname "$0")"; pwd) | |
5 | rpmdir=$(rpm -E %_topdir) | |
6 | dist=th | |
7 | ||
8 | pkgs_head=" | |
9 | dahdi-linux | |
10 | e1000e | |
11 | igb | |
12 | ipset | |
13 | ixgbe | |
14 | linuxrdac | |
15 | lirc | |
16 | madwifi-ng | |
17 | open-vm-tools | |
18 | r8168 | |
19 | VirtualBox | |
20 | xorg-driver-video-fglrx | |
21 | xorg-driver-video-nvidia | |
22 | xtables-addons | |
23 | " | |
24 | ||
25 | pkgs_longterm=" | |
26 | iscsitarget | |
27 | openvswitch | |
28 | xorg-driver-video-nvidia-legacy3 | |
29 | " | |
30 | ||
31 | # autotag from rpm-build-macros | |
32 | # displays latest used tag for a specfile | |
33 | autotag() { | |
34 | local out spec pkg | |
35 | for spec in "$@"; do | |
36 | # strip branches | |
37 | pkg=${spec%:*} | |
38 | # ensure package ends with .spec | |
39 | spec=${pkg%.spec}.spec | |
40 | # and pkg without subdir | |
41 | pkg=${pkg#*/} | |
42 | # or .ext | |
43 | pkg=${pkg%%.spec} | |
44 | out=$(cvs status -v $spec | awk "!/Sticky/&&/auto-$dist-$pkg-$alt_kernel/{if (!a++) print \$1}") | |
45 | echo "$spec:$out" | |
46 | done | |
47 | } | |
48 | ||
49 | get_last_tags() { | |
50 | local pkg spec | |
51 | ||
52 | echo >&2 "Fetching package tags: $*..." | |
53 | for pkg in "$@"; do | |
54 | echo >&2 "$pkg... " | |
55 | if [ ! -e $pkg/$pkg.spec ]; then | |
56 | $rpmdir/builder -g $pkg -ns -r HEAD 1>&2 | |
57 | fi | |
58 | if [ ! -e $pkg/$pkg.spec ]; then | |
59 | # just print it out, to fallback to base pkg name | |
60 | echo "$pkg" | |
61 | else | |
62 | spec=$(autotag $pkg/$pkg.spec) | |
63 | spec=${spec#*/} | |
64 | echo >&2 "... $spec" | |
65 | echo $spec | |
66 | fi | |
67 | done | |
68 | } | |
69 | ||
70 | cd $rpmdir | |
71 | case "$1" in | |
72 | head) | |
73 | kernel=$(get_last_tags kernel) | |
74 | kernel=$(echo ${kernel#*auto-??-} | tr _ .) | |
75 | specs="" | |
76 | for pkg in $pkgs_head; do | |
77 | echo >&2 "Rebuilding $pkg..." | |
78 | $rpmdir/builder -g $pkg -ns | |
79 | $rpmdir/relup.sh -m "rebuild for $kernel" -ui $pkg/$pkg.spec | |
80 | specs="$specs $pkg.spec" | |
81 | done | |
82 | $dir/make-request.sh -r -d $dist $specs | |
83 | ;; | |
84 | longterm) | |
85 | kernel=$(alt_kernel=longterm get_last_tags kernel) | |
86 | kernel=$(echo ${kernel#*auto-??-} | tr _ .) | |
87 | specs="" | |
88 | for pkg in $pkgs_longterm; do | |
89 | echo >&2 "Rebuilding $pkg..." | |
90 | $rpmdir/builder -g $pkg -ns | |
91 | $rpmdir/relup.sh -m "rebuild for $kernel" -ui $pkg/$pkg.spec | |
92 | specs="$specs $pkg.spec" | |
93 | done | |
94 | $dir/make-request.sh -r -d $dist --without kernel $specs | |
95 | ||
96 | specs=$(get_last_tags $pkgs_head $pkgs_longterm) | |
97 | $dir/make-request.sh -r -d $dist --kernel longterm --without userspace $specs | |
98 | ;; | |
99 | *) | |
100 | # try to parse all args, filling them with last autotag | |
101 | while [ $# -gt 0 ]; do | |
102 | case "$1" in | |
103 | --kernel|--with|--without) | |
104 | args="$1 $2" | |
105 | shift | |
106 | ;; | |
107 | -*) | |
108 | args="$args $1" | |
109 | ;; | |
110 | *) | |
111 | specs="$specs $1" | |
112 | ;; | |
113 | esac | |
114 | shift | |
115 | done | |
116 | specs=$(get_last_tags $specs) | |
117 | $dir/make-request.sh -r -d $dist $args $specs | |
118 | ;; | |
119 | esac |