Compare commits

...

12 Commits

Author SHA1 Message Date
Philip Roche
13ec478feb d/ch change to upload 24.04.71 noble 2024-05-27 12:06:44 +01:00
Philip Roche
639f04b7b9 Merge feature/re-enable-noble-hyperv-desktop-builds-noble into ubuntu/noble [a=philroche] [r=mwhudson,utkarsh]
feat: Re-enable ability to build HyperV desktop images (LP: #2064280)

We have not built Hyperv desktop images since Jammy and with the re-introduction of
HyperV for Noble we have encountered build issues caused by refactoring and removals
of code assumed to be redundant but the HyperV desktop images were actually using
these code paths.

This is a backport/SRU from oracular.

MP: https://code.launchpad.net/~philroche/livecd-rootfs/+git/livecd-rootfs/+merge/466385

# Conflicts:
#	debian/changelog
2024-05-27 12:06:31 +01:00
Philip Roche
073d7e0404 d/ch change to upload 24.04.70 noble 2024-05-27 11:11:12 +01:00
Philip Roche
1f40b60606 Merge bugfix/lxd-no-longer-seeded-unminimize-noble into ubuntu/noble [a=philroche] [r=sdeziel,utkarsh,vorlon]
fix: No longer install LXD snap in unminimize script (LP: #2066905)

The LXD snap is no longer seeded in any images since Noble+ so the LXD related unminimize logic in
./live-build/auto/build?h=ubuntu/noble and ./live-build/ubuntu-server/hooks/01-unminimize.chroot_early
 is no longer required.

lxd-installer can remain installed.

This is a backport/SRU from oracular

(cherry picked from commit 46c19dfa913c133042d62e0caa2d2d526cd9bb7f)

MP: https://code.launchpad.net/~philroche/livecd-rootfs/+git/livecd-rootfs/+merge/466388
2024-05-27 11:10:05 +01:00
Philip Roche
5507ca8d83 fix: No longer install LXD snap in unminimize script (LP: #2066905)
The LXD snap is no longer seeded in any images since Noble+ so the LXD related unminimize logic in
./live-build/auto/build?h=ubuntu/noble and ./live-build/ubuntu-server/hooks/01-unminimize.chroot_early
 is no longer required.

lxd-installer can remain installed.

(cherry picked from commit 46c19dfa913c133042d62e0caa2d2d526cd9bb7f)
2024-05-24 15:48:21 +01:00
Philip Roche
49a14274d1 d/ch update for 24.04.70 to re-enable ability to build HyperV desktop images (LP: #2064280) 2024-05-24 15:34:40 +01:00
Philip Roche
5f59eec085 fix(Hyperv Desktop): remove redundant case statement match ubuntu
`ubuntu` will never match `${PROJECT:-}:${SUBPROJECT:-}` cases statement and can be safely removed.

(cherry picked from commit 0945c40fb2bb067d86d496b7b40bdae89123124c)
2024-05-24 15:31:21 +01:00
Philip Roche
8cc079fe50 fix(Hyperv Desktop): as we are using oem-config we do not need ubiquity-slideshow-ubuntu
As we are only using oem-config, oem-config-slideshow-ubuntu will suffice

(cherry picked from commit 8fe26586cc1b65621e74121b03c912dcee0e6cf8)
2024-05-24 15:31:16 +01:00
Philip Roche
34edbb9a1c fix(Hyperv Desktop): ubiquity-frontend-gtk is a dependency of the oem-config-gtk package so does not need to be added explicitly
(cherry picked from commit dc2d1318d2d2183f6d80673a1daf5dc8794cd3ed)
2024-05-24 15:31:11 +01:00
Philip Roche
40c7eac14d feat(Hyperv Desktop): Disable cloud-init for Hyperv Desktop images (LP: #2064280)
For Ubuntu 24.04 and later cloud-init is included in desktop images. This is not applicable for Hyperv images so
we can disable cloud-init. This leaves the cloud-init package installed but disabled so users can still
use it if they want.

This is a documented way to disable cloud-init. See https://cloudinit.readthedocs.io/en/latest/howto/disable_cloud_init.html

(cherry picked from commit ff47664d8c646ebae72c40145ee1fd8098185de6)
2024-05-24 15:30:50 +01:00
Phil Roche
b12e271417 fix(HyperV desktop): Ensure removed hyperv dependencies are present in HyperV builds (LP: #2064280)
A change in 8fb21808 also removed many of the dependencies that the hyperv images require.
This removal has been restored in this commit by adding them expliciltly in the hyperv hook.

(cherry picked from commit c459e5e5af0371c0228bd4e5ddec57b8954d39df)
2024-05-24 15:30:45 +01:00
Phil Roche
fa351ac77b fix(HyperV desktop): Re-enable ability to build HyperV desktop images (LP: #2064280)
We have not built Hyperv desktop images since Jammy and with the re-introduction of HyperV for Noble we have encountered build issues caused by refactoring and removals of code assumed to be redundant but the HyperV desktop images were actually using these code paths.

In bbedffe6 we split the building of cloud images and non cloud to using an ddisk-image-uefi.binary and disk-image-uefi-non-cloud.binary respectively. In e38264ca there was a change which meant that any attempt to build hyperv images would result in incorrect disk size and incorrect disk label.

This has been fixed by ensuring that the ubuntu:desktop-preinstalled $PROJECT:$SUBPROJECT matches and sets the correct disk size and correct disk label.

A change in 76d79466 changed the logic of how the image size for amd64 images were being set. This overrode the sizes set for the desktop images incorrectly.

This commit ensures that any desktop image being created uses the correct image size.

(cherry picked from commit 48aed401949637ac314e59de996ccab19d5eefcd)
2024-05-24 15:30:38 +01:00
28 changed files with 357 additions and 60 deletions

View File

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

4
.idea.bkup/misc.xml Normal file
View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10 (cpc-sbom) (2)" project-jdk-type="Python SDK" />
</project>

8
.idea.bkup/modules.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/livecd-rootfs.iml" filepath="$PROJECT_DIR$/.idea/livecd-rootfs.iml" />
</modules>
</component>
</project>

7
.idea.bkup/vcs.xml Normal file
View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
<mapping directory="$PROJECT_DIR$/livecd-rootfs" vcs="Git" />
</component>
</project>

50
.idea.bkup/workspace.xml Normal file
View File

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="8b53e4fe-d06b-4120-bca1-09aab0c0e0b8" name="Changes" comment="">
<change beforePath="$PROJECT_DIR$/debian/changelog" beforeDir="false" afterPath="$PROJECT_DIR$/debian/changelog" afterDir="false" />
<change beforePath="$PROJECT_DIR$/live-build/ubuntu-cpc/hooks.d/base/disk-image-uefi.binary" beforeDir="false" afterPath="$PROJECT_DIR$/live-build/ubuntu-cpc/hooks.d/base/disk-image-uefi.binary" afterDir="false" />
<change beforePath="$PROJECT_DIR$/livecd-rootfs/debian/changelog" beforeDir="false" afterPath="$PROJECT_DIR$/livecd-rootfs/debian/changelog" afterDir="false" />
<change beforePath="$PROJECT_DIR$/livecd-rootfs/live-build/ubuntu-cpc/hooks.d/base/disk-image-uefi.binary" beforeDir="false" afterPath="$PROJECT_DIR$/livecd-rootfs/live-build/ubuntu-cpc/hooks.d/base/disk-image-uefi.binary" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="ProjectColorInfo"><![CDATA[{
"associatedIndex": 3
}]]></component>
<component name="ProjectId" id="2VtkQwj0NQBRHE5uOcNk4KgQ7sF" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"RunOnceActivity.OpenProjectViewOnStart": "true",
"RunOnceActivity.ShowReadmeOnStart": "true",
"WebServerToolWindowFactoryState": "false",
"last_opened_file_path": "/home/philroche/Working/livecd-rootfs",
"vue.rearranger.settings.migration": "true"
}
}]]></component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="8b53e4fe-d06b-4120-bca1-09aab0c0e0b8" name="Changes" comment="" />
<created>1695662751675</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1695662751675</updated>
<workItem from="1695662752677" duration="2000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="3" />
</component>
</project>

View File

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

8
.idea.bkup2/modules.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/livecd-rootfs.iml" filepath="$PROJECT_DIR$/.idea/livecd-rootfs.iml" />
</modules>
</component>
</project>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
</project>

View File

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

8
.idea.bkup3/modules.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/livecd-rootfs.iml" filepath="$PROJECT_DIR$/.idea/livecd-rootfs.iml" />
</modules>
</component>
</project>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
</project>

View File

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

8
.idea/livecd-rootfs.iml generated Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

8
.idea/modules.xml generated Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/livecd-rootfs.iml" filepath="$PROJECT_DIR$/.idea/livecd-rootfs.iml" />
</modules>
</component>
</project>

7
.idea/workspace.xml generated Normal file
View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
</project>

View File

@ -0,0 +1,40 @@
diff --git a/live-build/auto/config b/live-build/auto/config
index 20d28139..8f188b5d 100755
--- a/live-build/auto/config
+++ b/live-build/auto/config
@@ -1048,12 +1048,13 @@ case $PROJECT in
add_task install ubuntu-server-raspi
;;
armhf*)
- add_package install flash-kernel
+ if [ "${SUBPROJECT:-}" != minimized ]; then
+ add_package install flash-kernel
+ fi
;;
arm64*)
- add_package install flash-kernel
- if [ "${SUBARCH:-}" = "generic" ]; then
- KERNEL_FLAVOURS=generic
+ if [ "${SUBPROJECT:-}" != minimized ]; then
+ add_package install flash-kernel
fi
;;
amd64*)
diff --git a/live-build/ubuntu-cpc/hooks.d/base/disk-image-uefi.binary b/live-build/ubuntu-cpc/hooks.d/base/disk-image-uefi.binary
index 3685e464..4602267c 100755
--- a/live-build/ubuntu-cpc/hooks.d/base/disk-image-uefi.binary
+++ b/live-build/ubuntu-cpc/hooks.d/base/disk-image-uefi.binary
@@ -112,11 +112,11 @@ install_grub() {
# please file a bug against grub2 to include the affected module.
case $ARCH in
arm64)
- chroot mountpoint apt-get -qqy install --no-install-recommends shim-signed grub-efi-arm64-signed
+ chroot mountpoint apt-get install -qqy shim-signed
efi_target=arm64-efi
;;
armhf)
- chroot mountpoint apt-get -qqy install --no-install-recommends grub-efi-arm grub-efi-arm-bin
+ chroot mountpoint apt-get -qqy install grub-efi-arm grub-efi-arm-bin
efi_target=arm-efi
;;
amd64)

View File

@ -0,0 +1,63 @@
diff --git a/live-build/buildd/hooks/02-disk-image-uefi.binary b/live-build/buildd/hooks/02-disk-image-uefi.binary
index 44a7ff42..a90f19c7 100755
--- a/live-build/buildd/hooks/02-disk-image-uefi.binary
+++ b/live-build/buildd/hooks/02-disk-image-uefi.binary
@@ -53,6 +53,26 @@ LABEL=UEFI /boot/efi vfat defaults 0 1
EOF
}
+
+divert_lsb_release() {
+ CHROOT_ROOT="$1"
+ chroot "$CHROOT_ROOT" dpkg-divert --local \
+ --divert /usr/bin/lsb_release.dpkg-divert \
+ --rename /usr/bin/lsb_release
+ echo "echo Ubuntu" > "$CHROOT_ROOT"/usr/bin/lsb_release
+ chmod +x "$CHROOT_ROOT"/usr/bin/lsb_release
+
+}
+
+undivert_lsb_release() {
+ CHROOT_ROOT="$1"
+ if grep -q "^echo Ubuntu$" "$CHROOT_ROOT"/usr/bin/lsb_release; then
+ rm "$CHROOT_ROOT"/usr/bin/lsb_release
+ fi
+ chroot "$CHROOT_ROOT" dpkg-divert --remove --local \
+ --rename /usr/bin/lsb_release
+}
+
install_grub() {
mkdir mountpoint
mount_partition "${rootfs_dev_mapper}" mountpoint
@@ -69,7 +89,8 @@ install_grub() {
fi
chroot mountpoint apt-get -y update
-
+ divert_lsb_release mountpoint
+ chroot mountpoint lsb_release
# UEFI GRUB modules are meant to be used equally by Secure Boot and
# non-Secure Boot systems. If you need an extra module not already
# provided or run into "Secure Boot policy forbids loading X" problems,
@@ -84,7 +105,7 @@ install_grub() {
efi_target=arm-efi
;;
amd64)
- chroot mountpoint apt-get install -qqy grub-pc shim-signed
+ chroot mountpoint apt-get install -qqy grub-pc shim-signed python3-apt
efi_target=x86_64-efi
;;
esac
@@ -121,10 +142,12 @@ GRUB_RECORDFAIL_TIMEOUT=0
GRUB_TERMINAL=console
EOF
+
divert_grub mountpoint
chroot mountpoint update-grub
replace_grub_root_with_label mountpoint
undivert_grub mountpoint
+ undivert_lsb_release mountpoint
chroot mountpoint apt-get -y clean

14
debian/changelog vendored
View File

@ -1,9 +1,19 @@
livecd-rootfs (24.04.70) UNRELEASED; urgency=medium 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 * Add experimental support for building ubuntu-core-desktop installer images
(LP: #2063203) (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 livecd-rootfs (24.04.69) noble; urgency=medium

1
debian/files vendored Normal file
View File

@ -0,0 +1 @@
livecd-rootfs_2.765.30_source.buildinfo devel optional

View File

@ -284,18 +284,6 @@ fi
EOF EOF
fi 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' cat >> chroot/usr/local/sbin/unminimize <<'EOF'
# unminimization succeeded, there is no need to mention it in motd # unminimization succeeded, there is no need to mention it in motd

43
live-build/genbuildinfo.py Executable file
View File

@ -0,0 +1,43 @@
#!/usr/bin/python3
import apt
import os
import platform
import datetime
from datetime import datetime, timezone
# Get the current date and time in UTC timezone aware
utc_now = datetime.now(timezone.utc)
def get_system_architecture():
arch = platform.machine()
if arch == 'x86_64':
return 'amd64'
elif arch == 'aarch64':
return 'arm64'
else:
return f"Unknown architecture: {arch}"
print("Format: 1.0")
print("Build-Origin: Ubuntu")
print(f"Build-Architecture: {get_system_architecture()}")
print(f"Build-Date: {utc_now}")
# Using python-apt to gather installed packages
try:
package_cache = apt.Cache()
print("List of installed packages:")
for package in package_cache:
if package.is_installed:
print(f" {package.name} (= {package.installed.version}),")
except Exception as e:
print(f"An error occurred while fetching installed packages: {e}")
# Using os module to list all environment variables
try:
print("\nEnvironment variables:")
for param, value in os.environ.items():
print(f" {param}={value}")
except Exception as e:
print(f"An error occurred while fetching environment variables: {e}")

View File

@ -9,21 +9,6 @@ case $ARCH in
;; ;;
esac 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 if [ "$ARCH" = "amd64" ]; then
IMAGE_SIZE=3758096384 # bump to 3.5G (3584*1024**2); Since Kinetic amd64 need more then the default 2.2G 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 IMAGE_SIZE=4831838208 # bump to 4.5G (4608*1024**2); initrd creation fails with "No space left" with 3.5G
fi 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/binary
. config/functions . config/functions

View File

@ -10,31 +10,6 @@ case ${PASS} in
;; ;;
esac esac
# The unminimize script will try to install the lxd snap using the shim script
# /usr/sbin/lxd from the lxd-installer package.
# We can't do that at this stage so just neuter the lxd command (the snap
# will get properly seeded by generic machinery).
if [ -f "/usr/sbin/lxd" ]; then
dpkg-divert --add --divert /usr/sbin/lxd.REAL --rename /usr/sbin/lxd
ln -s /bin/true /usr/sbin/lxd
yes | /usr/local/sbin/unminimize
# unminimize also uninstalls lxd-installer package
# and also removed `/usr/sbin/lxd` as a result, so we don't need to restore, but
# we do need to remove the mock we used as part of dpkg-divert
# first we need to remove the diversion
dpkg-divert --remove --no-rename /usr/sbin/lxd
# now remove the renamed file that we originally diverted to
rm -v /usr/sbin/lxd.REAL
else
# if /usr/sbin/lxd doesn't exist then lxd-installer package isn't installed.
# Instead, we can mock the command to avoid the unminimize script failing
ln -s /bin/true /usr/sbin/lxd
yes | /usr/local/sbin/unminimize
# as the lxd-installer package was not installed and thus not removed by `unminimize`
# the mock /usr/sbin/lxd will still be present, so we need to remove it
rm -v /usr/sbin/lxd
fi
# Fix up missing recommends. Other non-layered flavors handle this in # Fix up missing recommends. Other non-layered flavors handle this in
# live-build/auto/build, but we need to do it here. Also, there are # live-build/auto/build, but we need to do it here. Also, there are
# additional recommends missing from server-minimal that wouldn't be # additional recommends missing from server-minimal that wouldn't be

View File

@ -39,8 +39,14 @@ trap cleanup_hyperv EXIT
# Perform customisations # Perform customisations
# For Ubuntu 24.04 and later cloud-init is included in desktop images. This is not applicable for Hyperv images so
# we can disable cloud-init. This leaves the cloud-init package installed but disabled so users can still
# use it if they want.
touch "${scratch_d}/etc/cloud/cloud-init.disabled"
chroot "${scratch_d}" apt-get update -y chroot "${scratch_d}" apt-get update -y
chroot "${scratch_d}" apt-get -y install xrdp linux-azure linux-tools-azure linux-cloud-tools-azure chroot "${scratch_d}" apt-get -y install xrdp linux-azure linux-tools-azure linux-cloud-tools-azure polkitd-pkla oem-config-gtk language-pack-en-base oem-config-slideshow-ubuntu
cat > ${scratch_d}/etc/modules-load.d/hyperv.conf << EOF cat > ${scratch_d}/etc/modules-load.d/hyperv.conf << EOF
${IMAGE_STR} ${IMAGE_STR}
@ -124,20 +130,19 @@ touch "${scratch_d}/var/lib/oem-config/run"
chroot "${scratch_d}" apt-get clean chroot "${scratch_d}" apt-get clean
raw_img=binary/boot/disk-hyperv-uefi.ext4
vhd_img=livecd.ubuntu-desktop-hyperv.vhdx
create_manifest "${scratch_d}" "$vhd_img.zip.manifest"
# End customisations # End customisations
cleanup_hyperv cleanup_hyperv
trap - EXIT trap - EXIT
raw_img=binary/boot/disk-hyperv-uefi.ext4
vhd_img=livecd.ubuntu-desktop-hyperv.vhdx
qemu-img convert -O vhdx "$raw_img" "$vhd_img" qemu-img convert -O vhdx "$raw_img" "$vhd_img"
rm "$raw_img" rm "$raw_img"
apt-get install -y zip apt-get install -y zip
create_manifest chroot "$vhd_img.zip.manifest"
zip "$vhd_img.zip" "$vhd_img" zip "$vhd_img.zip" "$vhd_img"
rm "$vhd_img" rm "$vhd_img"

1
livecd-rootfs Symbolic link
View File

@ -0,0 +1 @@
/home/philroche/Working/livecd-rootfs