diff options
Diffstat (limited to 'pcr/spl-git')
-rw-r--r-- | pcr/spl-git/PKGBUILD | 68 | ||||
-rw-r--r-- | pcr/spl-git/spl.install | 37 |
2 files changed, 105 insertions, 0 deletions
diff --git a/pcr/spl-git/PKGBUILD b/pcr/spl-git/PKGBUILD new file mode 100644 index 000000000..46700cc8c --- /dev/null +++ b/pcr/spl-git/PKGBUILD @@ -0,0 +1,68 @@ +# Maintainer (Arch): Jesus Alvarez <jeezusjr at gmail dot com> +# Contributor (Arch): Kyle Fuller <inbox at kylefuller dot co dot uk> +# Maintainer: Omar Vega Ramos <ovruni@gnu.org.pe> +# +# This PKGBUILD was generated by the archzfs build scripts located at +# +# http://github.com/demizer/archzfs +# +# The build script generates and updates the pkgver and _kernel* variables. +# +pkgname="spl-git" +pkgver=0.6.4.2_r0_g04974ca_4.1.6_1 +pkgrel=1 +license=('GPL') + +# Used incase the i686 and x86_64 linux packages get out of sync with the +# PKGREL. This occurred on January 31, 2014 where i686 was versioned at +# 3.12.9-1 and x86_64 was versioned at 3.12.9-2. +_kernel_version_x32="4.1.6-1" +_kernel_version_x32_full="4.1.6-gnu-1" +_kernel_version_x64="4.1.6-1" +_kernel_version_x64_full="4.1.6-gnu-1" + +if [[ $CARCH == "i686" ]]; then + _kernel_version=${_kernel_version_x32} + _kernel_version_full=${_kernel_version_x32_full} +else + _kernel_version=${_kernel_version_x64} + _kernel_version_full=${_kernel_version_x64_full} +fi + +pkgdesc="Solaris Porting Layer kernel modules." +depends=("spl-utils-git" "linux=${_kernel_version}") +makedepends=("git" "linux-headers=${_kernel_version}") +arch=("i686" "x86_64") +url="http://zfsonlinux.org/" +source=("git+https://github.com/zfsonlinux/spl.git#commit=04974ca1") +groups=("archzfs-git") +md5sums=('SKIP') +replaces=("spl") +provides=("spl") +conflicts=("spl" "spl-lts") +install=spl.install + +build() { + cd "${srcdir}/spl" + ./autogen.sh + + _at_enable="" + [ "${CARCH}" == "i686" ] && _at_enable="--enable-atomic-spinlocks" + + ./configure --prefix=/usr \ + --libdir=/usr/lib \ + --sbindir=/usr/bin \ + --with-linux=/usr/lib/modules/${_kernel_version_full}/build \ + --with-config=kernel \ + ${_at_enable} + + make +} + +package() { + cd "${srcdir}/spl" + make DESTDIR="${pkgdir}" install + + mv "${pkgdir}/lib" "${pkgdir}/usr/" + sed -i "s+${srcdir}++" ${pkgdir}/usr/src/spl-*/${_kernel_version_full}/Module.symvers +} diff --git a/pcr/spl-git/spl.install b/pcr/spl-git/spl.install new file mode 100644 index 000000000..e316e7542 --- /dev/null +++ b/pcr/spl-git/spl.install @@ -0,0 +1,37 @@ +post_install() { + check_hostid + run_depmod +} + +post_remove() { + run_depmod +} + +post_upgrade() { + check_hostid + run_depmod +} + +check_hostid() { + # Check /etc/hostid to see if it set to the sentinel value, see + # https://wiki.archlinux.org/index.php/ZFS for more information. + HOSTID=$(hostid) + if [ "0x$HOSTID" == "0xffffffff" ]; then + # Generate a new hostid + : >/etc/hostid + HOSTID=$(hostid) + # hostid is 4 byte little endian + printf $(echo -n $HOSTID | sed 's/\(..\)\(..\)\(..\)\(..\)/\\x\4\\x\3\\x\2\\x\1/') >/etc/hostid + fi +} + +run_depmod() { + echo ">>> Updating module dependencies. Please wait ..." + + _kernel_version_x32_full="4.1.6-gnu-1" + _kernel_version_x64_full="4.1.6-gnu-1" + + [[ $CARCH == "i686" ]] && _kernel_version_full=${_kernel_version_x32_full} || _kernel_version_full=${_kernel_version_x64_full} + + depmod ${_kernel_version_full} +} |