Skąd się biorą pakiety
Wszystkie pakiety PHM są budowane automatycznie ze źródeł i hostowane na GitHubie. Cały proces jest open-source i przejrzysty.
Repozytorium źródłowe
Dział zatytułowany „Repozytorium źródłowe”Pakiety budowane są w repozytorium phm-dev/php-packages. Zawiera ono:
- Skrypty budowania PHP core i rozszerzeń
- Konfigurację rozszerzeń (wersje, zależności, flagi kompilacji)
- Workflow GitHub Actions do automatycznych buildów
- Indeks pakietów
index.json, który PHM pobiera gdy uruchomiszphm update
Pipeline budowania
Dział zatytułowany „Pipeline budowania”Codziennie o 3:00 UTC workflow GitHub Actions sprawdzają php.net pod kątem nowych wersji PHP i Packagist pod kątem nowych wersji rozszerzeń. Jeśli zostanie znaleziona nowa wersja, build uruchamia się automatycznie.
Pipeline:
- Sprawdzenie aktualizacji — porównuje najnowszą wersję na php.net / Packagist z ostatnio zbudowaną wersją w GitHub Releases
- Budowanie zależności — kompiluje statyczne biblioteki potrzebne rozszerzeniom (np. librabbitmq dla amqp, ImageMagick dla imagick)
- Budowanie PHP core — kompiluje PHP ze źródeł, pakuje w osobne archiwa: common, cli, fpm, cgi, dev, pear
- Budowanie rozszerzeń — kompiluje każde rozszerzenie wobec świeżo zbudowanego PHP, pakuje jako osobne archiwa
- Upload do GitHub Releases — każda wersja patchowa PHP dostaje własny release (np.
php-8.5.4), stare wersje są zachowywane - Aktualizacja indeksu — regeneruje
index.jsonze wszystkich releases i commituje do repozytorium
Hosting
Dział zatytułowany „Hosting”Pakiety hostowane są jako assety GitHub Releases — nie ma osobnego serwera pakietów. Gdy uruchomisz:
phm updatePHM pobiera index.json z repozytorium. Gdy instalujesz pakiet:
phm install php8.5-cliPHM pobiera archiwum .tar.zst bezpośrednio z GitHub Releases.
Format pakietu
Dział zatytułowany „Format pakietu”Każdy pakiet to skompresowane zstd archiwum tar zawierające:
package.tar.zst├── pkginfo.json # Metadane pakietu (nazwa, wersja, zależności)└── files/ └── opt/php/8.5/... # Pliki do zainstalowaniaPlatformy
Dział zatytułowany „Platformy”Pakiety budowane są na runnerach macOS udostępnianych przez GitHub Actions:
| Platforma | Runner | Status |
|---|---|---|
| Apple Silicon (arm64) | macos-latest | Dostępne |
| Intel (amd64) | macos-15-intel | Dostępne |
Współtworzenie
Dział zatytułowany „Współtworzenie”Chcesz dodać nowe rozszerzenie lub zgłosić problem z buildem?
- Otwórz issue w repozytorium php-packages
- Konfiguracje buildów rozszerzeń znajdują się w katalogu
extensions/