spl: allow building against a hardened kernel

This commit is contained in:
Zero_Chaos 2015-07-22 14:37:06 +00:00
parent b67fa763e0
commit 79a95bba6a
2 changed files with 116 additions and 0 deletions

View file

@ -1,5 +1,7 @@
DIST spl-0.6.3-patches-r1.tar.xz 15996 SHA256 7f1cf74c9be5c14eeff529ce0a45d7dcca33cc08e5b9e7d17fc79dd5a58719d7 SHA512 6eeee3a18466bbe8ca903910d807a3242bff0c12848d4fc6e226fe40592cd6cd9109bc5ee301867f0512b5cf2ad28eab2988e261c69fd200c5dd6eb6d8027b2c WHIRLPOOL 93578cfa435dc343edc8087a0d49aa90ddc457bf75292b0c10ce30836e00f27ea0c4768a62270a6ec559238b778ccfcde71c15740a8242f9f93c7d84934c5f72
DIST spl-0.6.3.tar.gz 221430 SHA256 5d60dfbe86a50e65dbce17f538d8d0874a0cc293374f59eed46cd2dd1809a944 SHA512 c4b82f1e279c7581d0082c044157e8a933edf53233c8c7c8202117454cfda0473ab85fbb56ac0b6da09a4d6798e33020a9c55bf23e25d630efa3265545c3defc WHIRLPOOL eaf001a96a80264e16ce416da38b988eabbfd2fce17690151a496a3141c32e92e5d00791e2d9c009ae0cf6910f80434c10f02a700752fc664f6bf6723bb03dba
DIST spl-0.6.4.2.tar.gz 190421 SHA256 05c428f48acc55287c0662a90cfc087985b8ef3694dc057cfb16e1fa2ebbda43 SHA512 6a295651622dd1819bc9ef8f693c6a3cf73dbb084a4789ad508dda644bfcaa1984c5487ea0e16c8d6d468da59a3fae2e9309b2b13cd869a4af4ea675c394bbe3 WHIRLPOOL e270b66ac9e22c806876e727ef040c3cfb2c304889de982f1c54a1625f7bf0214d3b6f8baac42cb3710aa23897f1b1bc67ef633fe35cb1b2c4b57196390a0fad
DIST spl-0.6.4.tar.gz 190348 SHA256 290c20cec89161a0e3e3a885494dfb7b0b7defbe38006cb2ecfdf2b241136415 SHA512 4dda082170884811a2667ecdc130e9e3743bf362109bebb53bd69a18115b8e2b41305d212a03f4233258f866fe7c56ed4a3f08fc1814fa1f8e947b5305a056ab WHIRLPOOL 475593c4b0f75fb30c963196bf6e45219b4a57bd8c9d4350f02ff358c97a69f066b5d4ce8cb346b67d773d7ff985e1812925a5490b8911b9cd657e654772bb9f
EBUILD spl-0.6.3-r1.ebuild 3135 SHA256 8b5b1f8a613da9de841ea1fa4faa4542eca45254344973a311d50fb48fa04333 SHA512 47aa0c8b7d611fd6926fa081c415b201217687e42ac2e5e086791166d4ae7267e87b06d23d588e76c4f6304459bb6bf473d11af8dcf591ee545b6c8552ce8e90 WHIRLPOOL 7e975533965e049aeb0391d53c8036084f7c0ad6faf33c1551ad0592cca8366737415dfe34f0275b942806f33990727b0006dcd5272687a9da56742288129bc5
EBUILD spl-0.6.4.2.ebuild 2905 SHA256 3ec1acd81c23c44f78000c0eada95be1284f3bdd95c57d8c048423b7e245e5d5 SHA512 02f47a57fe3d6e6c1b4ed50cea0b761cd3909dd75ebe3eb15b8c4a23cdea9ed9eedf6c347780033975a73fc99dbe8c8b34df4f91fe6171c61464f58362e65604 WHIRLPOOL 198a481deb0a0652be645aa12bcb4e325d288cbce7c64651c4a3f74aa44416cb18979b91daa5638e78fd0cbf05a58f1c9f4028bccdc34dd1a5b325c9a1753bb9
EBUILD spl-0.6.4.ebuild 2887 SHA256 3140f523d628fb925a7a1e275e9a6460efe6f7f723b770b5cea57e6514263489 SHA512 8685a07af01c2da247a206c1736f30b603ece410401377abc3eb8e5cc52ba80e84ed2f0e61f8235d9dac2b31fdd97f7437d6d40a27ddd667e1a9d38e8ff647a0 WHIRLPOOL c77438fc2fe15b369041eeb67ae090a69f9c5920bcc70fd2810c610f2b27eeed6936761b9df057e1be52f06e0db693a06e06a407fd7f0592e2181fd2c355d6c6

View file

@ -0,0 +1,114 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-kernel/spl/spl-0.6.4.2.ebuild,v 1.2 2015/07/14 03:21:51 dlan Exp $
EAPI="4"
AUTOTOOLS_AUTORECONF="1"
inherit flag-o-matic linux-info linux-mod autotools-utils
if [[ ${PV} == "9999" ]] ; then
inherit git-2
EGIT_REPO_URI="https://github.com/zfsonlinux/${PN}.git"
else
inherit eutils versionator
SRC_URI="https://github.com/zfsonlinux/${PN}/archive/${P}.tar.gz"
S="${WORKDIR}/${PN}-${P}"
KEYWORDS="~amd64 ~arm ~ppc ~ppc64"
fi
DESCRIPTION="The Solaris Porting Layer is a Linux kernel module which provides many of the Solaris kernel APIs"
HOMEPAGE="http://zfsonlinux.org/"
LICENSE="GPL-2"
SLOT="0"
IUSE="custom-cflags debug debug-log"
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"
pkg_setup() {
linux-info_pkg_setup
CONFIG_CHECK="
!DEBUG_LOCK_ALLOC
!GRKERNSEC_HIDESYM
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 1 || die "Linux 4.1 is the latest supported version."; }
check_extra_config
}
src_prepare() {
# 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"
# 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}"
dodoc AUTHORS DISCLAIMER README.markdown
}
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
}