From 7224c1253228e5c29c78cb3f0f26ce34770f2356 Mon Sep 17 00:00:00 2001 From: BlackNoxis Date: Sat, 15 Feb 2014 23:24:26 +0200 Subject: Added ebuilds for kogaion desktop --- eclass/spl-zfs-userspace.eclass | 218 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 218 insertions(+) create mode 100644 eclass/spl-zfs-userspace.eclass (limited to 'eclass/spl-zfs-userspace.eclass') diff --git a/eclass/spl-zfs-userspace.eclass b/eclass/spl-zfs-userspace.eclass new file mode 100644 index 00000000..33c211a6 --- /dev/null +++ b/eclass/spl-zfs-userspace.eclass @@ -0,0 +1,218 @@ +# Copyright 2004-2012 Sabayon Linux +# Distributed under the terms of the GNU General Public License v2 +# $ + +AT_M4DIR="config" +AUTOTOOLS_AUTORECONF="1" +AUTOTOOLS_IN_SOURCE_BUILD="1" + +inherit eutils flag-o-matic git-2 linux-mod autotools-utils + +# export all the available functions here +EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare src_configure src_compile src_install src_test + +# @ECLASS-VARIABLE: ZFS_GIT_REPO +# @DESCRIPTION: +# Identified the ZFS Git repo from where to pull +ZFS_GIT_REPO="${ZFS_GIT_REPO:-}" + +# @ECLASS-VARIABLE: ZFS_GIT_BRANCH +# @DESCRIPTION: +# Identified the ZFS Git branch from where to pull +ZFS_GIT_BRANCH="${ZFS_GIT_BRANCH:-}" + +# @ECLASS-VARIABLE: ZFS_GIT_COMMIT +# @DESCRIPTION: +# Identified the ZFS Git commit from where to pull +ZFS_GIT_COMMIT="${ZFS_GIT_COMMIT:-}" + +# @ECLASS-VARIABLE: SPL_GIT_REPO +# @DESCRIPTION: +# Identified the SPL Git repo from where to pull +SPL_GIT_REPO="${SPL_GIT_REPO:-}" + +# @ECLASS-VARIABLE: SPL_GIT_BRANCH +# @DESCRIPTION: +# Identified the SPL Git branch from where to pull +SPL_GIT_BRANCH="${SPL_GIT_BRANCH:-}" + +# @ECLASS-VARIABLE: SPL_GIT_COMMIT +# @DESCRIPTION: +# Identified the SPL Git commit from where to pull +SPL_GIT_COMMIT="${SPL_GIT_COMMIT:-}" + +SRC_URI="" + +DESCRIPTION="The Solaris Porting Layer and ZFS Filesystem userspace utilities" +HOMEPAGE="http://zfsonlinux.org/" + +LICENSE="|| ( GPL-2 GPL-3 ) CDDL" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +IUSE="custom-cflags debug dracut +rootfs test test-suite static-libs" +DEPEND+=" sys-apps/util-linux[static-libs?] + sys-libs/zlib[static-libs(+)?]" +RDEPEND+=" ${DEPEND} + !sys-fs/zfs-fuse + !prefix? ( sys-fs/udev ) + test-suite? ( + sys-apps/gawk + sys-apps/util-linux + sys-devel/bc + sys-block/parted + sys-fs/lsscsi + sys-fs/mdadm + sys-process/procps + virtual/modutils + ) + rootfs? ( + app-arch/cpio + app-misc/pax-utils + )" +DEPEND+=" test? ( sys-fs/mdadm )" + +SPL_S="${S}/spl-src" +ZFS_S="${S}/zfs-src" + +spl-zfs-userspace_pkg_setup() { + CONFIG_CHECK=" + !DEBUG_LOCK_ALLOC + BLK_DEV_LOOP + EFI_PARTITION + MODULES + KALLSYMS + ZLIB_DEFLATE + ZLIB_INFLATE" + kernel_is ge 2 6 26 || die "Linux 2.6.26 or newer required" + check_extra_config +} + +spl-zfs-userspace_src_unpack() { + # unpack spl + EGIT_REPO_URI="${SPL_GIT_REPO}" \ + EGIT_BRANCH="${SPL_GIT_BRANCH}" \ + EGIT_COMMIT="${SPL_GIT_COMMIT}" \ + EGIT_SOURCEDIR="${SPL_S}" \ + git-2_src_unpack + + # unpack zfs + EGIT_REPO_URI="${ZFS_GIT_REPO}" \ + EGIT_BRANCH="${ZFS_GIT_BRANCH}" \ + EGIT_COMMIT="${ZFS_GIT_COMMIT}" \ + EGIT_SOURCEDIR="${ZFS_S}" \ + git-2_src_unpack +} + +_zfs_src_prepare() { + # Workaround for hard coded path + sed -i "s|/sbin/lsmod|/bin/lsmod|" "${ZFS_S}"/scripts/common.sh.in || die + # Workaround rename + sed -i "s|/usr/bin/scsi-rescan|/usr/sbin/rescan-scsi-bus|" "${ZFS_S}"/scripts/common.sh.in || die + cd "${ZFS_S}" && ECONF_SOURCE="${ZFS_S}" autotools-utils_src_prepare +} + +_spl_src_prepare() { + # Workaround for hard coded path + sed -i "s|/sbin/lsmod|/bin/lsmod|" "${SPL_S}"/scripts/check.sh || die + cd "${SPL_S}" && ECONF_SOURCE="${SPL_S}" autotools-utils_src_prepare +} + +spl-zfs-userspace_src_prepare() { + _spl_src_prepare + _zfs_src_prepare +} + +_zfs_src_configure() { + use custom-cflags || strip-flags + set_arch_to_kernel + + local myeconfargs=( + --bindir="${EPREFIX}/bin" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="${EPREFIX}/lib/udev" + $(use_enable debug) + --with-spl="${SPL_S}" + ) + cd "${ZFS_S}" && ECONF_SOURCE="${ZFS_S}" autotools-utils_src_configure +} + +_spl_src_configure() { + use custom-cflags || strip-flags + 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) + --with-config=user + ) + cd "${SPL_S}" && ECONF_SOURCE="${SPL_S}" autotools-utils_src_configure +} + +spl-zfs-userspace_src_configure() { + _spl_src_configure + _zfs_src_configure +} + +_zfs_src_compile() { + cd "${ZFS_S}" && ECONF_SOURCE="${ZFS_S}" autotools-utils_src_compile +} + +_spl_src_compile() { + cd "${SPL_S}" && ECONF_SOURCE="${SPL_S}" autotools-utils_src_compile +} + +spl-zfs-userspace_src_compile() { + _spl_src_compile + _zfs_src_compile +} + +_zfs_src_install() { + cd "${ZFS_S}" && ECONF_SOURCE="${ZFS_S}" autotools-utils_src_install + gen_usr_ldscript -a uutil nvpair zpool zfs + use dracut || rm -rf "${ED}usr/share/dracut" + use test-suite || rm -rf "${ED}usr/libexec" + + if use rootfs + then + doinitd "${FILESDIR}/zfs-shutdown" + exeinto /usr/share/zfs + doexe "${FILESDIR}/linuxrc" + fi +} + +_spl_src_install() { + cd "${SPL_S}" && ECONF_SOURCE="${SPL_S}" autotools-utils_src_install + rm -rf "${ED}"/usr # make sure +} + +spl-zfs-userspace_src_install() { + _spl_src_install + _zfs_src_install +} + +spl-zfs-userspace_src_test() { + if [[ ! -e /proc/modules ]] + then + die "Missing /proc/modules" + elif [[ $UID -ne 0 ]] + then + ewarn "Cannot run make check tests with FEATURES=userpriv." + ewarn "Skipping make check tests." + elif grep -q '^spl ' /proc/modules + then + ewarn "Cannot run make check tests with module spl loaded." + ewarn "Skipping make check tests." + else + cd "${SPL_S}" && ECONF_SOURCE="${SPL_S}" autotools-utils_src_test + cd "${ZFS_S}" && ECONF_SOURCE="${ZFS_S}" autotools-utils_src_test + fi +} + -- cgit v1.2.3