Saturday, July 08, 2017

Re: UPDATE: php revamp

Here's an updated diff based on PHP5.6.31, 7.0.21 and 7.1.7.
This time in diff-form as requested by Antoine.

This also fixes a couple of dependency issues found by Antoine.

Currently the computer is still crunching on the dependencies on the
extensions moved outside of main. I'll get back on that later.

martijn@

Index: Makefile
===================================================================
RCS file: /cvs/ports/lang/php/Makefile,v
retrieving revision 1.11
diff -u -p -a -u -r1.11 Makefile
--- Makefile 28 Apr 2016 18:19:23 -0000 1.11
+++ Makefile 8 Jul 2017 18:28:19 -0000
@@ -1,8 +1,8 @@
# $OpenBSD: Makefile,v 1.11 2016/04/28 18:19:23 sthen Exp $

SUBDIR =
-SUBDIR += 5.5
SUBDIR += 5.6
SUBDIR += 7.0
+SUBDIR += 7.1

.include <bsd.port.subdir.mk>
Index: Makefile.inc
===================================================================
RCS file: /cvs/ports/lang/php/Makefile.inc,v
retrieving revision 1.94
diff -u -p -a -u -r1.94 Makefile.inc
--- Makefile.inc 12 Jun 2017 11:48:34 -0000 1.94
+++ Makefile.inc 8 Jul 2017 18:28:19 -0000
@@ -1,14 +1,12 @@
-# $OpenBSD: Makefile.inc,v 1.94 2017/06/12 11:48:34 sthen Exp $
+# $OpenBSD: Makefile.inc,v 1.93 2017/04/26 08:15:05 sthen Exp $

-BROKEN-hppa= no __sync_bool_compare_and_swap support nor asm fallback
+BROKEN-hppa= no __sync_bool_compare_and_swap support nor asm fallback

COMMENT-main= server-side HTML-embedded scripting language
-COMMENT-fastcgi= stand-alone FastCGI version of PHP

PKGNAME-main?= php-${V}
-PKGNAME-fastcgi?= php-fastcgi-${V}

-DISTFILES?= php-${V}.tar.bz2
+DISTFILES+= php-${V}.tar.bz2

DISTNAME?= php-${V}
CATEGORIES= lang www
@@ -20,7 +18,6 @@ MASTER_SITES= http://se.php.net/distrib
http://us.php.net/distributions/ \
http://no.php.net/distributions/ \
http://uk.php.net/distributions/
-MASTER_SITES0=
https://download.suhosin.org/

# UPGRADERS: please read BOTH the PHP and Zend licenses
# and make sure they are safe before an upgrade
@@ -35,7 +32,6 @@ MODPHP_CONFIG_PATH= /var/www/conf

# where the main php module is stored (outside the chroot)
APACHE_MODULE_SUBDIR= lib/php-${PV}
-APACHE_MODULE_DIR= ${LOCALBASE}/${APACHE_MODULE_SUBDIR}

# where the PEAR and extension modules are (inside the chroot)
CHROOT_DIR?= /var/www
@@ -44,13 +40,6 @@ MODULES_DIR= ${LOCALBASE}/${MODULES_SUB

INI_TEMPLATES?= development production

-# XXX use the bundled libtool because it needs some specific options we
-# don't have.
-USE_LIBTOOL?= No
-
-.if ${PV} != "7.0"
-FLAVORS= no_suhosin
-.endif
FLAVOR?=

PATCHORIG= .orig.port
@@ -60,312 +49,457 @@ CONFIGURE_ENV+= CFLAGS="${CFLAGS} -I${L
LDFLAGS="-L${LOCALBASE}/lib -pthread" \
EXTENSION_DIR=${MODULES_DIR} \
LIBCXX="${LIBCXX}" \
+ YACC="/usr/bin/yacc" \
lt_cv_path_SED=/usr/bin/sed
# configure detects us as having decimal fp support but it's not built in
# in libgcc. https://bugs.php.net/bug.php?id=68114
CONFIGURE_ENV+= ac_cv_decimal_fp_supported=no
MAKE_ENV= ${CONFIGURE_ENV}

-CONFIGURE_ARGS+= --enable-shared \
+CONFIGURE_ARGS+= --disable-rpath \
--disable-static \
- --disable-rpath \
- --with-config-file-path=${SYSCONFDIR} \
--enable-inline-optimization \
- --with-pic \
- --with-pear=${LOCALBASE}/share/php-${PV} \
+ --enable-shared \
+ --program-suffix=-${PV} \
+ --with-config-file-path=${SYSCONFDIR} \
--with-config-file-scan-dir=${SYSCONFDIR}/php-${PV} \
- --with-pdo-sqlite \
- --enable-sqlite-utf8 \
- --with-sqlite3 \
- --program-suffix=-${PV}
-
-# readline is broken in PHP-5.3
-.if ${PV} != 5.3
-CONFIGURE_ARGS += --with-readline
-.endif
-
-# apache module
-CONFIGURE_ARGS+= --with-apxs2=${LOCALBASE}/sbin/apxs2
-BUILD_DEPENDS+= www/apache-httpd
+ --with-pear=${LOCALBASE}/share/php-${PV} \
+ --with-pic \

# default included extensions
-CONFIGURE_ARGS+= --with-openssl \
- --with-zlib \
- --enable-xml \
- --enable-wddx \
- --enable-cli \
- --with-iconv=${LOCALBASE} \
- --with-gettext=${LOCALBASE} \
- --enable-bcmath \
+CONFIGURE_ARGS+= --enable-filter
+# Hash needed embedded for phar signature support
+CONFIGURE_ARGS+= --enable-hash \
+ --enable-libxml=${LOCALBASE} \
--enable-session \
- --enable-calendar \
- --enable-ctype \
- --enable-ftp \
- --with-pcre-regex \
- --enable-sockets \
- --enable-sysvmsg \
- --enable-sysvsem \
- --enable-sysvshm \
- --enable-mbstring \
- --enable-exif \
- --enable-zend-multibyte \
- --enable-fastcgi \
- --enable-fpm \
- --with-fpm-user=www \
- --with-fpm-group=www
+ --with-mhash=${LOCALBASE} \
+ --with-openssl \
+ --with-pcre-regex=${LOCALBASE} \
+ --with-zlib

TEST_TARGET= test
TEST_FLAGS= NO_INTERACTION=1

-MULTI_PACKAGES+= -main -fastcgi
+MULTI_PACKAGES= -main
+
+# SAPIs
+MULTI_PACKAGES+= -apxs2 -cgi -cli -dbg -fpm
+
+# Extensions
+PHP_MODULES= -bcmath -bz2 -calendar -ctype -curl -dba -dom -enchant \
+ -exif -fileinfo -ftp -gd -gettext -gmp -iconv -imap \
+ -intl -json -ldap -mbstring -mcrypt -mysqlnd -mysqli \
+ -odbc -pcntl -pdo -pdo_dblib -pdo_mysql -pdo_pgsql \
+ -pdo_sqlite -pgsql -phar -posix -pspell -readline \
+ -shmop -simplexml -snmp -soap -sockets -sqlite3 \
+ -sysvmsg -sysvsem -sysvshm -tidy -tokenizer -wddx \
+ -xmlreader -xmlrpc -xmlwriter -xsl -zip
+# Embed xml for now, since it's required for pear.
+# Currently there's no clean way to enable or disable modules
+#PHP_MODULES+= -xml
+
+PHP_ZEND_MODULES= -opcache
+
+PHP_MODULES_EXTRA?=
+PHP_MODULES+= ${PHP_MODULES_EXTRA}
+
+MULTI_PACKAGES+= ${PHP_MODULES} ${PHP_ZEND_MODULES}
+
+#
+# Broken section
+# Use *_FOR_ARCHS, since BROKEN doesn't work for subpackages
+#
+
+#BROKEN-dbg= Segfaults on readline() return value
+ONLY_FOR_ARCHS-dbg=
+#BROKEN-phar-sparc64= SIGBUS during phar generation
+NOT_FOR_ARCHS-phar= sparc64
+.include <bsd.port.arch.mk>
+
+#
+# php SAPIs
+#
+
+WANTLIBSAPI= c crypto mhash pcre pthread ssl xml2>=8 z
+WANTLIBSAPI+= ${LIBCXX}
+
+LIB_DEPENDSSAPI= textproc/libxml \
+ devel/pcre \
+ security/mhash
+# These libraries aren't direct dependencies for core PHP, but seems to be drawn
+# in through libxml2 somehow.
+# Since libxml2 is part of the core install through libxml, which can't be build
+# individually, don't care too much about them, just keep these here as a
+# reminder.
+WANTLIBSAPI+= iconv lzma m
+LIB_DEPENDSSAPI+= converters/libiconv \
+ archivers/xz
+
+# apxs2
+COMMENT-apxs2= apache2 sapi for php
+CONFIGURE_ARGS+= --with-apxs2=${LOCALBASE}/sbin/apxs2
+BUILD_DEPENDS+= www/apache-httpd
+RUN_DEPENDS-apxs2+= www/apache-httpd \
+ mail/femail,-chroot
+WANTLIB-apxs2= ${WANTLIBSAPI}
+LIB_DEPENDS-apxs2= ${LIB_DEPENDSSAPI}
+
+# cgi
+COMMENT-cgi= cgi sapi for php
+CONFIGURE_ARGS+= --enable-cgi
+WANTLIB-cgi= ${WANTLIBSAPI}
+LIB_DEPENDS-cgi= ${LIB_DEPENDSSAPI}
+
+# cli
+COMMENT-cli= cli sapi for php
+CONFIGURE_ARGS+= --enable-cli
+WANTLIB-cli= ${WANTLIBSAPI}
+LIB_DEPENDS-cli= ${LIB_DEPENDSSAPI}
+
+# dbg
+COMMENT-dbg= debug sapi for php
+.if ${BUILD_PACKAGES:M-dbg}
+CONFIGURE_ARGS+= --enable-phpdbg
+.else
+CONFIGURE_ARGS+= --disable-phpdbg
+.endif
+WANTLIB-dbg= readline ${WANTLIBSAPI}
+LIB_DEPENDS-dbg= ${LIB_DEPENDSSAPI}
+
+# fpm
+COMMENT-fpm= fpm sapi for php
+CONFIGURE_ARGS+= --enable-fpm \
+ --with-fpm-user=www \
+ --with-fpm-group=www
+WANTLIB-fpm= ${WANTLIBSAPI}
+LIB_DEPENDS-fpm= ${LIB_DEPENDSSAPI}
+RUN_DEPENDS-fpm= mail/femail,-chroot

#
# Loadable php extensions by name that are included in all versions
#

+# bcmath
+COMMENT-bcmath= bcmath precision mathematics extensions for php
+CONFIGURE_ARGS+= --enable-bcmath=shared
+
# bz2
-MULTI_PACKAGES+= -bz2
-COMMENT-bz2= bzip2 compression extensions for php5
+COMMENT-bz2= bzip2 compression extensions for php
CONFIGURE_ARGS+= --with-bz2=shared,${LOCALBASE}
LIB_DEPENDS-bz2= archivers/bzip2
WANTLIB-bz2= bz2>=10 pthread

+# calendar
+COMMENT-calendar= calendar format converting extensions for php
+CONFIGURE_ARGS+= --enable-calendar=shared
+
+# ctype
+COMMENT-ctype= ctype character class check extensions for php
+CONFIGURE_ARGS+= --enable-ctype=shared
+
# curl
-MULTI_PACKAGES+= -curl
-COMMENT-curl= curl URL library extensions for php5
+COMMENT-curl= curl URL library extensions for php
CONFIGURE_ARGS+= --with-curl=shared,${LOCALBASE}
LIB_DEPENDS-curl= net/curl
WANTLIB-curl= pthread crypto nghttp2 ssl z curl>=2

# dba
-MULTI_PACKAGES+= -dba
-COMMENT-dba= dba GDBM access extensions for php5
+COMMENT-dba= dba GDBM access extensions for php
CONFIGURE_ARGS+= --enable-dba=shared --with-gdbm=${LOCALBASE}
LIB_DEPENDS-dba= databases/gdbm
WANTLIB-dba= gdbm>=2 pthread

+# dom
+COMMENT-dom= dom xml operations for php
+CONFIGURE_ARGS+= --enable-dom=shared
+
+# enchant
+COMMENT-enchant= enchant spelling check extensions for php
+CONFIGURE_ARGS+= --with-enchant=shared
+LIB_DEPENDS-enchant= textproc/enchant
+WANTLIB-enchant= enchant
+
+# exif
+COMMENT-exif= exif image meta data extensions for php
+CONFIGURE_ARGS+= --enable-exif=shared
+LIB_DEPENDS-exif= graphics/libexif
+WANTLIB-exif= exif
+
+# fileinfo
+COMMENT-fileinfo= fileinfo content type guessing extensions for php
+CONFIGURE_ARGS+= --enable-fileinfo=shared
+
+# ftp
+COMMENT-ftp= ftp extensions for php
+CONFIGURE_ARGS+= --enable-ftp=shared
+WANTLIB-ftp= ssl crypto
+
# gd
-MULTI_PACKAGES+= -gd
-COMMENT-gd= image manipulation extensions for php5
+COMMENT-gd= image manipulation extensions for php
LIB_DEPENDS-gd= graphics/jpeg \
graphics/png
-.if ${PV} != "7.0"
-LIB_DEPENDS-gd+= devel/t1lib
-WANTLIB-gd+= t1>=5
+.if ${PV} == "5.6"
+LIB_DEPENDS-gd+= devel/t1lib \
+ multimedia/libvpx
+WANTLIB-gd+= t1>=5 \
+ vpx
+CONFIGURE_ARGS+= --with-t1lib=${LOCALBASE} \
+ --with-vpx-dir=${LOCALBASE}
.endif
WANTLIB-gd+= z jpeg>=62 png>=3 pthread X11 Xpm freetype
CONFIGURE_ARGS+= --with-gd=shared \
--with-jpeg-dir=${LOCALBASE} \
--with-png-dir=${LOCALBASE} \
--with-zlib-dir=/usr \
- --with-t1lib=${LOCALBASE} \
--with-freetype-dir=${X11BASE} \
--with-xpm-dir=${X11BASE}

+# gettext
+COMMENT-gettext= gettext native language support extensions for php
+CONFIGURE_ARGS+= --with-gettext=shared,${LOCALBASE}
+LIB_DEPENDS-gettext= devel/gettext
+WANTLIB-gettext= intl
+
# gmp
-MULTI_PACKAGES+= -gmp
-COMMENT-gmp= gmp math library support for php5
+COMMENT-gmp= gmp math library support for php
CONFIGURE_ARGS+= --with-gmp=shared,${LOCALBASE}
LIB_DEPENDS-gmp= devel/gmp
WANTLIB-gmp= gmp>=4 pthread

-# intl
-MULTI_PACKAGES+= -intl
-COMMENT-intl= intl library support for php5
-CONFIGURE_ARGS+= --enable-intl=shared \
- --with-icu-dir=${LOCALBASE}
-LIB_DEPENDS-intl= textproc/icu4c
-WANTLIB-intl= ${LIBCXX} icudata icui18n icuio icuuc m pthread
+# iconv
+COMMENT-iconv= iconv character conversion extensions for php
+CONFIGURE_ARGS+= --with-iconv=shared,${LOCALBASE}
+LIB_DEPENDS-iconv= converters/libiconv
+WANTLIB-iconv= iconv

# imap
-MULTI_PACKAGES+= -imap
-COMMENT-imap= imap, pop3 and nntp extensions for php5
+COMMENT-imap= imap, pop3 and nntp extensions for php
CONFIGURE_ARGS+= --with-imap=shared,${LOCALBASE} \
--with-imap-ssl
LIB_DEPENDS-imap= mail/alpine,-c-client
WANTLIB-imap= pthread crypto ssl c-client>=5

+# intl
+COMMENT-intl= intl library support for php
+CONFIGURE_ARGS+= --enable-intl=shared \
+ --with-icu-dir=${LOCALBASE}
+LIB_DEPENDS-intl= textproc/icu4c
+WANTLIB-intl= icudata icui18n icuio icuuc pthread
+
+# json
+COMMENT-json= json javascript object notation extensions for php
+CONFIGURE_ARGS+= --enable-json=shared
+
# ldap
-MULTI_PACKAGES+= -ldap
-COMMENT-ldap= ldap protocol extensions for php5
-CONFIGURE_ARGS+= --with-ldap=shared,${LOCALBASE}
-LIB_DEPENDS-ldap= databases/openldap
-WANTLIB-ldap= pthread ldap>=2 lber
+COMMENT-ldap= ldap protocol extensions for php
+CONFIGURE_ARGS+= --with-ldap=shared,${LOCALBASE} \
+ --with-ldap-sasl=${LOCALBASE}
+LIB_DEPENDS-ldap= databases/openldap \
+ security/cyrus-sasl2
+WANTLIB-ldap= pthread ldap>=2 lber \
+ sasl2
+
+# mbstring
+COMMENT-mbstring= mbstring multibyte character manipulation extensions for php
+CONFIGURE_ARGS+= --enable-mbstring=shared \
+ --with-onig=${LOCALBASE}
+LIB_DEPENDS-mbstring= textproc/oniguruma
+WANTLIB-mbstring= onig

# mcrypt
-MULTI_PACKAGES+= -mcrypt
-COMMENT-mcrypt= mcrypt encryption/decryption extensions for php5
+COMMENT-mcrypt= mcrypt encryption/decryption extensions for php
CONFIGURE_ARGS+= --with-mcrypt=shared,${LOCALBASE}
LIB_DEPENDS-mcrypt= security/libmcrypt devel/libtool,-ltdl
WANTLIB-mcrypt= mcrypt ltdl>=1 pthread

-.if ${PV} != "7.0"
-# mysql
-MULTI_PACKAGES+= -mysql
-COMMENT-mysql= mysql database access extensions for php5
-CONFIGURE_ARGS+= --with-mysql=shared,${LOCALBASE}
-LIB_DEPENDS-mysql= databases/mariadb
-WANTLIB-mysql= pthread lib/mysql/mysqlclient
-.endif
+# mysqlnd
+COMMENT-mysqlnd= mysqlclient replacement for php
+CONFIGURE_ARGS+= --enable-mysqlnd=shared
+WANTLIB-mysqlnd= crypto m pthread ssl z

# mysqli
-MULTI_PACKAGES+= -mysqli
-COMMENT-mysqli= mysql database access extensions for php5
-CONFIGURE_ARGS+= --with-mysqli=shared,${LOCALBASE}/bin/mysql_config
-LIB_DEPENDS-mysqli= databases/mariadb
-WANTLIB-mysqli= crypto m pthread ssl z lib/mysql/mysqlclient
+COMMENT-mysqli= mysql database access extensions for php
+CONFIGURE_ARGS+= --with-mysqli=shared,mysqlnd
+RUN_DEPENDS-mysqli= lang/php/${PV},-mysqlnd

# odbc
-MULTI_PACKAGES+= -odbc
-COMMENT-odbc= odbc database access extensions for php5
+COMMENT-odbc= odbc database access extensions for php
CONFIGURE_ARGS+= --with-iodbc=shared,${LOCALBASE}
LIB_DEPENDS-odbc= databases/iodbc
WANTLIB-odbc= iodbc>=2 pthread
-.if ${PV} != "5.3"
WANTLIB-odbc+= iodbcinst
-.endif
+
+# opcache
+COMMENT-opcache= opcache bytecode caching extensions for php
+CONFIGURE_ARGS+= --enable-opcache

# pcntl
-MULTI_PACKAGES+= -pcntl
-COMMENT-pcntl= PCNTL extensions for php5
+COMMENT-pcntl= PCNTL extensions for php
CONFIGURE_ARGS+= --enable-pcntl=shared
LIB_DEPENDS-pcntl=
WANTLIB-pcntl= pthread

+# pdo
+COMMENT-pdo= PDO database interface extensions for php
+CONFIGURE_ARGS+= --enable-pdo=shared
+
+# pdo-dblib
+COMMENT-pdo_dblib= PDO DB-LIB support for php
+CONFIGURE_ARGS+= --with-pdo-dblib=shared,${LOCALBASE}
+LIB_DEPENDS-pdo_dblib= databases/freetds
+WANTLIB-pdo_dblib= sybdb>=6 pthread
+RUN_DEPENDS-pdo_dblib= lang/php/${PV},-pdo
+
# pdo-mysql
-MULTI_PACKAGES+= -pdo_mysql
-COMMENT-pdo_mysql= PDO mysql database access extensions for php5
-CONFIGURE_ARGS+= --with-pdo-mysql=shared,${LOCALBASE}
-LIB_DEPENDS-pdo_mysql= databases/mariadb
-WANTLIB-pdo_mysql= crypto m pthread ssl z lib/mysql/mysqlclient
+COMMENT-pdo_mysql= PDO mysql database access extensions for php
+CONFIGURE_ARGS+= --with-pdo-mysql=shared,mysqlnd
+RUN_DEPENDS-pdo_mysql= lang/php/${PV},-mysqlnd lang/php/${PV},-pdo

# pdo-pgsql
-MULTI_PACKAGES+= -pdo_pgsql
-COMMENT-pdo_pgsql= PDO database access extensions for php5
-CONFIGURE_ARGS+= --with-pdo-pgsql=shared,${LOCALBASE}
+COMMENT-pdo_pgsql= PDO database access extensions for php
+CONFIGURE_ARGS+= --with-pdo-pgsql=shared,${LOCALBASE}
LIB_DEPENDS-pdo_pgsql= databases/postgresql
WANTLIB-pdo_pgsql= pq>=2 pthread
+RUN_DEPENDS-pdo_pgsql= lang/php/${PV},-pdo
+
+# pdo-sqlite
+COMMENT-pdo_sqlite= PDO sqlite3 database access extensions for php
+CONFIGURE_ARGS+= --with-pdo-sqlite=shared,${LOCALBASE}
+LIB_DEPENDS-pdo_sqlite= databases/sqlite3
+WANTLIB-pdo_sqlite= sqlite3
+RUN_DEPENDS-pdo_sqlite= lang/php/${PV},-sqlite3 lang/php/${PV},-pdo

# pgsql
-MULTI_PACKAGES+= -pgsql
-COMMENT-pgsql= pgsql database access extensions for php5
+COMMENT-pgsql= pgsql database access extensions for php
CONFIGURE_ARGS+= --with-pgsql=shared,${LOCALBASE}
LIB_DEPENDS-pgsql= databases/postgresql
WANTLIB-pgsql= pq>=2 pthread

+# phar
+COMMENT-phar= phar archive abstraction extensions for php
+.if ${BUILD_PACKAGES:M-phar}
+CONFIGURE_ARGS+= --enable-phar=shared
+.else
+CONFIGURE_ARGS+= --disable-phar
+.endif
+
+# posix
+COMMENT-posix= posix functions extensions for php
+CONFIGURE_ARGS+= --enable-posix=shared
+
# pspell
-MULTI_PACKAGES+= -pspell
-COMMENT-pspell= pspell library extensions for php5
+COMMENT-pspell= pspell library extensions for php
CONFIGURE_ARGS+= --with-pspell=shared,${LOCALBASE}
LIB_DEPENDS-pspell= textproc/aspell/core
WANTLIB-pspell= aspell>=16 pspell>=16 pthread

+# readline
+COMMENT-readline= readline editable command lines extensions for php
+CONFIGURE_ARGS+= --with-readline=shared
+WANTLIB-readline= readline ncurses
+
# shmop
-MULTI_PACKAGES+= -shmop
-COMMENT-shmop= shared memory extensions for php5
+COMMENT-shmop= shared memory extensions for php
CONFIGURE_ARGS+= --enable-shmop=shared,${LOCALBASE}
-LIB_DEPENDS-shmop=
WANTLIB-shmop= pthread

-# soap
-MULTI_PACKAGES+= -soap
-COMMENT-soap= SOAP functions for php5
-CONFIGURE_ARGS+= --enable-soap=shared,${LOCALBASE}
-LIB_DEPENDS-soap= textproc/libxml
-WANTLIB-soap= iconv m pthread z xml2>=8 lzma
+# simplexml
+COMMENT-simplexml= simplexml xml to object toolset extensions for php
+CONFIGURE_ARGS+= --enable-simplexml=shared
+LIB_DEPENDS-simplexml= textproc/libxml
+WANTLIB-simplexml+= xml2>=8

# snmp
-MULTI_PACKAGES+= -snmp
-COMMENT-snmp= snmp protocol extensions for php5
-CONFIGURE_ARGS+= --with-snmp=shared,${LOCALBASE} --enable-ucd-snmp-hack
+COMMENT-snmp= snmp protocol extensions for php
+CONFIGURE_ARGS+= --with-snmp=shared,${LOCALBASE}
LIB_DEPENDS-snmp= net/net-snmp
WANTLIB-snmp= crypto m netsnmp>=6.2 pthread

-.if ${PV} != "7.0"
-# sybase-ct
-MULTI_PACKAGES+= -sybase_ct
-COMMENT-sybase_ct= sybase database access extensions for php5
-CONFIGURE_ARGS+= --with-sybase-ct=shared,${LOCALBASE}
-LIB_DEPENDS-sybase_ct= databases/freetds
-WANTLIB-sybase_ct= ct pthread
-.endif
-
-# pdo-dblib
-MULTI_PACKAGES+= -pdo_dblib
-COMMENT-pdo_dblib= PDO DB-LIB support for php5
-CONFIGURE_ARGS+= --with-pdo-dblib=shared,${LOCALBASE}
-LIB_DEPENDS-pdo_dblib= databases/freetds
-WANTLIB-pdo_dblib= sybdb>=6 pthread
+# soap
+COMMENT-soap= SOAP functions for php
+CONFIGURE_ARGS+= --enable-soap=shared,${LOCALBASE}
+LIB_DEPENDS-soap= textproc/libxml
+WANTLIB-soap= iconv m pthread z xml2>=8 lzma

-.if ${PV} != "7.0"
-# mssql
-MULTI_PACKAGES+= -mssql
-COMMENT-mssql= microsoft sql access extensions for php5
-CONFIGURE_ARGS+= --with-mssql=shared,${LOCALBASE}
-LIB_DEPENDS-mssql= databases/freetds
-WANTLIB-mssql= sybdb>=6 pthread
-.endif
+# sockets
+COMMENT-sockets= sockets extensions for php
+CONFIGURE_ARGS+= --enable-sockets=shared
+
+# sqlite3
+COMMENT-sqlite3= sqlite3 database access extensions for php
+CONFIGURE_ARGS+= --with-sqlite3=shared,${LOCALBASE}
+LIB_DEPENDS-sqlite3= databases/sqlite3
+WANTLIB-sqlite3= sqlite3
+
+# sysvmsg
+COMMENT-sysvmsg= sysvmsg System V messges extensions for php
+CONFIGURE_ARGS+= --enable-sysvmsg=shared
+
+# sysvsem
+COMMENT-sysvsem= sysvsem System V semaphore extensions for php
+CONFIGURE_ARGS+= --enable-sysvsem=shared
+
+# sysvshm
+COMMENT-sysvshm= sysvshm System V shared memory extensions for php
+CONFIGURE_ARGS+= --enable-sysvshm=shared

# tidy
-MULTI_PACKAGES+= -tidy
COMMENT-tidy= tidy HTML cleaner bindings
CONFIGURE_ARGS+= --with-tidy=shared,${LOCALBASE}
LIB_DEPENDS-tidy= www/tidyp
WANTLIB-tidy= tidyp pthread

-# xml-rpc
-MULTI_PACKAGES+= -xmlrpc
-COMMENT-xmlrpc= XML RPC functions for php5
+# tokenizer
+COMMENT-tokenizer= tokenizer php source analyzing extensions for php
+CONFIGURE_ARGS+= --enable-tokenizer=shared
+
+# wddx
+COMMENT-wddx= wddx extensions for php
+CONFIGURE_ARGS+= --enable-wddx=shared
+LIB_DEPENDS-wddx= textproc/libxml
+WANTLIB-wddx= xml2>=8
+
+# xml
+COMMENT-xml= xml extensions for php
+CONFIGURE_ARGS+= --enable-xml
+LIB_DEPENDS-xml= textproc/libxml
+WANTLIB-xml= xml2>=8
+
+# xmlreader
+COMMENT-xmlreader= xmlreader streaming xml cursor extensions for php
+CONFIGURE_ARGS+= --enable-xmlreader=shared
+RUN_DEPENDS-xmlreader= lang/php/${PV},-dom
+
+# xmlrpc
+COMMENT-xmlrpc= XML RPC functions for php
CONFIGURE_ARGS+= --with-xmlrpc=shared
LIB_DEPENDS-xmlrpc= textproc/libxml
WANTLIB-xmlrpc= iconv m z xml2>=8 pthread lzma

+# xmlwriter
+COMMENT-xmlwriter= xmlwriter streaming xml writer extensions for php
+CONFIGURE_ARGS+= --enable-xmlwriter=shared
+LIB_DEPENDS-xmlwriter= textproc/libxml
+WANTLIB-xmlwriter= xml2>=8
+
# xsl
-MULTI_PACKAGES+= -xsl
-COMMENT-xsl= XSL functions for php5
-CONFIGURE_ARGS+= --with-xsl=shared --enable-dom
+COMMENT-xsl= XSL functions for php
+CONFIGURE_ARGS+= --with-xsl=shared
LIB_DEPENDS-xsl= textproc/libxslt
WANTLIB-xsl= iconv m xml2 z xslt>=3 exslt pthread lzma

# zip
-MULTI_PACKAGES+= -zip
-COMMENT-zip= zip functions for php5
+COMMENT-zip= zip functions for php
CONFIGURE_ARGS+= --enable-zip=shared,${LOCALBASE}
LIB_DEPENDS-zip=
WANTLIB-zip= z pthread

+
# some variables to substitute
SUBST_VARS= MODPHP_CONFIG_PATH SV PV ^MODULE_NAME
PHP_VERSION= ${V}
SV= ${PV:S/.//}

-.for i in TRUEPREFIX MODULES_DIR PHP_VERSION APACHE_MODULE_DIR
-PHPXS_SUBST+= -e 's,${i},${${i}},'
-.endfor
-
-WANTLIB-main+= c crypto iconv intl lzma m pthread ssl xml2>=8 z
-WANTLIB-main+= ncurses readline ${LIBCXX}
-
-# php 5.4/5.5 : WANTLIB-main += ${LIBCXX}
-WANTLIB-fastcgi= ${WANTLIB-main}
-LIB_DEPENDS-main= devel/gettext \
- textproc/libxml
-RUN_DEPENDS-main= mail/femail,-chroot
-LIB_DEPENDS-fastcgi= ${LIB_DEPENDS-main}
-RUN_DEPENDS-fastcgi=
-
-SUHOSIN_V= 0.9.38
-.if ${FLAVOR:Mno_suhosin} || ${PV} == "7.0"
-SUPDISTFILES= suhosin-${SUHOSIN_V}.tar.gz:0
-.else
-DISTFILES+= suhosin-${SUHOSIN_V}.tar.gz:0
-PATCH_LIST= patch-* suhosin-*
-CONFIGURE_ARGS+= --enable-suhosin
-
-pre-patch:
- @mv ${WRKDIR}/suhosin-${SUHOSIN_V} ${WRKSRC}/ext/suhosin
-.endif
-
pre-fake:
${INSTALL_DATA_DIR} ${PREFIX}/${APACHE_MODULE_SUBDIR}/modules

@@ -374,29 +508,29 @@ DESTDIRNAME= INSTALL_ROOT

pre-configure:
${SUBST_CMD} ${WRKSRC}/main/php_ini.c
+ ${SUBST_CMD} ${WRKSRC}/scripts/phpize.m4
@perl -pi -e "s,OPENBSD_PEAR_ROOT,'${CHROOT_DIR}/pear',g;" \
-e "s,OPENBSD_PREFIX,${TRUEPREFIX},;" \
${WRKSRC}/scripts/phpize.in \
${WRKSRC}/scripts/php-config.in

-.for i in ${MULTI_PACKAGES:N-main:N-fastcgi:S/-//g}
+.for i in ${MULTI_PACKAGES:N-main:S/-//g}
MODULE_NAME-${i}= ${i}
DESCR-${i}= ${.CURDIR}/../files/DESCR-${i}
PKGNAME-${i}= php-${i}-${V}
-.if ${V:M5.4*}
-PKGSPEC-${i}= php-${i}->=5.4,<5.5
-.elif ${V:M5.5*}
-PKGSPEC-${i}= php-${i}->=5.5,<5.6
-.elif ${V:M5.6*}
+.if ${V:M5.6*}
PKGSPEC-${i}= php-${i}->=5.6,<5.7
+RUN_DEPENDS-${i}+= php->=5.6.30p0:lang/php/${PV}
.elif ${V:M7.0*}
PKGSPEC-${i}= php-${i}->=7.0,<7.1
-.endif
+RUN_DEPENDS-${i}+= php->=7.0.19:lang/php/${PV}
+.elif ${V:M7.1*}
+PKGSPEC-${i}= php-${i}->=7.1,<7.2
RUN_DEPENDS-${i}+= php-${V}:lang/php/${PV}
+.endif
.endfor

DESCR-main= ${.CURDIR}/../files/DESCR-main
-DESCR-fastcgi= ${.CURDIR}/../files/DESCR-fastcgi

post-install:
${SUBST_DATA} ${.CURDIR}/../files/README-main \
@@ -405,13 +539,19 @@ post-install:
${PREFIX}/${APACHE_MODULE_SUBDIR}/
${INSTALL_DATA_DIR} ${WRKINST}/${CHROOT_DIR}/conf/php-${PV}.sample
${INSTALL_DATA_DIR} ${PREFIX}/share/examples/php-${PV}
+ ${INSTALL_PROGRAM} ${WRKBUILD}/ext/phar/phar.phar ${PREFIX}/bin/phar-${PV}
+ ${INSTALL_MAN} ${WRKBUILD}/ext/phar/phar.1 ${PREFIX}/man/man1/phar-${PV}.1
${INSTALL_PROGRAM} ${WRKBUILD}/sapi/cli/php ${PREFIX}/bin/php-${PV}
- ${INSTALL_PROGRAM} ${WRKBUILD}/sapi/cgi/php-cgi ${PREFIX}/bin/php-fastcgi-${PV}
+ ${INSTALL_MAN} ${WRKSRC}/sapi/cli/php.1 ${PREFIX}/man/man1/php-${PV}.1
+ ${INSTALL_PROGRAM} ${WRKBUILD}/sapi/cgi/php-cgi ${PREFIX}/bin/php-cgi-${PV}
+ ${INSTALL_MAN} ${WRKSRC}/sapi/cgi/php-cgi.1 ${PREFIX}/man/man1/php-cgi-${PV}.1
+# ${INSTALL_PROGRAM} ${WRKBUILD}/sapi/phpdbg/phpdbg ${PREFIX}/bin/phpdbg-${PV}
+# ${INSTALL_MAN} ${WRKBUILD}/sapi/phpdbg/phpdbg.1 ${PREFIX}/man/man1/phpdbg-${PV}.1
${INSTALL_PROGRAM} ${WRKBUILD}/sapi/fpm/php-fpm ${PREFIX}/sbin/php-fpm-${PV}
${INSTALL_MAN} ${WRKBUILD}/sapi/fpm/php-fpm.8 ${PREFIX}/man/man8/php-fpm-${PV}.8
${INSTALL_DATA} ${WRKBUILD}/sapi/fpm/php-fpm.conf \
${PREFIX}/share/examples/php-${PV}/php-fpm.conf
-.if ${PV} == "7.0"
+.if ${PV} != "5.6"
cat ${WRKBUILD}/sapi/fpm/www.conf >> \
${PREFIX}/share/examples/php-${PV}/php-fpm.conf
.endif
@@ -421,17 +561,19 @@ post-install:
@perl -pi -e "s,!!PREFIX!!,${TRUEPREFIX},g;s,!!PV!!,${PV},g;s,!!MV!!,${PV:R},g" \
${PREFIX}/share/examples/php-${PV}/php.conf

-.for m in ${MULTI_PACKAGES:N-main:N-fastcgi:S/-//g}
+.for m in ${PHP_MODULES:S/-//g}
${INSTALL_DATA} ${WRKBUILD}/modules/${m}.so \
${PREFIX}/${MODULES_SUBDIR}/${m}.so
echo "extension=${m}.so" > \
${PREFIX}/share/examples/php-${PV}/${m}.ini
.endfor
- if [ -f ${WRKBUILD}/modules/opcache.so ]; then \
- ${INSTALL_DATA} ${WRKBUILD}/modules/opcache.so \
- ${PREFIX}/${MODULES_SUBDIR}/opcache.so; \
- echo "zend_extension=opcache.so" > \
- ${PREFIX}/share/examples/php-${PV}/opcache.ini; fi
+.for m in ${PHP_ZEND_MODULES:S/-//g}
+ ${INSTALL_DATA} ${WRKBUILD}/modules/${m}.so \
+ ${PREFIX}/${MODULES_SUBDIR}/${m}.so
+ echo "zend_extension=${m}.so" > \
+ ${PREFIX}/share/examples/php-${PV}/${m}.ini
+.endfor
+
${INSTALL_DATA_DIR} ${WRKINST}/${CHROOT_DIR}/etc
echo "www:*:67:67::0:0:dummy user to appease c-client:/nonexistent:/sbin/nologin" > \
${WRKINST}/${CHROOT_DIR}/etc/master.passwd.imap
@@ -443,4 +585,3 @@ post-install:
<${WRKSRC}/php.ini-${i} \
>${PREFIX}/share/examples/php-${PV}/php.ini-${i}
.endfor
- ${INSTALL_MAN} ${WRKSRC}/sapi/cli/php.1 ${PREFIX}/man/man1/php-${PV}.1
Index: php.port.mk
===================================================================
RCS file: /cvs/ports/lang/php/php.port.mk,v
retrieving revision 1.16
diff -u -p -a -u -r1.16 php.port.mk
--- php.port.mk 25 Apr 2017 11:26:43 -0000 1.16
+++ php.port.mk 8 Jul 2017 18:28:19 -0000
@@ -3,12 +3,12 @@
CATEGORIES+= lang/php

MODPHP_VERSION?= 5.6
-.if ${MODPHP_VERSION} == 5.5
-MODPHP_VSPEC = >=${MODPHP_VERSION},<5.6
-.elif ${MODPHP_VERSION} == 5.6
+.if ${MODPHP_VERSION} == 5.6
MODPHP_VSPEC = >=${MODPHP_VERSION},<5.7
.elif ${MODPHP_VERSION} == 7.0
MODPHP_VSPEC = >=${MODPHP_VERSION},<7.1
+.elif ${MODPHP_VERSION} == 7.1
+MODPHP_VSPEC = >=${MODPHP_VERSION},<7.2
.endif
MODPHPSPEC = php-${MODPHP_VSPEC}

@@ -33,23 +33,19 @@ MODPHP_PHP_CONFIG= ${LOCALBASE}/bin/php-
MODPHP_INCDIR= ${LOCALBASE}/include/php-${MODPHP_VERSION}
MODPHP_LIBDIR= ${LOCALBASE}/lib/php-${MODPHP_VERSION}

-MODPHP_CONFIGURE_ARGS= --with-php-config=${LOCALBASE}/bin/php-config-${MODPHP_VERSION}
SUBST_VARS+= MODPHP_VERSION

MODPHP_DO_PHPIZE?=
.if !empty(MODPHP_DO_PHPIZE)
-AUTOCONF_VERSION= 2.62
-AUTOMAKE_VERSION= 1.9
+AUTOCONF_VERSION= 2.69

-BUILD_DEPENDS+= ${MODGNU_AUTOCONF_DEPENDS} \
- ${MODGNU_AUTOMAKE_DEPENDS}
+BUILD_DEPENDS+= ${MODGNU_AUTOCONF_DEPENDS}

.if empty(CONFIGURE_STYLE)
CONFIGURE_STYLE= gnu
.endif

-CONFIGURE_ENV+= AUTOMAKE_VERSION=${AUTOMAKE_VERSION} \
- AUTOCONF_VERSION=${AUTOCONF_VERSION}
+CONFIGURE_ENV+= AUTOCONF_VERSION=${AUTOCONF_VERSION}
CONFIGURE_ARGS+= ${MODPHP_CONFIGURE_ARGS}

pre-configure:
Index: 5.5/Makefile
===================================================================
RCS file: 5.5/Makefile
diff -N 5.5/Makefile
--- 5.5/Makefile 12 Jun 2017 11:48:34 -0000 1.65
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,10 +0,0 @@
-# $OpenBSD: Makefile,v 1.65 2017/06/12 11:48:34 sthen Exp $
-
-BROKEN-alpha= pcre_jit_compile.c:65:2: error: #error Unsupported architecture
-
-PV= 5.5
-V= ${PV}.38
-REVISION = 0
-REVISION-intl= 1
-
-.include <bsd.port.mk>
Index: 5.5/distinfo
===================================================================
RCS file: 5.5/distinfo
diff -N 5.5/distinfo
--- 5.5/distinfo 19 Dec 2016 20:34:22 -0000 1.33
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,4 +0,0 @@
-SHA256 (php-5.5.38.tar.bz2) = RzyB67LkjKRoyu4DF2ImZlGEPXInwYqCSt2bB7k5Pjg=
-SHA256 (suhosin-0.9.38.tar.gz) = wC12xOfOd3kQo3wYGBy2f9npDv4BB/6rPeMTG1+JvOo=
-SIZE (php-5.5.38.tar.bz2) = 13701262
-SIZE (suhosin-0.9.38.tar.gz) = 122800
Index: 5.5/patches/patch-Zend_zend_alloc_c
===================================================================
RCS file: 5.5/patches/patch-Zend_zend_alloc_c
diff -N 5.5/patches/patch-Zend_zend_alloc_c
--- 5.5/patches/patch-Zend_zend_alloc_c 6 Feb 2016 23:31:20 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,26 +0,0 @@
-$OpenBSD: patch-Zend_zend_alloc_c,v 1.1 2016/02/06 23:31:20 sthen Exp $
-
-Apparently not enabled by default, and currently a bit close to release to
-try doing so, but for something in #ifdef MM_HEAP_PROTECTION, you want more
-than rand()^getpid() when /dev/urandom is inaccessible, right?
-
---- Zend/zend_alloc.c.orig.port Mon Feb 1 23:04:02 2016
-+++ Zend/zend_alloc.c Mon Feb 1 23:34:27 2016
-@@ -976,6 +976,9 @@ static void zend_mm_free_cache(zend_mm_heap *heap)
- #if ZEND_MM_HEAP_PROTECTION || ZEND_MM_COOKIES
- static void zend_mm_random(unsigned char *buf, size_t size) /* {{{ */
- {
-+#if defined(__OpenBSD__)
-+ arc4random_buf(buf, size);
-+#else
- size_t i = 0;
- unsigned char t;
-
-@@ -1031,6 +1034,7 @@ static void zend_mm_random(unsigned char *buf, size_t
- } while (buf[i] == 0);
- t = buf[i++] << 1;
- }
-+

No comments:

Post a Comment