File baseiso_post_run of Package baseiso-containment
#!/bin/bash
: ${TOPDIR:=/usr/src/packages}
set -e
set -u
BUILD_DIR=/usr/lib/build
BUILD_DISTURL=
# To get BUILD_DISTURL
test -f /.buildenv && . /.buildenv
IMAGE_DIR=/usr/src/packages/KIWI
[ -d $IMAGE_DIR ] || exit 0
cd $IMAGE_DIR
# Setting default for SPEC_IN
SPEC_IN=$BUILD_DIR/baseiso.spec.in
# Overwrite default for SPEC_IN if _image.spec.in
# exists in sources dir
if [ -f $TOPDIR/SOURCES/baseiso.spec.in ];then
SPEC_IN=$TOPDIR/SOURCES/baseiso.spec.in
fi
echo "Using $SPEC_IN as spec file template"
ARCH="$(uname -m)"
# We filter here currently only for agama-installer until we
# have a clean way to specify it in kiwi build descriptions.
# Alternative is that kiwi bundler get the containment
# functionality. Needs to be discussed.
set +e # we have set -e, so on Minimal VMs this needs to fail silently
iso_file=`ls -1 /usr/src/packages/KIWI/agama-installer*.iso 2>/dev/null`
pxe_file=`ls -1 /usr/src/packages/KIWI/agama-installer*.install.tar 2>/dev/null`
set -e
# nothing to do for us
if [ -z "$iso_file" ] && [ -z "$pxe_file" ]; then
exit 0
fi
if [ -n "$pxe_file" ]; then
PXEBOOT_BCOND="--with pxeboot"
else
PXEBOOT_BCOND="--without pxeboot"
fi
if [ -n "$iso_file" ]; then
main_file=${iso_file##*/}
else
main_file=${pxe_file##*/}
fi
iso_name=${main_file%.$ARCH*}
iso_version=${main_file#*$ARCH-}
iso_version=${iso_version%.iso}
iso_version=${iso_version%.tar}
iso_build=${iso_version##*-Build}
iso_version=${iso_version%-Build*}
iso_flavor=${iso_version#*-}
iso_version=${iso_version%-*}
IMAGE=$iso_name
[ -n "$iso_flavor" ] && FLAVOR=-$iso_flavor
shopt -s nullglob
shopt -s extglob
echo "Attempting to wrap $IMAGE in a containment rpm ..."
sed -e "s@__NAME__@$iso_name@g" \
-e "s@__FLAVOR__@$FLAVOR@g" \
-e "s@__VERSION__@$iso_version@g" \
-e "s@__RELEASE__@$iso_build@g" \
< $SPEC_IN \
> $BUILD_DIR/image.spec
# Copy image changelog required for reproducible builds timestamps
cp -v $TOPDIR/SOURCES/*.changes $BUILD_DIR/image.changes
if [ -z "$BUILD_DISTURL" ]; then
rpmbuild --target $ARCH -ba $PXEBOOT_BCOND $BUILD_DIR/image.spec
else
rpmbuild --target $ARCH -ba $PXEBOOT_BCOND --define "disturl $BUILD_DISTURL" $BUILD_DIR/image.spec
fi
# required for the BS to find the rpm, because it is
# a "non-standard result file for KIWI"
mkdir -p $TOPDIR/OTHER
mv $TOPDIR/RPMS/$ARCH/baseiso-$iso_name$FLAVOR-$iso_version-$iso_build.$ARCH.rpm $TOPDIR/OTHER/
if [ -e $TOPDIR/RPMS/noarch/tftpboot-$iso_name$FLAVOR-$ARCH-$iso_version-$iso_build.noarch.rpm ]; then
mv $TOPDIR/RPMS/noarch/tftpboot-$iso_name$FLAVOR-$ARCH-$iso_version-$iso_build.noarch.rpm $TOPDIR/OTHER/
fi
mv $TOPDIR/SRPMS/baseiso-$iso_name$FLAVOR-$iso_version-$iso_build.src.rpm $TOPDIR/OTHER/