
Estamos usando Git como nuestro VCS y RPM para el empaquetado. Me gustaría almacenar el hash de Git a partir del cual se creó un paquete, pero no estoy seguro del lugar más apropiado.
Hay una serie deetiquetasdisponible para un RPM, sin embargo, no veo ninguno para una versión VCS (¿quizás lo haya echado un vistazo?).
Estoy bastante preocupado poragregando una etiqueta personalizada, simplemente mirando el nivel de 50.000 pies.
Una solución que parece bastante complicada sería poner el hash de Git en eldescripcióncampo. No lo usaremos para nada más en este momento, pero vaya, eso se siente feo.
Entonces, ¿cuál es el lugar más apropiado para almacenar una versión de VCS en un RPM?
Respuesta1
Fedora (y muy raramente RHEL)coloque esta información en la etiqueta de lanzamiento.
Por ejemplo:
Name: mypackage
Version: 0.0.1
Release: 20140114git0abcdef
Respuesta2
En realidad, RPM tiene una etiqueta mal documentada VCS
.
No parece tener ningún tipo de pautas sobre su uso, pero existe y cuenta con soporte.
cat > test.spec <<'__END__'
Name: foo
Version: 1
Summary: foo
License: None
Release: 1
VCS: git:repo=my-repo:branch=my-branch:sha=1234deadbeef
%description
foo
__END__
$ rpmspec -q test.spec --qf "%{VCS}\n"
git:repo=my-repo:branch=my-branch:sha=1234deadbeef
Parece estar limitado a un único token de análisis. Sigue siendo útil. No encontré ninguna documentación sobre un formato o estructura bien definida y su adopción es limitada. En mi sistema Fedora 32 encontré dos paquetes usándolo, con diferentes formatos:
$ rpm -qa --qf '%{Name} %{VCS}\n' |grep -v '(none)'
bcache-tools https://github.com/g2p/bcache-tools.git
libcue scm:git:https://github.com/lipnitsk/libcue.git
$
Francamente, es una verdadera lástima que rpm no nos brinde la posibilidad de inyectar información de etiquetas personalizada. Quiero registrar el ID de compilación de Jenkins y el nombre del trabajo, el hash de confirmación de git y la rama o etiqueta de git, pero realmente no los quiero en el registro de cambios.
Puedo hacer esto en debs con X-BS-foo
etiquetas.
Puede ver una lista de etiquetas rpm permitidas con rpm --querytags
.
La DISTURL
etiqueta parece serreservado para otro usopero podría ser candidato.
También hay URL
; puede optar por insertar información de SCM allí y tener una redirección que lleve la URL a una ubicación razonable si la visita un navegador.
Es posible que vea referencias a "rpm5" que admite etiquetas personalizadas. Esto parece ser una bifurcación muerta de rpm, no la distribución rpm.org utilizada en la mayoría de las distribuciones principales.
Respuesta3
No creo que nada le impida almacenar toda la información requerida en un archivo VERSIÓN en el directorio de documentos. La ruta a ese archivo podría agregarse a la etiqueta VCS (aunque no lo he probado).