diff options
author | Matt Macy <mmacy@FreeBSD.org> | 2020-08-24 23:31:26 +0000 |
---|---|---|
committer | Matt Macy <mmacy@FreeBSD.org> | 2020-08-24 23:31:26 +0000 |
commit | eda14cbc264d6969b02f2b1994cef11148e914f1 (patch) | |
tree | 54766ce51e901d5ec66cdce87973bb1e210588e1 /sys/contrib/openzfs/copy-builtin | |
parent | 8d9b400f9d02116e528968fa4e7d3c479e326e2a (diff) | |
parent | 3b0ce0e28db46d0403929aba45c682285e1ac217 (diff) | |
download | src-eda14cbc264d6969b02f2b1994cef11148e914f1.tar.gz src-eda14cbc264d6969b02f2b1994cef11148e914f1.zip |
Initial import from vendor-sys branch of openzfs
Notes
Notes:
svn path=/head/; revision=364740
Diffstat (limited to 'sys/contrib/openzfs/copy-builtin')
-rwxr-xr-x | sys/contrib/openzfs/copy-builtin | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/sys/contrib/openzfs/copy-builtin b/sys/contrib/openzfs/copy-builtin new file mode 100755 index 000000000000..f42f4d1a4828 --- /dev/null +++ b/sys/contrib/openzfs/copy-builtin @@ -0,0 +1,79 @@ +#!/usr/bin/env bash + +set -e + +usage() +{ + echo "usage: $0 <kernel source tree>" >&2 + exit 1 +} + +[ "$#" -eq 1 ] || usage +KERNEL_DIR="$(readlink --canonicalize-existing "$1")" + +if ! [ -e 'zfs_config.h' ] +then + echo >&2 + echo " $0: you did not run configure, or you're not in the ZFS source directory." >&2 + echo " $0: run configure with --with-linux=$KERNEL_DIR and --enable-linux-builtin." >&2 + echo >&2 + exit 1 +fi + +make clean || true +make gitrev + +rm -rf "$KERNEL_DIR/include/zfs" "$KERNEL_DIR/fs/zfs" +cp --recursive include "$KERNEL_DIR/include/zfs" +cp --recursive module "$KERNEL_DIR/fs/zfs" +cp zfs_config.h "$KERNEL_DIR/include/zfs/" + +cat > "$KERNEL_DIR/fs/zfs/Kconfig" <<"EOF" +config ZFS + tristate "ZFS filesystem support" + depends on EFI_PARTITION + select ZLIB_INFLATE + select ZLIB_DEFLATE + help + This is the ZFS filesystem from the ZFS On Linux project. + + See https://zfsonlinux.org/ + + To compile this file system support as a module, choose M here. + + If unsure, say N. +EOF + +add_after() +{ + local FILE="$1" + local MARKER="$2" + local NEW="$3" + local LINE + + while IFS='' read -r LINE + do + echo "$LINE" + + if [ -n "$MARKER" -a "$LINE" = "$MARKER" ] + then + echo "$NEW" + MARKER='' + if IFS='' read -r LINE + then + [ "$LINE" != "$NEW" ] && echo "$LINE" + fi + fi + done < "$FILE" > "$FILE.new" + + mv "$FILE.new" "$FILE" +} + +add_after "$KERNEL_DIR/fs/Kconfig" 'if BLOCK' 'source "fs/zfs/Kconfig"' +add_after "$KERNEL_DIR/fs/Makefile" 'endif' 'obj-$(CONFIG_ZFS) += zfs/' + +echo >&2 +echo " $0: done." >&2 +echo " $0: now you can build the kernel with ZFS support." >&2 +echo " $0: make sure you enable ZFS support (CONFIG_ZFS) before building." >&2 +echo >&2 |