diff --git a/debian/changelog b/debian/changelog index ad6a1cba..ab5ac978 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,15 @@ +livecd-rootfs (2.765.55) jammy; urgency=medium + + [ Carlos Nihelton ] + [ Didier Roche-Tolomelli ] + * Adapt to new Microsoft package format: (LP: #2091293) + - Follows the same recipe already applied to Noble and later. + - Keep a single wsl rootfs upgrade policy + - Create livecd-roots tarball as a .wsl extension + - Create wsl-distribution.conf for WSL images + + -- Carlos Nihelton Tue, 29 Apr 2025 17:33:15 -0300 + livecd-rootfs (2.765.54) jammy; urgency=medium * Add support for arm64+tegra-jetson flavor. (LP: #2091392) diff --git a/live-build/ubuntu-wsl/hooks/01-distribution-conf.chroot b/live-build/ubuntu-wsl/hooks/01-distribution-conf.chroot new file mode 100644 index 00000000..764867f7 --- /dev/null +++ b/live-build/ubuntu-wsl/hooks/01-distribution-conf.chroot @@ -0,0 +1,20 @@ +#!/bin/bash -eu +# vi: ts=4 expandtab +# +# Create wsl-distribution.conf for WSL setup +# + +source /etc/os-release + +cat </etc/wsl-distribution.conf +[oobe] +command = /usr/lib/wsl/wsl-setup +defaultUid = 1000 +defaultName = ${NAME}-${VERSION_ID} + +[shortcut] +icon = /usr/share/wsl/ubuntu.ico + +[windowsterminal] +ProfileTemplate = /usr/share/wsl/terminal-profile.json +EOF diff --git a/live-build/ubuntu-wsl/hooks/99-tar.binary b/live-build/ubuntu-wsl/hooks/99-tar.binary index 56a39246..58c50efc 100755 --- a/live-build/ubuntu-wsl/hooks/99-tar.binary +++ b/live-build/ubuntu-wsl/hooks/99-tar.binary @@ -16,102 +16,10 @@ esac setfattr -x system.posix_acl_access chroot/var/log/journal setfattr -x system.posix_acl_default chroot/var/log/journal -# is_lts returns true if the given release is a LTS. -is_lts() { - release_version="$1" - year=$(echo "${release_version}" | cut -d'.' -f1) - month=$(echo "${release_version}" | cut -d'.' -f2) - - if [ "${month}" != "04" ]; then - echo "false" - return - fi - - last_year_digit="${year: -1}" - if [ $((last_year_digit % 2)) -ne 0 ]; then - echo "false" - return - fi - - echo "true" -} - -# is_current_lts_release returns for a given lts release is we are in the year preceeding or 2 years succeeding a release. -# Note that it will mark as "current" a lts release zeven if there is a next one released until the end of the +2 year. -is_current_lts_release() { - release_version="$1" - current_year="$2" - year=$(echo "$release_version" | cut -d'.' -f1) - - if [ $(is_lts "${version}") != "true" ]; then - echo "false" - return - fi - - if [ "$((year - 1))" -le "${current_year}" ] && [ "${current_year}" -le "$((year + 2))" ]; then - echo "true" - return - fi - - echo "false" -} - -# Function to check if a version is a development release -is_development_release() { - local version=$1 - local current_year=$2 - local current_month=$3 - local year=$(echo $version | cut -d. -f1) - local month=$(echo $version | cut -d. -f2) - - if [ "${year}" -gt "${current_year}" ] || ([ "${year}" -eq "${current_year}" ] && [ "${month}" -gt "${current_month}" ]); then - echo "true" - return - fi - - echo "false" -} - -# create_archive_with_upgrade_policy modifies the prompting upgrade policy -# and create a separate rootfs for this upgrade policy, named after app_id. -# The reason not using just tar .. -C chroot . is that using '.' was found -# not working once and checking if using the simpler command is safe needs -# verification of the app installation on all Windows 10 builds we support -# with WSL. -create_archive_with_upgrade_policy() { - upgrade_policy=$1 - app_id=$2 - - cd chroot - sed -i "s#Prompt=.*#Prompt=${upgrade_policy}#" ./etc/update-manager/release-upgrades - tar --xattrs --sort=name -czf ../livecd.ubuntu-wsl.${app_id}.rootfs.tar.gz * - cd .. -} - -# release-upgrader configuration, 3 cases: -# Ubuntu-Version: never -# ubuntu (latest LTS): lts -# preview (current dev): normal - -# We produce the following tar with this policy: -# Any XY.04, where Y is pair: upgrade-never -# Any XY.04, where Y is pair and current year is between XY-1 to XY+2 (included): upgrade-lts -# Any releases, where XY.04, where current date is comprised within 6 months. - -version=$(chroot chroot lsb_release --release --short) - -if [ $(is_lts "${version}") = "true" ]; then - create_archive_with_upgrade_policy "never" "ubuntu${version}lts" -fi - -if [ $(is_current_lts_release "${version}" $(date +"%y")) = "true" ]; then - create_archive_with_upgrade_policy "lts" "ubuntu" -fi - -if [ $(is_development_release "${version}" $(date +"%y") $(date +"%m")) = "true" ]; then - create_archive_with_upgrade_policy "normal" "ubuntupreview" -fi - +# Create the rootfs as a .wsl extension +cd chroot +tar --xattrs --sort=name -czf ../livecd.$PROJECT${SUBARCH:+-$SUBARCH}.wsl * +cd .. # Remove initial ext4-formatted fs rm -f binary/boot/filesystem.ext4