GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - static-php/packages: Repository to build rpm, deb and apk packages using static-php-cli

BranchesTags
Open more actions menu

Latest commit

 

History

1,211 Commits
1,211 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
bin
bin
 
 
config
config
 
 
src
src
 
 
tests
tests
 
 
todo
todo
 
 
.editorconfig
.editorconfig
 
 
.gitignore
.gitignore
 
 
AGENTS.md
AGENTS.md
 
 
Dockerfile.alpine
Dockerfile.alpine
 
 
Dockerfile.debian
Dockerfile.debian
 
 
Dockerfile.rhel
Dockerfile.rhel
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
composer.json
composer.json
 
 
composer.lock
composer.lock
 
 
docker-compose.yaml
docker-compose.yaml
 
 
spc.registry.yml
spc.registry.yml
 
 

Repository files navigation

SPC Packages

Utility for building and packaging ZTS builds of PHP and shared extensions. Published daily at https://pkg.henderkes.com. Uses static-php-cli

Usage for users

From a checkout, configure the repository for an explicit PHP version (8.2–8.6):

sudo sh bin/install-repositories 8.5

The script requires curl. It configures the selected PHP repository, which also contains its shared-library dependencies; RPM uses the existing Static PHP repository. Refresh the package index before installing or upgrading. The script does not install PHP. PHP 8.6 must be selected explicitly because it is a prerelease stream.

Existing users keep their repository configuration and migrate through ordinary apt upgrade, dnf upgrade or apk upgrade.

Usage for developers

The main command-line tool is bin/spp with the steps build and package. The former builds php and extensions, the latter packages them into os-packages.

Build and Package

To run both build and package steps in one command:

php bin/spp all

To build and package the PHP-independent runtime libraries:

php bin/spp build --type=rpm --libs-only
php bin/spp package --type=rpm --libs-only

Use --libraries=openssl,zlib to select library packages; omit it for the complete configured set. Compile glibc payloads on EL8 only, then package the same sealed binaries as RPM and DEB. Alpine uses its separate native-musl build. The shared glibc workflow produces both package formats without a second compilation.

Parameters

  • --target: Optional. Specify the target architecture using a target triple that Zig understands, such as native-native-gnu or native-native-musl -dynamic. Default uses current OS defaults.
  • --type: Required. Specify the package type to build. rpm, deb or apk.
  • --prefix: Optional. Prefix for binaries and packages. --prefix="-zts85" generates php-zts85 and php-zts85-cli. Defaults to -zts.
  • --packages: Optional. Only build binaries and create packages for those packages. Default empty, builds everything.

Links

  • static-php-cli
  • Static PHP Website
  • Henderkes PHP (ZTS) Packages

Docker images for debugging CI failures

Debian images provide packaging and runtime-test tools; production glibc compilation runs in the EL8 builder. Use the shared glibc workflow with publish=false to build and validate without updating repositories.

For packaging changes, reuse a completed glibc run's sealed SDK and complete PHP payloads with repackage_run_id. This skips source downloads and compilation, bumps package revisions when requested, and runs the normal native upgrade checks:

gh workflow run build-rpm-modular-packages.yml --ref master \
    -f repackage_run_id="$GLIBC_RUN_ID" -f bump=true -f publish=false

The run's SDK and PHP payload artifacts must still be retained (one day). Partial payloads are rejected; missing artifacts never trigger a rebuild.

Publish an existing validated build with publish-packages.yml, selecting one format at a time. RPM and DEB use the same shared EL8 build run ID; APK uses its Alpine build run ID:

gh workflow run publish-packages.yml --ref master -f format=rpm -f build_run_id="$GLIBC_RUN_ID"
gh workflow run publish-packages.yml --ref master -f format=deb -f build_run_id="$GLIBC_RUN_ID"
gh workflow run publish-packages.yml --ref master -f format=apk -f build_run_id="$ALPINE_RUN_ID"

This publishes the built versions without compilation or repackaging. Build runs must be completed on the default branch and still have their package artifacts, retained for seven days. Existing artifacts keep their original expiry. Publication rechecks upgrade receipts and current repository versions before uploading.

About

Repository to build rpm, deb and apk packages using static-php-cli

pkgs.henderkes.com

Resources

Readme
MIT license
Activity
Custom properties

Stars

13 stars

Watchers

2 watching

Forks

3 forks
Report repository

Releases

Sponsor this project

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.