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/
>
>