@@ -63,7 +63,7 @@ create_prod_sysext() {
6363 # The --install_root_basename="${name}-base-sysext-rootfs" flag is
6464 # important - it sets the name of a rootfs directory, which is used
6565 # to determine the package target in coreos/base/profile.bashrc
66- sudo " FLATCAR_BUILD_ID=$FLATCAR_BUILD_ID " " ${SCRIPTS_DIR} /build_sysext" \
66+ sudo -E " FLATCAR_BUILD_ID=$FLATCAR_BUILD_ID " " ${SCRIPTS_DIR} /build_sysext" \
6767 --board=" ${BOARD} " \
6868 --image_builddir=" ${workdir} /sysext-build" \
6969 --squashfs_base=" ${base_sysext} " \
@@ -99,6 +99,14 @@ sysext_mountdir="${BUILD_DIR}/prod-sysext-work/mounts"
9999sysext_base=" ${sysext_workdir} /base-os.squashfs"
100100
101101function cleanup() {
102+ IFS=' :' read -r -a mounted_sysexts <<< " $sysext_lowerdirs"
103+ # skip the rootfs
104+ mounted_sysexts=(" ${mounted_sysexts[@]: 1} " )
105+
106+ for sysext in " ${mounted_sysexts[@]} " ; do
107+ sudo systemd-dissect --umount --rmdir " $sysext "
108+ done
109+
102110 sudo umount " ${sysext_mountdir} " /* || true
103111 rm -rf " ${sysext_workdir} " || true
104112}
@@ -116,6 +124,7 @@ sudo mksquashfs "${root_fs_dir}" "${sysext_base}" -noappend -xattrs-exclude '^bt
116124# for combined overlay later.
117125prev_pkginfo=" "
118126sysext_lowerdirs=" ${sysext_mountdir} /rootfs-lower"
127+ mkdir -p " ${sysext_mountdir} "
119128for sysext in ${sysexts_list// ,/ } ; do
120129 # format is "<name>:<group>/<package>"
121130 name=" ${sysext% |* } "
@@ -129,12 +138,21 @@ for sysext in ${sysexts_list//,/ }; do
129138 " ${grp_pkg} " \
130139 " ${prev_pkginfo} "
131140
132- mkdir -p " ${sysext_mountdir} /${name} " \
133- " ${sysext_mountdir} /${name} _pkginfo"
134- sudo mount -rt squashfs -o loop,nodev " ${sysext_output_dir} /${name} .raw" \
135- " ${sysext_mountdir} /${name} "
136- sudo mount -rt squashfs -o loop,nodev " ${sysext_output_dir} /${name} _pkginfo.raw" \
137- " ${sysext_mountdir} /${name} _pkginfo"
141+ sudo systemd-dissect \
142+ --read-only \
143+ --mount \
144+ --mkdir \
145+ --image-policy=' root=encrypted+unprotected+absent:usr=encrypted+unprotected+absent' \
146+ " ${sysext_output_dir} /${name} .raw" \
147+ " ${sysext_mountdir} /${name} "
148+
149+ sudo systemd-dissect \
150+ --read-only \
151+ --mount \
152+ --mkdir \
153+ --image-policy=' root=encrypted+unprotected+absent:usr=encrypted+unprotected+absent' \
154+ " ${sysext_output_dir} /${name} _pkginfo.raw" \
155+ " ${sysext_mountdir} /${name} _pkginfo"
138156
139157 sysext_lowerdirs=" ${sysext_lowerdirs} :${sysext_mountdir} /${name} "
140158 sysext_lowerdirs=" ${sysext_lowerdirs} :${sysext_mountdir} /${name} _pkginfo"
0 commit comments