/usr/share/debci/bin/debci-setup-chdist is in debci 1.7.1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | #!/bin/sh
set -eu
usage() {
cat <<EOF
usage: $0 [OPTIONS]
$@
EOF
}
# skip when running tests
if [ -n "${DEBCI_RUNNING_TESTS:-}" ]; then exit; fi
base=$(readlink -f $(dirname $(readlink -f $0))/..)
. $base/lib/environment.sh
. $base/lib/functions.sh
root="$debci_data_basedir/chdist"
name="${debci_suite}-${debci_arch}"
# create new chdist if it doesn't exist already
if [ ! -e "$root/$name" ]; then
log "I: Creating new chdist $root/$name"
call_chdist create >/dev/null
# figure out default mirror from debootstrap scripts
DEF_MIRROR="${MIRROR:-http://http.debian.net/debian}"
SUITE=$debci_suite
TARGET="$root/$name"
ARCH=$debci_arch
set +u
. /usr/share/debootstrap/functions
exec 4>&1
# this updates $DEF_MIRROR (Ubuntu, ports, ..)
. /usr/share/debootstrap/scripts/$debci_suite
set -u
# enable all components
if [ "${DEF_MIRROR%ubuntu*}" = "$DEF_MIRROR" ]; then
COMPONENTS="main" # Debian
else
COMPONENTS="main restricted universe multiverse" # Ubuntu
fi
mirror=${debci_mirror:-$DEF_MIRROR}
# write apt sources.list
mkdir -p $TARGET/etc/apt/
echo "deb [arch=${debci_arch}] $mirror $SUITE $COMPONENTS
deb-src $mirror $SUITE $COMPONENTS" > "$TARGET/etc/apt/sources.list"
# add buildd sources
#FIXME duplicates logic in backends/schroot/create-testbed
if grep -q debian "$TARGET/etc/apt/sources.list"; then
if [ "$SUITE" = unstable ]; then
buildd_suite=buildd-$SUITE
else
buildd_suite=buildd-$SUITE-proposed-updates
fi
cat >> "$TARGET/etc/apt/sources.list" <<EOF
deb [arch=${debci_arch}] http://incoming.debian.org/debian-buildd $buildd_suite main
deb-src http://incoming.debian.org/debian-buildd $buildd_suite main
EOF
fi
# use a local proxy if available
http_proxy="${http_proxy:-}"
if [ -z "$http_proxy" ]; then
# detect a local apt-cacher-ng cache running. 10.0.2.2 = default IP
# assigned to host system as seen from a kvm/virtualbox virtual machine
for ip in 127.0.0.1 10.0.2.2; do
if nc -z -w 1 $ip 3142; then
export http_proxy=http://$ip:3142
fi
done
fi
if [ -n "$http_proxy" ]; then
echo "Acquire::http::Proxy \"$http_proxy\";" > "$TARGET/etc/apt/apt.conf.d/01proxy"
fi
# disable multi-arch
echo "Apt::Architectures {\"$ARCH\";};" > "$TARGET/etc/apt/apt.conf.d/97_no_multiarch"
# disable unnecessary srcpkgcache
echo 'Dir::Cache::srcpkgcache "";' > "$TARGET/etc/apt/apt.conf.d/98disable_cache"
# do not download translations
echo 'Acquire::Languages "none";' > "$TARGET/etc/apt/apt.conf.d/99translations"
fi
update_chdist() {
call_chdist apt-get update
base_system="$root/$name/base-system.txt"
# dpgk-dev is added to all clean test beds by debci itself
base_packages="dpkg-dev $(call_chdist grep-dctrl-packages -n -s Package -F Priority required --or important)"
chdist \
--data-dir "$root" \
apt-get "$name" --simulate --quiet --no-install-recommends install $base_packages \
| awk '{ if ($1 == "Inst") {print($2)}}' | sort > "$base_system"
awk '{print("/^"$1"\\s/d")}' $base_system > "${root}/${name}/exclude-base-system.sed"
}
if [ "$debci_quiet" = 'true' ]; then
update_chdist >/dev/null 2>&1
else
update_chdist
fi
|