Skip to content
Snippets Groups Projects
Commit 76a9f47e authored by Ruben Rodriguez's avatar Ruben Rodriguez
Browse files

debootstrap helper updated for flidas

parent 0e9936f8
No related branches found
No related tags found
No related merge requests found
trisquel
\ No newline at end of file
default_mirror http://archive.trisquel.info/trisquel case $ARCH in
amd64|i386)
default_mirror http://archive.trisquel.info/trisquel
;;
*)
default_mirror http://ports.trisquel.info/trisquel
;;
esac
mirror_style release mirror_style release
download_style apt download_style apt
finddebs_style from-indices finddebs_style from-indices
variants - buildd fakechroot minbase variants - buildd fakechroot minbase
keyring /usr/share/keyrings/trisquel-archive-keyring.gpg
if doing_variant fakechroot; then if doing_variant fakechroot; then
test "$FAKECHROOT" = "true" || error 1 FAKECHROOTREQ "This variant requires fakechroot environment to be started" test "$FAKECHROOT" = "true" || error 1 FAKECHROOTREQ "This variant requires fakechroot environment to be started"
fi fi
case $ARCH in case $ARCH in
alpha|ia64) LIBC="libc6.1" ;; alpha|ia64) LIBC="libc6.1" ;;
*) LIBC="libc6" ;; *) LIBC="libc6" ;;
esac esac
work_out_debs () { work_out_debs () {
required="$(get_debs Priority: required)" required="$(get_debs Priority: required)"
if doing_variant -; then if doing_variant -; then
#required="$required $(get_debs Priority: important)" #required="$required $(get_debs Priority: important)"
# ^^ should be getting debconf here somehow maybe # ^^ should be getting debconf here somehow maybe
base="$(get_debs Priority: important)" base="$(get_debs Priority: important)"
elif doing_variant buildd; then elif doing_variant buildd; then
base="$(get_debs Build-Essential: yes)" base="$(get_debs Build-Essential: yes)"
elif doing_variant fakechroot || doing_variant minbase; then elif doing_variant fakechroot || doing_variant minbase; then
base="apt" base="apt"
fi fi
case $MIRRORS in
https://*)
base="$base apt-transport-https ca-certificates"
;;
esac
} }
first_stage_install () { first_stage_install () {
extract $required extract $required
mkdir -p "$TARGET/var/lib/dpkg" mkdir -p "$TARGET/var/lib/dpkg"
: >"$TARGET/var/lib/dpkg/status" : >"$TARGET/var/lib/dpkg/status"
: >"$TARGET/var/lib/dpkg/available" : >"$TARGET/var/lib/dpkg/available"
setup_etc setup_etc
if [ ! -e "$TARGET/etc/fstab" ]; then if [ ! -e "$TARGET/etc/fstab" ]; then
echo '# UNCONFIGURED FSTAB FOR BASE SYSTEM' > "$TARGET/etc/fstab" echo '# UNCONFIGURED FSTAB FOR BASE SYSTEM' > "$TARGET/etc/fstab"
chown 0:0 "$TARGET/etc/fstab"; chmod 644 "$TARGET/etc/fstab" chown 0:0 "$TARGET/etc/fstab"; chmod 644 "$TARGET/etc/fstab"
fi fi
if doing_variant fakechroot; then setup_devices
setup_devices_fakechroot
else
setup_devices
fi
x_feign_install () { x_feign_install () {
local pkg="$1" local pkg="$1"
local deb="$(debfor $pkg)" local deb="$(debfor $pkg)"
local ver="$(extract_deb_field "$TARGET/$deb" Version)" local ver="$(extract_deb_field "$TARGET/$deb" Version)"
mkdir -p "$TARGET/var/lib/dpkg/info" mkdir -p "$TARGET/var/lib/dpkg/info"
echo \ echo \
"Package: $pkg "Package: $pkg
Version: $ver Version: $ver
Status: install ok installed" >> "$TARGET/var/lib/dpkg/status" Status: install ok installed" >> "$TARGET/var/lib/dpkg/status"
touch "$TARGET/var/lib/dpkg/info/${pkg}.list" touch "$TARGET/var/lib/dpkg/info/${pkg}.list"
} }
x_feign_install dpkg x_feign_install dpkg
} }
second_stage_install () { second_stage_install () {
x_core_install () { x_core_install () {
smallyes '' | in_target dpkg --force-depends --install $(debfor "$@") smallyes '' | in_target dpkg --force-depends --install $(debfor "$@")
} }
p () { p () {
baseprog="$(($baseprog + ${1:-1}))" baseprog="$(($baseprog + ${1:-1}))"
} }
if doing_variant fakechroot; then if doing_variant fakechroot; then
setup_proc_fakechroot setup_proc_fakechroot
else else
setup_proc setup_proc
in_target /sbin/ldconfig in_target /sbin/ldconfig
fi fi
DEBIAN_FRONTEND=noninteractive DEBIAN_FRONTEND=noninteractive
DEBCONF_NONINTERACTIVE_SEEN=true DEBCONF_NONINTERACTIVE_SEEN=true
export DEBIAN_FRONTEND DEBCONF_NONINTERACTIVE_SEEN export DEBIAN_FRONTEND DEBCONF_NONINTERACTIVE_SEEN
baseprog=0 baseprog=0
bases=7 bases=7
p; progress $baseprog $bases INSTCORE "Installing core packages" #1 p; progress $baseprog $bases INSTCORE "Installing core packages" #1
info INSTCORE "Installing core packages..." info INSTCORE "Installing core packages..."
p; progress $baseprog $bases INSTCORE "Installing core packages" #2 p; progress $baseprog $bases INSTCORE "Installing core packages" #2
ln -sf mawk "$TARGET/usr/bin/awk" ln -sf mawk "$TARGET/usr/bin/awk"
x_core_install base-files base-passwd x_core_install base-passwd
p; progress $baseprog $bases INSTCORE "Installing core packages" #3 x_core_install base-files
x_core_install dpkg p; progress $baseprog $bases INSTCORE "Installing core packages" #3
x_core_install dpkg
if [ ! -e "$TARGET/etc/localtime" ]; then if [ ! -e "$TARGET/etc/localtime" ]; then
ln -sf /usr/share/zoneinfo/Etc/UTC "$TARGET/etc/localtime" ln -sf /usr/share/zoneinfo/Etc/UTC "$TARGET/etc/localtime"
fi fi
if doing_variant fakechroot; then if doing_variant fakechroot; then
install_fakechroot_tools install_fakechroot_tools
fi fi
p; progress $baseprog $bases INSTCORE "Installing core packages" #4 p; progress $baseprog $bases INSTCORE "Installing core packages" #4
x_core_install $LIBC x_core_install $LIBC
p; progress $baseprog $bases INSTCORE "Installing core packages" #5 p; progress $baseprog $bases INSTCORE "Installing core packages" #5
x_core_install perl-base x_core_install perl-base
p; progress $baseprog $bases INSTCORE "Installing core packages" #6 p; progress $baseprog $bases INSTCORE "Installing core packages" #6
rm "$TARGET/usr/bin/awk" rm "$TARGET/usr/bin/awk"
x_core_install mawk x_core_install mawk
p; progress $baseprog $bases INSTCORE "Installing core packages" #7 p; progress $baseprog $bases INSTCORE "Installing core packages" #7
if doing_variant -; then if doing_variant -; then
x_core_install debconf x_core_install debconf
fi fi
baseprog=0 baseprog=0
bases=$(set -- $required; echo $#) bases=$(set -- $required; echo $#)
info UNPACKREQ "Unpacking required packages..." info UNPACKREQ "Unpacking required packages..."
smallyes '' | smallyes '' |
(repeatn 5 in_target_failmsg UNPACK_REQ_FAIL_FIVE "Failure while unpacking required packages. This will be attempted up to five times." "" \ (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 --status-fd 8 --force-depends --unpack $(debfor $required) 8>&1 1>&7 |
dpkg_progress $baseprog $bases UNPACKREQ "Unpacking required packages" UNPACKING) 7>&1 dpkg_progress $baseprog $bases UNPACKREQ "Unpacking required packages" UNPACKING) 7>&1
info CONFREQ "Configuring required packages..." info CONFREQ "Configuring required packages..."
if doing_variant fakechroot; then if doing_variant fakechroot; then
# fix initscripts postinst (no mounting possible, and wrong if condition) # 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" sed -i '/dpkg.*--compare-versions/ s/\<lt\>/lt-nl/' "$TARGET/var/lib/dpkg/info/initscripts.postinst"
fi 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" mv "$TARGET/sbin/start-stop-daemon" "$TARGET/sbin/start-stop-daemon.REAL"
echo \ echo \
"#!/bin/sh "#!/bin/sh
echo echo
echo \"Warning: Fake start-stop-daemon called, doing nothing\"" > "$TARGET/sbin/start-stop-daemon" echo \"Warning: Fake start-stop-daemon called, doing nothing\"" > "$TARGET/sbin/start-stop-daemon"
chmod 755 "$TARGET/sbin/start-stop-daemon" chmod 755 "$TARGET/sbin/start-stop-daemon"
if [ -x "$TARGET/sbin/initctl" ]; then if [ -x "$TARGET/sbin/initctl" ]; then
mv "$TARGET/sbin/initctl" "$TARGET/sbin/initctl.REAL" mv "$TARGET/sbin/initctl" "$TARGET/sbin/initctl.REAL"
echo \ echo \
"#!/bin/sh "#!/bin/sh
if [ \"\$1\" = version ]; then exec /sbin/initctl.REAL \"\$@\"; fi
echo echo
echo \"Warning: Fake initctl called, doing nothing\"" > "$TARGET/sbin/initctl" echo \"Warning: Fake initctl called, doing nothing\"" > "$TARGET/sbin/initctl"
chmod 755 "$TARGET/sbin/initctl" chmod 755 "$TARGET/sbin/initctl"
fi fi
setup_dselect_method apt setup_dselect_method apt
smallyes '' | smallyes '' |
(in_target_failmsg CONF_REQ_FAIL "Failure while configuring required packages." "" \ (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 --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 dpkg_progress $baseprog $bases CONFREQ "Configuring required packages" CONFIGURING) 7>&1
baseprog=0 baseprog=0
bases="$(set -- $base; echo $#)" bases="$(set -- $base; echo $#)"
info UNPACKBASE "Unpacking the base system..." info UNPACKBASE "Unpacking the base system..."
setup_available $required $base setup_available $required $base
done_predeps= done_predeps=
while predep=$(get_next_predep); do while predep=$(get_next_predep); do
# We have to resolve dependencies of pre-dependencies manually because # We have to resolve dependencies of pre-dependencies manually because
# dpkg --predep-package doesn't handle this. # dpkg --predep-package doesn't handle this.
predep=$(without "$(without "$(resolve_deps $predep)" "$required")" "$done_predeps") predep=$(without "$(without "$(resolve_deps $predep)" "$required")" "$done_predeps")
# XXX: progress is tricky due to how dpkg_progress works # XXX: progress is tricky due to how dpkg_progress works
# -- cjwatson 2009-07-29 # -- cjwatson 2009-07-29
p; smallyes '' | in_target dpkg --force-overwrite --force-confold --skip-same-version --install $(debfor $predep) p; smallyes '' |
base=$(without "$base" "$predep") in_target dpkg --force-overwrite --force-confold --skip-same-version --install $(debfor $predep)
done_predeps="$done_predeps $predep" base=$(without "$base" "$predep")
done 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." "" \ smallyes '' |
dpkg --status-fd 8 --force-overwrite --force-confold --skip-same-version --unpack $(debfor $base) 8>&1 1>&7 | (repeatn 5 in_target_failmsg INST_BASE_FAIL_FIVE "Failure while installing base packages. This will be re-attempted up to five times." "" \
dpkg_progress $baseprog $bases UNPACKBASE "Unpacking base system" UNPACKING) 7>&1 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..."
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." "" \ smallyes '' |
dpkg --status-fd 8 --force-confold --skip-same-version --configure -a 8>&1 1>&7 | (repeatn 5 in_target_failmsg CONF_BASE_FAIL_FIVE "Failure while configuring base packages. This will be re-attempted up to five times." "" \
dpkg_progress $baseprog $bases CONFBASE "Configuring base system" CONFIGURING) 7>&1 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
if [ -x "$TARGET/sbin/initctl.REAL" ]; then
mv "$TARGET/sbin/initctl.REAL" "$TARGET/sbin/initctl" if [ -x "$TARGET/sbin/initctl.REAL" ]; then
fi mv "$TARGET/sbin/initctl.REAL" "$TARGET/sbin/initctl"
mv "$TARGET/sbin/start-stop-daemon.REAL" "$TARGET/sbin/start-stop-daemon" fi
mv "$TARGET/sbin/start-stop-daemon.REAL" "$TARGET/sbin/start-stop-daemon"
progress $bases $bases CONFBASE "Configuring base system" rm -f "$TARGET/usr/sbin/policy-rc.d"
info BASESUCCESS "Base system installed successfully."
progress $bases $bases CONFBASE "Configuring base system"
info BASESUCCESS "Base system installed successfully."
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment