diff --git a/diskimage_builder/elements/centos/element-deps b/diskimage_builder/elements/centos/element-deps index 57b194ac3..b13647d21 100644 --- a/diskimage_builder/elements/centos/element-deps +++ b/diskimage_builder/elements/centos/element-deps @@ -1,5 +1,4 @@ cache-url -dib-run-parts redhat-common rpm-distro yum diff --git a/diskimage_builder/elements/centos7/element-deps b/diskimage_builder/elements/centos7/element-deps index c6e5925f9..1bc6150a9 100644 --- a/diskimage_builder/elements/centos7/element-deps +++ b/diskimage_builder/elements/centos7/element-deps @@ -1,5 +1,4 @@ cache-url -dib-run-parts redhat-common rpm-distro source-repositories diff --git a/diskimage_builder/elements/debootstrap/element-deps b/diskimage_builder/elements/debootstrap/element-deps index 594d0d353..0dd8a43b0 100644 --- a/diskimage_builder/elements/debootstrap/element-deps +++ b/diskimage_builder/elements/debootstrap/element-deps @@ -1,3 +1,2 @@ -dib-run-parts dpkg pkg-map diff --git a/diskimage_builder/elements/dib-run-parts/README.rst b/diskimage_builder/elements/dib-run-parts/README.rst index d5e02599a..bf3852e64 100644 --- a/diskimage_builder/elements/dib-run-parts/README.rst +++ b/diskimage_builder/elements/dib-run-parts/README.rst @@ -2,9 +2,21 @@ dib-run-parts ============= -Install ``dib-run-parts`` into the chroot environment +.. warning:: -Currently this element copies the ``dib-run-parts`` used by -diskimage-builder outside the chroot to inside. However, note while -the interface remains the same this element may be provided in future -with a different interface. + This element is deprecated and is left only for compatability. + Please read the notes. + +This element install the ``dib-utils`` package to provide +``dib-run-parts``. + +Previously this element was a part of most base images and copied the +internal version of ``dib-run-parts`` to ``/usr/local/bin`` during the +build. Due to a (longstanding) oversight this was never removed and +stayed in the final image. The image build process now uses a private +copy of ``dib-run-parts`` during the build, so this element has become +deprecated. + +For compatability this element simply installs the ``dib-utils`` +package, which will provide ``dib-run-parts``. However, this is +probably better expressed as a dependency in individual elements. diff --git a/diskimage_builder/elements/dib-run-parts/package-installs.yaml b/diskimage_builder/elements/dib-run-parts/package-installs.yaml new file mode 100644 index 000000000..fbeb930b1 --- /dev/null +++ b/diskimage_builder/elements/dib-run-parts/package-installs.yaml @@ -0,0 +1 @@ +dib-utils: \ No newline at end of file diff --git a/diskimage_builder/elements/dib-run-parts/root.d/90-base-dib-run-parts b/diskimage_builder/elements/dib-run-parts/root.d/90-base-dib-run-parts deleted file mode 100755 index 11586714b..000000000 --- a/diskimage_builder/elements/dib-run-parts/root.d/90-base-dib-run-parts +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then - set -x -fi -set -eu -set -o pipefail - -# Abort early if dib-run-parts is not found to prevent a meaningless -# error message from the subsequent install command -DIB_RUN_PARTS=${_LIB}/dib-run-parts - -if [ ! -f ${DIB_RUN_PARTS} ]; then - echo "Can't find dib-run-parts script!" -fi - -exec sudo install -m 0755 -o root -g root -D \ - $DIB_RUN_PARTS \ - $TARGET_ROOT/usr/local/bin/dib-run-parts diff --git a/diskimage_builder/elements/docker/element-deps b/diskimage_builder/elements/docker/element-deps deleted file mode 100644 index 64b9ac34f..000000000 --- a/diskimage_builder/elements/docker/element-deps +++ /dev/null @@ -1 +0,0 @@ -dib-run-parts diff --git a/diskimage_builder/elements/fedora/element-deps b/diskimage_builder/elements/fedora/element-deps index 3750f722b..25c3cea4d 100644 --- a/diskimage_builder/elements/fedora/element-deps +++ b/diskimage_builder/elements/fedora/element-deps @@ -1,5 +1,4 @@ cache-url -dib-run-parts dkms redhat-common rpm-distro diff --git a/diskimage_builder/elements/gentoo/element-deps b/diskimage_builder/elements/gentoo/element-deps index 15aa0f9cd..8937a3c5c 100644 --- a/diskimage_builder/elements/gentoo/element-deps +++ b/diskimage_builder/elements/gentoo/element-deps @@ -1,4 +1,3 @@ cache-url -dib-run-parts install-bin package-installs diff --git a/diskimage_builder/elements/opensuse/element-deps b/diskimage_builder/elements/opensuse/element-deps index 14ee0a470..89baf7316 100644 --- a/diskimage_builder/elements/opensuse/element-deps +++ b/diskimage_builder/elements/opensuse/element-deps @@ -1,4 +1,3 @@ cache-url -dib-run-parts package-installs zypper diff --git a/diskimage_builder/elements/rhel/element-deps b/diskimage_builder/elements/rhel/element-deps index 66b94cc87..d8ee15cea 100644 --- a/diskimage_builder/elements/rhel/element-deps +++ b/diskimage_builder/elements/rhel/element-deps @@ -1,5 +1,4 @@ cache-url -dib-run-parts rhel-common rpm-distro yum diff --git a/diskimage_builder/elements/rhel7/element-deps b/diskimage_builder/elements/rhel7/element-deps index 4f33c20e5..81585c438 100644 --- a/diskimage_builder/elements/rhel7/element-deps +++ b/diskimage_builder/elements/rhel7/element-deps @@ -1,5 +1,4 @@ cache-url -dib-run-parts redhat-common rhel-common rpm-distro diff --git a/diskimage_builder/elements/ubuntu-core/element-deps b/diskimage_builder/elements/ubuntu-core/element-deps index ca0451a09..4b609839b 100644 --- a/diskimage_builder/elements/ubuntu-core/element-deps +++ b/diskimage_builder/elements/ubuntu-core/element-deps @@ -1,4 +1,3 @@ cache-url -dib-run-parts dpkg ubuntu-common diff --git a/diskimage_builder/elements/ubuntu/element-deps b/diskimage_builder/elements/ubuntu/element-deps index d57d5e7eb..30890550e 100644 --- a/diskimage_builder/elements/ubuntu/element-deps +++ b/diskimage_builder/elements/ubuntu/element-deps @@ -1,6 +1,5 @@ cache-url cloud-init-datasources -dib-run-parts dkms dpkg ubuntu-common diff --git a/diskimage_builder/elements/yum-minimal/element-deps b/diskimage_builder/elements/yum-minimal/element-deps index d26d01154..ba3a453fb 100644 --- a/diskimage_builder/elements/yum-minimal/element-deps +++ b/diskimage_builder/elements/yum-minimal/element-deps @@ -1,4 +1,3 @@ -dib-run-parts redhat-common rpm-distro yum diff --git a/diskimage_builder/elements/zypper-minimal/element-deps b/diskimage_builder/elements/zypper-minimal/element-deps index 846428bd8..1344d3635 100644 --- a/diskimage_builder/elements/zypper-minimal/element-deps +++ b/diskimage_builder/elements/zypper-minimal/element-deps @@ -1,3 +1,2 @@ -dib-run-parts package-installs zypper diff --git a/diskimage_builder/lib/img-functions b/diskimage_builder/lib/img-functions index d7bee24cb..d14354387 100644 --- a/diskimage_builder/lib/img-functions +++ b/diskimage_builder/lib/img-functions @@ -82,13 +82,19 @@ function run_d_in_target () { if [ -d ${TMP_HOOKS_PATH}/$1.d ] ; then sudo mkdir $TMP_MOUNT_PATH/tmp/in_target.d sudo mount --bind ${TMP_HOOKS_PATH} $TMP_MOUNT_PATH/tmp/in_target.d + # Copy in dib-run-parts to run inside chroot. Note, in the + # future, we might like to use a diffrent dib-run-parts for + # running inside the chroot that doesn't rely on bash. For now + # they're the same. Note also this gets cleaned up with the dir + # delete below. + sudo cp ${DIB_RUN_PARTS} ${TMP_MOUNT_PATH}/tmp/in_target.d sudo mount -o remount,ro,bind ${TMP_HOOKS_PATH} $TMP_MOUNT_PATH/tmp/in_target.d check_break before-$1 run_in_target bash [ -z "$break_outside_target" ] && in_target_arg="run_in_target" || in_target_arg= trap "check_break after-error $in_target_arg ${break_cmd:-bash}" ERR # NOTE: this is the dib-run-parts copied into the chroot by the # dib-run-parts element. - run_in_target dib-run-parts /tmp/in_target.d/$1.d + run_in_target /tmp/in_target.d/dib-run-parts /tmp/in_target.d/$1.d trap - ERR check_break after-$1 run_in_target bash sudo umount -f $TMP_MOUNT_PATH/tmp/in_target.d diff --git a/releasenotes/notes/dib-run-parts-6f67d038aa5a4156.yaml b/releasenotes/notes/dib-run-parts-6f67d038aa5a4156.yaml new file mode 100644 index 000000000..760169036 --- /dev/null +++ b/releasenotes/notes/dib-run-parts-6f67d038aa5a4156.yaml @@ -0,0 +1,10 @@ +--- +deprecations: + - | + The ``dib-run-parts`` element is no longer required as + ``disk-image-create`` will directly source the internal version + for running scripts within the chroot. This element was + unintentionally leaving ``/usr/local/bin/dib-run-parts`` in the + built image. From code search we do not believe anyone was + relying on the presence of this script. If you do require it, you + should source the ``dib-utils`` package to install.