summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Yao <ryao@gentoo.org>2018-08-12 19:35:52 -0400
committerRichard Yao <ryao@gentoo.org>2018-08-12 19:37:34 -0400
commit02cc5b66b7067ab32903ee3eabfeb3a9f65ec917 (patch)
tree97fb2ffd5dc3fb6564c08f5720f2ea6e3168eb7f /sys-kernel/spl
parentsys-kernel/vanilla-sources: Linux patch 4.18.0 (diff)
downloadgentoo-02cc5b66b7067ab32903ee3eabfeb3a9f65ec917.tar.gz
gentoo-02cc5b66b7067ab32903ee3eabfeb3a9f65ec917.tar.bz2
gentoo-02cc5b66b7067ab32903ee3eabfeb3a9f65ec917.zip
sys-fs/zfs et al: Backport Linux 4.18 support
Package-Manager: Portage-2.3.40, Repoman-2.3.9
Diffstat (limited to 'sys-kernel/spl')
-rw-r--r--sys-kernel/spl/Manifest1
-rw-r--r--sys-kernel/spl/spl-0.7.9-r1.ebuild120
2 files changed, 121 insertions, 0 deletions
diff --git a/sys-kernel/spl/Manifest b/sys-kernel/spl/Manifest
index 6c23eefa696c..61700357502f 100644
--- a/sys-kernel/spl/Manifest
+++ b/sys-kernel/spl/Manifest
@@ -1,3 +1,4 @@
DIST spl-0.6.5.11.tar.gz 531710 BLAKE2B e89cb5a023d3f4b3949a385100b56e01c5fd0ff4448bc175f8463a84b74d1d8f1fcf669c2e4b73f2ec3326653594106ebfa3e66987e49a9cd029355bbb317990 SHA512 eae1641a0d528cb9182deccd309625e13abf3db88ba1cbb54947055b23d1f94b62c045f939d5e952784f19719eea5fdf85d65c5abd22b9db167ea7780bc55722
DIST spl-0.7.8.tar.gz 559558 BLAKE2B 5aa68a8150cb0c922c1ad0df9d1260136cedd95c13df45cc4490d937746a2a0e76e964978128a6f4e553f7bad4adc72a0408ef89969a15ba3f43af26e412b61c SHA512 dcd38dd0971042603baa474460486ed2e7cb59468de7613fa713eb4bdd081026794af7780b5d8970dd17645b04b6dde1e2f43e89a782437a50afc679a8850001
+DIST spl-0.7.9-r1-patches.tar.xz 2428 BLAKE2B 5a8550be587c511975d579bdba889538ed574d51b75ff579d02da190a2f8f0c2ba79a5ab4247603f17d26d0ec4d3552dd066c276b99e152d3d95a420db62038c SHA512 829d16e9ab98d568174558fe850e6cb75a70c05de485054f1801f3896dc1fb56a1aaa7f4ba6c7e107558eef591456098291917ca071774c12f4191b0004b9b93
DIST spl-0.7.9.tar.gz 551115 BLAKE2B 0ebb801ff60e5f8691c0b3386b5b1c326ea9d40decc20fb455ddb103d108923f28cd870e1c1dc465af5e24e8627973f2b60e7b9b88b3fdbd3ac45f3bd167def2 SHA512 89a42a65b3c09a654ffc3bcef84a0735eefe080c2d790400a3691cccf01e9f0a95cd40a4eed37542cfa7f4a94f20e06aae44886325473713407833d247751ec3
diff --git a/sys-kernel/spl/spl-0.7.9-r1.ebuild b/sys-kernel/spl/spl-0.7.9-r1.ebuild
new file mode 100644
index 000000000000..8d4bead61154
--- /dev/null
+++ b/sys-kernel/spl/spl-0.7.9-r1.ebuild
@@ -0,0 +1,120 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+AUTOTOOLS_AUTORECONF="1"
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/zfsonlinux/zfs/releases/download/zfs-${PV}/${P}.tar.gz
+ https://dev.gentoo.org/~ryao/dist/${PF}-patches.tar.xz"
+ KEYWORDS="~amd64"
+fi
+
+inherit flag-o-matic linux-info linux-mod autotools-utils
+
+DESCRIPTION="The Solaris Porting Layer provides many of the Solaris kernel APIs"
+HOMEPAGE="http://zfsonlinux.org/"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="custom-cflags debug"
+RESTRICT="debug? ( strip ) test"
+
+COMMON_DEPEND="
+ dev-lang/perl
+ virtual/awk"
+
+DEPEND="${COMMON_DEPEND}"
+
+RDEPEND="${COMMON_DEPEND}
+ !sys-devel/spl"
+
+AT_M4DIR="config"
+AUTOTOOLS_IN_SOURCE_BUILD="1"
+DOCS=( AUTHORS DISCLAIMER )
+
+pkg_setup() {
+ linux-info_pkg_setup
+ CONFIG_CHECK="
+ !DEBUG_LOCK_ALLOC
+ MODULES
+ KALLSYMS
+ !PAX_KERNEXEC_PLUGIN_METHOD_OR
+ !PAX_SIZE_OVERFLOW
+ ZLIB_DEFLATE
+ ZLIB_INFLATE
+ "
+
+ use debug && CONFIG_CHECK="${CONFIG_CHECK}
+ FRAME_POINTER
+ DEBUG_INFO
+ !DEBUG_INFO_REDUCED
+ "
+
+ kernel_is ge 2 6 32 || die "Linux 2.6.32 or newer required"
+
+ [ ${PV} != "9999" ] && \
+ { kernel_is le 4 18 || die "Linux 4.18 is the latest supported version."; }
+
+ check_extra_config
+}
+
+src_prepare() {
+ if [ ${PV} != "9999" ]
+ then
+ # Apply patch set
+ EPATCH_SUFFIX="patch" \
+ EPATCH_FORCE="yes" \
+ epatch "${WORKDIR}/${PF}-patches"
+ fi
+
+ # Workaround for hard coded path
+ sed -i "s|/sbin/lsmod|/bin/lsmod|" "${S}/scripts/check.sh" || \
+ die "Cannot patch check.sh"
+
+ # splat is unnecessary unless we are debugging
+ use debug || { sed -e 's/^subdir-m += splat$//' -i "${S}/module/Makefile.in" || die ; }
+
+ # Set module revision number
+ [ ${PV} != "9999" ] && \
+ { sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" "${S}/META" || die "Could not set Gentoo release"; }
+
+ autotools-utils_src_prepare
+}
+
+src_configure() {
+ use custom-cflags || strip-flags
+ filter-ldflags -Wl,*
+
+ set_arch_to_kernel
+ local myeconfargs=(
+ --bindir="${EPREFIX}/bin"
+ --sbindir="${EPREFIX}/sbin"
+ --with-config=all
+ --with-linux="${KV_DIR}"
+ --with-linux-obj="${KV_OUT_DIR}"
+ $(use_enable debug)
+ )
+ autotools-utils_src_configure
+}
+
+src_install() {
+ autotools-utils_src_install INSTALL_MOD_PATH="${INSTALL_MOD_PATH:-$EROOT}"
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ # Remove old modules
+ if [ -d "${EROOT}lib/modules/${KV_FULL}/addon/spl" ]
+ then
+ ewarn "${PN} now installs modules in ${EROOT}lib/modules/${KV_FULL}/extra/spl"
+ ewarn "Old modules were detected in ${EROOT}lib/modules/${KV_FULL}/addon/spl"
+ ewarn "Automatically removing old modules to avoid problems."
+ rm -r "${EROOT}lib/modules/${KV_FULL}/addon/spl" || die "Cannot remove modules"
+ rmdir --ignore-fail-on-non-empty "${EROOT}lib/modules/${KV_FULL}/addon"
+ fi
+}