Better to just fix phar on sparc64...does anyone have more information on the problem?
On 2018/05/08 17:49, Martijn van Duren wrote: > Hello ports@, > > This diff moves phar to its own subpackage, which requires quite a bit > of changes: > - Since -phar breaks sparc64, allow it to be disabled > - For specifying what package doesn't build on a certain architecture I > use NOT_FOR_ARCHS-phar (BROKEN- doesn't work on subpackages) > - To determine if a package is built I require BUILD_PACKAGES, which in > turn requires bsd.port.arch.mk to be loaded earlier. > - MULTI_PACKAGES (and by extend PHP_EXTENSIONS) need to be defined > before bsd.port.arch.mk is loaded to have the full list. > > I don't know on what component HPPA fails, but this platform might also > benefit from this trick. I don't have the machine to test it though. > > As for the other changes: > - Install phar-${PV} similar to php-config-${PV} > - Install the phar manpage > - Move the phar headers to the phar subpackage > > This also requires the addition of the phar module as a runtime > dependency on icinga-web, drush, nextcloud, owncloud and composer. > I'm just not sure (except for composer) how optional the use of the > phar extension is. If people who are more familiar with these tools > could shed some light on this it'd be welcome. > > Comments, thoughts, scoldings, testings on sparc64, other ways to set > this up, OKs? > > martijn@ > > Index: lang/php/Makefile.inc > =================================================================== > RCS file: /cvs/ports/lang/php/Makefile.inc,v > retrieving revision 1.103 > diff -u -p -a -u -r1.103 Makefile.inc > --- lang/php/Makefile.inc 8 May 2018 12:04:55 -0000 1.103 > +++ lang/php/Makefile.inc 8 May 2018 15:26:51 -0000 > @@ -110,6 +110,10 @@ TEST_TARGET= test > TEST_FLAGS= NO_INTERACTION=1 > > SAPI+= -main -cgi > +PHP_EXTENSIONS+= -bz2 -curl -dba -gd -gmp -intl -imap -ldap -mcrypt \ > + -mysqli -odbc -pcntl -pdo_mysql -pdo_pgsql -pgsql \ > + -phar -pspell -shmop -soap -snmp -pdo_dblib -tidy \ > + -xmlrpc -xsl -zip > ZEND_EXTENSIONS+= -opcache > MULTI_PACKAGES+= ${SAPI} ${PHP_EXTENSIONS} > > @@ -122,34 +126,36 @@ LIB_DEPENDS$i+= devel/gettext \ > textproc/libxml > .endfor > > +# > +# Broken section > +# Use *_FOR_ARCHS, since BROKEN doesn't work for subpackages > +# > + > +.include <bsd.port.arch.mk> > > # > # Loadable php extensions by name that are included in all versions > # > > # bz2 > -PHP_EXTENSIONS+= -bz2 > COMMENT-bz2= bzip2 compression extensions for php > CONFIGURE_ARGS+= --with-bz2=shared,${LOCALBASE} > LIB_DEPENDS-bz2= archivers/bzip2 > WANTLIB-bz2= bz2>=10 pthread > > # curl > -PHP_EXTENSIONS+= -curl > 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 > -PHP_EXTENSIONS+= -dba > 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 > > # gd > -PHP_EXTENSIONS+= -gd > COMMENT-gd= image manipulation extensions for php > LIB_DEPENDS-gd= graphics/jpeg \ > graphics/png > @@ -167,14 +173,12 @@ CONFIGURE_ARGS+= --with-gd=shared \ > --with-xpm-dir=${X11BASE} > > # gmp > -PHP_EXTENSIONS+= -gmp > 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 > -PHP_EXTENSIONS+= -intl > COMMENT-intl= intl library support for php > CONFIGURE_ARGS+= --enable-intl=shared \ > --with-icu-dir=${LOCALBASE} > @@ -185,7 +189,6 @@ WANTLIB-intl= icudata icui18n icuio icu > WANTLIB-intl+= ${COMPILER_LIBCXX} m > > # imap > -PHP_EXTENSIONS+= -imap > COMMENT-imap= imap, pop3 and nntp extensions for php > CONFIGURE_ARGS+= --with-imap=shared,${LOCALBASE} \ > --with-imap-ssl > @@ -193,119 +196,110 @@ LIB_DEPENDS-imap= mail/alpine,-c-client > WANTLIB-imap= pthread crypto ssl c-client>=5 > > # ldap > -PHP_EXTENSIONS+= -ldap > COMMENT-ldap= ldap protocol extensions for php > CONFIGURE_ARGS+= --with-ldap=shared,${LOCALBASE} > LIB_DEPENDS-ldap= databases/openldap > WANTLIB-ldap= pthread ldap>=2 lber > > # mcrypt > -PHP_EXTENSIONS+= -mcrypt > 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 > > # mysqli > -PHP_EXTENSIONS+= -mysqli > COMMENT-mysqli= mysql database access extensions for php > CONFIGURE_ARGS+= --with-mysqli=shared,${LOCALBASE}/bin/mysql_config > LIB_DEPENDS-mysqli= databases/mariadb > WANTLIB-mysqli= crypto m pthread ssl z lib/mysql/mysqlclient > > # odbc > -PHP_EXTENSIONS+= -odbc > COMMENT-odbc= odbc database access extensions for php > CONFIGURE_ARGS+= --with-iodbc=shared,${LOCALBASE} > LIB_DEPENDS-odbc= databases/iodbc > WANTLIB-odbc= iodbc>=2 pthread iodbcinst > > # pcntl > -PHP_EXTENSIONS+= -pcntl > COMMENT-pcntl= PCNTL extensions for php > CONFIGURE_ARGS+= --enable-pcntl=shared > LIB_DEPENDS-pcntl= > WANTLIB-pcntl= pthread > > # pdo-mysql > -PHP_EXTENSIONS+= -pdo_mysql > COMMENT-pdo_mysql= PDO mysql database access extensions for php > CONFIGURE_ARGS+= --with-pdo-mysql=shared,${LOCALBASE} > LIB_DEPENDS-pdo_mysql= databases/mariadb > WANTLIB-pdo_mysql= crypto m pthread ssl z lib/mysql/mysqlclient > > # pdo-pgsql > -PHP_EXTENSIONS+= -pdo_pgsql > 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 > > # pgsql > -PHP_EXTENSIONS+= -pgsql > 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 > + > # pspell > -PHP_EXTENSIONS+= -pspell > 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 > > # shmop > -PHP_EXTENSIONS+= -shmop > COMMENT-shmop= shared memory extensions for php > CONFIGURE_ARGS+= --enable-shmop=shared,${LOCALBASE} > LIB_DEPENDS-shmop= > WANTLIB-shmop= pthread > > # soap > -PHP_EXTENSIONS+= -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 > > # snmp > -PHP_EXTENSIONS+= -snmp > 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 > > # pdo-dblib > -PHP_EXTENSIONS+= -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 > > # tidy > -PHP_EXTENSIONS+= -tidy > COMMENT-tidy= tidy HTML cleaner bindings > CONFIGURE_ARGS+= --with-tidy=shared,${LOCALBASE} > LIB_DEPENDS-tidy= www/tidyp > WANTLIB-tidy= tidyp pthread > > # xml-rpc > -PHP_EXTENSIONS+= -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 > > # xsl > -PHP_EXTENSIONS+= -xsl > COMMENT-xsl= XSL functions for php > CONFIGURE_ARGS+= --with-xsl=shared --enable-dom > LIB_DEPENDS-xsl= textproc/libxslt > WANTLIB-xsl= m xml2 xslt>=3 exslt pthread > > # zip > -PHP_EXTENSIONS+= -zip > COMMENT-zip= zip functions for php > CONFIGURE_ARGS+= --enable-zip=shared,${LOCALBASE} > LIB_DEPENDS-zip= > @@ -353,6 +347,10 @@ post-install: > ${PREFIX}/${APACHE_MODULE_SUBDIR}/ > ${INSTALL_DATA_DIR} ${WRKINST}/${CHROOT_DIR}/conf/php-${PV}.sample > ${INSTALL_DATA_DIR} ${PREFIX}/share/examples/php-${PV} > +.if ${BUILD_PACKAGES:M-phar} > + ${INSTALL_PROGRAM} ${WRKBUILD}/ext/phar/phar.phar > ${PREFIX}/bin/phar-${PV} > + ${INSTALL_MAN} ${WRKBUILD}/ext/phar/phar.1 > ${PREFIX}/man/man1/phar-${PV}.1 > +.endif > ${INSTALL_PROGRAM} ${WRKBUILD}/sapi/cli/php ${PREFIX}/bin/php-${PV} > ${INSTALL_PROGRAM} ${WRKBUILD}/sapi/cgi/php-cgi > ${PREFIX}/bin/php-cgi-${PV} > # Make sure that php-cgi.1 still just sources php.1 when importing a new > major version. > @@ -372,10 +370,12 @@ post-install: > ${PREFIX}/share/examples/php-${PV}/php.conf > > .for m in ${PHP_EXTENSIONS:S/-//g} > +.if ${BUILD_PACKAGES:M-${m}} > ${INSTALL_DATA} ${WRKBUILD}/modules/${m}.so \ > ${PREFIX}/${MODULES_SUBDIR}/${m}.so > echo "extension=${m}.so" > \ > ${PREFIX}/share/examples/php-${PV}/${m}.ini > +.endif > .endfor > .for m in ${ZEND_EXTENSIONS:S/-//g} > ${INSTALL_DATA} ${WRKBUILD}/modules/${m}.so \ > Index: lang/php/5.6/Makefile > =================================================================== > RCS file: /cvs/ports/lang/php/5.6/Makefile,v > retrieving revision 1.62 > diff -u -p -a -u -r1.62 Makefile > --- lang/php/5.6/Makefile 8 May 2018 12:04:55 -0000 1.62 > +++ lang/php/5.6/Makefile 8 May 2018 15:26:51 -0000 > @@ -4,7 +4,7 @@ BROKEN-alpha= pcre_jit_compile.c:65:2: e > > PV= 5.6 > V= ${PV}.35 > -REVISION-main= 0 > +REVISION= 1 > > MASTER_SITES0= https://download.suhosin.org/ > > Index: lang/php/5.6/pkg/PLIST-phar > =================================================================== > RCS file: lang/php/5.6/pkg/PLIST-phar > diff -N lang/php/5.6/pkg/PLIST-phar > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ lang/php/5.6/pkg/PLIST-phar 8 May 2018 15:26:51 -0000 > @@ -0,0 +1,11 @@ > +@comment $OpenBSD$ > +@option no-default-conflict > +@option is-branch > +@conflict php-phar->=5.6,<5.7 > +bin/phar-${PV} > +@man man/man1/phar-${PV}.1 > +lib/php-${PV}/modules/phar.so > +share/examples/php-${PV}/phar.ini > +@sample ${SYSCONFDIR}/php-${PV}.sample/phar.ini > +share/php-${PV}/include/ext/phar/ > +share/php-${PV}/include/ext/phar/php_phar.h > Index: lang/php/7.0/Makefile > =================================================================== > RCS file: /cvs/ports/lang/php/7.0/Makefile,v > retrieving revision 1.46 > diff -u -p -a -u -r1.46 Makefile > --- lang/php/7.0/Makefile 8 May 2018 12:17:32 -0000 1.46 > +++ lang/php/7.0/Makefile 8 May 2018 15:26:51 -0000 > @@ -1,10 +1,11 @@ > # $OpenBSD: Makefile,v 1.46 2018/05/08 12:17:32 martijn Exp $ > > -BROKEN-sparc64= SIGBUS during phar generation > +# SIGBUS during phar generation > +NOT_FOR_ARCHS-phar= sparc64 > > PV= 7.0 > V= ${PV}.29 > -REVISION= 1 > +REVISION= 2 > > BUILD_DEPENDS+= devel/bison > > Index: lang/php/7.0/pkg/PLIST-main > =================================================================== > RCS file: /cvs/ports/lang/php/7.0/pkg/PLIST-main,v > retrieving revision 1.6 > diff -u -p -a -u -r1.6 PLIST-main > --- lang/php/7.0/pkg/PLIST-main 25 Apr 2017 11:21:14 -0000 1.6 > +++ lang/php/7.0/pkg/PLIST-main 8 May 2018 15:26:51 -0000 > @@ -253,8 +253,6 @@ share/php-${PV}/include/ext/pdo/ > share/php-${PV}/include/ext/pdo/php_pdo.h > share/php-${PV}/include/ext/pdo/php_pdo_driver.h > share/php-${PV}/include/ext/pdo/php_pdo_error.h > -share/php-${PV}/include/ext/phar/ > -share/php-${PV}/include/ext/phar/php_phar.h > share/php-${PV}/include/ext/session/ > share/php-${PV}/include/ext/session/mod_files.h > share/php-${PV}/include/ext/session/mod_user.h > Index: lang/php/7.0/pkg/PLIST-phar > =================================================================== > RCS file: lang/php/7.0/pkg/PLIST-phar > diff -N lang/php/7.0/pkg/PLIST-phar > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ lang/php/7.0/pkg/PLIST-phar 8 May 2018 15:26:51 -0000 > @@ -0,0 +1,11 @@ > +@comment $OpenBSD$ > +@option no-default-conflict > +@option is-branch > +@conflict php-phar->=7.0,<7.1 > +bin/phar-${PV} > +@man man/man1/phar-${PV}.1 > +lib/php-${PV}/modules/phar.so > +share/examples/php-${PV}/phar.ini > +@sample ${SYSCONFDIR}/php-${PV}.sample/phar.ini > +share/php-${PV}/include/ext/phar/ > +share/php-${PV}/include/ext/phar/php_phar.h > Index: lang/php/files/DESCR-phar > =================================================================== > RCS file: lang/php/files/DESCR-phar > diff -N lang/php/files/DESCR-phar > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ lang/php/files/DESCR-phar 8 May 2018 15:26:51 -0000 > @@ -0,0 +1,9 @@ > +The phar extension provides a way to put entire PHP applications into > +a single file called a "phar" (PHP Archive) for easy distribution and > +installation. In addition to providing this service, the phar > +extension also provides a file-format abstraction method for creating > +and manipulating tar and zip files through the PharData class, much as > +PDO provides a unified interface for accessing different databases. > +Unlike PDO, which cannot convert between different databases, Phar > +also can convert between tar, zip and phar file formats with a single > +line of code. see Phar::convertToExecutable() for one example. > Index: net/icinga/web/Makefile > =================================================================== > RCS file: /cvs/ports/net/icinga/web/Makefile,v > retrieving revision 1.36 > diff -u -p -r1.36 Makefile > --- net/icinga/web/Makefile 20 Dec 2017 15:11:20 -0000 1.36 > +++ net/icinga/web/Makefile 8 May 2018 15:44:57 -0000 > @@ -5,6 +5,7 @@ COMMENT = web UI for icinga > GH_ACCOUNT = Icinga > GH_PROJECT = icinga-web > GH_TAGNAME = v1.14.1 > +REVISION= 0 > > MODULES= lang/php > > @@ -13,6 +14,7 @@ COMMON = www/pear \ > > RUN_DEPENDS = ${COMMON_DEPENDS} \ > lang/php/${MODPHP_VERSION},-gd \ > + lang/php/${MODPHP_VERSION},-phar \ > lang/php/${MODPHP_VERSION},-xsl \ > > php-pdo_mysql-${MODPHP_VSPEC}|php-pdo_pgsql-${MODPHP_VSPEC}:lang/php/${MODPHP_VERSION},-pdo_mysql > \ > net/icinga/core \ > Index: www/drush//Makefile > =================================================================== > RCS file: /cvs/ports/www/drush/Makefile,v > retrieving revision 1.11 > diff -u -p -r1.11 Makefile > --- www/drush//Makefile 27 Feb 2016 17:15:24 -0000 1.11 > +++ www/drush//Makefile 8 May 2018 15:45:21 -0000 > @@ -7,6 +7,7 @@ CATEGORIES = www devel > V= 8.0.3 > DISTNAME= drush-$V > EXTRACT_SUFX= -deps.tar.xz > +REVISION= 0 > > HOMEPAGE= http://www.drush.org/ > > @@ -19,7 +20,8 @@ MODULES= lang/php > PERMIT_PACKAGE_CDROM= Yes > > NO_BUILD= Yes > -RUN_DEPENDS= archivers/gtar > +RUN_DEPENDS= archivers/gtar \ > + lang/php/${MODPHP_VERSION},-phar > SUBST_VARS= MODPHP_BIN > > do-install: > Index: www/nextcloud//Makefile > =================================================================== > RCS file: /cvs/ports/www/nextcloud/Makefile,v > retrieving revision 1.12 > diff -u -p -r1.12 Makefile > --- www/nextcloud//Makefile 27 Apr 2018 09:15:07 -0000 1.12 > +++ www/nextcloud//Makefile 8 May 2018 15:45:51 -0000 > @@ -5,6 +5,7 @@ COMMENT= easy and universal access to s > V= 13.0.2 > DISTNAME= nextcloud-${V} > EXTRACT_SUFX= .tar.bz2 > +REVISION= 0 > > CATEGORIES= www > > @@ -39,6 +40,7 @@ MAJOR= ${VR:R} > SUBST_VARS= INSTDIR TINSTDIR MODPHP_BIN VR MAJOR > > RUN_DEPENDS= lang/php/${MODPHP_VERSION},-gd \ > + lang/php/${MODPHP_VERSION},-phar \ > lang/php/${MODPHP_VERSION},-zip > > # http user authentication > Index: www/owncloud//Makefile > =================================================================== > RCS file: /cvs/ports/www/owncloud/Makefile,v > retrieving revision 1.123 > diff -u -p -r1.123 Makefile > --- www/owncloud//Makefile 28 Apr 2018 09:07:06 -0000 1.123 > +++ www/owncloud//Makefile 8 May 2018 15:46:04 -0000 > @@ -5,6 +5,7 @@ COMMENT= easy and universal access to s > V= 10.0.8 > DISTNAME= owncloud-${V} > EXTRACT_SUFX= .tar.bz2 > +REVISION= 0 > > CATEGORIES= www > > @@ -38,6 +39,7 @@ VR= ${V:R} > SUBST_VARS= INSTDIR TINSTDIR MODPHP_BIN VR > > RUN_DEPENDS= lang/php/${MODPHP_VERSION},-gd \ > + lang/php/${MODPHP_VERSION},-phar \ > lang/php/${MODPHP_VERSION},-zip > > # http user authentication > Index: www/composer//Makefile > =================================================================== > RCS file: /cvs/ports/www/composer/Makefile,v > retrieving revision 1.5 > diff -u -p -r1.5 Makefile > --- www/composer//Makefile 2 Mar 2018 17:24:55 -0000 1.5 > +++ www/composer//Makefile 8 May 2018 15:46:15 -0000 > @@ -6,11 +6,14 @@ CATEGORIES= www devel > > V= 1.6.3 > EPOCH= 0 > +REVISION= 0 > MASTER_SITES= https://getcomposer.org/download/$V/ > DISTNAME= composer-$V > DISTFILES= composer-$V{composer}.phar > EXTRACT_SUFX= .phar > EXTRACT_ONLY= > + > +RUN_DEPENDS= lang/php/${MODPHP_VERSION},-phar > > HOMEPAGE= https://getcomposer.org/ > >