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