Инструменты упаковки бинарных пакетов для различных версий Linux
Мы выбрали для выполнения скриптов окружение GitHubActions. И написали три стадии: с получением и распоковкой deb дистрибутива, с проверкой валидности и генерации метаданных, со скачкой или устанокой дополнительных библиотек, со сборкой и запаковкой для других дистрибутивов.
Проект разделился на три скрипта: скачка и верификация, анализ и генерация, и сборка. Вчера возникли проблемы со сборкой и подключением библиотек в других версиях. Сегодня весь день исправляли эти трудности.
Достигнута цель сборки из Deb в Aur бинарный пакет в окружении GitHub Actions.
Дописать бинарные пакеты для других систем. Сделать универсальным по для перепаковки других пакетов и банрных файлов.
Lantern Desktop поддерживается дистрибутивами Linux на базе Debian. Он может работать на других дистрибутивах (Fedora, Arch, Alpine, Void и т. д.), но его необходимо правильно упаковать для этих систем (RPM для Fedora, AUR для Arch и т. д.).
Задача: проанализировать пакеты, выпущенные Lantern для Debian, и создать инструменты сборки для упаковки приложения для различных версий Linux.
Тех задача: Требовалось перепаковать debian или бинарный файл (без исходников) для других дистрибутивов в автоматическом режиме. В качестве входных данных был дан пакет Lantern Desktop.
https://www.debian.org/doc/debian-policy/
ar -x
- unpack on debian
Control (pack meta, hash sums) + Data
Unpack data -> usr: bin, doc
.tar.gz - tar -xzf
Universal: dpkg-deb -e
:preinst, postinst, prerm, postrm
Options:
-
docker
-
manual packing and linking
-
chroot
-
GitHub Actions
Selected way: Github Actions
Package-specific applications:
- Arch - AUR:
mpkg
Conclusion - mpkg with linkingmakepkg
- RPM - Fedora:
Classic rpm-tools
- https://rpm-packaging-guide.github.io/
alien
- from deb to rpm : GH Actions/debian env
rpkg
- build and linking due
- Alpine:
https://wiki.alpinelinux.org/wiki/Creating_an_Alpine_package
dh-make
- Debian:
dpkg
- Nix
https://nixos.wiki/wiki/Packaging/Binaries
Conclusion:
makepkg
- AUR
rpkg
- RPM
[1] Deep Linking - https://wiki.archlinux.org/title/Creating_packages_for_other_distributions
RPM Fedora - RPM https://web.archive.org/web/20050312181634/http://www.hut.fi/~tkarvine/rpm-build-as-user.html https://web.archive.org/web/20060219023154/http://www.rpm.org/max-rpm/rpm.8.html
MISC: DPMD
SHEME
-
GitHub Actions
-
Scripts:
-
Скачка, распаковка, верификация
-
анализ, генерация
-
no needed скачка, компляция библиотек
-
сборка
-
Libraries bug
-
Сборка в Aur
MakePkg + Linking
- PKGBUILD not executed - missing libraries.
libcap libappindicator-gtk3
- lib linking Add Libraries to package, linked them manually.
RPM Generating by:
-
rpkg
orrpm-tools
on Fedora environment -
alien
on Debian env
-
Sources or binaries? Binaries.
-
Dependences? analysed -
libcap libappindicator-gtk3
Тех реализация, прогресс за хакатон, потенциал. КОД
- Problem
-
Проанализировать пакеты Lantern Desktop
-
Создать инструменты сборки и упаковки
- Log
- gh a
- scripts
- Cборка aur
- Другие системы
-
Собранный aur пакет.
-
Схема + прогресс
-
RPM генерация.
-
Полезность: возможность портирования других пакетов.
-
Участники и мотивация.
- Init environment and choose target systems (with applications).
.yaml
- build configuration for GH Actions YAML (doc)
dpkg-deb
- extract deb packet
- Build for different systems
makepkg
- build aur packet AUR
PKGBUILD - build script with
- metadata
- change desktop
- add lib link
Build RPM packet by (REF TO BACKLOG):