🔒 Repository is read-only – file editing is disabled.

recipes

git clone https://git.paganlinux.eu/recipes.git
Files (6) · main
6 / 6 4 2
Name Size Last change
core/ 1 dni temu
de/ 9 dni temu
gui/ 21 godz. temu
utils/ 3 godz. temu
.gitignore 317 B 1 mies. temu
README.md 0.0 KB 1 dni temu
No matching files
README.md

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 adresach source:

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órego pagbuild nigdy 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ży strip-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 receptury cards (Pkgfile) na PAGBUILD.yaml (footprinty są celowo pomijane)
  • strip-recipes-footprints.py — usuwa pola footprint* 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).

About

commits677
branches1
Contributors9
Issues0
Default branchmain