← recipes

Commit cb9ccb5

0
plików
+0
dodanych
-0
usuniętych
@@ -1,93 +1,90 @@
1 -# PaganOS Recipes
2 -
3 -Receptury pakietów dla [PaganOS](https://paganlinux.eu). Każdy plik `PAGBUILD.yaml` definiuje jak zbudować pojedynczy pakiet.
4 -
5 -## Struktura
6 -
7 -```
8 -recipes/
9 -├── core/ # pakiety bazowe (binutils, gcc, glibc, ...)
10 -├── drivers/ # sterowniki (libinput, mesa, ...)
11 -├── net/ # sieć (curl, wget, NetworkManager, ...)
12 -├── gui/ # pakiety GUI (gtk, qt, xfce, ...)
13 -├── utils/ # narzędzia (bubblewrap, ripgrep, ...)
14 -└── boot/ # bootloader (grub)
15 -```
16 -
17 -> **Uwaga:** receptury **KDE** i **GNOME** zostały usunięte. W repo zostają
18 -> wyłącznie biblioteki i narzędzia **Qt** oraz **GTK** (a także środowiska
19 -> PaganDE, XFCE, Sway/Labwc).
20 -
21 -## Format PAGBUILD.yaml
22 -
23 -```yaml
24 -pkgname: acl
25 -pkgver: '2.4.0'
26 -pkgrel: 1
27 -pkgdesc: Commands for Manipulating POSIX Access Control Lists.
28 -url: http://savannah.nongnu.org/projects/acl
29 -arch: x86_64
30 -license:
31 -- GPL-2.0-only
32 -depends:
33 -- attr
34 -makedepends:
35 -- gcc
36 -source:
37 -- http://download.savannah.gnu.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz
38 -sha256sums:
39 -- SKIP
40 -build: |
41 - cd "${pkgname}-${pkgver}"
42 - ./configure --prefix=/usr
43 - make -j$(nproc)
44 -package: |
45 - cd "${pkgname}-${pkgver}"
46 - make DESTDIR="${PKGDIR}" install
47 -```
48 -
49 -### Zmienne dostępne w fazach build/package
50 -
51 -- `${PKGDIR}` — katalog DESTDIR (instalacja pakietu)
52 -- `${pkgname}`, `${pkgver}`, `${pkgrel}` — podstawiane też w adresach `source:`
53 -
54 -### Model pakietu (jak Arch/Debian — bez footprintów)
55 -
56 -Receptura **nie deklaruje listy plików**. Faza `package:` instaluje wszystko do
57 -`${PKGDIR}` (DESTDIR) i z tego katalogu `pagbuild` tworzy **jeden pakiet** —
58 -dokładnie jak `PKGBUILD` w Archu czy reguły `install` w Debianie. Lista plików
59 -nie jest danymi wejściowymi, tylko **pochodną** pakietu: `pag` wylicza SHA256
60 -dla każdego pliku przy instalacji i zapisuje je w `/var/lib/pag/files.db`
61 -(rola, którą w Debianie pełni `md5sums`/`.list`, a w Archu `.MTREE`).
62 -
63 -> **Nie używamy już pól `footprint`, `footprint_devel`, `footprint_man`,
64 -> `footprint_<lang>`** — to balast z formatu cards/NuTyX, którego `pagbuild`
65 -> nigdy nie czytał. Podpakiety deweloperskie/dokumentacyjne/językowe są scalane
66 -> z pakietem głównym (ich pliki i tak trafiają do DESTDIR). Do usuwania tych pól
67 -> z istniejących receptur służy `strip-recipes-footprints.py`.
68 -
69 -### Pakiet wyjściowy
70 -
71 -`pagbuild` buduje pakiety **`.pag`** (tar.xz z `metadata.json` + `data.tar.xz`),
72 -gotowe do instalacji przez `pag install plik.pag`. W repo trzymamy wyłącznie
73 -aktualną wersję każdego pakietu — starsze są usuwane przez `pagsync`.
74 -
75 -## Budowanie lokalnie
76 -
77 -```bash
78 -pagbuild recipes/core/acl/PAGBUILD.yaml
79 -```
80 -
81 -## Narzędzia
82 -
83 -- `migrate-recipes.py` — konwertuje receptury `cards` (Pkgfile) na `PAGBUILD.yaml`
84 - (footprinty są celowo pomijane)
85 -- `strip-recipes-footprints.py` — usuwa pola `footprint*` z istniejących receptur
86 - (idempotentne; `--apply`, aby zapisać, domyślnie dry-run)
87 -
88 -## Polityka forków
89 -
90 -Fork-first w całym repo: [`../../FORK-POLICY.md`](../../FORK-POLICY.md).
91 -Krótko: co możemy zrobić forkiem, robimy forkiem — źródła w repo, pakiet
92 -`-pagan`, lokalny tarball + wyliczony sha256 (build bez sieci) i adnotacja
93 -licencyjna o statusie forka (`FORK.md` + `NOTICE`).
1 +# PaganOS Recipes
2 +
3 +Receptury pakietów dla [PaganOS](https://paganlinux.eu). Każdy plik `PAGBUILD.yaml` definiuje jak zbudować pojedynczy pakiet.
4 +
5 +## Struktura
6 +
7 +```
8 +recipes/
9 +├── core/ # pakiety bazowe (binutils, gcc, glibc, ...)
10 +├── drivers/ # sterowniki (libinput, mesa, ...)
11 +├── net/ # sieć (curl, wget, NetworkManager, ...)
12 +├── gui/ # pakiety GUI (gtk, qt, xfce, ...)
13 +├── utils/ # narzędzia (bubblewrap, ripgrep, ...)
14 +└── boot/ # bootloader (grub)
15 +```
16 +
17 +
18 +## Format PAGBUILD.yaml
19 +
20 +```yaml
21 +pkgname: acl
22 +pkgver: '2.4.0'
23 +pkgrel: 1
24 +pkgdesc: Commands for Manipulating POSIX Access Control Lists.
25 +url: http://savannah.nongnu.org/projects/acl
26 +arch: x86_64
27 +license:
28 +- GPL-2.0-only
29 +depends:
30 +- attr
31 +makedepends:
32 +- gcc
33 +source:
34 +- http://download.savannah.gnu.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz
35 +sha256sums:
36 +- SKIP
37 +build: |
38 + cd "${pkgname}-${pkgver}"
39 + ./configure --prefix=/usr
40 + make -j$(nproc)
41 +package: |
42 + cd "${pkgname}-${pkgver}"
43 + make DESTDIR="${PKGDIR}" install
44 +```
45 +
46 +### Zmienne dostępne w fazach build/package
47 +
48 +- `${PKGDIR}` — katalog DESTDIR (instalacja pakietu)
49 +- `${pkgname}`, `${pkgver}`, `${pkgrel}` — podstawiane też w adresach `source:`
50 +
51 +### Model pakietu (jak Arch/Debian — bez footprintów)
52 +
53 +Receptura **nie deklaruje listy plików**. Faza `package:` instaluje wszystko do
54 +`${PKGDIR}` (DESTDIR) i z tego katalogu `pagbuild` tworzy **jeden pakiet** —
55 +dokładnie jak `PKGBUILD` w Archu czy reguły `install` w Debianie. Lista plików
56 +nie jest danymi wejściowymi, tylko **pochodną** pakietu: `pag` wylicza SHA256
57 +dla każdego pliku przy instalacji i zapisuje je w `/var/lib/pag/files.db`
58 +(rola, którą w Debianie pełni `md5sums`/`.list`, a w Archu `.MTREE`).
59 +
60 +> **Nie używamy już pól `footprint`, `footprint_devel`, `footprint_man`,
61 +> `footprint_<lang>`** — to balast z formatu cards/NuTyX, którego `pagbuild`
62 +> nigdy nie czytał. Podpakiety deweloperskie/dokumentacyjne/językowe są scalane
63 +> z pakietem głównym (ich pliki i tak trafiają do DESTDIR). Do usuwania tych pól
64 +> z istniejących receptur służy `strip-recipes-footprints.py`.
65 +
66 +### Pakiet wyjściowy
67 +
68 +`pagbuild` buduje pakiety **`.pag`** (tar.xz z `metadata.json` + `data.tar.xz`),
69 +gotowe do instalacji przez `pag install plik.pag`. W repo trzymamy wyłącznie
70 +aktualną wersję każdego pakietu — starsze są usuwane przez `pagsync`.
71 +
72 +## Budowanie lokalnie
73 +
74 +```bash
75 +pagbuild recipes/core/acl/PAGBUILD.yaml
76 +```
77 +
78 +## Narzędzia
79 +
80 +- `migrate-recipes.py` — konwertuje receptury `cards` (Pkgfile) na `PAGBUILD.yaml`
81 + (footprinty są celowo pomijane)
82 +- `strip-recipes-footprints.py` — usuwa pola `footprint*` z istniejących receptur
83 + (idempotentne; `--apply`, aby zapisać, domyślnie dry-run)
84 +
85 +## Polityka forków
86 +
87 +Fork-first w całym repo: [`../../FORK-POLICY.md`](../../FORK-POLICY.md).
88 +Krótko: co możemy zrobić forkiem, robimy forkiem — źródła w repo, pakiet
89 +`-pagan`, lokalny tarball + wyliczony sha256 (build bez sieci) i adnotacja
90 +licencyjna o statusie forka (`FORK.md` + `NOTICE`).