From f2e663f0879c2ca781cd878af5c18305ee69e78a Mon Sep 17 00:00:00 2001 From: Igor Date: Fri, 22 Dec 2023 08:04:55 +0100 Subject: [PATCH] Improved debootstrap hacking support with fixes for Ubuntu Noble (#6076) * Remove extension for patching Deboostrap to support Ubuntu Noble * Integrate Deboostrap patching to the build script * fix problems related to Noble --- .../_config/cli/_all_distributions/main/packages | 2 -- .../architectures/amd64/_config/cli/bookworm | 1 + .../architectures/amd64/_config/cli/bullseye | 2 +- .../architectures/amd64/_config/cli/jammy | 1 + .../architectures/amd64/_config/cli/lunar | 1 + .../architectures/amd64/_config/cli/mantic | 1 + .../optional/architectures/amd64/_config/cli/sid | 1 - .../packages.additional => sid/main/packages} | 2 ++ .../main/packages.additional | 0 .../architectures/amd64/_config/cli/trixie | 1 + .../architectures/arm64/_config/cli/bookworm | 1 + .../architectures/arm64/_config/cli/bullseye | 1 + .../architectures/arm64/_config/cli/buster | 1 + .../architectures/arm64/_config/cli/focal | 1 + .../architectures/arm64/_config/cli/jammy | 1 + .../architectures/arm64/_config/cli/kinetic | 1 + .../architectures/arm64/_config/cli/lunar | 1 + .../architectures/arm64/_config/cli/mantic | 1 + .../cli/{_all_distributions => sid}/main/packages | 0 .../main/packages.additional | 0 .../architectures/armhf/_config/cli/bookworm | 1 + .../architectures/armhf/_config/cli/bullseye | 1 + .../architectures/armhf/_config/cli/buster | 1 + .../architectures/armhf/_config/cli/focal | 1 + .../architectures/armhf/_config/cli/jammy | 1 + .../architectures/armhf/_config/cli/kinetic | 1 + .../architectures/armhf/_config/cli/lunar | 1 + .../architectures/armhf/_config/cli/mantic | 1 + .../cli/{_all_distributions => sid}/main/packages | 0 .../main/packages.additional | 0 .../architectures/armhf/_config/cli/trixie | 1 + extensions/ubuntu-noble.sh | 15 --------------- lib/functions/configuration/main-config.sh | 2 ++ lib/functions/rootfs/rootfs-create.sh | 8 ++++++++ 34 files changed, 35 insertions(+), 19 deletions(-) delete mode 100644 config/optional/architectures/amd64/_config/cli/_all_distributions/main/packages create mode 120000 config/optional/architectures/amd64/_config/cli/bookworm create mode 120000 config/optional/architectures/amd64/_config/cli/jammy create mode 120000 config/optional/architectures/amd64/_config/cli/lunar create mode 120000 config/optional/architectures/amd64/_config/cli/mantic delete mode 120000 config/optional/architectures/amd64/_config/cli/sid rename config/optional/architectures/amd64/_config/cli/{jammy/main/config_desktop/packages.additional => sid/main/packages} (58%) rename config/optional/architectures/amd64/_config/cli/{_all_distributions => sid}/main/packages.additional (100%) create mode 120000 config/optional/architectures/amd64/_config/cli/trixie create mode 120000 config/optional/architectures/arm64/_config/cli/bookworm create mode 120000 config/optional/architectures/arm64/_config/cli/bullseye create mode 120000 config/optional/architectures/arm64/_config/cli/buster create mode 120000 config/optional/architectures/arm64/_config/cli/focal create mode 120000 config/optional/architectures/arm64/_config/cli/jammy create mode 120000 config/optional/architectures/arm64/_config/cli/kinetic create mode 120000 config/optional/architectures/arm64/_config/cli/lunar create mode 120000 config/optional/architectures/arm64/_config/cli/mantic rename config/optional/architectures/arm64/_config/cli/{_all_distributions => sid}/main/packages (100%) rename config/optional/architectures/arm64/_config/cli/{_all_distributions => sid}/main/packages.additional (100%) create mode 120000 config/optional/architectures/armhf/_config/cli/bookworm create mode 120000 config/optional/architectures/armhf/_config/cli/bullseye create mode 120000 config/optional/architectures/armhf/_config/cli/buster create mode 120000 config/optional/architectures/armhf/_config/cli/focal create mode 120000 config/optional/architectures/armhf/_config/cli/jammy create mode 120000 config/optional/architectures/armhf/_config/cli/kinetic create mode 120000 config/optional/architectures/armhf/_config/cli/lunar create mode 120000 config/optional/architectures/armhf/_config/cli/mantic rename config/optional/architectures/armhf/_config/cli/{_all_distributions => sid}/main/packages (100%) rename config/optional/architectures/armhf/_config/cli/{_all_distributions => sid}/main/packages.additional (100%) create mode 120000 config/optional/architectures/armhf/_config/cli/trixie delete mode 100644 extensions/ubuntu-noble.sh diff --git a/config/optional/architectures/amd64/_config/cli/_all_distributions/main/packages b/config/optional/architectures/amd64/_config/cli/_all_distributions/main/packages deleted file mode 100644 index ef2bb7c357e7..000000000000 --- a/config/optional/architectures/amd64/_config/cli/_all_distributions/main/packages +++ /dev/null @@ -1,2 +0,0 @@ -gpiod -nocache diff --git a/config/optional/architectures/amd64/_config/cli/bookworm b/config/optional/architectures/amd64/_config/cli/bookworm new file mode 120000 index 000000000000..9a63c961dc67 --- /dev/null +++ b/config/optional/architectures/amd64/_config/cli/bookworm @@ -0,0 +1 @@ +sid \ No newline at end of file diff --git a/config/optional/architectures/amd64/_config/cli/bullseye b/config/optional/architectures/amd64/_config/cli/bullseye index c17ec919b58e..9a63c961dc67 120000 --- a/config/optional/architectures/amd64/_config/cli/bullseye +++ b/config/optional/architectures/amd64/_config/cli/bullseye @@ -1 +1 @@ -jammy \ No newline at end of file +sid \ No newline at end of file diff --git a/config/optional/architectures/amd64/_config/cli/jammy b/config/optional/architectures/amd64/_config/cli/jammy new file mode 120000 index 000000000000..9a63c961dc67 --- /dev/null +++ b/config/optional/architectures/amd64/_config/cli/jammy @@ -0,0 +1 @@ +sid \ No newline at end of file diff --git a/config/optional/architectures/amd64/_config/cli/lunar b/config/optional/architectures/amd64/_config/cli/lunar new file mode 120000 index 000000000000..9a63c961dc67 --- /dev/null +++ b/config/optional/architectures/amd64/_config/cli/lunar @@ -0,0 +1 @@ +sid \ No newline at end of file diff --git a/config/optional/architectures/amd64/_config/cli/mantic b/config/optional/architectures/amd64/_config/cli/mantic new file mode 120000 index 000000000000..9a63c961dc67 --- /dev/null +++ b/config/optional/architectures/amd64/_config/cli/mantic @@ -0,0 +1 @@ +sid \ No newline at end of file diff --git a/config/optional/architectures/amd64/_config/cli/sid b/config/optional/architectures/amd64/_config/cli/sid deleted file mode 120000 index c17ec919b58e..000000000000 --- a/config/optional/architectures/amd64/_config/cli/sid +++ /dev/null @@ -1 +0,0 @@ -jammy \ No newline at end of file diff --git a/config/optional/architectures/amd64/_config/cli/jammy/main/config_desktop/packages.additional b/config/optional/architectures/amd64/_config/cli/sid/main/packages similarity index 58% rename from config/optional/architectures/amd64/_config/cli/jammy/main/config_desktop/packages.additional rename to config/optional/architectures/amd64/_config/cli/sid/main/packages index ffcbdbe91c5f..57fce43c9f48 100644 --- a/config/optional/architectures/amd64/_config/cli/jammy/main/config_desktop/packages.additional +++ b/config/optional/architectures/amd64/_config/cli/sid/main/packages @@ -1 +1,3 @@ +gpiod +nocache firmware-sof-signed diff --git a/config/optional/architectures/amd64/_config/cli/_all_distributions/main/packages.additional b/config/optional/architectures/amd64/_config/cli/sid/main/packages.additional similarity index 100% rename from config/optional/architectures/amd64/_config/cli/_all_distributions/main/packages.additional rename to config/optional/architectures/amd64/_config/cli/sid/main/packages.additional diff --git a/config/optional/architectures/amd64/_config/cli/trixie b/config/optional/architectures/amd64/_config/cli/trixie new file mode 120000 index 000000000000..9a63c961dc67 --- /dev/null +++ b/config/optional/architectures/amd64/_config/cli/trixie @@ -0,0 +1 @@ +sid \ No newline at end of file diff --git a/config/optional/architectures/arm64/_config/cli/bookworm b/config/optional/architectures/arm64/_config/cli/bookworm new file mode 120000 index 000000000000..9a63c961dc67 --- /dev/null +++ b/config/optional/architectures/arm64/_config/cli/bookworm @@ -0,0 +1 @@ +sid \ No newline at end of file diff --git a/config/optional/architectures/arm64/_config/cli/bullseye b/config/optional/architectures/arm64/_config/cli/bullseye new file mode 120000 index 000000000000..9a63c961dc67 --- /dev/null +++ b/config/optional/architectures/arm64/_config/cli/bullseye @@ -0,0 +1 @@ +sid \ No newline at end of file diff --git a/config/optional/architectures/arm64/_config/cli/buster b/config/optional/architectures/arm64/_config/cli/buster new file mode 120000 index 000000000000..9a63c961dc67 --- /dev/null +++ b/config/optional/architectures/arm64/_config/cli/buster @@ -0,0 +1 @@ +sid \ No newline at end of file diff --git a/config/optional/architectures/arm64/_config/cli/focal b/config/optional/architectures/arm64/_config/cli/focal new file mode 120000 index 000000000000..9a63c961dc67 --- /dev/null +++ b/config/optional/architectures/arm64/_config/cli/focal @@ -0,0 +1 @@ +sid \ No newline at end of file diff --git a/config/optional/architectures/arm64/_config/cli/jammy b/config/optional/architectures/arm64/_config/cli/jammy new file mode 120000 index 000000000000..9a63c961dc67 --- /dev/null +++ b/config/optional/architectures/arm64/_config/cli/jammy @@ -0,0 +1 @@ +sid \ No newline at end of file diff --git a/config/optional/architectures/arm64/_config/cli/kinetic b/config/optional/architectures/arm64/_config/cli/kinetic new file mode 120000 index 000000000000..9a63c961dc67 --- /dev/null +++ b/config/optional/architectures/arm64/_config/cli/kinetic @@ -0,0 +1 @@ +sid \ No newline at end of file diff --git a/config/optional/architectures/arm64/_config/cli/lunar b/config/optional/architectures/arm64/_config/cli/lunar new file mode 120000 index 000000000000..9a63c961dc67 --- /dev/null +++ b/config/optional/architectures/arm64/_config/cli/lunar @@ -0,0 +1 @@ +sid \ No newline at end of file diff --git a/config/optional/architectures/arm64/_config/cli/mantic b/config/optional/architectures/arm64/_config/cli/mantic new file mode 120000 index 000000000000..9a63c961dc67 --- /dev/null +++ b/config/optional/architectures/arm64/_config/cli/mantic @@ -0,0 +1 @@ +sid \ No newline at end of file diff --git a/config/optional/architectures/arm64/_config/cli/_all_distributions/main/packages b/config/optional/architectures/arm64/_config/cli/sid/main/packages similarity index 100% rename from config/optional/architectures/arm64/_config/cli/_all_distributions/main/packages rename to config/optional/architectures/arm64/_config/cli/sid/main/packages diff --git a/config/optional/architectures/arm64/_config/cli/_all_distributions/main/packages.additional b/config/optional/architectures/arm64/_config/cli/sid/main/packages.additional similarity index 100% rename from config/optional/architectures/arm64/_config/cli/_all_distributions/main/packages.additional rename to config/optional/architectures/arm64/_config/cli/sid/main/packages.additional diff --git a/config/optional/architectures/armhf/_config/cli/bookworm b/config/optional/architectures/armhf/_config/cli/bookworm new file mode 120000 index 000000000000..9a63c961dc67 --- /dev/null +++ b/config/optional/architectures/armhf/_config/cli/bookworm @@ -0,0 +1 @@ +sid \ No newline at end of file diff --git a/config/optional/architectures/armhf/_config/cli/bullseye b/config/optional/architectures/armhf/_config/cli/bullseye new file mode 120000 index 000000000000..9a63c961dc67 --- /dev/null +++ b/config/optional/architectures/armhf/_config/cli/bullseye @@ -0,0 +1 @@ +sid \ No newline at end of file diff --git a/config/optional/architectures/armhf/_config/cli/buster b/config/optional/architectures/armhf/_config/cli/buster new file mode 120000 index 000000000000..9a63c961dc67 --- /dev/null +++ b/config/optional/architectures/armhf/_config/cli/buster @@ -0,0 +1 @@ +sid \ No newline at end of file diff --git a/config/optional/architectures/armhf/_config/cli/focal b/config/optional/architectures/armhf/_config/cli/focal new file mode 120000 index 000000000000..9a63c961dc67 --- /dev/null +++ b/config/optional/architectures/armhf/_config/cli/focal @@ -0,0 +1 @@ +sid \ No newline at end of file diff --git a/config/optional/architectures/armhf/_config/cli/jammy b/config/optional/architectures/armhf/_config/cli/jammy new file mode 120000 index 000000000000..9a63c961dc67 --- /dev/null +++ b/config/optional/architectures/armhf/_config/cli/jammy @@ -0,0 +1 @@ +sid \ No newline at end of file diff --git a/config/optional/architectures/armhf/_config/cli/kinetic b/config/optional/architectures/armhf/_config/cli/kinetic new file mode 120000 index 000000000000..9a63c961dc67 --- /dev/null +++ b/config/optional/architectures/armhf/_config/cli/kinetic @@ -0,0 +1 @@ +sid \ No newline at end of file diff --git a/config/optional/architectures/armhf/_config/cli/lunar b/config/optional/architectures/armhf/_config/cli/lunar new file mode 120000 index 000000000000..9a63c961dc67 --- /dev/null +++ b/config/optional/architectures/armhf/_config/cli/lunar @@ -0,0 +1 @@ +sid \ No newline at end of file diff --git a/config/optional/architectures/armhf/_config/cli/mantic b/config/optional/architectures/armhf/_config/cli/mantic new file mode 120000 index 000000000000..9a63c961dc67 --- /dev/null +++ b/config/optional/architectures/armhf/_config/cli/mantic @@ -0,0 +1 @@ +sid \ No newline at end of file diff --git a/config/optional/architectures/armhf/_config/cli/_all_distributions/main/packages b/config/optional/architectures/armhf/_config/cli/sid/main/packages similarity index 100% rename from config/optional/architectures/armhf/_config/cli/_all_distributions/main/packages rename to config/optional/architectures/armhf/_config/cli/sid/main/packages diff --git a/config/optional/architectures/armhf/_config/cli/_all_distributions/main/packages.additional b/config/optional/architectures/armhf/_config/cli/sid/main/packages.additional similarity index 100% rename from config/optional/architectures/armhf/_config/cli/_all_distributions/main/packages.additional rename to config/optional/architectures/armhf/_config/cli/sid/main/packages.additional diff --git a/config/optional/architectures/armhf/_config/cli/trixie b/config/optional/architectures/armhf/_config/cli/trixie new file mode 120000 index 000000000000..9a63c961dc67 --- /dev/null +++ b/config/optional/architectures/armhf/_config/cli/trixie @@ -0,0 +1 @@ +sid \ No newline at end of file diff --git a/extensions/ubuntu-noble.sh b/extensions/ubuntu-noble.sh deleted file mode 100644 index 89e8415322ef..000000000000 --- a/extensions/ubuntu-noble.sh +++ /dev/null @@ -1,15 +0,0 @@ -function add_host_dependencies__patch_deboostrap(){ - - echo "Patching Debootstrap to support Ubuntu Noble" - NOBLE_SYMLINK=/usr/share/debootstrap/scripts/noble - if [ -L ${NOBLE_SYMLINK} ] && [ -e ${NOBLE_SYMLINK} ]; then - : - else - if ! command -v sudo &> /dev/null; then - run_host_command_logged ln -s gutsy ${NOBLE_SYMLINK} - else - run_host_command_logged sudo ln -s gutsy ${NOBLE_SYMLINK} - fi - fi - -} diff --git a/lib/functions/configuration/main-config.sh b/lib/functions/configuration/main-config.sh index 7cff691f2887..49cddb555d25 100644 --- a/lib/functions/configuration/main-config.sh +++ b/lib/functions/configuration/main-config.sh @@ -310,8 +310,10 @@ function do_extra_configuration() { if [[ "$RELEASE" =~ ^(focal|jammy|kinetic|lunar|mantic|noble)$ ]]; then DISTRIBUTION="Ubuntu" + DEBOOTSTRAP_SOURCE="gutsy" else DISTRIBUTION="Debian" + DEBOOTSTRAP_SOURCE="sid" fi DEBIAN_MIRROR='deb.debian.org/debian' diff --git a/lib/functions/rootfs/rootfs-create.sh b/lib/functions/rootfs/rootfs-create.sh index 97fa67b664d6..2d44c89f262f 100644 --- a/lib/functions/rootfs/rootfs-create.sh +++ b/lib/functions/rootfs/rootfs-create.sh @@ -72,6 +72,14 @@ function create_new_rootfs_cache_via_debootstrap() { "'--components=${AGGREGATED_DEBOOTSTRAP_COMPONENTS_COMMA}'" # from aggregation.py ) + # Hacking debootstrap to support future releases as symlink is often the only change, so we don't need to bump host OS + # This functionality is coming with debootstrap v1.0.128 (Mantic) + local debootstrap_home="/usr/share/debootstrap/scripts" + if [[ ! -L "${debootstrap_home}/${RELEASE}" && ! -e "${debootstrap_home}/${RELEASE}" ]]; then + display_alert "Making symlink as host deboostrap is missing it" "" "wrn" + run_host_command_logged ln -s "${DEBOOTSTRAP_SOURCE}" "${debootstrap_home}/${RELEASE}" + fi + # Small detour for local apt caching option. local_apt_deb_cache_prepare "before debootstrap" # sets LOCAL_APT_CACHE_INFO if [[ "${LOCAL_APT_CACHE_INFO[USE]}" == "yes" ]]; then