From 4400dd37c6b5f0b80870e3a5cdd61fdcf4ffb128 Mon Sep 17 00:00:00 2001
From: Utkarsh Gupta <utkarsh@ubuntu.com>
Date: Wed, 6 Sep 2023 15:12:43 +0530
Subject: [PATCH] Enhance unminimize to transform into a base image for
 ubuntu-cpc

The unminimize script previously just restored the system documentation
and translations, man pages, and installed ubuntu-minimal and ubuntu-standard
packages to provide the familiar Ubuntu minimal system. But such an image
never became an equivalent of base image.

Upon investigation and looking at how the base image is constructed -
https://git.launchpad.net/livecd-rootfs/tree/live-build/auto/config#n1108 -
we use the following things:
 - minimal task
 - standard task
 - cloud-image task (which involves ubuntu-server)
 - ubuntu-minimal package
 - server task if arch != amd64

OTOH, in the unminimize script, we use the following:
(https://git.launchpad.net/livecd-rootfs/tree/live-build/auto/build#n286)
 - ubuntu-minimal package
 - ubuntu-standard package

So upon running some tests, it was found that if we install ubuntu-server
(with --fix-policy flag), we get the resulting image equivalent to that
of a base image.

cf: https://warthogs.atlassian.net/browse/CPC-3033
---
 live-build/auto/build | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/live-build/auto/build b/live-build/auto/build
index 12cdb1a8..4520ee6f 100755
--- a/live-build/auto/build
+++ b/live-build/auto/build
@@ -292,6 +292,18 @@ if dpkg-query --show --showformat='${db:Status-Status}\n' ubuntu-server 2> /dev/
     DEBIAN_FRONTEND=noninteractive apt-get install -y landscape-common
 fi
 EOF
+
+                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
+EOF
+
 fi
 		if [ "$PROJECT" = "ubuntu-cpc" ] || [ "$PROJECT" = "ubuntu-server" ]; then
 			cat >> chroot/usr/local/sbin/unminimize <<'EOF'