From c93b924dcc87709cb91e6d3a454c24fdba8779ce Mon Sep 17 00:00:00 2001 From: James Meyer Date: Sat, 29 Nov 2008 14:36:38 -0600 Subject: older nvidia pkg's straight from arch/modified for .26 kernel --- abs/core-testing/nvidia-71xx-utils/PKGBUILD | 63 ++++++ .../nvidia-71xx-utils/nvidia-71xx.install | 29 +++ .../nvidia-71xx-utils/supported-cards.txt | 236 +++++++++++++++++++++ .../nvidia-71xx/NVIDIA_173.14.12_2.6.27.patch | 87 ++++++++ abs/core-testing/nvidia-71xx/PKGBUILD | 45 ++++ abs/core-testing/nvidia-71xx/nvidia-71xx.install | 23 ++ abs/core-testing/nvidia-96xx-utils/PKGBUILD | 65 ++++++ .../nvidia-96xx-utils/nvidia-96xx.install | 22 ++ .../nvidia-96xx-utils/supported-cards.txt | 236 +++++++++++++++++++++ .../nvidia-96xx/NVIDIA_173.14.12_2.6.27.patch | 87 ++++++++ abs/core-testing/nvidia-96xx/PKGBUILD | 44 ++++ abs/core-testing/nvidia-96xx/nvidia-96xx.install | 22 ++ 12 files changed, 959 insertions(+) create mode 100644 abs/core-testing/nvidia-71xx-utils/PKGBUILD create mode 100644 abs/core-testing/nvidia-71xx-utils/nvidia-71xx.install create mode 100644 abs/core-testing/nvidia-71xx-utils/supported-cards.txt create mode 100644 abs/core-testing/nvidia-71xx/NVIDIA_173.14.12_2.6.27.patch create mode 100644 abs/core-testing/nvidia-71xx/PKGBUILD create mode 100644 abs/core-testing/nvidia-71xx/nvidia-71xx.install create mode 100644 abs/core-testing/nvidia-96xx-utils/PKGBUILD create mode 100644 abs/core-testing/nvidia-96xx-utils/nvidia-96xx.install create mode 100644 abs/core-testing/nvidia-96xx-utils/supported-cards.txt create mode 100644 abs/core-testing/nvidia-96xx/NVIDIA_173.14.12_2.6.27.patch create mode 100644 abs/core-testing/nvidia-96xx/PKGBUILD create mode 100644 abs/core-testing/nvidia-96xx/nvidia-96xx.install diff --git a/abs/core-testing/nvidia-71xx-utils/PKGBUILD b/abs/core-testing/nvidia-71xx-utils/PKGBUILD new file mode 100644 index 0000000..8d3ac30 --- /dev/null +++ b/abs/core-testing/nvidia-71xx-utils/PKGBUILD @@ -0,0 +1,63 @@ +# $Id: PKGBUILD 5949 2008-07-21 20:32:38Z thomas $ +# Maintainer: Tobias Powalowski +# Contributor: James Rayner + +pkgname=nvidia-71xx-utils +pkgver=71.86.06 +pkgrel=1 +pkgdesc="NVIDIA legacy drivers utilities and libraries, 71xx branch." +arch=(i686 x86_64) +[ "$CARCH" = "i686" ] && ARCH=x86 +[ "$CARCH" = "x86_64" ] && ARCH=x86_64 +url="http://www.nvidia.com/" +depends=('xorg-server') +conflicts=('libgl' 'libgl-dri' 'ati-fglrx-utils' 'nvidia-utils' \ + 'nvidia-96xx-utils' 'nvidia-legacy-utils') +replaces=('nvidia-legacy-utils') +provides=('libgl') +license=('custom') +install=nvidia-71xx.install +source=(http://us.download.nvidia.com/XFree86/Linux-${ARCH}/${pkgver}/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run \ + supported-cards.txt) +options=(docs !strip) +md5sums=('61e4511d1bbb2962ca139091210b61ea' + '6363d7e494d33729609540088e33e73f') +[ "$CARCH" = "x86_64" ] && md5sums=('205599549ddd6fadecfbc1adb090dfe2' + '6363d7e494d33729609540088e33e73f') + +build() +{ + # override nvida install routine and do it the long way. + cd $startdir/src/ + sh NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run --extract-only + cd NVIDIA-Linux-${ARCH}-${pkgver}-pkg0/usr/ + + mkdir -p $startdir/pkg/usr/{lib,bin,share/applications,share/pixmaps} + mkdir -p $startdir/pkg/usr/lib/xorg/modules/{extensions,drivers} + mkdir -p $startdir/pkg/usr/share/licenses/nvidia-71xx/ + + install lib/{libGLcore.so.${pkgver},libGL.so.${pkgver},tls/libnvidia-tls.so.${pkgver}} \ + $startdir/pkg/usr/lib/ || return 1 + install X11R6/lib/libXv* $startdir/pkg/usr/lib/ || return 1 + install -m644 share/applications/nvidia-settings.desktop $startdir/pkg/usr/share/applications/ || return 1 + # fix nvidia .desktop file + sed -e 's:__UTILS_PATH__:/usr/bin:' -e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' -i $startdir/pkg/usr/share/applications/nvidia-settings.desktop + install -m644 share/pixmaps/nvidia-settings.png $startdir/pkg/usr/share/pixmaps/ || return 1 + install X11R6/lib/modules/drivers/nvidia_drv.so $startdir/pkg/usr/lib/xorg/modules/drivers || return 1 + install X11R6/lib/modules/extensions/libglx.so.$pkgver $startdir/pkg/usr/lib/xorg/modules/extensions || return 1 + install -m755 bin/nvidia-{settings,bug-report.sh} $startdir/pkg/usr/bin/ || return 1 + cd $startdir/pkg/usr/lib/ + ln -s /usr/lib/libGL.so.$pkgver libGL.so || return 1 + ln -s /usr/lib/libGL.so.$pkgver libGL.so.1 || return 1 + ln -s /usr/lib/libGLcore.so.$pkgver libGLcore.so.1 || return 1 + ln -s /usr/lib/libnvidia-tls.so.$pkgver libnvidia-tls.so.1 || return 1 + cd $startdir/pkg/usr/lib/xorg/modules/extensions + ln -s /usr/lib/xorg/modules/extensions/libglx.so.$pkgver libglx.so || return 1 + + install -m644 $startdir/src/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0/LICENSE $startdir/pkg/usr/share/licenses/nvidia-71xx/ || return 1 + install -D -m644 $startdir/src/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0/usr/share/doc/README $startdir/pkg/usr/share/doc/nvidia/README || return 1 + install -D -m644 $startdir/src/supported-cards.txt $startdir/pkg/usr/share/doc/nvidia/supported-cards.txt || return 1 + + find $startdir/pkg/usr -type d -exec chmod 755 {} \; + # phew :) +} diff --git a/abs/core-testing/nvidia-71xx-utils/nvidia-71xx.install b/abs/core-testing/nvidia-71xx-utils/nvidia-71xx.install new file mode 100644 index 0000000..cea8f32 --- /dev/null +++ b/abs/core-testing/nvidia-71xx-utils/nvidia-71xx.install @@ -0,0 +1,29 @@ +# arg 1: the new package version +post_install() { + + echo ------------------------------- + echo By using this package you accept the NVIDIA license, + echo which has been installed in /usr/share/licenses/nvidia-71xx/LICENSE + echo If you do not accept this license, you must remove the package immediately. + echo Dont forget to update your /etc/X11/xorg.conf + echo In order to use nvidia-settings, you need to install 'gtk2' package. + echo ------------------------------- + + ### removing outdated workaround + if grep 'create-nvidia-nodes.sh' /etc/modprobe.conf >/dev/null 2>&1; then + cat /etc/modprobe.conf | grep -v 'create-nvidia-nodes.sh' \ + >/tmp/.pacnvidia + mv /tmp/.pacnvidia /etc/modprobe.conf + chmod 644 etc/modprobe.conf + fi +} + +# arg 1: the new package version +# arg 2: the old package version +post_upgrade() { + post_install $1 +} + +op=$1 +shift +$op $* diff --git a/abs/core-testing/nvidia-71xx-utils/supported-cards.txt b/abs/core-testing/nvidia-71xx-utils/supported-cards.txt new file mode 100644 index 0000000..d4f26ea --- /dev/null +++ b/abs/core-testing/nvidia-71xx-utils/supported-cards.txt @@ -0,0 +1,236 @@ +Archlinux currently manages three branches of the NVIDIA binary driver: + +nvidia (latest nvidia release) +nvidia-96xx (96xx legacy branch) +nvidia-71xx (71xx legacy branch) + +This excerpt from the NVIDIA 1.0.9746 README lists the supported devices +for each of those: + +______________________________________________________________________________ + +Appendix A. Supported NVIDIA Graphics Chips +______________________________________________________________________________ + +For the most complete and accurate listing of supported GPUs, please see the +Supported Products List, available from the NVIDIA Linux x86 Graphics Driver +download page. Please go to http://www.nvidia.com/object/unix.html, follow the +Archive link under the Linux x86 heading, follow the link for the 1.0-9746 +driver, and then go to the Supported Products List. + + + NVIDIA chip name Device PCI ID + ---------------------------------- ---------------------------------- + GeForce 6800 Ultra 0x0040 + GeForce 6800 0x0041 + GeForce 6800 XE 0x0043 + GeForce 6800 XT 0x0044 + GeForce 6800 GT 0x0045 + GeForce 6800 GT 0x0046 + GeForce 6800 GS 0x0047 + GeForce 6800 XT 0x0048 + Quadro FX 4000 0x004E + GeForce 7800 GTX 0x0090 + GeForce 7800 GTX 0x0091 + GeForce 7800 GT 0x0092 + GeForce 7800 GS 0x0093 + GeForce Go 7800 0x0098 + GeForce Go 7800 GTX 0x0099 + Quadro FX 4500 0x009D + GeForce 6800 GS 0x00C0 + GeForce 6800 0x00C1 + GeForce 6800 LE 0x00C2 + GeForce 6800 XT 0x00C3 + GeForce Go 6800 0x00C8 + GeForce Go 6800 Ultra 0x00C9 + Quadro FX Go1400 0x00CC + Quadro FX 3450/4000 SDI 0x00CD + Quadro FX 1400 0x00CE + GeForce 6800 Ultra/GeForce 6800 0x00F0 + GeForce 6600 GT 0x00F1 + GeForce 6600 0x00F2 + GeForce 6200 0x00F3 + GeForce 6600 LE 0x00F4 + GeForce 7800 GS 0x00F5 + GeForce 6800 GS 0x00F6 + Quadro FX 3400/4400 0x00F8 + GeForce 6800 Ultra 0x00F9 + GeForce PCX 5750 0x00FA + GeForce PCX 5900 0x00FB + GeForce PCX 5300/Quadro FX 330 0x00FC + Quadro NVS 280 PCI-E/Quadro FX 330 0x00FD + Quadro FX 1300 0x00FE + GeForce PCX 4300 0x00FF + GeForce 6600 GT 0x0140 + GeForce 6600 0x0141 + GeForce 6600 LE 0x0142 + GeForce 6600 VE 0x0143 + GeForce Go 6600 0x0144 + GeForce 6610 XL 0x0145 + GeForce Go 6600 TE/6200 TE 0x0146 + GeForce 6700 XL 0x0147 + GeForce Go 6600 0x0148 + GeForce Go 6600 GT 0x0149 + Quadro NVS 440 0x014A + Quadro FX 550 0x014C + Quadro FX 540 0x014E + GeForce 6200 0x014F + GeForce 6500 0x0160 + GeForce 6200 TurboCache(TM) 0x0161 + GeForce 6200 LE 0x0163 + GeForce Go 6200 0x0164 + Quadro NVS 285 0x0165 + GeForce Go 6400 0x0166 + GeForce Go 6200 0x0167 + GeForce Go 6400 0x0168 + GeForce 8800 GTX 0x0191 + GeForce 8800 GTS 0x0193 + GeForce 7300 LE 0x01D1 + GeForce 7300 SE 0x01D3 + Quadro NVS 110M/GeForce Go 7300 0x01D7 + GeForce Go 7400 0x01D8 + Quadro NVS 110M 0x01DA + Quadro NVS 120M 0x01DB + Quadro FX 350M 0x01DC + Quadro FX 350 0x01DE + GeForce 7300 GS 0x01DF + GeForce 6800 0x0211 + GeForce 6800 LE 0x0212 + GeForce 6800 GT 0x0215 + GeForce 6800 XT 0x0218 + GeForce 6200 0x0221 + GeForce 6150 0x0240 + GeForce 6150 LE 0x0241 + GeForce 6100 0x0242 + GeForce Go 6100 0x0247 + GeForce 7900 GTX 0x0290 + GeForce 7900 GT/GTO 0x0291 + GeForce 7900 GS 0x0292 + GeForce 7950 GX2 0x0294 + GeForce Go 7900 GS 0x0298 + GeForce Go 7900 GTX 0x0299 + Quadro FX 2500M 0x029A + Quadro FX 1500M 0x029B + Quadro FX 5500 0x029C + Quadro FX 3500M 0x029D + Quadro FX 1500 0x029E + Quadro FX 4500 X2 0x029F + GeForce 7600 GS 0x02E1 + GeForce FX 5800 Ultra 0x0301 + GeForce FX 5800 0x0302 + Quadro FX 2000 0x0308 + Quadro FX 1000 0x0309 + GeForce FX 5600 Ultra 0x0311 + GeForce FX 5600 0x0312 + GeForce FX 5600XT 0x0314 + GeForce FX Go5600 0x031A + GeForce FX Go5650 0x031B + Quadro FX Go700 0x031C + GeForce FX 5200 0x0320 + GeForce FX 5200 Ultra 0x0321 + GeForce FX 5200 0x0322 + GeForce FX 5200LE 0x0323 + GeForce FX Go5200 0x0324 + GeForce FX Go5250 0x0325 + GeForce FX 5500 0x0326 + GeForce FX 5100 0x0327 + GeForce FX Go5200 32M/64M 0x0328 + Quadro NVS 55/280 PCI 0x032A + Quadro FX 500/FX 600 0x032B + GeForce FX Go53xx 0x032C + GeForce FX Go5100 0x032D + GeForce FX 5900 Ultra 0x0330 + GeForce FX 5900 0x0331 + GeForce FX 5900XT 0x0332 + GeForce FX 5950 Ultra 0x0333 + GeForce FX 5900ZT 0x0334 + Quadro FX 3000 0x0338 + Quadro FX 700 0x033F + GeForce FX 5700 Ultra 0x0341 + GeForce FX 5700 0x0342 + GeForce FX 5700LE 0x0343 + GeForce FX 5700VE 0x0344 + GeForce FX Go5700 0x0347 + GeForce FX Go5700 0x0348 + Quadro FX Go1000 0x034C + Quadro FX 1100 0x034E + GeForce 7600 GT 0x0391 + GeForce 7600 GS 0x0392 + GeForce 7300 GT 0x0393 + GeForce Go 7600 0x0398 + Quadro FX 560 0x039E + + +Below are the legacy GPUs that are no longer supported in the unified driver. +These GPUs will continue to be maintained through the special legacy NVIDIA +GPU driver releases. + +The 1.0-96xx driver supports the following set of GPUs: + + + NVIDIA chip name Device PCI ID + ---------------------------------- ---------------------------------- + GeForce2 MX/MX 400 0x0110 + GeForce2 MX 100/200 0x0111 + GeForce2 Go 0x0112 + Quadro2 MXR/EX/Go 0x0113 + GeForce4 MX 460 0x0170 + GeForce4 MX 440 0x0171 + GeForce4 MX 420 0x0172 + GeForce4 MX 440-SE 0x0173 + GeForce4 440 Go 0x0174 + GeForce4 420 Go 0x0175 + GeForce4 420 Go 32M 0x0176 + GeForce4 460 Go 0x0177 + Quadro4 550 XGL 0x0178 + GeForce4 440 Go 64M 0x0179 + Quadro NVS 0x017A + Quadro4 500 GoGL 0x017C + GeForce4 410 Go 16M 0x017D + GeForce4 MX 440 with AGP8X 0x0181 + GeForce4 MX 440SE with AGP8X 0x0182 + GeForce4 MX 420 with AGP8X 0x0183 + GeForce4 MX 4000 0x0185 + Quadro4 580 XGL 0x0188 + Quadro NVS 280 SD 0x018A + Quadro4 380 XGL 0x018B + Quadro NVS 50 PCI 0x018C + GeForce2 Integrated GPU 0x01A0 + GeForce4 MX Integrated GPU 0x01F0 + GeForce3 0x0200 + GeForce3 Ti 200 0x0201 + GeForce3 Ti 500 0x0202 + Quadro DCC 0x0203 + GeForce4 Ti 4600 0x0250 + GeForce4 Ti 4400 0x0251 + GeForce4 Ti 4200 0x0253 + Quadro4 900 XGL 0x0258 + Quadro4 750 XGL 0x0259 + Quadro4 700 XGL 0x025B + GeForce4 Ti 4800 0x0280 + GeForce4 Ti 4200 with AGP8X 0x0281 + GeForce4 Ti 4800 SE 0x0282 + GeForce4 4200 Go 0x0286 + Quadro4 980 XGL 0x0288 + Quadro4 780 XGL 0x0289 + Quadro4 700 GoGL 0x028C + + +The 1.0-71xx driver supports the following set of GPUs: + + + NVIDIA chip name Device PCI ID + ---------------------------------- ---------------------------------- + RIVA TNT 0x0020 + RIVA TNT2/TNT2 Pro 0x0028 + RIVA TNT2 Ultra 0x0029 + Vanta/Vanta LT 0x002C + RIVA TNT2 Model 64/Model 64 Pro 0x002D + Aladdin TNT2 0x00A0 + GeForce 256 0x0100 + GeForce DDR 0x0101 + Quadro 0x0103 + GeForce2 GTS/GeForce2 Pro 0x0150 + GeForce2 Ti 0x0151 + GeForce2 Ultra 0x0152 + Quadro2 Pro 0x0153 diff --git a/abs/core-testing/nvidia-71xx/NVIDIA_173.14.12_2.6.27.patch b/abs/core-testing/nvidia-71xx/NVIDIA_173.14.12_2.6.27.patch new file mode 100644 index 0000000..1ba936b --- /dev/null +++ b/abs/core-testing/nvidia-71xx/NVIDIA_173.14.12_2.6.27.patch @@ -0,0 +1,87 @@ +diff -Nru NVIDIA-Linux-x86-173.14.12-pkg0.orig/usr/src/nv/nv.c NVIDIA-Linux-x86-173.14.12-pkg0/usr/src/nv/nv.c +--- usr/src/nv/nv.c 2008-07-18 03:42:50.000000000 +0200 ++++ NVIDIA-Linux-x86-173.14.12-pkg0/usr/src/nv/nv.c 2008-08-12 00:35:45.000000000 +0200 +@@ -1296,14 +1296,22 @@ + if (get_cpu() == cpu) + __nv_setup_pat_entries(NULL); + else ++ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) ++ smp_call_function(__nv_setup_pat_entries, hcpu, 1); ++ #else + smp_call_function(__nv_setup_pat_entries, hcpu, 1, 1); ++ #endif + put_cpu(); + break; + case CPU_DOWN_PREPARE: + if (get_cpu() == cpu) + __nv_restore_pat_entries(NULL); + else ++ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) ++ smp_call_function(__nv_restore_pat_entries, hcpu, 1); ++ #else + smp_call_function(__nv_restore_pat_entries, hcpu, 1, 1); ++ #endif + put_cpu(); + break; + } +diff -Nru NVIDIA-Linux-x86-173.14.12-pkg0.orig/usr/src/nv/nv-linux.h NVIDIA-Linux-x86-173.14.12-pkg0/usr/src/nv/nv-linux.h +--- usr/src/nv/nv-linux.h 2008-07-18 03:42:51.000000000 +0200 ++++ NVIDIA-Linux-x86-173.14.12-pkg0/usr/src/nv/nv-linux.h 2008-08-12 00:44:27.000000000 +0200 +@@ -104,7 +104,10 @@ + #endif + + #include ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) ++#else + #include ++#endif + #include + #include + +@@ -665,13 +668,21 @@ + #if defined(preempt_disable) + preempt_disable(); + #endif ++ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) ++ ret = smp_call_function(func, info, 1); ++ #else + ret = smp_call_function(func, info, 1, 1); ++ #endif + func(info); + #if defined(preempt_enable) + preempt_enable(); + #endif + #else ++ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) ++ ret = on_each_cpu(func, info, 1); ++ #else + ret = on_each_cpu(func, info, 1, 1); ++ #endif + #endif + return ret; + } +diff -Nru NVIDIA-Linux-x86-173.14.12-pkg0.orig/usr/src/nv/os-interface.c NVIDIA-Linux-x86-173.14.12-pkg0/usr/src/nv/os-interface.c +--- usr/src/nv/os-interface.c 2008-07-18 03:42:50.000000000 +0200 ++++ NVIDIA-Linux-x86-173.14.12-pkg0/usr/src/nv/os-interface.c 2008-08-12 00:48:07.000000000 +0200 +@@ -48,7 +48,11 @@ + #endif + local_bh_disable(); + atomic_set(&os_smp_barrier, 1); ++ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) ++ ret = smp_call_function(ipi_handler, NULL, 0); ++ #else + ret = smp_call_function(ipi_handler, NULL, 1, 0); ++ #endif + #endif + return (ret == 0) ? RM_OK : RM_ERROR; + } +@@ -704,7 +708,9 @@ + U032 sig + ) + { ++ #if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 26) + return kill_proc(pid, sig, 1) ? RM_ERR_OPERATING_SYSTEM : RM_OK; ++ #endif + } + + /*******************************************************************************/ diff --git a/abs/core-testing/nvidia-71xx/PKGBUILD b/abs/core-testing/nvidia-71xx/PKGBUILD new file mode 100644 index 0000000..e879abe --- /dev/null +++ b/abs/core-testing/nvidia-71xx/PKGBUILD @@ -0,0 +1,45 @@ +# $Id: PKGBUILD 14777 2008-10-10 15:34:50Z thomas $ +# Maintainer : Tobias Powalowski + +pkgname=nvidia-71xx +pkgver=71.86.06 +_kernver='2.6.26-ARCH' +pkgrel=3 +pkgdesc="NVIDIA legacy drivers for kernel26, 71xx branch" +arch=(i686 x86_64) +[ "$CARCH" = "i686" ] && ARCH=x86 +[ "$CARCH" = "x86_64" ] && ARCH=x86_64 +url="http://www.nvidia.com/" +depends=('nvidia-71xx-utils' 'kernel26>=2.6.26' 'kernel26<2.6.28') +conflicts=('nvidia' 'nvidia-96xx' 'nvidia-legacy') +replaces=('nvidia-legacy') +license=('custom') +source=(http://us.download.nvidia.com/XFree86/Linux-${ARCH}/${pkgver}/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run + NVIDIA_173.14.12_2.6.27.patch) +install="nvidia-71xx.install" +md5sums=('61e4511d1bbb2962ca139091210b61ea' + 'cd4a68b5a88be6976b90cd0df6bfe89e') +[ "$CARCH" = "x86_64" ] && md5sums=('205599549ddd6fadecfbc1adb090dfe2' + 'cd4a68b5a88be6976b90cd0df6bfe89e') + +build() { + cd $startdir/src + + # Extract + cd $startdir/src/ + sh NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run --extract-only + cd NVIDIA-Linux-${ARCH}-${pkgver}-pkg0 + + # Any extra patches are applied in here... + patch -Np1 -i ../NVIDIA_173.14.12_2.6.27.patch || return 1 + + cd usr/src/nv/ + ln -s Makefile.kbuild Makefile + make SYSSRC=/lib/modules/$_kernver/build module || return 1 + + # install kernel module + mkdir -p $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/video/ + install -m644 nvidia.ko $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/video/ || return 1 + + sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" $startdir/*.install +} diff --git a/abs/core-testing/nvidia-71xx/nvidia-71xx.install b/abs/core-testing/nvidia-71xx/nvidia-71xx.install new file mode 100644 index 0000000..18b7435 --- /dev/null +++ b/abs/core-testing/nvidia-71xx/nvidia-71xx.install @@ -0,0 +1,23 @@ +# arg 1: the new package version +post_install() { + KERNEL_VERSION='2.6.26-ARCH' + depmod -v $KERNEL_VERSION > /dev/null 2>&1 +} + +# arg 1: the new package version +# arg 2: the old package version +post_upgrade() { + post_install $1 + rmmod nvidia >/dev/null 2>&1 || echo 'In order to use the new nvidia module, exit Xserver and unload it manually.' +} + +# arg 1: the old package version +post_remove() { + KERNEL_VERSION='2.6.26-ARCH' + depmod -v $KERNEL_VERSION > /dev/null 2>&1 + rmmod nvidia >/dev/null 2>&1 +} + +op=$1 +shift +$op $* diff --git a/abs/core-testing/nvidia-96xx-utils/PKGBUILD b/abs/core-testing/nvidia-96xx-utils/PKGBUILD new file mode 100644 index 0000000..b745a3c --- /dev/null +++ b/abs/core-testing/nvidia-96xx-utils/PKGBUILD @@ -0,0 +1,65 @@ +# $Id: PKGBUILD 5959 2008-07-21 20:38:14Z thomas $ +# Maintainer: Tobias Powalowski +# Contributor: James Rayner + +pkgname=nvidia-96xx-utils +pkgver=96.43.07 +pkgrel=1 +pkgdesc="NVIDIA legacy drivers utilities and libraries, 96xx branch." +arch=(i686 x86_64) +license=('custom') +[ "$CARCH" = "i686" ] && ARCH=x86 +[ "$CARCH" = "x86_64" ] && ARCH=x86_64 +url="http://www.nvidia.com/" +depends=('xorg-server') +conflicts=('libgl' 'libgl-dri' 'ati-fglrx-utils' 'nvidia-utils' \ + 'nvidia-71xx-utils' 'nvidia-legacy-utils') +provides=('libgl') +install=nvidia-96xx.install +source=(http://us.download.nvidia.com/XFree86/Linux-${ARCH}/${pkgver}/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run \ + supported-cards.txt) +md5sums=('8fa2b7c5e4629850d4bd33033ec46166' + '6363d7e494d33729609540088e33e73f') +[ "$CARCH" = "x86_64" ] && md5sums=('c03bd2469292d91dde8767af1418c4e1' + '6363d7e494d33729609540088e33e73f') +options=(docs !strip) + +build() +{ + # override nvida install routine and do it the long way. + cd $startdir/src/ + sh NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run --extract-only + cd NVIDIA-Linux-${ARCH}-${pkgver}-pkg0/usr/ + + mkdir -p $startdir/pkg/usr/{lib,bin,share/applications,share/pixmaps,man/man1} + mkdir -p $startdir/pkg/usr/lib/xorg/modules/{extensions,drivers} + mkdir -p $startdir/pkg/usr/share/licenses/nvidia-96xx/ + + install lib/{libGLcore.so.${pkgver},libGL.so.${pkgver},libnvidia-cfg.so.${pkgver},tls/libnvidia-tls.so.${pkgver}} \ + $startdir/pkg/usr/lib/ || return 1 + install -m644 share/man/man1/* $startdir/pkg/usr/man/man1/ || return 1 + rm $startdir/pkg/usr/man/man1/nvidia-installer.1.gz || return 1 + install X11R6/lib/libXv* $startdir/pkg/usr/lib/ || return 1 + install -m644 share/applications/nvidia-settings.desktop $startdir/pkg/usr/share/applications/ || return 1 + # fix nvidia .desktop file + sed -e 's:__UTILS_PATH__:/usr/bin:' -e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' -i $startdir/pkg/usr/share/applications/nvidia-settings.desktop + install -m644 share/pixmaps/nvidia-settings.png $startdir/pkg/usr/share/pixmaps/ || return 1 + install X11R6/lib/modules/drivers/nvidia_drv.so $startdir/pkg/usr/lib/xorg/modules/drivers || return 1 + install X11R6/lib/modules/extensions/libglx.so.$pkgver $startdir/pkg/usr/lib/xorg/modules/extensions || return 1 + install -m755 bin/nvidia-{settings,xconfig,bug-report.sh} $startdir/pkg/usr/bin/ || return 1 + cd $startdir/pkg/usr/lib/ + ln -s /usr/lib/libGL.so.$pkgver libGL.so || return 1 + ln -s /usr/lib/libGL.so.$pkgver libGL.so.1 || return 1 + ln -s /usr/lib/libGLcore.so.$pkgver libGLcore.so.1 || return 1 + ln -s /usr/lib/libnvidia-cfg.so.$pkgver libnvidia-cfg.so.1 || return 1 + ln -s /usr/lib/libnvidia-tls.so.$pkgver libnvidia-tls.so.1 || return 1 + cd $startdir/pkg/usr/lib/xorg/modules/extensions + ln -s /usr/lib/xorg/modules/extensions/libglx.so.$pkgver libglx.so || return 1 + + install -m644 $startdir/src/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0/LICENSE $startdir/pkg/usr/share/licenses/nvidia-96xx/ || return 1 + install -D -m644 $startdir/src/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0/usr/share/doc/README.txt $startdir/pkg/usr/share/doc/nvidia/README || return 1 + install -D -m644 $startdir/src/supported-cards.txt $startdir/pkg/usr/share/doc/nvidia/supported-cards.txt || return 1 + + find $startdir/pkg/usr -type d -exec chmod 755 {} \; + # phew :) +} diff --git a/abs/core-testing/nvidia-96xx-utils/nvidia-96xx.install b/abs/core-testing/nvidia-96xx-utils/nvidia-96xx.install new file mode 100644 index 0000000..bb1fff2 --- /dev/null +++ b/abs/core-testing/nvidia-96xx-utils/nvidia-96xx.install @@ -0,0 +1,22 @@ +# arg 1: the new package version +post_install() { + + echo ------------------------------- + echo By using this package you accept the NVIDIA license, + echo which has been installed in /usr/share/licenses/nvidia/LICENSE + echo If you do not accept this license, you must remove the package immediately. + echo Dont forget to update your /etc/X11/xorg.conf + echo In order to use nvidia-settings, you need to install 'gtk2' package. + echo ------------------------------- + +} + +# arg 1: the new package version +# arg 2: the old package version +post_upgrade() { + post_install $1 +} + +op=$1 +shift +$op $* diff --git a/abs/core-testing/nvidia-96xx-utils/supported-cards.txt b/abs/core-testing/nvidia-96xx-utils/supported-cards.txt new file mode 100644 index 0000000..d4f26ea --- /dev/null +++ b/abs/core-testing/nvidia-96xx-utils/supported-cards.txt @@ -0,0 +1,236 @@ +Archlinux currently manages three branches of the NVIDIA binary driver: + +nvidia (latest nvidia release) +nvidia-96xx (96xx legacy branch) +nvidia-71xx (71xx legacy branch) + +This excerpt from the NVIDIA 1.0.9746 README lists the supported devices +for each of those: + +______________________________________________________________________________ + +Appendix A. Supported NVIDIA Graphics Chips +______________________________________________________________________________ + +For the most complete and accurate listing of supported GPUs, please see the +Supported Products List, available from the NVIDIA Linux x86 Graphics Driver +download page. Please go to http://www.nvidia.com/object/unix.html, follow the +Archive link under the Linux x86 heading, follow the link for the 1.0-9746 +driver, and then go to the Supported Products List. + + + NVIDIA chip name Device PCI ID + ---------------------------------- ---------------------------------- + GeForce 6800 Ultra 0x0040 + GeForce 6800 0x0041 + GeForce 6800 XE 0x0043 + GeForce 6800 XT 0x0044 + GeForce 6800 GT 0x0045 + GeForce 6800 GT 0x0046 + GeForce 6800 GS 0x0047 + GeForce 6800 XT 0x0048 + Quadro FX 4000 0x004E + GeForce 7800 GTX 0x0090 + GeForce 7800 GTX 0x0091 + GeForce 7800 GT 0x0092 + GeForce 7800 GS 0x0093 + GeForce Go 7800 0x0098 + GeForce Go 7800 GTX 0x0099 + Quadro FX 4500 0x009D + GeForce 6800 GS 0x00C0 + GeForce 6800 0x00C1 + GeForce 6800 LE 0x00C2 + GeForce 6800 XT 0x00C3 + GeForce Go 6800 0x00C8 + GeForce Go 6800 Ultra 0x00C9 + Quadro FX Go1400 0x00CC + Quadro FX 3450/4000 SDI 0x00CD + Quadro FX 1400 0x00CE + GeForce 6800 Ultra/GeForce 6800 0x00F0 + GeForce 6600 GT 0x00F1 + GeForce 6600 0x00F2 + GeForce 6200 0x00F3 + GeForce 6600 LE 0x00F4 + GeForce 7800 GS 0x00F5 + GeForce 6800 GS 0x00F6 + Quadro FX 3400/4400 0x00F8 + GeForce 6800 Ultra 0x00F9 + GeForce PCX 5750 0x00FA + GeForce PCX 5900 0x00FB + GeForce PCX 5300/Quadro FX 330 0x00FC + Quadro NVS 280 PCI-E/Quadro FX 330 0x00FD + Quadro FX 1300 0x00FE + GeForce PCX 4300 0x00FF + GeForce 6600 GT 0x0140 + GeForce 6600 0x0141 + GeForce 6600 LE 0x0142 + GeForce 6600 VE 0x0143 + GeForce Go 6600 0x0144 + GeForce 6610 XL 0x0145 + GeForce Go 6600 TE/6200 TE 0x0146 + GeForce 6700 XL 0x0147 + GeForce Go 6600 0x0148 + GeForce Go 6600 GT 0x0149 + Quadro NVS 440 0x014A + Quadro FX 550 0x014C + Quadro FX 540 0x014E + GeForce 6200 0x014F + GeForce 6500 0x0160 + GeForce 6200 TurboCache(TM) 0x0161 + GeForce 6200 LE 0x0163 + GeForce Go 6200 0x0164 + Quadro NVS 285 0x0165 + GeForce Go 6400 0x0166 + GeForce Go 6200 0x0167 + GeForce Go 6400 0x0168 + GeForce 8800 GTX 0x0191 + GeForce 8800 GTS 0x0193 + GeForce 7300 LE 0x01D1 + GeForce 7300 SE 0x01D3 + Quadro NVS 110M/GeForce Go 7300 0x01D7 + GeForce Go 7400 0x01D8 + Quadro NVS 110M 0x01DA + Quadro NVS 120M 0x01DB + Quadro FX 350M 0x01DC + Quadro FX 350 0x01DE + GeForce 7300 GS 0x01DF + GeForce 6800 0x0211 + GeForce 6800 LE 0x0212 + GeForce 6800 GT 0x0215 + GeForce 6800 XT 0x0218 + GeForce 6200 0x0221 + GeForce 6150 0x0240 + GeForce 6150 LE 0x0241 + GeForce 6100 0x0242 + GeForce Go 6100 0x0247 + GeForce 7900 GTX 0x0290 + GeForce 7900 GT/GTO 0x0291 + GeForce 7900 GS 0x0292 + GeForce 7950 GX2 0x0294 + GeForce Go 7900 GS 0x0298 + GeForce Go 7900 GTX 0x0299 + Quadro FX 2500M 0x029A + Quadro FX 1500M 0x029B + Quadro FX 5500 0x029C + Quadro FX 3500M 0x029D + Quadro FX 1500 0x029E + Quadro FX 4500 X2 0x029F + GeForce 7600 GS 0x02E1 + GeForce FX 5800 Ultra 0x0301 + GeForce FX 5800 0x0302 + Quadro FX 2000 0x0308 + Quadro FX 1000 0x0309 + GeForce FX 5600 Ultra 0x0311 + GeForce FX 5600 0x0312 + GeForce FX 5600XT 0x0314 + GeForce FX Go5600 0x031A + GeForce FX Go5650 0x031B + Quadro FX Go700 0x031C + GeForce FX 5200 0x0320 + GeForce FX 5200 Ultra 0x0321 + GeForce FX 5200 0x0322 + GeForce FX 5200LE 0x0323 + GeForce FX Go5200 0x0324 + GeForce FX Go5250 0x0325 + GeForce FX 5500 0x0326 + GeForce FX 5100 0x0327 + GeForce FX Go5200 32M/64M 0x0328 + Quadro NVS 55/280 PCI 0x032A + Quadro FX 500/FX 600 0x032B + GeForce FX Go53xx 0x032C + GeForce FX Go5100 0x032D + GeForce FX 5900 Ultra 0x0330 + GeForce FX 5900 0x0331 + GeForce FX 5900XT 0x0332 + GeForce FX 5950 Ultra 0x0333 + GeForce FX 5900ZT 0x0334 + Quadro FX 3000 0x0338 + Quadro FX 700 0x033F + GeForce FX 5700 Ultra 0x0341 + GeForce FX 5700 0x0342 + GeForce FX 5700LE 0x0343 + GeForce FX 5700VE 0x0344 + GeForce FX Go5700 0x0347 + GeForce FX Go5700 0x0348 + Quadro FX Go1000 0x034C + Quadro FX 1100 0x034E + GeForce 7600 GT 0x0391 + GeForce 7600 GS 0x0392 + GeForce 7300 GT 0x0393 + GeForce Go 7600 0x0398 + Quadro FX 560 0x039E + + +Below are the legacy GPUs that are no longer supported in the unified driver. +These GPUs will continue to be maintained through the special legacy NVIDIA +GPU driver releases. + +The 1.0-96xx driver supports the following set of GPUs: + + + NVIDIA chip name Device PCI ID + ---------------------------------- ---------------------------------- + GeForce2 MX/MX 400 0x0110 + GeForce2 MX 100/200 0x0111 + GeForce2 Go 0x0112 + Quadro2 MXR/EX/Go 0x0113 + GeForce4 MX 460 0x0170 + GeForce4 MX 440 0x0171 + GeForce4 MX 420 0x0172 + GeForce4 MX 440-SE 0x0173 + GeForce4 440 Go 0x0174 + GeForce4 420 Go 0x0175 + GeForce4 420 Go 32M 0x0176 + GeForce4 460 Go 0x0177 + Quadro4 550 XGL 0x0178 + GeForce4 440 Go 64M 0x0179 + Quadro NVS 0x017A + Quadro4 500 GoGL 0x017C + GeForce4 410 Go 16M 0x017D + GeForce4 MX 440 with AGP8X 0x0181 + GeForce4 MX 440SE with AGP8X 0x0182 + GeForce4 MX 420 with AGP8X 0x0183 + GeForce4 MX 4000 0x0185 + Quadro4 580 XGL 0x0188 + Quadro NVS 280 SD 0x018A + Quadro4 380 XGL 0x018B + Quadro NVS 50 PCI 0x018C + GeForce2 Integrated GPU 0x01A0 + GeForce4 MX Integrated GPU 0x01F0 + GeForce3 0x0200 + GeForce3 Ti 200 0x0201 + GeForce3 Ti 500 0x0202 + Quadro DCC 0x0203 + GeForce4 Ti 4600 0x0250 + GeForce4 Ti 4400 0x0251 + GeForce4 Ti 4200 0x0253 + Quadro4 900 XGL 0x0258 + Quadro4 750 XGL 0x0259 + Quadro4 700 XGL 0x025B + GeForce4 Ti 4800 0x0280 + GeForce4 Ti 4200 with AGP8X 0x0281 + GeForce4 Ti 4800 SE 0x0282 + GeForce4 4200 Go 0x0286 + Quadro4 980 XGL 0x0288 + Quadro4 780 XGL 0x0289 + Quadro4 700 GoGL 0x028C + + +The 1.0-71xx driver supports the following set of GPUs: + + + NVIDIA chip name Device PCI ID + ---------------------------------- ---------------------------------- + RIVA TNT 0x0020 + RIVA TNT2/TNT2 Pro 0x0028 + RIVA TNT2 Ultra 0x0029 + Vanta/Vanta LT 0x002C + RIVA TNT2 Model 64/Model 64 Pro 0x002D + Aladdin TNT2 0x00A0 + GeForce 256 0x0100 + GeForce DDR 0x0101 + Quadro 0x0103 + GeForce2 GTS/GeForce2 Pro 0x0150 + GeForce2 Ti 0x0151 + GeForce2 Ultra 0x0152 + Quadro2 Pro 0x0153 diff --git a/abs/core-testing/nvidia-96xx/NVIDIA_173.14.12_2.6.27.patch b/abs/core-testing/nvidia-96xx/NVIDIA_173.14.12_2.6.27.patch new file mode 100644 index 0000000..1ba936b --- /dev/null +++ b/abs/core-testing/nvidia-96xx/NVIDIA_173.14.12_2.6.27.patch @@ -0,0 +1,87 @@ +diff -Nru NVIDIA-Linux-x86-173.14.12-pkg0.orig/usr/src/nv/nv.c NVIDIA-Linux-x86-173.14.12-pkg0/usr/src/nv/nv.c +--- usr/src/nv/nv.c 2008-07-18 03:42:50.000000000 +0200 ++++ NVIDIA-Linux-x86-173.14.12-pkg0/usr/src/nv/nv.c 2008-08-12 00:35:45.000000000 +0200 +@@ -1296,14 +1296,22 @@ + if (get_cpu() == cpu) + __nv_setup_pat_entries(NULL); + else ++ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) ++ smp_call_function(__nv_setup_pat_entries, hcpu, 1); ++ #else + smp_call_function(__nv_setup_pat_entries, hcpu, 1, 1); ++ #endif + put_cpu(); + break; + case CPU_DOWN_PREPARE: + if (get_cpu() == cpu) + __nv_restore_pat_entries(NULL); + else ++ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) ++ smp_call_function(__nv_restore_pat_entries, hcpu, 1); ++ #else + smp_call_function(__nv_restore_pat_entries, hcpu, 1, 1); ++ #endif + put_cpu(); + break; + } +diff -Nru NVIDIA-Linux-x86-173.14.12-pkg0.orig/usr/src/nv/nv-linux.h NVIDIA-Linux-x86-173.14.12-pkg0/usr/src/nv/nv-linux.h +--- usr/src/nv/nv-linux.h 2008-07-18 03:42:51.000000000 +0200 ++++ NVIDIA-Linux-x86-173.14.12-pkg0/usr/src/nv/nv-linux.h 2008-08-12 00:44:27.000000000 +0200 +@@ -104,7 +104,10 @@ + #endif + + #include ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) ++#else + #include ++#endif + #include + #include + +@@ -665,13 +668,21 @@ + #if defined(preempt_disable) + preempt_disable(); + #endif ++ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) ++ ret = smp_call_function(func, info, 1); ++ #else + ret = smp_call_function(func, info, 1, 1); ++ #endif + func(info); + #if defined(preempt_enable) + preempt_enable(); + #endif + #else ++ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) ++ ret = on_each_cpu(func, info, 1); ++ #else + ret = on_each_cpu(func, info, 1, 1); ++ #endif + #endif + return ret; + } +diff -Nru NVIDIA-Linux-x86-173.14.12-pkg0.orig/usr/src/nv/os-interface.c NVIDIA-Linux-x86-173.14.12-pkg0/usr/src/nv/os-interface.c +--- usr/src/nv/os-interface.c 2008-07-18 03:42:50.000000000 +0200 ++++ NVIDIA-Linux-x86-173.14.12-pkg0/usr/src/nv/os-interface.c 2008-08-12 00:48:07.000000000 +0200 +@@ -48,7 +48,11 @@ + #endif + local_bh_disable(); + atomic_set(&os_smp_barrier, 1); ++ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) ++ ret = smp_call_function(ipi_handler, NULL, 0); ++ #else + ret = smp_call_function(ipi_handler, NULL, 1, 0); ++ #endif + #endif + return (ret == 0) ? RM_OK : RM_ERROR; + } +@@ -704,7 +708,9 @@ + U032 sig + ) + { ++ #if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 26) + return kill_proc(pid, sig, 1) ? RM_ERR_OPERATING_SYSTEM : RM_OK; ++ #endif + } + + /*******************************************************************************/ diff --git a/abs/core-testing/nvidia-96xx/PKGBUILD b/abs/core-testing/nvidia-96xx/PKGBUILD new file mode 100644 index 0000000..3ccbbfe --- /dev/null +++ b/abs/core-testing/nvidia-96xx/PKGBUILD @@ -0,0 +1,44 @@ +# $Id: PKGBUILD 14780 2008-10-10 15:35:36Z thomas $ +# Maintainer : Tobias Powalowski + +pkgname=nvidia-96xx +pkgver=96.43.07 +_kernver='2.6.26-ARCH' +pkgrel=6 +pkgdesc="NVIDIA legacy drivers for kernel26, 96xx branch" +arch=(i686 x86_64) +license=('custom:NVIDIA') +[ "$CARCH" = "i686" ] && ARCH=x86 +[ "$CARCH" = "x86_64" ] && ARCH=x86_64 +url="http://www.nvidia.com/" +depends=('kernel26>=2.6.26' 'kernel26<2.6.28' 'nvidia-96xx-utils') +conflicts=('nvidia' 'nvidia-71xx' 'nvidia-legacy') +install=nvidia-96xx.install +license=('custom') +source=(http://us.download.nvidia.com/XFree86/Linux-$ARCH/${pkgver}/NVIDIA-Linux-$ARCH-${pkgver}-pkg0.run + NVIDIA_173.14.12_2.6.27.patch) +md5sums=('8fa2b7c5e4629850d4bd33033ec46166' + 'cd4a68b5a88be6976b90cd0df6bfe89e') +[ "$CARCH" = "x86_64" ] && md5sums=('c03bd2469292d91dde8767af1418c4e1' + 'cd4a68b5a88be6976b90cd0df6bfe89e') + +build() +{ + # Extract + cd $startdir/src/ + sh NVIDIA-Linux-$ARCH-${pkgver}-pkg0.run --extract-only + cd NVIDIA-Linux-$ARCH-${pkgver}-pkg0 + + # Any extra patches are applied in here... + patch -Np1 -i ../NVIDIA_173.14.12_2.6.27.patch || return 1 + + cd usr/src/nv/ + ln -s Makefile.kbuild Makefile + make SYSSRC=/lib/modules/$_kernver/build module || return 1 + + # install kernel module + mkdir -p $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/video/ + install -m644 nvidia.ko $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/video/ || return 1 + + sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" $startdir/*.install +} diff --git a/abs/core-testing/nvidia-96xx/nvidia-96xx.install b/abs/core-testing/nvidia-96xx/nvidia-96xx.install new file mode 100644 index 0000000..dbbec39 --- /dev/null +++ b/abs/core-testing/nvidia-96xx/nvidia-96xx.install @@ -0,0 +1,22 @@ +# arg 1: the new package version +post_install() { + KERNEL_VERSION='2.6.26-ARCH' + depmod -v $KERNEL_VERSION > /dev/null 2>&1 +} + +# arg 1: the new package version +# arg 2: the old package version +post_upgrade() { + post_install $1 + rmmod nvidia || echo 'In order to use the new nvidia module, exit Xserver and unload it manually.' +} + +# arg 1: the old package version +post_remove() { + KERNEL_VERSION='2.6.26-ARCH' + depmod -v $KERNEL_VERSION > /dev/null 2>&1 +} + +op=$1 +shift +$op $* -- cgit v0.12