diff --git a/php-frankenphp-8.3.yaml b/php-frankenphp-8.3.yaml new file mode 100644 index 0000000..5a01bea --- /dev/null +++ b/php-frankenphp-8.3.yaml @@ -0,0 +1,330 @@ +package: + name: php-frankenphp-8.3 + version: 8.3.4 + epoch: 0 + description: "the PHP programming language" + copyright: + - license: PHP-3.01 + dependencies: + # DO NOT USE PROVIDES UNTIL A RELEASE HAS BEEN MADE (not a release candidate) + #provides: + # - php=${{package.full-version}} + runtime: + - libxml2 + - ${{package.name}}-config + +environment: + contents: + packages: + - autoconf + - bison + - build-base + - busybox + - bzip2-dev + - ca-certificates-bundle + - curl-dev + - file + - freetds + - freetds-dev + - freetype-dev + - gmp-dev + - icu-dev + - libavif-dev + - libjpeg-turbo-dev + - libpng-dev + - libsodium-dev + - libtool + - libwebp-dev + - libx11-dev + - libxml2-dev + - libxpm-dev + - libxslt-dev + - libzip + - oniguruma-dev + - openldap-dev + - openssl-dev + - postgresql-16-dev + - re2c + - readline-dev + - sqlite-dev + - unixodbc-dev + - wget + +pipeline: + - uses: git-checkout + with: + repository: https://github.com/php/php-src + tag: php-${{package.version}} + expected-commit: 5cba2a3dc59ef2a0e432b05ab27f2b3ab4da48d0 + + - name: Configure + runs: | + ./buildconf --force + EXTENSION_DIR=/usr/lib/php/modules ./configure \ + --enable-embed \ + --enable-zts \ + --disable-zend-signals \ + --enable-zend-max-execution-timers \ + --prefix=/usr \ + --libdir=/usr/lib/php \ + --datadir=/usr/share/php \ + --sysconfdir=/etc/php \ + --localstatedir=/var \ + --with-layout=GNU \ + --with-pic \ + --with-config-file-path=/etc/php \ + --with-config-file-scan-dir=/etc/php/conf.d \ + --enable-cli \ + --enable-ctype=shared \ + --enable-bcmath=shared \ + --with-curl=shared \ + --enable-dom=shared \ + --enable-fileinfo=shared \ + --with-iconv=shared \ + --with-openssl=shared \ + --with-readline \ + --enable-ftp=shared \ + --with-sodium=shared \ + --enable-fpm \ + --with-pear \ + --enable-gd=shared \ + --with-avif \ + --with-freetype \ + --with-jpeg \ + --with-webp \ + --with-xpm \ + --disable-gd-jis-conv \ + --with-libxml \ + --enable-phar=shared \ + --enable-mbstring=shared \ + --with-mysqli=shared \ + --with-mysql-sock=/run/mysqld/mysqld.sock \ + --enable-mysqlnd=shared \ + --enable-pdo=shared \ + --with-pdo-mysql=shared,mysqlnd \ + --with-pdo-sqlite=shared \ + --with-pdo-dblib=shared \ + --with-pdo-pgsql=shared \ + --with-pdo-odbc=shared,unixODBC,/usr \ + --with-unixODBC=shared,/usr \ + --enable-pcntl=shared \ + --enable-sockets=shared \ + --with-bz2=shared \ + --enable-calendar=shared \ + --enable-exif=shared \ + --with-gettext=shared \ + --with-gmp=shared \ + --enable-intl=shared \ + --with-ldap=shared \ + --enable-opcache=shared \ + --enable-soap=shared \ + --with-xsl=shared \ + --with-zlib \ + --enable-xml=shared \ + --enable-simplexml=shared \ + --enable-xml=shared \ + --enable-xmlreader=shared \ + --enable-xmlwriter=shared \ + --enable-posix=shared \ + --with-pgsql=shared \ + --with-zip=shared + + - uses: autoconf/make + + - name: Make Install + runs: | + INSTALL_ROOT=${{targets.destdir}} DESTDIR=${{targets.destdir}} make install + mkdir -p "${{targets.destdir}}/bin" && ln -s /usr/bin/php "${{targets.destdir}}/bin/php" + + - uses: strip + +data: + - name: extensions + items: + bz2: Bzip2 + curl: cURL + gd: GD imaging + gmp: GNU GMP support + ldap: LDAP + mysqlnd: MySQLnd + openssl: OpenSSL + pdo_mysql: MySQL driver for PDO + pdo_sqlite: SQLite 3.x driver for PDO + pdo_dblib: PDO driver for Sybase / MS SQL databases + pdo_pgsql: PDO driver for pgsql + pdo_odbc: PDO driver for ODBC + soap: SOAP + sodium: Sodium + calendar: Calendar + exif: EXIF + gettext: GetText + intl: Internationalization + mbstring: Multibyte String Functions + opcache: Opcache + pcntl: pcntl + pdo: PHP Data Objects + phar: PHP Archive + sockets: Sockets + xsl: XSL + bcmath: BC Math + ctype: ctype + iconv: Iconv + dom: DOM + pgsql: PostgreSQL + posix: Posix + simplexml: SimpleXML + mysqli: MySQLi + xml: XML + xmlreader: XMLReader + xmlwriter: XMLWriter + fileinfo: fileinfo + zip: Zip + odbc: UnixODBC + ftp: FTP + +subpackages: + - name: ${{package.name}}-config + # DO NOT USE PROVIDES UNTIL A RELEASE HAS BEEN MADE (not a release candidate) + # dependencies: + # provides: + # - php-config=${{package.full-version}} + pipeline: + - runs: | + mkdir -p "${{targets.subpkgdir}}/etc/php/conf.d" + mv $HOME/php.ini-production ${{targets.subpkgdir}}/etc/php/php.ini + + - range: extensions + name: "${{package.name}}-${{range.key}}" + description: "The ${{range.value}} extension" + dependencies: + runtime: + - "${{package.name}}-${{range.key}}-config" + # DO NOT USE PROVIDES UNTIL A RELEASE HAS BEEN MADE (not a release candidate) + # provides: + # - php-${{range.key}}=${{package.full-version}} + pipeline: + - runs: | + export EXTENSIONS_DIR=usr/lib/php/modules + mkdir -p "${{targets.subpkgdir}}"/$EXTENSIONS_DIR + mv "${{targets.destdir}}/$EXTENSIONS_DIR/${{range.key}}.so" \ + "${{targets.subpkgdir}}/$EXTENSIONS_DIR/${{range.key}}.so" + + - range: extensions + name: "${{package.name}}-${{range.key}}-config" + description: "The ${{range.value}} extension configuration" + # DO NOT USE PROVIDES UNTIL A RELEASE HAS BEEN MADE (not a release candidate) + #dependencies: + # provides: + # - php-${{range.key}}-config=${{package.full-version}} + pipeline: + - runs: | + export CONF_DIR="${{targets.subpkgdir}}/etc/php/conf.d" + mkdir -p $CONF_DIR + prefix= + [ "${{range.key}}" != "opcache" ] || prefix="zend_" + echo "${prefix}extension=${{range.key}}.so" > $CONF_DIR/"${{range.key}}.ini" + + - name: ${{package.name}}-dev + description: PHP 8.3 development headers + # DO NOT USE PROVIDES UNTIL A RELEASE HAS BEEN MADE (not a release candidate) + #dependencies: + # provides: + # - php-dev=${{package.full-version}} + pipeline: + - uses: split/dev + - runs: | + mkdir -p ${{targets.subpkgdir}}/usr/bin + mv ${{targets.destdir}}/usr/bin/phpize ${{targets.subpkgdir}}/usr/bin/ + mkdir -p ${{targets.subpkgdir}}/usr/lib/php + mv ${{targets.destdir}}/usr/lib/php/* ${{targets.subpkgdir}}/usr/lib/php + + - name: ${{package.name}}-doc + description: PHP 8.3 documentation + # DO NOT USE PROVIDES UNTIL A RELEASE HAS BEEN MADE (not a release candidate) + #dependencies: + # provides: + # - php-doc=${{package.full-version}} + pipeline: + - uses: split/manpages + + - name: "${{package.name}}-cgi" + description: PHP 8.3 CGI + # DO NOT USE PROVIDES UNTIL A RELEASE HAS BEEN MADE (not a release candidate) + #dependencies: + # provides: + # - php-cgi=${{package.full-version}} + pipeline: + - runs: | + mkdir -p ${{targets.subpkgdir}}/usr/bin + mv ${{targets.destdir}}/usr/bin/php-cgi ${{targets.subpkgdir}}/usr/bin/ + + - name: "${{package.name}}-dbg" + description: Interactive PHP Debugger + # DO NOT USE PROVIDES UNTIL A RELEASE HAS BEEN MADE (not a release candidate) + #dependencies: + # provides: + # - php-dbg=${{package.full-version}} + pipeline: + - runs: | + mkdir -p ${{targets.subpkgdir}}/usr/bin + mv ${{targets.destdir}}/usr/bin/phpdbg ${{targets.subpkgdir}}/usr/bin/ + + - name: "${{package.name}}-fpm" + description: PHP 8.3 FastCGI Process Manager (FPM) + dependencies: + runtime: + - "${{package.name}}-fpm-config" + # DO NOT USE PROVIDES UNTIL A RELEASE HAS BEEN MADE (not a release candidate) + # provides: + # - php-fpm=${{package.full-version}} + pipeline: + - runs: | + mkdir -p ${{targets.subpkgdir}}/usr/sbin + mv ${{targets.destdir}}/usr/sbin/php-fpm ${{targets.subpkgdir}}/usr/sbin/ + + - name: ${{package.name}}-fpm-config + description: PHP 8.3 FastCGI Process Manager (FPM) configuration + # DO NOT USE PROVIDES UNTIL A RELEASE HAS BEEN MADE (not a release candidate) + # dependencies: + # provides: + # - php-fpm-config=${{package.full-version}} + pipeline: + - runs: | + mkdir -p ${{targets.subpkgdir}}/etc/php/php-fpm.d + mv ${{targets.destdir}}/etc/php/php-fpm.conf.default ${{targets.subpkgdir}}/etc/php/php-fpm.conf + mv ${{targets.destdir}}/etc/php/php-fpm.d/www.conf.default ${{targets.subpkgdir}}/etc/php/php-fpm.d/www.conf \ + && { \ + echo '[global]'; \ + echo 'error_log = /proc/self/fd/2'; \ + echo 'daemonize = no'; \ + echo; \ + echo '[www]'; \ + echo 'listen = [::]:9000'; \ + echo 'access.log = /proc/self/fd/2'; \ + echo; \ + echo 'clear_env = no'; \ + echo; \ + echo 'catch_workers_output = yes'; \ + echo; \ + echo 'decorate_workers_output = no'; \ + } | tee ${{targets.subpkgdir}}/etc/php/php-fpm.d/zz-apko.conf + +update: + enabled: true + github: + identifier: php/php-src + strip-prefix: php- + tag-filter: php-8.3 + use-tag: true + +test: + pipeline: + - runs: | + php --version + - runs: | + cat <<'EOF' >> /tmp/hello.php +