Автор Тема: Сборка пакета с исходниками в отдельном репозиторие  (Прочитано 270 раз)

Оффлайн toreonify

  • Давно тут
  • **
  • Сообщений: 77
Пытаюсь собрать новый пакет из исходников, но увидев, что blink-qt не хранит исходный код в репозиторие Альта, решил попробовать сделать так же. Но не смог найти инструкций по правильному созданию/заполнению файлов gear для такого случая. По подключению upstream информация есть, .gear/upstream/remotes создается, .gear/rules тоже понятно как создать. А вот .gear/tags/ не заполняется. Ни list, ни файлы с тэгами в upstream.

Откуда брать хэш для названия файла тэга в .gear/tags/*, который указывает на тэг в upstream? Или это создается вручную без утилит?

Оффлайн gosts 87

  • Завсегдатай
  • *
  • Сообщений: 2 636
  • Дмитрий/Dmitry/德米特里/दिमित्री
« Последнее редактирование: 13.09.2023 15:09:34 от gosts 87 »

Оффлайн toreonify

  • Давно тут
  • **
  • Сообщений: 77
Нет, не в srpm пакетах, а в самом репозиторие. По этой ссылке нет исходного кода. Если cклонировать репозиторий на компьютер и вызвать сборку, то gear берет исходники (явно не из пустого места). Если вызвать просто gear для упаковки исходников, то он тоже их берет, скорее всего с upstream.

https://git.altlinux.org/gears/b/blink-qt.git?p=blink-qt.git;a=tree

Оффлайн gosts 87

  • Завсегдатай
  • *
  • Сообщений: 2 636
  • Дмитрий/Dmitry/德米特里/दिमित्री
Если вызвать просто gear для упаковки исходников, то он тоже их берет, скорее всего с upstream.

https://git.altlinux.org/gears/b/blink-qt.git?p=blink-qt.git;a=tree
Если перейти по данной ссылке, то: gear -> rules, tags, upstream
upstream -> remotes -> blob ->
1 [remote "upstream"]
   2         url = https://github.com/AGProjects/blink-qt
   3         fetch = +refs/heads/*:refs/remotes/upstream/*
« Последнее редактирование: 13.09.2023 15:45:37 от gosts 87 »

Оффлайн toreonify

  • Давно тут
  • **
  • Сообщений: 77
Да, я это нашел. Но если воспроизвести такую же структуру для своего (нового) пакета, то это не работает. Он цепляет тэг из .gear/tags/list, а дальше не хочет:

gear: .gear/rules line 1: Name "0.1" specifies a nonexistent object 52046f2c5dbd16181918c41471cb7299200c898f
gear: .gear/rules line 1: Failed to make archive

Коммит с таким хэшем существует в удаленном репозиторие на GitHub.

Какой шаг необходим для того, чтобы gear брал исходники из указанного upstream - неясно, т.к. на вики сборка рассматривается только из исходников в этом же репозиторие или перепаковке бинарных пакетов.

Оффлайн gosts 87

  • Завсегдатай
  • *
  • Сообщений: 2 636
  • Дмитрий/Dmitry/德米特里/दिमित्री
Какой шаг необходим для того, чтобы gear брал исходники из указанного upstream - неясно,
Можно спросить у пользователя Skull
Это он этот пакет в Альте сопровождает.
Я работал только с rpm-build и Hasher - ом.
« Последнее редактирование: 13.09.2023 16:10:54 от gosts 87 »

Оффлайн toreonify

  • Давно тут
  • **
  • Сообщений: 77
Я работал только с rpm-build и Hasher - ом.
Вот и я пользовался простой сборкой до этого. А хочется дальше изучить процесс сборки пакетов, чтобы без костылей и правильно было.

Можно спросить у пользователя Skull
Придется)
« Последнее редактирование: 13.09.2023 16:20:01 от toreonify »

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 926
    • Домашняя страница
    • Email
.gear/rules указывает на тег в апстримном бранче. После слияния через git merge -s ours ТЕГ делается gear-update-tag -a  и в .gear появляется файл с хэшем собираемого апстимного коммита. Это дерево и упаковывается в архив при gear-hsh. Подробности -- на https://www.altlinux.org/Gear
Андрей Черепанов (cas@)