Merge lp:~rbalint/livecd-rootfs/minimized

ubuntu/artful
Steve Langasek 7 years ago
commit 4561f17d35

12
debian/changelog vendored

@ -1,3 +1,15 @@
livecd-rootfs (2.463) UNRELEASED; urgency=medium
* 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 ""
-- Balint Reczey <rbalint@ubuntu.com> 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.

2
debian/control vendored

@ -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,

@ -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

@ -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::

@ -0,0 +1,3 @@
#!/bin/bash
env SELECTED_TRIPLETS=ubuntu-cpc:minimized:ubuntu-cpc debian/tests/default-bootstraps

@ -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 <<EOF
@ -78,6 +78,22 @@ EOF
set -e
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 "This script restores the content and packages that are found on a default"
echo "Ubuntu server system."
echo ""
echo "Reinstallation of packages may fail due to changes to the system"
echo "configuration, the presence of third-party packages, or for other"
echo "reasons."
read -p "Would you like to continue? [y/N]" REPLY
echo # (optional) move to a new line
if [ "$REPLY" != "y" ] && [ "$REPLY" != "Y" ]
then
exit 1
fi
if [ -f /etc/dpkg/dpkg.cfg.d/excludes ] || [ -f /etc/dpkg/dpkg.cfg.d/excludes.dpkg-tmp ]; then
echo "Re-enabling installation of all documentation in dpkg..."
if [ -f /etc/dpkg/dpkg.cfg.d/excludes ]; then
@ -114,10 +130,26 @@ if ! dpkg-query --show --showformat='${db:Status-Status}\n' ubuntu-minimal 2> /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)

@ -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 <<EOF
#! /bin/sh
rm -f /etc/fstab
@ -804,7 +804,7 @@ EOF
config/archives/proposed.list.binary
fi
case $PROJECT:$SUBPROJECT in
case $PROJECT:${SUBPROJECT:-} in
*-dvd:*)
. config/bootstrap
@ -890,7 +890,7 @@ EOF
fi
fi
case $SUBPROJECT in
case ${SUBPROJECT:-} in
ubuntu-rtm|ubuntu-rtm/*)
# debootstrap doesn't know about ubuntu-rtm series directly. Rather
# than having to teach it, we employ a few hacks to make it use the

@ -121,7 +121,7 @@ if [ "${should_install_grub}" -eq 1 ]; then
rm mountpoint/tmp/device.map
if [ "$SUBPROJECT" = minimize ] && [ -n "$partuuid" ]; then
if [ "${SUBPROJECT:-}" = minimized ] && [ -n "$partuuid" ]; then
echo "partuuid found for root device; forcing it in Grub"
mkdir -p mountpoint/etc/default/grub.d
echo "GRUB_FORCE_PARTUUID=$partuuid" >> mountpoint/etc/default/grub.d/40-force-partuuid

@ -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.

@ -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

Loading…
Cancel
Save