Сборка пакета с РЕАЛЬНОГО НУЛЯ: различия между версиями
(Новая страница: «== Введение == Дано: - Hasher, gear, git.alt и другие инструменты настроены должным образом. - готов…») |
|||
Строка 63: | Строка 63: | ||
== См. также == | == См. также == | ||
[[Git.alt/Путь пакета в сизиф]] | [[Git.alt/Путь пакета в сизиф]] | ||
<br> | |||
Читать до полного просветления: | |||
<br> | |||
[[О стратегии сборки RPM пакетов]] | |||
<br> | <br> | ||
[[ALT Packaging HOWTO]] | [[ALT Packaging HOWTO]] | ||
[[Категория:FAQ]] | [[Категория:FAQ]] | ||
[[Категория:Packaging]] | [[Категория:Packaging]] |
Версия от 14:15, 4 сентября 2019
Введение
Дано:
- Hasher, gear, git.alt и другие инструменты настроены должным образом. - готового src.rpm нет; - ветки на git.alt нет; - исходники - либо тарболл "где-то там, далеко-далеко", либо гитхаб, либо вообще снапшот с sourceforge.
Вывод - веселья мало не будет.
Приступим!
Общий алгоритм сборки
0. Лезем за исходниками - либо в тарболле, либо напрямик с гита:
git clone <адрес репозитория> wget <ссылка на тарболл> или же скачиваем снапшот с того же sourceforge 0.0. Распаковываем тарболл 0.1. Приводим название каталога с исходниками к виду "ИмяПакета"
1. Переходим в созданный репозиторий
cd ИмяПакета
2. Инициализируем локальный репозиторий:
git init
3. Создаём каталог для файла правил gear:
mkdir -pv .gear
4. Создаём файл с правилами для gear:
touch .gear/rules
5. Заполняем созданный файл согласно полиси
nano .gear/rules. Самый простой вариант tar.gz: . - исходники упаковываются со сжатием copy: *.patch - скопировать в выходной тарболл патчи (по тому же принципу копируем и файлы локализации и пр.)
6. Создаём или кладём к исходникам спек-файл
cp ИмяПакета.spec ИмяПакета/ИмяПакета.spec 6.0. Причёсываем спек: cleanup_spec спек.spec 6.1. Правим спек: Source: %name-version.tar.gz %setup -n %name-%version
7. Говорим git'у, что нужные файлы добавлены:
git add .
8. Зовём gear записать изменения
gear-commit -a
9. В открывшемся текстовом редакторе, в самом начале, пишем описание коммита:
"Initial commit"
A. Пробуем связаться с удалённым сервером (и получаем по лбу, ибо доступа пока что нету :-) )
git remote add origin git.alt:packages/ИмяПакета.git
B. На удалённый репозиторий добавляется всё, что у нас есть, и закрепляется:
git push origin master
B.0. ВНИМАНИЕ! Перед добавлением подписанного тэга стоит проверить, собирается ли пакет вообще. Для этого попробуем собрать пакет локально и без отправки в Сизиф (ключей-то нету...): gear --hasher -- hsh --no-sisyphus-check Не собралось? Не беда, исправляем ошибку и запускаем сборку, но уже без необходимости собирать песочницу заново: gear --hasher -- hsh-rebuild --no-sisyphus-check
C. Создаём подписанный тэг (см. "настройка по ключам и прочему")
git tag -s -m "ИмяПакета-0.1-alt1" ИмяПакета-0.1-alt1
D. Закрепляем тэг:
git push origin --tags
См. также
Git.alt/Путь пакета в сизиф
Читать до полного просветления:
О стратегии сборки RPM пакетов
ALT Packaging HOWTO