]> git.pld-linux.org Git - projects/pld-builder.new.git/blame - client/rebuild-th-kernel.sh
unset CDPATH instead
[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 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 27pkgs_longterm=
e80b5fcd
ER
28
29# autotag from rpm-build-macros
30# displays latest used tag for a specfile
31autotag() {
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
55get_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 80cd $rpmdir
0916169e 81case "$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 ;;
131esac
This page took 0.273195 seconds and 4 git commands to generate.