Создание пакета с плагином 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