Gear start: различия между версиями
м (→Вариант gear/rules с тарболлом: -q не нужен, это default) |
|||
Строка 74: | Строка 74: | ||
В спеке нужно прописать: | В спеке нужно прописать: | ||
%setup | %setup -n bmpanel2 | ||
для правильного определения подкаталога. | для правильного определения подкаталога. | ||
{{Category navigation|title=Начинающему разработчику|category=Начинающему разработчику|sortkey={{SUBPAGENAME}}}} | {{Category navigation|title=Начинающему разработчику|category=Начинающему разработчику|sortkey={{SUBPAGENAME}}}} |
Версия от 22:43, 26 января 2025
Официальная документация здесь
Gear - инструмент для git-репозиториев с исходным кодом и данными для сборки пакета. Используется системой сборки ALT Linux hasher.
gear-репозиторий — это git-репозиторий, содержащий файл .gear/rules. Этот файл (плюс несколько вспомогательных) описывают правила сборки содержимого git-репозитория в пакет формата pkg.tar или src.rpm.
pkg.tar — это основанный на tar формат для хранения пакета с исходным кодом, аналогичный src.rpm, но не требующий запуска rpmbuild для создания. hasher умеет собирать пакеты в формате pkg.tar.
Параметры Gear
Для правки параметров Gear правим файл .gear/rules.
Скопировать файл в дерево сборки
Параметр:
copy: rpm.macros.trinity.standalone
Структура каталога:
1-rpm-macros-trinity ├── .gear │ └── rules ├── README.md ├── rpm-macros-trinity.spec └── rpm.macros.trinity.standalone
Например, в репозитории с "исходниками" один файл, который нужно включить в rpm. В этом случае вам нужно прописать один параметр copy.
Скопировать в каталог сборки файлы, упаковать все в архив, указать спек
Параметры:
copy: cmake-trinity/modules/*.cmake copy: cmake-trinity/modules/*.pl copy: cmake-trinity/templates/*.cmake copy: import.info tar: cmake-trinity name=cmake-trinity-14.1.3 spec: cmake-trinity.spec
Структура каталога:
2-cmake-trinity ├── cmake-trinity │ ├── CMakeLists.txt │ ├── generate_apidox │ ├── install_apidox │ ├── modules │ │ └── *.cmake │ │ TDEVersion.cmake │ └── templates │ └── *.cmake ├── cmake-trinity.spec ├── .gear │ └── rules └── import.info
Например, в данной ситуации нужно "упаковать" cmake-скрипты, находящиеся в разных папках в один каталог чтобы система сборки свободно работала с ними будто они находятся все одном каталоге для сборки.
Для этого командой:
- copy указываются файлы, которые будут скопированы в пакет
- tar указывается архив, в который будет запакован каталог
- spec указывается спек для сборки
Указать архив в который будет запакован каталог
Команду:
tar: cmake-trinity name=cmake-trinity-14.1.3
можно разделить на три части:
- вид архива
- tar
- tar.gz
- каталог для архива
- каталог из корня (в нашем случае cmake-trinity)
- все содержимое корня (.)
- имя архива
- имя присваивается после знака равно name=cmake-trinity-14.1.3, т.е. если нам нужно присвоить свое имя, например с именем и версией, то это можно указать здесь
Вариант gear/rules с тарболлом
Если исходный код берут из тарболла (tar.gz), то его кладут в подкаталог, а выше его размещают .spec и патчи. Если используется апстримовый git, то добавляется .spec, .gear/rules (или .gear-rules) с правилом
tar.gz: . name=bmpanel2 base=bmpanel2
В src.rpm во время генерации будет создан тарболл bmpanel2-<version>.tar.gz с подкаталогом bmpanel2.
В спеке нужно прописать:
%setup -n bmpanel2
для правильного определения подкаталога.