summaryrefslogtreecommitdiff
path: root/libre/debootstrap
diff options
context:
space:
mode:
authorDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2018-11-10 18:52:05 +0100
committerDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2018-11-11 17:53:47 +0100
commit63ab5673653f53da1e54219fe0f16c4758072b31 (patch)
tree6346bdc86b7107de8daf942ed883fd2c8b6633f2 /libre/debootstrap
parent532939ba18a14942d7e4ebc5954c706b40f97f5a (diff)
downloadabslibre-63ab5673653f53da1e54219fe0f16c4758072b31.tar.gz
abslibre-63ab5673653f53da1e54219fe0f16c4758072b31.tar.bz2
abslibre-63ab5673653f53da1e54219fe0f16c4758072b31.zip
debootstrap: switch to the 1.0.110 version to repair Trisquel
Trisquel debootstrap was broken by the switch to the 1.0.109 version. This fixes that by switching to the 1.0.110 version and syncing the trisquel script with the upstream debootstrap's gutsy script. This commit was tested with: - Trisquel flidas: test OK - Trisquel belenos: test OK - Trisquel toutatis: test OK The following things were tested: - debootstrap return code (0 for success) - the presence of the usual folders (bin, boot, dev, etc) The tests were done the following way: (1) The package was built and installed (2) an empty rootfs directory was created (3) debootstrap was run in this directory with: sudo debootstrap "${version}" rootfs/ http://archive.trisquel.info/trisquel with version being the trisquel version(flidas, belenos, etc) (4) The exit code was checked and the directories listed inside the rootfs directory Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Diffstat (limited to 'libre/debootstrap')
-rw-r--r--libre/debootstrap/PKGBUILD21
-rw-r--r--libre/debootstrap/trisquel345
2 files changed, 213 insertions, 153 deletions
diff --git a/libre/debootstrap/PKGBUILD b/libre/debootstrap/PKGBUILD
index 24a65283b..02167ab2a 100644
--- a/libre/debootstrap/PKGBUILD
+++ b/libre/debootstrap/PKGBUILD
@@ -5,7 +5,7 @@
# Contributor: André Silva <emulatorman@hyperbola.info>
pkgname=debootstrap
-pkgver=1.0.109
+pkgver=1.0.110
pkgrel=1
pkgrel+=.par1
pkgdesc="Bootstrap a basic gNewSense and Trisquel system, without Debian support"
@@ -18,12 +18,13 @@ source=("$pkgname-$pkgver.tar.gz::https://github.com/felixonmars/debootstrap/arc
debootstrap.8
gnewsense
trisquel)
-optdepends=('gnupg: check release signatures')
-sha512sums=('8b2cf0ba3e0c672a2375ff323c18c18788e17a4bdf3e03d6b72f956a85b989d3998b89215bc7b99925decbba3c9a5dbeddfc72b9baf7c0571f11559ff8286272'
+optdepends=('gnupg: check release signatures'
+ 'trisquel-keyring: check Trisquel release signatures')
+sha512sums=('e687bd3ca43f41f2f2d196b1519e6a7cc3a3e63d9b2e50c808a7508ff90aece4499d61f613a872325df27e44b723e9157a27f85f0e0aa355e49017f84bbb1561'
'56e25f48027f99f7e720859a9e14fe769b1cbd6227c7a7e27e14c2fea88520109342d6e5b127dc34ce8cc40f46941a0c5157ad35cf8ef9b3e4323877a4b32d97'
'0b3507756b8f29d19146df3201143ccbd71cfd1f7ef865d184079180612b90c046cabab59fe42d246bfe476ae8fd5c43e81ee2fc3ee06bbc1fc3e75d9f1382ca'
'968ef005bf1f399b3400080b2ba65f1b32c067c49faadc1caa7ee524a85980f0a6625c7b06838e01bbd8b99a496492da77a38f0e17f0a81fc029ee611fe639b6'
- 'b192dcbd0d85923ddd97d1094bbcf36edb36a095bfe06e0971707651524f6712c7ab21f733ba6f24e5cbc2e977aec7c52645e41b78d04e45fca65971f89a47a7')
+ 'bf0310b9c4c7ad03bfcb0f47dff80e66fbb30f1d010a00137dcce84e52ff97c145bfa8079d9a05393e7e11a50c52656f2f555c5e53960643c8e2c7813acf4bfc')
prepare() {
cd debootstrap-$pkgver
@@ -42,8 +43,16 @@ prepare() {
# Add rebranded man
install -m644 ../debootstrap.8 .
- # Remove Debian scripts
- rm -v scripts/*
+ # Remove (non-FSDG compliant) distributions's scripts
+ for SCRIPT in scripts/* ; do
+ case $SCRIPT in
+ scripts/debian-common)
+ ;;
+ *)
+ rm -v $SCRIPT
+ ;;
+ esac
+ done
# Add gNewSense script
install -m644 $srcdir/gnewsense scripts
diff --git a/libre/debootstrap/trisquel b/libre/debootstrap/trisquel
index 7efa062f9..e98f94177 100644
--- a/libre/debootstrap/trisquel
+++ b/libre/debootstrap/trisquel
@@ -1,199 +1,250 @@
-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
download_style apt
finddebs_style from-indices
variants - buildd fakechroot minbase
+keyring /usr/share/keyrings/trisquel-archive-keyring.gpg
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
case $ARCH in
- alpha|ia64) LIBC="libc6.1" ;;
- *) LIBC="libc6" ;;
+ 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 -; 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="$(get_debs Build-Essential: yes)"
- elif doing_variant fakechroot || doing_variant minbase; then
- base="apt"
- fi
+ 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 () {
- extract $required
-
- mkdir -p "$TARGET/var/lib/dpkg"
- : >"$TARGET/var/lib/dpkg/status"
- : >"$TARGET/var/lib/dpkg/available"
+ case "$CODENAME" in
+ # "merged-usr" blacklist for past releases
+ robur|dwyn|awen|taranis|slaine|dagda|brigantia|toutatis|belenos|flidas)
+ [ -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
+}
- 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
+second_stage_install () {
+ in_target /bin/true
- if doing_variant fakechroot; then
- setup_devices_fakechroot
- else
- setup_devices
- fi
+ setup_dynamic_devices
- x_feign_install () {
- local pkg="$1"
- local deb="$(debfor $pkg)"
- local ver="$(extract_deb_field "$TARGET/$deb" Version)"
+ 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"
+ mkdir -p "$TARGET/var/lib/dpkg/info"
- echo \
+ echo \
"Package: $pkg
Version: $ver
+Maintainer: unknown
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 () {
- x_core_install () {
- smallyes '' | in_target dpkg --force-depends --install $(debfor "$@")
- }
+ x_core_install () {
+ smallyes '' | in_target dpkg --force-depends --install $(debfor "$@")
+ }
+
+ p () {
+ baseprog="$(($baseprog + ${1:-1}))"
+ }
- p () {
- baseprog="$(($baseprog + ${1:-1}))"
- }
+ if ! doing_variant fakechroot; then
+ setup_proc
+ in_target /sbin/ldconfig
+ fi
- if doing_variant fakechroot; then
- setup_proc_fakechroot
- else
- setup_proc
- in_target /sbin/ldconfig
- fi
+ DEBIAN_FRONTEND=noninteractive
+ DEBCONF_NONINTERACTIVE_SEEN=true
+ export DEBIAN_FRONTEND DEBCONF_NONINTERACTIVE_SEEN
- DEBIAN_FRONTEND=noninteractive
- DEBCONF_NONINTERACTIVE_SEEN=true
- export DEBIAN_FRONTEND DEBCONF_NONINTERACTIVE_SEEN
+ baseprog=0
+ bases=7
- 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" #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
- 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 [ ! -e "$TARGET/etc/localtime" ]; then
- ln -sf /usr/share/zoneinfo/Etc/UTC "$TARGET/etc/localtime"
- fi
+ if doing_variant fakechroot; then
+ install_fakechroot_tools
+ 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" #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" #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" #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
- p; progress $baseprog $bases INSTCORE "Installing core packages" #7
- if doing_variant -; then
- x_core_install debconf
- fi
+ baseprog=0
+ bases=$(set -- $required; echo $#)
- baseprog=0
- bases=$(set -- $required; echo $#)
+ info UNPACKREQ "Unpacking required packages..."
- 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) 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..."
+ 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
+ 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 \
+ 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"
+ chmod 755 "$TARGET/sbin/start-stop-daemon"
- if [ -x "$TARGET/sbin/initctl" ]; then
- mv "$TARGET/sbin/initctl" "$TARGET/sbin/initctl.REAL"
- echo \
+ 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) 7>&1
-
- 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 |
- 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
-
- 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"
-
- progress $bases $bases CONFBASE "Configuring base system"
- info BASESUCCESS "Base system installed successfully."
+ 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 || 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
+
+ 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."
}