From: Zoltán Felleg Date: Tue, 19 May 2026 10:41:22 +0000 (+0200) Subject: Updated scripts/c3.sh (added host specific c3d file handling). X-Git-Url: http://git.useribm.hu/?a=commitdiff_plain;h=857668cb171ebf1f7f15b69cb8e3e832e92de27d;p=user-lxc.git Updated scripts/c3.sh (added host specific c3d file handling). --- diff --git a/scripts/c3.sh b/scripts/c3.sh index 2e34dea..bb72304 100755 --- a/scripts/c3.sh +++ b/scripts/c3.sh @@ -61,7 +61,8 @@ copy_and_install() if [ "$FSTYPE" = "btrfs" ] then # each container modifies its own version - cp --archive $BASE_CONTAINER_PATH/rootfs/* $CONTAINER_BUILDROOT + cp --archive --reflink=always \ + $BASE_CONTAINER_PATH/rootfs/* $CONTAINER_BUILDROOT else for FQ_DIRECTORY in $BASE_CONTAINER_PATH/rootfs/* do @@ -123,6 +124,8 @@ copy_and_install() --releasever=$DNF_RELEASEVER \ install $SPEC_PACKAGES fi + dnf --installroot=$CONTAINER_BUILDROOT \ + list --installed >$CONTAINER_BUILDROOT/c3d/rpm.list dnf --assumeyes \ --config=$DNF_CONFIG \ --disablerepo=* \ @@ -231,16 +234,29 @@ populate_c3d() { echo "Creating and populating the container creation and configuration directory." - if [ -d $CONTAINER_SOURCE_PATH/c3d ] + if [ ! -d $CONTAINER_SOURCE_PATH/c3d ] then - cp --archive $CONTAINER_SOURCE_PATH/c3d $CONTAINER_BUILDROOT - find $CONTAINER_BUILDROOT/c3d -type d -print0 \ - | xargs --null chmod 755 - find $CONTAINER_BUILDROOT/c3d -type f -print0 \ - | xargs --null chmod 644 - chown --recursive root:root $CONTAINER_BUILDROOT/c3d + echo "No container creation and configuration directory, exiting." >&2 fi + cp --archive $CONTAINER_SOURCE_PATH/c3d $CONTAINER_BUILDROOT + find $CONTAINER_BUILDROOT/c3d -type d -print0 \ + | xargs --null chmod 755 + find $CONTAINER_BUILDROOT/c3d -type f -print0 \ + | xargs --null chmod 644 + chown --recursive root:root $CONTAINER_BUILDROOT/c3d + + TMP_FILE=$(mktemp) + find $CONTAINER_BUILDROOT/c3d -type f -name "*.$SHORT_HOSTNAME" >$TMP_FILE + cat $TMP_FILE | while read HOST_SPECIFIC_FQ_FILENAME + do + FQ_PATH=$(dirname $HOST_SPECIFIC_FQ_FILENAME) + GENERAL_FILENAME=$(basename $HOST_SPECIFIC_FQ_FILENAME .$SHORT_HOSTNAME) + mv $HOST_SPECIFIC_FQ_FILENAME $FQ_PATH/$GENERAL_FILENAME + rm --force $FQ_PATH/${GENERAL_FILENAME}.* + done + rm --force $TMP_FILE + MODE_LIST=$CONTAINER_BUILDROOT/c3d/mode.txt if [ -f $MODE_LIST ] then @@ -453,7 +469,7 @@ postinstall() RC=$? if [ $RC -ne 0 ] then - echo "File checksums differ, exiting" >&2 + echo "File checksums differ, exiting." >&2 umount $CONTAINER_BUILDROOT/dev umount $CONTAINER_BUILDROOT/proc umount $CONTAINER_BUILDROOT/sys @@ -634,6 +650,11 @@ create_environment_file create_and_populate_build_path populate_c3d +RC=$? +if [ $RC -ne 0 ] +then + exit $RC +fi preinstall