@@ -63,7 +63,7 @@ create_prod_sysext() {
63
63
# The --install_root_basename="${name}-base-sysext-rootfs" flag is
64
64
# important - it sets the name of a rootfs directory, which is used
65
65
# 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" \
67
67
--board=" ${BOARD} " \
68
68
--image_builddir=" ${workdir} /sysext-build" \
69
69
--squashfs_base=" ${base_sysext} " \
@@ -99,6 +99,14 @@ sysext_mountdir="${BUILD_DIR}/prod-sysext-work/mounts"
99
99
sysext_base=" ${sysext_workdir} /base-os.squashfs"
100
100
101
101
function 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
+
102
110
sudo umount " ${sysext_mountdir} " /* || true
103
111
rm -rf " ${sysext_workdir} " || true
104
112
}
@@ -116,6 +124,7 @@ sudo mksquashfs "${root_fs_dir}" "${sysext_base}" -noappend -xattrs-exclude '^bt
116
124
# for combined overlay later.
117
125
prev_pkginfo=" "
118
126
sysext_lowerdirs=" ${sysext_mountdir} /rootfs-lower"
127
+ mkdir -p " ${sysext_mountdir} "
119
128
for sysext in ${sysexts_list// ,/ } ; do
120
129
# format is "<name>:<group>/<package>"
121
130
name=" ${sysext% |* } "
@@ -129,12 +138,21 @@ for sysext in ${sysexts_list//,/ }; do
129
138
" ${grp_pkg} " \
130
139
" ${prev_pkginfo} "
131
140
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"
138
156
139
157
sysext_lowerdirs=" ${sysext_lowerdirs} :${sysext_mountdir} /${name} "
140
158
sysext_lowerdirs=" ${sysext_lowerdirs} :${sysext_mountdir} /${name} _pkginfo"
0 commit comments