mirror of
https://git.launchpad.net/livecd-rootfs
synced 2025-02-23 11:21:12 +00:00
Merge lp:~rbalint/livecd-rootfs/minimized
This commit is contained in:
commit
4561f17d35
12
debian/changelog
vendored
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
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,
|
||||
|
4
debian/tests/control
vendored
4
debian/tests/control
vendored
@ -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
|
||||
|
1
debian/tests/default-bootstraps
vendored
1
debian/tests/default-bootstraps
vendored
@ -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::
|
||||
|
3
debian/tests/minimized
vendored
Normal file
3
debian/tests/minimized
vendored
Normal file
@ -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…
x
Reference in New Issue
Block a user