]> git.pld-linux.org Git - projects/pld-builder.new.git/blob - client/rebuild-th-kernel.sh
- batch make-request calls
[projects/pld-builder.new.git] / client / rebuild-th-kernel.sh
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
This page took 0.063311 seconds and 3 git commands to generate.