@@ -59,7 +59,7 @@ create_prod_sysext() {
59
59
# Pass the build ID extracted from root FS to build_sysext. This prevents common.sh
60
60
# in build_sysext to generate a (timestamp based) build ID during a DEV build of a
61
61
# 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" \
63
63
--board=" ${BOARD} " \
64
64
--image_builddir=" ${workdir} /sysext-build" \
65
65
--squashfs_base=" ${base_sysext} " \
@@ -94,6 +94,14 @@ sysext_mountdir="${BUILD_DIR}/prod-sysext-work/mounts"
94
94
sysext_base=" ${sysext_workdir} /base-os.squashfs"
95
95
96
96
function 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
+
97
105
sudo umount " ${sysext_mountdir} " /* || true
98
106
rm -rf " ${sysext_workdir} " || true
99
107
}
@@ -111,6 +119,7 @@ sudo mksquashfs "${root_fs_dir}" "${sysext_base}" -noappend -xattrs-exclude '^bt
111
119
# for combined overlay later.
112
120
prev_pkginfo=" "
113
121
sysext_lowerdirs=" ${sysext_mountdir} /rootfs-lower"
122
+ mkdir -p " ${sysext_mountdir} "
114
123
for sysext in ${sysexts_list// ,/ } ; do
115
124
# format is "<name>:<group>/<package>"
116
125
name=" ${sysext% |* } "
@@ -124,12 +133,21 @@ for sysext in ${sysexts_list//,/ }; do
124
133
" ${grp_pkg} " \
125
134
" ${prev_pkginfo} "
126
135
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"
133
151
134
152
sysext_lowerdirs=" ${sysext_lowerdirs} :${sysext_mountdir} /${name} "
135
153
sysext_lowerdirs=" ${sysext_lowerdirs} :${sysext_mountdir} /${name} _pkginfo"
0 commit comments