summaryrefslogtreecommitdiffstats
path: root/builder/modules.d/dnbd3-rootfs/module-setup.sh
diff options
context:
space:
mode:
Diffstat (limited to 'builder/modules.d/dnbd3-rootfs/module-setup.sh')
-rwxr-xr-xbuilder/modules.d/dnbd3-rootfs/module-setup.sh60
1 files changed, 33 insertions, 27 deletions
diff --git a/builder/modules.d/dnbd3-rootfs/module-setup.sh b/builder/modules.d/dnbd3-rootfs/module-setup.sh
index 046732df..4e5f037f 100755
--- a/builder/modules.d/dnbd3-rootfs/module-setup.sh
+++ b/builder/modules.d/dnbd3-rootfs/module-setup.sh
@@ -5,7 +5,7 @@ source "$(dirname "${BASH_SOURCE[0]}")/scripts/rebash/core.sh"
core.import exceptions
core.import logging
core.import utils
-core.import "$(core_abs_path "$(dirname "${BASH_SOURCE[0]}")/scripts/build.sh")"
+core.import "$(core_abs_path "$(dirname "${BASH_SOURCE[0]}")/helper/build.inc")"
# endregion
# region forward "build-initrfams.sh" logging configuration if present.
_parse_dracut_args() {
@@ -68,6 +68,8 @@ _parse_dracut_args() {
_debug=0
_parse_dracut_args ${dracut_args[*]} || _debug=$?
# endregion
+# region initialize function to build required components
+
clean() {
local __doc__='
Removes all compiled kernel specific files.
@@ -77,13 +79,11 @@ clean() {
`clean`
'
- build_clean_xmount "$moddir/binaries/xmount/"
- build_clean_qemu_xmount "$moddir/binaries/qemu-xmount/"
- build_clean_dnbd3 "$moddir/binaries/dnbd3/"
- build_clean_systemd_preserve_process_marker \
- "$moddir/binaries/systemd-preserve-process-marker/"
+ . "${moddir}/helper/build.inc"
+ clean_components
return 0
}
+# endregion
# region dracut plugin api
check() {
local __doc__='
@@ -94,21 +94,15 @@ check() {
`check`
'
exceptions.activate
+ initialize_components
# NOTE: xmount must be compiled before qemu_xmount
local xmount_is_built=true
- if [[ ! -f "$moddir/binaries/xmount/trunk/build/src/xmount" ]]; then
- if ! build_compile_xmount "$moddir/binaries/xmount/"; then
+ if [[ ! -f "$moddir/binaries/xmount/trunk/build/src/xmount" ]] ||
+ [[ -f "$moddir/binaries/qemu-xmount/libxmount_input_qemu.so" ]]; then
xmount_is_built=false
- fi
- fi
- if $xmount_is_built && [[ \
- ! -f "$moddir/binaries/qemu-xmount/libxmount_input_qemu.so" \
- ]]; then
- build_compile_qemu_xmount "$moddir/binaries/qemu-xmount/" || \
- xmount_is_built=false
fi
$xmount_is_built || logging.warn \
- "Compiling \"xmount\" failed -> No support for container files (only raw images)."
+ "Compiling \"xmount\" failed."
if [[ ! -f "$moddir/binaries/dnbd3/build/dnbd3.ko" ]] || \
[[ ! -f "$moddir/binaries/dnbd3/build/dnbd3-client" ]]
@@ -153,7 +147,7 @@ depends() {
'
#local network_module="network"
#dracut_module_included "systemd-initrd" && network_module="systemd-networkd-ext"
- echo base bash kernel-modules shutdown slx-dmsetup slx-tools slx-network # "$network_module"
+ echo base bash kernel-modules shutdown slx-dmsetup slx-network # "$network_module"
}
installkernel() {
local __doc__='
@@ -164,6 +158,7 @@ installkernel() {
`installkernel`
'
+ # TODO kqcow2 stuff
inst "$moddir/binaries/dnbd3/build/dnbd3.ko" \
/usr/lib/modules/current/extra/dnbd3.ko
}
@@ -183,16 +178,27 @@ install() {
# xmount
local \
xmount_installation="$moddir/binaries/xmount/trunk/build/release_build"
- inst "${xmount_installation}/usr/bin/xmount" /usr/bin/xmount
- for file in ${xmount_installation}/usr/lib/xmount/*; do
- inst "$file" /usr/lib/xmount/"$(basename "$file")"
- done
- inst "$moddir/binaries/qemu-xmount/libxmount_input_qemu.so" \
- /usr/lib/xmount/libxmount_input_qemu.so
- # HACK fix missing libraries for some xmount input libs
- # TODO copy the dependencies using dracut functions...
- inst_libdir_file 'libafflib.so*'
- inst_libdir_file 'libewf.so*'
+ if [[ -f "${xmount_installation}/usr/bin/xmount" ]]; then
+ inst "${xmount_installation}/usr/bin/xmount" /usr/bin/xmount
+ for file in ${xmount_installation}/usr/lib/xmount/*; do
+ inst "$file" /usr/lib/xmount/"$(basename "$file")"
+ done
+ inst "$moddir/binaries/qemu-xmount/libxmount_input_qemu.so" \
+ /usr/lib/xmount/libxmount_input_qemu.so
+ # HACK fix missing libraries for some xmount input libs
+ # TODO copy the dependencies using dracut functions...
+ inst_libdir_file 'libafflib.so*'
+ inst_libdir_file 'libewf.so*'
+ fi
+ # kqcow2
+ local kernel_qcow2_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
+ for lib in "${kernel_qcow2_repo}/"*.so*; do
+ # TODO check inst_libdir_file
+ inst "$file" "/usr/lib/$(basename $file)"
+ done
+ fi
# endregion
# region hooks
inst_hook cmdline 00 "$moddir/hooks/enable-sysrq.sh"