# Maintainer: André Silva <emulatorman@hyperbola.info>
# Contributor: Márcio Silva <coadde@hyperbola.info>
# Contributor: Tobias Dausend <throgh@hyperbola.info>

# Based on xf86-video-nouveau package

pkgname=xorg-video-nouveau
pkgver=1.0.16
_debver=1.0.16
_debrel=1
pkgrel=test1
pkgdesc="Free Software 3D acceleration driver for nVidia cards"
arch=('i686' 'x86_64')
url="https://nouveau.freedesktop.org/"
license=('Expat')
depends=('libudev-zero' 'mesa')
makedepends=('xenocara-server-devel' 'X-ABI-VIDEODRV_VERSION=24.0' 'libudev-zero' 'xenocara-util-macros' 'quilt')
provides=('xf86-video-nouveau')
conflicts=('xf86-video-nouveau' 'xenocara-server<1.20' 'X-ABI-VIDEODRV_VERSION<24' 'X-ABI-VIDEODRV_VERSION>=25')
replaces=('xf86-video-nouveau')
groups=('xenocara-video-drivers' 'xenocara-video' 'xenocara-drivers'
        'xorg-video-drivers' 'xorg-video' 'xorg-drivers')
source=(https://xorg.freedesktop.org/archive/individual/driver/xf86-video-nouveau-$pkgver.tar.bz2{,.sig}
        https://deb.debian.org/debian/pool/main/x/xserver-xorg-video-nouveau/xserver-xorg-video-nouveau_$_debver-$_debrel.diff.gz
        COPYING)
sha512sums=('41b7839c37372660968ab7da2bc3d9feef3cab4e994d05d4ba6e59071f0d1b1f8d7dcdbcb15a42a375a556d28dc067f9ffe45d73c1d121ad307d199107ade3e0'
            'SKIP'
            '8fef1ceba2b294da49bf5cafae8af627f9bf64b77791849ea93f9f53b8c33f4ec28d7c0c03d6caf22533940c6993249d8b7cce042e6bf6a88c43967ae950e85e'
            '5dbee64885bf0c695b99c9dd75d592598f4ac21155c556a344c1825c3e9b3cea677ad43b5bc1cb69efda2a95589513e439952b84ed427f9b49eac0c3c87db3ad')
validpgpkeys=('B97BD6A80CAC4981091AE547FE558C72A67013C3'  # Maarten Lankhorst
              'C9FA6B58BC799041500F769AC5469FB8758F9C2B'  # Lyude Paul
              'BFB9B0C276D5767C710086EFB178BE4EA075DE07') # Ilia Mirkin

prepare() {
  cd "xf86-video-nouveau-$pkgver"
  if [[ ${pkgver%.*} = ${_debver%.*} ]]; then
    # Debian patches
    export QUILT_PATCHES=debian/patches
    export QUILT_REFRESH_ARGS='-p ab --no-timestamps --no-index'
    export QUILT_DIFF_ARGS='--no-timestamps'

    patch -p1 -i "$srcdir"/xserver-xorg-video-nouveau_$_debver-$_debrel.diff

    quilt push -av
  fi
  autoreconf -vfi
}

build() {
  cd "xf86-video-nouveau-$pkgver"

  # Since pacman 5.0.2-2, hardened flags are now enabled in makepkg.conf
  # With them, module fail to load with undefined symbol.
  # See https://bugs.archlinux.org/task/55102 / https://bugs.archlinux.org/task/54845
  export CFLAGS=${CFLAGS/-fno-plt}
  export CXXFLAGS=${CXXFLAGS/-fno-plt}
  export LDFLAGS=${LDFLAGS/,-z,now}

  ./configure \
    --prefix=/usr \
    --disable-udev
  make
}

package() {
  cd "xf86-video-nouveau-$pkgver"
  make DESTDIR="$pkgdir" install

  install -Dm644 "$srcdir/COPYING" "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}
