Diffstat (limited to 'kiwi-build')
| -rwxr-xr-x | kiwi-build | 57 |
1 files changed, 19 insertions, 38 deletions
@@ -6,78 +6,59 @@ set -eu -o pipefail kiwibuildsh="$(basename "$0")" -kiwibuild_scriptdir="$(dirname "$0")" usage() { - echo >&2 "usage: $kiwibuildsh [--kiwi-description-dir=DIR] [--kiwi-file=FILE] [--isolated] --output-dir=DIR --image-type=TYPE --image-profile=PROFILE [--image-release=RELEASEID] [--debug]" - echo >&2 " eg: $kiwibuildsh --kiwi-description-dir=/var/tmp/desc --kiwi-file=config.kiwi --output-dir=/var/tmp/work --image-type=oem --image-profile=Cloud-Base-Generic --image-release=0 --debug" - echo >&2 " eg: $kiwibuildsh --output-dir=/var/tmp/work --image-type=oem --image-profile=Cloud-Base-Generic" - echo >&2 " eg: $kiwibuildsh --isolated --output-dir=/var/tmp/work --image-type=oem --image-profile=Cloud-Base-Generic" + echo >&2 "usage: $kiwibuildsh [--kiwi-description-dir=DIR] --output-dir=DIR --image-type=TYPE --image-profile=PROFILE [--debug]" + echo >&2 " eg: $kiwibuildsh --kiwi-description-dir=/var/tmp/desc --output-dir=/var/tmp/work --image-type=oem --image-profile=cloud --debug" + echo >&2 " eg: $kiwibuildsh --output-dir=/var/tmp/work --image-type=oem --image-profile=cloud" exit 255 } -optTemp=$(getopt --options '+k:,f:,i,b:,o:,t:,p:,r:,d,h' --longoptions 'kiwi-description-dir:,kiwi-file:,isolated,kiwi-bundle-format:,output-dir:,image-type:,image-profile:,image-release:,debug,help' --name "$kiwibuildsh" -- "$@") +optTemp=$(getopt --options '+k:,o:,t:,p:,d,h' --longoptions 'kiwi-description-dir:,output-dir:,image-type:,image-profile:,debug,help' --name "$kiwibuildsh" -- "$@") eval set -- "$optTemp" unset optTemp +kiwi_description_dir="./" output_dir= image_type= image_profile= -image_release= debug= -kiwi_isolated= -# For compatibility with older scripts where these did not exist -kiwi_description_dir="./" -kiwi_file="Fedora.kiwi" -kiwi_bundle_format= -kiwibuild_extra_args= while true; do case "$1" in - -i|--isolated) kiwi_isolated=1; shift ;; -k|--kiwi-description-dir) kiwi_description_dir="$2" ; shift 2 ;; - -f|--kiwi-file) kiwi_file="$2" ; shift 2 ;; - -b|--kiwi-bundle-format) kiwi_bundle_format="$2" ; shift 2 ;; -o|--output-dir) output_dir="$2" ; shift 2 ;; -t|--image-type) image_type="$2" ; shift 2 ;; -p|--image-profile) image_profile="$2" ; shift 2 ;; - -r|--image-release) image_release="$2" ; shift 2 ;; -d|--debug) debug="--debug" ; shift ;; -h|--help) usage ;; --) shift ; break ;; esac done -# Capture arguments after -- -kiwibuild_extra_args=("$@") - -if [ -z "$output_dir" ] || [ -z "$image_type" ] || [ -z "$image_profile" ] || [ -z "$kiwi_file" ]; then +if [ -z "$output_dir" ] || [ -z "$image_type" ] || [ -z "$image_profile" ]; then echo "Options not set!" usage fi -if [ -z "$kiwi_bundle_format" ]; then - # Set the bundle format after we know the profile - kiwi_bundle_format=$("${kiwibuild_scriptdir}/scripts/fedora-kiwi-bundle-format-generator" "${kiwi_file}" "${image_profile}") -fi - -if [ "$image_type" = "iso" ]; then - # Add parameters for embedded ISO IDs - kiwibuild_iso_extra_args=$("${kiwibuild_scriptdir}/scripts/fedora-live-iso-label-generator" "${kiwi_file}" "${image_profile}" --output-kiwi-args) - kiwibuild_extra_args="${kiwibuild_extra_args:+${kiwibuild_extra_args}} ${kiwibuild_iso_extra_args}" +if [ -e "/sys/fs/selinux/enforce" ]; then + # Disable SELinux enforcement during the image build if it's enforcing + selinux_enforcing="$(cat /sys/fs/selinux/enforce)" + if [ "$selinux_enforcing" = "1" ]; then + setenforce 0 + fi fi - set +e -if [ ! ${kiwi_isolated} ]; then - kiwi-ng ${debug} --type="${image_type}" --profile="${image_profile}" --kiwi-file="${kiwi_file}" --color-output system build --description "${kiwi_description_dir}" --target-dir "${output_dir}-build" ${kiwibuild_extra_args:+${kiwibuild_extra_args}} -else - kiwi-ng ${debug} --type="${image_type}" --profile="${image_profile}" --kiwi-file="${kiwi_file}" --color-output system boxbuild --box universal -- --description "${kiwi_description_dir}" --target-dir "${output_dir}-build" ${kiwibuild_extra_args:+${kiwibuild_extra_args}} -fi +kiwi-ng ${debug} --type="${image_type}" --profile="${image_profile}" --color-output system build --description "${kiwi_description_dir}" --target-dir "${output_dir}" kiwi_status=$? set -e -if [ "${kiwi_status}" = "0" ] && [ -n "$image_release" ]; then - kiwi-ng ${debug} result bundle --bundle-format="${kiwi_bundle_format}" --target-dir "${output_dir}-build" --bundle-dir "${output_dir}" --id="${image_release}" +if [ -e "/sys/fs/selinux/enforce" ]; then + # Re-enable SELinux enforcement now that image build is done + if [ "$selinux_enforcing" = "1" ]; then + setenforce 1 + fi fi + exit $kiwi_status |