[nvidia-drivers] PKGBUILDS pour les deux architectures

annonces et demandes de paquetages pour les dépôts i686 et x86_64
Avatar de l’utilisateur
mightyjaym
yeomen
Messages : 296
Inscription : dim. 18 nov. 2007, 19:34
Localisation : Nîmes, France

[nvidia-drivers] PKGBUILDS pour les deux architectures

Message par mightyjaym »

Bonsoir à tous,

je suis actuellement en train de travailler à synchroniser le repo x86_64 avec le repo i686, notamment en recompilant la plupart des PKGBUILDS soumis par les contributeurs du site en i686 pour mon architecture favorite. Je me suis donc penché sur le cas des paquets nvidia-driver, nvidia-driver-71xx et nvidia-driver-96xx qui pour le moment ne fonctionnaient que sur une plateforme i686.

J'ai donc adapté chacun des trois PKGBUILDS pour qu'ils soient en mesure de fonctionner sur les deux architectures, mais comme je ne dispose pas du matériel adéquat pour les tester, je les soumets ici à des fins de vérifications et tests avant d'uploader quoi que ce soit sur le repo x86_64 :)

Donc pour télécharger les archives contenant les sources locales + les PKGBUILDs modifiés, c'est ici que ça se passe :

http://jm.ambrosino.free.fr/archlinux/n ... 1xx.tar.gz
http://jm.ambrosino.free.fr/archlinux/n ... 6xx.tar.gz
http://jm.ambrosino.free.fr/archlinux/n ... ver.tar.gz

Pour une vue d'ensemble des PKGBUILDs modifiés (inutilisables sans les sources locales cependant) :

Code : Tout sélectionner

# Contributor : wain <wain@archlinux.fr>

pkgname=nvidia-driver-71xx
pkgver=71.86.04
pkgrel=2
pkgdesc="Driver for custom kernel - old 71xx branche"
url="http://www.nvidia.com"
depends=('bash' 'gcc' 'binutils' 'glibc' 'make' 'gtk2')
license=('custom')
conflicts=('nvidia-driver-legacy' 'nvidia' 'nvidia-driver' 'nvidia-71xx' 'nvidia-96xx' 'nvidia-71xx-utils')
provides=('libgl' 'nvidia' 'nvidia-utils')
replaces=('nvidia-driver-legacy')
arch=('i686' 'x86_64')
install="nvidia-driver.install"

if [ "$CARCH" = "x86_64" ]; then
  pkgbinary=NVIDIA-Linux-x86_64-$pkgver
  source=(http://us.download.nvidia.com/XFree86/Linux-x86_64/$pkgver/$pkgbinary-pkg2.run create-nvidia-nodes.sh nvidia-driver.rc)
  md5sums=('a970dc3f2d8938472027b5a60db39b69' '9db1bf90eba2065611d7883b708845e7' 'a01a419ab70ee14d529d12d1bed5c263')

else pkgbinary=NVIDIA-Linux-x86-$pkgver
  source=(http://us.download.nvidia.com/XFree86/Linux-x86/$pkgver/$pkgbinary-pkg0.run create-nvidia-nodes.sh nvidia-driver.rc)
  md5sums=('56354473bddff67eefed22d79398fb93' '9db1bf90eba2065611d7883b708845e7' 'a01a419ab70ee14d529d12d1bed5c263')

fi

if [ "$CARCH" = "x86_64" ]; then
build() {
  cd $startdir/src/
  chmod +x $pkgbinary-pkg2.run
  ./$pkgbinary-pkg2.run --extract-only
  cd $startdir/src
  install -D -m 755 $startdir/src/nvidia-driver.rc $startdir/pkg/etc/rc.d/nvidia
  install -D -m755 create-nvidia-nodes.sh $startdir/pkg/etc/udev/scripts/create-nvidia-nodes.sh
  #clean src
  cd $startdir/src
  rm *
  mkdir -p $startdir/pkg/usr/share/nvidia
  mv * $startdir/pkg/usr/share/nvidia
 }

else build() {
  cd $startdir/src/
  chmod +x $pkgbinary-pkg0.run
  ./$pkgbinary-pkg0.run --extract-only
  cd $startdir/src
  install -D -m 755 $startdir/src/nvidia-driver.rc $startdir/pkg/etc/rc.d/nvidia
  install -D -m755 create-nvidia-nodes.sh $startdir/pkg/etc/udev/scripts/create-nvidia-nodes.sh
  #clean src
  cd $startdir/src
  rm *
  mkdir -p $startdir/pkg/usr/share/nvidia
  mv * $startdir/pkg/usr/share/nvidia
 }

fi

Code : Tout sélectionner

# Contributor : wain <wain@archlinux.fr>

pkgname=nvidia-driver-96xx
pkgver=96.43.05
pkgrel=2
pkgdesc="Driver for custom kernel"
url="http://www.nvidia.com"
depends=('bash' 'gtk2' 'gcc' 'binutils' 'glibc' 'make')
license=('custom')
conflicts=('nvidia' 'nvidia-96xx' 'nvidia-96xx-utils' 'nvidia-driver' 'nvidia-beyond' 'libgl-dri')
provides=('nvidia' 'libgl' 'nvidia' 'nvidia-utils')
arch=('i686' 'x86_64')
install="nvidia-driver.install"

if [ "$CARCH" = "x86_64" ]; then
  _pkgbinary=NVIDIA-Linux-x86_64-$pkgver
  source=(http://us.download.nvidia.com/XFree86/Linux-x86_64/$pkgver/$_pkgbinary-pkg2.run nvidia-driver.rc)
  md5sums=('5285d2b3205e0e571dc1fff668c89e06' '3de188fd671a6e0d148af316e66c41fb')

else _pkgbinary=NVIDIA-Linux-x86-$pkgver
  source=(http://us.download.nvidia.com/XFree86/Linux-x86/$pkgver/$_pkgbinary-pkg0.run nvidia-driver.rc)
  md5sums=('575750b17f9fd19490fd999a72c7a661' '3de188fd671a6e0d148af316e66c41fb')

fi

if [ "$CARCH" = "x86_64" ]; then

build() { 
  cd $startdir/src/
  chmod +x $_pkgbinary-pkg2.run
  ./$_pkgbinary-pkg2.run --extract-only --target $startdir/pkg/usr/share/nvidia/
  install -D -m 755 $startdir/src/nvidia-driver.rc $startdir/pkg/etc/rc.d/nvidia
  sed -i "s|_pkgbinary=.*$|_pkgbinary=\"${_pkgbinary}\"|" $startdir/nvidia-driver.install
}

else build() { 
  cd $startdir/src/
  chmod +x $_pkgbinary-pkg0.run
  ./$_pkgbinary-pkg0.run --extract-only --target $startdir/pkg/usr/share/nvidia/
  install -D -m 755 $startdir/src/nvidia-driver.rc $startdir/pkg/etc/rc.d/nvidia
  sed -i "s|_pkgbinary=.*$|_pkgbinary=\"${_pkgbinary}\"|" $startdir/nvidia-driver.install
}

fi

Code : Tout sélectionner

# Contributor : wain <wain@archlinux.fr>

pkgname=nvidia-driver
pkgver=171.06
pkgrel=2
pkgdesc="Driver for custom kernel"
url="http://www.nvidia.com"
depends=('bash' 'gtk2' 'gcc' 'binutils' 'glibc' 'make')
conflicts=('nvidia' 'nvidia-driver' 'nvidia-beyond' 'libgl-dri')
license=('custom')
provides=('nvidia' 'libgl' 'nvidia' 'nvidia-utils')
arch=('i686' 'x86_64')
install=nvidia-driver.install

if [ "$CARCH" = "x86_64" ]; then
 _pkgbinary=NVIDIA-Linux-x86_64-$pkgver
 source=(http://us.download.nvidia.com/XFree86/Linux-x86_64/$pkgver/$_pkgbinary-pkg2.run nvidia-driver.rc)
 md5sums=('44fcbb2927b13d326c9af20c0d42d7e7'
         '58f5e326d7a44c1069b4665bdb55e9ec')

else _pkgbinary=NVIDIA-Linux-x86-$pkgver
 source=(http://us.download.nvidia.com/XFree86/Linux-x86/$pkgver/$_pkgbinary-pkg0.run
 nvidia-driver.rc)
 md5sums=('df6a378bac642b3351aa584c55ecfc9a'
         '58f5e326d7a44c1069b4665bdb55e9ec')

fi

if [ "$CARCH" = "x86_64" ]; then
build() {
  cd $startdir/src/
  chmod +x $_pkgbinary-pkg2.run
  ./$_pkgbinary-pkg2.run --extract-only --target $startdir/pkg/usr/share/nvidia/
  install -D -m 755 $startdir/src/nvidia-driver.rc $startdir/pkg/etc/rc.d/nvidia
  sed -i "s|_pkgbinary=.*$|_pkgbinary=\"${_pkgbinary}\"|" $startdir/nvidia-driver.install
 }

else build() {
  cd $startdir/src/
  chmod +x $_pkgbinary-pkg0.run
  ./$_pkgbinary-pkg0.run --extract-only --target $startdir/pkg/usr/share/nvidia/
  install -D -m 755 $startdir/src/nvidia-driver.rc $startdir/pkg/etc/rc.d/nvidia
  sed -i "s|_pkgbinary=.*$|_pkgbinary=\"${_pkgbinary}\"|" $startdir/nvidia-driver.install
 }

fi
Dernière modification par mightyjaym le mer. 26 mars 2008, 01:24, modifié 1 fois.
Mon blog

Desktop : Intel Core 2 Duo E6850, 8 Gb RAM, NVIDIA GeForce 8500 GT, Arch Linux X86_64
Avatar de l’utilisateur
mightyjaym
yeomen
Messages : 296
Inscription : dim. 18 nov. 2007, 19:34
Localisation : Nîmes, France

Message par mightyjaym »

Bon, même si ça a pas l'air de passionner les foules, j'ai apporté quelques ajustements aux PKGBUILDs (post édité et fichiers .tar.gz mis à jour). nvidia-driver fonctionne correctement sur ma machine x86_64 mais je n'ai pas de possibilité de tester les modèles 71xx ou 96xx ou sur des machines 32 bits (même si théoriquement dans ce second cas ça devrait marcher sans souci, puisque je n'ai absolument pas touché à la procédure d'installation telle que wain l'avait définie).

Merci de me tenir au courant si ces PKGBUILDs fonctionnent pour vous.
Mon blog

Desktop : Intel Core 2 Duo E6850, 8 Gb RAM, NVIDIA GeForce 8500 GT, Arch Linux X86_64
Avatar de l’utilisateur
wain
Maître du Kyudo
Messages : 1854
Inscription : ven. 11 août 2006, 19:15
Localisation : Nancy (54)

Message par wain »

salut,

J'avais zappé ce post, désolé (ça commence à flooder sacrément sur ce forum) :D
Tes pkgbuilds ont l'air bons. Ca me choque un peu de voir des fonctions build imbriqués m'enfin si le résultat est là...
Pour ce qui est des tests... si namcap ne signale pas d'erreurs et que pacman -Qlp paquetage.x86_64.tar.gz te donne la bonne liste de fichiers, c'est déjà ça. Publies-les sur le dépôt et attendons les retours s'il y en a. Après tout il ne sagit que d'une alternative au paquetages officiels.
Avatar de l’utilisateur
mightyjaym
yeomen
Messages : 296
Inscription : dim. 18 nov. 2007, 19:34
Localisation : Nîmes, France

Message par mightyjaym »

Merci d'avoir vérifié les PKGBUILD wain. J'ai suivi ton impression et j'ai modifié les PKGBUILD pour que les fonctions build ne soient plus imbriquées. On y gagne en lisibilité aussi.

Par contre y'a un léger problème auquel je n'avais pas fait attention : le changement de version de gcc. Avec le kernel de base de Arch, qui est compilé avec gcc 4.2, l'installeur nvidia détecte une différence entre la version gcc utilisée pour le kernel et celle présente sur le système. Elle se stoppe donc net, ce qui fait que le module n'est pas compilé. Je m'en suis rendu compte en essayant de réinstaller le paquet pour faire une dernière vérification avant upload.

Déclancher une mise à jour chez des utilisateurs qui emploient le noyau de base d'arch risque de déclancher des cassages de X ; c'est vrai que l'extrême majorité de ceux qui utilisent ces paquets les emploient conjointement à un kernel customisé, récemment recompilé s'ils ont suivi la mise à jour de kernel_sources. Mais pour les autres, c'est quand même gênant, surtout s'ils n'ont pas été prévenus. Est-ce qu'il ne vaut mieux pas attendre un chouia que le kernel compilé avec GCC 4.3 passe dans [core] (il me semble qu'il est actuellement en testing) ?
Mon blog

Desktop : Intel Core 2 Duo E6850, 8 Gb RAM, NVIDIA GeForce 8500 GT, Arch Linux X86_64
Avatar de l’utilisateur
mightyjaym
yeomen
Messages : 296
Inscription : dim. 18 nov. 2007, 19:34
Localisation : Nîmes, France

Message par mightyjaym »

Bon ben ayé, le kernel actuel est compilé avec gcc 4.3, donc tout devrait désormais fonctionner nickel 8)
Mon blog

Desktop : Intel Core 2 Duo E6850, 8 Gb RAM, NVIDIA GeForce 8500 GT, Arch Linux X86_64
Répondre