diff options
author | Jonathan Bauer | 2019-07-24 11:36:06 +0200 |
---|---|---|
committer | Jonathan Bauer | 2019-12-04 11:49:41 +0100 |
commit | d9c82ead8e9e61ce5f3b4c7ecae16ca418eddc32 (patch) | |
tree | 32cf6b9afdcc47d295074cfdf02515255398ee72 | |
parent | Add disable_werror to qemu-xmount build (diff) | |
download | systemd-init-d9c82ead8e9e61ce5f3b4c7ecae16ca418eddc32.tar.gz systemd-init-d9c82ead8e9e61ce5f3b4c7ecae16ca418eddc32.tar.xz systemd-init-d9c82ead8e9e61ce5f3b4c7ecae16ca418eddc32.zip |
[builder] introduce --kernel-headers|-h
to specify the path to kernel headers to build dnbd3 against. Also
remove hacky patch and just directly use dnbd3's KERNEL_DIR CMAKE flag.
-rwxr-xr-x | builder/build-initramfs.sh | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/builder/build-initramfs.sh b/builder/build-initramfs.sh index aefc6544..7d56b787 100755 --- a/builder/build-initramfs.sh +++ b/builder/build-initramfs.sh @@ -351,6 +351,17 @@ parse_command_line() { fi shift ;; + -h|--kernel-headers) + local given_argument="$1" + shift + kernel_headers="$1" + if [ -z "$kernel_headers" ]; then + logging.critical \ + "Error with given option \"$given_argument\": This option needs the path to the kernel headers." + return 1 + fi + shift + ;; -) shift while [[ "$1" =~ ^.+$ ]]; do @@ -495,9 +506,7 @@ initialize_dnbd3_rootfs_module() { if [[ ! -f "${_deps_base_dir}/dnbd3/build/dnbd3.ko" ]] || \ [[ ! -f "${_deps_base_dir}/dnbd3/build/dnbd3-client" ]]; then logging.info "Could not find dnbd3, building it..." - # fallback to running kernel if the kernel version was not - # specified as the dracut argument '--kver' - if ! CMAKE_FLAGS="-DKERNEL_VERSION=${kernel_version}" \ + if ! CMAKE_FLAGS="-DKERNEL_DIR=${kernel_headers}" \ build_compile_dnbd3 "${_deps_base_dir}/dnbd3/"; then logging.error "Failed to build dnbd3." return 1 @@ -552,13 +561,17 @@ main() { if [ -z "$kernel_version" ]; then kernel_version="$(uname -r)" fi + # similar for kernel headers needed to compile dnbd3 against. + if [ -z "$kernel_headers" ]; then + kernel_headers="/lib/modules/${kernel_version}/build" + fi + if [ ! -f "${kernel_headers}/Makefile" ]; then + logging.critical 'Missing core dependency "linux-headers" for version to compile against given or current kernel.' + fi + logging.info "Building for kernel version: ${kernel_version}." # endregion # region dependency checks and command line parsing - logging.info "Building for kernel version: ${kernel_version}." result=0 - if ! [ -f "/lib/modules/${kernel_version}/build/Makefile" ]; then - logging.critical 'Missing core dependency "linux-headers" for version to compile against given or current kernel.' - fi dependency_check core dependencies utils_dependency_check program || \ result=$? dependency_check core shared_library_pattern_dependencies \ |