Где поставить последний git commit id в rpm


Я хотел бы добавить последний "git commit id" к моим RPM, чтобы иметь надежный способ отслеживать источники, используемые для сборки пакета.

Я мог бы использовать тег rpm release, но он уже используется для номеров релизов и дат в случае моментальных снимков. Я не хочу перегружать это еще больше.

Существует ли другой тег или механизм для хранения последнего commit-id в rpm?

1 4

1 ответ:

Я не знаю ничего в формате спецификации, специально разработанном для этого, но я вижу несколько вариантов:

  • используйте тег version
    • Вы упомянули тег release в своем вопросе, но это относится к версии пакета , а не к версии программного обеспечения. Ревизия Git гораздо больше похожа на версию программного обеспечения,чем на версию пакета.
    • для стабильных релизов вы все еще можете использовать числовые теги, такие как 1.0 , Если хотите, но я бы посоветовал вам убедиться, что это соответствует тегу Git с тем же именем, поэтому ваша версия всегда будет иметь значение для Git.
    • Это означает, что вы, вероятно, также должны использовать тег serial, чтобы RPM мог выяснить, как заказать версии. (Это может быть не нужно, если вы метите правильно и используете метод ниже для определения вашей версии.)
    • это будет включать ревизию в имя вашего пакета или, по крайней мере, в имя файла, и это звучит так, как будто вы этого не хотите.
  • назовите свое имя. исходный архив с хэшем Git, а затем используйте тег url, например http://example.com/software/software-abcd123.zip.
    • вам не нужно будет включать ревизию в имя файла пакета, используя этот метод.

В первом случае (и, возможно, во втором), возможно, стоит использовать git describe чтобы определить номер версии git-aware, например

$ git describe HEAD
1.0.0-3-gabcd123
'-.-' | |'--.--'
  |   | |   `---- Short Git hash
  |   | `-------- Indicates that a Git hash follows
  |   `---------- Three commits ahead of the previous tag name
  `-------------- The name of the base tag

Обратите внимание, что ваш RPM version не может содержать дефисов, поэтому эту версию, возможно, придется переписать на что-то вроде 1.0.0_3_gabcd123.