Genspec: различия между версиями
Нет описания правки |
|||
Строка 198: | Строка 198: | ||
=Конкретные примеры= | =Конкретные примеры= | ||
==Простое создание репозитория== | |||
1. [[Сборка_пакетов_start#Настройка_окружения_RPM|Настройте окружение RPM]]<br> | |||
2. Перейдите в каталог, где будет будущий репозиторий | |||
$ mkdir ~/myrepo | |||
$ cd ~/myrepo | |||
3. Создаем репозиторий | |||
$ genspec -n supertux -v 0.5 -l GPLv3 -u http://www.supertux.org | |||
Результаты: | |||
1. Каталог и его содержимое | |||
~/myrepo | |||
└── supertux | |||
├── .gear | |||
│ └── rules | |||
└── supertux.spec | |||
2. Содержимое .gear/rules | |||
tar: . | |||
3. Содержимое spec: | |||
<syntaxhighlight lang="spec"> | |||
Name: supertux | |||
Version: 0.5 | |||
Release: alt1 | |||
Summary: | |||
License: GPLv3 | |||
Group: Other | |||
Url: http://www.supertux.org | |||
Packager: Petya Ivanov <petyaivanov@altlinux.org> | |||
Source: %name-%version.tar | |||
#BuildRequires: | |||
%description | |||
%prep | |||
%setup | |||
%build | |||
%configure | |||
%make_build | |||
%install | |||
%makeinstall_std | |||
%check | |||
%make_build check | |||
%files | |||
%doc *.md | |||
%_bindir/* | |||
%_man1dir/* | |||
%changelog | |||
* Thu Feb 20 2025 Petya Ivanov <petyaivanov@altlinux.org> 0.5-alt1 | |||
</syntaxhighlight> | |||
[[Категория:RPM spec]] | [[Категория:RPM spec]] |
Версия от 19:35, 20 февраля 2025
Genspec | |
---|---|
Разработчик(и) | Андрей Черепанов |
Первый выпуск | 2015 |
Лицензия | GNU GPL v3 |
Сайт | altlinux.org |
Репозиторий | genspec |
Genspec - утилита по генерации файлов .spec на базе шаблонов.
Использование
usage: genspec [-h] [--version] -n MODULE [-t SPEC_TYPE] [-v VERSION] [-s SUMMARY] [-l LICENSE] [-u URL]
[-d DESCRIPTION] [-c LASTCHANGE] [-o OWNER] [-f] [--gitignore] [--no-gitignore] [--check]
[--no-check] [--disable-name-translation] [--no-empty-branch] [--empty-branch] [--verbose]
[--here] [--tag TAG] [--git] [--test ORIGINAL] [--date DATE]
[--after-git-command AFTER_GIT_COMMAND]
Параметры | ||
---|---|---|
№ | Команда | Описание |
1 | -h, --help | Отобразить данную справку и завершить работу |
2 | --version | Отобразить версию программы и завершить работу |
3 | -n MODULE | Пакет или название модуля |
4 | -t SPEC_TYPE | Тип пакета |
5 | -v VERSION | Версия пакета |
6 | -s SUMMARY | Краткое описание пакета |
7 | -l LICENSE | Лицензия пакета |
8 | -u URL | URL пакета |
9 | -d DESCRIPTION | Описание пакета |
10 | -c LASTCHANGE | Описание изменений в пакете |
11 | -o OWNER | Владелец репозитория Github |
12 | -f, --force | Принудительно перезаписать каталог или spec и .gear, если они уже существуют |
13 | --gitignore | Сохранить стандартный .gitignore в новый пакет. |
14 | --no-gitignore | Не сохранять стандартный .gitignore в новый пакет. |
15 | --check | Рассматривать все сбои при выполнении внешних программ как ошибки. |
16 | --no-check | Пропускать все ошибки при выполнении внешних программ. |
17 | --disable-name-translation | Не изменять заданное имя. |
18 | --no-empty-branch | Не создавать пустую ветку |
19 | --empty-branch | Создать пустую ветку |
20 | --verbose | Показать вывод выполняемых программ |
21 | --here | Создать спек из текущего каталога |
22 | --tag TAG | Тег git (Git tag) (используется в .gear/rules) |
23 | --git | Склонировать репозиторий Git из url, очистить репозиторий и настроить удаленные обновления |
24 | --test ORIGINAL | Запустить программу в тестовом режиме, чтобы сравнить результат с оригинальным каталогом |
25 | --date DATE | Передать дату в журнал изменений в формате YYYY-MM-DD. |
26 | --after-git-command AFTER_GIT_COMMAND | Выполнить команду после действий над git |
Скрипт генерирует RPM-спек на основе шаблона.
Поддерживаются переменные окружения:
Переменные окружения | ||
---|---|---|
№ | Переменная | Описание |
1 |
GENSPEC_TEMPLATES |
Путь к шаблонам spec (по-умолчанию в /usr/share/spectemplates/) |
2 | GENSPEC_PACKAGER | Имя разработчика (Packager name) (по-умолчанию из rpm --eval '%{packager}') |
Поддерживаемые шаблоны
Тип | Описание |
---|---|
cmake | «Чистый» cmake |
common | Сборка с помощью Autotools |
golang-bin | Проект на Go |
java-maven | Сборка проекта на Java с помощью Maven |
meson | Проект на Meson |
ninja | Сборка cmake с помощью ninja-build |
noarch | Простой архитектуро-независимый проект (например, шрифты) |
ocaml | Проект на Ocaml |
python2-bin | Исполняемый файл на Python 2.x |
python2 | Модуль на Python 2.x |
python3-bin | Исполняемый файл на Python 3.x |
python3 | Модуль на Python 3.x |
python-bin | Исполняемый файл на Python 2.x |
python | Модуль на Python 2.x |
ruby-bin | Исполняемый файл на Ruby |
ruby | Модуль на Ruby |
rust-bin | Исполняемый файл на Rust |
Конкретные примеры
Простое создание репозитория
1. Настройте окружение RPM
2. Перейдите в каталог, где будет будущий репозиторий
$ mkdir ~/myrepo $ cd ~/myrepo
3. Создаем репозиторий
$ genspec -n supertux -v 0.5 -l GPLv3 -u http://www.supertux.org
Результаты:
1. Каталог и его содержимое
~/myrepo └── supertux ├── .gear │ └── rules └── supertux.spec
2. Содержимое .gear/rules
tar: .
3. Содержимое spec:
Name: supertux
Version: 0.5
Release: alt1
Summary:
License: GPLv3
Group: Other
Url: http://www.supertux.org
Packager: Petya Ivanov <petyaivanov@altlinux.org>
Source: %name-%version.tar
#BuildRequires:
%description
%prep
%setup
%build
%configure
%make_build
%install
%makeinstall_std
%check
%make_build check
%files
%doc *.md
%_bindir/*
%_man1dir/*
%changelog
* Thu Feb 20 2025 Petya Ivanov <petyaivanov@altlinux.org> 0.5-alt1