Message ID | 20211012130413.1719424-3-adriaan.schmidt@siemens.com |
---|---|
State | RFC |
Headers | show |
Series | Refactor mount logic | expand |
On 12.10.21 15:04, Adriaan Schmidt wrote: > Don't unmount, but instead use "stay on one filesystem" options > ...which works because there are no bind mounts involved. BTW, providing a "why" (e.g. "simpler") would be good for any commit message. Jan > Signed-off-by: Adriaan Schmidt <adriaan.schmidt@siemens.com> > --- > meta/classes/image-container-extension.bbclass | 3 ++- > meta/classes/image-sdk-extension.bbclass | 6 +----- > 2 files changed, 3 insertions(+), 6 deletions(-) > > diff --git a/meta/classes/image-container-extension.bbclass b/meta/classes/image-container-extension.bbclass > index e26604a..762be4a 100644 > --- a/meta/classes/image-container-extension.bbclass > +++ b/meta/classes/image-container-extension.bbclass > @@ -19,6 +19,7 @@ containerize_rootfs() { > # prepare OCI container image skeleton > bbdebug 1 "prepare OCI container image skeleton" > rm -rf "${oci_img_dir}" > + > sudo umoci init --layout "${oci_img_dir}" > sudo umoci new --image "${oci_img_dir}:${empty_tag}" > sudo umoci config --image "${oci_img_dir}:${empty_tag}" \ > @@ -27,7 +28,7 @@ containerize_rootfs() { > "${oci_img_dir}_unpacked" > > # add root filesystem as the flesh of the skeleton > - sudo cp -a "${rootfs}"/* "${oci_img_dir}_unpacked/rootfs/" > + sudo sh -c "tar --one-file-system -C \"${rootfs}\" -cpf - . | tar -C \"${oci_img_dir}_unpacked/rootfs\" --strip-components=1 -xpf -" > # clean-up temporary files > sudo find "${oci_img_dir}_unpacked/rootfs/tmp" -mindepth 1 -delete > > diff --git a/meta/classes/image-sdk-extension.bbclass b/meta/classes/image-sdk-extension.bbclass > index 426b925..2cc5933 100644 > --- a/meta/classes/image-sdk-extension.bbclass > +++ b/meta/classes/image-sdk-extension.bbclass > @@ -33,15 +33,11 @@ do_populate_sdk() { > sudo rm -f ${SDKCHROOT_DIR}/etc/apt/sources.list.d/isar-apt.list > fi > > - sudo umount -R ${SDKCHROOT_DIR}/dev || true > - sudo umount ${SDKCHROOT_DIR}/proc || true > - sudo umount -R ${SDKCHROOT_DIR}/sys || true > - > # Remove setup scripts > sudo rm -f ${SDKCHROOT_DIR}/chroot-setup.sh ${SDKCHROOT_DIR}/configscript.sh > > # Make all links relative > - for link in $(find ${SDKCHROOT_DIR}/ -type l); do > + for link in $(find ${SDKCHROOT_DIR}/ -type l -xdev); do > target=$(readlink $link) > > if [ "${target#/}" != "${target}" ]; then >
diff --git a/meta/classes/image-container-extension.bbclass b/meta/classes/image-container-extension.bbclass index e26604a..762be4a 100644 --- a/meta/classes/image-container-extension.bbclass +++ b/meta/classes/image-container-extension.bbclass @@ -19,6 +19,7 @@ containerize_rootfs() { # prepare OCI container image skeleton bbdebug 1 "prepare OCI container image skeleton" rm -rf "${oci_img_dir}" + sudo umoci init --layout "${oci_img_dir}" sudo umoci new --image "${oci_img_dir}:${empty_tag}" sudo umoci config --image "${oci_img_dir}:${empty_tag}" \ @@ -27,7 +28,7 @@ containerize_rootfs() { "${oci_img_dir}_unpacked" # add root filesystem as the flesh of the skeleton - sudo cp -a "${rootfs}"/* "${oci_img_dir}_unpacked/rootfs/" + sudo sh -c "tar --one-file-system -C \"${rootfs}\" -cpf - . | tar -C \"${oci_img_dir}_unpacked/rootfs\" --strip-components=1 -xpf -" # clean-up temporary files sudo find "${oci_img_dir}_unpacked/rootfs/tmp" -mindepth 1 -delete diff --git a/meta/classes/image-sdk-extension.bbclass b/meta/classes/image-sdk-extension.bbclass index 426b925..2cc5933 100644 --- a/meta/classes/image-sdk-extension.bbclass +++ b/meta/classes/image-sdk-extension.bbclass @@ -33,15 +33,11 @@ do_populate_sdk() { sudo rm -f ${SDKCHROOT_DIR}/etc/apt/sources.list.d/isar-apt.list fi - sudo umount -R ${SDKCHROOT_DIR}/dev || true - sudo umount ${SDKCHROOT_DIR}/proc || true - sudo umount -R ${SDKCHROOT_DIR}/sys || true - # Remove setup scripts sudo rm -f ${SDKCHROOT_DIR}/chroot-setup.sh ${SDKCHROOT_DIR}/configscript.sh # Make all links relative - for link in $(find ${SDKCHROOT_DIR}/ -type l); do + for link in $(find ${SDKCHROOT_DIR}/ -type l -xdev); do target=$(readlink $link) if [ "${target#/}" != "${target}" ]; then
Don't unmount, but instead use "stay on one filesystem" options Signed-off-by: Adriaan Schmidt <adriaan.schmidt@siemens.com> --- meta/classes/image-container-extension.bbclass | 3 ++- meta/classes/image-sdk-extension.bbclass | 6 +----- 2 files changed, 3 insertions(+), 6 deletions(-)