diff options
author | Jonathan Bauer | 2020-05-13 11:04:02 +0200 |
---|---|---|
committer | Jonathan Bauer | 2020-05-13 11:04:02 +0200 |
commit | 1130873aa55c9b0a7e5af48edc44bd6c6fd1f888 (patch) | |
tree | 0fcfa186cd631d8d36611b3d4bc509fd38841d51 /builder/modules.d/dnbd3-rootfs/helper | |
parent | Merge branch 'centos8' into downloader (diff) | |
download | systemd-init-1130873aa55c9b0a7e5af48edc44bd6c6fd1f888.tar.gz systemd-init-1130873aa55c9b0a7e5af48edc44bd6c6fd1f888.tar.xz systemd-init-1130873aa55c9b0a7e5af48edc44bd6c6fd1f888.zip |
restructure repo
* remove packager
* move everything from builder/* back to root
Diffstat (limited to 'builder/modules.d/dnbd3-rootfs/helper')
-rw-r--r-- | builder/modules.d/dnbd3-rootfs/helper/build.inc | 291 |
1 files changed, 0 insertions, 291 deletions
diff --git a/builder/modules.d/dnbd3-rootfs/helper/build.inc b/builder/modules.d/dnbd3-rootfs/helper/build.inc deleted file mode 100644 index b3f9561c..00000000 --- a/builder/modules.d/dnbd3-rootfs/helper/build.inc +++ /dev/null @@ -1,291 +0,0 @@ -#!/usr/bin/env bash -# -*- coding: utf-8 -*- - -declare -rg _mainmoddir="$(dirname "${BASH_SOURCE[0]}")/.." 2> /dev/null - -declare -rg _supported_qcow_handlers=("xmount" "kernel") -build_initialize_components() { - local qcow_handler="$_QCOW_HANDLER" - IFS='|' _pattern="^(${_supported_qcow_handlers[*]})$" export _pattern - if [[ ! "$qcow_handler" =~ $_pattern ]] ; then - echo "Unknown qcow handler '$qcow_handler' - will built all known." - echo "Supported handlers: ${_supported_qcow_handlers[*]}" - fi - _deps_base_dir="${_mainmoddir}/binaries" - # We might want to move the "binaries" repos from the dnbd3-rootfs module to main repo one day... - # TODO check for its existence using modinfo -k <kernel_version> - if [[ ! -f "${_deps_base_dir}/dnbd3/build/dnbd3.ko" ]] || \ - [[ ! -f "${_deps_base_dir}/dnbd3/build/dnbd3-client" ]]; then - echo "Could not find dnbd3, building it..." - if ! CMAKE_FLAGS="-DKERNEL_DIR=${kernel_headers}" \ - build_compile_dnbd3 "${_deps_base_dir}/dnbd3/"; then - echo "Failed to build dnbd3." - return 1 - fi - fi - # take care of the qcow handler - if [ -z "$qcow_handler" ] || [ "$qcow_handler" = "xmount" ]; then - if [[ ! -f "${_deps_base_dir}/xmount/trunk/build/src/xmount" ]]; then - echo "Could not find xmount binary, building it..." - if ! build_compile_xmount "${_deps_base_dir}/xmount/"; then - echo "Failed to build xmount binary." - return 1 - fi - fi - if [[ ! -f "${_deps_base_dir}/qemu-xmount/libxmount_input_qemu.so" ]]; then - echo "Could not find xmount qemu library, building it..." - if ! build_compile_qemu_xmount "${_deps_base_dir}/qemu-xmount/"; then - echo "Failed to build xmount qemu library." - return 1 - fi - fi - fi - if [ -z "$qcow_handler" ] || [ "$qcow_handler" = "kernel" ]; then - if [ ! -f "${_deps_base_dir}/kernel-qcow2-linux/drivers/block/loop/loop.ko" ] \ - || [ ! -f "${_deps_base_dir}/kernel-qcow2-linux/drivers/block/loop/loop_file_fmt_qcow.ko" ] \ - || [ ! -f "${_deps_base_dir}/kernel-qcow2-linux/drivers/block/loop/loop_file_fmt_raw.ko" ]; then - echo "Could not find loop kernel modules, building them..." - if ! build_compile_kernel_qcow "${_deps_base_dir}/kernel-qcow2-linux"; then - echo "Failed to build qcow loop kernel modules." - return 1 - fi - fi - if [ ! -f "${_deps_base_dir}/kernel-qcow2-util-linux/losetup" ]; then - echo "Could not find losetup with qcow2 support, building it..." - if ! build_compile_losetup_qcow "${_deps_base_dir}/kernel-qcow2-util-linux"; then - echo "Failed to build losetup with qcow support." - return 1 - fi - fi - fi - - # always compile this helper since it does not cost much to do so - if [[ ! -f "${_deps_base_dir}/systemd-preserve-process-marker/systemd-preserve-process-marker" ]]; then - echo "Could not find systemd-preserve-process-marker binary, building it ..." - if ! build_compile_systemd_preserve_process_marker \ - "${_deps_base_dir}/systemd-preserve-process-marker/"; then - echo "Failed to build systemd-preserve-process-marker" - return 1 - fi - fi - echo "Compilation of dnbd3-rootfs dependencies succeeded." - return 0 -} - -clean_components() { - local __doc__=' - Removes all compiled kernel specific files. - NOTE: This method is triggered manually and not supported by dracut itself. - - Example: - - `clean` - ' - local _submoddir="${_mainmoddir}/binaries" - build_clean_xmount "${_submoddir}/xmount/" - build_clean_qemu_xmount "${_submoddir}/qemu-xmount/" - build_clean_dnbd3 "${_submoddir}/dnbd3/" - build_clean_losetup_qcow "${_submoddir}/kernel-qcow2-util-linux" - build_clean_dnbd3 "${_submoddir}/dnbd3/" - build_clean_systemd_preserve_process_marker \ - "${_submoddir}/systemd-preserve-process-marker/" - return 0 -} -# endregion - -build_compile_qemu_xmount() { - local __doc__=' - Compiles qemu libxmount. - NOTE: expects xmount installation under - $1/../xmount/trunk/build/release_build/ - - Provides the following file: - "$1/libxmount_input_qemu.so" - - Example: - - `build_compile_qemu_xmount /qemu_source /xmount/installation` - ' - pushd "$1" - 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" \ - --disable-werror \ - --extra-cflags="-fPIC" \ - --extra-cflags="-I${xmount_installation}/include" \ - --extra-cflags="-I${xmount_installation}/include/xmount" \ - --disable-fdt --target-list="" - make -j libxmount_input_qemu.so - local ret=$? - popd - return $ret -} -build_clean_qemu_xmount() { - local __doc__='Clean the build of `build_compile_qemu_xmount`.' - pushd "$1" - make clean - local ret=$? - popd - return $ret -} -build_compile_xmount() { - local __doc__=' - Compiles xmount. - - Provides the xmount installation under: - "$1/trunk/build/release_build/" - - Example: - - `build_compile_xmount /xmount_source /xmount_source/build /usr` - ' - pushd "$1" - - local destination_directory="./release_build" - [ ! -z "$2" ] && destination_directory="$2" - local install_prefix="/usr" - [ ! -z "$3" ] && install_prefix="$3" - - mkdir --parents trunk/build - cd trunk/build || return 1 - cmake -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX="$install_prefix" .. - make -j - make install DESTDIR="$destination_directory" - local ret=$? - popd - return $ret -} -build_clean_xmount() { - local __doc__='Clean the build of `build_compile_xmount`.' - rm --recursive --force "$1/trunk/build" -} -build_compile_dnbd3() { - local __doc__=' - Compiles dnbd3 kernel module and client. - - Provides the following file: - "$1/build/dnbd3.ko" - "$1/build/dnbd3-client" - - Examples: - - `build_compile_dnbd3 path/to/dnbd3/source/` - - Passing the kernel version to cmake: - `CMAKE_FLAGS="-DKERNEL_VERSION=4.14.6-openslx+" \ - build_compile_dnbd3 path/to/dnbd3/source/` - ' - pushd "$1" - # NOTE: The generic way would be: "./build.sh" but this tries to build - # more than we really need and takes more time. - mkdir --parents build - cd build - # Inject CMAKE_FLAGS as a way to control how cmake is called, - # e.g. to pass the kernel version - cmake ${CMAKE_FLAGS} \ - -DBUILD_FUSE_CLIENT=OFF \ - -DBUILD_KERNEL_MODULE=ON \ - -DBUILD_SERVER=OFF \ - -DBUILD_STRESSTEST=OFF \ - ../ - make -j dnbd3 dnbd3-client - local ret=$? - popd - return $ret -} -build_clean_dnbd3() { - local __doc__='Clean the build of `build_compile_dnbd3`.' - rm --recursive --force "$1/build" - return $? -} -build_compile_kernel_qcow() { - pushd "$1" - # https://lab.ks.uni-freiburg.de/projects/kernel-qcow2/wiki - if [ -z "$kernel_headers" ]; then - echo "Kernel header directory not set, ignoring." - return 1 - fi - mkdir -p "${kernel_headers}/drivers/block/loop" - for _file in \ - include/uapi/linux/loop.h \ - drivers/block/Kconfig \ - drivers/block/loop/loop_main.h \ - drivers/block/loop/loop_file_fmt.h \ - drivers/block/loop/Kconfig; do - cp -f "${_file}" "${kernel_headers}/${_file}" - done - ( - set -o errexit - make -C "$kernel_headers" CONFIG_BLK_DEV_LOOP=m \ - M=$(pwd)/drivers/block/loop loop.ko - make -C "$kernel_headers" CONFIG_BLK_DEV_LOOP_FILE_FMT_RAW=m \ - M=$(pwd)/drivers/block/loop loop_file_fmt_raw.ko - make -C "$kernel_headers" CONFIG_BLK_DEV_LOOP_FILE_FMT_QCOW=m \ - M=$(pwd)/drivers/block/loop loop_file_fmt_qcow.ko - ) - local ret=$? - popd - return $ret -} -build_clean_kernel_qcow() { - if [ -z "$kernel_headers" ]; then - echo "Kernel header directory not set, ignoring." - return 1 - fi - pushd "$kernel_headers" - make -C "$kernel_headers" M=$(pwd)/drivers/block/loop clean - local ret=$? - popd - return $ret -} -build_compile_losetup_qcow() { - pushd "$1" - ( - set -o errexit - ./autogen.sh - ./configure - make -j losetup - gcc -I./libsmartcols/src -O2 -o .libs/losetup sys-utils/losetup-losetup.o .libs/libcommon.a .libs/libsmartcols.a - ) - local ret=$? - popd - return $ret -} -build_clean_losetup_qcow() { - pushd "$1" - make clean - local ret=$? - popd - return $ret -} -build_compile_systemd_preserve_process_marker() { - local __doc__=' - Compiles simple c program. - - Examples: - - `build_compile_systemd_preserve_process_marker path/to/program/folder` - ' - pushd "$1" - make - local ret=$? - popd - return $ret -} -build_clean_systemd_preserve_process_marker() { - local __doc__=' - Clean the build of - `build_compile_systemd_preserve_process_marker`. - ' - pushd "$1" - make clean - local ret=$? - popd - return $ret -} -# region vim modline -# vim: set tabstop=4 shiftwidth=4 expandtab: -# vim: foldmethod=marker foldmarker=region,endregion: -# endregion |