summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Bauer2019-09-06 15:32:30 +0200
committerJonathan Bauer2019-09-06 15:32:30 +0200
commit20dc2337a3f642fc6eaf66f45b63d8ad815234b7 (patch)
tree02e457e0f50df47f70cf20d1472bd9db9216f1f4
parent[dnbd3-rootfs] fix paths (diff)
downloadsystemd-init-20dc2337a3f642fc6eaf66f45b63d8ad815234b7.tar.gz
systemd-init-20dc2337a3f642fc6eaf66f45b63d8ad815234b7.tar.xz
systemd-init-20dc2337a3f642fc6eaf66f45b63d8ad815234b7.zip
[dnbd3-rootfs] more fixes for kqcow
-rwxr-xr-xbuilder/build-initramfs.sh9
-rw-r--r--builder/modules.d/dnbd3-rootfs/helper/build.inc8
-rwxr-xr-xbuilder/modules.d/dnbd3-rootfs/module-setup.sh17
3 files changed, 18 insertions, 16 deletions
diff --git a/builder/build-initramfs.sh b/builder/build-initramfs.sh
index 8e5df3fd..51ae5ddf 100755
--- a/builder/build-initramfs.sh
+++ b/builder/build-initramfs.sh
@@ -547,6 +547,7 @@ main() {
fi
logging.info " * kernel headers: $kernel_headers"
[ -n "$qcow_handler" ] && logging.info " * qcow2 handler: $qcow_handler"
+ export _QCOW_HANDLER="$qcow_handler"
# endregion
# region dependency checks and command line parsing
result=0
@@ -693,12 +694,10 @@ main() {
elif [[ "$cleanup" == 'yes' ]]; then
logging.info 'Removing distribution specific files.'
cleanup
- else
+ elif [[ "$initialize" == 'yes' ]]; then
. "${_root_dir}/modules.d/dnbd3-rootfs/helper/build.inc"
- initialize_components "$qcow_handler"
- if [[ "$initialize" == 'yes' ]]; then
- exit 0
- fi
+ build_initialize_components
+ else
logging.info 'Build initramfs.'
# NOTE: We deactivate our exception handle since dracut returns "1" if
# it is launched with help parameter ("-h" or "--help").
diff --git a/builder/modules.d/dnbd3-rootfs/helper/build.inc b/builder/modules.d/dnbd3-rootfs/helper/build.inc
index d441695d..2e202d91 100644
--- a/builder/modules.d/dnbd3-rootfs/helper/build.inc
+++ b/builder/modules.d/dnbd3-rootfs/helper/build.inc
@@ -5,8 +5,8 @@
declare -rg _mainmoddir="$(dirname "${BASH_SOURCE[0]}")/.." 2> /dev/null
declare -rg _supported_qcow_handlers=("xmount" "kernel")
-initialize_components() {
- local qcow_handler="$1"
+build_initialize_components() {
+ local qcow_handler="$_QCOW_HANDLER"
IFS='|' _pattern="^(${_supported_qcow_handlers[*]})$" export _pattern
if [[ ! "$qcow_handler" =~ $_pattern ]] ; then
logging.warn "Unknown qcow handler '$1' - will built all known."
@@ -111,10 +111,12 @@ build_compile_qemu_xmount() {
local xmount_installation="../xmount/trunk/build/release_build/usr"
[ ! -z "$2" ] && xmount_installation="$2"
./configure --enable-xmount-input --python="$(which python2)" \
+ --extra-cflags="-std=gnu99" \
--extra-cflags="-fPIC" \
--extra-cflags="-I${xmount_installation}/include" \
--extra-cflags="-I${xmount_installation}/include/xmount" \
- --disable-fdt --target-list=""
+ --disable-fdt --target-list="" \
+ --disable-werror
make -j libxmount_input_qemu.so
local ret=$?
popd
diff --git a/builder/modules.d/dnbd3-rootfs/module-setup.sh b/builder/modules.d/dnbd3-rootfs/module-setup.sh
index 78860f48..0356aa14 100755
--- a/builder/modules.d/dnbd3-rootfs/module-setup.sh
+++ b/builder/modules.d/dnbd3-rootfs/module-setup.sh
@@ -94,11 +94,11 @@ check() {
`check`
'
exceptions.activate
- initialize_components "$qcow_handler"
+ build_initialize_components
# NOTE: xmount must be compiled before qemu_xmount
local xmount_is_built=true
if [[ ! -f "$moddir/binaries/xmount/trunk/build/src/xmount" ]] ||
- [[ -f "$moddir/binaries/qemu-xmount/libxmount_input_qemu.so" ]]; then
+ [[ ! -f "$moddir/binaries/qemu-xmount/libxmount_input_qemu.so" ]]; then
xmount_is_built=false
fi
$xmount_is_built || logging.warn \
@@ -167,7 +167,7 @@ installkernel() {
# kqcow2 kernel
mkdir -p "${initdir}/${block_kmod_dir}/loop"
for kmod in "${moddir}/binaries/kernel-qcow2-linux/drivers/block/loop/"*.ko ; do
- inst "$kmod" "${block_kmod_dir}/loop/$(basename $file)"
+ inst "$kmod" "${block_kmod_dir}/loop/$(basename $kmod)"
done
}
install() {
@@ -199,10 +199,11 @@ install() {
inst_libdir_file 'libewf.so*'
fi
# kqcow2 losetup
- local kernel_qcow2_util_linux_repo="$moddir/binaries/kernel-qcow2-util-linux"
- if [[ -f "${kernel_qcow2_repo}/.libs/losetup" ]]; then
- inst "${kernel_qcow2_repo}/.libs/losetup" /usr/local/bin/losetup
- inst_libdir_file "${losetup_qcow2_dir}/*.so*"
+ local losetup_qcow2_dir="$moddir/binaries/kernel-qcow2-util-linux"
+ if [[ -f "${losetup_qcow2_dir}/.libs/losetup" ]]; then
+ inst "${losetup_qcow2_dir}/.libs/losetup" /usr/local/bin/losetup
+ mkdir -p "${initdir}/usr/local/lib"
+ cp -a "${losetup_qcow2_dir}/.libs/"*.so* "${initdir}/usr/local/lib"
fi
# endregion
# region hooks
@@ -270,7 +271,7 @@ install() {
find \
grep \
insmod \
- losetup lsblk \
+ lsblk \
mkfifo mktemp mount mountpoint \
sed sleep sort \
tee touch tr