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`).