local arch="$1"; shift
local target="$1"; shift
local extra="${1:-}"; shift || true
+ local aliases=""
if [ -n "$extra" ]; then
local suite="${suite}-${extra}"
local name="${suite}_${arch}-dchroot"
fi
+ local fullname="$name"
+ case "$arch" in
+ kfreebsd-*)
+ aliases="$name"
+ # FreeBSD only allows relatively short paths to mountpoints
+ # therefore saving a few charakters making the chroot dir fit
+ name=${name/kfreebsd-amd64/k-a}
+ name=${name/kfreebsd-i386/k-i}
+ ;;
+ esac
cat << EOF
[${name}]
-description=[${name}] Debian $suite chroot for $arch
+description=[${fullname}] Debian $suite chroot for $arch
type=file
file=$target
EOF
echo "profile=$personality"
if [ "$THISARCH" = "$arch" ] && [ -z "$buildd" ]; then
- echo "aliases=$suite"
+ if [ -z "$aliases" ] ; then
+ aliases="$suite"
+ else
+ aliases="$aliases,$suite"
+ fi
+ fi
+ if [ -n "$aliases" ] ; then
+ echo "aliases=$aliases"
fi
case "$arch" in
- armel|armhf|i386|powerpc|s390|sparc)
+ armel|armhf|i386|mips|mipsel|powerpc|s390|sparc)
echo "personality=linux32"
;;
esac
*)
if [ -z "$extra" ] && [ -z "$ubuntu" ]; then
genschrootconf "$suite" "$arch" "$target" "backports"
- [ -n "$buildd" ] && genschrootconf "$suite" "$arch" "$target" "backports-sloppy"
- [ -n "$buildd" ] && genschrootconf "$suite" "$arch" "$target" "lts"
- [ -n "$buildd" ] && genschrootconf "$suite" "$arch" "$target" "proposed-updates"
- [ -n "$buildd" ] && genschrootconf "$suite" "$arch" "$target" "security"
+ if [ -n "$buildd" ] ; then
+ genschrootconf "$suite" "$arch" "$target" "backports-sloppy"
+ genschrootconf "$suite" "$arch" "$target" "proposed-updates"
+ genschrootconf "$suite" "$arch" "$target" "security"
+ case "$arch" in
+ kfreebsd-*)
+ genschrootconf "$suite" "$arch" "$target" "kfreebsd"
+ genschrootconf "$suite" "$arch" "$target" "kfreebsd-security"
+ ;;
+ esac
+ fi
fi
esac
return 0
ubuntu=""
groupuser="Debian,guest,d-i"
grouproot=""
+include="apt,fakeroot"
users=""
usersroot=""
bare=""
trap do_cleanup EXIT
buildd=""
-while getopts "a:b:Bcd:Dfg:hKk:m:o:O:p:r:sS:u" OPTION
+while getopts "a:b:Bcd:Dfg:hI:Kk:m:o:O:p:r:sS:u" OPTION
do
case $OPTION in
a)
bare="1"
groupuser=""
grouproot=""
- users="buildd"
- usersroot="buildd"
+ users="buildd,buildd2"
+ usersroot="buildd,buildd2"
personality="buildd"
suffix="sbuild"
;;
usage
exit 0
;;
+ I)
+ include="$include,$OPTARG"
+ ;;
K)
keep="4"
;;
schrootconfig="/etc/schroot/chroot.d/${tuple}-$suffix"
! [ -e "$schrootconfig" ] || [ -n "$force" ] || die "Error: $schrootconfig already exists."
+suite_alias="$suite"
+case "$arch" in
+ kfreebsd-*)
+ case "$suite" in
+ jessie)
+ suite_alias="$suite-kfreebsd"
+ ;;
+ esac
+ ;;
+esac
+
#
# let's go
set -x
debootstrap \
--keyring "$keyring" \
- --include="apt" \
+ --include="$include" \
--variant=buildd \
--arch="$arch" \
- "$suite" "$rootdir" "$mirror" "$script"
+ "$suite_alias" "$rootdir" "$mirror" "$script"
echo "$tuple" > "$rootdir/etc/debian_chroot"
echo "force-unsafe-io" > "$rootdir/etc/dpkg/dpkg.cfg.d/force-unsafe-io"
echo "force-confnew" > "$rootdir/etc/dpkg/dpkg.cfg.d/force-confnew"
cleanup+=("rm -f $tartmp")
(
cd "$rootdir"
+ chmod 0755 "$rootdir"
tar caf "$tartmp" .
if ! [ -z "$keep" ]; then
- savelog -l -c 4 "$target"
+ savelog -l -c 2 "$target"
fi
mv "$tartmp" "$target"
)