You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kali-live-build/auto/config

137 lines
3.7 KiB
Plaintext

#!/bin/bash
set -e
set -o pipefail # Bashism
# You can put local mirrors here if you want
kali_mirror=http://archive.kali.org/kali
kalisec_mirror=http://archive.kali.org/kali-security
### DO NOT EDIT THE REST OF THIS FILE ###
public_kali_mirror=http://http.kali.org/kali
public_kalisec_mirror=http://security.kali.org/kali-security
# Detect target architecture and filter args
temp=""
arch=$(dpkg --print-architecture)
dist="kali-current"
lb_opts=""
while [ $# -gt 0 ]; do
arg="$1"
case "$arg" in
-a|--arch|--architecture|--architectures)
arch="$2"
temp="$temp "'"'"$arg"'"'
temp="$temp "'"'"$2"'"'
shift
;;
--distribution)
dist="$2"
shift
;;
--variant)
variant="$2"
shift
;;
-p|--proposed-updates)
enable_pu="1"
;;
--)
# Skip the separator, it was added so that "lb config"
# doesn't barf on our own options, but now we are
# filtering them away assuming that the remaining ones
# are intended for lb config !
;;
*)
temp="$temp "'"'"$arg"'"'
;;
esac
shift
done
eval set -- "$temp"
# Resolve release name
dist=$(curl -s $kali_mirror/dists/$dist/Release | awk '/^Codename:/ {print $2}')
# live-build doesn't work if --parent-debian-distribution is unknown of
# debian-cd => we have to put a symlink so that it deals with kali like wheezy
if [ ! -e ${LIVE_BUILD:-/usr/share/live/build}/data/debian-cd/$dist ]; then
if [ -w ${LIVE_BUILD:-/usr/share/live/build}/data/debian-cd ]; then
ln -sf wheezy ${LIVE_BUILD:-/usr/share/live/build}/data/debian-cd/$dist
else
echo "ERROR: Run this first:"
echo "ln -sf wheezy ${LIVE_BUILD:-/usr/share/live/build}/data/debian-cd/$dist"
exit 1
fi
fi
# Define options that vary across architectures
case "$arch" in
amd64)
lb_opts="$lb_opts --debian-installer live"
;;
i386)
lb_opts="$lb_opts --debian-installer live --linux-flavours 686-pae"
;;
armel|armhf)
lb_opts="$lb_opts --binary-images hdd --binary-filesystem ext4 --chroot-filesystem none"
;;
*)
echo "WARNING: configuration not tested on arch $arch" >&2
;;
esac
# Setup configuration files from variant and options
# Drop all files that a former run might have put into place
for file in $(cd kali-config && find . -type f); do
file=${file#./*/}
rm -f config/$file
done
rm -f config/archives/kali-proposed-updates.list.*
# Copy over all files from official kali configuration
cp -rT kali-config/common config
[ ! -d kali-config/release-$dist ] || cp -rTL kali-config/release-$dist config
[ ! -d kali-config/variant-$variant ] || cp -rTL kali-config/variant-$variant config
if [ -n "$enable_pu" ]; then
mkdir -p config/archives
echo "deb $kali_mirror $dist-proposed-updates main contrib non-free" \
> config/archives/kali-proposed-updates.list.chroot
echo "deb $public_kali_mirror $dist-proposed-updates main contrib non-free" \
> config/archives/kali-proposed-updates.list.binary
fi
lb config noauto \
--distribution "$dist" \
--debian-installer-distribution "$dist" \
--archive-areas "main contrib non-free" \
--debootstrap-options "--keyring=/usr/share/keyrings/kali-archive-keyring.gpg" \
--keyring-packages kali-archive-keyring \
--updates false \
--backports false \
--source false \
--firmware-binary true \
--firmware-chroot true \
--mirror-bootstrap "$kali_mirror" \
--mirror-debian-installer "$kali_mirror" \
--mirror-chroot-security "$kalisec_mirror" \
--mirror-binary "$public_kali_mirror" \
--mirror-binary-security "$public_kalisec_mirror" \
--iso-application "Kali Linux" \
--iso-publisher "Kali" \
--iso-volume "Kali Live" \
--linux-packages linux-image \
--bootappend-live "boot=live username=root hostname=kali" \
$lb_opts \
"$@"
case "$dist" in
kali|moto)
# Don' use systemd for now
sed -i -e 's/systemd/sysvinit/' config/package-lists/live.list.chroot
;;
esac