создание_пакета_с_плагином_vlc_для_alt_linux

Создание пакета с плагином VLC для ALT Linux

Названия пакетов плагинов начинаются с vlc-plugin (см. apt-cache search vlc-plugin), поэтому делаем по аналогии. Склонировать проект в каталог со скорректированным именем

git clone https://github.com/nurupo/vlc-pause-click-plugin vlc-plugin-pause-click
cd vlc-plugin-pause-click

По файлам BUILD.md, README.md и Makefile выяснить, как выполняется сборка и установка применительно к ALT Linux. Для данного проекта так:

sudo apt-get install libvlc-devel
make
sudo make install

Сборку лучше выполнить до написания .spec, потому что так тестирование будет выполнено быстрее.

По выводу команд сборки и установки видно, что будет создан единственный файл libpause_click_plugin.so. Надо убедиться, что нет пакета, в котором этот файл существовал бы. Для этого скачать список всех файлов во всех пакетах в Сизифе (http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus/x86_64/base/contents_index) и выполнить поиск в нем по имени файла

grep libpause_click_plugin.so contents_index

Ничего не найдено - приступить к изучению репозитория.

gitk

В истории коммитов найти последний апстримовский релиз. Соответствующий ему коммит обычно обозначается тегом. В нашем случае это тег 2.2.0. Следует просмотреть коммиты после апстримовского релиза и убедиться, что среди них нет критичных. В нашем случае изменения после релиза коснулись только документации и сборки на MacOS, поэтому их можно спокойно отбросить.

Перейти на тег последнего релиза

git checkout 2.2.0

Создать ветку sisyphus и перейти на неё

git checkout -b sisyphus

Тут желательно убедиться, что все получилось правильно

gitk

Создать файл .spec. За основу можно взять файл из похожего пакета. Выбрать пакет можно тут http://git.altlinux.org/gears/

ВАЖНО!

1) %description принято переносить по строчкам на 72ом символе, как указано в инструкции: https://www.altlinux.org/Spec#%25description

2) Вместо make следует использовать макрос %make. Вместо make install следует писать %makeinstall_std.

3) В секции files особенно важно пользоваться макросами. В данном случае нужен %_libdir. Имя файла плагина должно начинатсья с того же самого пути, который в пакете vlc (%_libdir/vlc/plugins/video_filter/)

4) Последняя секция %changelog должна содержать записи по формату: дата, имя, почта, релиз пакета и ниже - описание изменений. Делать по образцу из .spec других пакетов. Есть пакет vim-plugin-spec_alt-ftplugin. После его установки в виме можно нажать \ac и в %changelog сгенерируется строка (https://www.altlinux.org/%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_changelog_%D0%B2_Vim).

Файл vlc-plugin-pause-click.spec должен располагаться в корне каталога с исходниками

Name: vlc-plugin-pause-click
Version: 2.2.0
Release: alt1

Summary: Pause Click plugin for VLC
License: LGPLv2.1+
Group: Video

Url: https://github.com/nurupo/vlc-pause-click-plugin
Source: %name-%version.tar

BuildRequires: libvlc-devel

Requires: vlc

%description
VLC plugin that allows you to pause/play a video by clicking
on the video image.
Can be configured to work nicely with double-click-to-fullscreen by
enabling "Prevent pause/play from triggering on double click" option
in the settings. By default it pauses on every click instead.

%prep
%setup

%build
%make

%install
%makeinstall_std

%files
%_libdir/vlc/plugins/video_filter/libpause_click_plugin.so

%changelog
* Mon May 02 2022 Kirill Izmestev <felixz@altlinux.org> 2.2.0-alt1
- Initial build for Sisyphus

Значение свойства License должно быть именем файла из каталога /usr/share/license.

Создать конфиг для gear (.gear/rules). Этот файл тоже можно создать на основе существующего. При этом учесть, что в .gear/rules надписи name=@name@-@version@ base=@name@-@version@ могут не иметь никакого смысла. Директива name указывает, как будет называться тарбол, а base - это то, куда делается cd в макросе %setup. Бывают странные пакеты, где приходится это настраивать, но по умолчанию используется как раз @name@-@version@

В данном случае содержимое .gear/rules

tar: @version@:.

Сохранить апстримный тег последнего релиза в файлах каталога .gear/tags

gear-store-tags -acv

Создать релизный коммит. Описание коммита будет создано автоматически на основе записи в %changelog.

git add .gear/rules vlc-plugin-pause-click.spec
gear-commit

Создать тег релизного коммита.

gear-create-tag

Далее следует выполнить локальную сборку пакета (https://vk.com/@kirov_osc-sborka-paketov-alt-linux), установку и проверить, все хорошо работает.

Если релизный коммит потребуется изменить, то будут полезны команды:

gear-commit --amend
gear-create-tag -f
создание_пакета_с_плагином_vlc_для_alt_linux.txt · Last modified: 2023/01/07 13:14 by mariaf