| 1 |
#! /bin/sh
|
| 2 |
#
|
| 3 |
# Build debian-installer packages.
|
| 4 |
|
| 5 |
# First, some shell functions.
|
| 6 |
|
| 7 |
# build debs and udebs
|
| 8 |
build ()
|
| 9 |
{
|
| 10 |
local _dir=$1
|
| 11 |
local _pkg=$(grep -sh "^Package: " ${_dir}/debian/control |sed -e 's/^Package: //' |xargs echo -n)
|
| 12 |
[ -n "$ROOTCMD" ] && local _rootcmd="-r$ROOTCMD"
|
| 13 |
|
| 14 |
pushd $_dir >/dev/null
|
| 15 |
for i in ${_pkg}; do
|
| 16 |
rm -f ../${i}*.*
|
| 17 |
done
|
| 18 |
dpkg-buildpackage -b -us -uc $_rootcmd #-nc
|
| 19 |
popd >/dev/null
|
| 20 |
return 0
|
| 21 |
}
|
| 22 |
|
| 23 |
# install debs
|
| 24 |
install_deb ()
|
| 25 |
{
|
| 26 |
local _dir=$1
|
| 27 |
|
| 28 |
shift
|
| 29 |
pushd $_dir >/dev/null
|
| 30 |
while [ ${#} -ne 0 ]; do
|
| 31 |
[ -f ${1}_*_${ARCH}.deb ] && $REALROOTCMD dpkg -i ${1}_*_${ARCH}.deb
|
| 32 |
[ -f ${1}_*_all.deb ] && $REALROOTCMD dpkg -i ${1}_*_all.deb
|
| 33 |
shift
|
| 34 |
done
|
| 35 |
popd >/dev/null
|
| 36 |
return 0
|
| 37 |
}
|
| 38 |
|
| 39 |
# copy sucessfully built udebs into build/localudebs
|
| 40 |
supply_udeb ()
|
| 41 |
{
|
| 42 |
local _dir=$1
|
| 43 |
local _pkg=$(grep -sh "^Package: " ${_dir}/debian/control |sed -e 's/^Package: //' |xargs echo -n)
|
| 44 |
for i in ${_pkg}; do
|
| 45 |
[ -f ${_dir}/../${i}_*_${ARCH}.udeb ] && {
|
| 46 |
rm -f build/localudebs/${i}_*_${ARCH}.udeb
|
| 47 |
cp -f ${_dir}/../${i}_*_${ARCH}.udeb build/localudebs/
|
| 48 |
}
|
| 49 |
[ -f ${_dir}/../${i}_*_all.udeb ] && {
|
| 50 |
rm -f build/localudebs/${i}_*_all.udeb
|
| 51 |
cp -f ${_dir}/../${i}_*_all.udeb build/localudebs/
|
| 52 |
}
|
| 53 |
done
|
| 54 |
return 0
|
| 55 |
}
|
| 56 |
|
| 57 |
# Iterate over subdirs.
|
| 58 |
do_subdir ()
|
| 59 |
{
|
| 60 |
while [ $# -ge 1 ]; do
|
| 61 |
[ -d $1 ] && {
|
| 62 |
build $1
|
| 63 |
supply_udeb $1
|
| 64 |
}
|
| 65 |
shift
|
| 66 |
done
|
| 67 |
return 0
|
| 68 |
}
|
| 69 |
|
| 70 |
# Guess what.
|
| 71 |
usage ()
|
| 72 |
{
|
| 73 |
echo "Usage: $0 [-r root_command] [-rr real_root_command]"
|
| 74 |
exit 1
|
| 75 |
}
|
| 76 |
|
| 77 |
# Here we go.
|
| 78 |
#set -x
|
| 79 |
set -e
|
| 80 |
|
| 81 |
MAKETARGET=all_images
|
| 82 |
|
| 83 |
while [ ${#} -ge 1 ]; do
|
| 84 |
case "$1" in
|
| 85 |
-r)
|
| 86 |
ROOTCMD=$2
|
| 87 |
shift
|
| 88 |
;;
|
| 89 |
-rr)
|
| 90 |
REALROOTCMD=$2
|
| 91 |
shift
|
| 92 |
;;
|
| 93 |
esac
|
| 94 |
shift
|
| 95 |
done
|
| 96 |
|
| 97 |
# directory sanity check
|
| 98 |
[ -d build/pkg-lists ] || { echo "Not in source dir"; exit 1; }
|
| 99 |
|
| 100 |
[ -z "$REALROOTCMD" ] && REALROOTCMD=$ROOTCMD
|
| 101 |
|
| 102 |
ARCH="$(dpkg-architecture -qDEB_BUILD_ARCH)"
|
| 103 |
|
| 104 |
# Build and install packages with debs first, others build-depend on it.
|
| 105 |
#
|
| 106 |
build packages-build
|
| 107 |
install_deb . di-packages-build
|
| 108 |
|
| 109 |
# build d-i library
|
| 110 |
build libdebian-installer
|
| 111 |
install_deb . libdebian-installer4 libdebian-installer-extra4 libdebian-installer4-dev
|
| 112 |
|
| 113 |
# build cdebconf
|
| 114 |
build tools/cdebconf
|
| 115 |
install_deb tools libdebconfclient0 libdebconfclient0-dev
|
| 116 |
supply_udeb tools/cdebconf
|
| 117 |
|
| 118 |
# build kernel-wedge
|
| 119 |
build kernel/kernel-wedge
|
| 120 |
install_deb kernel kernel-wedge
|
| 121 |
|
| 122 |
# Build all other udebs.
|
| 123 |
do_subdir anna
|
| 124 |
do_subdir kernel/linux-kernel-di-$ARCH
|
| 125 |
do_subdir main-menu
|
| 126 |
|
| 127 |
do_subdir partman/partman partman/partman-auto \
|
| 128 |
partman/partman-basicfilesystems partman/partman-basicmethods \
|
| 129 |
partman/partman-ext3 partman/partman-lvm partman/partman-reiserfs \
|
| 130 |
partman/partman-xfs partman/partman-partitioning \
|
| 131 |
partman/partman-target
|
| 132 |
|
| 133 |
[ "$ARCH" = "hppa" ] && do_subdir partman/partman-palo
|
| 134 |
|
| 135 |
do_subdir retriever/choose-mirror retriever/cdrom retriever/floppy retriever/net
|
| 136 |
|
| 137 |
do_subdir rootskel
|
| 138 |
|
| 139 |
do_subdir tools/autopartkit tools/base-installer tools/baseconfig-udeb \
|
| 140 |
tools/bterm-unifont tools/bugreporter tools/cdrom-checker \
|
| 141 |
tools/cdrom-detect tools/countrychooser tools/ddetect tools/iso-scan \
|
| 142 |
tools/kbd-chooser tools/languagechooser tools/lowmem tools/lvmcfg \
|
| 143 |
tools/netcfg tools/nobootloader tools/partconf tools/partitioner \
|
| 144 |
tools/prebaseconfig tools/udpkg tools/usb-discover tools/userdevfs
|
| 145 |
|
| 146 |
do_subdir utils
|
| 147 |
|
| 148 |
# Arch dependent udebs, which may not build cleanly elsewhere.
|
| 149 |
[ "$ARCH" = "alpha" ] && do_subdir tools/aboot-installer \
|
| 150 |
tools/alpha/srm-reader
|
| 151 |
[ "$ARCH" = "powerpc" ] && do_subdir tools/yaboot-installer
|
| 152 |
[ "$ARCH" = "hppa" ] && do_subdir tools/hppa/palo-installer
|
| 153 |
[ "$ARCH" = "hurd-i386" ] && do_subdir tools/grub-installer
|
| 154 |
[ "$ARCH" = "i386" ] && do_subdir tools/grub-installer tools/lilo-installer
|
| 155 |
[ "$ARCH" = "ia64" ] && do_subdir tools/ia64/efi-reader \
|
| 156 |
tools/ia64/elilo-installer
|
| 157 |
[ "$ARCH" = "mips" ] && do_subdir tools/mips/arcboot-installer
|
| 158 |
[ "$ARCH" = "mipsel" ] && do_subdir tools/mipsel/delo-installer
|
| 159 |
[ "$ARCH" = "s390" ] && do_subdir tools/s390/dasd tools/s390/netdevice \
|
| 160 |
tools/s390/zipl-installer
|
| 161 |
[ "$ARCH" = "sparc" ] && do_subdir tools/sparc/silo-installer
|
| 162 |
|
| 163 |
# Build the installer boot image.
|
| 164 |
build build
|
| 165 |
|
| 166 |
exit 0
|