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

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

Estou prestes a mudar para o Arch Linux. Verificando pacotes no AUR, há muitos pacotes seguindo o esquema de nomenclatura "nome do projeto-data 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, o pacote não poderia ser atualizado sem alterar seu nome, o que complicou muito o gerenciamento de pacotes.

Se eu quiser a versão mais recente, digamos, do vimprovável do repositório git, devo usar o AUR ou compilá-lo sozinho?

Responder1

Resumidamente: Basta compilar o pacote e ele será a versão mais recente do repositório Git; isso é tratado automaticamente por makepkg.

Da leitura dos PKGBUILDarquivos dos -gitpacotes (por exemplo, paraadonthell-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 ocorre porque makepkgrequer um número de versão no PKGBUILDpacote final; uma data é o que faz mais sentido aqui.

Se for detectado que é um pacote do Git, makepkgtrata o caso especial adequadamente:

(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)

[cortou muitos 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 cujo número de versão é a data em que você o construiu.

Responder2

Usar uma data do 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, baixar do git e compilar você mesmo é 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 testada pelo menos marginalmente e considerada moderadamente estável, então eu recomendaria o pacote do repositório.

informação relacionada