]> git.pld-linux.org Git - projects/pld-builder.new.git/blob - client/rebuild-th-kernel.sh
baac0b3bc99adba1ef79418b028b25351663a701
[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                 for pkg in $pkgs_head; do
76                         echo >&2 "Rebuilding $pkg..."
77                         $rpmdir/builder -g $pkg -ns
78                         $rpmdir/relup.sh -m "rebuild for $kernel" -ui $pkg/$pkg.spec
79                         $dir/make-request.sh -r -d th $pkg.spec
80                 done
81                 ;;
82         longterm)
83                 cd $rpmdir
84                 kernel=$(alt_kernel=longterm get_last_tags kernel)
85                 kernel=$(echo ${kernel#*auto-??-} | tr _ .)
86                 for pkg in $pkgs_longterm; do
87                         echo >&2 "Rebuilding $pkg..."
88                         $rpmdir/builder -g $pkg -ns
89                         $rpmdir/relup.sh -m "rebuild for $kernel" -ui $pkg/$pkg.spec
90                         $dir/make-request.sh -r -d th --without kernel $pkg.spec
91                 done
92                 specs=$(get_last_tags $pkgs_head $pkgs_longterm)
93                 for pkg in $specs; do
94                         echo >&2 "Rebuilding $pkg..."
95                         $dir/make-request.sh -r -d $dist --kernel longterm --without userspace $pkg
96                 done
97                 ;;
98         *)
99                 # try to parse all args, filling them with last autotag
100                 while [ $# -gt 0 ]; do
101                         case "$1" in
102                         --kernel|--with|--without)
103                                 args="$1 $2"
104                                 shift
105                                 ;;
106                         -*)
107                                 args="$args $1"
108                                 ;;
109                         *)
110                                 specs="$specs $1"
111                                 ;;
112                         esac
113                         shift
114                 done
115                 specs=$(get_last_tags $specs)
116                 $dir/make-request.sh -r -d $dist $args $specs
117                 ;;
118 esac
This page took 0.027813 seconds and 2 git commands to generate.