¿Qué pasa con los paquetes "* -git date" en el AUR?

10

Estoy a punto de pasar a Arch Linux. Al revisar los paquetes en el AUR, hay muchos paquetes que siguen el esquema de nombres "project-name-git date", por ejemplo:

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

¿Qué son estos paquetes? ¿Son solo instantáneas del repositorio adonthell / wesnoth / etc en el momento especificado? Si es así, el paquete no podría actualizarse sin cambiar su nombre, lo que tiene que complicar mucho la administración del paquete.

Si quisiera la última versión de, digamos, vimprobable del git repo, ¿debería usar AUR o compilarlo yo mismo?

Anna
fuente
1
La fecha no es parte del nombre del paquete, es el número de versión (en las respuestas se describe por qué se usa la fecha).
Wieland

Respuestas:

9

En resumen : solo compile el paquete y será la última versión del repositorio de git; esto es manejado automáticamente por makepkg.

Al leer los PKGBUILDarchivos de -gitpaquetes (por ejemplo, para adonthell-git ), puede ver:

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

Por lo tanto, cada vez que makepkgse ejecuta, descarga la última versión del repositorio de git.

El pkgverparámetro se debe a que makepkgrequiere un número de versión en PKGBUILDy en el paquete final; una cita es lo que tiene más sentido aquí.

Si se detecta que es un paquete de git, makepkgmaneja el caso especial en consecuencia:

(líneas 1687-1771 de makepkg, función 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)

[muchas briznas de otros casos para darcs, hg, svnetc ...]

(líneas 1773-1792 de makepkg, función 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.:

por lo tanto, termina con un paquete cuyo número de versión es la fecha en que lo compiló.

Renan
fuente
Gracias. ¿Esto significa que pacman -Syuno detectará automáticamente que hay una nueva versión y la compilará nuevamente?
Anna
Exactamente, deberá verificar la nueva versión por su cuenta. Pero puede actualizarlo simplemente reconstruyendo el paquete.
Renan
2

Usar una fecha Git es tan válido como usar cualquier otra forma de numeración de versiones.

En cuanto a cómo obtener la versión más reciente de un paquete / programa, descargar desde git y compilarse, probablemente sea la mejor forma de obtener la versión "más reciente" de un paquete.

Por otro lado, si desea una versión ya compilada que haya sido probada al menos marginalmente y se encuentre moderadamente estable, entonces recomendaría el paquete del repositorio.

asesino
fuente