Que se passe-t-il avec les packages «* -git date» dans l'AUR?

10

Je suis sur le point de passer à Arch Linux. En vérifiant les packages dans l'AUR, il y a beaucoup de packages suivant le schéma de nommage "project-name-git date", par exemple:

adonthell-git 20100408-1
akonadi-facebook-git 20111117-1
wesnoth-svn 40587-1
vimprobable-git 20110829-1
vimprobable2-git 20111214-1

Quels sont ces packages? S'agit-il uniquement d'instantanés du référentiel adonthell / wesnoth / etc au moment spécifié? Si c'est le cas, le package ne peut pas être mis à jour sans changer son nom, ce qui complique beaucoup la gestion des packages.

Si je souhaite la dernière version de, disons, vimprobable à partir du dépôt git, dois-je utiliser AUR ou le compiler moi-même?

Anna
la source
1
La date ne fait pas partie du nom des packages, c'est le numéro de version (pourquoi la date est utilisée est décrite dans les réponses).
Wieland

Réponses:

9

En bref : compilez simplement le paquet et ce sera la dernière version du dépôt git; ceci est automatiquement géré par makepkg.

En lisant les PKGBUILDfichiers des -gitpackages (par exemple pour adonthell-git ), vous pouvez voir:

cd $_gitname && git pull origin
msg "The local files are updated."

Ainsi, à chaque makepkgexécution, il télécharge la dernière version depuis le référentiel git.

Le pkgverparamètre est car makepkgnécessite un numéro de version dans le PKGBUILDet dans le package final; une date est ce qui a le plus de sens ici.

S'il est détecté qu'il s'agit d'un package de git, makepkggère le cas spécial en conséquence:

(lignes 1687-1771 de makepkg, fonction devel_check)

elif [[ -n ${_gitroot} && -n ${_gitname} ]] ; then
    if ! type -p git >/dev/null; then
            warning "$(gettext "Cannot find the %s binary required to determine latest %s revision.")" "git" "git"
            return 0
        fi
        msg "$(gettext "Determining latest %s revision...")" 'git'
        newpkgver=$(date +%Y%m%d)

[beaucoup d'autres cas ciselées pour darcs, hg, svnetc ...]

(lignes 1773-1792 de makepkg, fonction devel_update)

# This is lame, but if we're wanting to use an updated pkgver for
# retrieving svn/cvs/etc sources, we'll update the PKGBUILD with
# the new pkgver and then re-source it. This is the most robust
# method for dealing with PKGBUILDs that use, e.g.:

vous vous retrouvez donc avec un package dont le numéro de version est la date à laquelle vous l'avez construit.

Renan
la source
Merci. Est-ce à dire que pacman -Syucela ne détectera pas automatiquement qu'il y a une nouvelle version et la compilera à nouveau?
Anna
Exactement, vous devrez vérifier la nouvelle version par vous-même. Mais vous pouvez le mettre à niveau simplement en reconstruisant le package.
Renan
2

L'utilisation d'une date Git est tout aussi valable que l'utilisation de toute autre forme de numérotation de version.

Quant à savoir comment obtenir la dernière version d'un package / programme, télécharger à partir de git et vous compiler si c'est probablement la meilleure façon d'obtenir la version "la plus récente" d'un package.

D'un autre côté, si vous voulez une version déjà compilée qui a été au moins marginalement testée et trouvée modérément stable, alors je recommanderais le package du référentiel.

killermist
la source