diff --git a/debian/changelog b/debian/changelog index 220b1d03..4202cbb3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,12 @@ livecd-rootfs (2.547) UNRELEASED; urgency=medium * Add support for raspi3 rootfs builds (based on Ryan Finnie). * For ubuntu-image consumption, export the kernel and initrd to image/boot/uboot for raspi*. + * Avoid issues of hard-linking to a symbolic vmlinuz as this can lead to a + dangling symlink. + * Add support for raspi3 rootfs builds (based on Ryan Finnie). + * For ubuntu-image consumption, export the kernel and initrd to + image/boot/uboot for raspi*. + * vagrant: disabling automatic console log file [ Michael Zanetti ] * Don't set QML2_IMPORT_PATH in environment for Ubuntu Touch images. diff --git a/debian/control b/debian/control index 9d47c949..16cc8c4f 100644 --- a/debian/control +++ b/debian/control @@ -23,6 +23,7 @@ Depends: ${misc:Depends}, live-build (>= 3.0~a57-1ubuntu31~), lsb-release, lzma, + make, parted, procps, python-minimal | python, @@ -32,7 +33,8 @@ Depends: ${misc:Depends}, rsync, snapd, squashfs-tools (>= 1:3.3-1), - sudo, + sudo + u-boot-tools [armhf arm64], ubuntu-image, vmdk-stream-converter [amd64 i386], xz-utils, diff --git a/live-build/auto/build b/live-build/auto/build index 801d3e36..69088f1c 100755 --- a/live-build/auto/build +++ b/live-build/auto/build @@ -23,12 +23,31 @@ PREFIX="livecd.$PROJECT${SUBARCH:+-$SUBARCH}" if [ "${IMAGEFORMAT:-}" = "ubuntu-image" ]; then # Use ubuntu-image instead of live-build - CHANNEL="${CHANNEL:-edge}" - env SNAPPY_STORE_NO_CDN=1 \ - ubuntu-image -c "$CHANNEL" $UBUNTU_IMAGE_ARGS \ - -o "$PREFIX".img "$PREFIX".model-assertion - xz -0 -T4 "$PREFIX".img - mv seed.manifest "$PREFIX".manifest + if [ "$PROJECT" = "ubuntu-core"]; then + CHANNEL="${CHANNEL:-edge}" + env SNAPPY_STORE_NO_CDN=1 \ + ubuntu-image snap -c "$CHANNEL" $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 + # define those. + 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" + ubuntu-image classic $UBUNTU_IMAGE_ARGS \ + -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 + mv output/filesystem.manifest "$PREFIX".manifest + fi + exit 0 fi diff --git a/live-build/auto/config b/live-build/auto/config index 703df61a..a7dcbdf9 100755 --- a/live-build/auto/config +++ b/live-build/auto/config @@ -180,28 +180,46 @@ case $IMAGEFORMAT in exit 1 ;; esac - case $MODEL in - pc-amd64|pc-i386) - UBUNTU_IMAGE_ARGS="--image-size 3700M" ;; - *) - UBUNTU_IMAGE_ARGS="" ;; - esac - case $SUITE in - xenial) - # Ubuntu Core 16 - ;; - *) - # Ubuntu Core 18 - MODEL="ubuntu-core-18-${MODEL#pc-}" ;; - esac - echo "IMAGEFORMAT=$IMAGEFORMAT" >> config/common - echo "UBUNTU_IMAGE_ARGS=\"$UBUNTU_IMAGE_ARGS\"" >> config/common - # Store model assertion in top dir to get it picked up later as a build artifact - env SNAPPY_STORE_NO_CDN=1 snap known --remote model series=16 model="$MODEL" brand-id=canonical > "$PREFIX".model-assertion - echo "Configured ubuntu-image for the following model assertion:" - cat "$PREFIX".model-assertion - echo "----------------------------------------------------------" + if [ $PROJECT = "ubuntu-core" ]; then + # snap-based core images + + case $MODEL in + pc-amd64|pc-i386) + UBUNTU_IMAGE_ARGS="--image-size 3700M" ;; + *) + UBUNTU_IMAGE_ARGS="" ;; + esac + case $SUITE in + xenial) + # Ubuntu Core 16 + ;; + *) + # Ubuntu Core 18 + MODEL="ubuntu-core-18-${MODEL#pc-}" ;; + esac + + echo "IMAGEFORMAT=$IMAGEFORMAT" >> config/common + echo "UBUNTU_IMAGE_ARGS=\"$UBUNTU_IMAGE_ARGS\"" >> config/common + # Store model assertion in top dir to get it picked up later as a build artifact + env SNAPPY_STORE_NO_CDN=1 snap known --remote model series=16 model="$MODEL" brand-id=canonical > "$PREFIX".model-assertion + echo "Configured ubuntu-image for the following model assertion:" + cat "$PREFIX".model-assertion + echo "----------------------------------------------------------" + else + # classic images + + UBUNTU_IMAGE_ARGS="" + UBUNTU_IMAGE_ARGS="$UBUNTU_IMAGE_ARGS${PROPOSED:+ --with-proposed}" + UBUNTU_IMAGE_ARGS="$UBUNTU_IMAGE_ARGS${EXTRA_PPAS:+ --extra-ppas \"$EXTRA_PPAS\"}" + + git clone lp:~canonical-foundations/snap-$MODEL/+git/github-mirror -b classic config/$PREFIX-gadget + + echo "IMAGEFORMAT=$IMAGEFORMAT" >> config/common + echo "UBUNTU_IMAGE_ARGS=\"$UBUNTU_IMAGE_ARGS\"" >> config/common + + echo "Configured ubuntu-image for the following gadget model: $MODEL" + fi # Fake finished configuration for lb build mkdir -p .build touch .build/config