Import Upstream version 1.0.118

This commit is contained in:
luoyaoming 2022-08-14 17:00:54 +08:00
commit de680b755f
78 changed files with 6225 additions and 0 deletions

18
Makefile Normal file
View File

@ -0,0 +1,18 @@
# avoid dpkg-dev dependency; fish out the version with sed
VERSION := $(shell sed 's/.*(\(.*\)).*/\1/; q' debian/changelog)
all:
clean:
DSDIR=$(DESTDIR)/usr/share/debootstrap
install:
mkdir -p $(DSDIR)/scripts
mkdir -p $(DESTDIR)/usr/sbin
cp -a scripts/* $(DSDIR)/scripts/
install -o root -g root -m 0644 functions $(DSDIR)/
sed 's/@VERSION@/$(VERSION)/g' debootstrap >$(DESTDIR)/usr/sbin/debootstrap
chown root:root $(DESTDIR)/usr/sbin/debootstrap
chmod 0755 $(DESTDIR)/usr/sbin/debootstrap

66
README Normal file
View File

@ -0,0 +1,66 @@
README for debootstrap
======================
See the manpage for (some) documentation.
Running debootstrap from source
-------------------------------
You can run debootstrap from its source tree without installing it. This
can be useful if you want a quick way to make a Debian chroot on another
system, or if you are testing modifications to debootstrap.
First, get the source.
* Either by using git
git clone https://salsa.debian.org/installer-team/debootstrap.git
* Or by visiting <https://packages.debian.org/source/sid/debootstrap>
and downloading the tar.gz file
Then in the debootstrap source directory:
export DEBOOTSTRAP_DIR=`pwd`
sudo ./debootstrap stable my-stable-dir
If you are running a multi-stage boot strap (for example for a QEMU
rootfs) you don't even need root:
export DEBOOTSTRAP_DIR=`pwd`
fakeroot ./debootstrap --foreign --arch=armhf testing my-testing-dir http://deb.debian.org/debian
Of course you will need to execute the second stage as root to finish the bootstrap:
(on foreign hardware)
/debootstrap/debootstrap --second-stage
Future
------
* Cross-strap support - so you can bootstrap a filesystem to the
point where it will successfully boot, and finish installing itself
without having to be running the target architecture or OS yourself.
This means you should be able to run
debootstrap --arch powerpc sarge ./sarge-ppc-chroot ...
on an i386 system, boot a powerpc box with sarge-ppc-chroot as its
root files system, and have it "work". The cross-hurd package does
something similar, and should be replaced by this feature.
* There should be some (better) way of telling debootstrap what "base"
packages you want to install -- this varies between making a chroot,
doing an install, and doing a buildd. Also, some installs want
different base packages (to setup networking, or kernels, eg)
NMUing
------
If there's a problem with debootstrap that you need fixed, feel free to do
an NMU to fix it. Usual rules: try not to break anything, and mail the
patch to the BTS. Don't worry about asking first though.
However, note that debootstrap is now team maintained. Anyone in d-i can do
a release without the bother of a NMU.

9
TODO Normal file
View File

@ -0,0 +1,9 @@
Features:
++ second stage via chroot debootstrap/debootstrap
++ debootstrap/deb file to record deb destinations/information
-- configuration file
-- versus command line
-- support for sources (vs mirrors)
-- faux-pinning for packages

848
debootstrap Executable file
View File

@ -0,0 +1,848 @@
#!/bin/sh
set -e
VERSION='@VERSION@'
unset TMP TEMP TMPDIR || true
# might not be exported if we're running from init=/bin/sh or similar
export PATH
###########################################################################
if [ -z "$DEBOOTSTRAP_DIR" ]; then
if [ -x /debootstrap/debootstrap ]; then
DEBOOTSTRAP_DIR=/debootstrap
else
DEBOOTSTRAP_DIR=/usr/share/debootstrap
fi
fi
. "$DEBOOTSTRAP_DIR/functions"
exec 4>&1
LANG=C
EXTRA_SUITES=""
USE_COMPONENTS=main
KEYRING=""
DISABLE_KEYRING=""
FORCE_KEYRING=""
VARIANT=""
MERGED_USR=""
ARCH=""
HOST_ARCH=""
HOST_OS=""
KEEP_DEBOOTSTRAP_DIR=""
USE_DEBIANINSTALLER_INTERACTION=""
SECOND_STAGE_ONLY=""
CHROOTDIR=""
MAKE_TARBALL=""
EXTRACTOR_OVERRIDE=""
UNPACK_TARBALL=""
ADDITIONAL=""
EXCLUDE=""
VERBOSE=""
CERTIFICATE=""
CHECKCERTIF=""
PRIVATEKEY=""
CACHE_DIR=""
DEF_MIRROR="http://deb.debian.org/debian"
DEF_HTTPS_MIRROR="https://deb.debian.org/debian"
# set $CONTAINER
detect_container
export LANG USE_COMPONENTS
umask 022
###########################################################################
## phases:
## finddebs dldebs printdebs save_variables first_stage second_stage
RESOLVE_DEPS=true
WHAT_TO_DO="finddebs dldebs save_variables first_stage second_stage"
am_doing_phase () {
# usage: if am_doing_phase finddebs; then ...; fi
local x;
for x in "$@"; do
if echo " $WHAT_TO_DO " | grep -q " $x "; then return 0; fi
done
return 1
}
###########################################################################
usage_err()
{
info USAGE1 "usage: [OPTION]... <suite> <target> [<mirror> [<script>]]"
info USAGE2 "Try \`${0##*/} --help' for more information."
error "$@"
}
usage()
{
echo "Usage: ${0##*/} [OPTION]... <suite> <target> [<mirror> [<script>]]"
echo "Bootstrap a Debian base system into a target directory."
echo
cat <<EOF
--help display this help and exit
--version display version information and exit
--verbose don't turn off the output of wget
--download-only download packages, but don't perform installation
--print-debs print the packages to be installed, and exit
--arch=A set the architecture to install (use if no dpkg)
[ --arch=powerpc ]
--include=A,B,C adds specified names to the list of base packages
--exclude=A,B,C removes specified packages from the list
--extra-suites=A,B,C also use packages from the listed suites of the
archive
--components=A,B,C use packages from the listed components of the
archive
--variant=X use variant X of the bootstrap scripts
(currently supported variants: buildd, fakechroot,
minbase)
--no-merged-usr do not make /{bin,sbin,lib}/ symlinks to /usr/
--keyring=K check Release files against keyring K
--no-check-gpg avoid checking Release file signatures
--force-check-gpg force checking Release file signatures
(also disables automatic fallback to HTTPS in case
of a missing keyring), aborting otherwise
--no-resolve-deps don't try to resolve dependencies automatically
--log-extra-deps record extra dependency info in debootstrap.log
--cache-dir=DIR Use specified directory as package cache directory
--unpack-tarball=T acquire .debs from a tarball instead of http
--make-tarball=T download .debs and create a gzipped tarball
--second-stage-target=DIR
Run second stage in a subdirectory instead of root
(can be used to create a foreign chroot)
(requires --second-stage)
--extractor=TYPE override automatic .deb extractor selection
(supported: $EXTRACTORS_SUPPORTED)
--debian-installer used for internal purposes by debian-installer
--private-key=file read the private key from file
--certificate=file use the client certificate stored in file (PEM)
--no-check-certificate do not check certificate against certificate authorities
EOF
}
###########################################################################
if [ -z "$PKGDETAILS" ]; then
error 1 NO_PKGDETAILS "No pkgdetails available; either install perl, or build pkgdetails.c from the base-installer source package"
fi
###########################################################################
if [ $# != 0 ] ; then
while true ; do
case "$1" in
--help)
usage
exit 0
;;
--version)
echo "debootstrap $VERSION"
exit 0
;;
--debian-installer)
if ! (echo -n "" >&3) 2>/dev/null; then
error 1 ARG_DIBYHAND "If running debootstrap by hand, don't use --debian-installer"
fi
USE_DEBIANINSTALLER_INTERACTION=yes
shift
;;
--foreign)
check_conflicting_option "$1"
if [ -n "$LOOSEN_CONFLICTING_RESTRICTION" ]; then
WHAT_TO_DO="first_stage"
else
WHAT_TO_DO="finddebs dldebs save_variables first_stage"
fi
shift
;;
--second-stage)
check_conflicting_option "$1"
WHAT_TO_DO="second_stage"
SECOND_STAGE_ONLY=true
shift
;;
--second-stage-target|--second-stage-target=?*)
if [ "$SECOND_STAGE_ONLY" != "true" ] ; then
error 1 STAGE2ONLY "option %s only applies in the second stage" "$1"
fi
if [ "$1" = "--second-stage-target" ] && [ -n "$2" ] ; then
CHROOTDIR="$2"
shift 2
elif [ "$1" != "${1#--second-stage-target=}" ]; then
CHROOTDIR="${1#--second-stage-target=}"
shift
else
error 1 NEEDARG "option requires an argument: %s" "$1"
fi
;;
--print-debs)
check_conflicting_option "$1"
WHAT_TO_DO="finddebs printdebs kill_target"
shift
;;
--download-only)
check_conflicting_option "$1"
WHAT_TO_DO="finddebs dldebs"
shift
;;
--make-tarball|--make-tarball=?*)
check_conflicting_option "$1"
WHAT_TO_DO="finddebs dldebs save_variables maketarball kill_target"
if [ "$1" = "--make-tarball" ] && [ -n "$2" ] ; then
MAKE_TARBALL="$2"
shift 2
elif [ "$1" != "${1#--make-tarball=}" ]; then
MAKE_TARBALL="${1#--make-tarball=}"
shift
else
error 1 NEEDARG "option requires an argument %s" "$1"
fi
;;
--resolve-deps)
# redundant, but avoids breaking compatibility
RESOLVE_DEPS=true
shift
;;
--no-resolve-deps)
RESOLVE_DEPS=false
shift
;;
--log-extra-deps)
LOG_EXTRA_DEPS=true
shift
;;
--keep-debootstrap-dir)
KEEP_DEBOOTSTRAP_DIR=true
shift
;;
--arch|--arch=?*)
if [ "$1" = "--arch" ] && [ -n "$2" ] ; then
ARCH="$2"
shift 2
elif [ "$1" != "${1#--arch=}" ]; then
ARCH="${1#--arch=}"
shift
else
error 1 NEEDARG "option requires an argument %s" "$1"
fi
;;
--extractor|--extractor=?*)
if [ "$1" = "--extractor" ] && [ -n "$2" ] ; then
EXTRACTOR_OVERRIDE="$2"
shift 2
elif [ "$1" != "${1#--extractor=}" ]; then
EXTRACTOR_OVERRIDE="${1#--extractor=}"
shift
else
error 1 NEEDARG "option requires an argument %s" "$1"
fi
if valid_extractor "$EXTRACTOR_OVERRIDE"; then
if ! in_path "$EXTRACTOR_OVERRIDE"; then
error 1 MISSINGEXTRACTOR "The selected extractor cannot be found: %s" "$EXTRACTOR_OVERRIDE"
fi
else
error 1 BADEXTRACTOR "%s: unknown extractor" "$EXTRACTOR_OVERRIDE"
fi
;;
--unpack-tarball|--unpack-tarball=?*)
if [ "$1" = "--unpack-tarball" ] && [ -n "$2" ] ; then
check_conflicting_option "$1"
if [ -n "$LOOSEN_CONFLICTING_RESTRICTION" ]; then
WHAT_TO_DO="first_stage"
else
WHAT_TO_DO="first_stage second_stage"
fi
UNPACK_TARBALL="$2"
shift 2
elif [ "$1" != "${1#--unpack-tarball=}" ]; then
check_conflicting_option "$1"
if [ -n "$LOOSEN_CONFLICTING_RESTRICTION" ]; then
WHAT_TO_DO="first_stage"
else
WHAT_TO_DO="first_stage second_stage"
fi
UNPACK_TARBALL="${1#--unpack-tarball=}"
shift
else
error 1 NEEDARG "option requires an argument %s" "$1"
fi
if [ ! -f "$UNPACK_TARBALL" ] ; then
error 1 NOTARBALL "%s: No such file or directory" "$UNPACK_TARBALL"
fi
;;
--include|--include=?*)
if [ "$1" = "--include" ] && [ -n "$2" ]; then
ADDITIONAL="$2"
shift 2
elif [ "$1" != "${1#--include=}" ]; then
ADDITIONAL="${1#--include=}"
shift 1
else
error 1 NEEDARG "option requires an argument %s" "$1"
fi
ADDITIONAL="$(echo "$ADDITIONAL" | tr , " ")"
;;
--exclude|--exclude=?*)
if [ "$1" = "--exclude" ] && [ -n "$2" ]; then
EXCLUDE="$2"
shift 2
elif [ "$1" != "${1#--exclude=}" ]; then
EXCLUDE="${1#--exclude=}"
shift 1
else
error 1 NEEDARG "option requires an argument %s" "$1"
fi
EXCLUDE="$(echo "$EXCLUDE" | tr , " ")"
;;
--verbose)
VERBOSE=true
export VERBOSE
shift 1
;;
--extra-suites|--extra-suites=?*)
if [ "$1" = "--extra-suites" ] && [ -n "$2" ]; then
EXTRA_SUITES="$2"
shift 2
elif [ "$1" != "${1#--extra-suites=}" ]; then
EXTRA_SUITES="${1#--extra-suites=}"
shift 1
else
error 1 NEEDARG "option requires an argument %s" "$1"
fi
EXTRA_SUITES="$(echo "$EXTRA_SUITES" | tr , " ")"
;;
--components|--components=?*)
if [ "$1" = "--components" ] && [ -n "$2" ]; then
USE_COMPONENTS="$2"
shift 2
elif [ "$1" != "${1#--components=}" ]; then
USE_COMPONENTS="${1#--components=}"
shift 1
else
error 1 NEEDARG "option requires an argument %s" "$1"
fi
USE_COMPONENTS="$(echo "$USE_COMPONENTS" | tr , "|")"
;;
--variant|--variant=?*)
if [ "$1" = "--variant" ] && [ -n "$2" ]; then
VARIANT="$2"
shift 2
elif [ "$1" != "${1#--variant=}" ]; then
VARIANT="${1#--variant=}"
shift 1
else
error 1 NEEDARG "option requires an argument %s" "$1"
fi
;;
--cache-dir|--cache-dir=?*)
# Okay, let's check user's option
if [ "$1" = "--cache-dir" ] && [ -n "$2" ] ; then
CACHE_DIR="$2"
shift 2
elif [ "$1" != "${1#--cache-dir=}" ]; then
CACHE_DIR="${1#--cache-dir=}"
shift
else
error 1 NEEDARG "option requires an argument %s" "$1"
fi
if [ ! -z "${CACHE_DIR##/*}" ]; then
error 1 NOTABSOLUTEPATH "cache directory should be specified with an absolute path"
fi
if [ ! -d "$CACHE_DIR" ] ; then
error 1 NOCACHEDIR "%s: No such directory" "$CACHE_DIR"
fi
;;
--merged-usr)
MERGED_USR=yes
shift
;;
--no-merged-usr)
MERGED_USR=no
shift
;;
--keyring|--keyring=?*)
if ! gpgv --version >/dev/null 2>&1; then
error 1 NEEDGPGV "gpgv not installed, but required for Release verification"
fi
if [ "$1" = "--keyring" ] && [ -n "$2" ]; then
KEYRING="$2"
shift 2
elif [ "$1" != "${1#--keyring=}" ]; then
KEYRING="${1#--keyring=}"
shift 1
else
error 1 NEEDARG "option requires an argument %s" "$1"
fi
if [ ! -e "$KEYRING" ]; then
error 1 KEYRING "specified keyring file ($KEYRING) not found"
fi
;;
--no-check-gpg)
shift 1
DISABLE_KEYRING=1
;;
--force-check-gpg)
shift 1
FORCE_KEYRING=1
;;
--certificate|--certificate=?*)
if [ "$1" = "--certificate" ] && [ -n "$2" ]; then
CERTIFICATE="--certificate=$2"
shift 2
elif [ "$1" != "${1#--certificate=}" ]; then
CERTIFICATE="--certificate=${1#--certificate=}"
shift 1
else
error 1 NEEDARG "option requires an argument %s" "$1"
fi
;;
--private-key|--private-key=?*)
if [ "$1" = "--private-key" ] && [ -n "$2" ]; then
PRIVATEKEY="--private-key=$2"
shift 2
elif [ "$1" != "${1#--private-key=}" ]; then
PRIVATEKEY="--private-key=${1#--private-key=}"
shift 1
else
error 1 NEEDARG "option requires an argument %s" "$1"
fi
;;
--no-check-certificate)
CHECKCERTIF="--no-check-certificate"
shift
;;
-*)
error 1 BADARG "unrecognized or invalid option %s" "$1"
;;
*)
break
;;
esac
done
fi
###########################################################################
# do auto proxy discovery
AUTOPROXY=""
if ! doing_variant fakechroot && command -v apt-config >/dev/null; then
eval "$(apt-config shell AUTOPROXY Acquire::http::ProxyAutoDetect)"
if [ -z "$http_proxy" ] && [ -x "$AUTOPROXY" ]; then
http_proxy="$($AUTOPROXY)"
if [ -n "$http_proxy" ]; then
info AUTOPROXY "Using auto-detected proxy: $http_proxy"
export http_proxy
fi
fi
fi
###########################################################################
if [ -n "$DISABLE_KEYRING" ] && [ -n "$FORCE_KEYRING" ]; then
error 1 BADARG "Both --no-check-gpg and --force-check-gpg specified, please pick one (at most)"
fi
###########################################################################
if [ "$SECOND_STAGE_ONLY" = "true" ]; then
SUITE=$(cat "$DEBOOTSTRAP_DIR/suite")
if [ -e "$DEBOOTSTRAP_DIR/extra-suites" ]; then
EXTRA_SUITES=$(cat "$DEBOOTSTRAP_DIR/extra-suites")
fi
ARCH=$(cat "$DEBOOTSTRAP_DIR/arch")
USER_MIRROR=$(cat "$DEBOOTSTRAP_DIR/mirror")
if [ -e "$DEBOOTSTRAP_DIR/variant" ]; then
VARIANT=$(cat "$DEBOOTSTRAP_DIR/variant")
SUPPORTED_VARIANTS="$VARIANT"
fi
if [ -z "$CHROOTDIR" ]; then
TARGET=/
else
TARGET=$CHROOTDIR
fi
SCRIPT="$DEBOOTSTRAP_DIR/suite-script"
else
if ! in_path wget; then
error 1 NEEDWGET "You must install wget to download packages."
fi
if [ -z "$1" ] || [ -z "$2" ]; then
usage_err 1 NEEDSUITETARGET "You must specify a suite and a target."
fi
SUITE="$1"
TARGET="$2"
USER_MIRROR="$3"
TARGET="${TARGET%/}"
if [ "${TARGET#/}" = "${TARGET}" ]; then
if [ "${TARGET%/*}" = "$TARGET" ] ; then
TARGET="$(pwd)/$TARGET"
else
TARGET="$(cd "${TARGET%/*}"; echo "$(pwd)/${TARGET##*/}")"
fi
fi
SCRIPT="$DEBOOTSTRAP_DIR/scripts/$1"
if [ -n "$VARIANT" ] && [ -e "${SCRIPT}.${VARIANT}" ]; then
SCRIPT="${SCRIPT}.${VARIANT}"
SUPPORTED_VARIANTS="$VARIANT"
fi
if [ "$4" != "" ]; then
if [ -e "$DEBOOTSTRAP_DIR/scripts/$4" ]; then
SCRIPT="$DEBOOTSTRAP_DIR/scripts/$4"
else
SCRIPT="$4"
fi
fi
fi
###########################################################################
if am_doing_phase kill_target; then
# Require empty target when we are going to remove it afterwards
if [ -d "$TARGET" ] && [ -n "$(ls -A "$TARGET")" ] && \
[ "$KEEP_DEBOOTSTRAP_DIR" != "true" ]; then
error 1 BADTARGET "Target directory '$TARGET' is not empty and it would be wiped"
fi
fi
###########################################################################
if in_path dpkg && \
dpkg --print-architecture >/dev/null 2>&1; then
HOST_ARCH=$(/usr/bin/dpkg --print-architecture)
elif in_path udpkg && \
udpkg --print-architecture >/dev/null 2>&1; then
HOST_ARCH=$(/usr/bin/udpkg --print-architecture)
elif [ -e "$DEBOOTSTRAP_DIR/arch" ]; then
HOST_ARCH=$(cat "$DEBOOTSTRAP_DIR/arch")
fi
HOST_OS="$HOST_ARCH"
# basic host OS guessing for non-Debian systems
if [ -z "$HOST_OS" ]; then
case $(uname) in
Linux)
HOST_OS=linux
;;
GNU/kFreeBSD)
HOST_OS=kfreebsd
;;
GNU)
HOST_OS=hurd
;;
FreeBSD*)
HOST_OS=freebsd
;;
esac
fi
if [ -z "$ARCH" ]; then
ARCH="$HOST_ARCH"
fi
if [ -z "$ARCH" ] || [ -z "$HOST_OS" ]; then
error 1 WHATARCH "Couldn't work out current architecture"
fi
if [ "$HOST_OS" = "kfreebsd" ] || [ "$HOST_OS" = "freebsd" ]; then
for module in linprocfs fdescfs tmpfs linsysfs; do
kldstat -m "$module" > /dev/null 2>&1 || warning SANITYCHECK "Probably required module %s is not loaded" "$module"
done
fi
if [ "$TARGET" = "/" ]; then
CHROOT_CMD=""
else
CHROOT_CMD="chroot \"$TARGET\""
fi
# fakeroot cannot check /proc/1/environ
if [ "$HOST_OS" = Linux ] && ! doing_variant fakechroot && [ "$CONTAINER" = "lxc-libvirt" ]; then
CHROOT_CMD="unshare --net $CHROOT_CMD"
fi
if [ -z "$SHA_SIZE" ]; then
SHA_SIZE=256
fi
if ! in_path "sha${SHA_SIZE}sum" && ! in_path "sha${SHA_SIZE}"; then
warning SHA_SIZE "Cannot find binary for checking sha%s checksums, falling back to sha1" "${SHA_SIZE}"
SHA_SIZE=1
fi
DEBOOTSTRAP_CHECKSUM_FIELD="SHA$SHA_SIZE"
export ARCH SUITE EXTRA_SUITES TARGET CHROOT_CMD SHA_SIZE DEBOOTSTRAP_CHECKSUM_FIELD
if am_doing_phase first_stage second_stage; then
if in_path id && [ "$(id -u)" -ne 0 ]; then
error 1 NEEDROOT "debootstrap can only run as root"
fi
# Ensure that we can create working devices and executables on the target.
if ! check_sane_mount "$TARGET"; then
error 1 NOEXEC "Cannot install into target '$TARGET' mounted with noexec or nodev"
fi
fi
if [ ! -e "$SCRIPT" ]; then
error 1 NOSCRIPT "No such script: %s" "$SCRIPT"
fi
###########################################################################
if [ "$TARGET" != "" ]; then
mkdir -p "$TARGET/debootstrap"
fi
###########################################################################
# Use of fd's by functions/scripts:
#
# stdin/stdout/stderr: used normally
# fd 4: I:/W:/etc information
# fd 5,6: spare for functions
# fd 7,8: spare for scripts
if [ "$USE_DEBIANINSTALLER_INTERACTION" = yes ]; then
# stdout=stderr: full log of debootstrap run
# fd 3: I:/W:/etc information
exec 4>&3
elif am_doing_phase printdebs; then
# stderr: I:/W:/etc information
# stdout: debs needed
exec 4>&2
else
# stderr: used in exceptional circumstances only
# stdout: I:/W:/etc information
# $TARGET/debootstrap/debootstrap.log: full log of debootstrap run
exec 4>&1
exec >>"$TARGET/debootstrap/debootstrap.log"
exec 2>&1
fi
###########################################################################
if [ -x /usr/bin/arch-test ] && am_doing_phase second_stage; then
if doing_variant fakechroot; then
ret=0; arch-test "$ARCH" || ret=$?
# Avoid failure with old arch-test package
elif arch-test --version > /dev/null 2>&1; then
ret=0; arch-test -c "$TARGET" "$ARCH" || ret=$?
else
ret=3
fi
case $ret in
0) info ARCHEXEC "Target architecture can be executed" ;;
1) error 1 ARCHNOTEXEC "Unable to execute target architecture" ;;
*) info ARCHEXECUNKNOWN "Can't verify that target arch works" ;;
esac
fi
###########################################################################
if [ "$UNPACK_TARBALL" ]; then
if [ "${UNPACK_TARBALL#/}" = "$UNPACK_TARBALL" ]; then
error 1 TARPATH "Tarball must be given an absolute path"
fi
if [ "${UNPACK_TARBALL%.tar}" != "$UNPACK_TARBALL" ]; then
(cd "$TARGET" && tar -xf "$UNPACK_TARBALL")
elif [ "${UNPACK_TARBALL%.tar.[g|x]z}" != "$UNPACK_TARBALL" ]; then
(cd "$TARGET" && tar -xf "$UNPACK_TARBALL")
elif [ "${UNPACK_TARBALL%.tgz}" != "$UNPACK_TARBALL" ]; then
(cd "$TARGET" && zcat "$UNPACK_TARBALL" | tar -xf -)
else
error 1 NOTTAR "Unknown tarball: must be .tar.[gz,xz], .tar or .tgz"
fi
fi
###########################################################################
. "$SCRIPT"
MIRRORS="$DEF_MIRROR"
if [ "$USER_MIRROR" != "" ]; then
MIRRORS="${USER_MIRROR%/}"
fi
export MIRRORS
ok=false
for v in $SUPPORTED_VARIANTS; do
if doing_variant "$v"; then ok=true; fi
done
if ! "$ok"; then
error 1 UNSUPPVARIANT "unsupported variant"
fi
###########################################################################
if am_doing_phase finddebs; then
if [ "$FINDDEBS_NEEDS_INDICES" = "true" ] || \
[ "$RESOLVE_DEPS" = "true" ]; then
download_indices
GOT_INDICES=true
fi
work_out_debs
base=$(without "$base $ADDITIONAL" "$EXCLUDE")
required=$(without "$required" "$EXCLUDE")
if [ "$RESOLVE_DEPS" = true ]; then
requiredX=$(echo "$required" | tr ' ' '\n' | sort | uniq)
baseX=$(echo "$base" | tr ' ' '\n' | sort | uniq)
info RESOLVEREQ "Resolving dependencies of required packages..."
required=$(resolve_deps "$requiredX")
info RESOLVEBASE "Resolving dependencies of base packages..."
base=$(resolve_deps "$baseX")
base=$(without "$base" "$required")
if [ "$LOG_EXTRA_DEPS" = true ]; then
baseN=$(without "$baseX" "$requiredX")
baseU=$(without "$baseX" "$baseN")
if [ "$baseU" != "" ]; then
info REDUNDANTBASE "Found packages in base already in required: %s" "$baseU"
fi
requiredX=$(without "$required" "$requiredX")
baseX=$(without "$base" "$baseX")
if [ "$requiredX" != "" ]; then
info NEWREQUIRED "Found additional required dependencies: %s" "$requiredX"
fi
if [ "$baseX" != "" ]; then
info NEWBASE "Found additional base dependencies: %s" "$baseX"
fi
fi
fi
all_debs="$required $base"
fi
if am_doing_phase printdebs; then
echo "$all_debs"
fi
if am_doing_phase dldebs; then
if [ "$GOT_INDICES" != "true" ]; then
download_indices
fi
download "$all_debs"
fi
if am_doing_phase save_variables; then
cp "$0" "$TARGET/debootstrap/debootstrap"
cp "$DEBOOTSTRAP_DIR/functions" "$TARGET/debootstrap/functions"
cp "$SCRIPT" "$TARGET/debootstrap/suite-script"
# pick up common setting scripts
cp "$DEBOOTSTRAP_DIR"/scripts/*-common "$TARGET/debootstrap/"
echo "$ARCH" >"$TARGET/debootstrap/arch"
echo "$SUITE" >"$TARGET/debootstrap/suite"
[ "" = "$EXTRA_SUITES" ] ||
echo "$EXTRA_SUITES" >"$TARGET/debootstrap/extra-suites"
[ "" = "$VARIANT" ] ||
echo "$VARIANT" >"$TARGET/debootstrap/variant"
echo "$required" >"$TARGET/debootstrap/required"
echo "$base" >"$TARGET/debootstrap/base"
chmod 755 "$TARGET/debootstrap/debootstrap"
fi
if am_doing_phase maketarball; then
(cd "$TARGET";
tar czf - var/lib/apt var/cache/apt debootstrap) >"$MAKE_TARBALL"
fi
if am_doing_phase first_stage; then
choose_extractor
if [ -n "$UNPACK_TARBALL" ]; then
required=$(cat "$TARGET/debootstrap/required")
base=$(cat "$TARGET/debootstrap/base")
all_debs="$required $base"
fi
# first stage sets up the chroot -- no calls should be made to
# "chroot $TARGET" here; but they should be possible by the time it's
# finished
first_stage_install
if ! am_doing_phase second_stage; then
cp "$0" "$TARGET/debootstrap/debootstrap"
cp "$DEBOOTSTRAP_DIR/functions" "$TARGET/debootstrap/functions"
cp "$SCRIPT" "$TARGET/debootstrap/suite-script"
# pick up common setting scripts
cp "$DEBOOTSTRAP_DIR"/scripts/*-common "$TARGET/debootstrap/"
echo "$ARCH" >"$TARGET/debootstrap/arch"
echo "$SUITE" >"$TARGET/debootstrap/suite"
[ "" = "$EXTRA_SUITES" ] ||
echo "$EXTRA_SUITES" >"$TARGET/debootstrap/extra-suites"
echo "$USER_MIRROR" >"$TARGET/debootstrap/mirror"
[ "" = "$VARIANT" ] ||
echo "$VARIANT" >"$TARGET/debootstrap/variant"
echo "$required" >"$TARGET/debootstrap/required"
echo "$base" >"$TARGET/debootstrap/base"
chmod 755 "$TARGET/debootstrap/debootstrap"
fi
# create sources.list
if [ "${MIRRORS#http*://}" != "$MIRRORS" ]; then
setup_apt_sources "${MIRRORS%% *}"
else
setup_apt_sources "$DEF_MIRROR"
fi
fi
if am_doing_phase second_stage; then
if [ "$SECOND_STAGE_ONLY" = true ]; then
required=$(cat "$DEBOOTSTRAP_DIR/required")
base=$(cat "$DEBOOTSTRAP_DIR/base")
all_debs="$required $base"
fi
# second stage uses the chroot to clean itself up -- has to be able to
# work from entirely within the chroot (in case we've booted into it,
# possibly over NFS eg)
second_stage_install
if [ -e "$TARGET/debootstrap/debootstrap.log" ]; then
if [ "$KEEP_DEBOOTSTRAP_DIR" = true ]; then
cp "$TARGET/debootstrap/debootstrap.log" "$TARGET/var/log/bootstrap.log"
else
# debootstrap.log is still open as stdout/stderr and needs
# to remain so, but after unlinking it some NFS servers
# implement this by a temporary file in the same directory,
# which makes it impossible to rmdir that directory.
# Moving it instead works around the problem.
mv "$TARGET/debootstrap/debootstrap.log" "$TARGET/var/log/bootstrap.log"
fi
fi
sync
if [ "$KEEP_DEBOOTSTRAP_DIR" = true ]; then
if [ -x "$TARGET/debootstrap/debootstrap" ]; then
chmod 644 "$TARGET/debootstrap/debootstrap"
fi
else
rm -rf "$TARGET/debootstrap"
fi
fi
if am_doing_phase kill_target; then
if [ "$KEEP_DEBOOTSTRAP_DIR" != true ]; then
info KILLTARGET "Deleting target directory"
rm -rf --one-file-system "$TARGET"
fi
fi

200
debootstrap.8 Normal file
View File

@ -0,0 +1,200 @@
.TH DEBOOTSTRAP 8 2001-04-27 "Debian Project" "Debian GNU/Linux manual"
.SH NAME
debootstrap \- Bootstrap a basic Debian system
.SH SYNOPSIS
.B debootstrap
.RB [ OPTION\&.\&.\&. ]
.I SUITE TARGET
.RI [ MIRROR
.RI [ SCRIPT ]]
.B debootstrap
.RB [ OPTION\&.\&.\&. ]
\-\-second\-stage
.SH DESCRIPTION
.B debootstrap
bootstraps a basic Debian system of
.I SUITE
into
.I TARGET
from
.I MIRROR
by running
.IR SCRIPT .
.I MIRROR
can be an http:// or https:// URL, a file:/// URL, or an ssh:/// URL.
.PP
The
.I SUITE
may be a release code name (eg, sid, stretch, jessie)
or a symbolic name (eg, unstable, testing, stable, oldstable)
.PP
Notice that file:/ URLs are translated to file:/// (correct scheme as
described in RFC1738 for local filenames), and file:// will \fBnot\fR work.
ssh://USER@HOST/PATH URLs are retrieved using
.BR scp ;
use of
.B ssh\-agent
or similar is strongly recommended.
.PP
\fBDebootstrap\fR can be used to install Debian in a system without using an
installation disk but can also be used to run a different Debian flavor in a \fBchroot\fR
environment.
This way you can create a full (minimal) Debian installation which
can be used for testing purposes (see the \fBEXAMPLES\fR section).
If you are looking for a chroot system to build packages please take a look at
\fBpbuilder\fR.
.SH "OPTIONS"
.PP
.IP "\fB\-\-arch=ARCH\fP"
Set the target architecture (use if dpkg isn't installed).
See also \-\-foreign.
.IP
.IP "\fB\-\-include=alpha,beta\fP"
Comma separated list of packages which will be added to download and extract
lists.
.IP
.IP "\fB\-\-exclude=alpha,beta\fP"
Comma separated list of packages which will be removed from download and
extract lists.
WARNING: you can and probably will exclude essential packages, be
careful using this option.
.IP
.IP "\fB\-\-extra-suites=alpha,beta\fP"
Also use packages from the listed suites of the archive.
.IP
.IP "\fB\-\-components=alpha,beta\fP"
Use packages from the listed components of the archive.
.IP
.IP "\fB\-\-no\-resolve\-deps\fP"
By default, debootstrap will attempt to automatically resolve any missing
dependencies, warning if any are found.
Note that this is not a complete dependency resolve in the sense of dpkg
or apt, and that it is far better to specify the entire base system than
rely on this option.
With this option set, this behaviour is disabled.
.IP
.IP "\fB\-\-log\-extra\-deps\fP"
If you want to record additional dependencies when resolving package dependencies,
set this option to track them through debootstrap.log.
.IP
.IP "\fB\-\-variant=minbase|buildd|fakechroot\fP"
Name of the bootstrap script variant to use.
Currently, the variants supported are minbase, which only includes
\fIrequired\fR packages and apt; buildd, which installs the build-essential
packages and fakechroot, which installs the packages without root privileges.
The default, with no \fB\-\-variant=X\fP argument, is to create a
base Debian installation with all packages of priority \fIrequired\fR and
\fIimportant\fR, including apt.
.IP
.IP "\fB\-\-merged-usr\fP"
Create /{bin,sbin,lib}/ symlinks pointing to their counterparts in /usr/.
(Default for most variants.)
.IP
.IP "\fB\-\-no-merged-usr\fP"
Do not create /{bin,sbin,lib}/ symlinks pointing to their counterparts in /usr/.
(Default for the buildd variant.)
.IP
.IP "\fB\-\-keyring=KEYRING\fP"
Override the default keyring for the distribution being bootstrapped,
and use
.IR KEYRING
to check signatures of retrieved Release files.
.IP
.IP "\fB\-\-no-check-gpg\fP"
Disables checking gpg signatures of retrieved Release files.
.IP
.IP "\fB\-\-force-check-gpg\fP"
Forces checking Release file signatures, disabling automatic fallback to
HTTPS in case of a missing keyring. Incompatible with the previous option.
.IP
.IP "\fB\-\-verbose\fP"
Produce more info about downloading.
.IP
.IP "\fB\-\-print\-debs\fP"
Print the packages to be installed, and exit.
Note that an empty or non-existing TARGET directory must be specified so
that debootstrap can download Packages files to determine which packages
should be installed, and to resolve dependencies. The TARGET directory
will be deleted unless \-\-keep\-debootstrap\-dir is specified.
.IP
.IP "\fB\-\-download\-only\fP"
Download packages, but don't perform installation.
.IP
.IP "\fB\-\-foreign\fP"
Do the initial unpack phase of bootstrapping only, for example if the
target architecture does not match the host architecture.
A copy of debootstrap sufficient for completing the bootstrap process
will be installed as /debootstrap/debootstrap in the target filesystem.
You can run it with the \fB\-\-second\-stage\fP option to complete the
bootstrapping process.
.IP
.IP "\fB\-\-second\-stage\fP"
Complete the bootstrapping process.
Other arguments are generally not needed.
.IP
.IP "\fB\-\-second\-stage\-target=DIR\fP"
Run second stage in a subdirectory instead of root. (can be used to create
a foreign chroot) (requires \-\-second\-stage)
.IP
.IP "\fB\-\-keep\-debootstrap\-dir\fP"
Don't delete the /debootstrap directory in the target after completing the
installation.
.IP
.IP "\fB\-\-cache\-dir=DIR\fP"
Cache .deb files under directory. It should be an absolute path.
.IP
.IP "\fB\-\-unpack\-tarball=FILE\fP"
Acquire .debs from gzipped tarball FILE (specified with absolute path)
instead of downloading via HTTP(S).
.IP
.IP "\fB\-\-make\-tarball=FILE\fP"
Instead of bootstrapping, make a gzipped tarball (written to FILE) of the
downloaded packages.
The resulting tarball may be passed to a later
.BR \-\-unpack\-tarball .
Note that an empty or non-existing TARGET directory must be specified so
that debootstrap can download packages to prepare the tarball. The TARGET
directory will be deleted unless \-\-keep\-debootstrap\-dir is specified.
.IP
.IP "\fB\-\-debian\-installer\fP"
Used for internal purposes by the debian-installer
.IP
.IP "\fB\-\-extractor=TYPE\fP"
Override automatic .deb extractor selection to
.IR TYPE .
Supported extractors are: dpkg-deb and ar.
.IP
.IP "\fB\-\-no\-check\-certificate\fP"
Do not check certificate against certificate authorities
.IP
.IP "\fB\-\-certificate=FILE\fP"
Use the client certificate stored in file (PEM)
.IP
.IP "\fB\-\-private\-key=FILE\fP"
Read the private key from file
.SH EXAMPLES
.
.PP
To setup a \fIstretch\fR system:
.PP
debootstrap stretch ./stretch-chroot http://deb.debian.org/debian
.PP
debootstrap stretch ./stretch-chroot file:///LOCAL_MIRROR/debian
.PP
Full process to create a complete Debian installation of \fIsid\fR (unstable)
in a chroot:
.PP
main # debootstrap sid sid-root http://deb.debian.org/debian/
[ ... watch it download the whole system ]
main # echo "proc sid-root/proc proc defaults 0 0" >> /etc/fstab
main # mount proc sid-root/proc -t proc
main # echo "sysfs sid-root/sys sysfs defaults 0 0" >> /etc/fstab
main # mount sysfs sid-root/sys -t sysfs
main # cp /etc/hosts sid-root/etc/hosts
main # chroot sid-root /bin/bash
.SH AUTHOR
.B debootstrap
was written by Anthony Towns <ajt@debian.org>.
This manpage was written by Matt Kraai <kraai@debian.org>.

1883
functions Normal file

File diff suppressed because it is too large Load Diff

202
scripts/aequorea Normal file
View File

@ -0,0 +1,202 @@
mirror_style release
download_style apt
finddebs_style from-indices
variants - buildd fakechroot minbase
keyring /usr/share/keyrings/tanglu-archive-keyring.gpg
default_mirror http://archive.tanglu.org/tanglu
if doing_variant fakechroot; then
test "$FAKECHROOT" = "true" || error 1 FAKECHROOTREQ "This variant requires fakechroot environment to be started"
fi
case $ARCH in
alpha|ia64) LIBC="libc6.1" ;;
kfreebsd-*) LIBC="libc0.1" ;;
hurd-*) LIBC="libc0.3" ;;
*) LIBC="libc6" ;;
esac
work_out_debs () {
required="$(get_debs Priority: required)"
if doing_variant - || doing_variant fakechroot; then
#required="$required $(get_debs Priority: important)"
# ^^ should be getting debconf here somehow maybe
base="$(get_debs Priority: important)"
# we want the Tanglu minimal dependency set to be installed
base="$base tanglu-minimal"
elif doing_variant buildd; then
base="apt build-essential"
elif doing_variant minbase; then
base="apt"
fi
if doing_variant fakechroot; then
# ldd.fake needs binutils
required="$required binutils"
fi
case $MIRRORS in
https://*)
base="$base apt-transport-https ca-certificates"
;;
esac
}
first_stage_install () {
extract $required
mkdir -p "$TARGET/var/lib/dpkg"
: >"$TARGET/var/lib/dpkg/status"
: >"$TARGET/var/lib/dpkg/available"
setup_etc
if [ ! -e "$TARGET/etc/fstab" ]; then
echo '# UNCONFIGURED FSTAB FOR BASE SYSTEM' > "$TARGET/etc/fstab"
chown 0:0 "$TARGET/etc/fstab"; chmod 644 "$TARGET/etc/fstab"
fi
setup_devices
x_feign_install () {
local pkg="$1"
local deb="$(debfor $pkg)"
local ver="$(extract_deb_field "$TARGET/$deb" Version)"
mkdir -p "$TARGET/var/lib/dpkg/info"
echo \
"Package: $pkg
Version: $ver
Maintainer: unknown
Status: install ok installed" >> "$TARGET/var/lib/dpkg/status"
touch "$TARGET/var/lib/dpkg/info/${pkg}.list"
}
x_feign_install dpkg
}
second_stage_install () {
setup_dynamic_devices
x_core_install () {
smallyes '' | in_target dpkg --force-depends --install $(debfor "$@")
}
p () {
baseprog="$(($baseprog + ${1:-1}))"
}
if doing_variant fakechroot || [ "$CONTAINER" = "docker" ]; then
setup_proc_symlink
else
setup_proc
in_target /sbin/ldconfig
fi
DEBIAN_FRONTEND=noninteractive
DEBCONF_NONINTERACTIVE_SEEN=true
export DEBIAN_FRONTEND DEBCONF_NONINTERACTIVE_SEEN
baseprog=0
bases=7
p; progress $baseprog $bases INSTCORE "Installing core packages" #1
info INSTCORE "Installing core packages..."
p; progress $baseprog $bases INSTCORE "Installing core packages" #2
ln -sf mawk "$TARGET/usr/bin/awk"
x_core_install base-passwd
x_core_install base-files
p; progress $baseprog $bases INSTCORE "Installing core packages" #3
x_core_install dpkg
if [ ! -e "$TARGET/etc/localtime" ]; then
ln -sf /usr/share/zoneinfo/UTC "$TARGET/etc/localtime"
fi
if doing_variant fakechroot; then
install_fakechroot_tools
fi
p; progress $baseprog $bases INSTCORE "Installing core packages" #4
x_core_install $LIBC
p; progress $baseprog $bases INSTCORE "Installing core packages" #5
x_core_install perl-base
p; progress $baseprog $bases INSTCORE "Installing core packages" #6
rm "$TARGET/usr/bin/awk"
x_core_install mawk
p; progress $baseprog $bases INSTCORE "Installing core packages" #7
if doing_variant -; then
x_core_install debconf
fi
baseprog=0
bases=$(set -- $required; echo $#)
info UNPACKREQ "Unpacking required packages..."
exec 7>&1
smallyes '' |
(repeatn 5 in_target_failmsg UNPACK_REQ_FAIL_FIVE "Failure while unpacking required packages. This will be attempted up to five times." "" \
dpkg --status-fd 8 --force-depends --unpack $(debfor $required) 8>&1 1>&7 || echo EXITCODE $?) |
dpkg_progress $baseprog $bases UNPACKREQ "Unpacking required packages" UNPACKING
info CONFREQ "Configuring required packages..."
mv "$TARGET/sbin/start-stop-daemon" "$TARGET/sbin/start-stop-daemon.REAL"
echo \
"#!/bin/sh
echo
echo \"Warning: Fake start-stop-daemon called, doing nothing\"" > "$TARGET/sbin/start-stop-daemon"
chmod 755 "$TARGET/sbin/start-stop-daemon"
setup_dselect_method apt
smallyes '' |
(in_target_failmsg CONF_REQ_FAIL "Failure while configuring required packages." "" \
dpkg --status-fd 8 --configure --pending --force-configure-any --force-depends 8>&1 1>&7 || echo EXITCODE $?) |
dpkg_progress $baseprog $bases CONFREQ "Configuring required packages" CONFIGURING
baseprog=0
bases="$(set -- $base; echo $#)"
info UNPACKBASE "Unpacking the base system..."
setup_available $required $base
done_predeps=
while predep=$(get_next_predep); do
# We have to resolve dependencies of pre-dependencies manually because
# dpkg --predep-package doesn't handle this.
predep=$(without "$(without "$(resolve_deps $predep)" "$required")" "$done_predeps")
# XXX: progress is tricky due to how dpkg_progress works
# -- cjwatson 2009-07-29
p; smallyes '' |
in_target dpkg --force-overwrite --force-confold --skip-same-version --install $(debfor $predep)
base=$(without "$base" "$predep")
done_predeps="$done_predeps $predep"
done
smallyes '' |
(repeatn 5 in_target_failmsg INST_BASE_FAIL_FIVE "Failure while installing base packages. This will be re-attempted up to five times." "" \
dpkg --status-fd 8 --force-overwrite --force-confold --skip-same-version --unpack $(debfor $base) 8>&1 1>&7 || echo EXITCODE $?) |
dpkg_progress $baseprog $bases UNPACKBASE "Unpacking base system" UNPACKING
info CONFBASE "Configuring the base system..."
smallyes '' |
(repeatn 5 in_target_failmsg CONF_BASE_FAIL_FIVE "Failure while configuring base packages. This will be re-attempted up to five times." "" \
dpkg --status-fd 8 --force-confold --skip-same-version --configure -a 8>&1 1>&7 || echo EXITCODE $?) |
dpkg_progress $baseprog $bases CONFBASE "Configuring base system" CONFIGURING
mv "$TARGET/sbin/start-stop-daemon.REAL" "$TARGET/sbin/start-stop-daemon"
progress $bases $bases CONFBASE "Configuring base system"
info BASESUCCESS "Base system installed successfully."
}

1
scripts/artful Symbolic link
View File

@ -0,0 +1 @@
gutsy

1
scripts/ascii Symbolic link
View File

@ -0,0 +1 @@
sid

1
scripts/bartholomea Symbolic link
View File

@ -0,0 +1 @@
aequorea

1
scripts/beowulf Symbolic link
View File

@ -0,0 +1 @@
sid

1
scripts/bionic Symbolic link
View File

@ -0,0 +1 @@
gutsy

1
scripts/bookworm Symbolic link
View File

@ -0,0 +1 @@
sid

164
scripts/breezy Normal file
View File

@ -0,0 +1,164 @@
default_mirror http://old-releases.ubuntu.com/ubuntu
mirror_style release
download_style apt
finddebs_style from-indices
variants - buildd
force_md5
case $ARCH in
alpha|ia64) LIBC="libc6.1" ;;
*) LIBC="libc6" ;;
esac
work_out_debs () {
required="$(get_debs Priority: required)"
if doing_variant -; then
#required="$required $(get_debs Priority: important)"
# ^^ should be getting debconf here somehow maybe
base="$(get_debs Priority: important)"
elif doing_variant buildd; then
# TODO: add Build-Essential: yes extraoverrides
#base="$(get_debs Build-Essential: yes)"
add () { if [ "$ARCH" = "$1" ]; then eval "$2=\"\$$2 $3\""; fi; }
base="apt binutils cpio cpp cpp-4.0 dpkg-dev g++ g++-4.0 gcc gcc-4.0 gcc-4.0-base ${LIBC}-dev libdb4.2 libgdbm3 libstdc++6 libstdc++6-4.0-dev linux-kernel-headers make patch perl perl-modules"
add ia64 base "libunwind7-dev"
add sparc base "lib64gcc1"
add sparc base "libc6-dev-sparc64"
add sparc base "libc6-sparc64"
fi
}
first_stage_install () {
extract $required
mkdir -p "$TARGET/var/lib/dpkg"
: >"$TARGET/var/lib/dpkg/status"
echo >"$TARGET/var/lib/dpkg/available"
setup_etc
if [ ! -e "$TARGET/etc/fstab" ]; then
echo '# UNCONFIGURED FSTAB FOR BASE SYSTEM' > "$TARGET/etc/fstab"
chown 0:0 "$TARGET/etc/fstab"; chmod 644 "$TARGET/etc/fstab"
fi
setup_devices
x_feign_install () {
local pkg="$1"
local deb="$(debfor $pkg)"
local ver="$(extract_deb_field "$TARGET/$deb" Version)"
mkdir -p "$TARGET/var/lib/dpkg/info"
echo \
"Package: $pkg
Version: $ver
Status: install ok installed" >> "$TARGET/var/lib/dpkg/status"
touch "$TARGET/var/lib/dpkg/info/${pkg}.list"
}
x_feign_install dpkg
}
second_stage_install () {
x_core_install () {
smallyes '' | in_target dpkg --force-depends --install $(debfor "$@")
}
p () {
baseprog="$(($baseprog + ${1:-1}))"
}
setup_proc
umount_on_exit /dev/.static/dev
umount_on_exit /dev
in_target /sbin/ldconfig
DEBIAN_FRONTEND=noninteractive
DEBCONF_NONINTERACTIVE_SEEN=true
export DEBIAN_FRONTEND DEBCONF_NONINTERACTIVE_SEEN
baseprog=0
bases=7
p; progress $baseprog $bases INSTCORE "Installing core packages" #1
info INSTCORE "Installing core packages..."
p; progress $baseprog $bases INSTCORE "Installing core packages" #2
ln -sf mawk "$TARGET/usr/bin/awk"
x_core_install base-files base-passwd
p; progress $baseprog $bases INSTCORE "Installing core packages" #3
x_core_install dpkg
if [ ! -e "$TARGET/etc/localtime" ]; then
ln -sf /usr/share/zoneinfo/UTC "$TARGET/etc/localtime"
fi
p; progress $baseprog $bases INSTCORE "Installing core packages" #4
x_core_install $LIBC
p; progress $baseprog $bases INSTCORE "Installing core packages" #5
x_core_install perl-base
p; progress $baseprog $bases INSTCORE "Installing core packages" #6
rm "$TARGET/usr/bin/awk"
x_core_install mawk
p; progress $baseprog $bases INSTCORE "Installing core packages" #7
if doing_variant -; then
x_core_install debconf
fi
baseprog=0
bases=$(set -- $required; echo $#)
info UNPACKREQ "Unpacking required packages..."
smallyes '' |
(repeatn 5 in_target_failmsg UNPACK_REQ_FAIL_FIVE "Failure while unpacking required packages. This will be attempted up to five times." "" \
dpkg --status-fd 8 --force-depends --unpack $(debfor $required) 8>&1 1>&7 |
dpkg_progress $baseprog $bases UNPACKREQ "Unpacking required packages" UNPACKING) 7>&1
info CONFREQ "Configuring required packages..."
mv "$TARGET/sbin/start-stop-daemon" "$TARGET/sbin/start-stop-daemon.REAL"
echo \
"#!/bin/sh
echo
echo \"Warning: Fake start-stop-daemon called, doing nothing\"" > "$TARGET/sbin/start-stop-daemon"
chmod 755 "$TARGET/sbin/start-stop-daemon"
setup_dselect_method apt
smallyes '' |
(in_target_failmsg CONF_REQ_FAIL "Failure while configuring required packages." "" \
dpkg --status-fd 8 --configure --pending --force-configure-any --force-depends 8>&1 1>&7 |
dpkg_progress $baseprog $bases CONFREQ "Configuring required packages" CONFIGURING) 7>&1
baseprog=0
bases="$(set -- $base; echo $#)"
info UNPACKBASE "Unpacking the base system..."
smallyes '' |
(repeatn 5 in_target_failmsg INST_BASE_FAIL_FIVE "Failure while installing base packages. This will be re-attempted up to five times." "" \
dpkg --status-fd 8 --force-auto-select --force-overwrite --force-confold --skip-same-version --unpack $(debfor $base) 8>&1 1>&7 |
dpkg_progress $baseprog $bases UNPACKBASE "Unpacking base system" UNPACKING) 7>&1
info CONFBASE "Configuring the base system..."
smallyes '' |
(repeatn 5 in_target_failmsg CONF_BASE_FAIL_FIVE "Failure while configuring base packages. This will be attempted 5 times." "" \
dpkg --status-fd 8 --force-confold --skip-same-version --configure -a 8>&1 1>&7 |
dpkg_progress $baseprog $bases CONFBASE "Configuring base system" CONFIGURING) 7>&1
mv "$TARGET/sbin/start-stop-daemon.REAL" "$TARGET/sbin/start-stop-daemon"
progress $bases $bases CONFBASE "Configuring base system"
info BASESUCCESS "Base system installed successfully."
}

1
scripts/bullseye Symbolic link
View File

@ -0,0 +1 @@
sid

1
scripts/buster Symbolic link
View File

@ -0,0 +1 @@
sid

1
scripts/ceres Symbolic link
View File

@ -0,0 +1 @@
sid

1
scripts/chromodoris Symbolic link
View File

@ -0,0 +1 @@
aequorea

1
scripts/cosmic Symbolic link
View File

@ -0,0 +1 @@
gutsy

169
scripts/dapper Normal file
View File

@ -0,0 +1,169 @@
case $ARCH in
amd64|i386|powerpc|sparc)
default_mirror http://archive.ubuntu.com/ubuntu
;;
*)
default_mirror http://ports.ubuntu.com/ubuntu-ports
;;
esac
mirror_style release
download_style apt
finddebs_style from-indices
variants - buildd
force_md5
case $ARCH in
alpha|ia64) LIBC="libc6.1" ;;
*) LIBC="libc6" ;;
esac
work_out_debs () {
required="$(get_debs Priority: required)"
if doing_variant -; then
#required="$required $(get_debs Priority: important)"
# ^^ should be getting debconf here somehow maybe
base="$(get_debs Priority: important)"
elif doing_variant buildd; then
# TODO: add Build-Essential: yes extraoverrides
#base="$(get_debs Build-Essential: yes)"
add () { if [ "$ARCH" = "$1" ]; then eval "$2=\"\$$2 $3\""; fi; }
base="apt binutils cpio cpp cpp-4.0 dpkg-dev g++ g++-4.0 gcc gcc-4.0 ${LIBC}-dev libgdbm3 libstdc++6 libstdc++6-4.0-dev linux-kernel-headers make patch perl perl-modules"
add ia64 base "libunwind7-dev"
add sparc base "lib64gcc1"
add sparc base "libc6-dev-sparc64"
add sparc base "libc6-sparc64"
fi
}
first_stage_install () {
extract $required
mkdir -p "$TARGET/var/lib/dpkg"
: >"$TARGET/var/lib/dpkg/status"
: >"$TARGET/var/lib/dpkg/available"
setup_etc
if [ ! -e "$TARGET/etc/fstab" ]; then
echo '# UNCONFIGURED FSTAB FOR BASE SYSTEM' > "$TARGET/etc/fstab"
chown 0:0 "$TARGET/etc/fstab"; chmod 644 "$TARGET/etc/fstab"
fi
setup_devices
x_feign_install () {
local pkg="$1"
local deb="$(debfor $pkg)"
local ver="$(extract_deb_field "$TARGET/$deb" Version)"
mkdir -p "$TARGET/var/lib/dpkg/info"
echo \
"Package: $pkg
Version: $ver
Status: install ok installed" >> "$TARGET/var/lib/dpkg/status"
touch "$TARGET/var/lib/dpkg/info/${pkg}.list"
}
x_feign_install dpkg
}
second_stage_install () {
x_core_install () {
smallyes '' | in_target dpkg --force-depends --install $(debfor "$@")
}
p () {
baseprog="$(($baseprog + ${1:-1}))"
}
setup_proc
in_target /sbin/ldconfig
DEBIAN_FRONTEND=noninteractive
DEBCONF_NONINTERACTIVE_SEEN=true
export DEBIAN_FRONTEND DEBCONF_NONINTERACTIVE_SEEN
baseprog=0
bases=7
p; progress $baseprog $bases INSTCORE "Installing core packages" #1
info INSTCORE "Installing core packages..."
p; progress $baseprog $bases INSTCORE "Installing core packages" #2
ln -sf mawk "$TARGET/usr/bin/awk"
x_core_install base-files base-passwd
p; progress $baseprog $bases INSTCORE "Installing core packages" #3
x_core_install dpkg
if [ ! -e "$TARGET/etc/localtime" ]; then
ln -sf /usr/share/zoneinfo/UTC "$TARGET/etc/localtime"
fi
p; progress $baseprog $bases INSTCORE "Installing core packages" #4
x_core_install $LIBC
p; progress $baseprog $bases INSTCORE "Installing core packages" #5
x_core_install perl-base
p; progress $baseprog $bases INSTCORE "Installing core packages" #6
rm "$TARGET/usr/bin/awk"
x_core_install mawk
p; progress $baseprog $bases INSTCORE "Installing core packages" #7
if doing_variant -; then
x_core_install debconf
fi
baseprog=0
bases=$(set -- $required; echo $#)
info UNPACKREQ "Unpacking required packages..."
smallyes '' |
(repeatn 5 in_target_failmsg UNPACK_REQ_FAIL_FIVE "Failure while unpacking required packages. This will be attempted up to five times." "" \
dpkg --status-fd 8 --force-depends --unpack $(debfor $required) 8>&1 1>&7 |
dpkg_progress $baseprog $bases UNPACKREQ "Unpacking required packages" UNPACKING) 7>&1
info CONFREQ "Configuring required packages..."
mv "$TARGET/sbin/start-stop-daemon" "$TARGET/sbin/start-stop-daemon.REAL"
echo \
"#!/bin/sh
echo
echo \"Warning: Fake start-stop-daemon called, doing nothing\"" > "$TARGET/sbin/start-stop-daemon"
chmod 755 "$TARGET/sbin/start-stop-daemon"
setup_dselect_method apt
smallyes '' |
(in_target_failmsg CONF_REQ_FAIL "Failure while configuring required packages." "" \
dpkg --status-fd 8 --configure --pending --force-configure-any --force-depends 8>&1 1>&7 |
dpkg_progress $baseprog $bases CONFREQ "Configuring required packages" CONFIGURING) 7>&1
baseprog=0
bases="$(set -- $base; echo $#)"
info UNPACKBASE "Unpacking the base system..."
smallyes '' |
(repeatn 5 in_target_failmsg INST_BASE_FAIL_FIVE "Failure while installing base packages. This will be re-attempted up to five times." "" \
dpkg --status-fd 8 --force-auto-select --force-overwrite --force-confold --skip-same-version --unpack $(debfor $base) 8>&1 1>&7 |
dpkg_progress $baseprog $bases UNPACKBASE "Unpacking base system" UNPACKING) 7>&1
info CONFBASE "Configuring the base system..."
smallyes '' |
(repeatn 5 in_target_failmsg CONF_BASE_FAIL_FIVE "Failure while configuring base packages. This will be attempted 5 times." "" \
dpkg --status-fd 8 --force-confold --skip-same-version --configure -a 8>&1 1>&7 |
dpkg_progress $baseprog $bases CONFBASE "Configuring base system" CONFIGURING) 7>&1
mv "$TARGET/sbin/start-stop-daemon.REAL" "$TARGET/sbin/start-stop-daemon"
progress $bases $bases CONFBASE "Configuring base system"
info BASESUCCESS "Base system installed successfully."
}

1
scripts/dasyatis Symbolic link
View File

@ -0,0 +1 @@
aequorea

220
scripts/debian-common Normal file
View File

@ -0,0 +1,220 @@
if doing_variant fakechroot; then
test "$FAKECHROOT" = "true" || error 1 FAKECHROOTREQ "This variant requires fakechroot environment to be started"
fi
case $ARCH in
alpha|ia64) LIBC="libc6.1" ;;
kfreebsd-*) LIBC="libc0.1" ;;
hurd-*) LIBC="libc0.3" ;;
*) LIBC="libc6" ;;
esac
work_out_debs () {
required="$(get_debs Priority: required)"
if doing_variant - || doing_variant fakechroot; then
#required="$required $(get_debs Priority: important)"
# ^^ should be getting debconf here somehow maybe
base="$(get_debs Priority: important)"
elif doing_variant buildd; then
base="apt build-essential"
elif doing_variant minbase; then
base="apt"
fi
if doing_variant fakechroot; then
# ldd.fake needs binutils
required="$required binutils"
fi
case $MIRRORS in
https://*)
base="$base apt-transport-https ca-certificates"
;;
esac
}
first_stage_install () {
case "$CODENAME" in
# "merged-usr" blacklist for past releases
etch*|lenny|squeeze|wheezy|jessie*)
[ -z "$MERGED_USR" ] && MERGED_USR="no"
;;
*)
# see https://bugs.debian.org/838388
EXTRACT_DEB_TAR_OPTIONS="$EXTRACT_DEB_TAR_OPTIONS -k"
;;
esac
if [ "$CODENAME" = "stretch" ] && [ -z "$MERGED_USR" ]; then
MERGED_USR="no"
fi
setup_merged_usr
extract $required
mkdir -p "$TARGET/var/lib/dpkg"
: >"$TARGET/var/lib/dpkg/status"
: >"$TARGET/var/lib/dpkg/available"
setup_etc
if [ ! -e "$TARGET/etc/fstab" ]; then
echo '# UNCONFIGURED FSTAB FOR BASE SYSTEM' > "$TARGET/etc/fstab"
chown 0:0 "$TARGET/etc/fstab"; chmod 644 "$TARGET/etc/fstab"
fi
setup_devices
if doing_variant fakechroot || [ "$CONTAINER" = "docker" ]; then
setup_proc_symlink
fi
}
second_stage_install () {
in_target /bin/true
setup_dynamic_devices
x_feign_install () {
local pkg="$1"
local deb="$(debfor $pkg)"
local ver="$(in_target dpkg-deb -f "$deb" Version)"
mkdir -p "$TARGET/var/lib/dpkg/info"
echo \
"Package: $pkg
Version: $ver
Maintainer: unknown
Status: install ok installed" >> "$TARGET/var/lib/dpkg/status"
touch "$TARGET/var/lib/dpkg/info/${pkg}.list"
}
x_feign_install dpkg
x_core_install () {
smallyes '' | in_target dpkg --force-depends --install $(debfor "$@")
}
p () {
baseprog="$(($baseprog + ${1:-1}))"
}
if ! doing_variant fakechroot; then
setup_proc
in_target /sbin/ldconfig
fi
DEBIAN_FRONTEND=noninteractive
DEBCONF_NONINTERACTIVE_SEEN=true
export DEBIAN_FRONTEND DEBCONF_NONINTERACTIVE_SEEN
baseprog=0
bases=7
p; progress $baseprog $bases INSTCORE "Installing core packages" #1
info INSTCORE "Installing core packages..."
p; progress $baseprog $bases INSTCORE "Installing core packages" #2
ln -sf mawk "$TARGET/usr/bin/awk"
x_core_install base-passwd
x_core_install base-files
p; progress $baseprog $bases INSTCORE "Installing core packages" #3
x_core_install dpkg
if [ ! -e "$TARGET/etc/localtime" ]; then
ln -sf /usr/share/zoneinfo/UTC "$TARGET/etc/localtime"
fi
if doing_variant fakechroot; then
install_fakechroot_tools
fi
p; progress $baseprog $bases INSTCORE "Installing core packages" #4
x_core_install $LIBC
p; progress $baseprog $bases INSTCORE "Installing core packages" #5
x_core_install perl-base
p; progress $baseprog $bases INSTCORE "Installing core packages" #6
rm "$TARGET/usr/bin/awk"
x_core_install mawk
p; progress $baseprog $bases INSTCORE "Installing core packages" #7
if doing_variant -; then
x_core_install debconf
fi
baseprog=0
bases=$(set -- $required; echo $#)
info UNPACKREQ "Unpacking required packages..."
exec 7>&1
smallyes '' |
(repeatn 5 in_target_failmsg UNPACK_REQ_FAIL_FIVE "Failure while unpacking required packages. This will be attempted up to five times." "" \
dpkg --status-fd 8 --force-depends --unpack $(debfor $required) 8>&1 1>&7 || echo EXITCODE $?) |
dpkg_progress $baseprog $bases UNPACKREQ "Unpacking required packages" UNPACKING
info CONFREQ "Configuring required packages..."
echo \
"#!/bin/sh
exit 101" > "$TARGET/usr/sbin/policy-rc.d"
chmod 755 "$TARGET/usr/sbin/policy-rc.d"
mv "$TARGET/sbin/start-stop-daemon" "$TARGET/sbin/start-stop-daemon.REAL"
echo \
"#!/bin/sh
echo
echo \"Warning: Fake start-stop-daemon called, doing nothing\"" > "$TARGET/sbin/start-stop-daemon"
chmod 755 "$TARGET/sbin/start-stop-daemon"
setup_dselect_method apt
smallyes '' |
(in_target_failmsg CONF_REQ_FAIL "Failure while configuring required packages." "" \
dpkg --status-fd 8 --configure --pending --force-configure-any --force-depends 8>&1 1>&7 || echo EXITCODE $?) |
dpkg_progress $baseprog $bases CONFREQ "Configuring required packages" CONFIGURING
baseprog=0
bases="$(set -- $base; echo $#)"
info UNPACKBASE "Unpacking the base system..."
setup_available $required $base
done_predeps=
while predep=$(get_next_predep); do
# We have to resolve dependencies of pre-dependencies manually because
# dpkg --predep-package doesn't handle this.
predep=$(without "$(without "$(resolve_deps $predep)" "$required")" "$done_predeps")
# XXX: progress is tricky due to how dpkg_progress works
# -- cjwatson 2009-07-29
p; smallyes '' |
in_target dpkg --force-overwrite --force-confold --skip-same-version --install $(debfor $predep)
base=$(without "$base" "$predep")
done_predeps="$done_predeps $predep"
done
if [ -n "$base" ]; then
smallyes '' |
(repeatn 5 in_target_failmsg INST_BASE_FAIL_FIVE "Failure while installing base packages. This will be re-attempted up to five times." "" \
dpkg --status-fd 8 --force-overwrite --force-confold --skip-same-version --unpack $(debfor $base) 8>&1 1>&7 || echo EXITCODE $?) |
dpkg_progress $baseprog $bases UNPACKBASE "Unpacking base system" UNPACKING
info CONFBASE "Configuring the base system..."
smallyes '' |
(repeatn 5 in_target_failmsg CONF_BASE_FAIL_FIVE "Failure while configuring base packages. This will be re-attempted up to five times." "" \
dpkg --status-fd 8 --force-confold --skip-same-version --configure -a 8>&1 1>&7 || echo EXITCODE $?) |
dpkg_progress $baseprog $bases CONFBASE "Configuring base system" CONFIGURING
fi
mv "$TARGET/sbin/start-stop-daemon.REAL" "$TARGET/sbin/start-stop-daemon"
rm -f "$TARGET/usr/sbin/policy-rc.d"
progress $bases $bases CONFBASE "Configuring base system"
info BASESUCCESS "Base system installed successfully."
}

1
scripts/disco Symbolic link
View File

@ -0,0 +1 @@
gutsy

188
scripts/edgy Normal file
View File

@ -0,0 +1,188 @@
case $ARCH in
amd64|i386|powerpc|sparc)
default_mirror http://old-releases.ubuntu.com/ubuntu
;;
*)
default_mirror http://ports.ubuntu.com/ubuntu-ports
;;
esac
mirror_style release
download_style apt
finddebs_style from-indices
variants - buildd fakechroot
force_md5
if doing_variant fakechroot; then
test "$FAKECHROOT" = "true" || error 1 FAKECHROOTREQ "This variant requires fakechroot environment to be started"
fi
case $ARCH in
alpha|ia64) LIBC="libc6.1" ;;
*) LIBC="libc6" ;;
esac
work_out_debs () {
required="$(get_debs Priority: required)"
if doing_variant -; then
#required="$required $(get_debs Priority: important)"
# ^^ should be getting debconf here somehow maybe
base="$(get_debs Priority: important)"
elif doing_variant buildd; then
# TODO: add Build-Essential: yes extraoverrides
#base="$(get_debs Build-Essential: yes)"
add () { if [ "$ARCH" = "$1" ]; then eval "$2=\"\$$2 $3\""; fi; }
base="apt binutils cpio cpp cpp-4.1 dpkg-dev g++ g++-4.1 gcc gcc-4.1 ${LIBC}-dev libdb4.4 libgdbm3 libstdc++6 libstdc++6-4.1-dev linux-libc-dev make patch perl perl-modules"
add ia64 base "libunwind7-dev"
add sparc base "lib64gcc1"
add sparc base "libc6-dev-sparc64"
add sparc base "libc6-sparc64"
elif doing_variant fakechroot; then
base="apt"
fi
}
first_stage_install () {
extract $required
mkdir -p "$TARGET/var/lib/dpkg"
: >"$TARGET/var/lib/dpkg/status"
: >"$TARGET/var/lib/dpkg/available"
setup_etc
if [ ! -e "$TARGET/etc/fstab" ]; then
echo '# UNCONFIGURED FSTAB FOR BASE SYSTEM' > "$TARGET/etc/fstab"
chown 0:0 "$TARGET/etc/fstab"; chmod 644 "$TARGET/etc/fstab"
fi
setup_devices
x_feign_install () {
local pkg="$1"
local deb="$(debfor $pkg)"
local ver="$(extract_deb_field "$TARGET/$deb" Version)"
mkdir -p "$TARGET/var/lib/dpkg/info"
echo \
"Package: $pkg
Version: $ver
Status: install ok installed" >> "$TARGET/var/lib/dpkg/status"
touch "$TARGET/var/lib/dpkg/info/${pkg}.list"
}
x_feign_install dpkg
}
second_stage_install () {
x_core_install () {
smallyes '' | in_target dpkg --force-depends --install $(debfor "$@")
}
p () {
baseprog="$(($baseprog + ${1:-1}))"
}
if doing_variant fakechroot || [ "$CONTAINER" = "docker" ]; then
setup_proc_symlink
else
setup_proc
in_target /sbin/ldconfig
fi
DEBIAN_FRONTEND=noninteractive
DEBCONF_NONINTERACTIVE_SEEN=true
export DEBIAN_FRONTEND DEBCONF_NONINTERACTIVE_SEEN
baseprog=0
bases=7
p; progress $baseprog $bases INSTCORE "Installing core packages" #1
info INSTCORE "Installing core packages..."
p; progress $baseprog $bases INSTCORE "Installing core packages" #2
ln -sf mawk "$TARGET/usr/bin/awk"
x_core_install base-files base-passwd
p; progress $baseprog $bases INSTCORE "Installing core packages" #3
x_core_install dpkg
if [ ! -e "$TARGET/etc/localtime" ]; then
ln -sf /usr/share/zoneinfo/UTC "$TARGET/etc/localtime"
fi
if doing_variant fakechroot; then
install_fakechroot_tools
fi
p; progress $baseprog $bases INSTCORE "Installing core packages" #4
x_core_install $LIBC
p; progress $baseprog $bases INSTCORE "Installing core packages" #5
x_core_install perl-base
p; progress $baseprog $bases INSTCORE "Installing core packages" #6
rm "$TARGET/usr/bin/awk"
x_core_install mawk
p; progress $baseprog $bases INSTCORE "Installing core packages" #7
if doing_variant -; then
x_core_install debconf
fi
baseprog=0
bases=$(set -- $required; echo $#)
info UNPACKREQ "Unpacking required packages..."
smallyes '' |
(repeatn 5 in_target_failmsg UNPACK_REQ_FAIL_FIVE "Failure while unpacking required packages. This will be attempted up to five times." "" \
dpkg --status-fd 8 --force-depends --unpack $(debfor $required) 8>&1 1>&7 |
dpkg_progress $baseprog $bases UNPACKREQ "Unpacking required packages" UNPACKING) 7>&1
info CONFREQ "Configuring required packages..."
if doing_variant fakechroot; then
# fix initscripts postinst (no mounting possible, and wrong if condition)
sed -i '/dpkg.*--compare-versions/ s/\<lt\>/lt-nl/' "$TARGET/var/lib/dpkg/info/initscripts.postinst"
fi
mv "$TARGET/sbin/start-stop-daemon" "$TARGET/sbin/start-stop-daemon.REAL"
echo \
"#!/bin/sh
echo
echo \"Warning: Fake start-stop-daemon called, doing nothing\"" > "$TARGET/sbin/start-stop-daemon"
chmod 755 "$TARGET/sbin/start-stop-daemon"
setup_dselect_method apt
smallyes '' |
(in_target_failmsg CONF_REQ_FAIL "Failure while configuring required packages." "" \
dpkg --status-fd 8 --configure --pending --force-configure-any --force-depends 8>&1 1>&7 |
dpkg_progress $baseprog $bases CONFREQ "Configuring required packages" CONFIGURING) 7>&1
baseprog=0
bases="$(set -- $base; echo $#)"
info UNPACKBASE "Unpacking the base system..."
smallyes '' |
(repeatn 5 in_target_failmsg INST_BASE_FAIL_FIVE "Failure while installing base packages. This will be re-attempted up to five times." "" \
dpkg --status-fd 8 --force-overwrite --force-confold --skip-same-version --unpack $(debfor $base) 8>&1 1>&7 |
dpkg_progress $baseprog $bases UNPACKBASE "Unpacking base system" UNPACKING) 7>&1
info CONFBASE "Configuring the base system..."
smallyes '' |
(repeatn 5 in_target_failmsg CONF_BASE_FAIL_FIVE "Failure while configuring base packages. This will be attempted 5 times." "" \
dpkg --status-fd 8 --force-confold --skip-same-version --configure -a 8>&1 1>&7 |
dpkg_progress $baseprog $bases CONFBASE "Configuring base system" CONFIGURING) 7>&1
mv "$TARGET/sbin/start-stop-daemon.REAL" "$TARGET/sbin/start-stop-daemon"
progress $bases $bases CONFBASE "Configuring base system"
info BASESUCCESS "Base system installed successfully."
}

1
scripts/eoan Symbolic link
View File

@ -0,0 +1 @@
gutsy

18
scripts/etch Normal file
View File

@ -0,0 +1,18 @@
mirror_style release
download_style apt
finddebs_style from-indices
variants - buildd fakechroot minbase
default_mirror http://archive.debian.org/debian
keyring /usr/share/keyrings/debian-archive-removed-keys.gpg
force_md5
# include common settings
if [ -e "$DEBOOTSTRAP_DIR/scripts/debian-common" ]; then
. "$DEBOOTSTRAP_DIR/scripts/debian-common"
elif [ -e /debootstrap/debian-common ]; then
. /debootstrap/debian-common
elif [ -e "$DEBOOTSTRAP_DIR/debian-common" ]; then
. "$DEBOOTSTRAP_DIR/debian-common"
else
error 1 NOCOMMON "File not found: debian-common"
fi

1
scripts/etch-m68k Symbolic link
View File

@ -0,0 +1 @@
etch

190
scripts/feisty Normal file
View File

@ -0,0 +1,190 @@
case $ARCH in
amd64|i386|powerpc|sparc)
default_mirror http://old-releases.ubuntu.com/ubuntu
;;
*)
default_mirror http://ports.ubuntu.com/ubuntu-ports
;;
esac
mirror_style release
download_style apt
finddebs_style from-indices
variants - buildd fakechroot
if doing_variant fakechroot; then
test "$FAKECHROOT" = "true" || error 1 FAKECHROOTREQ "This variant requires fakechroot environment to be started"
fi
case $ARCH in
alpha|ia64) LIBC="libc6.1" ;;
*) LIBC="libc6" ;;
esac
work_out_debs () {
required="$(get_debs Priority: required)"
if doing_variant -; then
#required="$required $(get_debs Priority: important)"
# ^^ should be getting debconf here somehow maybe
base="$(get_debs Priority: important)"
elif doing_variant buildd; then
# TODO: add Build-Essential: yes extraoverrides
#base="$(get_debs Build-Essential: yes)"
add () { if [ "$ARCH" = "$1" ]; then eval "$2=\"\$$2 $3\""; fi; }
base="apt binutils cpio cpp cpp-4.1 dpkg-dev g++ g++-4.1 gcc gcc-4.1 ${LIBC}-dev libdb4.4 libgdbm3 libstdc++6 libstdc++6-4.1-dev linux-libc-dev make patch perl perl-modules"
add ia64 base "libunwind7-dev"
add sparc base "lib64gcc1"
add sparc base "libc6-dev-sparc64"
add sparc base "libc6-sparc64"
elif doing_variant fakechroot; then
base="apt"
fi
}
first_stage_install () {
extract $required
mkdir -p "$TARGET/var/lib/dpkg"
: >"$TARGET/var/lib/dpkg/status"
: >"$TARGET/var/lib/dpkg/available"
setup_etc
if [ ! -e "$TARGET/etc/fstab" ]; then
echo '# UNCONFIGURED FSTAB FOR BASE SYSTEM' > "$TARGET/etc/fstab"
chown 0:0 "$TARGET/etc/fstab"; chmod 644 "$TARGET/etc/fstab"
fi
setup_devices
x_feign_install () {
local pkg="$1"
local deb="$(debfor $pkg)"
local ver="$(extract_deb_field "$TARGET/$deb" Version)"
mkdir -p "$TARGET/var/lib/dpkg/info"
echo \
"Package: $pkg
Version: $ver
Status: install ok installed" >> "$TARGET/var/lib/dpkg/status"
touch "$TARGET/var/lib/dpkg/info/${pkg}.list"
}
x_feign_install dpkg
}
second_stage_install () {
x_core_install () {
smallyes '' | in_target dpkg --force-depends --install $(debfor "$@")
}
p () {
baseprog="$(($baseprog + ${1:-1}))"
}
if doing_variant fakechroot || [ "$CONTAINER" = "docker" ]; then
setup_proc_symlink
else
setup_proc
in_target /sbin/ldconfig
fi
DEBIAN_FRONTEND=noninteractive
DEBCONF_NONINTERACTIVE_SEEN=true
export DEBIAN_FRONTEND DEBCONF_NONINTERACTIVE_SEEN
baseprog=0
bases=7
p; progress $baseprog $bases INSTCORE "Installing core packages" #1
info INSTCORE "Installing core packages..."
p; progress $baseprog $bases INSTCORE "Installing core packages" #2
ln -sf mawk "$TARGET/usr/bin/awk"
x_core_install base-files base-passwd
p; progress $baseprog $bases INSTCORE "Installing core packages" #3
x_core_install dpkg
if [ ! -e "$TARGET/etc/localtime" ]; then
ln -sf /usr/share/zoneinfo/UTC "$TARGET/etc/localtime"
fi
if doing_variant fakechroot; then
install_fakechroot_tools
fi
p; progress $baseprog $bases INSTCORE "Installing core packages" #4
x_core_install $LIBC
p; progress $baseprog $bases INSTCORE "Installing core packages" #5
x_core_install perl-base
p; progress $baseprog $bases INSTCORE "Installing core packages" #6
rm "$TARGET/usr/bin/awk"
x_core_install mawk
p; progress $baseprog $bases INSTCORE "Installing core packages" #7
if doing_variant -; then
x_core_install debconf
fi
baseprog=0
bases=$(set -- $required; echo $#)
info UNPACKREQ "Unpacking required packages..."
smallyes '' |
(repeatn 5 in_target_failmsg UNPACK_REQ_FAIL_FIVE "Failure while unpacking required packages. This will be attempted up to five times." "" \
dpkg --status-fd 8 --force-depends --unpack $(debfor $required) 8>&1 1>&7 |
dpkg_progress $baseprog $bases UNPACKREQ "Unpacking required packages" UNPACKING) 7>&1
info CONFREQ "Configuring required packages..."
if doing_variant fakechroot; then
# fix initscripts postinst (no mounting possible, and wrong if condition)
sed -i '/dpkg.*--compare-versions/ s/\<lt\>/lt-nl/' "$TARGET/var/lib/dpkg/info/initscripts.postinst"
# kill libdevmapper postinst; it tries to create /dev/mapper/
rm "$TARGET/var/lib/dpkg/info/libdevmapper1"*.postinst
fi
mv "$TARGET/sbin/start-stop-daemon" "$TARGET/sbin/start-stop-daemon.REAL"
echo \
"#!/bin/sh
echo
echo \"Warning: Fake start-stop-daemon called, doing nothing\"" > "$TARGET/sbin/start-stop-daemon"
chmod 755 "$TARGET/sbin/start-stop-daemon"
setup_dselect_method apt
smallyes '' |
(in_target_failmsg CONF_REQ_FAIL "Failure while configuring required packages." "" \
dpkg --status-fd 8 --configure --pending --force-configure-any --force-depends 8>&1 1>&7 |
dpkg_progress $baseprog $bases CONFREQ "Configuring required packages" CONFIGURING) 7>&1
baseprog=0
bases="$(set -- $base; echo $#)"
info UNPACKBASE "Unpacking the base system..."
smallyes '' |
(repeatn 5 in_target_failmsg INST_BASE_FAIL_FIVE "Failure while installing base packages. This will be re-attempted up to five times." "" \
dpkg --status-fd 8 --force-overwrite --force-confold --skip-same-version --unpack $(debfor $base) 8>&1 1>&7 |
dpkg_progress $baseprog $bases UNPACKBASE "Unpacking base system" UNPACKING) 7>&1
info CONFBASE "Configuring the base system..."
smallyes '' |
(repeatn 5 in_target_failmsg CONF_BASE_FAIL_FIVE "Failure while configuring base packages. This will be attempted 5 times." "" \
dpkg --status-fd 8 --force-confold --skip-same-version --configure -a 8>&1 1>&7 |
dpkg_progress $baseprog $bases CONFBASE "Configuring base system" CONFIGURING) 7>&1
mv "$TARGET/sbin/start-stop-daemon.REAL" "$TARGET/sbin/start-stop-daemon"
progress $bases $bases CONFBASE "Configuring base system"
info BASESUCCESS "Base system installed successfully."
}

1
scripts/focal Symbolic link
View File

@ -0,0 +1 @@
gutsy

266
scripts/gutsy Normal file
View File

@ -0,0 +1,266 @@
case $ARCH in
amd64|i386)
case $SUITE in
gutsy|hardy|intrepid|jaunty|karmic|lucid|maverick|natty|oneiric|precise|quantal|raring|saucy|utopic|vivid|wily|yakkety|zesty)
default_mirror http://old-releases.ubuntu.com/ubuntu
;;
*)
default_mirror http://archive.ubuntu.com/ubuntu
;;
esac
;;
sparc)
case $SUITE in
gutsy)
default_mirror http://old-releases.ubuntu.com/ubuntu
;;
*)
default_mirror http://ports.ubuntu.com/ubuntu-ports
;;
esac
;;
*)
default_mirror http://ports.ubuntu.com/ubuntu-ports
;;
esac
mirror_style release
download_style apt
finddebs_style from-indices
variants - buildd fakechroot minbase
keyring /usr/share/keyrings/ubuntu-archive-keyring.gpg
if doing_variant fakechroot; then
test "$FAKECHROOT" = "true" || error 1 FAKECHROOTREQ "This variant requires fakechroot environment to be started"
fi
case $ARCH in
alpha|ia64) LIBC="libc6.1" ;;
kfreebsd-*) LIBC="libc0.1" ;;
hurd-*) LIBC="libc0.3" ;;
*) LIBC="libc6" ;;
esac
work_out_debs () {
required="$(get_debs Priority: required)"
if doing_variant - || doing_variant fakechroot; then
#required="$required $(get_debs Priority: important)"
# ^^ should be getting debconf here somehow maybe
base="$(get_debs Priority: important)"
elif doing_variant buildd; then
base="apt build-essential"
elif doing_variant minbase; then
base="apt"
fi
if doing_variant fakechroot; then
# ldd.fake needs binutils
required="$required binutils"
fi
case $MIRRORS in
https://*)
base="$base apt-transport-https ca-certificates"
;;
esac
}
first_stage_install () {
case "$CODENAME" in
# "merged-usr" blacklist for past releases
gutsy|hardy|intrepid|jaunty|karmic|lucid|maverick|natty|oneiric|precise|quantal|raring|saucy|trusty|utopic|vivid|wily|xenial|yakkety|zesty|artful|bionic|cosmic)
[ -z "$MERGED_USR" ] && MERGED_USR="no"
;;
*)
# see https://bugs.debian.org/838388
EXTRACT_DEB_TAR_OPTIONS="$EXTRACT_DEB_TAR_OPTIONS -k"
;;
esac
setup_merged_usr
extract $required
mkdir -p "$TARGET/var/lib/dpkg"
: >"$TARGET/var/lib/dpkg/status"
: >"$TARGET/var/lib/dpkg/available"
setup_etc
if [ ! -e "$TARGET/etc/fstab" ]; then
echo '# UNCONFIGURED FSTAB FOR BASE SYSTEM' > "$TARGET/etc/fstab"
chown 0:0 "$TARGET/etc/fstab"; chmod 644 "$TARGET/etc/fstab"
fi
setup_devices
if doing_variant fakechroot || [ "$CONTAINER" = "docker" ]; then
setup_proc_symlink
fi
}
second_stage_install () {
in_target /bin/true
setup_dynamic_devices
x_feign_install () {
local pkg="$1"
local deb="$(debfor $pkg)"
local ver="$(in_target dpkg-deb -f "$deb" Version)"
mkdir -p "$TARGET/var/lib/dpkg/info"
echo \
"Package: $pkg
Version: $ver
Maintainer: unknown
Status: install ok installed" >> "$TARGET/var/lib/dpkg/status"
touch "$TARGET/var/lib/dpkg/info/${pkg}.list"
}
x_feign_install dpkg
x_core_install () {
smallyes '' | in_target dpkg --force-depends --install $(debfor "$@")
}
p () {
baseprog="$(($baseprog + ${1:-1}))"
}
if ! doing_variant fakechroot; then
setup_proc
in_target /sbin/ldconfig
fi
DEBIAN_FRONTEND=noninteractive
DEBCONF_NONINTERACTIVE_SEEN=true
export DEBIAN_FRONTEND DEBCONF_NONINTERACTIVE_SEEN
baseprog=0
bases=7
p; progress $baseprog $bases INSTCORE "Installing core packages" #1
info INSTCORE "Installing core packages..."
p; progress $baseprog $bases INSTCORE "Installing core packages" #2
ln -sf mawk "$TARGET/usr/bin/awk"
x_core_install base-passwd
x_core_install base-files
p; progress $baseprog $bases INSTCORE "Installing core packages" #3
x_core_install dpkg
if [ ! -e "$TARGET/etc/localtime" ]; then
ln -sf /usr/share/zoneinfo/UTC "$TARGET/etc/localtime"
fi
if doing_variant fakechroot; then
install_fakechroot_tools
fi
p; progress $baseprog $bases INSTCORE "Installing core packages" #4
x_core_install $LIBC
p; progress $baseprog $bases INSTCORE "Installing core packages" #5
x_core_install perl-base
p; progress $baseprog $bases INSTCORE "Installing core packages" #6
rm "$TARGET/usr/bin/awk"
x_core_install mawk
p; progress $baseprog $bases INSTCORE "Installing core packages" #7
if doing_variant -; then
x_core_install debconf
fi
baseprog=0
bases=$(set -- $required; echo $#)
info UNPACKREQ "Unpacking required packages..."
exec 7>&1
smallyes '' |
(repeatn 5 in_target_failmsg UNPACK_REQ_FAIL_FIVE "Failure while unpacking required packages. This will be attempted up to five times." "" \
dpkg --status-fd 8 --force-depends --unpack $(debfor $required) 8>&1 1>&7) |
dpkg_progress $baseprog $bases UNPACKREQ "Unpacking required packages" UNPACKING
info CONFREQ "Configuring required packages..."
if doing_variant fakechroot && [ -e "$TARGET/var/lib/dpkg/info/initscripts.postinst" ]
then
# fix initscripts postinst (no mounting possible, and wrong if condition)
sed -i '/dpkg.*--compare-versions/ s/\<lt\>/lt-nl/' "$TARGET/var/lib/dpkg/info/initscripts.postinst"
fi
echo \
"#!/bin/sh
exit 101" > "$TARGET/usr/sbin/policy-rc.d"
chmod 755 "$TARGET/usr/sbin/policy-rc.d"
mv "$TARGET/sbin/start-stop-daemon" "$TARGET/sbin/start-stop-daemon.REAL"
echo \
"#!/bin/sh
echo
echo \"Warning: Fake start-stop-daemon called, doing nothing\"" > "$TARGET/sbin/start-stop-daemon"
chmod 755 "$TARGET/sbin/start-stop-daemon"
if [ -x "$TARGET/sbin/initctl" ]; then
mv "$TARGET/sbin/initctl" "$TARGET/sbin/initctl.REAL"
echo \
"#!/bin/sh
if [ \"\$1\" = version ]; then exec /sbin/initctl.REAL \"\$@\"; fi
echo
echo \"Warning: Fake initctl called, doing nothing\"" > "$TARGET/sbin/initctl"
chmod 755 "$TARGET/sbin/initctl"
fi
setup_dselect_method apt
smallyes '' |
(in_target_failmsg CONF_REQ_FAIL "Failure while configuring required packages." "" \
dpkg --status-fd 8 --configure --pending --force-configure-any --force-depends 8>&1 1>&7) |
dpkg_progress $baseprog $bases CONFREQ "Configuring required packages" CONFIGURING
baseprog=0
bases="$(set -- $base; echo $#)"
info UNPACKBASE "Unpacking the base system..."
setup_available $required $base
done_predeps=
while predep=$(get_next_predep); do
# We have to resolve dependencies of pre-dependencies manually because
# dpkg --predep-package doesn't handle this.
predep=$(without "$(without "$(resolve_deps $predep)" "$required")" "$done_predeps")
# XXX: progress is tricky due to how dpkg_progress works
# -- cjwatson 2009-07-29
p; smallyes '' |
in_target dpkg --force-overwrite --force-confold --skip-same-version --install $(debfor $predep)
base=$(without "$base" "$predep")
done_predeps="$done_predeps $predep"
done
if [ -n "$base" ]; then
smallyes '' |
(repeatn 5 in_target_failmsg INST_BASE_FAIL_FIVE "Failure while installing base packages. This will be re-attempted up to five times." "" \
dpkg --status-fd 8 --force-overwrite --force-confold --skip-same-version --unpack $(debfor $base) 8>&1 1>&7) |
dpkg_progress $baseprog $bases UNPACKBASE "Unpacking base system" UNPACKING
info CONFBASE "Configuring the base system..."
smallyes '' |
(repeatn 5 in_target_failmsg CONF_BASE_FAIL_FIVE "Failure while configuring base packages. This will be re-attempted up to five times." "" \
dpkg --status-fd 8 --force-confold --skip-same-version --configure -a 8>&1 1>&7) |
dpkg_progress $baseprog $bases CONFBASE "Configuring base system" CONFIGURING
fi
if [ -x "$TARGET/sbin/initctl.REAL" ]; then
mv "$TARGET/sbin/initctl.REAL" "$TARGET/sbin/initctl"
fi
mv "$TARGET/sbin/start-stop-daemon.REAL" "$TARGET/sbin/start-stop-daemon"
rm -f "$TARGET/usr/sbin/policy-rc.d"
progress $bases $bases CONFBASE "Configuring base system"
info BASESUCCESS "Base system installed successfully."
}

1
scripts/hardy Symbolic link
View File

@ -0,0 +1 @@
gutsy

179
scripts/hoary Normal file
View File

@ -0,0 +1,179 @@
default_mirror http://old-releases.ubuntu.com/ubuntu
mirror_style release
download_style apt
case $ARCH in
ia64) LIBC="libc6.1" ;;
*) LIBC="libc6" ;;
esac
work_out_debs () {
required="base-files base-passwd bash bsdutils coreutils libacl1 libattr1 debconf debconf-i18n liblocale-gettext-perl libtext-iconv-perl libtext-wrapi18n-perl libtext-charwidth-perl debianutils diff dpkg dselect libblkid1 e2fsprogs e2fslibs libcomerr2 libss2 libuuid1 findutils grep gzip hostname libcap1 libdb1-compat libdb3 libncurses5 libnewt0.51 libpam-modules libpam-runtime libpam0g libpopt0 login makedev mawk mount ncurses-base ncurses-bin passwd perl-base procps python-minimal python2.4-minimal sed slang1a-utf8 lsb-base initscripts sysvinit sysv-rc tar util-linux zlib1g whiptail libgcc1 gcc-3.3-base libstdc++5"
base="adduser alsa-base alsa-utils apt apt-utils aptitude at base-config bind9-host bsdmainutils bzip2 console-common console-data console-tools cpio cramfsprogs cron dash dhcp3-client dhcp3-common discover1 discover1-data dmsetup dnsutils dosfstools ed eject ethtool evms evms-ncurses fdutils file ftp gettext-base gnupg grepmap groff-base hdparm hotplug ifrename ifupdown info initrd-tools iproute iptables iputils-arping iputils-ping iputils-tracepath jfsutils klogd less libasound2 libbz2-1.0 libconsole libdb4.2 libdevmapper1.00 libdiscover1 libdns16 libevms-2.5 libfribidi0 libgc1 libgcrypt11 libgdbm3 libgnutls11 libgpg-error0 libgpmg1 libidn11 libisc7 libiw27 libldap2 liblockfile1 liblwres1 liblzo1 libmagic1 libncursesw5 libopencdk8 libparted1.6-12 libpcap0.8 libreiserfs0.3-0 libsasl2 libsasl2-modules libsigc++-1.2-5c102 libssl0.9.7 libtasn1-2 libusb-0.1-4 libwrap0 locales logrotate lsb-release lshw lsof lvm-common lvm10 lvm2 mailx man-db manpages mdadm mii-diag mime-support module-init-tools mtr-tiny mutt nano net-tools netbase netcat netkit-inetd ntp ntpdate openssh-client parted pciutils popularity-contest postfix postfix-tls ppp pppconfig pppoeconf psmisc python python2.4 reiser4progs reiserfsprogs reportbug rsync strace sudo sysklogd tcpd tcpdump telnet time ubuntu-base ubuntu-keyring udev usbutils vim vim-common w3m wget wireless-tools xfsprogs"
without_package () {
echo "$2" | tr ' ' '\n' | grep -v "^$1$" | tr '\n' ' '
}
subst_package () {
echo "$3" | tr ' ' '\n' | sed "s/^$1$/$2/" | tr '\n' ' '
}
case $ARCH in
"i386")
required="$required libc6 libc6-i686"
base="$base dmidecode libelfg0 ltrace memtest86+ libreadline4"
;;
"powerpc")
required="$required libc6 libreadline4"
base="$base hfsplus hfsutils libelfg0 libhfsp0 ltrace mac-fdisk pmac-fdisk powerpc-utils"
;;
"amd64")
required="$required libc6"
base="$base dmidecode libelfg0 ltrace memtest86+ libreadline4"
;;
"ia64")
required="$required libc6.1 libunwind7"
base="$base dmidecode libreadline4"
;;
"sparc")
required="$required libc6"
base="$base lib64gcc1 libc6-sparc64 libreadline4"
;;
*)
# who knows?
;;
esac
}
install_debs () {
first_stage_install
second_stage_install
}
first_stage_install () {
extract $required
mkdir -p "$TARGET/var/lib/dpkg"
: >"$TARGET/var/lib/dpkg/status"
echo >"$TARGET/var/lib/dpkg/available"
setup_etc
if [ ! -e "$TARGET/etc/fstab" ]; then
echo '# UNCONFIGURED FSTAB FOR BASE SYSTEM' > "$TARGET/etc/fstab"
chown 0:0 "$TARGET/etc/fstab"; chmod 644 "$TARGET/etc/fstab"
fi
setup_devices
x_feign_install () {
local pkg="$1"
local deb="$(debfor $pkg)"
local ver="$(extract_deb_field "$TARGET/$deb" Version)"
mkdir -p "$TARGET/var/lib/dpkg/info"
echo \
"Package: $pkg
Version: $ver
Status: install ok installed" >> "$TARGET/var/lib/dpkg/status"
touch "$TARGET/var/lib/dpkg/info/${pkg}.list"
}
x_feign_install dpkg
}
second_stage_install () {
x_core_install () {
smallyes '' | in_target dpkg --force-depends --install $(debfor "$@")
}
p () {
baseprog="$(($baseprog + ${1:-1}))"
}
DEBIAN_FRONTEND=noninteractive
DEBCONF_NONINTERACTIVE_SEEN=true
export DEBIAN_FRONTEND DEBCONF_NONINTERACTIVE_SEEN
baseprog=0
bases=7
setup_proc
umount_on_exit /.dev
umount_on_exit /dev
in_target /sbin/ldconfig
p; progress $baseprog $bases INSTCORE "Installing core packages" #1
info INSTCORE "Installing core packages..."
p; progress $baseprog $bases INSTCORE "Installing core packages" #2
ln -sf mawk "$TARGET/usr/bin/awk"
x_core_install base-files base-passwd
p; progress $baseprog $bases INSTCORE "Installing core packages" #3
x_core_install dpkg
if [ ! -e "$TARGET/etc/localtime" ]; then
ln -sf /usr/share/zoneinfo/UTC "$TARGET/etc/localtime"
fi
p; progress $baseprog $bases INSTCORE "Installing core packages" #4
x_core_install $LIBC
p; progress $baseprog $bases INSTCORE "Installing core packages" #5
x_core_install perl-base
p; progress $baseprog $bases INSTCORE "Installing core packages" #6
rm "$TARGET/usr/bin/awk"
x_core_install mawk
p; progress $baseprog $bases INSTCORE "Installing core packages" #7
x_core_install debconf
baseprog=0
bases="$(set -- $required; echo $#)"
info UNPACKREQ "Unpacking required packages..."
smallyes '' | (repeatn 5 in_target_failmsg UNPACK_REQ_FAIL_FIVE "Failure while unpacking required packages. This will be attempted up to five times." "" dpkg --status-fd 8 --force-depends --unpack $(debfor $required) 8>&1 1>&7 | dpkg_progress $baseprog $bases UNPACKREQ "Unpacking required packages" UNPACKING) 7>&1
baseprog=0
info CONFREQ "Configuring required packages..."
mv "$TARGET/sbin/start-stop-daemon" "$TARGET/sbin/start-stop-daemon.REAL"
echo \
"#!/bin/sh
echo
echo \"Warning: Fake start-stop-daemon called, doing nothing\"" > "$TARGET/sbin/start-stop-daemon"
chmod 755 "$TARGET/sbin/start-stop-daemon"
setup_dselect_method apt
#on_exit "(in_target_nofail umount /dev/pts) || true"
smallyes '' | (in_target_failmsg CONF_REQ_FAIL "Failure while configuring required packages." "" dpkg --status-fd 8 --configure --pending --force-configure-any --force-depends 8>&1 1>&7 | dpkg_progress $baseprog $bases CONFREQ "Configuring required packages" CONFIGURING) 7>&1
baseprog=0
bases="$(set -- $base; echo $#)"
info UNPACKBASE "Unpacking the base system..."
smallyes '' | (repeatn 5 in_target_failmsg INST_BASE_FAIL_FIVE "Failure while installing base packages. This will be re-attempted up to five times." "" dpkg --status-fd 8 --force-auto-select --force-overwrite --force-confold --skip-same-version --unpack $(debfor $base) 8>&1 1>&7 | dpkg_progress $baseprog $bases UNPACKBASE "Unpacking base system" UNPACKING) 7>&1
baseprog=0
info CONFBASE "Configuring the base system..."
mv "$TARGET/usr/sbin/sendmail" "$TARGET/usr/sbin/sendmail.REAL"
ln -s /bin/true "$TARGET/usr/sbin/sendmail"
smallyes '' | (repeatn 5 in_target_failmsg CONF_BASE_FAIL_FIVE "Failure while configuring base packages. This will be attempted 5 times." "" dpkg --status-fd 8 --force-confold --skip-same-version --configure -a 8>&1 1>&7 | dpkg_progress $baseprog $bases CONFBASE "Configuring base system" CONFIGURING) 7>&1
rm -f "$TARGET/usr/sbin/sendmail"
mv "$TARGET/usr/sbin/sendmail.REAL" "$TARGET/usr/sbin/sendmail"
mv "$TARGET/sbin/start-stop-daemon.REAL" "$TARGET/sbin/start-stop-daemon"
progress $bases $bases CONFBASE "Configuring base system"
info BASESUCCESS "Base system installed successfully."
}

159
scripts/hoary.buildd Normal file
View File

@ -0,0 +1,159 @@
default_mirror http://old-releases.ubuntu.com/ubuntu
mirror_style release
download_style apt
LIBC=libc6
if [ "$ARCH" = "alpha" ] || [ "$ARCH" = "ia64" ]; then
LIBC="libc6.1"
fi
work_out_debs () {
required="base-files base-passwd bash bsdutils build-essential coreutils debianutils diff dpkg dselect e2fslibs e2fsprogs fakeroot findutils gcc-3.3-base grep gzip hostname initscripts libacl1 libattr1 libblkid1 libc6 libcap1 libcomerr2 libdb1-compat libdb3 libgcc1 libncurses5 libpam-modules libpam-runtime libpam0g libss2 libstdc++5 libuuid1 login lsb-base mawk mount ncurses-base ncurses-bin passwd perl-base pkgstriptranslations python-minimal python2.4-minimal sed slang1a-utf8 sysv-rc sysvinit tar util-linux zlib1g"
base="apt binutils cpio cpp cpp-3.3 dpkg-dev g++ g++-3.3 gcc gcc-3.3 libc6-dev libdb4.2 libgdbm3 libstdc++5-3.3-dev linux-kernel-headers make patch perl perl-modules"
without_package () {
echo "$2" | tr ' ' '\n' | grep -v "^$1$" | tr '\n' ' '
}
subst_package () {
echo "$3" | tr ' ' '\n' | sed "s/^$1$/$2/" | tr '\n' ' '
}
case $ARCH in
"amd64")
;;
"i386")
;;
"powerpc")
;;
"ia64")
required="$(subst_package "libc6" "libc6.1" "$required")"
base="$(subst_package "libc6-dev" "libc6.1-dev" "$base")"
base="$base libunwind7 libunwind7-dev"
;;
# Unsupported architectures:
"alpha")
required="$(subst_package "libc6" "libc6.1" "$required")"
base="$(subst_package "libc6-dev" "libc6.1-dev" "$base")"
;;
*)
# who knows?
;;
esac
}
install_debs () {
first_stage_install
second_stage_install
}
first_stage_install () {
extract $required
mkdir -p "$TARGET/var/lib/dpkg"
: >"$TARGET/var/lib/dpkg/status"
echo >"$TARGET/var/lib/dpkg/available"
setup_etc
if [ ! -e "$TARGET/etc/fstab" ]; then
echo '# UNCONFIGURED FSTAB FOR BASE SYSTEM' > "$TARGET/etc/fstab"
chown 0:0 "$TARGET/etc/fstab"; chmod 644 "$TARGET/etc/fstab"
fi
setup_devices
x_feign_install () {
local pkg="$1"
local deb="$(debfor $pkg)"
local ver="$(extract_deb_field "$TARGET/$deb" Version)"
mkdir -p "$TARGET/var/lib/dpkg/info"
echo \
"Package: $pkg
Version: $ver
Status: install ok installed" >> "$TARGET/var/lib/dpkg/status"
touch "$TARGET/var/lib/dpkg/info/${pkg}.list"
}
x_feign_install dpkg
}
second_stage_install () {
x_core_install () {
smallyes '' | in_target dpkg --force-depends --install $(debfor "$@")
}
p () {
baseprog="$(($baseprog + ${1:-1}))"
}
DEBIAN_FRONTEND=noninteractive
export DEBIAN_FRONTEND
baseprog=0
bases=40
setup_proc
in_target /sbin/ldconfig
p; progress $baseprog $bases INSTCORE "Installing core packages" #1
info INSTCORE "Installing core packages..."
p; progress $baseprog $bases INSTCORE "Installing core packages" #2
ln -sf mawk "$TARGET/usr/bin/awk"
x_core_install base-files base-passwd
p; progress $baseprog $bases INSTCORE "Installing core packages" #3
x_core_install dpkg
if [ ! -e "$TARGET/etc/localtime" ]; then
ln -sf /usr/share/zoneinfo/UTC "$TARGET/etc/localtime"
fi
p; progress $baseprog $bases INSTCORE "Installing core packages" #4
x_core_install $LIBC
p; progress $baseprog $bases INSTCORE "Installing core packages" #5
x_core_install perl-base
p; progress $baseprog $bases INSTCORE "Installing core packages" #6
rm "$TARGET/usr/bin/awk"
x_core_install mawk
p; progress $baseprog $bases INSTCORE "Installing core packages" #7
info UNPACKREQ "Unpacking required packages..."
p; progress $baseprog $bases INSTCORE "Installing core packages" #8
smallyes '' | repeatn 5 in_target_failmsg UNPACK_REQ_FAIL_FIVE "Failure while unpacking required packages. This will be attempted up to five times." "" dpkg --force-depends --unpack $(debfor $required)
p 10; progress $baseprog $bases INSTCORE "Installing core packages" #18
info CONFREQ "Configuring required packages..."
mv "$TARGET/sbin/start-stop-daemon" "$TARGET/sbin/start-stop-daemon.REAL"
echo \
"#!/bin/sh
echo
echo \"Warning: Fake start-stop-daemon called, doing nothing\"" > "$TARGET/sbin/start-stop-daemon"
chmod 755 "$TARGET/sbin/start-stop-daemon"
setup_dselect_method apt
#on_exit "in_target_nofail umount /dev/pts"
p; progress $baseprog $bases INSTCORE "Installing core packages" #19
smallyes '' | in_target_failmsg CONF_REQ_FAIL "Failure while configuring required packages." "" dpkg --configure --pending --force-configure-any --force-depends
p 10; progress $baseprog $bases INSTCORE "Installing core packages" #29
info INSTCORE "Installing base packages..."
p; progress $baseprog $bases INSTCORE "Installing core packages" #30
smallyes '' | repeatn 5 in_target_failmsg INST_BASE_FAIL_FIVE "Failure while installing base packages. This will be re-attempted up to five times." "" dpkg --force-auto-select --force-overwrite --force-confold --skip-same-version --unpack $(debfor $base)
smallyes '' | repeatn 5 in_target_failmsg CONF_BASE_FAIL_FIVE "Failure while configuring base packages. This will be attempted 5 times." "" dpkg --force-confold --skip-same-version --configure -a
p 9; progress $baseprog $bases INSTCORE "Installing core packages" #39
mv "$TARGET/sbin/start-stop-daemon.REAL" "$TARGET/sbin/start-stop-daemon"
progress $bases $bases INSTCORE "Installing core packages" #40
info BASESUCCESS "Base system installed successfully."
}

1
scripts/intrepid Symbolic link
View File

@ -0,0 +1 @@
gutsy

1
scripts/jaunty Symbolic link
View File

@ -0,0 +1 @@
gutsy

1
scripts/jessie Symbolic link
View File

@ -0,0 +1 @@
sid

1
scripts/jessie-kfreebsd Symbolic link
View File

@ -0,0 +1 @@
sid

1
scripts/juniper Symbolic link
View File

@ -0,0 +1 @@
gutsy

17
scripts/kali Normal file
View File

@ -0,0 +1,17 @@
mirror_style release
download_style apt
finddebs_style from-indices
variants - buildd fakechroot minbase
keyring /usr/share/keyrings/kali-archive-keyring.gpg
default_mirror http://http.kali.org/kali
# include common settings
if [ -e "$DEBOOTSTRAP_DIR/scripts/debian-common" ]; then
. "$DEBOOTSTRAP_DIR/scripts/debian-common"
elif [ -e /debootstrap/debian-common ]; then
. /debootstrap/debian-common
elif [ -e "$DEBOOTSTRAP_DIR/debian-common" ]; then
. "$DEBOOTSTRAP_DIR/debian-common"
else
error 1 NOCOMMON "File not found: debian-common"
fi

1
scripts/kali-dev Symbolic link
View File

@ -0,0 +1 @@
kali

1
scripts/kali-last-snapshot Symbolic link
View File

@ -0,0 +1 @@
kali

1
scripts/kali-rolling Symbolic link
View File

@ -0,0 +1 @@
kali

1
scripts/karmic Symbolic link
View File

@ -0,0 +1 @@
gutsy

1
scripts/lenny Symbolic link
View File

@ -0,0 +1 @@
etch

1
scripts/lucid Symbolic link
View File

@ -0,0 +1 @@
gutsy

1
scripts/maverick Symbolic link
View File

@ -0,0 +1 @@
gutsy

1
scripts/natty Symbolic link
View File

@ -0,0 +1 @@
gutsy

1
scripts/oldoldstable Symbolic link
View File

@ -0,0 +1 @@
sid

1
scripts/oldstable Symbolic link
View File

@ -0,0 +1 @@
sid

1
scripts/oneiric Symbolic link
View File

@ -0,0 +1 @@
gutsy

106
scripts/potato Normal file
View File

@ -0,0 +1,106 @@
mirror_style release
download_style apt var-state
default_mirror http://archive.debian.org/debian
keyring /usr/share/keyrings/debian-archive-removed-keys.gpg
force_md5
LIBC=libc6
if [ "$ARCH" = alpha ]; then
LIBC="libc6.1"
fi
work_out_debs () {
required="base-files base-passwd bash bsdutils debconf-tiny debianutils diff dpkg e2fsprogs fileutils findutils grep gzip hostname ldso libc6 libdb2 libgdbmg1 libncurses5 libnewt0 libpam-modules libpam-runtime libpam0g libpopt0 libreadline4 libstdc++2.10 login makedev mawk modutils mount ncurses-base ncurses-bin passwd perl-5.005-base perl-base procps sed shellutils slang1 sysklogd sysvinit tar textutils update util-linux whiptail"
base="adduser ae apt base-config elvis-tiny fbset fdutils gettext-base console-data console-tools console-tools-libs libdb2 libwrap0 locales modconf netbase ftp ppp pppconfig pump tasksel tcpd textutils telnet xviddetect"
without_package () {
echo "$2" | tr ' ' '\n' | grep -v "^$1$" | tr '\n' ' '
}
case $ARCH in
"alpha")
required="$(without_package "libc6" "$required") libc6.1"
;;
"i386")
base="$base fdflush isapnptools lilo mbr pciutils pcmcia-cs psmisc setserial syslinux"
;;
*)
# other arches may have special needs not yet represented here
# oh well, Potato is old
esac
}
first_stage_install () {
extract $required
:> "$TARGET/var/lib/dpkg/status"
echo > "$TARGET/var/lib/dpkg/available"
setup_etc
echo '# UNCONFIGURED FSTAB FOR BASE SYSTEM' > "$TARGET/etc/fstab"
chown 0:0 "$TARGET/etc/fstab"; chmod 644 "$TARGET/etc/fstab"
x_feign_install () {
local pkg=$1
local deb="$(debfor $pkg)"
local ver="$(extract_deb_field "$TARGET/$deb" Version)"
mkdir -p "$TARGET/var/lib/dpkg/info"
echo \
"Package: $pkg
Version: $ver
Status: install ok installed" >> "$TARGET/var/lib/dpkg/status"
touch "$TARGET/var/lib/dpkg/info/${pkg}.list"
}
setup_devices
x_feign_install dpkg
if [ -e "$TARGET/usr/bin/perl-5.005.dist" ]; then
mv "$TARGET/usr/bin/perl-5.005.dist" "$TARGET/usr/bin/perl-5.005"
fi
if [ ! -e "$TARGET/usr/bin/perl" ]; then
ln -sf perl-5.005 "$TARGET/usr/bin/perl"
fi
}
second_stage_install () {
x_core_install () {
in_target dpkg --force-depends --install $(debfor "$@")
}
export DEBIAN_FRONTEND=Noninteractive
setup_proc
ln "$TARGET/sbin/ldconfig.new" "$TARGET/sbin/ldconfig"
in_target /sbin/ldconfig
x_core_install base-files base-passwd ldso
x_core_install dpkg
ln -sf /usr/share/zoneinfo/UTC "$TARGET/etc/localtime"
x_core_install $LIBC
smallyes '' | x_core_install perl-5.005-base
x_core_install mawk
x_core_install debconf-tiny
in_target dpkg-preconfigure $(debfor $required $base)
repeatn 5 in_target dpkg --force-depends --unpack $(debfor $required)
mv "$TARGET/sbin/start-stop-daemon" "$TARGET/sbin/start-stop-daemon.REAL"
cp "$TARGET/bin/true" "$TARGET/sbin/start-stop-daemon"
setup_dselect_method apt
in_target dpkg --configure --pending --force-configure-any --force-depends
smallyes '' | repeatn 5 in_target dpkg --force-auto-select --force-overwrite --skip-same-version --install $(debfor $base)
mv "$TARGET/sbin/start-stop-daemon.REAL" "$TARGET/sbin/start-stop-daemon"
}

1
scripts/precise Symbolic link
View File

@ -0,0 +1 @@
gutsy

1
scripts/quantal Symbolic link
View File

@ -0,0 +1 @@
gutsy

1
scripts/raring Symbolic link
View File

@ -0,0 +1 @@
gutsy

220
scripts/sarge Normal file
View File

@ -0,0 +1,220 @@
mirror_style release
download_style apt
default_mirror http://archive.debian.org/debian
keyring /usr/share/keyrings/debian-archive-removed-keys.gpg
force_md5
LIBC=libc6
if [ "$ARCH" = "alpha" ] || [ "$ARCH" = "ia64" ]; then
LIBC="libc6.1"
fi
work_out_debs () {
required="base-files base-passwd bash bsdutils coreutils libacl1 libattr1 debconf debconf-i18n liblocale-gettext-perl libtext-wrapi18n-perl libtext-charwidth-perl debianutils diff dpkg dselect libblkid1 e2fsprogs e2fslibs libcomerr2 libss2 libuuid1 findutils grep gzip hostname libcap1 libc6 libdb1-compat libdb3 libncurses5 libnewt0.51 libpam-modules libpam-runtime libpam0g libperl5.8 libpopt0 login makedev mawk modutils mount ncurses-base ncurses-bin passwd perl-base procps sed slang1a-utf8 initscripts sysvinit sysv-rc tar util-linux whiptail libgcc1 gcc-3.3-base libstdc++5"
base="adduser apt apt-utils libdb4.2 at base-config aptitude libsigc++-1.2-5c102 bsdmainutils console-common console-tools libconsole console-data cpio cron dhcp-client ed exim4 exim4-base exim4-config exim4-daemon-light libgcrypt11 libgnutls11 libgpg-error0 libopencdk8 libtasn1-2 fdutils gettext-base groff-base ifupdown info klogd libssl0.9.7 liblzo1 zlib1g liblockfile1 libpcre3 libwrap0 logrotate mailx man-db libgdbm3 manpages nano net-tools netbase netkit-inetd iputils-ping nvi ppp pppconfig pppoe pppoeconf libpcap0.7 sysklogd tasksel libtextwrap1 tcpd telnet libtext-iconv-perl wget"
without_package () {
echo "$2" | tr ' ' '\n' | grep -v "^$1$" | tr '\n' ' '
}
subst_package () {
echo "$3" | tr ' ' '\n' | sed "s/^$1$/$2/" | tr '\n' ' '
}
IPFWTOOL=iptables
case $ARCH in
"alpha")
required="$(subst_package "libc6" "libc6.1" "$required")"
base="$base pciutils"
IPFWTOOL="ipchains"
;;
"arm")
base="$base libgpmg1"
IPFWTOOL="ipchains iptables"
;;
"i386")
required="$(without_package "libperl5.8" "$required")"
base="$base pciutils psmisc"
IPFWTOOL="ipchains iptables"
;;
"ia64")
required="$(subst_package "libc6" "libc6.1" "$required") libreadline4"
base="$base elilo efibootmgr dosfstools libparted1.6-12 parted"
;;
"m68k")
required="$required libreadline4"
base="$base atari-bootstrap atari-fdisk amiga-fdisk eject mac-fdisk pmac-fdisk-cross vmelilo"
IPFWTOOL="ipchains"
;;
"powerpc")
required="$required libreadline4"
base="$base mac-fdisk amiga-fdisk psmisc powerpc-utils pciutils hfsutils"
IPFWTOOL="ipchains iptables"
;;
"sparc")
base="$base silo eject pciutils sparc-utils"
IPFWTOOL="ipchains iptables"
;;
"mips")
base="$base dvhtool pciutils"
;;
"mipsel")
base="$base pciutils"
;;
"hppa")
base="$base palo pciutils"
required="$(without_package "libstdc++2.10-glibc2.2" "$required")"
;;
s390|s390x)
# base-config depends on console-tools and console-data
# so we can't exclude them although they are useless on s390
base="$base s390-tools telnetd devfsd"
base="$(without_package "console-tools-libs" "$base")"
base="$(without_package "fdutils" "$base")"
base="$(without_package "ppp" "$base")"
base="$(without_package "pppconfig" "$base")"
base="$(without_package "pppoe" "$base")"
base="$(without_package "pppoeconf" "$base")"
;;
sh*)
base="$base libstdc++3 gcc-3.0-base"
base="$(without_package "fdutils" "$base")"
required="$required libgcc1"
required="$(without_package "libstdc++2.10-glibc2.2" "$required")"
;;
"amd64")
base="$base pciutils psmisc"
IPFWTOOL="iptables"
;;
*)
# who knows?
;;
esac
base="$base $IPFWTOOL"
}
first_stage_install () {
extract $required
mkdir -p "$TARGET/var/lib/dpkg"
: >"$TARGET/var/lib/dpkg/status"
echo >"$TARGET/var/lib/dpkg/available"
setup_etc
if [ ! -e "$TARGET/etc/fstab" ]; then
echo '# UNCONFIGURED FSTAB FOR BASE SYSTEM' > "$TARGET/etc/fstab"
chown 0:0 "$TARGET/etc/fstab"; chmod 644 "$TARGET/etc/fstab"
fi
setup_devices
x_feign_install () {
local pkg="$1"
local deb="$(debfor $pkg)"
local ver="$(extract_deb_field "$TARGET/$deb" Version)"
mkdir -p "$TARGET/var/lib/dpkg/info"
echo \
"Package: $pkg
Version: $ver
Status: install ok installed" >> "$TARGET/var/lib/dpkg/status"
touch "$TARGET/var/lib/dpkg/info/${pkg}.list"
}
x_feign_install dpkg
}
second_stage_install () {
x_core_install () {
smallyes '' | in_target dpkg --force-depends --install $(debfor "$@")
}
p () {
baseprog="$(($baseprog + ${1:-1}))"
}
setup_proc
in_target /sbin/ldconfig
DEBIAN_FRONTEND=noninteractive
DEBCONF_NONINTERACTIVE_SEEN=true
export DEBIAN_FRONTEND DEBCONF_NONINTERACTIVE_SEEN
baseprog=0
bases=40
p; progress $baseprog $bases INSTBASE "Installing base system" #1
info INSTCORE "Installing core packages..."
p; progress $baseprog $bases INSTBASE "Installing base system" #2
ln -sf mawk "$TARGET/usr/bin/awk"
x_core_install base-files base-passwd
p; progress $baseprog $bases INSTBASE "Installing base system" #3
x_core_install dpkg
if [ ! -e "$TARGET/etc/localtime" ]; then
ln -sf /usr/share/zoneinfo/UTC "$TARGET/etc/localtime"
fi
p; progress $baseprog $bases INSTBASE "Installing base system" #4
x_core_install $LIBC
p; progress $baseprog $bases INSTBASE "Installing base system" #5
x_core_install perl-base
p; progress $baseprog $bases INSTBASE "Installing base system" #6
rm "$TARGET/usr/bin/awk"
x_core_install mawk
p; progress $baseprog $bases INSTBASE "Installing base system" #7
x_core_install debconf
info UNPACKREQ "Unpacking required packages..."
p; progress $baseprog $bases INSTBASE "Installing base system" #8
smallyes '' | repeatn 5 in_target_failmsg UNPACK_REQ_FAIL_FIVE "Failure while unpacking required packages. This will be attempted up to five times." "" dpkg --force-depends --unpack $(debfor $required)
p 10; progress $baseprog $bases INSTBASE "Installing base system" #18
info CONFREQ "Configuring required packages..."
mv "$TARGET/sbin/start-stop-daemon" "$TARGET/sbin/start-stop-daemon.REAL"
echo \
"#!/bin/sh
echo
echo \"Warning: Fake start-stop-daemon called, doing nothing\"" > "$TARGET/sbin/start-stop-daemon"
chmod 755 "$TARGET/sbin/start-stop-daemon"
setup_dselect_method apt
p; progress $baseprog $bases INSTBASE "Installing base system" #19
smallyes '' | in_target_failmsg CONF_REQ_FAIL "Failure while configuring required packages." "" dpkg --configure --pending --force-configure-any --force-depends
p 10; progress $baseprog $bases INSTBASE "Installing base system" #29
# if [ ! -e "$TARGET/etc/exim/exim.conf" ]; then
# mkdir -p "$TARGET/etc/exim"
# touch "$TARGET/etc/exim/exim.conf"
# fi
info INSTBASE "Installing base packages..."
p; progress $baseprog $bases INSTBASE "Installing base system" #30
smallyes '' | repeatn 5 in_target_failmsg INST_BASE_FAIL_FIVE "Failure while installing base packages. This will be re-attempted up to five times." "" dpkg --force-auto-select --force-overwrite --force-confold --skip-same-version --unpack $(debfor $base)
rm -f "$TARGET/usr/sbin/sendmail"
ln -sf /bin/true "$TARGET/usr/sbin/sendmail"
smallyes '' | repeatn 5 in_target_failmsg CONF_BASE_FAIL_FIVE "Failure while configuring base packages. This will be attempted 5 times." "" dpkg --force-confold --skip-same-version --configure -a
rm -f "$TARGET/usr/sbin/sendmail"
ln -sf exim4 "$TARGET/usr/sbin/sendmail"
p 9; progress $baseprog $bases INSTBASE "Installing base system" #39
mv "$TARGET/sbin/start-stop-daemon.REAL" "$TARGET/sbin/start-stop-daemon"
progress $bases $bases INSTBASE "Installing base system" #40
info BASESUCCESS "Base system installed successfully."
}

166
scripts/sarge.buildd Normal file
View File

@ -0,0 +1,166 @@
mirror_style release
download_style apt
force_md5
LIBC=libc6
if [ "$ARCH" = "alpha" ] || [ "$ARCH" = "ia64" ]; then
LIBC="libc6.1"
fi
work_out_debs () {
required="base-files base-passwd bash bsdutils coreutils debianutils diff dpkg dselect e2fslibs e2fsprogs findutils gcc-3.3-base grep gzip hostname initscripts libacl1 libattr1 libblkid1 libc6 libcap1 libcomerr2 libdb1-compat libdb3 libgcc1 libncurses5 libpam-modules libpam-runtime libpam0g libss2 libstdc++5 libuuid1 login mawk mount ncurses-base ncurses-bin passwd perl-base sed slang1a-utf8 sysv-rc sysvinit tar util-linux zlib1g"
base="apt binutils cpio cpp cpp-3.3 dpkg-dev g++ g++-3.3 gcc gcc-3.3 libc6-dev libdb4.2 libgdbm3 libstdc++5-3.3-dev linux-kernel-headers make patch perl perl-modules"
without_package () {
echo "$2" | tr ' ' '\n' | grep -v "^$1$" | tr '\n' ' '
}
subst_package () {
echo "$3" | tr ' ' '\n' | sed "s/^$1$/$2/" | tr '\n' ' '
}
case $ARCH in
"alpha")
required="$(subst_package "libc6" "libc6.1" "$required")"
base="$(subst_package "libc6-dev" "libc6.1-dev" "$base")"
;;
"arm")
;;
"i386")
;;
"ia64")
required="$(subst_package "libc6" "libc6.1" "$required")"
base="$(subst_package "libc6-dev" "libc6.1-dev" "$base")"
;;
"m68k")
;;
"powerpc")
;;
"sparc")
;;
"mips")
;;
"mipsel")
;;
"hppa")
;;
s390|s390x)
;;
sh*)
;;
*)
# who knows?
;;
esac
}
first_stage_install () {
extract $required
mkdir -p "$TARGET/var/lib/dpkg"
: >"$TARGET/var/lib/dpkg/status"
echo >"$TARGET/var/lib/dpkg/available"
setup_etc
if [ ! -e "$TARGET/etc/fstab" ]; then
echo '# UNCONFIGURED FSTAB FOR BASE SYSTEM' > "$TARGET/etc/fstab"
chown 0:0 "$TARGET/etc/fstab"; chmod 644 "$TARGET/etc/fstab"
fi
setup_devices
x_feign_install () {
local pkg="$1"
local deb="$(debfor $pkg)"
local ver="$(extract_deb_field "$TARGET/$deb" Version)"
mkdir -p "$TARGET/var/lib/dpkg/info"
echo \
"Package: $pkg
Version: $ver
Status: install ok installed" >> "$TARGET/var/lib/dpkg/status"
touch "$TARGET/var/lib/dpkg/info/${pkg}.list"
}
x_feign_install dpkg
}
second_stage_install () {
x_core_install () {
smallyes '' | in_target dpkg --force-depends --install $(debfor "$@")
}
p () {
baseprog="$(($baseprog + ${1:-1}))"
}
setup_proc
in_target /sbin/ldconfig
DEBIAN_FRONTEND=noninteractive
export DEBIAN_FRONTEND
baseprog=0
bases=40
p; progress $baseprog $bases INSTBASE "Installing base system" #1
info INSTCORE "Installing core packages..."
p; progress $baseprog $bases INSTBASE "Installing base system" #2
ln -sf mawk "$TARGET/usr/bin/awk"
x_core_install base-files base-passwd
p; progress $baseprog $bases INSTBASE "Installing base system" #3
x_core_install dpkg
if [ ! -e "$TARGET/etc/localtime" ]; then
ln -sf /usr/share/zoneinfo/UTC "$TARGET/etc/localtime"
fi
p; progress $baseprog $bases INSTBASE "Installing base system" #4
x_core_install $LIBC
p; progress $baseprog $bases INSTBASE "Installing base system" #5
x_core_install perl-base
p; progress $baseprog $bases INSTBASE "Installing base system" #6
rm "$TARGET/usr/bin/awk"
x_core_install mawk
p; progress $baseprog $bases INSTBASE "Installing base system" #7
info UNPACKREQ "Unpacking required packages..."
p; progress $baseprog $bases INSTBASE "Installing base system" #8
smallyes '' | repeatn 5 in_target_failmsg UNPACK_REQ_FAIL_FIVE "Failure while unpacking required packages. This will be attempted up to five times." "" dpkg --force-depends --unpack $(debfor $required)
p 10; progress $baseprog $bases INSTBASE "Installing base system" #18
info CONFREQ "Configuring required packages..."
mv "$TARGET/sbin/start-stop-daemon" "$TARGET/sbin/start-stop-daemon.REAL"
echo \
"#!/bin/sh
echo
echo \"Warning: Fake start-stop-daemon called, doing nothing\"" > "$TARGET/sbin/start-stop-daemon"
chmod 755 "$TARGET/sbin/start-stop-daemon"
setup_dselect_method apt
p; progress $baseprog $bases INSTBASE "Installing base system" #19
smallyes '' | in_target_failmsg CONF_REQ_FAIL "Failure while configuring required packages." "" dpkg --configure --pending --force-configure-any --force-depends
p 10; progress $baseprog $bases INSTBASE "Installing base system" #29
info INSTBASE "Installing base packages..."
p; progress $baseprog $bases INSTBASE "Installing base system" #30
smallyes '' | repeatn 5 in_target_failmsg INST_BASE_FAIL_FIVE "Failure while installing base packages. This will be re-attempted up to five times." "" dpkg --force-auto-select --force-overwrite --force-confold --skip-same-version --unpack $(debfor $base)
smallyes '' | repeatn 5 in_target_failmsg CONF_BASE_FAIL_FIVE "Failure while configuring base packages. This will be attempted 5 times." "" dpkg --force-confold --skip-same-version --configure -a
p 9; progress $baseprog $bases INSTBASE "Installing base system" #39
mv "$TARGET/sbin/start-stop-daemon.REAL" "$TARGET/sbin/start-stop-daemon"
progress $bases $bases INSTBASE "Installing base system" #40
info BASESUCCESS "Base system installed successfully."
}

171
scripts/sarge.fakechroot Normal file
View File

@ -0,0 +1,171 @@
test "$FAKECHROOT" = "true" || error 1 FAKECHROOTREQ "This variant requires fakechroot environment to be started"
mirror_style release
download_style apt
force_md5
LIBC=libc6
if [ "$ARCH" = "alpha" ] || [ "$ARCH" = "ia64" ]; then
LIBC="libc6.1"
fi
work_out_debs () {
required="base-files base-passwd bash bsdutils coreutils debianutils diff dpkg dselect e2fslibs e2fsprogs findutils gcc-3.3-base grep gzip hostname initscripts libacl1 libattr1 libblkid1 libc6 libcap1 libcomerr2 libdb1-compat libdb3 libgcc1 libncurses5 libpam-modules libpam-runtime libpam0g libss2 libstdc++5 libuuid1 login mawk mount ncurses-base ncurses-bin passwd perl-base sed slang1a-utf8 sysv-rc sysvinit tar util-linux zlib1g"
base="apt binutils cpio cpp cpp-3.3 dpkg-dev g++ g++-3.3 gcc gcc-3.3 libc6-dev libdb4.2 libgdbm3 libstdc++5-3.3-dev linux-kernel-headers make patch perl perl-modules"
without_package () {
echo "$2" | tr ' ' '\n' | grep -v "^$1$" | tr '\n' ' '
}
subst_package () {
echo "$3" | tr ' ' '\n' | sed "s/^$1$/$2/" | tr '\n' ' '
}
required="$required binutils fakechroot"
base="$(without_package "binutils" "$base")"
case $ARCH in
"alpha")
required="$(subst_package "libc6" "libc6.1" "$required")"
base="$(subst_package "libc6-dev" "libc6.1-dev" "$base")"
;;
"arm")
;;
"i386")
;;
"ia64")
required="$(subst_package "libc6" "libc6.1" "$required")"
base="$(subst_package "libc6-dev" "libc6.1-dev" "$base")"
;;
"m68k")
;;
"powerpc")
;;
"sparc")
;;
"mips")
;;
"mipsel")
;;
"hppa")
;;
s390|s390x)
;;
sh*)
;;
*)
# who knows?
;;
esac
}
first_stage_install () {
extract $required
mkdir -p "$TARGET/var/lib/dpkg"
: >"$TARGET/var/lib/dpkg/status"
: >"$TARGET/var/lib/dpkg/available"
setup_etc
if [ ! -e "$TARGET/etc/fstab" ]; then
echo '# UNCONFIGURED FSTAB FOR BASE SYSTEM' > "$TARGET/etc/fstab"
chown 0:0 "$TARGET/etc/fstab"; chmod 644 "$TARGET/etc/fstab"
fi
x_feign_install () {
local pkg="$1"
local deb="$(debfor $pkg)"
local ver="$(extract_deb_field "$TARGET/$deb" Version)"
mkdir -p "$TARGET/var/lib/dpkg/info"
echo \
"Package: $pkg
Version: $ver
Status: install ok installed" >> "$TARGET/var/lib/dpkg/status"
touch "$TARGET/var/lib/dpkg/info/${pkg}.list"
}
x_feign_install dpkg
}
second_stage_install () {
x_core_install () {
smallyes '' | in_target dpkg --force-depends --install $(debfor "$@")
}
p () {
baseprog="$(($baseprog + ${1:-1}))"
}
setup_devices_fakechroot
setup_proc_symlink
DEBIAN_FRONTEND=noninteractive
export DEBIAN_FRONTEND
baseprog=0
bases=40
p; progress $baseprog $bases INSTBASE "Installing base system" #1
info INSTCORE "Installing core packages..."
p; progress $baseprog $bases INSTBASE "Installing base system" #2
ln -sf mawk "$TARGET/usr/bin/awk"
x_core_install base-files base-passwd
p; progress $baseprog $bases INSTBASE "Installing base system" #3
x_core_install dpkg
if [ ! -e "$TARGET/etc/localtime" ]; then
ln -sf /usr/share/zoneinfo/UTC "$TARGET/etc/localtime"
fi
install_fakechroot_tools
p; progress $baseprog $bases INSTBASE "Installing base system" #4
x_core_install $LIBC
p; progress $baseprog $bases INSTBASE "Installing base system" #5
x_core_install perl-base
p; progress $baseprog $bases INSTBASE "Installing base system" #6
rm "$TARGET/usr/bin/awk"
x_core_install mawk
p; progress $baseprog $bases INSTBASE "Installing base system" #7
info UNPACKREQ "Unpacking required packages..."
p; progress $baseprog $bases INSTBASE "Installing base system" #8
smallyes '' | repeatn 5 in_target_failmsg UNPACK_REQ_FAIL_FIVE "Failure while unpacking required packages. This will be attempted up to five times." "" dpkg --force-depends --unpack $(debfor $required)
p 10; progress $baseprog $bases INSTBASE "Installing base system" #18
info CONFREQ "Configuring required packages..."
mv "$TARGET/sbin/start-stop-daemon" "$TARGET/sbin/start-stop-daemon.REAL"
echo \
"#!/bin/sh
echo
echo \"Warning: Fake start-stop-daemon called, doing nothing\"" > "$TARGET/sbin/start-stop-daemon"
chmod 755 "$TARGET/sbin/start-stop-daemon"
setup_dselect_method apt
p; progress $baseprog $bases INSTBASE "Installing base system" #19
smallyes '' | in_target_failmsg CONF_REQ_FAIL "Failure while configuring required packages." "" dpkg --configure --pending --force-configure-any --force-depends
p 10; progress $baseprog $bases INSTBASE "Installing base system" #29
info INSTBASE "Installing base packages..."
p; progress $baseprog $bases INSTBASE "Installing base system" #30
smallyes '' | repeatn 5 in_target_failmsg INST_BASE_FAIL_FIVE "Failure while installing base packages. This will be re-attempted up to five times." "" dpkg --force-auto-select --force-overwrite --force-confold --skip-same-version --unpack $(debfor $base)
smallyes '' | repeatn 5 in_target_failmsg CONF_BASE_FAIL_FIVE "Failure while configuring base packages. This will be attempted 5 times." "" dpkg --force-confold --skip-same-version --configure -a
p 9; progress $baseprog $bases INSTBASE "Installing base system" #39
mv "$TARGET/sbin/start-stop-daemon.REAL" "$TARGET/sbin/start-stop-daemon"
progress $bases $bases INSTBASE "Installing base system" #40
info BASESUCCESS "Base system installed successfully."
}

1
scripts/saucy Symbolic link
View File

@ -0,0 +1 @@
gutsy

16
scripts/sid Normal file
View File

@ -0,0 +1,16 @@
mirror_style release
download_style apt
finddebs_style from-indices
variants - buildd fakechroot minbase
keyring /usr/share/keyrings/debian-archive-keyring.gpg
# include common settings
if [ -e "$DEBOOTSTRAP_DIR/scripts/debian-common" ]; then
. "$DEBOOTSTRAP_DIR/scripts/debian-common"
elif [ -e /debootstrap/debian-common ]; then
. /debootstrap/debian-common
elif [ -e "$DEBOOTSTRAP_DIR/debian-common" ]; then
. "$DEBOOTSTRAP_DIR/debian-common"
else
error 1 NOCOMMON "File not found: debian-common"
fi

1
scripts/squeeze Symbolic link
View File

@ -0,0 +1 @@
etch

1
scripts/stable Symbolic link
View File

@ -0,0 +1 @@
sid

1
scripts/stretch Symbolic link
View File

@ -0,0 +1 @@
sid

1
scripts/testing Symbolic link
View File

@ -0,0 +1 @@
sid

1
scripts/trusty Symbolic link
View File

@ -0,0 +1 @@
gutsy

1
scripts/unstable Symbolic link
View File

@ -0,0 +1 @@
sid

1
scripts/utopic Symbolic link
View File

@ -0,0 +1 @@
gutsy

1
scripts/v100 Symbolic link
View File

@ -0,0 +1 @@
gutsy

1
scripts/v101 Symbolic link
View File

@ -0,0 +1 @@
gutsy

1
scripts/vivid Symbolic link
View File

@ -0,0 +1 @@
gutsy

166
scripts/warty Normal file
View File

@ -0,0 +1,166 @@
default_mirror http://old-releases.ubuntu.com/ubuntu
mirror_style release
download_style apt
LIBC=libc6
work_out_debs () {
required="base-files base-passwd bash bsdutils coreutils libacl1 libattr1 debconf debconf-i18n liblocale-gettext-perl libtext-iconv-perl libtext-wrapi18n-perl libtext-charwidth-perl debianutils diff dpkg dselect libblkid1 e2fsprogs e2fslibs libcomerr2 libss2 libuuid1 findutils grep gzip hostname libcap1 libc6 libdb1-compat libdb3 libncurses5 libnewt0.51 libpam-modules libpam-runtime libpam0g libpopt0 login makedev mawk modutils mount ncurses-base ncurses-bin passwd perl-base procps sed slang1a-utf8 lsb-base initscripts sysvinit sysv-rc tar util-linux zlib1g whiptail libgcc1 gcc-3.3-base libstdc++5"
base="adduser alsa-base alsa-utils apt apt-utils aptitude at base-config bind9-host bsdmainutils bzip2 console-common console-data console-tools cpio cramfsprogs cron dash dbus-1 dhcp3-client dhcp3-common discover1 discover1-data dmsetup dnsutils dosfstools ed eject evms evms-ncurses fdutils file ftp gettext-base gnupg groff-base hdparm hotplug ifrename ifupdown info initrd-tools iproute iptables iputils-arping iputils-ping iputils-tracepath jfsutils klogd less libasound2 libatm1 libbz2-1.0 libconsole libdb4.2 libdevmapper1.00 libdiscover1 libdns16 libevms-2.3 libexpat1 libfribidi0 libgc1 libgcrypt7 libgdbm3 libgnutls10 libgpg-error0 libgpmg1 libidn11 libisc7 libiw27 libldap2 liblockfile1 liblwres1 liblzo1 libmagic1 libncursesw5 libopencdk8 libparted1.6-0 libpcap0.7 libpcap0.8 libreiserfs0.3-0 libsasl2 libsigc++-1.2-5c102 libssl0.9.7 libtasn1-2 libusb-0.1-4 libwrap0 locales logrotate lshw lsof ltrace lvm-common lvm10 lvm2 mailx man-db manpages mdadm mii-diag mime-support module-init-tools mtr-tiny mutt nano net-tools netbase netcat netkit-inetd ntp ntpdate openssh-client parted pciutils popularity-contest postfix postfix-tls ppp pppconfig pppoeconf psmisc python python2.3 reiser4progs reiserfsprogs reportbug rsync strace sudo sysklogd tcpd tcpdump telnet time ubuntu-base udev usbutils vim vim-common w3m wget wireless-tools xfsprogs"
without_package () {
echo "$2" | tr ' ' '\n' | grep -v "^$1$" | tr '\n' ' '
}
subst_package () {
echo "$3" | tr ' ' '\n' | sed "s/^$1$/$2/" | tr '\n' ' '
}
case $ARCH in
"i386")
required="$required libc6-i686"
base="$base dmidecode memtest86+ libreadline4"
;;
"powerpc")
required="$required libreadline4"
base="$base hfsplus hfsutils libhfsp0 mac-fdisk pmac-fdisk powerpc-utils"
;;
"amd64")
base="$base dmidecode libreadline4"
;;
*)
# who knows?
;;
esac
}
install_debs () {
first_stage_install
second_stage_install
}
first_stage_install () {
extract $required
mkdir -p "$TARGET/var/lib/dpkg"
: >"$TARGET/var/lib/dpkg/status"
echo >"$TARGET/var/lib/dpkg/available"
setup_etc
if [ ! -e "$TARGET/etc/fstab" ]; then
echo '# UNCONFIGURED FSTAB FOR BASE SYSTEM' > "$TARGET/etc/fstab"
chown 0:0 "$TARGET/etc/fstab"; chmod 644 "$TARGET/etc/fstab"
fi
setup_devices
x_feign_install () {
local pkg="$1"
local deb="$(debfor $pkg)"
local ver="$(extract_deb_field "$TARGET/$deb" Version)"
mkdir -p "$TARGET/var/lib/dpkg/info"
echo \
"Package: $pkg
Version: $ver
Status: install ok installed" >> "$TARGET/var/lib/dpkg/status"
touch "$TARGET/var/lib/dpkg/info/${pkg}.list"
}
x_feign_install dpkg
}
second_stage_install () {
x_core_install () {
smallyes '' | in_target dpkg --force-depends --install $(debfor "$@")
}
p () {
baseprog="$(($baseprog + ${1:-1}))"
}
DEBIAN_FRONTEND=noninteractive
DEBCONF_NONINTERACTIVE_SEEN=true
export DEBIAN_FRONTEND DEBCONF_NONINTERACTIVE_SEEN
setup_proc
in_target /sbin/ldconfig
baseprog=0
bases=7
p; progress $baseprog $bases INSTCORE "Installing core packages" #1
info INSTCORE "Installing core packages..."
p; progress $baseprog $bases INSTCORE "Installing core packages" #2
ln -sf mawk "$TARGET/usr/bin/awk"
x_core_install base-files base-passwd
p; progress $baseprog $bases INSTCORE "Installing core packages" #3
x_core_install dpkg
if [ ! -e "$TARGET/etc/localtime" ]; then
ln -sf /usr/share/zoneinfo/UTC "$TARGET/etc/localtime"
fi
p; progress $baseprog $bases INSTCORE "Installing core packages" #4
x_core_install $LIBC
p; progress $baseprog $bases INSTCORE "Installing core packages" #5
x_core_install perl-base
p; progress $baseprog $bases INSTCORE "Installing core packages" #6
rm "$TARGET/usr/bin/awk"
x_core_install mawk
p; progress $baseprog $bases INSTCORE "Installing core packages" #7
x_core_install debconf
baseprog=0
bases="$(set -- $required; echo $#)"
info UNPACKREQ "Unpacking required packages..."
smallyes '' | (repeatn 5 in_target_failmsg UNPACK_REQ_FAIL_FIVE "Failure while unpacking required packages. This will be attempted up to five times." "" dpkg --status-fd 8 --force-depends --unpack $(debfor $required) 8>&1 1>&7 | dpkg_progress $baseprog $bases UNPACKREQ "Unpacking required packages" UNPACKING) 7>&1
baseprog=0
info CONFREQ "Configuring required packages..."
mv "$TARGET/sbin/start-stop-daemon" "$TARGET/sbin/start-stop-daemon.REAL"
echo \
"#!/bin/sh
echo
echo \"Warning: Fake start-stop-daemon called, doing nothing\"" > "$TARGET/sbin/start-stop-daemon"
chmod 755 "$TARGET/sbin/start-stop-daemon"
setup_dselect_method apt
#on_exit "(in_target_nofail umount /dev/pts) || true"
smallyes '' | (in_target_failmsg CONF_REQ_FAIL "Failure while configuring required packages." "" dpkg --status-fd 8 --configure --pending --force-configure-any --force-depends 8>&1 1>&7 | dpkg_progress $baseprog $bases CONFREQ "Configuring required packages" CONFIGURING) 7>&1
baseprog=0
bases="$(set -- $base; echo $#)"
info UNPACKBASE "Unpacking the base system..."
smallyes '' | (repeatn 5 in_target_failmsg INST_BASE_FAIL_FIVE "Failure while installing base packages. This will be re-attempted up to five times." "" dpkg --status-fd 8 --force-auto-select --force-overwrite --force-confold --skip-same-version --unpack $(debfor $base) 8>&1 1>&7 | dpkg_progress $baseprog $bases UNPACKBASE "Unpacking base system" UNPACKING) 7>&1
baseprog=0
info CONFBASE "Configuring the base system..."
mv "$TARGET/usr/sbin/sendmail" "$TARGET/usr/sbin/sendmail.REAL"
ln -s /bin/true "$TARGET/usr/sbin/sendmail"
smallyes '' | (repeatn 5 in_target_failmsg CONF_BASE_FAIL_FIVE "Failure while configuring base packages. This will be attempted 5 times." "" dpkg --status-fd 8 --force-confold --skip-same-version --configure -a 8>&1 1>&7 | dpkg_progress $baseprog $bases CONFBASE "Configuring base system" CONFIGURING) 7>&1
rm -f "$TARGET/usr/sbin/sendmail"
mv "$TARGET/usr/sbin/sendmail.REAL" "$TARGET/usr/sbin/sendmail"
mv "$TARGET/sbin/start-stop-daemon.REAL" "$TARGET/sbin/start-stop-daemon"
progress $bases $bases CONFBASE "Configuring base system"
info BASESUCCESS "Base system installed successfully."
}

159
scripts/warty.buildd Normal file
View File

@ -0,0 +1,159 @@
default_mirror http://old-releases.ubuntu.com/ubuntu
mirror_style release
download_style apt
LIBC=libc6
if [ "$ARCH" = "alpha" ] || [ "$ARCH" = "ia64" ]; then
LIBC="libc6.1"
fi
work_out_debs () {
required="base-files base-passwd bash bsdutils build-essential coreutils debianutils diff dpkg dselect e2fslibs e2fsprogs fakeroot findutils gcc-3.3-base grep gzip hostname initscripts libacl1 libattr1 libblkid1 libc6 libcap1 libcomerr2 libdb1-compat libdb3 libgcc1 libncurses5 libpam-modules libpam-runtime libpam0g libss2 libstdc++5 libuuid1 login lsb-base mawk mount ncurses-base ncurses-bin perl-base sed slang1a-utf8 sysv-rc sysvinit tar util-linux zlib1g"
base="apt binutils cpio cpp cpp-3.3 dpkg-dev g++ g++-3.3 gcc gcc-3.3 libc6-dev libdb4.2 libgdbm3 libstdc++5-3.3-dev linux-kernel-headers make patch perl perl-modules"
without_package () {
echo "$2" | tr ' ' '\n' | grep -v "^$1$" | tr '\n' ' '
}
subst_package () {
echo "$3" | tr ' ' '\n' | sed "s/^$1$/$2/" | tr '\n' ' '
}
case $ARCH in
"amd64")
;;
"i386")
;;
"powerpc")
;;
# Unsupported architectures:
"alpha")
required="$(subst_package "libc6" "libc6.1" "$required")"
base="$(subst_package "libc6-dev" "libc6.1-dev" "$base")"
;;
"ia64")
required="$(subst_package "libc6" "libc6.1" "$required")"
base="$(subst_package "libc6-dev" "libc6.1-dev" "$base")"
;;
*)
# who knows?
;;
esac
}
install_debs () {
first_stage_install
second_stage_install
}
first_stage_install () {
extract $required
mkdir -p "$TARGET/var/lib/dpkg"
: >"$TARGET/var/lib/dpkg/status"
echo >"$TARGET/var/lib/dpkg/available"
setup_etc
if [ ! -e "$TARGET/etc/fstab" ]; then
echo '# UNCONFIGURED FSTAB FOR BASE SYSTEM' > "$TARGET/etc/fstab"
chown 0:0 "$TARGET/etc/fstab"; chmod 644 "$TARGET/etc/fstab"
fi
setup_devices
x_feign_install () {
local pkg="$1"
local deb="$(debfor $pkg)"
local ver="$(extract_deb_field "$TARGET/$deb" Version)"
mkdir -p "$TARGET/var/lib/dpkg/info"
echo \
"Package: $pkg
Version: $ver
Status: install ok installed" >> "$TARGET/var/lib/dpkg/status"
touch "$TARGET/var/lib/dpkg/info/${pkg}.list"
}
x_feign_install dpkg
}
second_stage_install () {
x_core_install () {
smallyes '' | in_target dpkg --force-depends --install $(debfor "$@")
}
p () {
baseprog="$(($baseprog + ${1:-1}))"
}
DEBIAN_FRONTEND=noninteractive
export DEBIAN_FRONTEND
baseprog=0
bases=40
setup_proc
in_target /sbin/ldconfig
p; progress $baseprog $bases INSTCORE "Installing core packages" #1
info INSTCORE "Installing core packages..."
p; progress $baseprog $bases INSTCORE "Installing core packages" #2
ln -sf mawk "$TARGET/usr/bin/awk"
x_core_install base-files base-passwd
p; progress $baseprog $bases INSTCORE "Installing core packages" #3
x_core_install dpkg
if [ ! -e "$TARGET/etc/localtime" ]; then
ln -sf /usr/share/zoneinfo/UTC "$TARGET/etc/localtime"
fi
p; progress $baseprog $bases INSTCORE "Installing core packages" #4
x_core_install $LIBC
p; progress $baseprog $bases INSTCORE "Installing core packages" #5
x_core_install perl-base
p; progress $baseprog $bases INSTCORE "Installing core packages" #6
rm "$TARGET/usr/bin/awk"
x_core_install mawk
p; progress $baseprog $bases INSTCORE "Installing core packages" #7
info UNPACKREQ "Unpacking required packages..."
p; progress $baseprog $bases INSTCORE "Installing core packages" #8
smallyes '' | repeatn 5 in_target_failmsg UNPACK_REQ_FAIL_FIVE "Failure while unpacking required packages. This will be attempted up to five times." "" dpkg --force-depends --unpack $(debfor $required)
p 10; progress $baseprog $bases INSTCORE "Installing core packages" #18
info CONFREQ "Configuring required packages..."
mv "$TARGET/sbin/start-stop-daemon" "$TARGET/sbin/start-stop-daemon.REAL"
echo \
"#!/bin/sh
echo
echo \"Warning: Fake start-stop-daemon called, doing nothing\"" > "$TARGET/sbin/start-stop-daemon"
chmod 755 "$TARGET/sbin/start-stop-daemon"
setup_dselect_method apt
#on_exit "in_target_nofail umount /dev/pts"
p; progress $baseprog $bases INSTCORE "Installing core packages" #19
smallyes '' | in_target_failmsg CONF_REQ_FAIL "Failure while configuring required packages." "" dpkg --configure --pending --force-configure-any --force-depends
p 10; progress $baseprog $bases INSTCORE "Installing core packages" #29
info INSTCORE "Installing base packages..."
p; progress $baseprog $bases INSTCORE "Installing core packages" #30
smallyes '' | repeatn 5 in_target_failmsg INST_BASE_FAIL_FIVE "Failure while installing base packages. This will be re-attempted up to five times." "" dpkg --force-auto-select --force-overwrite --force-confold --skip-same-version --unpack $(debfor $base)
smallyes '' | repeatn 5 in_target_failmsg CONF_BASE_FAIL_FIVE "Failure while configuring base packages. This will be attempted 5 times." "" dpkg --force-confold --skip-same-version --configure -a
p 9; progress $baseprog $bases INSTCORE "Installing core packages" #39
mv "$TARGET/sbin/start-stop-daemon.REAL" "$TARGET/sbin/start-stop-daemon"
progress $bases $bases INSTCORE "Installing core packages" #40
info BASESUCCESS "Base system installed successfully."
}

1
scripts/wheezy Symbolic link
View File

@ -0,0 +1 @@
sid

1
scripts/wily Symbolic link
View File

@ -0,0 +1 @@
gutsy

205
scripts/woody Normal file
View File

@ -0,0 +1,205 @@
mirror_style release
download_style apt
default_mirror http://archive.debian.org/debian
keyring /usr/share/keyrings/debian-archive-removed-keys.gpg
force_md5
LIBC=libc6
if [ "$ARCH" = "alpha" ] || [ "$ARCH" = "ia64" ]; then
LIBC="libc6.1"
fi
work_out_debs () {
required="base-files base-passwd bash bsdutils debconf debianutils diff dpkg e2fsprogs fileutils findutils grep gzip hostname libcap1 libc6 libdb2 libdb3 libncurses5 libnewt0 libpam-modules libpam-runtime libpam0g libperl5.6 libpopt0 libreadline4 libstdc++2.10-glibc2.2 login makedev mawk modutils mount ncurses-base ncurses-bin passwd perl-base procps sed shellutils slang1 sysvinit tar textutils util-linux whiptail"
base="adduser apt apt-utils at base-config bsdmainutils console-common console-tools console-tools-libs console-data cpio cron dhcp-client ed exim fdutils gettext-base groff-base ifupdown info klogd libident libldap2 liblockfile1 libpcre3 libsasl7 libwrap0 logrotate mailx man-db manpages modconf nano net-tools netbase netkit-inetd netkit-ping nvi ppp pppconfig pppoe pppoeconf libpcap0 sysklogd tasksel tcpd telnet"
without_package () {
echo "$2" | tr ' ' '\n' | grep -v "^$1$" | tr '\n' ' '
}
IPFWTOOL=iptables
case $ARCH in
"alpha")
required="$(without_package "libc6" "$required") libc6.1"
base="$base setserial aboot pciutils"
IPFWTOOL="ipchains"
;;
"arm")
base="$base setserial libgpmg1"
IPFWTOOL="ipchains iptables"
;;
"i386")
required="$(without_package "libperl5.6" "$required") mbr"
base="$base lilo pciutils setserial syslinux psmisc pcmcia-cs"
IPFWTOOL="ipchains iptables"
;;
"ia64")
required="$(without_package "libc6" "$required") libc6.1 gcc-2.96-base"
base="$base elilo efibootmgr dosfstools libparted1.4 parted"
;;
"m68k")
base="$base atari-bootstrap atari-fdisk amiga-fdisk eject mac-fdisk pmac-fdisk-cross setserial vmelilo"
IPFWTOOL="ipchains"
;;
"powerpc")
base="$base quik mac-fdisk amiga-fdisk psmisc powerpc-utils setserial pciutils hfsutils yaboot pcmcia-cs"
IPFWTOOL="ipchains iptables"
;;
"sparc")
base="$base silo eject pciutils sparc-utils"
IPFWTOOL="ipchains iptables"
;;
"mips")
base="$base dvhtool pciutils setserial" # pcmcia-cs
;;
"mipsel")
base="$base delo pciutils setserial" # pcmcia-cs
;;
"hppa")
base="$base palo libstdc++3 gcc-3.0-base"
required="$(without_package "libstdc++2.10-glibc2.2" "$required")"
;;
s390|s390x)
# base-config depends on console-data and console-common
# so we can't exclude them although they are useless on s390
base="$base s390-tools telnetd devfsd"
base="$(without_package "console-tools" "$base")"
base="$(without_package "console-tools-libs" "$base")"
base="$(without_package "fdutils" "$base")"
base="$(without_package "ppp" "$base")"
base="$(without_package "pppconfig" "$base")"
base="$(without_package "pppoe" "$base")"
base="$(without_package "pppoeconf" "$base")"
;;
*)
# who knows?
;;
esac
base="$base $IPFWTOOL"
}
first_stage_install () {
extract $required
mkdir -p "$TARGET/var/lib/dpkg"
: >"$TARGET/var/lib/dpkg/status"
echo >"$TARGET/var/lib/dpkg/available"
setup_etc
if [ ! -e "$TARGET/etc/fstab" ]; then
echo '# UNCONFIGURED FSTAB FOR BASE SYSTEM' > "$TARGET/etc/fstab"
chown 0:0 "$TARGET/etc/fstab"; chmod 644 "$TARGET/etc/fstab"
fi
setup_devices
x_feign_install () {
local pkg="$1"
local deb="$(debfor $pkg)"
local ver="$(extract_deb_field "$TARGET/$deb" Version)"
mkdir -p "$TARGET/var/lib/dpkg/info"
echo \
"Package: $pkg
Version: $ver
Status: install ok installed" >> "$TARGET/var/lib/dpkg/status"
touch "$TARGET/var/lib/dpkg/info/${pkg}.list"
}
x_feign_install dpkg
}
second_stage_install () {
x_core_install () {
smallyes '' | in_target dpkg --force-depends --install $(debfor "$@")
}
p () {
baseprog="$(($baseprog + ${1:-1}))"
}
setup_proc
in_target /sbin/ldconfig
DEBIAN_FRONTEND=Noninteractive
export DEBIAN_FRONTEND
baseprog=0
bases=40
p; progress $baseprog $bases INSTBASE "Installing base system" #1
info INSTCORE "Installing core packages..."
p; progress $baseprog $bases INSTBASE "Installing base system" #2
ln -sf mawk "$TARGET/usr/bin/awk"
x_core_install base-files base-passwd
p; progress $baseprog $bases INSTBASE "Installing base system" #3
x_core_install dpkg
if [ ! -e "$TARGET/etc/localtime" ]; then
ln -sf /usr/share/zoneinfo/UTC "$TARGET/etc/localtime"
fi
p; progress $baseprog $bases INSTBASE "Installing base system" #4
x_core_install $LIBC
p; progress $baseprog $bases INSTBASE "Installing base system" #5
x_core_install perl-base
p; progress $baseprog $bases INSTBASE "Installing base system" #6
rm "$TARGET/usr/bin/awk"
x_core_install mawk
p; progress $baseprog $bases INSTBASE "Installing base system" #7
x_core_install debconf
info UNPACKREQ "Unpacking required packages..."
p; progress $baseprog $bases INSTBASE "Installing base system" #8
smallyes '' | repeatn 5 in_target_failmsg UNPACK_REQ_FAIL_FIVE "Failure while unpacking required packages. This will be attempted up to five times." "" dpkg --force-depends --unpack $(debfor $required)
p 10; progress $baseprog $bases INSTBASE "Installing base system" #18
info CONFREQ "Configuring required packages..."
mv "$TARGET/sbin/start-stop-daemon" "$TARGET/sbin/start-stop-daemon.REAL"
echo \
"#!/bin/sh
echo
echo \"Warning: Fake start-stop-daemon called, doing nothing\"" > "$TARGET/sbin/start-stop-daemon"
chmod 755 "$TARGET/sbin/start-stop-daemon"
setup_dselect_method apt
p; progress $baseprog $bases INSTBASE "Installing base system" #19
smallyes '' | in_target_failmsg CONF_REQ_FAIL "Failure while configuring required packages." "" dpkg --configure --pending --force-configure-any --force-depends
p 10; progress $baseprog $bases INSTBASE "Installing base system" #29
if [ ! -e "$TARGET/etc/exim/exim.conf" ]; then
mkdir -p "$TARGET/etc/exim"
touch "$TARGET/etc/exim/exim.conf"
fi
info INSTBASE "Installing base packages..."
p; progress $baseprog $bases INSTBASE "Installing base system" #30
smallyes '' | repeatn 5 in_target_failmsg INST_BASE_FAIL_FIVE "Failure while installing base packages. This will be re-attempted up to five times." "" dpkg --force-auto-select --force-overwrite --force-confold --skip-same-version --unpack $(debfor $base)
rm -f "$TARGET/usr/sbin/sendmail"
ln -sf /bin/true "$TARGET/usr/sbin/sendmail"
smallyes '' | repeatn 5 in_target_failmsg CONF_BASE_FAIL_FIVE "Failure while configuring base packages. This will be attempted 5 times." "" dpkg --force-confold --skip-same-version --configure -a
rm -f "$TARGET/usr/sbin/sendmail"
ln -sf exim "$TARGET/usr/sbin/sendmail"
p 9; progress $baseprog $bases INSTBASE "Installing base system" #39
mv "$TARGET/sbin/start-stop-daemon.REAL" "$TARGET/sbin/start-stop-daemon"
progress $bases $bases INSTBASE "Installing base system" #40
info BASESUCCESS "Base system installed successfully."
}

168
scripts/woody.buildd Normal file
View File

@ -0,0 +1,168 @@
mirror_style release
download_style apt
default_mirror http://archive.debian.org/debian
keyring /usr/share/keyrings/debian-archive-removed-keys.gpg
force_md5
LIBC=libc6
if [ "$ARCH" = "alpha" ] || [ "$ARCH" = "ia64" ]; then
LIBC="libc6.1"
fi
work_out_debs () {
required="base-files base-passwd bash bsdutils debianutils diff dpkg e2fsprogs fileutils findutils grep gzip hostname libc6 libcap1 libdb3 libgdbmg1 libncurses5 libpam-modules libpam-runtime libpam0g libperl5.6 libstdc++2.10-glibc2.2 login mawk mount ncurses-base ncurses-bin perl-base sed shellutils slang1 sysvinit tar textutils util-linux"
base="apt binutils cpio cpp cpp-2.95 debconf dpkg-dev g++ g++-2.95 gcc gcc-2.95 libc6-dev libdb2 libstdc++2.10-dev make patch perl perl-modules"
without_package () {
echo "$2" | tr ' ' '\n' | grep -v "^$1$" | tr '\n' ' '
}
case $ARCH in
"alpha")
required="$(without_package "libc6" "$required") libc6.1"
base="$(without_package "libc6-dev" "$base") libc6.1-dev"
;;
"arm")
;;
"i386")
;;
"ia64")
required="$(without_package "libc6" "$required") libc6.1 gcc-2.96-base libreadline4"
base="$(without_package "cpp-2.95" "$base") cpp-2.96"
base="$(without_package "gcc-2.95" "$base") gcc-2.96"
base="$(without_package "g++-2.95" "$base") g++-2.96"
base="$(without_package "libc6-dev" "$base") libc6.1-dev elilo efibootmgr dosfstools libparted1.4 parted"
;;
"m68k")
;;
"powerpc")
;;
"sparc")
;;
"mips")
;;
"mipsel")
;;
"hppa")
;;
s390|s390x)
;;
sh*)
;;
*)
# who knows?
;;
esac
}
first_stage_install () {
extract $required
mkdir -p "$TARGET/var/lib/dpkg"
: >"$TARGET/var/lib/dpkg/status"
echo >"$TARGET/var/lib/dpkg/available"
setup_etc
if [ ! -e "$TARGET/etc/fstab" ]; then
echo '# UNCONFIGURED FSTAB FOR BASE SYSTEM' > "$TARGET/etc/fstab"
chown 0:0 "$TARGET/etc/fstab"; chmod 644 "$TARGET/etc/fstab"
fi
setup_devices
x_feign_install () {
local pkg="$1"
local deb="$(debfor $pkg)"
local ver="$(extract_deb_field "$TARGET/$deb" Version)"
mkdir -p "$TARGET/var/lib/dpkg/info"
echo \
"Package: $pkg
Version: $ver
Status: install ok installed" >> "$TARGET/var/lib/dpkg/status"
touch "$TARGET/var/lib/dpkg/info/${pkg}.list"
}
x_feign_install dpkg
}
second_stage_install () {
x_core_install () {
smallyes '' | in_target dpkg --force-depends --install $(debfor "$@")
}
p () {
baseprog="$(($baseprog + ${1:-1}))"
}
setup_proc
in_target /sbin/ldconfig
DEBIAN_FRONTEND=noninteractive
export DEBIAN_FRONTEND
baseprog=0
bases=40
p; progress $baseprog $bases INSTBASE "Installing base system" #1
info INSTCORE "Installing core packages..."
p; progress $baseprog $bases INSTBASE "Installing base system" #2
ln -sf mawk "$TARGET/usr/bin/awk"
x_core_install base-files base-passwd
p; progress $baseprog $bases INSTBASE "Installing base system" #3
x_core_install dpkg
if [ ! -e "$TARGET/etc/localtime" ]; then
ln -sf /usr/share/zoneinfo/UTC "$TARGET/etc/localtime"
fi
p; progress $baseprog $bases INSTBASE "Installing base system" #4
x_core_install $LIBC
p; progress $baseprog $bases INSTBASE "Installing base system" #5
x_core_install perl-base
p; progress $baseprog $bases INSTBASE "Installing base system" #6
rm "$TARGET/usr/bin/awk"
x_core_install mawk
p; progress $baseprog $bases INSTBASE "Installing base system" #7
info UNPACKREQ "Unpacking required packages..."
p; progress $baseprog $bases INSTBASE "Installing base system" #8
smallyes '' | repeatn 5 in_target_failmsg UNPACK_REQ_FAIL_FIVE "Failure while unpacking required packages. This will be attempted up to five times." "" dpkg --force-depends --unpack $(debfor $required)
p 10; progress $baseprog $bases INSTBASE "Installing base system" #18
info CONFREQ "Configuring required packages..."
mv "$TARGET/sbin/start-stop-daemon" "$TARGET/sbin/start-stop-daemon.REAL"
echo \
"#!/bin/sh
echo
echo \"Warning: Fake start-stop-daemon called, doing nothing\"" > "$TARGET/sbin/start-stop-daemon"
chmod 755 "$TARGET/sbin/start-stop-daemon"
setup_dselect_method apt
p; progress $baseprog $bases INSTBASE "Installing base system" #19
smallyes '' | in_target_failmsg CONF_REQ_FAIL "Failure while configuring required packages." "" dpkg --configure --pending --force-configure-any --force-depends
p 10; progress $baseprog $bases INSTBASE "Installing base system" #29
info INSTBASE "Installing base packages..."
p; progress $baseprog $bases INSTBASE "Installing base system" #30
smallyes '' | repeatn 5 in_target_failmsg INST_BASE_FAIL_FIVE "Failure while installing base packages. This will be re-attempted up to five times." "" dpkg --force-auto-select --force-overwrite --force-confold --skip-same-version --unpack $(debfor $base)
smallyes '' | repeatn 5 in_target_failmsg CONF_BASE_FAIL_FIVE "Failure while configuring base packages. This will be attempted 5 times." "" dpkg --force-confold --skip-same-version --configure -a
p 9; progress $baseprog $bases INSTBASE "Installing base system" #39
mv "$TARGET/sbin/start-stop-daemon.REAL" "$TARGET/sbin/start-stop-daemon"
progress $bases $bases INSTBASE "Installing base system" #40
info BASESUCCESS "Base system installed successfully."
}

1
scripts/xenial Symbolic link
View File

@ -0,0 +1 @@
gutsy

1
scripts/yakkety Symbolic link
View File

@ -0,0 +1 @@
gutsy

1
scripts/zesty Symbolic link
View File

@ -0,0 +1 @@
gutsy