recipes
git clone https://git.paganlinux.eu/recipes.git
PaganOS Recipes
Receptury pakietów dla PaganOS. Każdy plik PAGBUILD.yaml definiuje jak zbudować pojedynczy pakiet.
Struktura
recipes/
├── core/ # pakiety bazowe (binutils, gcc, glibc, ...)
├── drivers/ # sterowniki (libinput, mesa, ...)
├── net/ # sieć (curl, wget, NetworkManager, ...)
├── gui/ # pakiety GUI (gtk, qt, xfce, ...)
├── utils/ # narzędzia (bubblewrap, ripgrep, ...)
└── boot/ # bootloader (grub)
Format PAGBUILD.yaml
pkgname: acl
pkgver: '2.4.0'
pkgrel: 1
pkgdesc: Commands for Manipulating POSIX Access Control Lists.
url: http://savannah.nongnu.org/projects/acl
arch: x86_64
license:
- GPL-2.0-only
depends:
- attr
makedepends:
- gcc
source:
- http://download.savannah.gnu.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz
sha256sums:
- SKIP
build: |
cd "${pkgname}-${pkgver}"
./configure --prefix=/usr
make -j$(nproc)
package: |
cd "${pkgname}-${pkgver}"
make DESTDIR="${PKGDIR}" install
Zmienne dostępne w fazach build/package
${PKGDIR}— katalog DESTDIR (instalacja pakietu)${pkgname},${pkgver},${pkgrel}— podstawiane też w adresachsource:
Model pakietu (jak Arch/Debian — bez footprintów)
Receptura nie deklaruje listy plików. Faza package: instaluje wszystko do
${PKGDIR} (DESTDIR) i z tego katalogu pagbuild tworzy jeden pakiet —
dokładnie jak PKGBUILD w Archu czy reguły install w Debianie. Lista plików
nie jest danymi wejściowymi, tylko pochodną pakietu: pag wylicza SHA256
dla każdego pliku przy instalacji i zapisuje je w /var/lib/pag/files.db
(rola, którą w Debianie pełni md5sums/.list, a w Archu .MTREE).
Nie używamy już pól
footprint,footprint_devel,footprint_man,footprint_<lang>— to balast z formatu cards/NuTyX, któregopagbuildnigdy nie czytał. Podpakiety deweloperskie/dokumentacyjne/językowe są scalane z pakietem głównym (ich pliki i tak trafiają do DESTDIR). Do usuwania tych pól z istniejących receptur służystrip-recipes-footprints.py.
Pakiet wyjściowy
pagbuild buduje pakiety .pag (tar.xz z metadata.json + data.tar.xz),
gotowe do instalacji przez pag install plik.pag. W repo trzymamy wyłącznie
aktualną wersję każdego pakietu — starsze są usuwane przez pagsync.
Budowanie lokalnie
pagbuild recipes/core/acl/PAGBUILD.yaml
Narzędzia
migrate-recipes.py— konwertuje recepturycards(Pkgfile) naPAGBUILD.yaml(footprinty są celowo pomijane)strip-recipes-footprints.py— usuwa polafootprint*z istniejących receptur (idempotentne;--apply, aby zapisać, domyślnie dry-run)
Polityka forków
Fork-first w całym repo: ../../FORK-POLICY.md.
Krótko: co możemy zrobić forkiem, robimy forkiem — źródła w repo, pakiet
-pagan, lokalny tarball + wyliczony sha256 (build bez sieci) i adnotacja
licencyjna o statusie forka (FORK.md + NOTICE).
- c12f022 fix: gstreamer-plugins-bad - usunieto libmpeg2 z makedepends (jest w SKIP_PACKAGES, wylaczony przez -Dmpeg2dec=disabled)
- 574b1ff fix: mesa - symlink libGLX_indirect w lib64 i lib (liby mesona sa w lib64)
- a61d307 fix: mesa - vulkan-drivers: swrast zamiast lavapipe (poprawne nazwy opcji)
- e34eaaa fix: mesa - vulkan-drivers bez nouveau (NVK ciagnal rust compiler i crates.io w configure); -Drust to nie istniejaca opcja
- 6039b95 fix: mesa -Drust=disabled (shader compiler w rucie ciagnal crates z crates.io w configure)
- 244d546 fix: mesa +xorg-libxxf86vm w makedepends (xxf86vm.pc), xorg-libxxf86vm pkgrel 2 (pusty pag z 09:12)
- 77b5d71 fix: spirv-llvm-translator 22.1.5 (zgodny z llvm 22.1.8, wersja 23.1.0 wymagala llvm 23) - budowa wg oryginalnej receptury (shared libs)
- 98d1e80 fix: mesa - spirv-llvm-translator (LLVMSPIRVLib) w makedepends; nowa receptura spirv-llvm-translator 22.1.5 (clc/intel wymaga LLVMSPIRVLib)
- 8aa06f9 fix: mesa - wylacz rusticl (wymagal LLVMSPIRVLib, eksperymentalny); libdvdread pkgrel 2 (przebudowa z poprawnym mesonem)
- b8a0ca2 fix: xorg-libdrm - package musi wejsc do zrodla (builddir jest w srodku)
- 7d995a2 fix: xorg-libdrm - wlacz intel/amdgpu/radeon/nouveau/vmwgfx (mesa -Dgallium-drivers=all wymaga libdrm_intel.pc i innych)
- 7c23f7e fix: mesa - vulkan-manifest-per-architecture to opcja BOOL (false, nie disabled)
- dfc645c fix: mesa vulkan-manifest-per-architecture=disabled; libdvdnav/read meson zrodlo "." + libdvdread w makedepends; gstreamer-plugins-bad mv+meson po mv, -Ddvdnav/-Dmpeg2dec=disabled (libmpeg2 SKIP); flatpak wersja ze zmiennych (1.19.0, nie 1.18.1)
- 46302f6 fix: python-flit-core - self-dependency (cykliczny build) usunieta, pip3 wheel bez --no-build-isolation (backend flit_core z PyPI)
- 276e8fe fix: libdvdnav i faac - meson zrodlo "." (libdvdnav po cd, faac po git clone do katalogu pkgname)