[PKGBUILD] Git et les "standards de paquetage"

Mise à jour / Création /debug de paquetages
Répondre
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

[PKGBUILD] Git et les "standards de paquetage"

Message par Xorg »

Bonsoir.

Je viens un peu pour me plaindre, car je voulais écrire le fichier PKGBUILD pour ajouter un nouveau paquet sur AUR. J'ai besoin de récupérer les sources sur GitHub.com, et donc dans le PKGBUILD j'ai besoin de faire intervertir des variables pour versions de développement. D'habitude, je vole mes PKGBUILD à droite et à gauche (par manque d’expérience), pour essayer de faire un résultat correct au final, mais là je voulais m'amuser à l'écrire plus en autonomie, pour apprendre mais aussi pour essayer de faire un PKGBUILD dont la structure est correcte (car je me rends compte que ce qu'on trouve sur AUR peut être déprécié parfois).

Donc je me suis tout naturellement rendu sur le wiki Fr à la page PKGBUILD, qui me renvoi directement au dossier local /usr/share/pacman/. J'y jete un oeil, je pars sur le fichier PKGBUILD-git.proto, jusqu'à là, tout va bien.
J'ai abs, mais je n'en ai pas encore senti le besoin de décortiquer davantage de paquets pour m'aider à construire le mien.
De plus, il est renseigné sur cette page que je dois utiliser les variables suivantes : GIT: _gitroot et _gitname

Une recherche plus loin, je suis tombé sur le Wiki En, à la page VCS_PKGBUILD_Guidelines, qui m'a parue plus ciblée ce que je cherchais. Et là le PKGBUILD a rien à voir :
- Utilisation de la fonction pkgver().
- Utilisation de la fonction source() avec le protocole git
- Du coup, pas de variable _gitroot, ce qui supprime les 13 lignes de code suivantes par la même occasion :

Code : Tout sélectionner

  cd "$srcdir"
  msg "Connecting to GIT server...."

  if [[ -d "$_gitname" ]]; then
    cd "$_gitname" && git pull origin
    msg "The local files are updated."
  else
    git clone "$_gitroot" "$_gitname"
  fi

  msg "GIT checkout done or server timeout"
  msg "Starting build..."

  rm -rf "$srcdir/$_gitname-build"
  git clone "$srcdir/$_gitname" "$srcdir/$_gitname-build"
  cd "$srcdir/$_gitname-build"
- On travail avec la variable $_gitname et non sa forme lourde $srcdir/$_gitname-build.

En gros, au final, je ne sais pas qui suivre pour que mon PKGBUILD respecte les vrais standards d'ArchLinux. Je sais très bien que les deux sont acceptables, les deux fonctionnent, c'est une variante, mais je sais qu'une seule de ces deux formes est bonne quand on désire se standardiser.

Personnellement, j'ai toujours plus vu les PKGBUILD du même modèle que le /usr/share/pacman/PKGBUILD-git.proto. Mais je sais que les paquets évoluent avec le temps, maintenant il faut utiliser la fonction package(), il me semble que les anciens paquets ne l'utilise pas, or c'est déprécié aujourd'hui de ne pas l'utiliser. Donc je me dis que, peut-être, la page VCS_PKGBUILD_Guidelines tend à instaurer un nouveau standard. Puis cette autre forme dont je parle me parait plus légère, mais aussi simplifiée, et plus propre.

Au final, que choisir ? Merci d'avance... :)
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17576
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [PKGBUILD] Git et les "standards de paquetage"

Message par benjarobin »

Réponse courte la page FR n'est pas à jour... Donc en effet il faut suivre les recommandations du Wiki EN
Tu peux sinon apporter une contribution au Wiki FR pour le mettre à jour :-)
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [PKGBUILD] Git et les "standards de paquetage"

Message par FoolEcho »

benjarobin a écrit :Réponse courte la page FR n'est pas à jour...
Les prototypes fournis par abs non plus (vilaine excuse). :P
Pour les paquets de développement, faute de temps, j'avais rajouté un court passage et renvoi au wiki en depuis les standards (mais c'est sûr qu'il faut tomber dessus... :( ), Sûr qu'il faudrait faire ça plus propre.
«The following statement is not true. The previous statement is true.» :nage:
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

Re: [PKGBUILD] Git et les "standards de paquetage"

Message par Xorg »

benjarobin a écrit :Réponse courte la page FR n'est pas à jour... Donc en effet il faut suivre les recommandations du Wiki EN
Je l'ignorais. Merci beaucoup pour cette précieuse réponse.
benjarobin a écrit :Tu peux sinon apporter une contribution au Wiki FR pour le mettre à jour :-)
Oui effectivement, c'est le genre de choses que je préfère faire quand je suis certain. :non:
Mais si personne s'en occupe, j'essayerai de m'en occuper par exemple aujourd'hui (c'est qu'une nouvelle journée a déjà commencée à l'heure où j'écris...).
FoolEcho a écrit :
benjarobin a écrit :Réponse courte la page FR n'est pas à jour...
Les prototypes fournis par abs non plus (vilaine excuse). :P
Pour les paquets de développement, faute de temps, j'avais rajouté un court passage et renvoi au wiki en depuis les standards (mais c'est sûr qu'il faut tomber dessus... :( ), Sûr qu'il faudrait faire ça plus propre.
Le "gros" soucis des Wiki d'ArchLinux, c'est que même si des efforts sont fait pour, ils ne sont pas uniformes d'une langue à l'autre. Rien qu'en prenant PKGBUILD et PKGBUILD, le FR a l'avantage de parler de différentes fonctions, tandis que le EN focalise sur toutes les variables du PKGBUILD. Mais il a aussi la page Creating_Packages, on ne l'a pas en FR car elle est plus ou moins présente dans la PKGBUILD. C'est kif-kif au final.
Certes, ça constitue une des force du Wiki cette diversité, mais à maintenir, je pense que ça devient plus délicat, surtout pour les "bilingues", car quand on cherche quelque chose dans une langue, elle n'est pas forcément au même endroit dans une autre.

Je pense que dans un premier temps, il faudrait simplement se mettre à jour avant d'entreprendre quelque chose de plus propre, pour toute cette section qui touche de près comme de loin les PKGBUILDs. :wink:
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
falke
Chu Ko Nu
Messages : 416
Inscription : ven. 02 mars 2012, 19:24
Localisation : Grenoble

Re: [PKGBUILD] Git et les "standards de paquetage"

Message par falke »

@ Xorg
Je pense que dans un premier temps, il faudrait simplement se mettre à jour avant d'entreprendre quelque chose de plus propre, pour toute cette section qui touche de près comme de loin les PKGBUILDs. :wink:
c'est une excellente idée. J'aimerais bien être à même de créer mes propres paquets si certaines appli linux n'existent pas dans les dépôts mais pour l'instant les pkgbuild c'est pas très clair pour moi et j'aimerais bien comprendre ce que je fais pour rien casser sur mon système préféré
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [PKGBUILD] Git et les "standards de paquetage"

Message par FoolEcho »

Xorg a écrit :Certes, ça constitue une des force du Wiki cette diversité, mais à maintenir, je pense que ça devient plus délicat, surtout pour les "bilingues", car quand on cherche quelque chose dans une langue, elle n'est pas forcément au même endroit dans une autre.
Pour une raison contre laquelle on ne peut rien: la communauté anglophone est la plus nombreuse (sans compter que des non anglophones y contribuent aussi) alors que la francophone manque de contributeurs. Par conséquent, le wiki fr est (et sera toujours) quantitativement très limité. Perso, je ne répercute pas tous les changements du wiki org sur le wiki fr, loin de là et les autres font comme moi je présume: quand c'est central, c'est modifié très vite (X, systemd, installation)... Pour le reste, c'est selon ce qui remonte de certains sujets ou selon les trucs que je voulais faire (ou pour repasser derrière quelqu'un pour des corrections plus ou moins mineures).
Xorg a écrit :Je pense que dans un premier temps, il faudrait simplement se mettre à jour avant d'entreprendre quelque chose de plus propre, pour toute cette section qui touche de près comme de loin les PKGBUILDs. :wink:
Même de ce point de vue, c'est illusoire. On a déjà eu le reproche mais on ne peut pas en plus suivre tous les mouvements du wiki org pour répercuter les plans sur le wiki fr. Et s'aligner ne fonctionnera qu'un temps.

Pour revenir sur le sujet, comme je disais, ce n'est pas seulement la faute du wiki fr:
-les changements de construction des PKGBUILDs des gestions de version ne sont à jour que dans le wiki .org mais même le paquet abs, officiel, censé avoir les prototypes reprend toujours la vieille syntaxe, plus lourde (notez qu'elle est fonctionnelle, hein... juste plus lourde).

Ce qui rejoint la première remarque: manque de contributeurs au wiki (et là, en l'occurrence, il faut en plus que le contributeur connaisse un peu la mécanique des PKGBUILDs... et tout utilisateur d'Arch n'a pas forcément envie de connaître leur fonctionnement, donc même si c'est un point central d'Arch, ce n'est pas forcément une priorité côté wiki).

Mais allez-y, hein (j'y jetterai forcément un œil). :)
«The following statement is not true. The previous statement is true.» :nage:
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

Re: [PKGBUILD] Git et les "standards de paquetage"

Message par Xorg »

Je me suis mal expliqué. Je ne voulais pas dire calquer le Wiki EN, mais au moins dans un premier temps, se mettre à jour par rapport à l'officiel, tout simplement. :wink:
Par exemple, ce n'est plus makepkg -g >> PKGBUILD mais updpkgsums qu'il faut faire pour calculer la somme MD5. Ça marche toujours la première, mais la deuxième est plus propre.

Par contre pour cette histoire d'abs, personne se sent de faire remonter à la communauté .org que les proto ne sont pas à jour ? Je n'ai pas de compte là-bas.

Je ne me fais plus de soucis pour la modification du wiki FR, j'ai vite compris que tu repassais derrière («pas d’anglicisme» :non: ).
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [PKGBUILD] Git et les "standards de paquetage"

Message par FoolEcho »

Xorg a écrit :(«pas d’anglicisme» :non: ).
Ça la fiche quand même mal dans un wiki supposé fr. :mrgreen:
Xorg a écrit :Par exemple, ce n'est plus makepkg -g >> PKGBUILD mais updpkgsums qu'il faut faire pour calculer la somme MD5. Ça marche toujours la première, mais la deuxième est plus propre.
'connaissais pas updpkgsums... comme quoi. :)
Xorg a écrit :Par contre pour cette histoire d'abs, personne se sent de faire remonter à la communauté .org que les proto ne sont pas à jour ? Je n'ai pas de compte là-bas.
Un rapport existe déjà: https://bugs.archlinux.org/task/34485. :chinois:
«The following statement is not true. The previous statement is true.» :nage:
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Re: [PKGBUILD] Git et les "standards de paquetage"

Message par tuxce »

Xorg a écrit : Par exemple, ce n'est plus makepkg -g >> PKGBUILD mais updpkgsums qu'il faut faire pour calculer la somme MD5. Ça marche toujours la première, mais la deuxième est plus propre.
Il n'y a pas vraiment de méthode obsolète et de méthode à utiliser.
makepkg -g >> PKGBUILD fonctionne tout le temps et donne le résultat escompté pour le système ou tu la lances.
updpkgsums non seulement a besoin de makepkg -g pour fonctionner mais peut échouer dans certains cas et casser le PKGBUILD.
updpkgsums comme la plupart des scripts dans pacman-contrib sont souvent des scripts utilisés par les devs pour leur PKGBUILD et qu'ils mettent à disposition au cas où.
Avatar de l’utilisateur
Ypnose
Maître du Kyudo
Messages : 1363
Inscription : sam. 01 mai 2010, 13:17

Re: [PKGBUILD] Git et les "standards de paquetage"

Message par Ypnose »

Il y a aussi cette méthode qui fonctionne à tout les coups (je l'utilise depuis 1ans et demi)
https://bbs.archlinux.org/viewtopic.php ... 7#p1026767
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Re: [PKGBUILD] Git et les "standards de paquetage"

Message par tuxce »

C'est exactement le contenu de updpkgsums et c'est d'ailleurs le dev en question derrière ce script :)
Sinon, non, elle ne fonctionnera pas pour, par exemple les PKGBUILD avec sources dépendantes de l'architecture.
Avatar de l’utilisateur
Ypnose
Maître du Kyudo
Messages : 1363
Inscription : sam. 01 mai 2010, 13:17

Re: [PKGBUILD] Git et les "standards de paquetage"

Message par Ypnose »

Ah bon, je ne savais pas que Falconindy avait écrit updpkgsums.
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

Re: [PKGBUILD] Git et les "standards de paquetage"

Message par Xorg »

FoolEcho a écrit :
Xorg a écrit :Par contre pour cette histoire d'abs, personne se sent de faire remonter à la communauté .org que les proto ne sont pas à jour ? Je n'ai pas de compte là-bas.
Un rapport existe déjà: https://bugs.archlinux.org/task/34485. :chinois:
Mai. J'ai bien peur que ça passe un peu à la trappe. :?
tuxce a écrit :Il n'y a pas vraiment de méthode obsolète et de méthode à utiliser.
makepkg -g >> PKGBUILD fonctionne tout le temps et donne le résultat escompté pour le système ou tu la lances.
updpkgsums non seulement a besoin de makepkg -g pour fonctionner mais peut échouer dans certains cas et casser le PKGBUILD.
updpkgsums comme la plupart des scripts dans pacman-contrib sont souvent des scripts utilisés par les devs pour leur PKGBUILD et qu'ils mettent à disposition au cas où.
Note que personne n'a parlé d'obsolescence. Même s'il n'y a pas de modification majeure du système de paquetage, là c'est l'exemple parfait pour voir que nos habitudes peuvent être à changer.
Je pense que, par exemple, avec le temps, si on démocratise le modèle du VCS_PKGBUILD_Guidelines, alors il prendra l'avantage sur le modèle actuel, car il ne faut pas oublier qu'au plus quelque chose peut se montrer simple, et au plus du monde sera susceptible de créer des PKGBUILD, donc au moins on effrayera certains Archers. :)

Bon, j'avais dit que j'essayerai de m'en occuper aujourd'hui du Wiki FR. Finalement, j'ai passé beaucoup plus de temps à m'occuper de futurs PKGBUILDS que je mettrai sur AUR d'ici, donc ça repousse tout.
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
Répondre