mirror of
https://git.launchpad.net/livecd-rootfs
synced 2025-05-29 11:41:31 +00:00
Backport ubuntu-image 3.x support into jammy.
This commit is contained in:
parent
c668946c66
commit
0eae42c67a
1
debian/control
vendored
1
debian/control
vendored
@ -40,7 +40,6 @@ Depends: ${misc:Depends},
|
||||
squashfs-tools (>= 1:3.3-1),
|
||||
sudo,
|
||||
u-boot-tools [armhf arm64],
|
||||
ubuntu-image [!i386 !riscv64],
|
||||
python3-vmdkstream [amd64 i386],
|
||||
xz-utils,
|
||||
zerofree
|
||||
|
@ -87,11 +87,16 @@ fi
|
||||
PREFIX="livecd.$PROJECT${SUBARCH:+-$SUBARCH}"
|
||||
|
||||
if [ "${IMAGEFORMAT:-}" = "ubuntu-image" ]; then
|
||||
# Use ubuntu-image instead of live-build
|
||||
# Use ubuntu-image instead (or as part) of live-build
|
||||
|
||||
export SNAPPY_STORE_NO_CDN=1
|
||||
LB_UBUNTU_IMAGE_CHANNEL="${LB_UBUNTU_IMAGE_CHANNEL:-stable}"
|
||||
snap install \
|
||||
--classic --channel="$LB_UBUNTU_IMAGE_CHANNEL" ubuntu-image
|
||||
|
||||
if [ "$PROJECT" = "ubuntu-core" ]; then
|
||||
env SNAPPY_STORE_NO_CDN=1 \
|
||||
ubuntu-image snap $UBUNTU_IMAGE_ARGS \
|
||||
# Ubuntu Core images
|
||||
/snap/bin/ubuntu-image snap $UBUNTU_IMAGE_ARGS \
|
||||
-O output "$PREFIX".model-assertion
|
||||
# XXX: currently we only have one image generated, but really
|
||||
# we should be supporting more than one for models that
|
||||
@ -99,24 +104,32 @@ if [ "${IMAGEFORMAT:-}" = "ubuntu-image" ]; then
|
||||
mv output/*.img "$PREFIX".img
|
||||
xz -0 -T4 "$PREFIX".img
|
||||
mv output/seed.manifest "$PREFIX".manifest
|
||||
else
|
||||
# First we need to build the gadget tree
|
||||
make -C "config/$PREFIX-gadget" \
|
||||
ARCH=$ARCH SERIES=$SUITE $GADGET_TARGET
|
||||
ubuntu-image classic $UBUNTU_IMAGE_ARGS \
|
||||
-s $SUITE -p $PROJECT -a $ARCH --subarch $SUBARCH \
|
||||
-O output config/$PREFIX-gadget/install
|
||||
# XXX: currently we only have one image generated, but really
|
||||
# we should be supporting more than one for models that
|
||||
# define those.
|
||||
mv output/*.img "$PREFIX".img
|
||||
xz -0 -T4 "$PREFIX".img
|
||||
# Also link the output image to a filename that cdimage expects
|
||||
ln "$PREFIX".img.xz livecd.ubuntu-cpc.disk1.img.xz
|
||||
mv output/filesystem.manifest "$PREFIX".manifest
|
||||
fi
|
||||
|
||||
# All the builds are finished now, exit
|
||||
exit 0
|
||||
else
|
||||
# Ubuntu classic preinstalled images
|
||||
/snap/bin/ubuntu-image classic --verbose $UBUNTU_IMAGE_ARGS \
|
||||
-O output "$IMAGE_DEFINITION"
|
||||
# Since the output of the ubuntu-image call can vary based on what
|
||||
# kind of an image we build, the safest bet is to 'export' all the
|
||||
# artifacts from the output directory. The image definition file
|
||||
# should be what defines what is expected, so that we don't have
|
||||
# to tweak livecd-rootfs everytime a different type of artifact
|
||||
# is needed.
|
||||
for artifact in output/*; do
|
||||
# We want to be dynamic, and want to support even
|
||||
# two-part extensions.
|
||||
filename=$(basename $artifact)
|
||||
noversion=$(echo $filename | sed 's/[0-9][0-9]\.[0-9][0-9]//')
|
||||
extension=${noversion#*.}
|
||||
mv $artifact "$PREFIX".$extension
|
||||
done
|
||||
[ -f $PREFIX.img ] && xz -0 -T4 "$PREFIX".img
|
||||
|
||||
# All the builds are finished now, exit
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
# Setup cleanup function
|
||||
|
@ -493,38 +493,22 @@ case $IMAGEFORMAT in
|
||||
else
|
||||
# classic images
|
||||
|
||||
# Certain models have different names but are built from the same source gadget tree
|
||||
BRANCH="classic"
|
||||
case $MODEL in
|
||||
pi|pi-arm64|pi3-arm64)
|
||||
MODEL=pi
|
||||
BRANCH="classic-22.04"
|
||||
;;
|
||||
intel-iot)
|
||||
MODEL=pc
|
||||
# Sometimes per-project quirks are necessary
|
||||
IMAGE_PROJECT=$PROJECT
|
||||
case "$IMAGE_PROJECT" in
|
||||
ubuntu-cpc)
|
||||
IMAGE_PROJECT="ubuntu-server"
|
||||
;;
|
||||
esac
|
||||
|
||||
GADGET_TARGET="server"
|
||||
if [ "$SUBPROJECT" = "desktop-preinstalled" ]; then
|
||||
GADGET_TARGET="desktop"
|
||||
fi
|
||||
|
||||
UBUNTU_IMAGE_ARGS="$UBUNTU_IMAGE_ARGS${SUBPROJECT:+ --subproject \"$SUBPROJECT\"}"
|
||||
UBUNTU_IMAGE_ARGS="$UBUNTU_IMAGE_ARGS${PROPOSED:+ --with-proposed}"
|
||||
UBUNTU_IMAGE_ARGS="$UBUNTU_IMAGE_ARGS${EXTRA_PPAS:+ --extra-ppas \"$EXTRA_PPAS\"}"
|
||||
|
||||
# We need to look in two places for the gadget tree:
|
||||
# - Launchpad hosted gadgets will be in the snap-gadget repo
|
||||
# - Github hosted gadgets are mirrored into a github-mirror repo
|
||||
git clone git://git.launchpad.net/~canonical-foundations/snap-$MODEL/+git/snap-$MODEL -b $BRANCH config/$PREFIX-gadget || git clone git://git.launchpad.net/~canonical-foundations/snap-$MODEL/+git/github-mirror -b $BRANCH config/$PREFIX-gadget || git clone git://git.launchpad.net/~canonical-foundations/snap-$MODEL/+git/github-mirror-$ARCH -b $BRANCH config/$PREFIX-gadget
|
||||
|
||||
echo "IMAGEFORMAT=$IMAGEFORMAT" >> config/common
|
||||
echo "SUITE=$SUITE" >> config/common
|
||||
echo "GADGET_TARGET=$GADGET_TARGET" >> config/common
|
||||
echo "UBUNTU_IMAGE_ARGS=\"$UBUNTU_IMAGE_ARGS\"" >> config/common
|
||||
|
||||
echo "Configured ubuntu-image for the following gadget model: $MODEL"
|
||||
LB_UBUNTU_IMAGES_REPO="${LB_UBUNTU_IMAGES_REPO:-git://git.launchpad.net/ubuntu-images}"
|
||||
LB_UBUNTU_IMAGES_BRANCH="${LB_UBUNTU_IMAGES_BRANCH:-$SUITE}"
|
||||
git clone "$LB_UBUNTU_IMAGES_REPO" -b "$LB_UBUNTU_IMAGES_BRANCH" image-definitions
|
||||
IMAGE_DEFINITION="image-definitions/$IMAGE_PROJECT-$MODEL.yaml"
|
||||
echo "IMAGE_DEFINITION=$IMAGE_DEFINITION" >> config/common
|
||||
echo "Configured ubuntu-image to use image definition file $IMAGE_DEFINITION which has the following contents:"
|
||||
cat "$IMAGE_DEFINITION"
|
||||
echo "----------------------------------------------------------"
|
||||
fi
|
||||
|
||||
# Save the model name used for building, mostly for any model-specific hook execution
|
||||
|
Loading…
x
Reference in New Issue
Block a user