diff --git a/debian/changelog b/debian/changelog index 477f9261..74706f80 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,25 @@ +livecd-rootfs (2.463) UNRELEASED; urgency=medium + + [ Balint Reczey ] + * Bump needed live-build version which can build images without initrd + * Mention unminimize script in motd + * Warn users that unminimize may fail reinstalling packages + * Use SUBPROJECT=minimized name instead of SUBPROJECT=minimize for + consistency + * Run autopkgtest for SUBPROJECT=minimized + * When SUBPROJECT environment variable is not set assume it to be "" + + [ Michael Hudson-Doyle ] + * Fix path to subiquity-loadkeys + + -- Balint Reczey Fri, 29 Sep 2017 15:38:33 -0400 + +livecd-rootfs (2.462) artful; urgency=medium + + * Fix a reference to an undefined variable in a script that's set -u. + + -- Steve Langasek Fri, 29 Sep 2017 15:10:47 -0400 + livecd-rootfs (2.461) artful; urgency=medium * In subiquity, loadkeys to setup Shift+Tab key combination. diff --git a/debian/control b/debian/control index d54dd207..4646547f 100644 --- a/debian/control +++ b/debian/control @@ -20,7 +20,7 @@ Depends: ${misc:Depends}, gnupg, grep-dctrl, kpartx, - live-build (>= 3.0~a57-1ubuntu12~), + live-build (>= 3.0~a57-1ubuntu31~), lsb-release, lzma, parted, diff --git a/debian/tests/control b/debian/tests/control index b40640f9..671e49e9 100644 --- a/debian/tests/control +++ b/debian/tests/control @@ -1,3 +1,7 @@ Tests: default-bootstraps Depends: @, lsb-release Restrictions: needs-root isolation-machine + +Tests: minimized +Depends: @, lsb-release +Restrictions: needs-root isolation-machine diff --git a/debian/tests/default-bootstraps b/debian/tests/default-bootstraps index 47c9ae13..433cd327 100755 --- a/debian/tests/default-bootstraps +++ b/debian/tests/default-bootstraps @@ -30,6 +30,7 @@ ALL_TRIPLETS=" ubuntu-budgie-live:: ubuntu-core:system-image:ubuntu-core ubuntu-cpc::ubuntu-cpc + ubuntu-cpc:minimized:ubuntu-cpc ubuntu-desktop-next:system-image:ubuntu-desktop-next ubuntu-desktop-next::ubuntu-desktop-next ubuntu-dvd:: diff --git a/debian/tests/minimized b/debian/tests/minimized new file mode 100644 index 00000000..a78a95fa --- /dev/null +++ b/debian/tests/minimized @@ -0,0 +1,3 @@ +#!/bin/bash + +env SELECTED_TRIPLETS=ubuntu-cpc:minimized:ubuntu-cpc debian/tests/default-bootstraps diff --git a/live-build/auto/build b/live-build/auto/build index d3afccc1..37af4b0e 100755 --- a/live-build/auto/build +++ b/live-build/auto/build @@ -45,13 +45,13 @@ Expire-Date: 0 lb bootstrap "$@" - if [ "$SUBPROJECT" = minimize ] \ + if [ "${SUBPROJECT:-}" = minimized ] \ && ! Chroot chroot dpkg -l tzdata 2>&1 |grep -q ^ii; then # workaround for tzdata purge not removing these files rm -f chroot/etc/localtime chroot/etc/timezone fi - if [ "$SUBPROJECT" = minimize ]; then + if [ "${SUBPROJECT:-}" = minimized ]; then # set up dpkg filters to skip installing docs on minimized system mkdir -p chroot/etc/dpkg/dpkg.cfg.d cat > chroot/etc/dpkg/dpkg.cfg.d/excludes < /d DEBIAN_FRONTEND=noninteractive apt-get install -y ubuntu-minimal fi +# 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 fi + # inform users about the unminimize script + cat > "chroot/etc/update-motd.d/60-unminimize" << EOF +#!/bin/sh +# +# This file is not managed by a package. If you no longer want to +# see this message you can safely remove the file. +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 "To restore this content, you can run the 'unminimize' command." +EOF + + chmod +x chroot/etc/update-motd.d/60-unminimize Chroot chroot "dpkg-divert --quiet --add \ --divert /usr/sbin/update-initramfs.REAL --rename \ /usr/sbin/update-initramfs" @@ -353,7 +385,7 @@ elif [ -e binary-tar.tar.gz ]; then cp -a binary-tar.tar.gz "$PREFIX.rootfs.tar.gz" fi -if [ "$PROJECT:$SUBPROJECT" = "ubuntu-core:system-image" ]; then +if [ "$PROJECT:${SUBPROJECT:-}" = "ubuntu-core:system-image" ]; then if [ -e "binary/$INITFS/filesystem.dir" ]; then rootfs="binary/$INITFS/filesystem.dir" @@ -404,7 +436,7 @@ fi # ubuntu-core and ubuntu-desktop-next splits kernel stuff into a "device" tarball so # at this point we reset it to "none" as all the work to extract it was done already # in a binary hook -case $PROJECT:$SUBPROJECT in +case $PROJECT:${SUBPROJECT:-} in ubuntu-core:system-image|ubuntu-desktop-next:system-image) # create device tarball (for snappy only atm) diff --git a/live-build/auto/config b/live-build/auto/config index 34ea8ec7..afeca134 100755 --- a/live-build/auto/config +++ b/live-build/auto/config @@ -107,7 +107,7 @@ add_binary_hook () } if [ -z "${IMAGEFORMAT:-}" ]; then - case $PROJECT:$SUBPROJECT in + case $PROJECT:${SUBPROJECT:-} in ubuntu-cpc:*) IMAGEFORMAT=ext4 ;; @@ -121,7 +121,7 @@ case $IMAGEFORMAT in ext2|ext3|ext4) OPTS="${OPTS:+$OPTS }--initramfs none --chroot-filesystem $IMAGEFORMAT" PREINSTALLED=true - case $SUBPROJECT in + case ${SUBPROJECT:-} in wubi) add_package install lupin-support COMPONENTS='main restricted universe multiverse' @@ -140,7 +140,7 @@ case $IMAGEFORMAT in plain) INITRAMFS_TYPE=none - case $PROJECT:$SUBPROJECT in + case $PROJECT:${SUBPROJECT:-} in ubuntu-server:live) add_package live lupin-casper INITRAMFS_TYPE=auto @@ -238,7 +238,7 @@ esac SIGNED_KERNEL_PACKAGE="linux-signed-generic" -if [ "$SUBPROJECT" = minimize ]; then +if [ "${SUBPROJECT:-}" = minimized ]; then OPTS="${OPTS:+$OPTS }--bootstrap-flavour=minimal" fi @@ -265,7 +265,7 @@ case $PROJECT in # CDIMAGE_PREINSTALLED is not passed from build.py # and PREINSTALLED means something different. So # we use SUBPROJECT to pass on the information - if [ "$SUBPROJECT" = "system-image" ]; then + if [ "${SUBPROJECT:-}" = "system-image" ]; then OPTS="${OPTS:+$OPTS }--linux-packages=linux-image" fi ;; @@ -419,7 +419,7 @@ case $PROJECT in ubuntu-server) add_task install minimal - case $SUBPROJECT in + case ${SUBPROJECT:-} in live) add_task install standard add_task install server @@ -510,7 +510,7 @@ case $PROJECT in # SUBPROJECT, but it's a handy thing that launchpad-buildd # already passes through to us that we weren't otherwise # using here. - case $SUBPROJECT in + case ${SUBPROJECT:-} in ubuntu-rtm/dogfood) MIRROR=http://derived-archive.dogfood.content.paddev.net/ubuntu-rtm/ OPTS="${OPTS:+$OPTS }--apt-secure false" @@ -528,7 +528,7 @@ case $PROJECT in ;; ubuntu-cpc) - if [ "$SUBPROJECT" = minimize ]; then + if [ "${SUBPROJECT:-}" = minimized ]; then add_task install cloud-image add_package install sudo else @@ -638,7 +638,7 @@ case $ARCH in ;; esac -case $PROJECT:$SUBPROJECT in +case $PROJECT:${SUBPROJECT:-} in ubuntu-server:live) ;; ubuntu-server:*|ubuntu-base:*|ubuntu-touch:*|ubuntu-touch-custom:*) @@ -662,7 +662,7 @@ case $PROJECT in ;; esac -case $SUBPROJECT in +case ${SUBPROJECT:-} in wubi) add_binary_hook build-wubildr ;; @@ -688,10 +688,10 @@ lb config noauto \ "$@" echo "LB_CHROOT_HOOKS=\"$CHROOT_HOOKS\"" >> config/chroot -echo "SUBPROJECT=\"$SUBPROJECT\"" >> config/chroot +echo "SUBPROJECT=\"${SUBPROJECT:-}\"" >> config/chroot echo "LB_BINARY_HOOKS=\"$BINARY_HOOKS\"" >> config/binary echo "BUILDSTAMP=\"$NOW\"" >> config/binary -echo "SUBPROJECT=\"$SUBPROJECT\"" >> config/binary +echo "SUBPROJECT=\"${SUBPROJECT:-}\"" >> config/binary case $ARCH+$SUBARCH in armhf+raspi2) @@ -768,7 +768,7 @@ EOF ;; esac -if [ $PROJECT = ubuntu-server ] && [ $SUBPROJECT != live ]; then +if [ $PROJECT = ubuntu-server ] && [ ${SUBPROJECT:-} != live ]; then cat > config/hooks/100-remove-fstab.chroot <> mountpoint/etc/default/grub.d/40-force-partuuid diff --git a/live-build/ubuntu-cpc/hooks/033-disk-image-uefi.binary b/live-build/ubuntu-cpc/hooks/033-disk-image-uefi.binary index 5827a6fe..932484ea 100755 --- a/live-build/ubuntu-cpc/hooks/033-disk-image-uefi.binary +++ b/live-build/ubuntu-cpc/hooks/033-disk-image-uefi.binary @@ -62,7 +62,7 @@ install_grub() { efi_boot_dir="/boot/efi/EFI/BOOT" chroot mountpoint mkdir -p "${efi_boot_dir}" - if [ "$SUBPROJECT" = minimize ] && [ -n "$partuuid" ]; then + if [ "${SUBPROJECT:-}" = minimized ] && [ -n "$partuuid" ]; then # FIXME: code duplicated between 032-disk-image.binary # and 033-disk-image-uefi.binary. We want to fix this to not # have initramfs-tools installed at all on these images. diff --git a/live-build/ubuntu-cpc/hooks/999-cpc-fixes.chroot b/live-build/ubuntu-cpc/hooks/999-cpc-fixes.chroot index d1fc8abf..e59e38c8 100755 --- a/live-build/ubuntu-cpc/hooks/999-cpc-fixes.chroot +++ b/live-build/ubuntu-cpc/hooks/999-cpc-fixes.chroot @@ -59,7 +59,7 @@ _xchroot "${rootd}" sh -c 'sed -i "/^127.0.1.1/d" /etc/hosts' _xchroot "${rootd}" sh -c 'rm -f /etc/ssh/ssh_host_[rd]sa_key*' ## -------------- -if [ "${SUBPROJECT:-}" != minimize ]; then +if [ "${SUBPROJECT:-}" != minimized ]; then _xchroot "${rootd}" locale-gen en_US.utf8 fi