Summary: | lang/php70: Extensions fail to find dependencies when ZTS is enabled due to incorrect library path in LIB_DEPENDS check (LOCALBASE/lib/php/YYYYMMDD-zts) | ||
---|---|---|---|
Product: | Ports & Packages | Reporter: | rainer |
Component: | Individual Port(s) | Assignee: | Torsten Zuehlsdorff <tz> |
Status: | Closed FIXED | ||
Severity: | Affects Some People | CC: | ale, ohartmann, tz |
Priority: | --- | Keywords: | needs-patch, needs-qa |
Version: | Latest | Flags: | tz:
maintainer-feedback+
tz: merge-quarterly- |
Hardware: | amd64 | ||
OS: | Any |
Description
rainer
2016-11-30 08:15:02 UTC
Hi, e.g. php70-xmlreader complains: ====>> Building net/php70-xmlrpc build started at Sun Nov 27 01:46:46 CET 2016 port directory: /usr/ports/net/php70-xmlrpc building for: FreeBSD 11_0-amd64-2016Q4-php70-mariadb101-job-03 11.0-RELEASE-p3 FreeBSD 11.0-RELEASE-p3 amd64 maintained by: tz@FreeBSD.org Makefile ident: $FreeBSD: branches/2016Q4/net/php70-xmlrpc/Makefile 422569 2016-09-21 15:43:47Z tz $ Poudriere version: 3.1.14 Host OSVERSION: 1100122 Jail OSVERSION: 1100122 ---Begin Environment--- SHELL=/bin/csh UNAME_v=FreeBSD 11.0-RELEASE-p3 UNAME_r=11.0-RELEASE-p3 BLOCKSIZE=K MAIL=/var/mail/root STATUS=1 ARCH=amd64 SAVED_TERM=screen MASTERMNT=/usr/local/poudriere/data/.m/11_0-amd64-2016Q4-php70-mariadb101/ref UID=0 FORCE_PACKAGE=yes PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin _JAVA_VERSION_LIST_REGEXP=1.6\|1.7\|1.8\|1.6+\|1.7+\|1.8+ POUDRIERE_BUILD_TYPE=bulk PKGNAME=php70-xmlrpc-7.0.13 OSREL=11.0 _OSRELEASE=11.0-RELEASE-p3 PYTHONBASE=/usr/local OLDPWD=/ _SMP_CPUS=24 PWD=/usr/local/poudriere/data/.m/11_0-amd64-2016Q4-php70-mariadb101/ref/.p/pool HAVE_COMPAT_IA32_KERN=YES OPSYS=FreeBSD MASTERNAME=11_0-amd64-2016Q4-php70-mariadb101 SCRIPTPREFIX=/usr/local/share/poudriere _JAVA_VENDOR_LIST_REGEXP=openjdk\|oracle\|sun USER=root HOME=/root POUDRIERE_VERSION=3.1.14 SCRIPTPATH=/usr/local/share/poudriere/bulk.sh CONFIGURE_MAX_CMD_LEN=262144 LIBEXECPREFIX=/usr/local/libexec/poudriere LOCALBASE=/usr/local PACKAGE_BUILDING=yes _JAVA_OS_LIST_REGEXP=native\|linux OSVERSION=1100122 ---End Environment--- ---Begin OPTIONS List--- ---End OPTIONS List--- --CONFIGURE_ARGS-- --with-xmlrpc --with-libxml-dir=/usr/local --with-iconv-dir=/usr/local --with-php-config=/usr/local/bin/php-config --prefix=/usr/local ${_LATE_CONFIGURE_ARGS} --End CONFIGURE_ARGS-- --CONFIGURE_ENV-- XDG_DATA_HOME=/wrkdirs/usr/ports/net/php70-xmlrpc/work XDG_CONFIG_HOME=/wrkdirs/usr/ports/net/php70-xmlrpc/work HOME=/wrkdirs/usr/ports/net/php70-xmlrpc/work TMPDIR="/tmp" SHELL=/bin/sh CONFIG_SHELL=/bin/sh AUTOCONF=/usr/local/bin/autoconf-2.69 AUTOCONF_DIR=/usr/local/share/autoconf-2.69 AUTOHEADER=/usr/local/bin/autoheader-2.69 AUTOIFNAMES=/usr/local/bin/ifnames-2.69 AUTOM4TE=/usr/local/bin/autom4te-2.69 AUTORECONF=/usr/local/bin/autoreconf-2.69 AUTOSCAN=/usr/local/bin/autoscan-2.69 AUTOUPDATE=/usr/local/bin/autoupdate-2.69 AUTOCONF_VERSION=2.69 CONFIG_SITE=/usr/ports/Templates/config.site lt_cv_sys_max_cmd_len=262144 --End CONFIGURE_ENV-- --MAKE_ENV-- XDG_DATA_HOME=/wrkdirs/usr/ports/net/php70-xmlrpc/work XDG_CONFIG_HOME=/wrkdirs/usr/ports/net/php70-xmlrpc/work HOME=/wrkdirs/usr/ports/net/php70-xmlrpc/work TMPDIR="/tmp" NO_PIE=yes MK_DEBUG_FILES=no MK_KERNEL_SYMBOLS=no SHELL=/bin/sh NO_LINT=YES AUTOCONF=/usr/local/bin/autoconf-2.69 AUTOCONF_DIR=/usr/local/share/autoconf-2.69 AUTOHEADER=/usr/local/bin/autoheader-2.69 AUTOIFNAMES=/usr/local/bin/ifnames-2.69 AUTOM4TE=/usr/local/bin/autom4te-2.69 AUTORECONF=/usr/local/bin/autoreconf-2.69 AUTOSCAN=/usr/local/bin/autoscan-2.69 AUTOUPDATE=/usr/local/bin/autoupdate-2.69 AUTOCONF_VERSION=2.69 PREFIX=/usr/local LOCALBASE=/usr/local LIBDIR="/usr/lib" CC="cc" CFLAGS="-O2 -pipe -fstack-protector -fno-strict-aliasing" CPP="cpp" CPPFLAGS="" LDFLAGS=" -fstack-protector" LIBS="" CXX="c++" CXXFLAGS="-O2 -pipe -fstack-protector -fno-strict-aliasing " MANPREFIX="/usr/local" BSD_INSTALL_PROGRAM="install -s -m 555" BSD_INSTALL_LIB="install -s -m 444" BSD_INSTALL_SCRIPT="install -m 555" BSD_INSTALL_DATA="install -m 0644" BSD_INSTALL_MAN="install -m 444" --End MAKE_ENV-- --PLIST_SUB-- PHP_EXT_DIR=20151012 GTK2_VERSION="2.10.0" GTK3_VERSION="3.0.0" OSREL=11.0 PREFIX=%D LOCALBASE=/usr/local RESETPREFIX=/usr/local PORTDOCS="@comment " PORTEXAMPLES="" LIB32DIR=lib DOCSDIR="share/doc/php70" EXAMPLESDIR="share/examples/php70" DATADIR="share/php70" WWWDIR="www/php70" ETCDIR="etc/php70" --End PLIST_SUB-- --SUB_LIST-- PHP_EXT_DIR=20151012 PREFIX=/usr/local LOCALBASE=/usr/local DATADIR=/usr/local/share/php70 DOCSDIR=/usr/local/share/doc/php70 EXAMPLESDIR=/usr/local/share/examples/php70 WWWDIR=/usr/local/www/php70 ETCDIR=/usr/local/etc/php70 --End SUB_LIST-- ---Begin make.conf--- USE_PACKAGE_DEPENDS=yes BATCH=yes WRKDIRPREFIX=/wrkdirs PORTSDIR=/usr/ports PACKAGES=/packages DISTDIR=/distfiles #### /usr/local/etc/poudriere.d/11_0-amd64-2016Q4-php70-mariadb101-make.conf #### WITH_PKGNG=yes INSTALL_NODEBUG="yes" A4=yes WITH_UTF8=yes WITHOUT_X11=yes WITHOUT_X=yes OPTIONS_UNSET=X11 NO_PROFILE=true #APACHE_PORT=www/apache24 DEFAULT_VERSIONS=php=7.0 mysql=10.1m apache=2.4 ruby=2.3 pgsql=9.5 perl5=5.24 python=2.7 # deprecated: NOPORTDOCS=yes OPTIONS_UNSET=DOCS #SUEXEC_DOCROOT=/home #SUEXEC_UIDMIN=80 #SUEXEC_GIDMIN=80 DISABLE_MAKE_JOBS=poudriere ---End make.conf--- =======================<phase: check-sanity >============================ /!\ WARNING /!\ You are using the following deprecated options: NOPORTDOCS If you added them on the command line, you should replace them by WITH="" WITHOUT="DOCS" If they are global options set in your make.conf, you should replace them with: OPTIONS_UNSET=DOCS If they are local to this port, you should use: net_php70-xmlrpc_UNSET=DOCS ===> License PHP301 accepted by the user =========================================================================== =======================<phase: pkg-depends >============================ ===> php70-xmlrpc-7.0.13 depends on file: /usr/local/sbin/pkg - not found ===> Installing existing package /packages/All/pkg-1.8.8.txz [11_0-amd64-2016Q4-php70-mariadb101-job-03] Installing pkg-1.8.8... [11_0-amd64-2016Q4-php70-mariadb101-job-03] Extracting pkg-1.8.8: .......... done ===> php70-xmlrpc-7.0.13 depends on file: /usr/local/sbin/pkg - found ===> Returning to build of php70-xmlrpc-7.0.13 =========================================================================== =======================<phase: fetch-depends >============================ =========================================================================== =======================<phase: fetch >============================ /!\ WARNING /!\ You are using the following deprecated options: NOPORTDOCS If you added them on the command line, you should replace them by WITH="" WITHOUT="DOCS" If they are global options set in your make.conf, you should replace them with: OPTIONS_UNSET=DOCS If they are local to this port, you should use: net_php70-xmlrpc_UNSET=DOCS ===> License PHP301 accepted by the user ===> Fetching all distfiles required by php70-xmlrpc-7.0.13 for building =========================================================================== =======================<phase: checksum >============================ /!\ WARNING /!\ You are using the following deprecated options: NOPORTDOCS If you added them on the command line, you should replace them by WITH="" WITHOUT="DOCS" If they are global options set in your make.conf, you should replace them with: OPTIONS_UNSET=DOCS If they are local to this port, you should use: net_php70-xmlrpc_UNSET=DOCS ===> License PHP301 accepted by the user ===> Fetching all distfiles required by php70-xmlrpc-7.0.13 for building => SHA256 Checksum OK for php-7.0.13.tar.xz. =========================================================================== =======================<phase: extract-depends>============================ =========================================================================== =======================<phase: extract >============================ /!\ WARNING /!\ You are using the following deprecated options: NOPORTDOCS If you added them on the command line, you should replace them by WITH="" WITHOUT="DOCS" If they are global options set in your make.conf, you should replace them with: OPTIONS_UNSET=DOCS If they are local to this port, you should use: net_php70-xmlrpc_UNSET=DOCS ===> License PHP301 accepted by the user ===> Fetching all distfiles required by php70-xmlrpc-7.0.13 for building ===> Extracting for php70-xmlrpc-7.0.13 => SHA256 Checksum OK for php-7.0.13.tar.xz. =========================================================================== =======================<phase: patch-depends >============================ =========================================================================== =======================<phase: patch >============================ ===> Patching for php70-xmlrpc-7.0.13 ===> Applying FreeBSD patches for php70-xmlrpc-7.0.13 =========================================================================== =======================<phase: build-depends >============================ ===> php70-xmlrpc-7.0.13 depends on file: /usr/local/bin/phpize - not found ===> Installing existing package /packages/All/php70-7.0.13.txz [11_0-amd64-2016Q4-php70-mariadb101-job-03] Installing php70-7.0.13... [11_0-amd64-2016Q4-php70-mariadb101-job-03] `-- Installing libxml2-2.9.4... [11_0-amd64-2016Q4-php70-mariadb101-job-03] `-- Extracting libxml2-2.9.4: .......... done [11_0-amd64-2016Q4-php70-mariadb101-job-03] `-- Installing pcre-8.39... [11_0-amd64-2016Q4-php70-mariadb101-job-03] `-- Extracting pcre-8.39: .......... done [11_0-amd64-2016Q4-php70-mariadb101-job-03] Extracting php70-7.0.13: .......... done ===> php70-xmlrpc-7.0.13 depends on file: /usr/local/bin/phpize - found ===> Returning to build of php70-xmlrpc-7.0.13 ===> php70-xmlrpc-7.0.13 depends on file: /usr/local/bin/autoconf-2.69 - not found ===> Installing existing package /packages/All/autoconf-2.69_1.txz [11_0-amd64-2016Q4-php70-mariadb101-job-03] Installing autoconf-2.69_1... [11_0-amd64-2016Q4-php70-mariadb101-job-03] `-- Installing indexinfo-0.2.5... [11_0-amd64-2016Q4-php70-mariadb101-job-03] `-- Extracting indexinfo-0.2.5: .... done [11_0-amd64-2016Q4-php70-mariadb101-job-03] `-- Installing autoconf-wrapper-20131203... [11_0-amd64-2016Q4-php70-mariadb101-job-03] `-- Extracting autoconf-wrapper-20131203: ........ done [11_0-amd64-2016Q4-php70-mariadb101-job-03] `-- Installing perl5-5.24.1.r4... [11_0-amd64-2016Q4-php70-mariadb101-job-03] `-- Extracting perl5-5.24.1.r4: .......... done [11_0-amd64-2016Q4-php70-mariadb101-job-03] `-- Installing m4-1.4.17_1,1... [11_0-amd64-2016Q4-php70-mariadb101-job-03] `-- Extracting m4-1.4.17_1,1: .......... done [11_0-amd64-2016Q4-php70-mariadb101-job-03] Extracting autoconf-2.69_1: .......... done Message from perl5-5.24.1.r4: The /usr/bin/perl symlink has been removed starting with Perl 5.20. For shebangs, you should either use: #!/usr/local/bin/perl or #!/usr/bin/env perl The first one will only work if you have a /usr/local/bin/perl, the second will work as long as perl is in PATH. ===> php70-xmlrpc-7.0.13 depends on file: /usr/local/bin/autoconf-2.69 - found ===> Returning to build of php70-xmlrpc-7.0.13 ===> php70-xmlrpc-7.0.13 depends on file: /usr/local/lib/php/20151012/xml.so - not found ===> Installing existing package /packages/All/php70-xml-7.0.13.txz [11_0-amd64-2016Q4-php70-mariadb101-job-03] Installing php70-xml-7.0.13... [11_0-amd64-2016Q4-php70-mariadb101-job-03] Extracting php70-xml-7.0.13: ........ done Message from php70-xml-7.0.13: **************************************************************************** The following line has been added to your /usr/local/etc/php/ext-20-xml.ini configuration file to automatically load the installed extension: extension=xml.so **************************************************************************** ===> php70-xmlrpc-7.0.13 depends on file: /usr/local/lib/php/20151012/xml.so - not found *** Error code 1 Stop. make: stopped in /usr/ports/net/php70-xmlrpc ====>> Cleaning up wrkdir ===> Cleaning for php70-xmlrpc-7.0.13 build of net/php70-xmlrpc ended at Sun Nov 27 01:47:37 CET 2016 build time: 00:00:51 !!! build failure encountered !!! because the path is somewhat different if you have ZTS enabled. root@bsd1-build-prod:/usr/local/poudriere/data/packages/11_0-amd64-2016Q4-php70-mariadb101/All # tar -Jtvf php70-xml-7.0.13.txz -rw-r--r-- 0 root wheel 1348 Jan 1 1970 +COMPACT_MANIFEST -rw-r--r-- 0 root wheel 2670 Jan 1 1970 +MANIFEST -rw-r--r-- 0 root wheel 185 Nov 27 00:45 /usr/local/share/licenses/php70-xml-7.0.13/catalog.mk -rw-r--r-- 0 root wheel 70 Nov 27 00:45 /usr/local/share/licenses/php70-xml-7.0.13/LICENSE -rw-r--r-- 0 root wheel 3218 Nov 27 00:45 /usr/local/share/licenses/php70-xml-7.0.13/PHP301 -r--r--r-- 0 root wheel 52664 Nov 27 00:45 /usr/local/lib/php/20151012-zts/xml.so -rw-r--r-- 0 root wheel 4640 Nov 27 00:45 /usr/local/include/php/ext/xml/php_xml.h -rw-r--r-- 0 root wheel 313 Nov 27 00:45 /usr/local/include/php/ext/xml/config.h -rw-r--r-- 0 root wheel 6493 Nov 27 00:45 /usr/local/include/php/ext/xml/expat_compat.h -rw-r--r-- 0 root wheel 17 Nov 27 00:45 /usr/local/etc/php/ext-20-xml.ini I think this has happened before, but I can't remember what fixed it. @Rainer, Using "category/port:" in this case "lang/php70:" at the beginning of a Summary/Title when creating a new issue ensures that it gets assigned to the correct MAINTAINER automatically. Please also include long bodies of text (like build or error logs, configuration files, etc) as attachments instead of pasting them as comments, as it makes the issue much easier to follow. I'm really sorry. I hit "return" too early and the PR was nearly empty. Then, I was a bit in a hurry to fill it with actual data... Thanks for the report, i will have a look at it! Also found this: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=214979 See also Bug 214979 for lang/php56. It seems to be the same issue when used with poudriere. Ups, sorry, didn't see that some has already referenced the PR I filed. The problem occurs in my case when ports are build via poudriere. Building ports manually do not show the incident. Was not fixed by recent update to 7.0.14. Unfortunately. Alternatively, somebody tell me if I can stop using the ZTS option when I'm using PHP-FPM (which I do, exclusively). Documentation about when the ZTS-option is needed is very scarce. I found a solution for this (it's mentioned in bsd.php.mk) One needs to add WITH_MPM=event to the make.conf file of the build. Then it works. Maybe this can somehow be added to the port itself? (In reply to rainer from comment #9) > I found a solution for this (it's mentioned in bsd.php.mk) And i found the exact same solution 1 hour ago and was so happy. Now you were faster. :D But i will take your suggestion and add a notice to the port. Nobody should need to dig into the framework code to find the answer. It's mentioned here: https://github.com/miwi-fbsd/miwi-ports/issues/7 (bottom). I knew I had seen it before. But I didn't need the option with Apache 2.2. With Apache 2.2 being on the way out, I finally needed to switch to Apache 2.4... Thanks for maintaining the php7 port. Interesting, i grepped it from here: http://svn.freebsd.org/ports/head/Mk/Uses/php.mk Will add a message today, so hopefully the confusion goes away. :) Thanks for your help! A commit references this bug: Author: tz Date: Wed Dec 21 10:10:58 UTC 2016 New revision: 429051 URL: https://svnweb.freebsd.org/changeset/ports/429051 Log: lang/php70: add notice for poudriere build when ZTS is enabled Without adding WITH_MPM=event into make.conf the build will fail when using poudriere. This is currently documentend in /Mk/Uses/php.mk. Since users do not investigate the framework code, we add the notice to avoid future confusion. PR: 214943 Reported by: rainer@ultra-secure.de, ohartmann@walstatt.org Approved by: mentors (implicit) Changes: head/lang/php70/pkg-message.mod Message committed, thanks for your help! :) |