Une place pour une véritable innovation. Partagez vos propres utilitaires créés avec la communauté Manjaro.
Questions et discussions sur la programmation et le codage.
#1Messageil y a 8 ansBonjour,
J'essaie de rédiger un PKGBUILD pour un logiciel téléchargeable via git (et donc avec un numéro de version variant souvent). Tout va bien, sauf l'étape pour donner automatiquement le numéro de version. J'ai suivi le wiki arch, et j'ai la fonction suivante :
pkgver() {
cd "$pkgname"
git describe --long --tags | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'
}
Elle marche correctement, et me renvoie bien 0.3.2.r6.ge5b4210. Sauf qu'elle n'est pas prise en compte par makepkg. Lorsque je lance la construction du paquet, je vois dans les log l'appel à la fonction, mais makepkg construit un paquet avec un numéro de version vide. Et quand je rajoute un numéro de version constant, la fonction n'est même pas appelée.
De plus, si pkgver() renvoie une valeur incorrecte, makepkg s'arrête ; la valeur de retout est quand même prise en compte
Une idée pour générer automatiquement et correctement le numéro de version ? Ou alors j'ai mal compris le fonctionnement de pkgver() Manjaro 64 bits Net édition avec Openbox.
#3Messageil y a 8 ansbonjour,
ce n'est pas parce que les sources viennent de git que tu dois utiliser cette fonction
elle est (uniquement) là pour les mises à jour avec l'option --devel
, a ce moment la elle est évaluée (après téléchargement !). MAIS comme personne n'utilise cette option....
mais tu peux utiliser une numérotation classique manuelle, c'est alors elle qui est évaluée avant téléchargement (paquet classique ou -git) Manjaro STABLE - Linux lts - fish - Kde5 - icore N100 - 16Go RAM - ssd - efi
#mount /dev/archlinux /mnt/manjaro
#4Messageil y a 8 anspapajoke a écrit :bonjour,
ce n'est pas parce que les sources viennent de git que tu dois utiliser cette fonction
elle est (uniquement) là pour les mises à jour avec l'option --devel
, a ce moment la elle est évaluée (après téléchargement !). MAIS comme personne n'utilise cette option....
mais tu peux utiliser une numérotation classique manuelle, c'est alors elle qui est évaluée avant téléchargement (paquet classique ou -git)
Ah d'accord. Mais dans ce cas, à quoi sert cette fonction ? AUR l'utilise-t-il ?Manjaro 64 bits Net édition avec Openbox.
#5Messageil y a 8 anscomme dit précédemment elle est utilisée avec --devel (normalement la bonne méthode)
ou
par les mainteneurs de -git qui désirent coller au dépot git plus qu'a la version du soft
je me répète, si le mainteneur utilise la fonction pkgver() sans mettre a jour manuellement la version dans pkgbuild alors les utilisateurs ne recevrons JAMAIS de notification même si le git évolue; seul l' option --devel va leur dire si une nouvelle version est présente.
généralement les mainteneurs "-git" (Fred !) mettent à jour la version du PKGBUILD manuellement tous les 15..30 jours si nécessaire calculée par cette fonction histoire de forcer une mise à jour (ou pas). Et l'utilisateur qui désire une version dujour, lui, il utilise pacman -Syua --devel. on a donc les 2 méthodes de mises à jour.
si tu regardes par exemple yaourt-git il indique une version du soft mais avec un --devel tu télécharges (si nécessaire merci la fonction pkgver) la toute dernière version git (1.7...)
perso, je pense que c'est juste plus marquetting d'avoir un numéro de version du soft ! Manjaro STABLE - Linux lts - fish - Kde5 - icore N100 - 16Go RAM - ssd - efi
#mount /dev/archlinux /mnt/manjaro
#6Messageil y a 8 ansD'accord !
Merci beaucoup pour les explications, je me suis mépris sur le fonctionnement. Manjaro 64 bits Net édition avec Openbox.
#7Messageil y a 8 anspapajoke a écrit :comme dit précédemment elle est utilisée avec --devel (normalement la bonne méthode)
ou
par les mainteneurs de -git qui désirent coller au dépot git plus qu'a la version du soft
On peut dire cela ainsi.
je me répète, si le mainteneur utilise la fonction pkgver() sans mettre a jour manuellement la version dans pkgbuild alors les utilisateurs ne recevrons JAMAIS de notification même si le git évolue; seul l' option --devel va leur dire si une nouvelle version est présente.
C'est pour cela que des outils comme yaourt propose l'option -a pour voir la liste des paquets récupérés sur AUR pour vérifier d'éventuelles mises à jour.
généralement les mainteneurs "-git" (Fred !) mettent à jour la version du PKGBUILD manuellement tous les 15..30 jours si nécessaire calculée par cette fonction histoire de forcer une mise à jour (ou pas). Et l'utilisateur qui désire une version dujour, lui, il utilise pacman -Syua --devel. on a donc les 2 méthodes de mises à jour.
Mes PKGBUILDs voient la valeur pkgver mise à jour automatiquement lors du makepkg -s. Ensuite, un coup de mksrcinfo, et les commandes git qui vont bien pour informer d'une nouvelle version.
Je vais plus sur 10 jours, car certains logiciels sont assez mouvants. Souvent, il y a un rXX (où XX est un nombre mouvant) indique le nombre de modifications insérées depuis la dernière version stable. Cela permet de voir que le logiciel continue d'être développé.
si tu regardes par exemple
yaourt-git il indique une version du soft mais avec un --devel tu télécharges (si nécessaire merci la fonction pkgver) la toute dernière version git (1.7...)
perso, je pense que c'est juste plus marquetting d'avoir un numéro de version du soft !
Pas uniquement, comme je t'ai dit plus haut