Gear start
Официальная документация здесь
Gear - инструмент для git-репозиториев с исходным кодом и данными для сборки пакета. Используется системой сборки ALT Linux hasher.
gear-репозиторий — это git-репозиторий, содержащий файл .gear/rules. Этот файл (плюс несколько вспомогательных) описывают правила сборки содержимого git-репозитория в пакет формата pkg.tar или src.rpm.
pkg.tar — это основанный на tar формат для хранения пакета с исходным кодом, аналогичный src.rpm, но не требующий запуска rpmbuild для создания. hasher умеет собирать пакеты в формате pkg.tar.
По умолчанию имя архива - %name-%version
Параметры 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 с тарболлом
sources <-ваш каталог с исходниками └── bmpane-source <-один из каталогов с модулями └── bmpanel2 <-каталог, который указывается для упаковки
Если исходный код берут из тарболла (tar.gz), то его кладут в подкаталог, а выше его размещают .spec и патчи. Если используется апстримовый git, то добавляется .spec, .gear/rules (или .gear-rules) с правилом
tar.gz: . name=bmpanel2 base=bmpane-source
В src.rpm во время генерации будет создан:
- тарболл bmpanel2-<version>.tar.gz
- в котором будет создан каталог с именем bmpane-source
- в котором будет каталог с исходниками под именем bmpanel2
- так же будет упакован каталог bmpane-source со всем его содержимым
В спеке нужно прописать:
%setup -n bmpanel2
для правильного определения подкаталога.
Один каталог с исходниками
avahi-tqt <-ваш общий каталог с исходниками └── avahi-tqt <-каталог содержащий исходники
Если у вас простой вариант, один каталог содержащий один-два *.h/*.cpp то gear/rules прописывается так:
tar.gz .