mirror of
https://git.launchpad.net/livecd-rootfs
synced 2025-08-14 18:24:15 +00:00
Imported 24.04.26 from noble-release pocket.
No reason for CPC update specified.
This commit is contained in:
parent
2aeb74e5b8
commit
7256eceb6c
44
debian/changelog
vendored
44
debian/changelog
vendored
@ -1,3 +1,47 @@
|
|||||||
|
livecd-rootfs (24.04.26) noble; urgency=medium
|
||||||
|
|
||||||
|
[ Steve Langasek ]
|
||||||
|
* Share live-build/ubuntu/hooks/020-ubuntu-live.chroot_early across
|
||||||
|
all flavors using new-style layered squashfs, removing need for
|
||||||
|
kernel commandline options in debian-cd.
|
||||||
|
|
||||||
|
[ dann frazier ]
|
||||||
|
* Use flock to avoid races with systemd-udevd that cause loop device
|
||||||
|
partitions to briefly disappear.
|
||||||
|
|
||||||
|
-- dann frazier <dann.frazier@canonical.com> Thu, 01 Feb 2024 09:09:17 -0700
|
||||||
|
|
||||||
|
livecd-rootfs (24.04.25) noble; urgency=medium
|
||||||
|
|
||||||
|
* live-build/auto/config: for ubuntu-server, consider the actual kernel
|
||||||
|
flavor when dealing with netboot layers - even if we don't really care.
|
||||||
|
|
||||||
|
-- Łukasz 'sil2100' Zemczak <lukasz.zemczak@ubuntu.com> Tue, 30 Jan 2024 11:27:46 +0100
|
||||||
|
|
||||||
|
livecd-rootfs (24.04.24) noble; urgency=medium
|
||||||
|
|
||||||
|
[ Tomáš Virtus ]
|
||||||
|
* live-build/functions: mount_disk_image: add rootpart parameter
|
||||||
|
|
||||||
|
[ Utkarsh Gupta ]
|
||||||
|
* live-build/auto/config: drop python3-systemd from CPC's minimized builds.
|
||||||
|
|
||||||
|
-- Utkarsh Gupta <utkarsh@ubuntu.com> Mon, 22 Jan 2024 18:01:53 +0530
|
||||||
|
|
||||||
|
livecd-rootfs (24.04.23) noble; urgency=medium
|
||||||
|
|
||||||
|
* Remove magic-proxy and all references to it as it is not used by any
|
||||||
|
builds of any release newer than 18.04.
|
||||||
|
|
||||||
|
-- Michael Hudson-Doyle <michael.hudson@ubuntu.com> Mon, 29 Jan 2024 14:53:26 +1300
|
||||||
|
|
||||||
|
livecd-rootfs (24.04.22) noble; urgency=medium
|
||||||
|
|
||||||
|
* Add a largemem subarch for ubuntu-server that ships a 64k kernel variant
|
||||||
|
by default (LP: #2050209).
|
||||||
|
|
||||||
|
-- Łukasz 'sil2100' Zemczak <lukasz.zemczak@ubuntu.com> Thu, 25 Jan 2024 11:01:28 +0100
|
||||||
|
|
||||||
livecd-rootfs (24.04.21) noble; urgency=medium
|
livecd-rootfs (24.04.21) noble; urgency=medium
|
||||||
|
|
||||||
* live-build/functions: avoid losetup -P as it appears to race with udev and
|
* live-build/functions: avoid losetup -P as it appears to race with udev and
|
||||||
|
2
debian/install
vendored
2
debian/install
vendored
@ -2,7 +2,5 @@ auto-markable-pkgs usr/share/livecd-rootfs
|
|||||||
live-build usr/share/livecd-rootfs
|
live-build usr/share/livecd-rootfs
|
||||||
get-ppa-fingerprint usr/share/livecd-rootfs
|
get-ppa-fingerprint usr/share/livecd-rootfs
|
||||||
minimize-manual usr/share/livecd-rootfs
|
minimize-manual usr/share/livecd-rootfs
|
||||||
magic-proxy usr/share/livecd-rootfs
|
|
||||||
lp-in-release usr/share/livecd-rootfs
|
|
||||||
checkout-translations-branch usr/share/livecd-rootfs
|
checkout-translations-branch usr/share/livecd-rootfs
|
||||||
update-source-catalog usr/share/livecd-rootfs
|
update-source-catalog usr/share/livecd-rootfs
|
||||||
|
@ -17,72 +17,6 @@ fi
|
|||||||
|
|
||||||
. config/functions
|
. config/functions
|
||||||
|
|
||||||
# New nf_tables-based versions of iptables don't work well on old kernels.
|
|
||||||
# We aren't sure exactly how old is a problem: 4.15 works, but with 4.4 new
|
|
||||||
# rules are added to all chains in the requested table rather than just one,
|
|
||||||
# and the new rules seem to have no useful effect. In such cases,
|
|
||||||
# iptables-legacy works better.
|
|
||||||
#
|
|
||||||
# We can simplify this once livecd-rootfs no longer needs to support running
|
|
||||||
# on Ubuntu 16.04 (that is, once Launchpad's build VMs are upgraded to
|
|
||||||
# Ubuntu 18.04).
|
|
||||||
run_iptables () {
|
|
||||||
local kver kver_major kver_minor
|
|
||||||
|
|
||||||
kver="$(uname -r)"
|
|
||||||
kver="${kver%%-*}"
|
|
||||||
kver_major="${kver%%.*}"
|
|
||||||
kver="${kver#*.}"
|
|
||||||
kver_minor="${kver%%.*}"
|
|
||||||
|
|
||||||
|
|
||||||
# LP: #1917920
|
|
||||||
# I'm seeing issues after iptables got upgraded from 1.8.5 to
|
|
||||||
# 1.8.7 Somehow installing our nat rule doesn't get activated, and
|
|
||||||
# no networking is happening at all.
|
|
||||||
|
|
||||||
# But somehow calling both iptables -S makes things start working.
|
|
||||||
# Maybe no default chains are installed in our network namespace?!
|
|
||||||
# Or 1.8.7 is somehow broken?
|
|
||||||
iptables -v -t nat -S
|
|
||||||
iptables-legacy -v -t nat -S
|
|
||||||
|
|
||||||
if [ "$kver_major" -lt 4 ] || \
|
|
||||||
([ "$kver_major" = 4 ] && [ "$kver_minor" -lt 15 ]); then
|
|
||||||
iptables-legacy "$@"
|
|
||||||
else
|
|
||||||
iptables "$@"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ -n "$REPO_SNAPSHOT_STAMP" ]; then
|
|
||||||
if [ "`whoami`" != "root" ]; then
|
|
||||||
echo "Magic repo snapshots only work when running as root." >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
apt-get -qyy install iptables
|
|
||||||
|
|
||||||
# Redirect all outgoing traffic to port 80 to proxy instead.
|
|
||||||
run_iptables -v -t nat -A OUTPUT -p tcp --dport 80 \
|
|
||||||
-m owner ! --uid-owner daemon -j REDIRECT --to 8080
|
|
||||||
|
|
||||||
# Run proxy as "daemon" to avoid infinite loop.
|
|
||||||
LB_PARENT_MIRROR_BOOTSTRAP=$LB_PARENT_MIRROR_BOOTSTRAP \
|
|
||||||
/usr/share/livecd-rootfs/magic-proxy \
|
|
||||||
--address="127.0.0.1" \
|
|
||||||
--port=8080 \
|
|
||||||
--run-as=daemon \
|
|
||||||
--cutoff-time="$REPO_SNAPSHOT_STAMP" \
|
|
||||||
--log-file=/build/livecd.magic-proxy.log \
|
|
||||||
--pid-file=config/magic-proxy.pid \
|
|
||||||
--background \
|
|
||||||
--setsid
|
|
||||||
|
|
||||||
# Quick check that magic proxy & iptables chains are working
|
|
||||||
timeout 3m apt-get update
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Link output files somewhere launchpad-buildd will be able to find them.
|
# Link output files somewhere launchpad-buildd will be able to find them.
|
||||||
PREFIX="livecd.$PROJECT${SUBARCH:+-$SUBARCH}"
|
PREFIX="livecd.$PROJECT${SUBARCH:+-$SUBARCH}"
|
||||||
|
|
||||||
@ -546,12 +480,6 @@ EOF
|
|||||||
if [ -e binary.success ]; then
|
if [ -e binary.success ]; then
|
||||||
rm -f binary.success
|
rm -f binary.success
|
||||||
else
|
else
|
||||||
# Dump the magic-proxy log to stdout on failure to aid debugging
|
|
||||||
if [ -f /build/livecd.magic-proxy.log ] ; then
|
|
||||||
echo "================= Magic proxy log (start) ================="
|
|
||||||
cat /build/livecd.magic-proxy.log
|
|
||||||
echo "================== Magic proxy log (end) =================="
|
|
||||||
fi
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -712,15 +640,6 @@ case $SUBARCH in
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
if [ -f "config/magic-proxy.pid" ]; then
|
|
||||||
kill -TERM $(cat config/magic-proxy.pid)
|
|
||||||
rm -f config/magic-proxy.pid
|
|
||||||
|
|
||||||
# Remove previously-inserted iptables rule.
|
|
||||||
run_iptables -t nat -D OUTPUT -p tcp --dport 80 \
|
|
||||||
-m owner ! --uid-owner daemon -j REDIRECT --to 8080
|
|
||||||
fi
|
|
||||||
|
|
||||||
case $PROJECT in
|
case $PROJECT in
|
||||||
ubuntu-cpc)
|
ubuntu-cpc)
|
||||||
config/hooks.d/remove-implicit-artifacts
|
config/hooks.d/remove-implicit-artifacts
|
||||||
|
@ -4,7 +4,7 @@ set -e
|
|||||||
case $ARCH:$SUBARCH in
|
case $ARCH:$SUBARCH in
|
||||||
amd64:|amd64:generic|amd64:intel-iot|\
|
amd64:|amd64:generic|amd64:intel-iot|\
|
||||||
arm64:|arm64:generic|arm64:raspi|arm64:snapdragon|\
|
arm64:|arm64:generic|arm64:raspi|arm64:snapdragon|\
|
||||||
arm64:tegra|arm64:tegra-igx|arm64:x13s|\
|
arm64:tegra|arm64:tegra-igx|arm64:x13s|arm64:largemem|\
|
||||||
armhf:|\
|
armhf:|\
|
||||||
i386:|\
|
i386:|\
|
||||||
ppc64el:|\
|
ppc64el:|\
|
||||||
@ -951,6 +951,10 @@ case $PROJECT in
|
|||||||
tegra-igx)
|
tegra-igx)
|
||||||
variants='tegra-igx'
|
variants='tegra-igx'
|
||||||
;;
|
;;
|
||||||
|
largemem)
|
||||||
|
# variants='ga-64k hwe-64k'
|
||||||
|
variants='ga-64k'
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
# variants='ga hwe'
|
# variants='ga hwe'
|
||||||
variants='ga'
|
variants='ga'
|
||||||
@ -964,6 +968,12 @@ case $PROJECT in
|
|||||||
elif [ "$variant" = "hwe" ]; then
|
elif [ "$variant" = "hwe" ]; then
|
||||||
kernel_metapkg=linux-generic-hwe-$(lsb_release -sr)
|
kernel_metapkg=linux-generic-hwe-$(lsb_release -sr)
|
||||||
flavor=generic-hwe
|
flavor=generic-hwe
|
||||||
|
elif [ "$variant" = "ga-64k" ]; then
|
||||||
|
kernel_metapkg=linux-generic-64k
|
||||||
|
flavor=generic-64k
|
||||||
|
elif [ "$variant" = "hwe-64k" ]; then
|
||||||
|
kernel_metapkg=linux-generic-64k-hwe-$(lsb_release -sr)
|
||||||
|
flavor=generic-64k-hwe
|
||||||
elif [ "$variant" = "intel" ]; then
|
elif [ "$variant" = "intel" ]; then
|
||||||
kernel_metapkg=linux-intel-iotg
|
kernel_metapkg=linux-intel-iotg
|
||||||
flavor=intel-iotg
|
flavor=intel-iotg
|
||||||
@ -983,16 +993,16 @@ case $PROJECT in
|
|||||||
done
|
done
|
||||||
case $ARCH in
|
case $ARCH in
|
||||||
amd64)
|
amd64)
|
||||||
add_package ubuntu-server-minimal.ubuntu-server.installer.generic.netboot grub-pc shim-signed pxelinux
|
add_package ubuntu-server-minimal.ubuntu-server.installer.$flavor.netboot grub-pc shim-signed pxelinux
|
||||||
;;
|
;;
|
||||||
arm64)
|
arm64)
|
||||||
add_package ubuntu-server-minimal.ubuntu-server.installer.generic.netboot shim-signed
|
add_package ubuntu-server-minimal.ubuntu-server.installer.$flavor.netboot shim-signed
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
add_package ubuntu-server-minimal.ubuntu-server.installer.generic.netboot
|
add_package ubuntu-server-minimal.ubuntu-server.installer.$flavor.netboot
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
NO_SQUASHFS_PASSES=ubuntu-server-minimal.ubuntu-server.installer.generic.netboot
|
NO_SQUASHFS_PASSES=ubuntu-server-minimal.ubuntu-server.installer.$flavor.netboot
|
||||||
|
|
||||||
/usr/share/livecd-rootfs/checkout-translations-branch \
|
/usr/share/livecd-rootfs/checkout-translations-branch \
|
||||||
https://git.launchpad.net/subiquity po config/catalog-translations
|
https://git.launchpad.net/subiquity po config/catalog-translations
|
||||||
@ -1044,15 +1054,8 @@ case $PROJECT in
|
|||||||
# or by passing --no-install-recommends to apt-get install.
|
# or by passing --no-install-recommends to apt-get install.
|
||||||
# Apt config is set using `APT_OPTIONS` variable in this script.
|
# Apt config is set using `APT_OPTIONS` variable in this script.
|
||||||
# This fixes LP: #2031640
|
# This fixes LP: #2031640
|
||||||
#
|
|
||||||
# We're also installing python3-systemd for now because it's needed by
|
|
||||||
# ubuntu-advantage-tools. This will eventually be dropped in the next
|
|
||||||
# release of u-a-t. This is being discussed and tracked at
|
|
||||||
# https://github.com/canonical/ubuntu-pro-client/issues/2692.
|
|
||||||
# Once python3-systemd is dropped from u-a-t, we can remove it
|
|
||||||
# from here, too.
|
|
||||||
APT_OPTIONS="${APT_OPTIONS:+$APT_OPTIONS }--no-install-recommends"
|
APT_OPTIONS="${APT_OPTIONS:+$APT_OPTIONS }--no-install-recommends"
|
||||||
add_package install ubuntu-cloud-minimal python3-systemd
|
add_package install ubuntu-cloud-minimal
|
||||||
else
|
else
|
||||||
add_task install minimal standard cloud-image
|
add_task install minimal standard cloud-image
|
||||||
add_package install ubuntu-minimal
|
add_package install ubuntu-minimal
|
||||||
|
1
live-build/edubuntu/hooks/020-ubuntu-live.chroot_early
Symbolic link
1
live-build/edubuntu/hooks/020-ubuntu-live.chroot_early
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../ubuntu/hooks/020-ubuntu-live.chroot_early
|
@ -63,36 +63,29 @@ mount_image() {
|
|||||||
backing_img="$1"
|
backing_img="$1"
|
||||||
local rootpart="$2"
|
local rootpart="$2"
|
||||||
|
|
||||||
# As explained in excruciating detail in LP: #2045586, "losetup
|
loop_device=$(losetup --show -f -P -v ${backing_img})
|
||||||
# -P" (a.k.a. --partscan) appears to race with udev in a way that
|
|
||||||
# prevents the device nodes for the partitions from being
|
|
||||||
# created. So instead we run losetup without -P, wait for udev to
|
|
||||||
# settle, then run partprobe and then settle udev again (which is
|
|
||||||
# probably unnecessary but at this point a bit more superstition
|
|
||||||
# can't hurt)
|
|
||||||
|
|
||||||
loop_device=$(losetup --show -f -v ${backing_img})
|
|
||||||
|
|
||||||
if [ ! -b ${loop_device} ]; then
|
if [ ! -b ${loop_device} ]; then
|
||||||
echo "unable to find loop device for ${backing_img}"
|
echo "unable to find loop device for ${backing_img}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
udevadm settle
|
# As explained in excruciating detail in LP: #2045586, losetup
|
||||||
partprobe ${loop_device}
|
# races with udev in a way that can cause partition device files
|
||||||
udevadm settle
|
# to briefly vanish. systemd docs say we can hold udev off by using
|
||||||
|
# flocks: https://systemd.io/BLOCK_DEVICE_LOCKING/
|
||||||
|
# `udevadm lock` isn't yet usable in Ubuntu, so we'll use flock for now
|
||||||
|
|
||||||
# Find the rootfs location
|
# Find the rootfs location
|
||||||
rootfs_dev_mapper="${loop_device}p${rootpart}"
|
rootfs_dev_mapper="${loop_device}p${rootpart}"
|
||||||
if [ ! -b "${rootfs_dev_mapper}" ]; then
|
if flock -x ${loop_device} [ ! -b "${rootfs_dev_mapper}" ]; then
|
||||||
echo "${rootfs_dev_mapper} is not a block device";
|
echo "${rootfs_dev_mapper} is not a block device";
|
||||||
ls -l ${loop_device}p*
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Add some information to the debug logs
|
# Add some information to the debug logs
|
||||||
echo "Mounted disk image ${backing_img} to ${rootfs_dev_mapper}"
|
echo "Mounted disk image ${backing_img} to ${rootfs_dev_mapper}"
|
||||||
blkid ${rootfs_dev_mapper} \
|
flock -x ${loop_device} blkid ${rootfs_dev_mapper} \
|
||||||
|| echo "blkid failed; continuing"
|
|| echo "blkid failed; continuing"
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
@ -220,14 +213,19 @@ get_lowerdirs_for_pass () {
|
|||||||
mount_disk_image() {
|
mount_disk_image() {
|
||||||
local disk_image=${1}
|
local disk_image=${1}
|
||||||
local mountpoint=${2}
|
local mountpoint=${2}
|
||||||
mount_image ${disk_image} 1
|
local rootpart=${3:-1}
|
||||||
|
mount_image ${disk_image} "${rootpart}"
|
||||||
mount_partition "${rootfs_dev_mapper}" $mountpoint
|
mount_partition "${rootfs_dev_mapper}" $mountpoint
|
||||||
|
|
||||||
local boot_dev="${loop_device}p16"
|
local boot_dev="${loop_device}p16"
|
||||||
if [ -b ${boot_dev} -a -e $mountpoint/boot ]; then
|
if flock -x ${loop_device} \
|
||||||
mount "${boot_dev}" $mountpoint/boot
|
[ -b ${boot_dev} -a -e $mountpoint/boot ]; then
|
||||||
|
flock -x ${loop_device} mount "${boot_dev}" $mountpoint/boot
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Having one partition mounted should avoid udev-triggered partition
|
||||||
|
# rescans on that device, so we no longer need to flock.
|
||||||
|
|
||||||
local uefi_dev="${loop_device}p15"
|
local uefi_dev="${loop_device}p15"
|
||||||
if [ -b ${uefi_dev} -a -e $mountpoint/boot/efi ]; then
|
if [ -b ${uefi_dev} -a -e $mountpoint/boot/efi ]; then
|
||||||
mount "${uefi_dev}" $mountpoint/boot/efi
|
mount "${uefi_dev}" $mountpoint/boot/efi
|
||||||
|
1
live-build/ubuntu-budgie/hooks/020-ubuntu-live.chroot_early
Symbolic link
1
live-build/ubuntu-budgie/hooks/020-ubuntu-live.chroot_early
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../ubuntu/hooks/020-ubuntu-live.chroot_early
|
@ -237,14 +237,10 @@ class MakeHooks:
|
|||||||
"""
|
"""
|
||||||
with open(os.path.join(self._script_dir, "explicit_provides"), "w",
|
with open(os.path.join(self._script_dir, "explicit_provides"), "w",
|
||||||
encoding="utf-8") as fp:
|
encoding="utf-8") as fp:
|
||||||
empty = True
|
|
||||||
for provides in self._provides:
|
for provides in self._provides:
|
||||||
if not self._quiet:
|
if not self._quiet:
|
||||||
print("[PROVIDES] %s" % provides)
|
print("[PROVIDES] %s" % provides)
|
||||||
fp.write("%s\n" % provides)
|
fp.write("%s\n" % provides)
|
||||||
empty = False
|
|
||||||
if not empty:
|
|
||||||
fp.write('livecd.magic-proxy.log\n')
|
|
||||||
|
|
||||||
def cli(self, args):
|
def cli(self, args):
|
||||||
"""Command line interface to the hooks generator."""
|
"""Command line interface to the hooks generator."""
|
||||||
|
@ -11,6 +11,10 @@ case $PASS in
|
|||||||
kernel_metapkg=linux-generic
|
kernel_metapkg=linux-generic
|
||||||
elif [ "$flavor" = "generic-hwe" ]; then
|
elif [ "$flavor" = "generic-hwe" ]; then
|
||||||
kernel_metapkg=linux-generic-hwe-$(lsb_release -sr)
|
kernel_metapkg=linux-generic-hwe-$(lsb_release -sr)
|
||||||
|
elif [ "$flavor" = "generic-64k" ]; then
|
||||||
|
kernel_metapkg=linux-generic-64k
|
||||||
|
elif [ "$flavor" = "generic-64k-hwe" ]; then
|
||||||
|
kernel_metapkg=linux-generic-64k-hwe-$(lsb_release -sr)
|
||||||
elif [ "$flavor" = "intel-iotg" ]; then
|
elif [ "$flavor" = "intel-iotg" ]; then
|
||||||
kernel_metapkg=linux-intel-iotg
|
kernel_metapkg=linux-intel-iotg
|
||||||
elif [ "$flavor" = "nvidia-tegra" ]; then
|
elif [ "$flavor" = "nvidia-tegra" ]; then
|
||||||
|
1
live-build/ubuntustudio/hooks/020-ubuntu-live.chroot_early
Symbolic link
1
live-build/ubuntustudio/hooks/020-ubuntu-live.chroot_early
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../ubuntu/hooks/020-ubuntu-live.chroot_early
|
@ -1 +0,0 @@
|
|||||||
magic-proxy
|
|
1046
magic-proxy
1046
magic-proxy
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user