From b53628564ce58d298f891e003eca1c05ed807ed9 Mon Sep 17 00:00:00 2001 From: Didier Roche Date: Thu, 5 Dec 2024 15:05:42 +0100 Subject: [PATCH] Keep a single wsl rootfs upgrade policy We are removing our different variants of wsl rootfs with the new Microsoft format. We only keep one following the distribution policy: - lts to lts - intermediate release to next one Co-authored-by: Carlos Nihelton --- live-build/ubuntu-wsl/hooks/99-tar.binary | 97 ----------------------- 1 file changed, 97 deletions(-) diff --git a/live-build/ubuntu-wsl/hooks/99-tar.binary b/live-build/ubuntu-wsl/hooks/99-tar.binary index 56a39246..c28915fe 100755 --- a/live-build/ubuntu-wsl/hooks/99-tar.binary +++ b/live-build/ubuntu-wsl/hooks/99-tar.binary @@ -16,102 +16,5 @@ 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 - - # Remove initial ext4-formatted fs rm -f binary/boot/filesystem.ext4