mirror of
https://git.launchpad.net/livecd-rootfs
synced 2025-08-15 02:34:08 +00:00
Compare commits
63 Commits
ubuntu/mas
...
24.04.88
Author | SHA1 | Date | |
---|---|---|---|
|
cddd73d626 | ||
|
fa4167f97e | ||
|
0b21f55ba4 | ||
|
eb650f1d34 | ||
|
419e83058d | ||
|
547ee62e66 | ||
|
a3363733ff | ||
|
46fae973d7 | ||
|
5e36233d82 | ||
|
519832022e | ||
|
61042515b3 | ||
|
2a9992ad7d | ||
|
de15c55ef0 | ||
|
d02ab9bc0e | ||
|
ddfb468b42 | ||
|
2af06de671 | ||
|
5545bf057e | ||
|
4e52b33e45 | ||
|
48338fc76a | ||
|
c1e2deee9f | ||
|
c954240293 | ||
|
a81a1c20c7 | ||
|
a2058724c4 | ||
|
6047e22319 | ||
|
9a970b2ca2 | ||
|
b7c2cf45b1 | ||
|
70d7c43d6a | ||
|
d1ca48bdc4 | ||
|
0b2af5aa60 | ||
|
377617b946 | ||
|
d3ef751279 | ||
|
9ffb24c8f7 | ||
|
aa3481c960 | ||
|
c8ee3dddba | ||
|
0f837b9431 | ||
|
47c1a539d6 | ||
|
9441bbdfb5 | ||
|
5a4991ade3 | ||
|
a99b788ebc | ||
|
0df4234c28 | ||
|
2215660a7d | ||
|
1da6867784 | ||
|
69b47ce2fe | ||
|
bb44f093c9 | ||
|
a0dea8f6e2 | ||
|
d9e444988d | ||
|
62a80ac00a | ||
|
05933ff83f | ||
|
10d4a04d14 | ||
|
d72ae0de70 | ||
|
bfb829c64d | ||
|
13ec478feb | ||
|
639f04b7b9 | ||
|
073d7e0404 | ||
|
1f40b60606 | ||
|
5507ca8d83 | ||
|
49a14274d1 | ||
|
5f59eec085 | ||
|
8cc079fe50 | ||
|
34edbb9a1c | ||
|
40c7eac14d | ||
|
b12e271417 | ||
|
fa351ac77b |
143
debian/changelog
vendored
143
debian/changelog
vendored
@ -1,9 +1,148 @@
|
||||
livecd-rootfs (24.04.70) UNRELEASED; urgency=medium
|
||||
livecd-rootfs (24.04.88) noble; urgency=medium
|
||||
|
||||
* risc-v: directly copy device trees to /boot/dtb. (LP: #2092205)
|
||||
* riscv: add SUBARCH 'jh7110'. (LP: #2099993)
|
||||
|
||||
-- Adriano Cordova <adriano.cordova@canonical.com> Mon, 10 Feb 2025 10:40:23 -0300
|
||||
|
||||
livecd-rootfs (24.04.87) noble; urgency=medium
|
||||
|
||||
* Add 6.11 kernel apparmor features' preseeds. (LP: #2098306)
|
||||
|
||||
-- Thomas Bechtold <thomas.bechtold@canonical.com> Thu, 13 Feb 2025 12:22:41 +0100
|
||||
|
||||
livecd-rootfs (24.04.86) noble; urgency=medium
|
||||
|
||||
* Do not build HWE kernel layer on RISC-V as there is no HWE kernel there.
|
||||
(LP: #2098622)
|
||||
|
||||
-- Michael Hudson-Doyle <michael.hudson@ubuntu.com> Mon, 17 Feb 2025 11:32:19 +1300
|
||||
|
||||
livecd-rootfs (24.04.85) noble; urgency=medium
|
||||
|
||||
* Fix build failure when using lowlatency-hwe-24.04, as ubuntustudio does.
|
||||
(LP: #2098105)
|
||||
|
||||
-- Dan Bungert <daniel.bungert@canonical.com> Wed, 12 Feb 2025 18:39:48 -0700
|
||||
|
||||
livecd-rootfs (24.04.84) noble; urgency=medium
|
||||
|
||||
[ Florent 'Skia' Jacquet ]
|
||||
* Enable the HWE stack for 24.04.2. (LP: #2098105)
|
||||
|
||||
[ Utkarsh Gupta ]
|
||||
* Bump HWE kernel track to 24.04 for ubuntu-core-desktop.
|
||||
|
||||
-- Utkarsh Gupta <utkarsh@ubuntu.com> Thu, 13 Feb 2025 03:15:12 +0530
|
||||
|
||||
livecd-rootfs (24.04.83) noble; urgency=medium
|
||||
|
||||
[ Carlos Nihelton ]
|
||||
[ Didier Roche-Tolomelli ]
|
||||
* Adapt to new Microsoft package format: (LP: #2091293)
|
||||
- Keep a single wsl rootfs upgrade policy
|
||||
- Create livecd-roots tarball as a .wsl extension
|
||||
- Create wsl-distribution.conf for WSL images
|
||||
|
||||
-- Didier Roche-Tolomelli <didrocks@ubuntu.com> Thu, 23 Jan 2025 14:22:54 +0100
|
||||
|
||||
livecd-rootfs (24.04.82) noble; urgency=medium
|
||||
|
||||
* Add support for arm64+tegra-jetson flavor. (LP: #2091392)
|
||||
|
||||
-- Remy Martin <remy.martin@canonical.com> Fri, 13 Dec 2024 11:53:08 +0100
|
||||
|
||||
livecd-rootfs (24.04.81) noble; urgency=medium
|
||||
|
||||
* Introduce unminimize as a package in OCI images. (LP: #2078583)
|
||||
|
||||
-- Utkarsh Gupta <utkarsh@ubuntu.com> Wed, 20 Nov 2024 15:43:55 +0530
|
||||
|
||||
livecd-rootfs (24.04.80) noble; urgency=medium
|
||||
|
||||
* Explicitly create home directory for buildd system user to avoid issues
|
||||
with installing and running snaps. (LP: #2083240)
|
||||
|
||||
-- jchittum <john.chittum@canonical.com> Wed, 06 Nov 2024 07:43:40 -0500
|
||||
|
||||
livecd-rootfs (24.04.79) noble; urgency=medium
|
||||
|
||||
* Add apparmor policy permstable32 missing component (LP: #2084698)
|
||||
|
||||
-- Thomas Bechtold <thomas.bechtold@canonical.com> Fri, 18 Oct 2024 13:54:51 +0200
|
||||
|
||||
livecd-rootfs (24.04.78) noble; urgency=medium
|
||||
|
||||
* add cpc-sbom to create_manifest calls to generate sboms (LP: #2077105)
|
||||
|
||||
-- jchittum <john.chittum@canonical.com> Mon, 26 Aug 2024 14:15:05 -0400
|
||||
|
||||
livecd-rootfs (24.04.77.1) noble; urgency=medium
|
||||
|
||||
* Hotfix upload outside of git history, real change from 24.04.79.
|
||||
* Update ubuntu-classic-2404-amd64 model in ubuntu hooks. (LP: #2077899)
|
||||
|
||||
-- Chris Peterson <chris.peterson@canonical.com> Mon, 26 Aug 2024 16:57:12 -0700
|
||||
|
||||
livecd-rootfs (24.04.77) noble; urgency=medium
|
||||
|
||||
* Drop unminimize spit out by livecd-rootfs. (LP: #2077695)
|
||||
* Use packaged unminimize in the ubuntu-server images.
|
||||
|
||||
-- Utkarsh Gupta <utkarsh@ubuntu.com> Wed, 21 Aug 2024 12:08:44 +0530
|
||||
|
||||
livecd-rootfs (24.04.76) noble; urgency=medium
|
||||
|
||||
* Force latest/stable/ubuntu-24.10 subiquity onto the ubuntu-core-installer
|
||||
ISO for now. (LP: #2077495)
|
||||
|
||||
-- Michael Hudson-Doyle <michael.hudson@ubuntu.com> Wed, 21 Aug 2024 16:13:58 +1200
|
||||
|
||||
livecd-rootfs (24.04.75) noble; urgency=medium
|
||||
|
||||
* Add 'ubuntu-core-installer' project. (LP: #2076307)
|
||||
|
||||
-- Michael Hudson-Doyle <michael.hudson@ubuntu.com> Tue, 30 Jul 2024 16:35:31 +1200
|
||||
|
||||
livecd-rootfs (24.04.74) noble; urgency=medium
|
||||
|
||||
* riscv64: preinstalled server image for Microchip PIC64GX Curiosity Kit
|
||||
(LP: #2072956)
|
||||
|
||||
-- Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Mon, 08 Jul 2024 17:51:25 +0200
|
||||
|
||||
livecd-rootfs (24.04.73) noble; urgency=medium
|
||||
|
||||
* Build qcow2 images for ubuntu-core LXD support (LP: #2072759).
|
||||
|
||||
-- Łukasz 'sil2100' Zemczak <lukasz.zemczak@ubuntu.com> Thu, 11 Jul 2024 13:15:43 +0200
|
||||
|
||||
livecd-rootfs (24.04.72) noble; urgency=medium
|
||||
|
||||
[ Heinrich Schuchardt ]
|
||||
* riscv64: use earlycon=sbi on command line (LP: #2068739)
|
||||
|
||||
[ Philip Roche ]
|
||||
* Revert removal of unminimize call in server builds (LP: #2069828)
|
||||
|
||||
-- Philip Roche <phil.roche@canonical.com> Mon, 24 Jun 2024 14:24:52 +0100
|
||||
|
||||
livecd-rootfs (24.04.71) noble; urgency=medium
|
||||
|
||||
* Re-enable ability to build HyperV desktop images (LP: #2064280)
|
||||
|
||||
-- Philip Roche <phil.roche@canonical.com> Mon, 27 May 2024 12:05:33 +0100
|
||||
|
||||
livecd-rootfs (24.04.70) noble; urgency=medium
|
||||
|
||||
[ Łukasz 'sil2100' Zemczak ]
|
||||
* Add experimental support for building ubuntu-core-desktop installer images
|
||||
(LP: #2063203)
|
||||
|
||||
-- Łukasz 'sil2100' Zemczak <lukasz.zemczak@ubuntu.com> Wed, 24 Apr 2024 10:53:27 +0100
|
||||
[ Philip Roche ]
|
||||
* No longer install LXD snap in unminimize script (LP: #2066905)
|
||||
|
||||
-- Philip Roche <phil.roche@canonical.com> Fri, 24 May 2024 15:47:48 +0100
|
||||
|
||||
livecd-rootfs (24.04.69) noble; urgency=medium
|
||||
|
||||
|
1
live-build/apparmor/6.11/capability
Normal file
1
live-build/apparmor/6.11/capability
Normal file
@ -0,0 +1 @@
|
||||
0xffffff
|
1
live-build/apparmor/6.11/caps/extended
Normal file
1
live-build/apparmor/6.11/caps/extended
Normal file
@ -0,0 +1 @@
|
||||
yes
|
1
live-build/apparmor/6.11/caps/mask
Normal file
1
live-build/apparmor/6.11/caps/mask
Normal file
@ -0,0 +1 @@
|
||||
chown dac_override dac_read_search fowner fsetid kill setgid setuid setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap mac_override mac_admin syslog wake_alarm block_suspend audit_read perfmon bpf checkpoint_restore
|
1
live-build/apparmor/6.11/dbus/mask
Normal file
1
live-build/apparmor/6.11/dbus/mask
Normal file
@ -0,0 +1 @@
|
||||
acquire send receive
|
1
live-build/apparmor/6.11/domain/attach_conditions/xattr
Normal file
1
live-build/apparmor/6.11/domain/attach_conditions/xattr
Normal file
@ -0,0 +1 @@
|
||||
yes
|
1
live-build/apparmor/6.11/domain/change_hat
Normal file
1
live-build/apparmor/6.11/domain/change_hat
Normal file
@ -0,0 +1 @@
|
||||
yes
|
1
live-build/apparmor/6.11/domain/change_hatv
Normal file
1
live-build/apparmor/6.11/domain/change_hatv
Normal file
@ -0,0 +1 @@
|
||||
yes
|
1
live-build/apparmor/6.11/domain/change_onexec
Normal file
1
live-build/apparmor/6.11/domain/change_onexec
Normal file
@ -0,0 +1 @@
|
||||
yes
|
1
live-build/apparmor/6.11/domain/change_profile
Normal file
1
live-build/apparmor/6.11/domain/change_profile
Normal file
@ -0,0 +1 @@
|
||||
yes
|
1
live-build/apparmor/6.11/domain/computed_longest_left
Normal file
1
live-build/apparmor/6.11/domain/computed_longest_left
Normal file
@ -0,0 +1 @@
|
||||
yes
|
1
live-build/apparmor/6.11/domain/disconnected.path
Normal file
1
live-build/apparmor/6.11/domain/disconnected.path
Normal file
@ -0,0 +1 @@
|
||||
yes
|
1
live-build/apparmor/6.11/domain/fix_binfmt_elf_mmap
Normal file
1
live-build/apparmor/6.11/domain/fix_binfmt_elf_mmap
Normal file
@ -0,0 +1 @@
|
||||
yes
|
1
live-build/apparmor/6.11/domain/interruptible
Normal file
1
live-build/apparmor/6.11/domain/interruptible
Normal file
@ -0,0 +1 @@
|
||||
yes
|
1
live-build/apparmor/6.11/domain/kill.signal
Normal file
1
live-build/apparmor/6.11/domain/kill.signal
Normal file
@ -0,0 +1 @@
|
||||
yes
|
1
live-build/apparmor/6.11/domain/post_nnp_subset
Normal file
1
live-build/apparmor/6.11/domain/post_nnp_subset
Normal file
@ -0,0 +1 @@
|
||||
yes
|
1
live-build/apparmor/6.11/domain/stack
Normal file
1
live-build/apparmor/6.11/domain/stack
Normal file
@ -0,0 +1 @@
|
||||
yes
|
@ -0,0 +1 @@
|
||||
yes
|
1
live-build/apparmor/6.11/domain/version
Normal file
1
live-build/apparmor/6.11/domain/version
Normal file
@ -0,0 +1 @@
|
||||
1.2
|
1
live-build/apparmor/6.11/file/mask
Normal file
1
live-build/apparmor/6.11/file/mask
Normal file
@ -0,0 +1 @@
|
||||
create read write exec append mmap_exec link lock
|
1
live-build/apparmor/6.11/io_uring/mask
Normal file
1
live-build/apparmor/6.11/io_uring/mask
Normal file
@ -0,0 +1 @@
|
||||
sqpoll override_creds
|
1
live-build/apparmor/6.11/ipc/posix_mqueue
Normal file
1
live-build/apparmor/6.11/ipc/posix_mqueue
Normal file
@ -0,0 +1 @@
|
||||
create read write open delete setattr getattr
|
1
live-build/apparmor/6.11/mount/mask
Normal file
1
live-build/apparmor/6.11/mount/mask
Normal file
@ -0,0 +1 @@
|
||||
mount umount pivot_root
|
1
live-build/apparmor/6.11/mount/move_mount
Normal file
1
live-build/apparmor/6.11/mount/move_mount
Normal file
@ -0,0 +1 @@
|
||||
detached
|
1
live-build/apparmor/6.11/namespaces/mask
Normal file
1
live-build/apparmor/6.11/namespaces/mask
Normal file
@ -0,0 +1 @@
|
||||
userns_create
|
1
live-build/apparmor/6.11/namespaces/pivot_root
Normal file
1
live-build/apparmor/6.11/namespaces/pivot_root
Normal file
@ -0,0 +1 @@
|
||||
no
|
1
live-build/apparmor/6.11/namespaces/profile
Normal file
1
live-build/apparmor/6.11/namespaces/profile
Normal file
@ -0,0 +1 @@
|
||||
yes
|
1
live-build/apparmor/6.11/namespaces/userns_create
Normal file
1
live-build/apparmor/6.11/namespaces/userns_create
Normal file
@ -0,0 +1 @@
|
||||
pciu&
|
1
live-build/apparmor/6.11/network/af_mask
Normal file
1
live-build/apparmor/6.11/network/af_mask
Normal file
@ -0,0 +1 @@
|
||||
unspec unix inet ax25 ipx appletalk netrom bridge atmpvc x25 inet6 rose netbeui security key netlink packet ash econet atmsvc rds sna irda pppox wanpipe llc ib mpls can tipc bluetooth iucv rxrpc isdn phonet ieee802154 caif alg nfc vsock kcm qipcrtr smc xdp mctp
|
1
live-build/apparmor/6.11/network/af_unix
Normal file
1
live-build/apparmor/6.11/network/af_unix
Normal file
@ -0,0 +1 @@
|
||||
yes
|
1
live-build/apparmor/6.11/network_v8/af_inet
Normal file
1
live-build/apparmor/6.11/network_v8/af_inet
Normal file
@ -0,0 +1 @@
|
||||
yes
|
1
live-build/apparmor/6.11/network_v8/af_mask
Normal file
1
live-build/apparmor/6.11/network_v8/af_mask
Normal file
@ -0,0 +1 @@
|
||||
unspec unix inet ax25 ipx appletalk netrom bridge atmpvc x25 inet6 rose netbeui security key netlink packet ash econet atmsvc rds sna irda pppox wanpipe llc ib mpls can tipc bluetooth iucv rxrpc isdn phonet ieee802154 caif alg nfc vsock kcm qipcrtr smc xdp mctp
|
1
live-build/apparmor/6.11/policy/notify/user
Normal file
1
live-build/apparmor/6.11/policy/notify/user
Normal file
@ -0,0 +1 @@
|
||||
file
|
1
live-build/apparmor/6.11/policy/outofband
Normal file
1
live-build/apparmor/6.11/policy/outofband
Normal file
@ -0,0 +1 @@
|
||||
0x000001
|
1
live-build/apparmor/6.11/policy/permstable32
Normal file
1
live-build/apparmor/6.11/policy/permstable32
Normal file
@ -0,0 +1 @@
|
||||
allow deny subtree cond kill complain prompt audit quiet hide xindex tag label
|
1
live-build/apparmor/6.11/policy/permstable32_version
Normal file
1
live-build/apparmor/6.11/policy/permstable32_version
Normal file
@ -0,0 +1 @@
|
||||
0x000003
|
1
live-build/apparmor/6.11/policy/set_load
Normal file
1
live-build/apparmor/6.11/policy/set_load
Normal file
@ -0,0 +1 @@
|
||||
yes
|
1
live-build/apparmor/6.11/policy/state32
Normal file
1
live-build/apparmor/6.11/policy/state32
Normal file
@ -0,0 +1 @@
|
||||
0x000001
|
@ -0,0 +1 @@
|
||||
yes
|
@ -0,0 +1 @@
|
||||
0
|
@ -0,0 +1 @@
|
||||
1
|
1
live-build/apparmor/6.11/policy/versions/v5
Normal file
1
live-build/apparmor/6.11/policy/versions/v5
Normal file
@ -0,0 +1 @@
|
||||
yes
|
1
live-build/apparmor/6.11/policy/versions/v6
Normal file
1
live-build/apparmor/6.11/policy/versions/v6
Normal file
@ -0,0 +1 @@
|
||||
yes
|
1
live-build/apparmor/6.11/policy/versions/v7
Normal file
1
live-build/apparmor/6.11/policy/versions/v7
Normal file
@ -0,0 +1 @@
|
||||
yes
|
1
live-build/apparmor/6.11/policy/versions/v8
Normal file
1
live-build/apparmor/6.11/policy/versions/v8
Normal file
@ -0,0 +1 @@
|
||||
yes
|
1
live-build/apparmor/6.11/policy/versions/v9
Normal file
1
live-build/apparmor/6.11/policy/versions/v9
Normal file
@ -0,0 +1 @@
|
||||
yes
|
1
live-build/apparmor/6.11/ptrace/mask
Normal file
1
live-build/apparmor/6.11/ptrace/mask
Normal file
@ -0,0 +1 @@
|
||||
read trace
|
1
live-build/apparmor/6.11/query/label/data
Normal file
1
live-build/apparmor/6.11/query/label/data
Normal file
@ -0,0 +1 @@
|
||||
yes
|
1
live-build/apparmor/6.11/query/label/multi_transaction
Normal file
1
live-build/apparmor/6.11/query/label/multi_transaction
Normal file
@ -0,0 +1 @@
|
||||
yes
|
1
live-build/apparmor/6.11/query/label/perms
Normal file
1
live-build/apparmor/6.11/query/label/perms
Normal file
@ -0,0 +1 @@
|
||||
allow deny audit quiet
|
1
live-build/apparmor/6.11/rlimit/mask
Normal file
1
live-build/apparmor/6.11/rlimit/mask
Normal file
@ -0,0 +1 @@
|
||||
cpu fsize data stack core rss nproc nofile memlock as locks sigpending msgqueue nice rtprio rttime
|
1
live-build/apparmor/6.11/signal/mask
Normal file
1
live-build/apparmor/6.11/signal/mask
Normal file
@ -0,0 +1 @@
|
||||
hup int quit ill trap abrt bus fpe kill usr1 segv usr2 pipe alrm term stkflt chld cont stop stp ttin ttou urg xcpu xfsz vtalrm prof winch io pwr sys emt lost
|
1
live-build/apparmor/6.8/policy/permstable32
Normal file
1
live-build/apparmor/6.8/policy/permstable32
Normal file
@ -0,0 +1 @@
|
||||
allow deny subtree cond kill complain prompt audit quiet hide xindex tag label
|
@ -37,6 +37,11 @@ if [ "${IMAGEFORMAT:-}" = "ubuntu-image" ] \
|
||||
# we should be supporting more than one for models that
|
||||
# define those.
|
||||
mv output/*.img "$PREFIX".img
|
||||
# For standard, non-platform-specific core images, prepare a
|
||||
# qcow2 image as well for LXD consumption.
|
||||
if [ -z "${SUBARCH:-}" ]; then
|
||||
convert_to_qcow2 "$PREFIX".img "$PREFIX".qcow2
|
||||
fi
|
||||
xz -0 -T4 "$PREFIX".img
|
||||
mv output/seed.manifest "$PREFIX".manifest
|
||||
|
||||
@ -180,128 +185,6 @@ EOF
|
||||
# Remove docs installed by bootstrap
|
||||
Chroot chroot dpkg-query -f '${binary:Package}\n' -W | Chroot chroot xargs -L1 apt-get install --reinstall
|
||||
|
||||
# Add unminimizer script which restores default image behavior
|
||||
mkdir -p chroot/usr/local/sbin
|
||||
cat > chroot/usr/local/sbin/unminimize <<'EOF'
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
echo "This system has been minimized by removing packages and content that are"
|
||||
echo "not required on a system that users do not log into."
|
||||
echo ""
|
||||
echo "This script restores content and packages that are found on a default"
|
||||
echo "Ubuntu server system in order to make this system more suitable for"
|
||||
echo "interactive use."
|
||||
echo ""
|
||||
echo "Reinstallation of packages may fail due to changes to the system"
|
||||
echo "configuration, the presence of third-party packages, or for other"
|
||||
echo "reasons."
|
||||
echo ""
|
||||
echo "This operation may take some time."
|
||||
echo ""
|
||||
read -p "Would you like to continue? [y/N] " REPLY
|
||||
echo # (optional) move to a new line
|
||||
if [ "$REPLY" != "y" ] && [ "$REPLY" != "Y" ]
|
||||
then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -f /etc/dpkg/dpkg.cfg.d/excludes ] || [ -f /etc/dpkg/dpkg.cfg.d/excludes.dpkg-tmp ]; then
|
||||
echo "Re-enabling installation of all documentation in dpkg..."
|
||||
if [ -f /etc/dpkg/dpkg.cfg.d/excludes ]; then
|
||||
mv /etc/dpkg/dpkg.cfg.d/excludes /etc/dpkg/dpkg.cfg.d/excludes.dpkg-tmp
|
||||
fi
|
||||
echo "Updating package list and upgrading packages..."
|
||||
apt-get update
|
||||
# apt-get upgrade asks for confirmation before upgrading packages to let the user stop here
|
||||
apt-get upgrade
|
||||
echo "Restoring system documentation..."
|
||||
echo "Reinstalling packages with files in /usr/share/man/ ..."
|
||||
# Reinstallation takes place in two steps because a single dpkg --verified
|
||||
# command generates very long parameter list for "xargs dpkg -S" and may go
|
||||
# over ARG_MAX. Since many packages have man pages the second download
|
||||
# handles a much smaller amount of packages.
|
||||
dpkg -S /usr/share/man/ |sed 's|, |\n|g;s|: [^:]*$||' | DEBIAN_FRONTEND=noninteractive xargs apt-get install --reinstall -y
|
||||
echo "Reinstalling packages with system documentation in /usr/share/doc/ .."
|
||||
# This step processes the packages which still have missing documentation
|
||||
dpkg --verify --verify-format rpm | awk '$2 ~ /\/usr\/share\/doc/ {print $2}' | sed 's|/[^/]*$||' | sort | uniq \
|
||||
| xargs dpkg -S | sed 's|, |\n|g;s|: [^:]*$||' | uniq | DEBIAN_FRONTEND=noninteractive xargs apt-get install --reinstall -y
|
||||
echo "Restoring system translations..."
|
||||
# This step processes the packages which still have missing translations
|
||||
dpkg --verify --verify-format rpm | awk '$2 ~ /\/usr\/share\/locale/ {print $2}' | sed 's|/[^/]*$||' | sort | uniq \
|
||||
| xargs dpkg -S | sed 's|, |\n|g;s|: [^:]*$||' | uniq | DEBIAN_FRONTEND=noninteractive xargs apt-get install --reinstall -y
|
||||
if dpkg --verify --verify-format rpm | awk '$2 ~ /\/usr\/share\/doc/ {exit 1}'; then
|
||||
echo "Documentation has been restored successfully."
|
||||
rm /etc/dpkg/dpkg.cfg.d/excludes.dpkg-tmp
|
||||
else
|
||||
echo "There are still files missing from /usr/share/doc/:"
|
||||
dpkg --verify --verify-format rpm | awk '$2 ~ /\/usr\/share\/doc/ {print " " $2}'
|
||||
echo "You may want to try running this script again or you can remove"
|
||||
echo "/etc/dpkg/dpkg.cfg.d/excludes.dpkg-tmp and restore the files manually."
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$(dpkg-divert --truename /usr/bin/man)" = "/usr/bin/man.REAL" ]; then
|
||||
# Remove diverted man binary
|
||||
rm -f /usr/bin/man
|
||||
dpkg-divert --quiet --remove --rename /usr/bin/man
|
||||
fi
|
||||
EOF
|
||||
|
||||
if [ "$PROJECT" != "ubuntu-base" ] && [ "$PROJECT" != "ubuntu-oci" ]; then
|
||||
# ubuntu-minimal is too much for a docker container (it contains
|
||||
# systemd and other things)
|
||||
cat >> chroot/usr/local/sbin/unminimize <<'EOF'
|
||||
|
||||
if ! dpkg-query --show --showformat='${db:Status-Status}\n' ubuntu-minimal 2> /dev/null | grep -q '^installed$'; then
|
||||
echo "Installing ubuntu-minimal package to provide the familiar Ubuntu minimal system..."
|
||||
DEBIAN_FRONTEND=noninteractive apt-get install -y ubuntu-minimal ubuntu-standard
|
||||
fi
|
||||
|
||||
if dpkg-query --show --showformat='${db:Status-Status}\n' ubuntu-server 2> /dev/null | grep -q '^installed$' \
|
||||
&& ! dpkg-query --show --showformat='${db:Status-Status}\n' landscape-common 2> /dev/null | grep -q '^installed$'; then
|
||||
echo "Installing ubuntu-server recommends..."
|
||||
DEBIAN_FRONTEND=noninteractive apt-get install -y landscape-common
|
||||
fi
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ "$PROJECT" = "ubuntu-cpc" ]; then
|
||||
# we'd like to transform a minimized image to a base image
|
||||
# when unminimize is run.
|
||||
cat >> chroot/usr/local/sbin/unminimize <<'EOF'
|
||||
|
||||
# even if ubuntu-server is installed, we should re-install it with --fix-policy --install-recommends
|
||||
# to ensure all the Recommends of dependencies of ubuntu-server are installed, which aids in transforming
|
||||
# this minimized image to an equivalent base image.
|
||||
DEBIAN_FRONTEND=noninteractive apt-get --reinstall --fix-policy --install-recommends install -y ubuntu-server
|
||||
|
||||
if dpkg-query --show --showformat='${db:Status-Status}\n' linux-image-virtual 2> /dev/null | grep -q '^installed$'; then
|
||||
echo "Installing linux-virtual for installing the headers which were stripped in a minimized image"
|
||||
DEBIAN_FRONTEND=noninteractive apt-get install -y linux-virtual
|
||||
fi
|
||||
EOF
|
||||
|
||||
fi
|
||||
if [ "$PROJECT" = "ubuntu-cpc" ] || [ "$PROJECT" = "ubuntu-server" ]; then
|
||||
cat >> chroot/usr/local/sbin/unminimize <<'EOF'
|
||||
|
||||
# installing LXD using the lxd-installer by simply invoking it
|
||||
echo "Invoking LXD so that it can be installed by the lxd-installer's script.."
|
||||
lxd --version
|
||||
|
||||
echo "Removing lxd installer package..."
|
||||
apt-get purge -y lxd-installer
|
||||
|
||||
EOF
|
||||
fi
|
||||
cat >> chroot/usr/local/sbin/unminimize <<'EOF'
|
||||
|
||||
# unminimization succeeded, there is no need to mention it in motd
|
||||
rm -f /etc/update-motd.d/60-unminimize
|
||||
EOF
|
||||
chmod +x chroot/usr/local/sbin/unminimize
|
||||
|
||||
# inform users about the unminimize script
|
||||
cat > "chroot/etc/update-motd.d/60-unminimize" << EOF
|
||||
@ -627,6 +510,9 @@ for FLAVOUR in $LB_LINUX_FLAVOURS; do
|
||||
intel-iotg*)
|
||||
FLAVOUR="intel-iotg"
|
||||
;;
|
||||
lowlatency-hwe-*)
|
||||
FLAVOUR="lowlatency"
|
||||
;;
|
||||
esac
|
||||
KVERS="$( (cd "binary/$INITFS"; ls vmlinu?-* 2>/dev/null || true) | (fgrep -v .efi || true) | sed -n "s/^vmlinu.-\\([^-]*-[^-]*-$FLAVOUR\\)$/\\1/p" )"
|
||||
if [ -z "$KVERS" ]; then
|
||||
|
@ -4,13 +4,14 @@ set -e
|
||||
case $ARCH:$SUBARCH in
|
||||
amd64:|amd64:generic|amd64:intel-iot|\
|
||||
arm64:|arm64:generic|arm64:raspi|arm64:snapdragon|\
|
||||
arm64:tegra|arm64:tegra-igx|arm64:x13s|arm64:largemem|\
|
||||
arm64:tegra|arm64:tegra-igx|arm64:tegra-jetson|\
|
||||
arm64:x13s|arm64:largemem|\
|
||||
armhf:|\
|
||||
i386:|\
|
||||
ppc64el:|\
|
||||
riscv64:|riscv64:generic|riscv64:icicle|riscv64:licheerv|\
|
||||
riscv64:milkvmars|riscv64:nezha|riscv64:unmatched|riscv64:visionfive|\
|
||||
riscv64:visionfive2|\
|
||||
riscv64:|riscv64:generic|riscv64:icicle|riscv64:jh7110|riscv64:licheerv|\
|
||||
riscv64:milkvmars|riscv64:nezha|riscv64:pic64gx|riscv64:unmatched|\
|
||||
riscv64:visionfive|riscv64:visionfive2|\
|
||||
s390x:|\
|
||||
*appliance*)
|
||||
;;
|
||||
@ -372,7 +373,7 @@ if [ -z "${IMAGEFORMAT:-}" ]; then
|
||||
# All raspi images use ubuntu-image.
|
||||
IMAGEFORMAT=ubuntu-image
|
||||
;;
|
||||
arm64+tegra|arm64+tegra-igx)
|
||||
arm64+tegra|arm64+tegra-igx|arm64+tegra-jetson)
|
||||
# Pre-installed Tegra images use
|
||||
# ubuntu-image
|
||||
IMAGEFORMAT=ubuntu-image
|
||||
@ -382,7 +383,7 @@ if [ -z "${IMAGEFORMAT:-}" ]; then
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
ubuntu-server:live|ubuntu-mini-iso:)
|
||||
ubuntu-server:live|ubuntu-mini-iso:|ubuntu-core-installer:)
|
||||
IMAGEFORMAT=plain
|
||||
;;
|
||||
esac
|
||||
@ -393,9 +394,11 @@ fi
|
||||
if [ "$IMAGEFORMAT" = "ext4" ] && [ "$PROJECT" = "ubuntu-cpc" ]; then
|
||||
case $ARCH:$SUBARCH in
|
||||
riscv64:icicle | \
|
||||
riscv64:jh7110 | \
|
||||
riscv64:licheerv | \
|
||||
riscv64:milkvmars | \
|
||||
riscv64:nezha | \
|
||||
riscv64:pic64gx | \
|
||||
riscv64:unmatched | \
|
||||
riscv64:visionfive | \
|
||||
riscv64:visionfive2 | \
|
||||
@ -421,7 +424,7 @@ case $IMAGEFORMAT in
|
||||
;;
|
||||
plain)
|
||||
case $PROJECT:${SUBPROJECT:-} in
|
||||
ubuntu-server:live)
|
||||
ubuntu-server:live|ubuntu-core-installer:)
|
||||
touch config/universe-enabled
|
||||
;;
|
||||
ubuntu-mini-iso:)
|
||||
@ -450,6 +453,8 @@ case $IMAGEFORMAT in
|
||||
MODEL=tegra ;;
|
||||
arm64+tegra-igx)
|
||||
MODEL=tegra-igx ;;
|
||||
arm64+tegra-jetson)
|
||||
MODEL=tegra-jetson ;;
|
||||
arm64+*)
|
||||
MODEL=pc-arm64 ;;
|
||||
*)
|
||||
@ -841,7 +846,7 @@ case $PROJECT in
|
||||
|
||||
ubuntu-core-desktop)
|
||||
touch config/universe-enabled
|
||||
KERNEL_FLAVOURS='generic-hwe-22.04'
|
||||
KERNEL_FLAVOURS='generic-hwe-24.04'
|
||||
PASSES_TO_LAYERS="true"
|
||||
|
||||
# the minimal layer, for minimal installs
|
||||
@ -876,6 +881,7 @@ case $PROJECT in
|
||||
add_task install minimal standard
|
||||
add_task install kubuntu-desktop
|
||||
LIVE_TASK='kubuntu-live'
|
||||
KERNEL_FLAVOURS='generic-hwe-24.04'
|
||||
add_chroot_hook remove-gnome-icon-cache
|
||||
;;
|
||||
|
||||
@ -885,7 +891,7 @@ case $PROJECT in
|
||||
MINIMAL_TASKS=edubuntu-desktop-gnome-minimal
|
||||
MINIMAL_DESC="A minimal installation of the Edubuntu Desktop."
|
||||
STANDARD_TASKS=edubuntu-desktop-gnome
|
||||
KERNEL_FLAVOURS=generic
|
||||
KERNEL_FLAVOURS='generic-hwe-24.04'
|
||||
do_layered_desktop_image
|
||||
;;
|
||||
|
||||
@ -894,20 +900,21 @@ case $PROJECT in
|
||||
UCFLAVOUR="Ubuntu Cinnamon"
|
||||
HAS_MINIMAL=yes
|
||||
MINIMAL_DESC="A minimal installation of the $UCFLAVOUR Desktop."
|
||||
KERNEL_FLAVOURS=generic
|
||||
KERNEL_FLAVOURS='generic-hwe-24.04'
|
||||
do_layered_desktop_image
|
||||
;;
|
||||
|
||||
lubuntu|ubuntu-unity)
|
||||
add_task install minimal standard ${PROJECT}-desktop
|
||||
LIVE_TASK=${PROJECT}-live
|
||||
KERNEL_FLAVOURS='generic-hwe-24.04'
|
||||
;;
|
||||
ubuntukylin)
|
||||
# Ubuntu Kylin now ships the new installer.
|
||||
UCFLAVOUR="Ubuntu Kylin"
|
||||
HAS_MINIMAL=yes
|
||||
MINIMAL_DESC="A minimal installation of the $UCFLAVOUR Desktop."
|
||||
KERNEL_FLAVOURS=generic
|
||||
KERNEL_FLAVOURS='generic-hwe-24.04'
|
||||
do_layered_desktop_image
|
||||
;;
|
||||
|
||||
@ -917,7 +924,7 @@ case $PROJECT in
|
||||
MINIMAL_TASKS=xubuntu-minimal
|
||||
MINIMAL_NAME="Xubuntu Minimal"
|
||||
MINIMAL_DESC="A minimal installation of the Xubuntu Desktop."
|
||||
KERNEL_FLAVOURS=generic
|
||||
KERNEL_FLAVOURS='generic-hwe-24.04'
|
||||
case ${SUBPROJECT:-} in
|
||||
minimal)
|
||||
HAS_STANDARD=no
|
||||
@ -943,7 +950,7 @@ case $PROJECT in
|
||||
HAS_MINIMAL=yes
|
||||
MINIMAL_TASKS=ubuntu-mate-core
|
||||
MINIMAL_DESC="A minimal installation of the $UCFLAVOUR Desktop."
|
||||
KERNEL_FLAVOURS=generic
|
||||
KERNEL_FLAVOURS='generic-hwe-24.04'
|
||||
do_layered_desktop_image
|
||||
;;
|
||||
|
||||
@ -952,7 +959,7 @@ case $PROJECT in
|
||||
UCFLAVOUR="Ubuntu Studio"
|
||||
STANDARD_TASKS="ubuntustudio-desktop ubuntustudio-audio ubuntustudio-graphics ubuntustudio-video ubuntustudio-photography"
|
||||
LIVE_TASK=ubuntustudio-dvd-live
|
||||
KERNEL_FLAVOURS=lowlatency
|
||||
KERNEL_FLAVOURS='lowlatency-hwe-24.04'
|
||||
do_layered_desktop_image
|
||||
;;
|
||||
|
||||
@ -982,16 +989,22 @@ case $PROJECT in
|
||||
tegra-igx)
|
||||
variants='tegra-igx'
|
||||
;;
|
||||
tegra-jetson)
|
||||
variants='tegra-jetson'
|
||||
;;
|
||||
largemem)
|
||||
# variants='ga-64k hwe-64k'
|
||||
variants='ga-64k'
|
||||
variants='ga-64k hwe-64k'
|
||||
;;
|
||||
*)
|
||||
# variants='ga hwe'
|
||||
variants='ga'
|
||||
variants='ga hwe'
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ $ARCH = "riscv64" ]; then
|
||||
# For RISC-V we only offer one kernel
|
||||
variants='ga'
|
||||
fi
|
||||
|
||||
for variant in $variants; do
|
||||
if [ "$variant" = "ga" ]; then
|
||||
kernel_metapkg=linux-generic
|
||||
@ -1014,6 +1027,9 @@ case $PROJECT in
|
||||
elif [ "$variant" = "tegra-igx" ]; then
|
||||
kernel_metapkg=linux-nvidia-tegra-igx
|
||||
flavor=nvidia-tegra-igx
|
||||
elif [ "$variant" = "tegra-jetson" ]; then
|
||||
kernel_metapkg=linux-nvidia-tegra-jetson
|
||||
flavor=nvidia-tegra-jetson
|
||||
else
|
||||
echo "bogus variant: $variant"
|
||||
exit 1
|
||||
@ -1046,6 +1062,22 @@ case $PROJECT in
|
||||
PREINSTALL_POOL_SEEDS='server-ship'
|
||||
;;
|
||||
|
||||
ubuntu-core-installer)
|
||||
# The ubuntu-core-installer image is an installer that installs ubuntu
|
||||
# core. The environment the installer runs in is similar to the server
|
||||
# installer but it has a source catalog entry that points to the model
|
||||
# created in ubuntu-core-installer/hooks/05-prepare-image.binary, which
|
||||
# subiquity knows how to install.
|
||||
OPTS="${OPTS:+$OPTS }--bootstrap-flavour=minimal"
|
||||
PASSES_TO_LAYERS=true
|
||||
add_task base server-minimal server
|
||||
add_task base.live server-live
|
||||
add_package base.live linux-image-generic
|
||||
|
||||
/usr/share/livecd-rootfs/checkout-translations-branch \
|
||||
https://git.launchpad.net/subiquity po config/catalog-translations
|
||||
;;
|
||||
|
||||
ubuntu-mini-iso)
|
||||
OPTS="${OPTS:+$OPTS }--bootstrap-flavour=minimal"
|
||||
|
||||
@ -1065,10 +1097,21 @@ case $PROJECT in
|
||||
esac
|
||||
;;
|
||||
|
||||
ubuntu-base|ubuntu-oci)
|
||||
ubuntu-base)
|
||||
OPTS="${OPTS:+$OPTS }--bootstrap-flavour=minimal"
|
||||
;;
|
||||
|
||||
ubuntu-oci)
|
||||
OPTS="${OPTS:+$OPTS }--bootstrap-flavour=minimal"
|
||||
if [ "${SUBPROJECT:-}" = minimized ]; then
|
||||
# As unminimize has been spit out from livecd-rootfs into a new
|
||||
# separate pacakge, users have been reporting this as a regression for
|
||||
# Noble. So we'd like to add the unminimize package; cf: LP: #2078583.
|
||||
APT_OPTIONS="${APT_OPTIONS:+$APT_OPTIONS }--no-install-recommends"
|
||||
add_package install unminimize
|
||||
fi
|
||||
;;
|
||||
|
||||
ubuntu-wsl)
|
||||
add_task install minimal ubuntu-wsl
|
||||
OPTS="${OPTS:+$OPTS }--linux-packages=none --initramfs=none"
|
||||
@ -1229,7 +1272,7 @@ case "$ARCH${SUBARCH:++$SUBARCH}" in
|
||||
add_package install linux-firmware-raspi pi-bluetooth u-boot-rpi u-boot-tools
|
||||
BINARY_REMOVE_LINUX=false
|
||||
;;
|
||||
arm64+tegra|arm64+tegra-igx)
|
||||
arm64+tegra|arm64+tegra-igx|arm64+tegra-jetson)
|
||||
# Common configuration for all NVIDIA Tegra image variants
|
||||
# (server, desktop etc.)
|
||||
KERNEL_FLAVOURS="nvidia-$SUBARCH"
|
||||
@ -1241,7 +1284,7 @@ case "$ARCH${SUBARCH:++$SUBARCH}" in
|
||||
esac
|
||||
|
||||
case $PROJECT:${SUBPROJECT:-} in
|
||||
ubuntu-server:*|ubuntu-base:*|ubuntu-oci:*)
|
||||
ubuntu-server:*|ubuntu-base:*|ubuntu-oci:*|ubuntu-core-installer:*)
|
||||
OPTS="${OPTS:+$OPTS }--linux-packages=none --initramfs=none"
|
||||
KERNEL_FLAVOURS=none
|
||||
BINARY_REMOVE_LINUX=false
|
||||
@ -1438,7 +1481,7 @@ case $PROJECT:${SUBPROJECT:-} in
|
||||
ubuntu-cpc:*|ubuntu-server:live|ubuntu:desktop-preinstalled| \
|
||||
ubuntu-wsl:*|ubuntu-mini-iso:*|ubuntu:|ubuntu-oem:*| \
|
||||
ubuntustudio-dvd:*|edubuntu:*|ubuntu-budgie:*|ubuntucinnamon:*|xubuntu:*| \
|
||||
ubuntukylin:*|ubuntu-mate:*|ubuntu-core-desktop:*)
|
||||
ubuntukylin:*|ubuntu-mate:*|ubuntu-core-desktop:*|ubuntu-core-installer:*)
|
||||
# Ensure that most things e.g. includes.chroot are copied as is
|
||||
for entry in /usr/share/livecd-rootfs/live-build/${PROJECT}/*; do
|
||||
case $entry in
|
||||
|
@ -4,6 +4,7 @@ set -e
|
||||
# Create the buildd user and group.
|
||||
addgroup --gid 2501 buildd
|
||||
adduser --system --disabled-password --gecos 'Build Daemon user' \
|
||||
--ingroup buildd --uid 2001 --shell /bin/bash buildd
|
||||
--ingroup buildd --uid 2001 --shell /bin/bash --home /home/buildd \
|
||||
buildd
|
||||
mkdir -p /build/buildd
|
||||
chown buildd:buildd /build/buildd
|
||||
|
@ -39,6 +39,10 @@ create_empty_disk_image() {
|
||||
create_manifest() {
|
||||
local chroot_root=${1}
|
||||
local target_file=${2}
|
||||
local base_default_sbom_name="ubuntu-cloud-image-$(grep "VERSION_ID" $chroot_root/etc/os-release | cut --delimiter "=" --field 2 | tr -d '"')-${ARCH}-$(date +%Y%m%dT%H:%M:%S)"
|
||||
local sbom_file_name=${3:-"${base_default_sbom_name}.spdx"}
|
||||
local sbom_document_name=${4:-"${base_default_sbom_name}"}
|
||||
local sbom_log=${sbom_document_name}.log
|
||||
echo "create_manifest chroot_root: ${chroot_root}"
|
||||
dpkg-query --show --admindir="${chroot_root}/var/lib/dpkg" > ${target_file}
|
||||
echo "create_manifest call to dpkg-query finished."
|
||||
@ -48,6 +52,22 @@ create_manifest() {
|
||||
echo "create_manifest creating file listing."
|
||||
local target_filelist=${2%.manifest}.filelist
|
||||
(cd "${chroot_root}" && find -xdev) | sort > "${target_filelist}"
|
||||
# only creating sboms for CPC project at this time
|
||||
if [[ ! $(which cpc-sbom) ]]; then
|
||||
# ensure the tool is installed
|
||||
sudo snap install --classic --edge cpc-sbom
|
||||
fi
|
||||
# generate the SBOM
|
||||
cpc-sbom --rootdir ${chroot_root} --ignore-copyright-parsing-errors --ignore-copyright-file-not-found-errors --document-name ${sbom_document_name} >"${sbom_file_name}" 2>"${sbom_log}"
|
||||
SBOM_GENERATION_EXIT_CODE=$?
|
||||
if [[ ${SBOM_GENERATION_EXIT_CODE} != "0" ]]; then
|
||||
# check for failure and print log
|
||||
echo "ERROR: SBOM generation failed. See ${sbom_log}"
|
||||
cat "$sbom_log"
|
||||
exit 1
|
||||
else
|
||||
echo "SBOM generation succeeded. see ${sbom_log} for details"
|
||||
fi
|
||||
fi
|
||||
echo "create_manifest finished"
|
||||
}
|
||||
@ -778,6 +798,12 @@ snap_preseed() {
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ $PROJECT = ubuntu-core-installer ] && [ $SNAP_NAME = subiquity ]; then
|
||||
# The ubuntu-core-installer project requires features not yet
|
||||
# present in the latest/ubuntu/stable-24.04 or stable branches.
|
||||
CHANNEL=latest/ubuntu/stable-24.10
|
||||
fi
|
||||
|
||||
_snap_preseed $CHROOT_ROOT $SNAP $CHANNEL
|
||||
|
||||
# Mark this image as having snapd installed explicitly.
|
||||
|
5
live-build/ubuntu-core-installer/hooks/01-setup_modules.chroot
Executable file
5
live-build/ubuntu-core-installer/hooks/01-setup_modules.chroot
Executable file
@ -0,0 +1,5 @@
|
||||
#!/bin/sh -x
|
||||
|
||||
set -e
|
||||
|
||||
mkdir -p /lib/modules
|
17
live-build/ubuntu-core-installer/hooks/02-installer-bits.chroot
Executable file
17
live-build/ubuntu-core-installer/hooks/02-installer-bits.chroot
Executable file
@ -0,0 +1,17 @@
|
||||
#!/bin/bash -ex
|
||||
# vi: ts=4 noexpandtab
|
||||
|
||||
if [ "${PASS}" != "base.live" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Make sure NoCloud is last
|
||||
values=$(echo get cloud-init/datasources | debconf-communicate | sed 's/^0 //;s/NoCloud, //;s/None/NoCloud, None/')
|
||||
printf "%s\t%s\t%s\t%s\n" \
|
||||
cloud-init cloud-init/datasources multiselect "$values" | debconf-set-selections
|
||||
dpkg-reconfigure --frontend=noninteractive cloud-init
|
||||
|
||||
if [ `dpkg --print-architecture` = s390x ]; then
|
||||
# because z/VM x3270 is just ttyS0
|
||||
cp -r /usr/lib/systemd/system/serial-getty@sclp_line0.service.d /usr/lib/systemd/system/serial-getty@ttyS0.service.d
|
||||
fi
|
19
live-build/ubuntu-core-installer/hooks/03-kernel-metapkg.chroot_early
Executable file
19
live-build/ubuntu-core-installer/hooks/03-kernel-metapkg.chroot_early
Executable file
@ -0,0 +1,19 @@
|
||||
#!/bin/bash -ex
|
||||
# vi: ts=4 noexpandtab
|
||||
|
||||
case $PASS in
|
||||
base.live)
|
||||
;;
|
||||
*)
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
cat <<EOF > /etc/initramfs-tools/conf.d/casperize.conf
|
||||
export CASPER_GENERATE_UUID=1
|
||||
EOF
|
||||
|
||||
cat <<EOF > /etc/initramfs-tools/conf.d/default-layer.conf
|
||||
LAYERFS_PATH=${PASS}.squashfs
|
||||
EOF
|
17
live-build/ubuntu-core-installer/hooks/04-kernel-bits.binary
Executable file
17
live-build/ubuntu-core-installer/hooks/04-kernel-bits.binary
Executable file
@ -0,0 +1,17 @@
|
||||
#!/bin/bash -eux
|
||||
# vi: ts=4 noexpandtab
|
||||
|
||||
case $PASS in
|
||||
base.live)
|
||||
;;
|
||||
*)
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
|
||||
PROJECT=$PROJECT${SUBARCH:+-$SUBARCH}
|
||||
|
||||
# Fish out generated kernel image and initrd
|
||||
mv chroot/boot/initrd.img-* ${PWD}/livecd.${PROJECT}.initrd-generic
|
||||
mv chroot/boot/vmlinu?-* ${PWD}/livecd.${PROJECT}.kernel-generic
|
||||
chmod a+r ${PWD}/livecd.${PROJECT}.initrd-generic ${PWD}/livecd.${PROJECT}.kernel-generic
|
@ -0,0 +1,38 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eux
|
||||
|
||||
case ${PASS:-} in
|
||||
base.live)
|
||||
;;
|
||||
*)
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
|
||||
. config/binary
|
||||
. config/functions
|
||||
|
||||
env SNAPPY_STORE_NO_CDN=1 snap known --remote model series=16 brand-id=canonical model=ubuntu-core-24-amd64 > config/ubuntu-core-24-amd64.model
|
||||
|
||||
env SNAPPY_STORE_NO_CDN=1 snap prepare-image \
|
||||
config/ubuntu-core-24-amd64.model --snap console-conf chroot
|
||||
mv chroot/system-seed/systems/* chroot/system-seed/systems/ubuntu-core-24-amd64
|
||||
rsync -av chroot/system-seed/{systems,snaps} chroot/var/lib/snapd/seed
|
||||
rm -rf chroot/system-seed
|
||||
|
||||
cat <<-EOF > config/edge.catalog-in.yaml
|
||||
name: "Ubuntu Core 24"
|
||||
description: >-
|
||||
Ubuntu Core.
|
||||
id: ubuntu-core
|
||||
type: null
|
||||
variant: core
|
||||
locale_support: none
|
||||
snapd_system_label: ubuntu-core-24-amd64
|
||||
EOF
|
||||
PROJECT_FULL=$PROJECT${SUBARCH:+-$SUBARCH}
|
||||
usc_opts="--output livecd.${PROJECT_FULL}.install-sources.yaml \
|
||||
--template config/edge.catalog-in.yaml \
|
||||
--size 0"
|
||||
/usr/share/livecd-rootfs/update-source-catalog $usc_opts
|
@ -0,0 +1,117 @@
|
||||
# The top level settings are used as module
|
||||
# and system configuration.
|
||||
|
||||
# A set of users which may be applied and/or used by various modules
|
||||
# when a 'default' entry is found it will reference the 'default_user'
|
||||
# from the distro configuration specified below
|
||||
users:
|
||||
- default
|
||||
|
||||
# If this is set, 'root' will not be able to ssh in and they
|
||||
# will get a message to login instead as the default $user
|
||||
disable_root: true
|
||||
|
||||
# This will cause the set+update hostname module to not operate (if true)
|
||||
preserve_hostname: true
|
||||
|
||||
ssh_pwauth: yes
|
||||
chpasswd:
|
||||
expire: false
|
||||
|
||||
# This is the initial network config.
|
||||
# It can be overwritten by cloud-init or subiquity.
|
||||
network:
|
||||
version: 2
|
||||
ethernets:
|
||||
zz-all-en:
|
||||
match:
|
||||
name: "en*"
|
||||
dhcp4: true
|
||||
zz-all-eth:
|
||||
match:
|
||||
name: "eth*"
|
||||
dhcp4: true
|
||||
|
||||
# We used to have a custom final_message here. Just use the default instead.
|
||||
|
||||
# Example datasource config
|
||||
# datasource:
|
||||
# Ec2:
|
||||
# metadata_urls: [ 'blah.com' ]
|
||||
# timeout: 5 # (defaults to 50 seconds)
|
||||
# max_wait: 10 # (defaults to 120 seconds)
|
||||
|
||||
# The modules that run in the 'init' stage
|
||||
cloud_init_modules:
|
||||
- bootcmd
|
||||
- write-files
|
||||
- ca-certs
|
||||
- rsyslog
|
||||
- users-groups
|
||||
- ssh
|
||||
|
||||
# The modules that run in the 'config' stage
|
||||
cloud_config_modules:
|
||||
# Emit the cloud config ready event
|
||||
# this can be used by upstart jobs for 'start on cloud-config'.
|
||||
- ssh-import-id
|
||||
- set-passwords
|
||||
- timezone
|
||||
- disable-ec2-metadata
|
||||
- runcmd
|
||||
|
||||
# The modules that run in the 'final' stage
|
||||
cloud_final_modules:
|
||||
- scripts-per-once
|
||||
- scripts-user
|
||||
- ssh-authkey-fingerprints
|
||||
- keys-to-console
|
||||
- phone-home
|
||||
- final-message
|
||||
|
||||
# System and/or distro specific settings
|
||||
# (not accessible to handlers/transforms)
|
||||
system_info:
|
||||
# This will affect which distro class gets used
|
||||
distro: ubuntu
|
||||
# Default user name + that default users groups (if added/used)
|
||||
default_user:
|
||||
name: installer
|
||||
lock_passwd: false
|
||||
gecos: Ubuntu
|
||||
groups: [adm, audio, cdrom, dialout, dip, floppy, lxd, netdev, plugdev, sudo, video]
|
||||
sudo: ["ALL=(ALL) NOPASSWD:ALL"]
|
||||
shell: /usr/bin/subiquity-shell
|
||||
# Automatically discover the best ntp_client
|
||||
ntp_client: auto
|
||||
# Other config here will be given to the distro class and/or path classes
|
||||
paths:
|
||||
cloud_dir: /var/lib/cloud/
|
||||
templates_dir: /etc/cloud/templates/
|
||||
upstart_dir: /etc/init/
|
||||
package_mirrors:
|
||||
- arches: [i386, amd64]
|
||||
failsafe:
|
||||
primary: http://archive.ubuntu.com/ubuntu
|
||||
security: http://security.ubuntu.com/ubuntu
|
||||
search:
|
||||
primary:
|
||||
- http://%(ec2_region)s.ec2.archive.ubuntu.com/ubuntu/
|
||||
- http://%(availability_zone)s.clouds.archive.ubuntu.com/ubuntu/
|
||||
- http://%(region)s.clouds.archive.ubuntu.com/ubuntu/
|
||||
security: []
|
||||
- arches: [arm64, armel, armhf]
|
||||
failsafe:
|
||||
primary: http://ports.ubuntu.com/ubuntu-ports
|
||||
security: http://ports.ubuntu.com/ubuntu-ports
|
||||
search:
|
||||
primary:
|
||||
- http://%(ec2_region)s.ec2.ports.ubuntu.com/ubuntu-ports/
|
||||
- http://%(availability_zone)s.clouds.ports.ubuntu.com/ubuntu-ports/
|
||||
- http://%(region)s.clouds.ports.ubuntu.com/ubuntu-ports/
|
||||
security: []
|
||||
- arches: [default]
|
||||
failsafe:
|
||||
primary: http://ports.ubuntu.com/ubuntu-ports
|
||||
security: http://ports.ubuntu.com/ubuntu-ports
|
||||
ssh_svcname: ssh
|
@ -0,0 +1,4 @@
|
||||
output: {all: '>> /var/log/cloud-init-output.log'}
|
||||
no_ssh_fingerprints: true
|
||||
ssh:
|
||||
emit_keys_to_console: false
|
@ -0,0 +1,2 @@
|
||||
[Journal]
|
||||
RateLimitIntervalSec=0
|
@ -0,0 +1,4 @@
|
||||
# systemd in 23.04+ uses a newer "compact" format by default which is not
|
||||
# understood by the systemd libraries from jammy used in the subiquity snap.
|
||||
[Service]
|
||||
Environment="SYSTEMD_JOURNAL_COMPACT=0"
|
@ -0,0 +1,4 @@
|
||||
# systemd in 22.04+ uses "hash table hardening" by default which is not
|
||||
# understood by the systemd libraries from focal used in the subiquity snap.
|
||||
[Service]
|
||||
Environment="SYSTEMD_JOURNAL_KEYED_HASH=0"
|
@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
exec sudo snap run subiquity
|
||||
|
@ -0,0 +1,3 @@
|
||||
[Service]
|
||||
ExecStart=
|
||||
ExecStart=-/sbin/agetty --noclear -n --autologin ubuntu-core-installer %I $TERM
|
@ -0,0 +1 @@
|
||||
/dev/null
|
@ -0,0 +1 @@
|
||||
../media-filesystem.mount
|
@ -0,0 +1,8 @@
|
||||
[Unit]
|
||||
Description=Subiquity, the installer for Ubuntu Server %I
|
||||
StartLimitInterval=0
|
||||
|
||||
[Service]
|
||||
Environment=SNAP_REEXEC=0
|
||||
ExecStart=
|
||||
ExecStart=/usr/bin/snap run subiquity.subiquity-service %I
|
@ -0,0 +1,4 @@
|
||||
[Service]
|
||||
StandardOutput=tty
|
||||
ExecStart=
|
||||
ExecStart=/usr/bin/snap run subiquity --ssh
|
@ -0,0 +1,13 @@
|
||||
[Unit]
|
||||
IgnoreOnIsolate=yes
|
||||
|
||||
[Service]
|
||||
Environment=SNAP_REEXEC=0
|
||||
UtmpIdentifier=tty1
|
||||
TTYPath=/dev/tty1
|
||||
TTYReset=yes
|
||||
TTYVHangup=yes
|
||||
TTYVTDisallocate=yes
|
||||
KillMode=process
|
||||
IgnoreSIGPIPE=no
|
||||
SendSIGHUP=yes
|
@ -0,0 +1,2 @@
|
||||
[Service]
|
||||
Environment=SNAP_REEXEC=0
|
@ -0,0 +1 @@
|
||||
/bin/true
|
@ -0,0 +1 @@
|
||||
/lib/systemd/system/systemd-networkd.service
|
@ -0,0 +1 @@
|
||||
/lib/systemd/system/systemd-networkd-wait-online.service
|
@ -0,0 +1 @@
|
||||
/lib/systemd/system/systemd-networkd.socket
|
@ -24,6 +24,6 @@ rm -rf $rootfs_dir/boot/grub
|
||||
# Keep this as some derivatives mount a tempfs here
|
||||
mkdir -p $rootfs_dir/lib/modules
|
||||
|
||||
teardown_mountpoint $rootfs_dir
|
||||
create_manifest $rootfs_dir "livecd.ubuntu-cpc.rootfs.manifest" "livecd.ubuntu-cpc.rootfs.spdx" "cloud-image-rootfs-$ARCH-$(date +%Y%m%dT%H:%M:%S)"
|
||||
|
||||
create_manifest "${rootfs_dir}" "${rootfs_dir}.manifest"
|
||||
teardown_mountpoint $rootfs_dir
|
||||
|
@ -80,6 +80,8 @@ cp -a chroot/* mountpoint/
|
||||
chroot mountpoint dpkg-query -W > binary/boot/filesystem.packages
|
||||
(cd mountpoint && find -xdev) | sort > binary/boot/filesystem.filelist
|
||||
|
||||
create_manifest "mountpoint/" "$PWD/livecd.ubuntu-cpc.disk-image.manifest" "$PWD/livecd.ubuntu-cpc.disk-image.spdx" "cloud-image-$ARCH-$(date +Y%m%dT%H:%M:%S)"
|
||||
|
||||
umount mountpoint
|
||||
rmdir mountpoint
|
||||
|
||||
|
@ -9,21 +9,6 @@ case $ARCH in
|
||||
;;
|
||||
esac
|
||||
|
||||
case ${PROJECT:-}:${SUBPROJECT:-} in
|
||||
ubuntu:)
|
||||
echo "We don't create EFI images for Ubuntu Desktop."
|
||||
exit 0
|
||||
;;
|
||||
ubuntu)
|
||||
IMAGE_STR="# DESKTOP_IMG: This file was created/modified by the Desktop Image build process"
|
||||
FS_LABEL="desktop-rootfs"
|
||||
IMAGE_SIZE=12884901888 # 12G
|
||||
;;
|
||||
*)
|
||||
IMAGE_STR="# CLOUD_IMG: This file was created/modified by the Cloud Image build process"
|
||||
FS_LABEL="cloudimg-rootfs"
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ "$ARCH" = "amd64" ]; then
|
||||
IMAGE_SIZE=3758096384 # bump to 3.5G (3584*1024**2); Since Kinetic amd64 need more then the default 2.2G
|
||||
@ -44,6 +29,22 @@ if [ "$ARCH" = "riscv64" ]; then
|
||||
IMAGE_SIZE=4831838208 # bump to 4.5G (4608*1024**2); initrd creation fails with "No space left" with 3.5G
|
||||
fi
|
||||
|
||||
case ${PROJECT:-}:${SUBPROJECT:-} in
|
||||
ubuntu:)
|
||||
echo "We don't create EFI images for Ubuntu Desktop."
|
||||
exit 0
|
||||
;;
|
||||
ubuntu:desktop-preinstalled)
|
||||
IMAGE_STR="# DESKTOP_IMG: This file was created/modified by the Desktop Image build process"
|
||||
FS_LABEL="desktop-rootfs"
|
||||
IMAGE_SIZE=12884901888 # 12G
|
||||
;;
|
||||
*)
|
||||
IMAGE_STR="# CLOUD_IMG: This file was created/modified by the Cloud Image build process"
|
||||
FS_LABEL="cloudimg-rootfs"
|
||||
;;
|
||||
esac
|
||||
|
||||
. config/binary
|
||||
|
||||
. config/functions
|
||||
@ -104,7 +105,7 @@ create_partitions() {
|
||||
--change-name=12:CIDATA \
|
||||
--new=1:: \
|
||||
--attributes=1:set:2
|
||||
elif [ "${SUBARCH:-}" = "icicle" ]; then
|
||||
elif [ "${SUBARCH:-}" = "icicle" ] || [ "${SUBARCH:-}" = "pic64gx" ]; then
|
||||
# Microchip Icicle Kit
|
||||
sgdisk "${disk_image}" \
|
||||
--set-alignment=2 \
|
||||
@ -132,8 +133,8 @@ create_partitions() {
|
||||
--change-name=3:uEnv \
|
||||
--new=1:: \
|
||||
--attributes=1:set:2
|
||||
elif [ "${SUBARCH:-}" = "visionfive2" ] || [ "${SUBARCH:-}" = "milkvmars" ]; then
|
||||
# VisionFive 2, Milk-V Mars
|
||||
elif [ "${SUBARCH:-}" = "visionfive2" ] || [ "${SUBARCH:-}" = "milkvmars" ] || [ "${SUBARCH:-}" = "jh7110" ]; then
|
||||
# JH7110 chips: VisionFive 2, Milk-V Mars
|
||||
sgdisk "${disk_image}" \
|
||||
--set-alignment=4096 \
|
||||
--new=13:4096:8191 \
|
||||
@ -271,49 +272,21 @@ install_grub() {
|
||||
mkdir -p mountpoint/etc/default/grub.d/
|
||||
cp ${my_d}/riscv64/grub/10_cmdline.cfg mountpoint/etc/default/grub.d/
|
||||
echo "Installing GRUB for ${SUBARCH} board"
|
||||
mkdir -p mountpoint/etc/flash-kernel/
|
||||
case "${SUBARCH}" in
|
||||
"icicle")
|
||||
cp ${my_d}/riscv64/grub/90_watchdog-thresh.cfg mountpoint/etc/default/grub.d/
|
||||
# flash-kernel is needed to install the dtb for update-grub: it uses the
|
||||
# /proc/device-tree/model value to pick the correct dtb and as we are in a chroot,
|
||||
# the model value is wrong and we need to use /etc/flash-kernel/machine instead.
|
||||
# This explains why we install flash-kernel here.
|
||||
chroot mountpoint bash -c "echo 'Microchip PolarFire-SoC Icicle Kit' > /etc/flash-kernel/machine"
|
||||
# The real U-Boot
|
||||
chroot mountpoint apt-get install -qqy u-boot-microchip
|
||||
loader="${loop_device}p13"
|
||||
dd if=mountpoint/usr/lib/u-boot/microchip_icicle/u-boot.payload of=$loader
|
||||
;;
|
||||
"milkvmars")
|
||||
cp ${my_d}/riscv64/grub/90_watchdog-thresh.cfg mountpoint/etc/default/grub.d/
|
||||
# flash-kernel is needed to install the dtb for update-grub: it uses the
|
||||
# /proc/device-tree/model value to pick the correct dtb and as we are in a chroot,
|
||||
# the model value is wrong and we need to use /etc/flash-kernel/machine instead.
|
||||
# This explains why we install flash-kernel here.
|
||||
chroot mountpoint bash -c "echo 'Milk-V Mars' > /etc/flash-kernel/machine"
|
||||
chroot mountpoint apt-get install -qqy u-boot-starfive
|
||||
# U-Boot SPL
|
||||
loader1="${loop_device}p13"
|
||||
# Main U-Boot
|
||||
loader2="${loop_device}p2"
|
||||
dd if=mountpoint/usr/lib/u-boot/starfive_visionfive2/u-boot-spl.bin.normal.out of=$loader1
|
||||
dd if=mountpoint/usr/lib/u-boot/starfive_visionfive2/u-boot.itb of=$loader2
|
||||
;;
|
||||
"nezha"|"licheerv")
|
||||
echo "Reducing initramfs size for ${SUBARCH} board"
|
||||
mkdir -p mountpoint/etc/initramfs-tools/conf.d/
|
||||
cp ${my_d}/riscv64/initramfs-tools/modules_list.conf mountpoint/etc/initramfs-tools/conf.d/
|
||||
chroot mountpoint update-initramfs -c -v -k all
|
||||
echo "Installing U-Boot for ${SUBARCH} board"
|
||||
# flash-kernel is needed to install the dtb for update-grub: it uses the
|
||||
# /proc/device-tree/model value to pick the correct dtb and as we are in a chroot,
|
||||
# the model value is wrong and we need to use /etc/flash-kernel/machine instead.
|
||||
# This explains why we install flash-kernel here.
|
||||
if [ "$SUBARCH" = "nezha" ]; then
|
||||
chroot mountpoint bash -c "echo 'Allwinner D1 Nezha' > /etc/flash-kernel/machine"
|
||||
elif [ "$SUBARCH" = "licheerv" ]; then
|
||||
chroot mountpoint bash -c "echo 'Sipeed Lichee RV Dock' > /etc/flash-kernel/machine"
|
||||
if [ "$SUBARCH" = "licheerv" ]; then
|
||||
# cryptsetup-initramfs is a large contributor of the initrd size: we have to
|
||||
# remove it for the LicheeRV board, otherwise it fails to boot. cryptsetup-initramfs
|
||||
# needs to embed plymouth (and then the drm/gpu stuff) for interacting with the user
|
||||
@ -327,12 +300,14 @@ install_grub() {
|
||||
loader1="${loop_device}p13"
|
||||
dd if=mountpoint/usr/lib/u-boot/${SUBARCH}/u-boot-sunxi-with-spl.bin of=$loader1
|
||||
;;
|
||||
"pic64gx")
|
||||
cp ${my_d}/riscv64/grub/90_watchdog-thresh.cfg mountpoint/etc/default/grub.d/
|
||||
# u-boot-pic64gx contains the vendor U-Boot
|
||||
chroot mountpoint apt-get install -qqy u-boot-pic64gx
|
||||
loader="${loop_device}p13"
|
||||
dd if=mountpoint/usr/lib/u-boot-pic64gx/u-boot.payload of=$loader
|
||||
;;
|
||||
"visionfive")
|
||||
# flash-kernel is needed to install the dtb for update-grub: it uses the
|
||||
# /proc/device-tree/model value to pick the correct dtb and as we are in a chroot,
|
||||
# the model value is wrong and we need to use /etc/flash-kernel/machine instead.
|
||||
# This explains why we install flash-kernel here.
|
||||
chroot mountpoint bash -c "echo 'StarFive VisionFive V1' > /etc/flash-kernel/machine"
|
||||
# factory u-boot requires a p3 partition with /boot/uEnv.txt file
|
||||
uenv_dev="${loop_device}p3"
|
||||
mkfs.ext4 "${uenv_dev}"
|
||||
@ -362,13 +337,8 @@ EOF
|
||||
umount "${uenv_mnt_dir}"
|
||||
rmdir "${uenv_mnt_dir}"
|
||||
;;
|
||||
"visionfive2")
|
||||
"visionfive2"|"milkvmars"|"jh7110")
|
||||
cp ${my_d}/riscv64/grub/90_watchdog-thresh.cfg mountpoint/etc/default/grub.d/
|
||||
# flash-kernel is needed to install the dtb for update-grub: it uses the
|
||||
# /proc/device-tree/model value to pick the correct dtb and as we are in a chroot,
|
||||
# the model value is wrong and we need to use /etc/flash-kernel/machine instead.
|
||||
# This explains why we install flash-kernel here.
|
||||
chroot mountpoint bash -c "echo 'StarFive VisionFive 2 v1.3B' > /etc/flash-kernel/machine"
|
||||
chroot mountpoint apt-get install -qqy u-boot-starfive
|
||||
# U-Boot SPL
|
||||
loader1="${loop_device}p13"
|
||||
@ -379,7 +349,6 @@ EOF
|
||||
;;
|
||||
unmatched)
|
||||
cp ${my_d}/riscv64/grub/90_watchdog-thresh.cfg mountpoint/etc/default/grub.d/
|
||||
chroot mountpoint bash -c "echo 'SiFive HiFive Unmatched A00' > /etc/flash-kernel/machine"
|
||||
chroot mountpoint apt-get install -qqy u-boot-sifive
|
||||
# U-Boot SPL
|
||||
loader1="${loop_device}p13"
|
||||
@ -389,6 +358,17 @@ EOF
|
||||
dd if=mountpoint/usr/lib/u-boot/sifive_unmatched/u-boot.itb of=$loader2
|
||||
;;
|
||||
esac
|
||||
echo "Copying device trees"
|
||||
kver=$(ls mountpoint/lib/modules | sort -V | tail -n 1)
|
||||
dtb_src_dirs=(
|
||||
"mountpoint/usr/lib/linux-image-$kver"
|
||||
"mountpoint/lib/firmware/$kver/device-tree"
|
||||
)
|
||||
dtb_tgt_dir="mountpoint/boot/efi/dtb/"
|
||||
mkdir -p "$dtb_tgt_dir"
|
||||
for src_dir in "${dtb_src_dirs[@]}"; do
|
||||
[ -d "$src_dir" ] && cp -r -v "$src_dir"/* "$dtb_tgt_dir" || echo "Skipping missing: $src_dir"
|
||||
done
|
||||
chroot mountpoint bash -c 'FK_FORCE=yes apt-get install -qqy grub-efi-riscv64 flash-kernel'
|
||||
efi_target=riscv64-efi
|
||||
# Provide end-user modifyable CIDATA
|
||||
@ -397,12 +377,6 @@ EOF
|
||||
# Provide stock nocloud datasource
|
||||
# Allow interactive login without a cloud datasource.
|
||||
setup_cinocloud mountpoint
|
||||
# u-boot-${SUBARCH} will boot using UEFI if it does not find
|
||||
# any extlinux.conf or boot.scr: but flash-kernel will
|
||||
# install a boot.scr if it believes it did not boot in
|
||||
# EFI mode, so make sure we don't leave a boot.scr
|
||||
# behind.
|
||||
chroot mountpoint rm -f /boot/boot.scr
|
||||
else
|
||||
# Other images e.g. cloud images
|
||||
chroot mountpoint apt-get install -qqy u-boot-menu grub-efi-riscv64
|
||||
|
@ -184,7 +184,8 @@ install_grub() {
|
||||
mount
|
||||
|
||||
# create sorted filelist as the very last step before unmounting
|
||||
(cd mountpoint && find -xdev) | sort > binary/boot/filesystem.filelist
|
||||
# explicitly generate manifest and sbom
|
||||
create_manifest "mountpoint/" "$PWD/livecd.ubuntu-cpc.disk-uefi.manifest" "$PWD/livecd.ubuntu-cpc.disk-uefi.spdx" "cloud-image-$ARCH-$(date +%Y%m%dT%H:%M:%S)"
|
||||
|
||||
umount_partition mountpoint
|
||||
rmdir mountpoint
|
||||
@ -201,6 +202,7 @@ make_ext4_partition "${rootfs_dev_mapper}"
|
||||
mkdir mountpoint
|
||||
mount "${rootfs_dev_mapper}" mountpoint
|
||||
cp -a chroot/* mountpoint/
|
||||
|
||||
umount mountpoint
|
||||
rmdir mountpoint
|
||||
|
||||
|
@ -158,6 +158,8 @@ EOF
|
||||
$ZIPL_EXTRA_PARAMS
|
||||
fi
|
||||
|
||||
create_manifest "mountpoint/" "$PWD/livecd.ubuntu-cpc.disk-image.manifest" "$PWD/livecd.ubuntu-cpc.disk-image.spdx" "cloud-image-$ARCH-$(date +%Y%m%dT%H:%M:%S)"
|
||||
|
||||
if [ -n "$BOOT_MOUNTPOINT" ]; then
|
||||
umount "mountpoint/$BOOT_MOUNTPOINT"
|
||||
fi
|
||||
|
@ -2,8 +2,17 @@
|
||||
|
||||
. config/functions
|
||||
|
||||
qcow_file=${PWD}/livecd.ubuntu-cpc.qcow
|
||||
if [ -f binary/boot/disk-uefi.ext4 ]; then
|
||||
convert_to_qcow2 binary/boot/disk-uefi.ext4 livecd.ubuntu-cpc.img
|
||||
uefi_file="livecd.ubuntu-cpc.disk-uefi"
|
||||
cp ${uefi_file}.manifest ${qcow_file}.manifest
|
||||
cp ${uefi_file}.filelist ${qcow_file}.filelist
|
||||
cp ${uefi_file}.spdx ${qcow_file}.spdx
|
||||
elif [ -f binary/boot/disk.ext4 ]; then
|
||||
convert_to_qcow2 binary/boot/disk.ext4 livecd.ubuntu-cpc.img
|
||||
disk_file="livecd.ubuntu-cpc.disk-image"
|
||||
cp ${disk_file}.manifest ${qcow_file}.manifest
|
||||
cp ${disk_file}.filelist ${qcow_file}.filelist
|
||||
cp ${disk_file}.spdx ${qcow_file}.spdx
|
||||
fi
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Booting on many riscv64 systems is slow. Let the user view progress.
|
||||
# For minimum output use
|
||||
# GRUB_CMDLINE_LINUX_DEFAULT="quiet"
|
||||
GRUB_CMDLINE_LINUX_DEFAULT="efi=debug earlycon"
|
||||
GRUB_CMDLINE_LINUX_DEFAULT="efi=debug earlycon=sbi"
|
||||
|
@ -1 +1 @@
|
||||
U_BOOT_PARAMETERS="ro efi=debug earlycon"
|
||||
U_BOOT_PARAMETERS="ro efi=debug earlycon=sbi"
|
||||
|
@ -15,8 +15,11 @@ rootfs_dir=rootfs.dir
|
||||
|
||||
squashfs_f="$PWD/livecd.ubuntu-cpc.squashfs"
|
||||
|
||||
cp $rootfs_dir.manifest $squashfs_f.manifest
|
||||
cp livecd.ubuntu-cpc.rootfs.manifest ${squashfs_f}.manifest
|
||||
cp livecd.ubuntu-cpc.rootfs.filelist ${squashfs_f}.filelist
|
||||
cp livecd.ubuntu-cpc.rootfs.spdx ${squashfs_f}.spdx
|
||||
|
||||
# fstab is omitted from the squashfs
|
||||
grep -v '^/etc/fstab$' $rootfs_dir.filelist >$squashfs_f.filelist
|
||||
grep -v '^/etc/fstab$' livecd.ubuntu-cpc.rootfs.filelist >$squashfs_f.filelist
|
||||
|
||||
create_squashfs $rootfs_dir $squashfs_f
|
||||
|
@ -11,6 +11,4 @@ fi
|
||||
# This is the directory created by create-root-dir.binary
|
||||
rootfs_dir=rootfs.dir
|
||||
|
||||
cp $rootfs_dir.manifest livecd.ubuntu-cpc.rootfs.manifest
|
||||
cp $rootfs_dir.filelist livecd.ubuntu-cpc.rootfs.filelist
|
||||
(cd $rootfs_dir/ && tar -c --sort=name --xattrs *) | xz > livecd.ubuntu-cpc.rootfs.tar.xz
|
||||
|
@ -6,3 +6,6 @@ provides livecd.ubuntu-cpc.initrd-generic
|
||||
provides livecd.ubuntu-cpc.kernel-generic
|
||||
provides livecd.ubuntu-cpc.manifest
|
||||
provides livecd.ubuntu-cpc.filelist
|
||||
provides livecd.ubuntu-cpc.disk-image.manifest
|
||||
provides livecd.ubuntu-cpc.disk-image.filelist
|
||||
provides livecd.ubuntu-cpc.disk-image.spdx
|
||||
|
@ -4,3 +4,6 @@ provides livecd.ubuntu-cpc.initrd-generic
|
||||
provides livecd.ubuntu-cpc.kernel-generic
|
||||
provides livecd.ubuntu-cpc.manifest
|
||||
provides livecd.ubuntu-cpc.filelist
|
||||
provides livecd.ubuntu-cpc.disk-uefi.manifest
|
||||
provides livecd.ubuntu-cpc.disk-uefi.filelist
|
||||
provides livecd.ubuntu-cpc.disk-uefi.spdx
|
||||
|
@ -1,3 +1,6 @@
|
||||
depends disk-image
|
||||
base/qcow2-image.binary
|
||||
provides livecd.ubuntu-cpc.img
|
||||
provides livecd.ubuntu-cpc.qcow.manifest
|
||||
provides livecd.ubuntu-cpc.qcow.filelist
|
||||
provides livecd.ubuntu-cpc.qcow.spdx
|
||||
|
@ -3,3 +3,4 @@ base/root-squashfs.binary
|
||||
provides livecd.ubuntu-cpc.squashfs
|
||||
provides livecd.ubuntu-cpc.squashfs.manifest
|
||||
provides livecd.ubuntu-cpc.squashfs.filelist
|
||||
provides livecd.ubuntu-cpc.squashfs.spdx
|
@ -3,3 +3,4 @@ base/root-xz.binary
|
||||
provides livecd.ubuntu-cpc.rootfs.tar.xz
|
||||
provides livecd.ubuntu-cpc.rootfs.manifest
|
||||
provides livecd.ubuntu-cpc.rootfs.filelist
|
||||
provides livecd.ubuntu-cpc.rootfs.spdx
|
||||
|
@ -1,3 +1,6 @@
|
||||
depends disk-image
|
||||
base/vagrant.binary
|
||||
provides livecd.ubuntu-cpc.vagrant.box
|
||||
provides livecd.ubuntu-cpc.vagrant.manifest
|
||||
provides livecd.ubuntu-cpc.vagrant.filelist
|
||||
provides livecd.ubuntu-cpc.vagrant.spdx
|
@ -3,3 +3,6 @@ base/vmdk-image.binary
|
||||
base/vmdk-ova-image.binary
|
||||
provides livecd.ubuntu-cpc.vmdk
|
||||
provides livecd.ubuntu-cpc.ova
|
||||
provides livecd.ubuntu-cpc.vmdk.manifest
|
||||
provides livecd.ubuntu-cpc.vmdk.filelist
|
||||
provides livecd.ubuntu-cpc.vmdk.spdx
|
@ -93,6 +93,8 @@ EOF
|
||||
chroot ${mount_d} chown -R vagrant:vagrant /home/vagrant/.ssh
|
||||
chroot ${mount_d} chmod 700 /home/vagrant/.ssh
|
||||
|
||||
create_manifest $mount_d "livecd.ubuntu-cpc.vagrant.manifest" "livecd.ubuntu-cpc.vagrant.spdx" "cloud-image-vagrant-$ARCH-$(date +%Y%m%dT%H:%M:%S)"
|
||||
|
||||
umount_disk_image "$mount_d"
|
||||
rmdir "$mount_d"
|
||||
|
||||
|
@ -20,8 +20,18 @@ esac
|
||||
|
||||
. config/functions
|
||||
|
||||
vmdk_file="$PWD/livecd.ubuntu-cpc.vmdk"
|
||||
|
||||
if [ -e binary/boot/disk-uefi.ext4 ]; then
|
||||
create_vmdk binary/boot/disk-uefi.ext4 livecd.ubuntu-cpc.vmdk
|
||||
uefi_file="livecd.ubuntu-cpc.disk-uefi"
|
||||
cp ${uefi_file}.manifest ${vmdk_file}.manifest
|
||||
cp ${uefi_file}.filelist ${vmdk_file}.filelist
|
||||
cp ${uefi_file}.spdx ${vmdk_file}.spdx
|
||||
elif [ -f binary/boot/disk.ext4 ]; then
|
||||
create_vmdk binary/boot/disk.ext4 livecd.ubuntu-cpc.vmdk
|
||||
disk_file="livecd.ubuntu-cpc.disk-image"
|
||||
cp ${disk_file}.manifest ${vmdk_file}.manifest
|
||||
cp ${disk_file}.filelist ${vmdk_file}.filelist
|
||||
cp ${disk_file}.spdx ${vmdk_file}.spdx
|
||||
fi
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user