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

Contents of /trunk/scripts/buildscript

Parent Directory Parent Directory | Revision Log Revision Log


Revision 28493 - (show annotations) (download)
Sat Jun 18 02:54:59 2005 UTC (7 years, 11 months ago) by joeyh
File size: 5713 byte(s)
source package changes
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 build packages/packages-build
145 install_deb packages di-packages-build
146
147 # build d-i library
148 build packages/libdebian-installer
149 install_deb packages libdebian-installer4 libdebian-installer-extra4 libdebian-installer4-dev
150 supply_udeb packages/libdebian-installer
151
152 # build cdebconf
153 build packages/cdebconf
154 install_deb packages libdebconfclient0 libdebconfclient0-dev
155 supply_udeb packages/cdebconf
156
157 # build kernel-wedge
158 build packages/kernel/kernel-wedge
159 install_deb packages/kernel kernel-wedge
160
161 # Build all other udebs.
162 do_kernel packages/kernel/linux-kernel-di-$ARCH \
163 packages/kernel/linux-kernel-di-$ARCH-2.6
164
165 do_subdir packages/partman/partman packages/partman/partman-auto \
166 packages/partman/partman-basicfilesystems \
167 packages/partman/partman-basicmethods \
168 packages/partman/partman-ext3 packages/partman/partman-reiserfs \
169 packages/partman/partman-xfs packages/partman/partman-jfs \
170 packages/partman/partman-md packages/partman/partman-lvm \
171 packages/partman/partman-partitioning \
172 packages/partman/partman-target
173
174 # Arch-specific partman partitioning.
175 case $ARCH in
176 arm|mipsel)
177 do_subdir packages/partman/partman-ext2r0
178 ;;
179 hppa)
180 do_subdir packages/partman/partman-palo
181 ;;
182 powerpc)
183 do_subdir packages/partman/partman-newworld
184 ;;
185 esac
186
187 do_subdir packages/retriever/cdrom \
188 packages/retriever/floppy packages/retriever/net
189
190 (cd packages/autopartkit && \
191 aclocal && autoheader && automake -c -a && autoconf)
192
193 do_subdir packages/anna packages/autopartkit packages/base-installer \
194 packages/baseconfig-udeb packages/bterm-unifont \
195 packages/bugreporter-udeb packages/cdrom-checker \
196 packages/cdrom-detect packages/choose-mirror \
197 packages/hw-detect packages/debian-installer-utils \
198 packages/iso-scan packages/kbd-chooser \
199 packages/localechooser packages/lowmem \
200 packages/lvmcfg packages/main-menu packages/netcfg packages/nobootloader \
201 packages/os-prober packages/partconf \
202 packages/prebaseconfig packages/rescue packages/rootskel \
203 packages/udpkg packages/usb-discover packages/userdevfs
204
205 # Partitioning special for architectures that don't yet use partman.
206 case $ARCH in
207 m68k|mips|s390)
208 do_subdir packages/partitioner
209 ;;
210 esac
211
212 # Arch dependent udebs, which may not build cleanly elsewhere.
213 case $ARCH in
214 alpha)
215 do_subdir packages/arch/alpha/aboot-installer \
216 packages/arch/alpha/srm-reader
217 ;;
218 hppa)
219 do_subdir packages/arch/hppa/palo-installer
220 ;;
221 i386|amd64)
222 do_subdir packages/arch/i386/grub-installer \
223 packages/arch/i386/lilo-installer
224 ;;
225 ia64)
226 do_subdir packages/arch/ia64/efi-reader \
227 packages/arch/ia64/elilo-installer
228 ;;
229 mips)
230 do_subdir packages/arch/mips/arcboot-installer
231 ;;
232 mipsel)
233 do_subdir packages/arch/mipsel/delo-installer \
234 packages/arch/mipsel/colo-installer
235 ;;
236 powerpc)
237 do_subdir packages/arch/powerpc/yaboot-installer \
238 packages/arch/powerpc/quik-installer
239 ;;
240 s390)
241 do_subdir packages/arch/s390/dasd \
242 packages/arch/s390/netdevice packages/arch/s390/zipl-installer
243 ;;
244 sparc)
245 do_subdir packages/arch/sparc/silo-installer
246 ;;
247 esac
248
249 # Build the installer boot image.
250 build installer
251
252 exit 0

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.5