Imported 2.545

No reason for CPC update specified.
This commit is contained in:
CloudBuilder 2018-11-11 19:26:12 +00:00
parent c37d5f0434
commit bf046ff6e2
6 changed files with 54 additions and 27 deletions

13
debian/changelog vendored
View File

@ -1,3 +1,16 @@
livecd-rootfs (2.545) disco; urgency=medium
[ Dimitri John Ledkov ]
* Do not mount result, on top of lowerdir, appears to fail in
disco. Should unblock building server-live images in disco.
* Also strip duplicate \n from the below.
[ Cody Shepherd ]
* Fix snap-seed-parse to take filename argument instead of printing to
stdout
-- Dimitri John Ledkov <xnox@ubuntu.com> Fri, 09 Nov 2018 22:22:29 +0000
livecd-rootfs (2.544) disco; urgency=medium livecd-rootfs (2.544) disco; urgency=medium
[ Steve Langasek ] [ Steve Langasek ]

View File

@ -552,7 +552,7 @@ fi
# '--initramfs none' produces different manifest names. # '--initramfs none' produces different manifest names.
# NB! we want stdout appended to the manifest, yet stderr to be printed on stdout # NB! we want stdout appended to the manifest, yet stderr to be printed on stdout
if [ -e "binary/$INITFS/filesystem.packages" ]; then if [ -e "binary/$INITFS/filesystem.packages" ]; then
./config/snap-seed-parse "chroot/" 2>&1 >> "binary/${INITFS}/filesystem.packages" ./config/snap-seed-parse "chroot/" "binary/${INITFS}/filesystem.packages"
ln "binary/$INITFS/filesystem.packages" "$PREFIX.manifest" ln "binary/$INITFS/filesystem.packages" "$PREFIX.manifest"
chmod 644 "$PREFIX.manifest" chmod 644 "$PREFIX.manifest"
fi fi

View File

@ -50,7 +50,7 @@ create_manifest() {
echo "create_manifest chroot_root: ${chroot_root}" echo "create_manifest chroot_root: ${chroot_root}"
dpkg-query --show --admindir="${chroot_root}/var/lib/dpkg" > ${target_file} dpkg-query --show --admindir="${chroot_root}/var/lib/dpkg" > ${target_file}
echo "create_manifest call to dpkg-query finished." echo "create_manifest call to dpkg-query finished."
./config/snap-seed-parse "${chroot_root}" 2>&1 >> ${target_file} ./config/snap-seed-parse "${chroot_root}" "${target_file}"
echo "create_manifest call to snap_seed_parse finished." echo "create_manifest call to snap_seed_parse finished."
echo "create_manifest finished" echo "create_manifest finished"
} }

View File

@ -1,26 +1,35 @@
#!/usr/bin/python3 #!/usr/bin/python3
""" """
Usage: snap-seed-parse ${chroot_dir} > somefile.manifest Usage: snap-seed-parse [${chroot_dir}] <output file>
This script looks for a seed.yaml path in the given root directory, parsing This script looks for a seed.yaml path in the given root directory, parsing
it and printing generated manifest lines to stdout for easy redirection. it and appending the parsed lines to the given output file.
The $chroot_dir argument is optional and will default to the empty string.
""" """
import re import argparse
import sys
import yaml
import os.path import os.path
import re
import yaml
def log(msg): def log(msg):
sys.stderr.write("snap-seed-parse: {}\n".format(msg)) print("snap-seed-parse: {}".format(msg))
log("Parsing seed.yaml") log("Parsing seed.yaml")
CHROOT_ROOT = sys.argv[1] if len(sys.argv) > 1 and len(sys.argv[1]) > 0 \ parser = argparse.ArgumentParser()
else '' parser.add_argument('chroot', nargs='?', default='',
help='root dir for the chroot from which to generate the '
'manifest')
parser.add_argument('file', help='Output manifest to this file')
ARGS = parser.parse_args()
CHROOT_ROOT = ARGS.chroot
FNAME = ARGS.file
# Trim any trailing slashes for correct appending # Trim any trailing slashes for correct appending
log("CHROOT_ROOT: {}".format(CHROOT_ROOT)) log("CHROOT_ROOT: {}".format(CHROOT_ROOT))
@ -43,14 +52,17 @@ else:
with open(YAML_PATH, 'r') as fh: with open(YAML_PATH, 'r') as fh:
yaml_lines = yaml.safe_load(fh)['snaps'] yaml_lines = yaml.safe_load(fh)['snaps']
# Loop over dict items, outputting one manifest line from each triplet log('Writing manifest to {}'.format(FNAME))
for item in yaml_lines:
filestring = item['file'] with open(FNAME, 'a+') as fh:
# Pull the revision number off the file name for item in yaml_lines:
revision = filestring[filestring.rindex('_')+1:] filestring = item['file']
revision = re.sub(r'[^0-9]', '', revision) # Pull the revision number off the file name
print("{}{}\t{}\t{}".format(LINE_PREFIX, revision = filestring[filestring.rindex('_')+1:]
item['name'], revision = re.sub(r'[^0-9]', '', revision)
item['channel'], fh.write("{}{}\t{}\t{}\n".format(LINE_PREFIX,
revision, item['name'],
)) item['channel'],
revision,
))
log('Manifest output finished.')

View File

@ -40,7 +40,7 @@ mkdir -p "$OVERLAY_REGION_ROOT"
# RACK is on top of the regular squashfs # RACK is on top of the regular squashfs
mount_overlay "$SQUASH_ROOT/" "$OVERLAY_RACK_ROOT/" "$RACK_ROOT/" "RACK" mount_overlay "$SQUASH_ROOT/" "$OVERLAY_RACK_ROOT/" "$RACK_ROOT/"
setup_mountpoint $RACK_ROOT setup_mountpoint $RACK_ROOT
env DEBIAN_FRONTEND=noninteractive chroot $RACK_ROOT apt-get -y install maas-rack-controller env DEBIAN_FRONTEND=noninteractive chroot $RACK_ROOT apt-get -y install maas-rack-controller
@ -54,7 +54,7 @@ umount "$RACK_ROOT"
# Full MAAS (Region) is on top of the rack # Full MAAS (Region) is on top of the rack
# in overlayfs lowerdir are mounted right to left, colon separated # in overlayfs lowerdir are mounted right to left, colon separated
mount_overlay "$OVERLAY_RACK_ROOT/:$SQUASH_ROOT/" "$OVERLAY_REGION_ROOT/" "$REGION_ROOT/" "REGION" mount_overlay "$OVERLAY_RACK_ROOT/:$SQUASH_ROOT/" "$OVERLAY_REGION_ROOT/" "$REGION_ROOT/"
setup_mountpoint $REGION_ROOT setup_mountpoint $REGION_ROOT

View File

@ -24,15 +24,17 @@ fi
. config/functions . config/functions
. config/common . config/common
SQUASH_ROOT=binary/boot/squashfs.dir BOTTOM_ROOT=binary/boot/squashfs.dir
OVERLAY_ROOT=binary/overlay SQUASH_ROOT=binary/boot/squashfs-installer.dir
OVERLAY_ROOT=binary/overlay-installer
mkdir -p "$SQUASH_ROOT"
mkdir -p "$OVERLAY_ROOT" mkdir -p "$OVERLAY_ROOT"
# Create an installer squashfs layer # Create an installer squashfs layer
mount_overlay "$SQUASH_ROOT/" "$OVERLAY_ROOT/" "$SQUASH_ROOT/" mount_overlay "$BOTTOM_ROOT/" "$OVERLAY_ROOT/" "$SQUASH_ROOT/"
setup_mountpoint binary/boot/squashfs.dir setup_mountpoint $SQUASH_ROOT
# Override JobRunningTimeoutSec to 0s on the .device unit that # Override JobRunningTimeoutSec to 0s on the .device unit that
# subiquity_config.mount depends on to avoid a 5s delay on switching # subiquity_config.mount depends on to avoid a 5s delay on switching