O que há com os pacotes "* -git date" no AUR?

10

Estou prestes a mudar para o Arch Linux. Ao verificar os pacotes no AUR, há muitos pacotes seguindo o esquema de nomenclatura "data do projeto-nome-git", por exemplo:

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

O que são esses pacotes? Eles são apenas instantâneos do repositório adonthell / wesnoth / etc no momento especificado? Nesse caso, não foi possível atualizar o pacote sem alterar o nome, o que dificulta bastante o gerenciamento de pacotes.

Se eu gostaria da versão mais recente, digamos, vimprobable do repositório git, devo usar o AUR ou compilá-la eu mesmo?

Anna
fonte
11
A data não faz parte do nome dos pacotes, é o número da versão (por que a data é usada está descrita nas respostas).
Wieland

Respostas:

9

Resumindo : basta compilar o pacote e ela será a versão mais recente do repositório git; isso é tratado automaticamente por makepkg.

Ao ler os PKGBUILDarquivos dos -gitpacotes (por exemplo, para adonthell-git ), você pode ver:

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

Assim, toda vez que makepkgé executado, ele baixa a versão mais recente do repositório git.

O pkgverparâmetro é porque makepkgrequer um número de versão no PKGBUILDe no pacote final; uma data é o que faz mais sentido aqui.

Se for detectado que é um pacote do git, makepkglida com o caso especial de acordo:

(linhas 1687-1771 de makepkg, função 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)

[lotes snipped de outros casos para darcs, hg, svnetc ...]

(linhas 1773-1792 de makepkg, função 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.:

portanto, você acaba com um pacote com o número da versão como a data em que o criou.

Renan
fonte
Obrigado. Isso significa que pacman -Syunão detectará automaticamente que há uma nova versão e a compila novamente?
Anna
Exatamente, você precisará verificar a nova versão por conta própria. Mas você pode atualizá-lo apenas reconstruindo o pacote.
Renan
2

Usar uma data Git é tão válido quanto usar qualquer outra forma de numeração de versão.

Quanto a como obter a versão mais recente de um pacote / programa, baixando do git e compilando-se, provavelmente a melhor maneira de obter a versão "mais recente" de um pacote.

Por outro lado, se você quiser uma versão já compilada que tenha sido pelo menos marginalmente testada e encontrada moderadamente estável, eu recomendaria o pacote do repositório.

killermist
fonte