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).
- d15f559 fix: appstream -Dman=false (check xsltproc na martwym docbook.sourceforge.net padal w meson)
- 8c7fe5d fix: xdg-dbus-proxy -Dman=disabled (opcja nazywa sie man, nie manpages); appstream - mv do aliasu (jak gtksourceview5)
- fe521a0 fix: gtk4 - -Dintrospection=enabled (domyslnie disabled, brak Gtk-4.0.gir blokowal gnome-desktop/gtksourceview5/webkit2gtk)
- 1012012 fix: gstreamer - usunieto nieistniejacy glib-devel z makedepends (glib juz jest)
- dc40f14 fix: libproxy - package cd do - (klon zostaje przenazwany mv, nie ma katalogu )
- 7c417b3 fix: libproxy - package musi wejsc do katalogu zrodla (builddir jest w srodku), meson install -C builddir padal z src root
- 63182ad fix: xdg-dbus-proxy -Dmanpages=false (xsltproc: martwy docbook.sourceforge.net)
- 14a3f11 fix: gstreamer wlacz introspection (Gst-1.0.gir), gtk4 przebudowa z gir (Gtk-4.0.gir) - bez nich gstreamer-plugins-base i gtksourceview5 padaja na g-ir-scanner
- dc376db fix: glib-networking --libdir=/usr/lib (modul gnutls ladowany przez gio), +glib-networking w makedepends libsoup3 (TLS check w meson), libproxy meson '.', dconf -Dman=false
- 88d0af1 fix: grind FAIL-ow z lancucha bazaar - gtksourceview5/libxkbcommon (mv do aliasu), socat pkgver 1.8.1.3 (2.0.0 nie istnieje), python-babel (osierocone --no-deps $PWD + pip3 wheel/install), xdg-dbus-proxy i gsettings-desktop-schemas (meson zle zrodlo), libsecret -Dmanpage=false, gnome-desktop +gsettings-desktop-schemas w makedepends
- 95fdf35 fix: cups useradd (dublowane -u $UN -> -g $SN) i sbc --disable-tester (link libsndfile/lame)
- 14ea255 fix: puste pakiety autotools (brak make install) + cd w package dla aplikacji xorg
- 0ce7524 fix: libfyaml pkgver 1.0.0->0.9.6 (v1.0.0 nie istnieje, tylko alpha/beta - 404); libsoup3: usunieto bledne samba z makedepends (klient HTTP nie potrzebuje samby)
- 10fcd9c fix: xorg-fontconfig - meson dostawal stara nazwe zrodla (fontconfig-2.18.3) po mv do pkgname-pkgver; source dir nie istnial
- 81482e1 fix: lmdb - kanoniczna instalacja (DESTDIR=${PKGDIR} prefix=/usr) - stary pakiet mial wbita zla sciezke (tmp/destdir-*) i brak lmdb.h w rootfs