@@ -59,7 +59,7 @@ create_prod_sysext() {
5959 # Pass the build ID extracted from root FS to build_sysext. This prevents common.sh
6060 # in build_sysext to generate a (timestamp based) build ID during a DEV build of a
6161 # release tag (which breaks its version check).
62- sudo " FLATCAR_BUILD_ID=$FLATCAR_BUILD_ID " " ${SCRIPTS_DIR} /build_sysext" \
62+ sudo -E " FLATCAR_BUILD_ID=$FLATCAR_BUILD_ID " " ${SCRIPTS_DIR} /build_sysext" \
6363 --board=" ${BOARD} " \
6464 --image_builddir=" ${workdir} /sysext-build" \
6565 --squashfs_base=" ${base_sysext} " \
@@ -94,6 +94,14 @@ sysext_mountdir="${BUILD_DIR}/prod-sysext-work/mounts"
9494sysext_base=" ${sysext_workdir} /base-os.squashfs"
9595
9696function cleanup() {
97+ IFS=' :' read -r -a mounted_sysexts <<< " $sysext_lowerdirs"
98+ # skip the rootfs
99+ mounted_sysexts=(" ${mounted_sysexts[@]: 1} " )
100+
101+ for sysext in " ${mounted_sysexts[@]} " ; do
102+ sudo systemd-dissect --umount --rmdir " $sysext "
103+ done
104+
97105 sudo umount " ${sysext_mountdir} " /* || true
98106 rm -rf " ${sysext_workdir} " || true
99107}
@@ -111,6 +119,7 @@ sudo mksquashfs "${root_fs_dir}" "${sysext_base}" -noappend -xattrs-exclude '^bt
111119# for combined overlay later.
112120prev_pkginfo=" "
113121sysext_lowerdirs=" ${sysext_mountdir} /rootfs-lower"
122+ mkdir -p " ${sysext_mountdir} "
114123for sysext in ${sysexts_list// ,/ } ; do
115124 # format is "<name>:<group>/<package>"
116125 name=" ${sysext% |* } "
@@ -124,12 +133,21 @@ for sysext in ${sysexts_list//,/ }; do
124133 " ${grp_pkg} " \
125134 " ${prev_pkginfo} "
126135
127- mkdir -p " ${sysext_mountdir} /${name} " \
128- " ${sysext_mountdir} /${name} _pkginfo"
129- sudo mount -rt squashfs -o loop,nodev " ${sysext_output_dir} /${name} .raw" \
130- " ${sysext_mountdir} /${name} "
131- sudo mount -rt squashfs -o loop,nodev " ${sysext_output_dir} /${name} _pkginfo.raw" \
132- " ${sysext_mountdir} /${name} _pkginfo"
136+ sudo systemd-dissect \
137+ --read-only \
138+ --mount \
139+ --mkdir \
140+ --image-policy=' root=encrypted+unprotected+absent:usr=encrypted+unprotected+absent' \
141+ " ${sysext_output_dir} /${name} .raw" \
142+ " ${sysext_mountdir} /${name} "
143+
144+ sudo systemd-dissect \
145+ --read-only \
146+ --mount \
147+ --mkdir \
148+ --image-policy=' root=encrypted+unprotected+absent:usr=encrypted+unprotected+absent' \
149+ " ${sysext_output_dir} /${name} _pkginfo.raw" \
150+ " ${sysext_mountdir} /${name} _pkginfo"
133151
134152 sysext_lowerdirs=" ${sysext_lowerdirs} :${sysext_mountdir} /${name} "
135153 sysext_lowerdirs=" ${sysext_lowerdirs} :${sysext_mountdir} /${name} _pkginfo"
0 commit comments