Сборка пакета с РЕАЛЬНОГО НУЛЯ

Материал из ALT Linux Wiki
Версия от 11:00, 4 сентября 2019; Arbars Zagadkin (обсуждение | вклад) (Новая страница: «== Введение == Дано: - Hasher, gear, git.alt и другие инструменты настроены должным образом. - готов…»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Введение

Дано:

- 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/Путь пакета в сизиф
ALT Packaging HOWTO