/[d-i]/trunk/scripts/buildscript
ViewVC logotype

Contents of /trunk/scripts/buildscript

Parent Directory Parent Directory | Revision Log Revision Log


Revision 32570 - (show annotations) (download)
Tue Nov 29 19:11:34 2005 UTC (7 years, 5 months ago) by joeyh
File size: 5909 byte(s)
packages-build is no more
1 #! /bin/bash
2 #
3 # Build debian-installer packages.
4 #
5 # *WARNING*
6 # This script is only intended for debian-installer development.
7 # It will not create a debian installer suitable for production use.
8 # *WARNING*
9 #
10
11 set -e
12 #set -x
13
14 # First, some shell functions.
15
16 # build debs and udebs
17 build ()
18 {
19 local _dir=$1
20 local _pkg=$(grep -sh "^Package: " ${_dir}/debian/control |sed -e 's/^Package: //' |xargs echo -n)
21 [ -n "$ROOTCMD" ] && local _rootcmd="-r$ROOTCMD"
22
23 pushd $_dir >/dev/null
24 dpkg-buildpackage -b -us -uc $_rootcmd #-nc
25 popd >/dev/null
26 return 0
27 }
28
29 # install debs
30 install_deb ()
31 {
32 local _dir=$1
33
34 shift
35 pushd $_dir >/dev/null
36 while [ ${#} -ne 0 ]; do
37 local _files=$(find . -maxdepth 1 -regex "\./${1}_.*_\(${ARCH}\|all\)\.deb")
38 local _file=""
39 local _ver=0
40
41 for i in ${_files}; do
42 local v=$(dpkg-deb -f $i Version)
43
44 if $(dpkg --compare-versions $v ge $_ver); then
45 _ver=$v
46 _file=$i
47 fi
48 done
49
50 [ -z "${_file}" ] || $REALROOTCMD dpkg -i ${_file}
51 shift
52 done
53 popd >/dev/null
54 return 0
55 }
56
57 # copy sucessfully built udebs into installer/build/localudebs
58 supply_udeb ()
59 {
60 local _dir=$1
61 local _pkg=$(grep -sh "^Package: " ${_dir}/debian/control |sed -e 's/^Package: //' |xargs echo -n)
62 for i in ${_pkg}; do
63 local _files=$(find ${_dir}/.. -maxdepth 1 -regex "${_dir}/\.\./${i}_.*_\(${ARCH}\|all\)\.udeb")
64 local _file=""
65 local _ver=0
66
67 for j in ${_files}; do
68 local v=$(dpkg-deb -f $j Version)
69
70 if $(dpkg --compare-versions $v ge $_ver); then
71 _ver=$v
72 _file=$j
73 fi
74 done
75
76 [ -z "${_file}" ] || {
77 rm -f installer/build/localudebs/${i}_*_${ARCH}.udeb
78 rm -f installer/build/localudebs/${i}_*_all.udeb
79 cp -f ${_file} installer/build/localudebs/
80 }
81 done
82 return 0
83 }
84
85 # Iterate over subdirs.
86 do_subdir ()
87 {
88 while [ $# -ge 1 ]; do
89 [ -d $1 ] && {
90 build $1
91 supply_udeb $1
92 }
93 shift
94 done
95 return 0
96 }
97
98 # Build kernel packages.
99 do_kernel ()
100 {
101 while [ $# -ge 1 ]; do
102 [ -d $1 ] && {
103 (cd $1 && debian/rules debian/control)
104 do_subdir $1
105 }
106 shift
107 done
108 return 0
109 }
110
111 # Guess what.
112 usage ()
113 {
114 echo "Usage: $0 [-r root_command] [-rr real_root_command]"
115 exit 1
116 }
117
118 # Here we go.
119 MAKETARGET=all_images
120
121 while [ ${#} -ge 1 ]; do
122 case "$1" in
123 -r)
124 ROOTCMD=$2
125 shift
126 ;;
127 -rr)
128 REALROOTCMD=$2
129 shift
130 ;;
131 esac
132 shift
133 done
134
135 # directory sanity check
136 [ -d installer/build/pkg-lists ] || { echo "Not in source dir"; exit 1; }
137
138 [ -z "$REALROOTCMD" ] && REALROOTCMD=$ROOTCMD
139
140 ARCH="$(dpkg-architecture -qDEB_BUILD_ARCH)"
141
142 # Build and install packages with debs first, others build-depend on it.
143
144 # d-i library needs special preparation when building directly from revision
145 # control
146 pushd packages/libdebian-installer >/dev/null
147 debian/rules configure || true
148 popd >/dev/null
149
150 # build d-i library
151 build packages/libdebian-installer
152 install_deb packages libdebian-installer4 libdebian-installer-extra4 libdebian-installer4-dev
153 supply_udeb packages/libdebian-installer
154
155 # build cdebconf
156 build packages/cdebconf
157 install_deb packages libdebconfclient0 libdebconfclient0-dev
158 supply_udeb packages/cdebconf
159
160 # build kernel-wedge
161 build packages/kernel/kernel-wedge
162 install_deb packages/kernel kernel-wedge
163
164 # Build all other udebs.
165 do_kernel packages/kernel/linux-kernel-di-$ARCH \
166 packages/kernel/linux-kernel-di-$ARCH-2.6
167
168 do_subdir packages/partman/partman-base packages/partman/partman-auto \
169 packages/partman/partman-basicfilesystems \
170 packages/partman/partman-basicmethods \
171 packages/partman/partman-ext3 packages/partman/partman-reiserfs \
172 packages/partman/partman-xfs packages/partman/partman-jfs \
173 packages/partman/partman-md packages/partman/partman-lvm \
174 packages/partman/partman-partitioning \
175 packages/partman/partman-target
176
177 # Arch-specific partman partitioning.
178 case $ARCH in
179 arm|mipsel)
180 do_subdir packages/partman/partman-ext2r0
181 ;;
182 hppa)
183 do_subdir packages/partman/partman-palo
184 ;;
185 powerpc)
186 do_subdir packages/partman/partman-newworld \
187 packages/partman/partman-prep
188 ;;
189 esac
190
191 do_subdir packages/retriever/cdrom \
192 packages/retriever/floppy packages/retriever/net
193
194 (cd packages/autopartkit && \
195 aclocal && autoheader && automake -c -a && autoconf)
196
197 do_subdir packages/anna packages/autopartkit packages/base-installer \
198 packages/baseconfig-udeb packages/bterm-unifont \
199 packages/cdrom-checker packages/cdrom-detect packages/choose-mirror \
200 packages/hw-detect packages/debian-installer-utils \
201 packages/installation-report packages/iso-scan packages/kbd-chooser \
202 packages/localechooser packages/lowmem \
203 packages/lvmcfg packages/main-menu packages/netcfg packages/nobootloader \
204 packages/os-prober packages/partconf \
205 packages/prebaseconfig packages/rescue packages/rootskel \
206 packages/udpkg packages/usb-discover packages/userdevfs
207
208 # Partitioning special for architectures that don't yet use partman.
209 case $ARCH in
210 m68k|mips|s390)
211 do_subdir packages/partitioner
212 ;;
213 esac
214
215 # Arch dependent udebs, which may not build cleanly elsewhere.
216 case $ARCH in
217 alpha)
218 do_subdir packages/arch/alpha/aboot-installer \
219 packages/arch/alpha/srm-reader
220 ;;
221 hppa)
222 do_subdir packages/arch/hppa/palo-installer
223 ;;
224 i386|amd64)
225 do_subdir packages/arch/i386/grub-installer \
226 packages/arch/i386/lilo-installer
227 ;;
228 ia64)
229 do_subdir packages/arch/ia64/efi-reader \
230 packages/arch/ia64/elilo-installer
231 ;;
232 mips)
233 do_subdir packages/arch/mips/arcboot-installer
234 ;;
235 mipsel)
236 do_subdir packages/arch/mipsel/delo-installer \
237 packages/arch/mipsel/colo-installer
238 ;;
239 powerpc)
240 do_subdir packages/arch/powerpc/yaboot-installer \
241 packages/arch/powerpc/quik-installer \
242 packages/arch/powerpc/prep-installer
243 ;;
244 s390)
245 do_subdir packages/arch/s390/dasd \
246 packages/arch/s390/netdevice packages/arch/s390/zipl-installer
247 ;;
248 sparc)
249 do_subdir packages/arch/sparc/silo-installer
250 ;;
251 esac
252
253 # Build the installer boot image.
254 build installer
255
256 exit 0

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.5