diff --git a/live-build/auto/build b/live-build/auto/build index 80499b9b..c974a122 100755 --- a/live-build/auto/build +++ b/live-build/auto/build @@ -551,7 +551,7 @@ fi # '--initramfs none' produces different manifest names. if [ -e "binary/$INITFS/filesystem.packages" ]; then - /build/config/snap_seed_parse ${CHROOT_ROOT} >> "binary/${INITFS}/filesystem.packages" + /build/config/snap_seed_parse "chroot/" >> "binary/${INITFS}/filesystem.packages" ln "binary/$INITFS/filesystem.packages" "$PREFIX.manifest" chmod 644 "$PREFIX.manifest" fi diff --git a/live-build/functions b/live-build/functions index 0295dc47..37fb8902 100644 --- a/live-build/functions +++ b/live-build/functions @@ -46,9 +46,12 @@ create_empty_disk_image() { create_manifest() { local chroot_root=${1} local target_file=${2} + (echo "create_manifest chroot_root: ${chroot_root}") dpkg-query --show --admindir="${chroot_root}/var/lib/dpkg" > ${target_file} - (>&2 echo "create_manifest chroot_root: ${chroot_root}") + (echo "create_manifest call to dpkg-query finished.") /build/config/snap_seed_parse "${chroot_root}" >> ${target_file} + (echo "create_manifest call to snap_seed_parse finished.") + (echo "create_manifest finished") } make_ext4_partition() { diff --git a/live-build/snap_seed_parse.py b/live-build/snap_seed_parse.py index b8de1df3..7111f854 100755 --- a/live-build/snap_seed_parse.py +++ b/live-build/snap_seed_parse.py @@ -20,30 +20,33 @@ log("Parsing seed.yaml") CHROOT_ROOT = sys.argv[1] if len(sys.argv) > 1 and len(sys.argv[1]) > 0 \ else '' '''The chroot rooth path should be passed in by the caller''' -log("CHROOT_ROOT: {}".format(CHROOT_ROOT)) +log("CHROOT_ROOT: {}".format(CHROOT_ROOT)) if len(CHROOT_ROOT) > 0 and CHROOT_ROOT[-1] == '/': CHROOT_ROOT = CHROOT_ROOT[:-1] +'''Trim any trailing slashes for correct appending''' + YAML_PATH = CHROOT_ROOT + '/var/lib/snapd/seed/seed.yaml' '''This is where we expect to find the seed.yaml file''' + LINE_PREFIX = 'snap:' '''Snaps are prepended with this string in the manifest''' log("yaml path: {}".format(YAML_PATH)) if not os.path.isfile(YAML_PATH): - log("yaml path not found.") - exit(1) + '''Exit gracefully and issue a warning if seeded snaps not found''' + log("WARNING: yaml path not found; no seeded snaps found.") + exit(0) else: log("yaml path found.") -# Open the seed.yaml and ingest its contents with open(YAML_PATH, 'r') as fh: + '''Open the seed.yaml and ingest its contents''' yaml_lines = yaml.load(fh)['snaps'] to_write = '' -# Loop over dict items, generating one manifest line from each -# triplet for item in yaml_lines: + '''Loop over dict items, generating one manifest line from each triplet''' filestring = item['file'] revision = filestring[filestring.rindex('_')+1:] revision = re.sub(r'[^0-9]', '', revision) @@ -53,5 +56,5 @@ for item in yaml_lines: revision, ) -# write accumulated text to stdout for redirection print(to_write.strip('\n')) +'''write accumulated text to stdout for redirection'''