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).
- d30b5bd fix: acpica (mv na symlink aliasu), aspell-dict (glob zbyt wiele dopasowan -> petla po katalogach), atkmm (wrap-mode=nofallback - zepsuty subproject glibmm-2.4)
- d53c796 fix(nettle): brak make install w build phase (destdir pusty -> chmod fail; gnutls nie widzial nettle)
- c4266cf fix(glibmm): cd glibmm przed meson install (builddir jest w glibmm/ po cd w build)
- 51ae0e9 fix(git): man/docs z osobnych tarballi (manpages/htmldocs) zamiast petli po man*; fix(mm-common): cd do zrodla przed meson install
- 990432b fix: libsigc++ pkgver 2.12.2 (weekly blednie podbil do 3.8.1 -> brak sigc++config.h dla cairomm), glibmm cd glibmm + meson ., mm-common meson ., git source rozbity (brace expansion nie dziala)
- 53f3bdc fix(lightdm): usun wlasna updwtmpx (glibc 2.41+ ma ja w utmpx.h - conflicting types)
- 7eb2deb fix(lightdm): URL z github tag (release bez assetow -> 404), autogen.sh + configure (tar z taga nie ma configure)
- 238fd0e feat(xfce4): meta-pakiet lekkiego srodowiska graficznego (Xfce 4.20) - 27 zaleznosci
- 93deebb fix(python): docs-html.tar.bz2 i python.png sa w src/ (../), nie w katalogu zrodlowym po cd
- 2ff1e52 fix(systemd,libdrm): meson setup . zamiast .. (po cd do katalogu zrodlowego '..' wskazuje na src- bez meson.build)
- 4341396 fix(bind): liblmdb w makedepends (fatal error: lmdb.h - auto-deps nie wykryl bo nie bylo w deps)
- 148fc64 revert: usun linux/linux-headers/nvidia-kernel/paganlinux z repo (lokalne szkice, nie powinny byc w recipes)
- 14202de fix(xorg/qt): ${name...} -> ${pkgname...} w 68 recepturach (name nie jest eksportowany -> cd -X.Y.Z: invalid option)
- 98fc180 fix(argyllcms): rm -f na License.txt i afiles (set -e przerywal gdy plik nie istnieje w destdir)
- a583cb2 fix(xorg-xauth): cd xauth-1.1.5 zamiast ${name/xorg-/} (name niezdefiniowane -> cd -1.1.5: invalid option)