summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authornemaeon2015-08-12 15:52:36 -0400
committernemaeon2015-08-12 15:52:36 -0400
commit7d7631d665672a6e587ad4002f0049e09a713f84 (patch)
tree3c6b6b0a4ddcbe69395d1e6e2893e4deb3095fc6
parent4c13166ca29198b5c6f120827ac166fccea779f0 (diff)
downloadaur-7d7631d665672a6e587ad4002f0049e09a713f84.tar.gz
Tweaked the PKGBUILD for better bash code
-rw-r--r--.SRCINFO13
-rwxr-xr-xPKGBUILD100
2 files changed, 78 insertions, 35 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 6ddb56631e03..e8ba2161160a 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -6,11 +6,9 @@ pkgbase = nvidia-ck-fbcondecor
install = nvidia-ck-fbcondecor.install
arch = i686
arch = x86_64
- license = custom
- makedepends = linux-ck-fbcondecor-headers>=4.1
- makedepends = linux-ck-fbcondecor-headers<4.2
- depends = linux-ck-fbcondecor>=4.1
- depends = linux-ck-fbcondecor<4.2
+ license = custom:NVIDIA
+ makedepends = linux-ck-fbcondecor-headers
+ depends = linux-ck-fbcondecor
depends = nvidia-libgl
depends = nvidia-utils=355.06
conflicts = nvidia-340xx-ck
@@ -60,10 +58,11 @@ pkgbase = nvidia-ck-fbcondecor
conflicts = nvidia-340xx-ck-pentm
conflicts = nvidia-340xx-ck-sandybridge
conflicts = nvidia-ck
+ conflicts = nvidia
options = !strip
- source_i686 = ftp://download.nvidia.com/XFree86/Linux-x86/355.06/NVIDIA-Linux-x86-355.06.run
+ source_i686 = http://us.download.nvidia.com/XFree86/Linux-x86/355.06/NVIDIA-Linux-x86-355.06.run
md5sums_i686 = c4d2ae0dd6338874e5e8358fe630ba8f
- source_x86_64 = ftp://download.nvidia.com/XFree86/Linux-x86_64/355.06/NVIDIA-Linux-x86_64-355.06-no-compat32.run
+ source_x86_64 = http://us.download.nvidia.com/XFree86/Linux-x86_64/355.06/NVIDIA-Linux-x86_64-355.06-no-compat32.run
md5sums_x86_64 = 8bdf64adc94bd9e170e4a7412ca9e5ba
pkgname = nvidia-ck-fbcondecor
diff --git a/PKGBUILD b/PKGBUILD
index a896edb1a344..4a62ec177728 100755
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -11,45 +11,89 @@ _pkgdesc="NVIDIA drivers for linux-ck-fbcondecor."
pkgdesc="$_pkgdesc"
arch=('i686' 'x86_64')
url="http://www.nvidia.com/"
-depends=('linux-ck-fbcondecor>=4.1' 'linux-ck-fbcondecor<4.2' "nvidia-libgl" "nvidia-utils=${pkgver}")
-makedepends=('linux-ck-fbcondecor-headers>=4.1' 'linux-ck-fbcondecor-headers<4.2')
-conflicts=('nvidia-340xx-ck' 'nvidia-304xx-ck' 'nvidia-275xx-ck' 'nvidia-319-ck' 'nvidia-96xx-ck' 'nvidia-beta-ck' 'nvidia-ck-atom' 'nvidia-ck-barcelona' 'nvidia-ck-bulldozer' 'nvidia-ck-corex' 'nvidia-ck-core2' 'nvidia-ck-haswell' 'nvidia-ck-ivybridge' 'nvidia-ck-kx' 'nvidia-ck-k10' 'nvidia-ck-nehalem' 'nvidia-ck-p4' 'nvidia-ck-piledriver' 'nvidia-ck-pentm' 'nvidia-ck-sandybridge' 'nvidia-304xx-ck-atom' 'nvidia-304xx-ck-barcelona' 'nvidia-304xx-ck-corex' 'nvidia-304xx-ck-core2' 'nvidia-304xx-ck-haswell' 'nvidia-304xx-ck-ivybridge' 'nvidia-304xx-ck-kx' 'nvidia-304xx-ck-k10' 'nvidia-304xx-ck-nehalem' 'nvidia-304xx-ck-p4' 'nvidia-304xx-ck-piledriver' 'nvidia-304xx-ck-pentm' 'nvidia-304xx-ck-sandybridge' 'nvidia-340xx-ck-atom' 'nvidia-340xx-ck-barcelona' 'nvidia-340xx-ck-bulldozer' 'nvidia-340xx-ck-core2' 'nvidia-340xx-ck-haswell' 'nvidia-340xx-ck-ivybridge' 'nvidia-340xx-ck-kx' 'nvidia-340xx-ck-k10' 'nvidia-340xx-ck-nehalem' 'nvidia-340xx-ck-p4' 'nvidia-340xx-ck-piledriver' 'nvidia-340xx-ck-pentm' 'nvidia-340xx-ck-sandybridge' 'nvidia-ck')
+license=('custom:NVIDIA')
+depends=('linux-ck-fbcondecor' "nvidia-libgl" "nvidia-utils=${pkgver}")
+makedepends=('linux-ck-fbcondecor-headers' )
+conflicts=('nvidia-340xx-ck' 'nvidia-304xx-ck' 'nvidia-275xx-ck' 'nvidia-319-ck' 'nvidia-96xx-ck' 'nvidia-beta-ck' 'nvidia-ck-atom' 'nvidia-ck-barcelona' 'nvidia-ck-bulldozer' 'nvidia-ck-corex' 'nvidia-ck-core2' 'nvidia-ck-haswell' 'nvidia-ck-ivybridge' 'nvidia-ck-kx' 'nvidia-ck-k10' 'nvidia-ck-nehalem' 'nvidia-ck-p4' 'nvidia-ck-piledriver' 'nvidia-ck-pentm' 'nvidia-ck-sandybridge' 'nvidia-304xx-ck-atom' 'nvidia-304xx-ck-barcelona' 'nvidia-304xx-ck-corex' 'nvidia-304xx-ck-core2' 'nvidia-304xx-ck-haswell' 'nvidia-304xx-ck-ivybridge' 'nvidia-304xx-ck-kx' 'nvidia-304xx-ck-k10' 'nvidia-304xx-ck-nehalem' 'nvidia-304xx-ck-p4' 'nvidia-304xx-ck-piledriver' 'nvidia-304xx-ck-pentm' 'nvidia-304xx-ck-sandybridge' 'nvidia-340xx-ck-atom' 'nvidia-340xx-ck-barcelona' 'nvidia-340xx-ck-bulldozer' 'nvidia-340xx-ck-core2' 'nvidia-340xx-ck-haswell' 'nvidia-340xx-ck-ivybridge' 'nvidia-340xx-ck-kx' 'nvidia-340xx-ck-k10' 'nvidia-340xx-ck-nehalem' 'nvidia-340xx-ck-p4' 'nvidia-340xx-ck-piledriver' 'nvidia-340xx-ck-pentm' 'nvidia-340xx-ck-sandybridge' 'nvidia-ck' 'nvidia')
#groups=('ck-generic')
#replaces=()
-license=('custom')
-install=nvidia-ck-fbcondecor.install
options=(!strip)
-source_i686+=("ftp://download.nvidia.com/XFree86/Linux-x86/${pkgver}/NVIDIA-Linux-x86-${pkgver}.run")
-source_x86_64+=("ftp://download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}-no-compat32.run")
+install=nvidia-ck-fbcondecor.install
+# Installer name
+case "$CARCH" in
+ i686) _pkg="NVIDIA-Linux-x86-$pkgver" ;;
+ x86_64) _pkg="NVIDIA-Linux-x86_64-$pkgver-no-compat32" ;;
+esac
+
+# Source
+source_i686=("http://us.download.nvidia.com/XFree86/Linux-x86/$pkgver/NVIDIA-Linux-x86-$pkgver.run")
+source_x86_64=("http://us.download.nvidia.com/XFree86/Linux-x86_64/$pkgver/NVIDIA-Linux-x86_64-$pkgver-no-compat32.run")
md5sums_i686=('c4d2ae0dd6338874e5e8358fe630ba8f')
md5sums_x86_64=('8bdf64adc94bd9e170e4a7412ca9e5ba')
-[[ "$CARCH" = "i686" ]] && _pkg="NVIDIA-Linux-x86-${pkgver}"
-[[ "$CARCH" = "x86_64" ]] && _pkg="NVIDIA-Linux-x86_64-${pkgver}-no-compat32"
+
+# Auto-detect patches (e.g. nvidia-linux-4.1.patch)
+for _patch in $(ls "$startdir"/*.patch 2>/dev/null); do
+ source+=("$_patch")
+ md5sums+=('SKIP')
+done
prepare() {
- sh "${_pkg}.run" --extract-only
- cd "${_pkg}"
- # patches here
+ # Remove previous builds
+ if [[ -d $_pkg ]]; then
+ rm -rf $_pkg
+ fi
+
+ # Extract
+ msg2 "Self-Extracting $_pkg.run..."
+ sh $_pkg.run -x
+ cd $_pkg
+
+ # Loop patches
+ for _patch in $(ls "$srcdir"/*.patch 2>/dev/null); do
+ # Version variables
+ _kernel=$(cat /usr/lib/modules/$_extramodules/version)
+ _major_patch=$(echo $_patch | grep -Po "\d+\.\d+")
+
+ # Check version
+ if (( $(vercmp $_kernel $_major_patch) >= 0 )); then
+ msg2 "Applying ${_patch##*/}..."
+ patch -p1 -i "$_patch"
+ fi
+ done
}
build() {
- _kernver="$(cat /usr/lib/modules/${_extramodules}/version)"
- cd "${_pkg}/kernel"
- make SYSSRC=/usr/lib/modules/"${_kernver}/build" module
-
- if [[ "$CARCH" = "x86_64" ]]; then
- cd uvm
- make SYSSRC=/usr/lib/modules/"${_kernver}/build" module
- fi
+ # Version of 'linux'
+ _major=$(pacman -Q linux | grep -Po "\d+\.\d+")
+ _kernel=$(cat /usr/lib/modules/$_extramodules/version)
+
+ # Build module
+ cd $_pkg/kernel
+ msg2 "Building Nvidia module for $_kernel..."
+ make SYSSRC=/usr/lib/modules/$_kernel/build module
}
package() {
- install -Dm644 "${srcdir}/${_pkg}/kernel/nvidia.ko" \
- "${pkgdir}/usr/lib/modules/${_extramodules}/nvidia.ko"
- install -D -m644 "${srcdir}/${_pkg}/kernel/uvm/nvidia-uvm.ko" \
- "${pkgdir}/usr/lib/modules/${_extramodules}/nvidia-uvm.ko"
- gzip -9 "${pkgdir}/usr/lib/modules/${_extramodules}/"*.ko
- install -dm755 "${pkgdir}/usr/lib/modprobe.d"
- echo "blacklist nouveau" >> "${pkgdir}/usr/lib/modprobe.d/nvidia-ck-fbcondecor.conf"
-# sed -i -e "s/EXTRAMODULES='.*'/EXTRAMODULES='${_extramodules}'/" "${startdir}/nvidia-ck-fbcondecor.install"
+ # Version of 'linux'
+ _major=$(pacman -Q linux | grep -Po "\d+\.\d+")
+
+ # Install
+ install -Dm644 $_pkg/kernel/nvidia.ko \
+ "$pkgdir"/usr/lib/modules/$_extramodules/nvidia.ko
+
+ # Install UVM Module: http://devblogs.nvidia.com/parallelforall/unified-memory-in-cuda-6/
+ if [[ $CARCH = x86_64 ]]; then
+ install -Dm644 $_pkg/kernel/nvidia-uvm.ko \
+ "$pkgdir/usr/lib/modules/$_extramodules/nvidia-uvm.ko"
+ fi
+
+ # Compress
+ gzip "$pkgdir"/usr/lib/modules/$_extramodules/nvidia*.ko
+
+ # Write _extramodules to .install
+ sed -i "s/_extramodules='.*'/_extramodules='$_extramodules'/" "$startdir"/$install
+
+ # Blacklist Nouveau
+ install -d "$pkgdir"/usr/lib/modprobe.d/
+ echo "blacklist nouveau" >> "$pkgdir"/usr/lib/modprobe.d/nvidia.conf
}