summaryrefslogtreecommitdiff
path: root/libre/bbswitch-lts/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'libre/bbswitch-lts/PKGBUILD')
-rw-r--r--libre/bbswitch-lts/PKGBUILD78
1 files changed, 78 insertions, 0 deletions
diff --git a/libre/bbswitch-lts/PKGBUILD b/libre/bbswitch-lts/PKGBUILD
new file mode 100644
index 000000000..5d0473538
--- /dev/null
+++ b/libre/bbswitch-lts/PKGBUILD
@@ -0,0 +1,78 @@
+# Maintainer (Arch): Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor (Arch): M0Rf30
+# Contributor (Arch): Samsagax <samsagax@gmail.com>
+# Contributor (Hyperbola): André Silva <emulatorman@hyperbola.info>
+# Contributor (Hyperbola): Márcio Silva <coadde@hyperbola.info>
+# Maintainer: Omar Vega Ramos <ovruni@gnu.org.pe>
+# Contributor: Luke Shumaker <lukeshu@sbcglobal.net>
+
+_kernelname=-lts
+
+if [[ ${_kernelname} == "" ]]; then
+ _basekernel=4.14
+ _archrel=96
+ _parabolarel=1
+elif [[ ${_kernelname} == -lts ]]; then
+ _basekernel=4.9
+ _archrel=38
+ _parabolarel=1
+fi
+
+pkgbase=bbswitch
+pkgver=0.8
+pkgrel=${_archrel}.parabola${_parabolarel}.basekernel${_basekernel}
+_extramodules=extramodules-${_basekernel}${_kernelname}
+pkgdesc="Kernel module allowing to switch dedicated graphics card on Optimus laptops (built for the linux-libre${_kernelname} kernel package)"
+arch=('i686' 'x86_64')
+url="http://github.com/Bumblebee-Project/${pkgbase}"
+license=('GPL')
+
+# Generic (you shouldn't have to modify any of these variables)
+_toohigh=$(IFS=. read a b <<<$_basekernel; echo $a.$((b+1)))
+makedepends=("linux-libre${_kernelname}-headers>=${_basekernel}" "linux-libre${_kernelname}-headers<${_toohigh}" "linux-libre${_kernelname}>=${_basekernel}" "linux-libre${_kernelname}<${_toohigh}")
+makedepends+=('libelf')
+
+if [[ ${_kernelname} != "" ]]; then
+ provides=("${pkgbase}")
+fi
+
+source=("${pkgbase}-${pkgver}.tar.gz::https://github.com/Bumblebee-Project/bbswitch/archive/v${pkgver}.tar.gz")
+sha256sums=('76cabd3f734fb4fe6ebfe3ec9814138d0d6f47d47238521ecbd6a986b60d1477')
+
+build() {
+ cd "${pkgbase}-${pkgver}"
+ _kernver="$(cat /usr/lib/modules/${_extramodules}/version)"
+ make KDIR=/lib/modules/${_kernver}/build
+}
+
+_package() {
+ depends=("linux-libre${_kernelname}>=${_basekernel}" "linux-libre${_kernelname}<${_toohigh}")
+ replaces=("${pkgbase}-libre${_kernelname}" "${pkgbase}-parabola${_kernelname}")
+ conflicts=("${pkgbase}-libre${_kernelname}" "${pkgbase}-parabola${_kernelname}")
+
+ cd "${pkgbase}-${pkgver}"
+ install -Dt "${pkgdir}/usr/lib/modules/${_extramodules}" -m644 bbswitch.ko
+ find "${pkgdir}" -name '*.ko' -exec gzip -n {} +
+}
+
+if [[ ${_kernelname} == "" ]]; then
+ _package-dkms() {
+ depends=('dkms')
+ conflicts=('bbswitch')
+ provides=('bbswitch')
+
+ cd "${pkgbase}-${pkgver}"
+ install -Dt "${pkgdir}/usr/src/${pkgbase}-${pkgver}" -m644 Makefile bbswitch.c dkms/dkms.conf
+ }
+
+ pkgname=("${pkgbase}${_kernelname}" "${pkgbase}${_kernelname}-dkms")
+else
+ pkgname=("${pkgbase}${_kernelname}")
+fi
+
+for _p in ${pkgname[@]}; do
+ eval "package_${_p}() {
+ $(declare -f "_package${_p#${pkgbase}${_kernelname}}")
+ _package${_p#${pkgbase}${_kernelname}}
+ }"
+done