php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #75115 make: *** No rule to make target 'prof-gen'. Stop.
Submitted: 2017-08-24 19:42 UTC Modified: 2017-11-05 04:22 UTC
Votes:3
Avg. Score:3.3 ± 1.2
Reproduced:3 of 3 (100.0%)
Same Version:2 (66.7%)
Same OS:0 (0.0%)
From: spam2 at rhsoft dot net Assigned:
Status: No Feedback Package: *Compile Issues
PHP Version: 7.1Git-2017-08-24 (Git) OS:
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: spam2 at rhsoft dot net
New email:
PHP Version: OS:

 

 [2017-08-24 19:42 UTC] spam2 at rhsoft dot net
Description:
------------
https://git.php.net/?p=php-src.git;a=snapshot;h=c449057808d360f0b6e0a42d59cd6743fa9380a8;sf=tgz

seriously?

+ test 0 '!=' 0
+ make --quiet -j8 prof-gen
make: *** No rule to make target 'prof-gen'.  Stop.
error: Bad exit status from /var/tmp/rpm-tmp.pW7buQ (%build)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.pW7buQ (%build)



Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2017-08-25 15:28 UTC] cmb@php.net
-Status: Open +Status: Feedback -Assigned To: +Assigned To: cmb
 [2017-08-25 15:28 UTC] cmb@php.net
That works for me. Please double-check that ./buildconf and
./configure did not fail, and that the download was not corrupt.
 [2017-08-25 15:37 UTC] spam2 at rhsoft dot net
indeed configure fails

autoheader: 'configure.ac' and 'configure.in' both present.
autoheader: proceeding with 'configure.ac'
autoheader: error: AC_CONFIG_HEADERS not found in configure.ac
______________________________

is that dance still not enough?

# force use of system libtool and regenerate configure scripts
libtoolize --force --copy --quiet
cat `aclocal --print-ac-dir`/{libtool,ltoptions,ltsugar,ltversion,lt~obsolete}.m4 > build/libtool.m4
touch configure.ac
./buildconf --force
______________________________

[builduser@testserver:/rpmbuild/SPECS]$ rpmbuild -bb php.spec 
Ausführung(%prep): /bin/sh -e /var/tmp/rpm-tmp.jE00ME
+ umask 022
+ cd /home/builduser/rpmbuild/BUILD
+ export LANG=C
+ LANG=C
+ cd /home/builduser/rpmbuild/BUILD
+ rm -rf php-7.1.9
+ /usr/bin/xz -dc /home/builduser/rpmbuild/SOURCES/php-7.1.9.tar.xz
+ /usr/bin/tar -xof -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd php-7.1.9
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ echo 'Patch #1 (php-realpath-cache-openbasedir.patch):'
Patch #1 (php-realpath-cache-openbasedir.patch):
+ /usr/bin/patch --no-backup-if-mismatch -p1 -b --suffix .realpath --fuzz=0
patching file main/main.c
+ echo 'Patch #3 (php-71-systzdata.patch):'
Patch #3 (php-71-systzdata.patch):
+ /usr/bin/patch --no-backup-if-mismatch -p1 -b --suffix .systzdata-71 --fuzz=0
patching file ext/date/lib/parse_tz.c
patching file ext/date/lib/timelib.m4
+ '[' -f /usr/bin/php ']'
+ /usr/bin/php Zend/zend_vm_gen.php --with-vm-kind=CALL
zend_vm_opcodes.h generated successfully.
zend_vm_opcodes.c generated successfully.
zend_vm_execute.h generated successfully.
+ rm -f TSRM/tsrm_win32.h TSRM/tsrm_config.w32.h Zend/zend_config.w32.h ext/mysqlnd/config-win.h ext/standard/winver.h main/win32_internal_function_disabled.h main/win95nt.h
+ find . -name '*.[ch]' -exec chmod 644 '{}' ';'
+ xargs rm -f
+ rm -rf ext/openssl/tests/
+ exit 0
Ausführung(%build): /bin/sh -e /var/tmp/rpm-tmp.P6E2Ia
+ umask 022
+ cd /home/builduser/rpmbuild/BUILD
+ cd php-7.1.9
+ export LANG=C
+ LANG=C
+ libtoolize --force --copy --quiet
++ aclocal --print-ac-dir
++ aclocal --print-ac-dir
++ aclocal --print-ac-dir
++ aclocal --print-ac-dir
++ aclocal --print-ac-dir
+ cat /usr/share/aclocal/libtool.m4 /usr/share/aclocal/ltoptions.m4 /usr/share/aclocal/ltsugar.m4 /usr/share/aclocal/ltversion.m4 /usr/share/aclocal/lt~obsolete.m4
+ touch configure.ac
+ ./buildconf --force
Forcing buildconf
Removing configure caches
buildconf: checking installation...
buildconf: autoconf version 2.69 (ok)
rebuilding aclocal.m4
rebuilding configure
autoconf: warning: both `configure.ac' and `configure.in' are present.
autoconf: warning: proceeding with `configure.ac'.
rebuilding main/php_config.h.in
autoheader: 'configure.ac' and 'configure.in' both present.
autoheader: proceeding with 'configure.ac'
autoheader: error: AC_CONFIG_HEADERS not found in configure.ac
+ QUIET_FLAG=--quiet
+ export 'CFLAGS=-m64 -O3 -mfpmath=sse -mavx -msse2avx -march=sandybridge -mtune=sandybridge -D_FORTIFY_SOURCE=2 -fdevirtualize-speculatively -fgraphite-identity -fipa-pta -fira-loop-pressure -fivopts -floop-block -floop-unroll-and-jam -fmerge-all-constants -fomit-frame-pointer -fsemantic-interposition -fstack-protector --param=ssp-buffer-size=8 -fstrict-aliasing -ftree-loop-distribution -ftree-loop-if-convert -ftree-loop-if-convert-stores -ftree-loop-im -ftree-loop-ivcanon -fvariable-expansion-in-unroller -fvect-cost-model=unlimited -fwrapv -g0 -minline-all-stringops -pipe -fno-align-labels -fno-exceptions -fno-gcse -fno-math-errno -fuse-ld=gold -fuse-linker-plugin -Wformat -Werror=format-security -Wno-stack-protector -Wstrict-aliasing -Wa,--noexecstack'
+ CFLAGS='-m64 -O3 -mfpmath=sse -mavx -msse2avx -march=sandybridge -mtune=sandybridge -D_FORTIFY_SOURCE=2 -fdevirtualize-speculatively -fgraphite-identity -fipa-pta -fira-loop-pressure -fivopts -floop-block -floop-unroll-and-jam -fmerge-all-constants -fomit-frame-pointer -fsemantic-interposition -fstack-protector --param=ssp-buffer-size=8 -fstrict-aliasing -ftree-loop-distribution -ftree-loop-if-convert -ftree-loop-if-convert-stores -ftree-loop-im -ftree-loop-ivcanon -fvariable-expansion-in-unroller -fvect-cost-model=unlimited -fwrapv -g0 -minline-all-stringops -pipe -fno-align-labels -fno-exceptions -fno-gcse -fno-math-errno -fuse-ld=gold -fuse-linker-plugin -Wformat -Werror=format-security -Wno-stack-protector -Wstrict-aliasing -Wa,--noexecstack'
+ export 'CC=gcc -m64 -O3 -mfpmath=sse -mavx -msse2avx -march=sandybridge -mtune=sandybridge -D_FORTIFY_SOURCE=2 -fdevirtualize-speculatively -fgraphite-identity -fipa-pta -fira-loop-pressure -fivopts -floop-block -floop-unroll-and-jam -fmerge-all-constants -fomit-frame-pointer -fsemantic-interposition -fstack-protector --param=ssp-buffer-size=8 -fstrict-aliasing -ftree-loop-distribution -ftree-loop-if-convert -ftree-loop-if-convert-stores -ftree-loop-im -ftree-loop-ivcanon -fvariable-expansion-in-unroller -fvect-cost-model=unlimited -fwrapv -g0 -minline-all-stringops -pipe -fno-align-labels -fno-exceptions -fno-gcse -fno-math-errno -fuse-ld=gold -fuse-linker-plugin -Wformat -Werror=format-security -Wno-stack-protector -Wstrict-aliasing -Wa,--noexecstack'
+ CC='gcc -m64 -O3 -mfpmath=sse -mavx -msse2avx -march=sandybridge -mtune=sandybridge -D_FORTIFY_SOURCE=2 -fdevirtualize-speculatively -fgraphite-identity -fipa-pta -fira-loop-pressure -fivopts -floop-block -floop-unroll-and-jam -fmerge-all-constants -fomit-frame-pointer -fsemantic-interposition -fstack-protector --param=ssp-buffer-size=8 -fstrict-aliasing -ftree-loop-distribution -ftree-loop-if-convert -ftree-loop-if-convert-stores -ftree-loop-im -ftree-loop-ivcanon -fvariable-expansion-in-unroller -fvect-cost-model=unlimited -fwrapv -g0 -minline-all-stringops -pipe -fno-align-labels -fno-exceptions -fno-gcse -fno-math-errno -fuse-ld=gold -fuse-linker-plugin -Wformat -Werror=format-security -Wno-stack-protector -Wstrict-aliasing -Wa,--noexecstack'
+ export 'CXXFLAGS=-m64 -O3 -mfpmath=sse -mavx -msse2avx -march=sandybridge -mtune=sandybridge -D_FORTIFY_SOURCE=2 -fdevirtualize-speculatively -fgraphite-identity -fipa-pta -fira-loop-pressure -fivopts -floop-block -floop-unroll-and-jam -fmerge-all-constants -fomit-frame-pointer -fsemantic-interposition -fstack-protector --param=ssp-buffer-size=8 -fstrict-aliasing -ftree-loop-distribution -ftree-loop-if-convert -ftree-loop-if-convert-stores -ftree-loop-im -ftree-loop-ivcanon -fvariable-expansion-in-unroller -fvect-cost-model=unlimited -fwrapv -g0 -minline-all-stringops -pipe -fno-align-labels -fno-exceptions -fno-gcse -fno-math-errno -fuse-ld=gold -fuse-linker-plugin -Wformat -Werror=format-security -Wno-stack-protector -Wstrict-aliasing -Wa,--noexecstack'
+ CXXFLAGS='-m64 -O3 -mfpmath=sse -mavx -msse2avx -march=sandybridge -mtune=sandybridge -D_FORTIFY_SOURCE=2 -fdevirtualize-speculatively -fgraphite-identity -fipa-pta -fira-loop-pressure -fivopts -floop-block -floop-unroll-and-jam -fmerge-all-constants -fomit-frame-pointer -fsemantic-interposition -fstack-protector --param=ssp-buffer-size=8 -fstrict-aliasing -ftree-loop-distribution -ftree-loop-if-convert -ftree-loop-if-convert-stores -ftree-loop-im -ftree-loop-ivcanon -fvariable-expansion-in-unroller -fvect-cost-model=unlimited -fwrapv -g0 -minline-all-stringops -pipe -fno-align-labels -fno-exceptions -fno-gcse -fno-math-errno -fuse-ld=gold -fuse-linker-plugin -Wformat -Werror=format-security -Wno-stack-protector -Wstrict-aliasing -Wa,--noexecstack'
+ export 'CXX=gcc -m64 -O3 -mfpmath=sse -mavx -msse2avx -march=sandybridge -mtune=sandybridge -D_FORTIFY_SOURCE=2 -fdevirtualize-speculatively -fgraphite-identity -fipa-pta -fira-loop-pressure -fivopts -floop-block -floop-unroll-and-jam -fmerge-all-constants -fomit-frame-pointer -fsemantic-interposition -fstack-protector --param=ssp-buffer-size=8 -fstrict-aliasing -ftree-loop-distribution -ftree-loop-if-convert -ftree-loop-if-convert-stores -ftree-loop-im -ftree-loop-ivcanon -fvariable-expansion-in-unroller -fvect-cost-model=unlimited -fwrapv -g0 -minline-all-stringops -pipe -fno-align-labels -fno-exceptions -fno-gcse -fno-math-errno -fuse-ld=gold -fuse-linker-plugin -Wformat -Werror=format-security -Wno-stack-protector -Wstrict-aliasing -Wa,--noexecstack'
+ CXX='gcc -m64 -O3 -mfpmath=sse -mavx -msse2avx -march=sandybridge -mtune=sandybridge -D_FORTIFY_SOURCE=2 -fdevirtualize-speculatively -fgraphite-identity -fipa-pta -fira-loop-pressure -fivopts -floop-block -floop-unroll-and-jam -fmerge-all-constants -fomit-frame-pointer -fsemantic-interposition -fstack-protector --param=ssp-buffer-size=8 -fstrict-aliasing -ftree-loop-distribution -ftree-loop-if-convert -ftree-loop-if-convert-stores -ftree-loop-im -ftree-loop-ivcanon -fvariable-expansion-in-unroller -fvect-cost-model=unlimited -fwrapv -g0 -minline-all-stringops -pipe -fno-align-labels -fno-exceptions -fno-gcse -fno-math-errno -fuse-ld=gold -fuse-linker-plugin -Wformat -Werror=format-security -Wno-stack-protector -Wstrict-aliasing -Wa,--noexecstack'
+ export 'SH_LDFLAGS=-Wl,--as-needed -Wl,-z,now -Wl,-z,relro -Wl,-z,noexecstack -Wl,-z,nodump -m64 -O3 -mfpmath=sse -mavx -msse2avx -march=sandybridge -mtune=sandybridge -D_FORTIFY_SOURCE=2 -fdevirtualize-speculatively -fgraphite-identity -fipa-pta -fira-loop-pressure -fivopts -floop-block -floop-unroll-and-jam -fmerge-all-constants -fomit-frame-pointer -fsemantic-interposition -fstack-protector --param=ssp-buffer-size=8 -fstrict-aliasing -ftree-loop-distribution -ftree-loop-if-convert -ftree-loop-if-convert-stores -ftree-loop-im -ftree-loop-ivcanon -fvariable-expansion-in-unroller -fvect-cost-model=unlimited -fwrapv -g0 -minline-all-stringops -pipe -fno-align-labels -fno-exceptions -fno-gcse -fno-math-errno -fuse-ld=gold -fuse-linker-plugin -Wformat -Werror=format-security -Wno-stack-protector -Wstrict-aliasing -Wa,--noexecstack'
+ SH_LDFLAGS='-Wl,--as-needed -Wl,-z,now -Wl,-z,relro -Wl,-z,noexecstack -Wl,-z,nodump -m64 -O3 -mfpmath=sse -mavx -msse2avx -march=sandybridge -mtune=sandybridge -D_FORTIFY_SOURCE=2 -fdevirtualize-speculatively -fgraphite-identity -fipa-pta -fira-loop-pressure -fivopts -floop-block -floop-unroll-and-jam -fmerge-all-constants -fomit-frame-pointer -fsemantic-interposition -fstack-protector --param=ssp-buffer-size=8 -fstrict-aliasing -ftree-loop-distribution -ftree-loop-if-convert -ftree-loop-if-convert-stores -ftree-loop-im -ftree-loop-ivcanon -fvariable-expansion-in-unroller -fvect-cost-model=unlimited -fwrapv -g0 -minline-all-stringops -pipe -fno-align-labels -fno-exceptions -fno-gcse -fno-math-errno -fuse-ld=gold -fuse-linker-plugin -Wformat -Werror=format-security -Wno-stack-protector -Wstrict-aliasing -Wa,--noexecstack'
+ export 'LDFLAGS=-Wl,--as-needed -Wl,-z,now -Wl,-z,relro -Wl,-z,noexecstack -Wl,-z,nodump -m64 -O3 -mfpmath=sse -mavx -msse2avx -march=sandybridge -mtune=sandybridge -D_FORTIFY_SOURCE=2 -fdevirtualize-speculatively -fgraphite-identity -fipa-pta -fira-loop-pressure -fivopts -floop-block -floop-unroll-and-jam -fmerge-all-constants -fomit-frame-pointer -fsemantic-interposition -fstack-protector --param=ssp-buffer-size=8 -fstrict-aliasing -ftree-loop-distribution -ftree-loop-if-convert -ftree-loop-if-convert-stores -ftree-loop-im -ftree-loop-ivcanon -fvariable-expansion-in-unroller -fvect-cost-model=unlimited -fwrapv -g0 -minline-all-stringops -pipe -fno-align-labels -fno-exceptions -fno-gcse -fno-math-errno -fuse-ld=gold -fuse-linker-plugin -Wformat -Werror=format-security -Wno-stack-protector -Wstrict-aliasing -Wa,--noexecstack -pie -fPIE'
+ LDFLAGS='-Wl,--as-needed -Wl,-z,now -Wl,-z,relro -Wl,-z,noexecstack -Wl,-z,nodump -m64 -O3 -mfpmath=sse -mavx -msse2avx -march=sandybridge -mtune=sandybridge -D_FORTIFY_SOURCE=2 -fdevirtualize-speculatively -fgraphite-identity -fipa-pta -fira-loop-pressure -fivopts -floop-block -floop-unroll-and-jam -fmerge-all-constants -fomit-frame-pointer -fsemantic-interposition -fstack-protector --param=ssp-buffer-size=8 -fstrict-aliasing -ftree-loop-distribution -ftree-loop-if-convert -ftree-loop-if-convert-stores -ftree-loop-im -ftree-loop-ivcanon -fvariable-expansion-in-unroller -fvect-cost-model=unlimited -fwrapv -g0 -minline-all-stringops -pipe -fno-align-labels -fno-exceptions -fno-gcse -fno-math-errno -fuse-ld=gold -fuse-linker-plugin -Wformat -Werror=format-security -Wno-stack-protector -Wstrict-aliasing -Wa,--noexecstack -pie -fPIE'
+ export EXTENSION_DIR=/usr/lib64/php/modules
+ EXTENSION_DIR=/usr/lib64/php/modules
+ ./configure --quiet --host=x86_64-redhat-linux --build=x86_64-redhat-linux --target=x86_64-redhat-linux --prefix=/usr --program-prefix= --libdir=/usr/lib64/php --disable-all --disable-dependency-tracking --enable-bcmath=shared --enable-calendar=shared --enable-cli --enable-ctype=shared --enable-dom=shared --enable-exif=shared --enable-fileinfo=shared --enable-filter --enable-hash=shared --enable-huge-code-pages --enable-inline-optimization --enable-intl=shared --enable-json=shared --enable-libxml --enable-mbregex --enable-mbstring=shared --enable-mysqlnd=shared --enable-opcache=shared --enable-opcache-jit --enable-pcntl=shared --enable-pdo=shared --enable-phar=shared --enable-posix=shared --enable-re2c-cgoto --enable-session=shared --enable-shared --enable-simplexml=shared --enable-soap=shared --enable-sockets=shared --enable-tokenizer=shared --enable-xml=shared --enable-xmlreader=shared --enable-xmlwriter=shared --enable-zip=shared --with-apxs2=/usr/bin/apxs --with-bz2=shared,/usr --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.lounge.d --with-curl=shared,/usr --with-freetype-dir=/usr --with-gd=shared,/usr --with-gettext=shared,/usr --with-iconv=shared --with-imap-ssl=/usr --with-imap=shared,/usr --with-kerberos=/usr --with-layout=GNU --with-libdir=lib64 --with-libedit=shared,/usr --with-libxml-dir=/usr --with-libzip=/usr --with-mysql-sock=/var/lib/mysql/mysql.sock --with-mysqli=shared,mysqlnd --with-openssl=shared,/usr --with-pcre-jit --with-pcre-regex=/usr --with-pdo-mysql=shared,mysqlnd --with-pic --with-system-ciphers --with-system-tzdata --with-tidy=shared,/usr --with-zlib=shared --with-zlib-dir=/usr --disable-cgi --disable-dmalloc --disable-dtrace --disable-gcov --disable-gd-jis-conv --disable-ipv6 --disable-mysqlnd-compression-support --disable-opcache-file --disable-phpdbg --disable-rpath --disable-short-tags --disable-static --enable-gcc-global-regs --disable-debug
+ test 0 '!=' 0
+ make --quiet -j8 prof-gen
make: *** No rule to make target 'prof-gen'.  Stop.
Fehler: Fehler-Status beim Beenden von /var/tmp/rpm-tmp.P6E2Ia (%build)
 [2017-08-25 15:41 UTC] spam2 at rhsoft dot net
FWITW: that above is https://git.php.net/?p=php-src.git;a=snapshot;h=3641ba4332549f863b24f7190d4573525c936389;sf=tgz

"php-7.1.9" is just because i don't give much about the version of test builds, unpack the tarball, rename it and make a tar.xz because my rpm packages contain the current date/time in the release tag and so switch between builds is easier
 [2017-08-25 16:48 UTC] cmb@php.net
> autoheader: 'configure.ac' and 'configure.in' both present.

I'd start with this, and wouldn't even go further until I found
out why both files are there. Actually, the snapshot contains only
`configure.in` and that doesn't change after `./buildconf &&
./configure`. So, where does `configure.ac` come from?
 [2017-08-25 17:50 UTC] spam2 at rhsoft dot net
just read what I posted - dou you see the "touch configure.am" which was suggested by Remi on the internals list where I complained that 7.2 fails with libtool version errors, looks like that breaks 7.1

previously that line was "touch configure.in"

so I suggest that you get your house clean when it was possible to build every 7.o/7.1/HEAD including releases, snapshots and even the experimental JIT brunch from Zend without touch any single line in the php.spec except the version to find the tarball
 [2017-08-25 21:12 UTC] cmb@php.net
-Status: Feedback +Status: Open -Assigned To: cmb +Assigned To: remi
 [2017-08-25 21:12 UTC] cmb@php.net
> […] which was suggested by Remi on the internals list where I
> complained that 7.2 fails with libtool version errors, […]

For reference: <https://marc.info/?t=150325934500001&r=1&w=2>.

Remi, can you have a look at this issue, please.
 [2017-08-27 15:25 UTC] remi@php.net
Sorry but I cannot reproduce.

I have built all PHP versions as RPM since 5.0.0, including recent RC (7.1.9RC1, 7.0.23RC1, 7.2.0beta2, and 7.2.0-dev / cc577749a8c95e6f15f5a859961a995a82828c8e) using mostly the same spec file.
 [2017-08-27 17:29 UTC] spam2 at rhsoft dot net
this Bugreport is not about 7.1.9RC1-i included the part of the spec file dealing with libtool as well as a link to the used tarball, i build php for many years and that dance started recently
 [2017-08-27 18:48 UTC] spam2 at rhsoft dot net
fact is with PHP 7.1 snapshots when i revert your proposed change in the block below from "touch configure.ac" back to "touch configure.in" it builds as all the years before as well as it did a long time for 7.2.x without "libtool: Version mismatch error.  This is libtool 2.4.6" errors

# force use of system libtool and regenerate configure scripts
libtoolize --force --copy --quiet
cat `aclocal --print-ac-dir`/{libtool,ltoptions,ltsugar,ltversion,lt~obsolete}.m4 > build/libtool.m4
touch configure.ac
./buildconf --force
 [2017-09-05 06:22 UTC] remi@php.net
I definitively cannot reproduced.

I have recently built 7.0.23, 7.1.9, 7.2.0RC1. 
No issue.
 [2017-09-05 06:23 UTC] remi@php.net
-Status: Assigned +Status: Feedback -Assigned To: remi +Assigned To:
 [2017-09-05 08:20 UTC] spam2 at rhsoft dot net
and you did try to reproduce it with my build options as you can see them in the output of rpmbuild in this bugreport or just with some generic stuff?

[builduser@testserver:~]$ cat /rpmbuild/SPECS/php.spec 
Version: 7.1.10

# command 'rpmbuild -bb php.spec --with production' will tune for current hardware while default stays 'sandybridge'
# macro 'php_debug_build' is global (/home/builduser/.rpmmacros) and re-used for pecl-builds while 'debug_build' is local

%global dist          fc%fedora.%(echo $(/usr/bin/date +%Y%m%d.%H%M)).rh
%global phpver        7
%global runselftest   1
%global pgo_build     1
%global break_build   0
%global debug_build   0
%global extension_dir %{_libdir}/%{name}/modules
%global silent_build  1

%if %{?_with_production:1}%{!?_with_production:0}
 %global mtune native
 %global rpmsuffix native
 %global build_native_release 1
 %global optflags $(sed "s/sandybridge/native/g" <<< "%{optflags}")
%else
 %global mtune sandybridge
 %global rpmsuffix sandybridge
 %global build_native_release 0
%endif

%if %php_debug_build
 %global _include_minidebuginfo 1
 %global RH_CONFIGURE_DEBUG_OPTION enable-debug
 %global RH_STRIP_BINARY 0
 %global pgo_build 0
%else
 %if %debug_build
  %global _include_minidebuginfo 1
  %global RH_CONFIGURE_DEBUG_OPTION enable-debug
  %global RH_STRIP_BINARY 0
  %global pgo_build 0
 %else
  %global _include_minidebuginfo 0                                                                                                                                                                                 
  %global RH_CONFIGURE_DEBUG_OPTION disable-debug                                                                                                                                                                  
  %global RH_STRIP_BINARY 1                                                                                                                                                                                        
 %endif                                                                                                                                                                                                            
%endif                                                                                                                                                                                                             
                                                                                                                                                                                                                   
Summary:        PHP - CFLAGS: '-m64 -O3 -mfpmath=sse -mavx -msse2avx -march=%{mtune} -mtune=%{mtune} -D_FORTIFY_SOURCE=2 -fdevirtualize-speculatively -fgraphite-identity -fipa-pta -fira-loop-pressure -fivopts -floop-block -floop-unroll-and-jam -fmerge-all-constants -fomit-frame-pointer -fsemantic-interposition -fstack-protector --param=ssp-buffer-size=8 -fstrict-aliasing -ftree-loop-distribution -ftree-loop-if-convert -ftree-loop-if-convert-stores -ftree-loop-im -ftree-loop-ivcanon -fvariable-expansion-in-unroller -fvect-cost-model=unlimited -fwrapv -g0 -minline-all-stringops -pipe -fno-align-labels -fno-exceptions -fno-gcse -fno-math-errno -fuse-ld=gold -fuse-linker-plugin -fprofile-use -Wformat -Werror=format-security -Wno-stack-protector -Wstrict-aliasing -Wa,--noexecstack'                                                         
Name:           php                                                                                                                                                                                                
Release:        1.%{build_native_release}.%{?dist}.%{rpmsuffix}                                                                                                                                                    
License:        PHP/Zend/BSD
Group:          Development/Languages
URL:            https://secure.php.net/
Source0:        php-%{version}.tar.xz
Source1:        opcache-zendoptimizer.php
Source2:        php-httpd-dummy.conf
Source3:        php-disabled-autotests.txt
Source4:        php-test-dirs.txt
Source5:        php-debug.ini
Patch1:         php-70-realpath-cache-openbasedir.patch
Patch2:         php-71-realpath-cache-openbasedir.patch
Patch3:         php-70-systzdata.patch
Patch4:         php-71-systzdata.patch
BuildRequires:  autoconf, automake, binutils, bison, bzip2-devel, curl-devel, cyrus-sasl-devel, freetype-devel, gcc-c++
BuildRequires:  gd-devel, gettext-devel, httpd-devel, krb5-devel, libc-client-devel, libedit-devel, libicu-devel
BuildRequires:  libjpeg-turbo-devel, libpng-devel, libstdc++-devel, libtidy-devel, libtool-ltdl-devel, libxml2-devel
BuildRequires:  libzip-devel, openssl-devel, pam-devel, pcre-devel, perl, postfix, re2c, zlib-devel
Provides:       mod_%{name}
Requires:       %{name}-common

%description
PHP Scripting Language

%package        common
Summary:        common files

%package        cli
Summary:        command-line interface for php
Requires:       %{name}-common
Provides:       %{name}-cgi

%package        devel
Summary:        files needed for building extensions
Requires:       autoconf, automake, pcre-devel, re2c, %{name}-cli

%package        bcmath
Summary:        bcmath

%package        bz2
Summary:        bz2

%package        calendar
Summary:        calendar

%package        ctype
Summary:        ctype

%package        curl
Summary:        curl

%package        dom
Summary:        dom

%package        exif
Summary:        exif

%package        fileinfo
Summary:        fileinfo

%package        gd
Summary:        gd

%package        gettext
Summary:        gettext

%package        hash
Summary:        hash

%package        iconv
Summary:        iconv

%package        imap
Summary:        imap

%package        intl
Summary:        intl

%package        json
Summary:        json

%package        mbstring
Summary:        mbstring

%package        mysqli
Summary:        mysqli

%package        opcache
Summary:        opcache

%package        openssl
Summary:        openssl

%package        pcntl
Summary:        pcntl

%package        pdo
Summary:        pdo

%package        phar
Summary:        phar

%package        posix
Summary:        posix

%package        readline
Summary:        readline

%package        session
Summary:        session

%package        simplexml
Summary:        simplexml

%package        soap
Summary:        soap

%package        sockets
Summary:        socket

%package        tidy
Summary:        tidy

%package        tokenizer
Summary:        tokenizer

%package        xml
Summary:        xml

%package        xmlreader
Summary:        xmlreader

%package        xmlwriter
Summary:        xmlwriter

%package        zip
Summary:        zip

%package        zlib
Summary:        zlib

# https://bugzilla.redhat.com/show_bug.cgi?id=1371549
%description    bcmath
%description    bz2
%description    calendar
%description    cli
%description    common
%description    ctype
%description    curl
%description    devel
%description    dom
%description    exif
%description    fileinfo
%description    gd
%description    gettext
%description    hash
%description    iconv
%description    imap
%description    intl
%description    json
%description    mbstring
%description    mysqli
%description    opcache
%description    openssl
%description    pcntl
%description    pdo
%description    phar
%description    posix
%description    readline
%description    session
%description    simplexml
%description    soap
%description    sockets
%description    tidy
%description    tokenizer
%description    xml
%description    xmlreader
%description    xmlwriter
%description    zip
%description    zlib

%prep
export LANG=C
%setup -q -n php-%{version}
%if "%{version}" >= "7.1.0"
%patch2 -p1 -b .realpath-71
%patch4 -p1 -b .systzdata-71
%else
%patch1 -p1 -b .realpath-70
%patch3 -p1 -b .systzdata-70
%endif

# rebuild 'data_file.c' from current system libmagic starting with PHP 7.2 and when /usr/bin/php is installed
%if "%{version}" >= "7.2.0"
 if [ -f /usr/bin/php ]; then
  /usr/bin/php ext/fileinfo/create_data_file.php /usr/share/misc/magic.mgc > ext/fileinfo/data_file.c
 fi
%endif

# generate zend-vm when /usr/bin/php is installed
%if "%{version}" >= "7.2.0"
 if [ -f /usr/bin/php ]; then
  /usr/bin/php Zend/zend_vm_gen.php --with-vm-kind=HYBRID
 fi
%else
 if [ -f /usr/bin/php ]; then
  /usr/bin/php Zend/zend_vm_gen.php --with-vm-kind=CALL
 fi
%endif

# drop windows specific headers and fix bogus permissions
rm -f TSRM/tsrm_win32.h TSRM/tsrm_config.w32.h Zend/zend_config.w32.h ext/mysqlnd/config-win.h ext/standard/winver.h main/win32_internal_function_disabled.h main/win95nt.h
find . -name \*.[ch] -exec chmod 644 {} \;

# delete known failing or skipped tests
%if %runselftest
 xargs rm -f < %{SOURCE3}
 rm -rf ext/openssl/tests/
%else
 xargs rm -rf < %{SOURCE4}
%endif

%build
export LANG=C
# force use of system libtool and regenerate configure scripts
libtoolize --force --copy --quiet
cat `aclocal --print-ac-dir`/{libtool,ltoptions,ltsugar,ltversion,lt~obsolete}.m4 > build/libtool.m4
touch configure.in
./buildconf --force

# silence output
%if %silent_build
 QUIET_FLAG="--quiet"
%else
 QUIET_FLAG=""
%endif

# compiler and linker flags
%if %debug_build
 export CFLAGS="-m64 -O0 -g3"
%else
 %if %php_debug_build
  export CFLAGS="-m64 -O0 -g3"
 %else
   %if %pgo_build
    export CFLAGS="-m64 -O3 -mfpmath=sse -mavx -msse2avx -march=%{mtune} -mtune=%{mtune} -D_FORTIFY_SOURCE=2 -fdevirtualize-speculatively -fgraphite-identity -fipa-pta -fira-loop-pressure -fivopts -floop-block -floop-unroll-and-jam -fmerge-all-constants -fomit-frame-pointer -fsemantic-interposition -fstack-protector --param=ssp-buffer-size=8 -fstrict-aliasing -ftree-loop-distribution -ftree-loop-if-convert -ftree-loop-if-convert-stores -ftree-loop-im -ftree-loop-ivcanon -fvariable-expansion-in-unroller -fvect-cost-model=unlimited -fwrapv -g0 -minline-all-stringops -pipe -fno-align-labels -fno-exceptions -fno-gcse -fno-math-errno -fuse-ld=gold -fuse-linker-plugin -Wformat -Werror=format-security -Wno-stack-protector -Wstrict-aliasing -Wa,--noexecstack"
   %else
    export CFLAGS="-m64 -O3 -mfpmath=sse -mavx -msse2avx -march=%{mtune} -mtune=%{mtune} -D_FORTIFY_SOURCE=2 -fivopts -fmerge-all-constants -fomit-frame-pointer -fstack-protector --param=ssp-buffer-size=8 -fstrict-aliasing -fwrapv -fno-align-labels -fno-exceptions -fno-gcse -fno-gcse-after-reload -fno-inline-functions -fno-ipa-cp -fno-ipa-cp-clone -fno-ipa-pta -fno-math-errno -fno-peel-loops -fno-predictive-commoning -fno-semantic-interposition -fno-tree-loop-distribute-patterns -fno-tree-loop-distribution -fno-tree-loop-if-convert -fno-tree-loop-if-convert-stores -fno-tree-loop-im -fno-tree-loop-ivcanon -fno-unroll-loops -fno-unswitch-loops -fno-variable-expansion-in-unroller -g0 -minline-all-stringops -pipe -fuse-ld=gold -fuse-linker-plugin -Wformat -Werror=format-security -Wno-stack-protector -Wstrict-aliasing -Wa,--noexecstack"
   %endif
 %endif
%endif
export CC="gcc $CFLAGS"
export CXXFLAGS="$CFLAGS"
export CXX="gcc $CFLAGS"
export SH_LDFLAGS="-Wl,--as-needed -Wl,-z,now -Wl,-z,relro -Wl,-z,noexecstack -Wl,-z,nodump $CFLAGS"
export LDFLAGS="$SH_LDFLAGS -pie -fPIE"

# define extension directory
export EXTENSION_DIR=%{extension_dir}

# configure build process
./configure $QUIET_FLAG \
 --host=x86_64-redhat-linux \
 --build=x86_64-redhat-linux \
 --target=x86_64-redhat-linux \
 --prefix=%{_prefix} \
 --program-prefix= \
 --libdir=%{_libdir}/%{name} \
 --disable-all \
 --disable-dependency-tracking \
 --enable-bcmath=shared \
 --enable-calendar=shared \
 --enable-cli \
 --enable-ctype=shared \
 --enable-dom=shared \
 --enable-exif=shared \
 --enable-fileinfo=shared \
 --enable-filter \
 --enable-hash=shared \
 --enable-huge-code-pages \
 --enable-inline-optimization \
 --enable-intl=shared \
 --enable-json=shared \
 --enable-libxml \
 --enable-mbregex \
 --enable-mbstring=shared \
 --enable-mysqlnd=shared \
 --enable-opcache=shared \
 --enable-opcache-jit \
 --enable-pcntl=shared \
 --enable-pdo=shared \
 --enable-phar=shared \
 --enable-posix=shared \
 --enable-re2c-cgoto \
 --enable-session=shared \
 --enable-shared \
 --enable-simplexml=shared \
 --enable-soap=shared \
 --enable-sockets=shared \
 --enable-tokenizer=shared \
 --enable-xml=shared \
 --enable-xmlreader=shared \
 --enable-xmlwriter=shared \
 --enable-zip=shared \
 --with-apxs2=%{_bindir}/apxs \
 --with-bz2=shared,%{_prefix} \
 --with-config-file-path=%{_sysconfdir} \
 --with-config-file-scan-dir=%{_sysconfdir}/%{name}.lounge.d \
 --with-curl=shared,%{_prefix} \
 --with-freetype-dir=%{_prefix} \
 --with-gd=shared,%{_prefix} \
 --with-gettext=shared,%{_prefix} \
 --with-iconv=shared \
 --with-imap-ssl=%{_prefix} \
 --with-imap=shared,%{_prefix} \
 --with-kerberos=%{_prefix} \
 --with-layout=GNU \
 --with-libdir=%{_lib} \
 --with-libedit=shared,%{_prefix} \
 --with-libxml-dir=%{_prefix} \
 --with-libzip=%{_prefix} \
 --with-mysql-sock=%{_sharedstatedir}/mysql/mysql.sock \
 --with-mysqli=shared,mysqlnd \
 --with-openssl=shared,%{_prefix} \
 --with-pcre-jit \
 --with-pcre-regex=%{_prefix} \
 --with-pdo-mysql=shared,mysqlnd \
 --with-pic \
 --with-system-ciphers \
 --with-system-tzdata \
 --with-tidy=shared,%{_prefix} \
 --with-zlib=shared \
 --with-zlib-dir=%{_prefix} \
 --disable-cgi \
 --disable-dmalloc \
 --disable-dtrace \
 --disable-gcov \
 --disable-gd-jis-conv \
 --disable-ipv6 \
 --disable-mysqlnd-compression-support \
 --disable-opcache-file \
 --disable-phpdbg \
 --disable-rpath \
 --disable-short-tags \
 --disable-static \
 --enable-gcc-global-regs \
 --%{RH_CONFIGURE_DEBUG_OPTION}
if test $? != 0; then
 tail -500 config.log
 : configure failed
 exit 1
fi

# build php with 'profile-guided-optimization' when enabled
%if %pgo_build
 make $QUIET_FLAG %{?_smp_mflags} prof-gen
 /usr/bin/bash /rpmbuild/PHP-PGO/profile.sh --php_build $PWD
 make $QUIET_FLAG prof-clean
 make $QUIET_FLAG %{?_smp_mflags} prof-use
%else
 make $QUIET_FLAG %{?_smp_mflags}
%endif

# run profiling code for debug builds
%if %debug_build
 /usr/bin/bash /rpmbuild/PHP-PGO/profile.sh --php_build $PWD valgrind
%endif

# stop rpmbuild and output infos for usage of the temporary binaries
%if %break_build
 cp %{SOURCE5} "$PWD/php-debug.ini" > /dev/null
 EXTENSION_DIR="$PWD/modules"
 sed -i "s@__EXTENSION_DIR__@$EXTENSION_DIR@" "$PWD/php-debug.ini"
 echo -e "\n\n\e[1;31mBREAK-BUILD ENABLED\e[0m\n\n\e[1;32mPLEASE RUN:\e[0m    export PHP_INI_SCAN_DIR=$PWD\n\e[1;32mCLI-BINARY:\e[0m    $PWD/sapi/cli/php\n\e[1;32mAPACHE-MODULE:\e[0m $PWD/libs/libphp7.so\n\e[1;32mWEBSERVER:    \e[0m http://localhost:9001\n"
 /usr/bin/bash /rpmbuild/PHP-PGO/profile.sh  --php_build $PWD --webserveronly 1
 exit 1
%endif

# run test-suite when enabled
%if %runselftest
 ulimit -s 32712
 unset TZ LANG LC_ALL
 export LANG="C" TEST_PHP_EXECUTABLE="$PWD/sapi/cli/php" EXTENSION_DIR="$PWD/modules" PHP_INI_SCAN_DIR="$PWD/modules" PHP_INI_PATH="$PWD/tmp-php.ini" NO_INTERACTION=1 MALLOC_CHECK_=2 MYSQL_TEST_HOST="localhost" MYSQL_TEST_SOCKET="/var/lib/mysql/mysql.sock" MYSQL_TEST_PORT="3306" MYSQL_TEST_USER="php_autotest" MYSQL_TEST_PASSWD="php_autotest" MYSQL_TEST_DB="php_autotest" PDO_MYSQL_TEST_DSN="mysql:host=localhost;dbname=php_autotest" PDO_MYSQL_TEST_SOCKET="/var/lib/mysql/mysql.sock" PDO_MYSQL_TEST_USER="php_autotest" PDO_MYSQL_TEST_PASS="php_autotest" PDO_MYSQL_TEST_ENGINE="MyISAM"
 cp %{SOURCE5} "$PWD/tmp-php.ini" > /dev/null
 sed -i "s@__EXTENSION_DIR__@$EXTENSION_DIR@" "$PWD/tmp-php.ini"
 $TEST_PHP_EXECUTABLE -n -c $PWD/tmp-php.ini $PWD/run-tests.php -n -c $PWD/tmp-php.ini
 find /var/www/sessiondata -user builduser -delete
%endif

%install
export LANG=C
install -m 0755 -d %{buildroot}%{_sysconfdir} %{buildroot}%{_sysconfdir}/httpd/conf %{buildroot}%{_libdir}/httpd/modules %{buildroot}%{_datadir}/%{name}
install -m 0644 %{SOURCE1} %{buildroot}%{_datarootdir}/%{name}/zendoptimizer.php
install -m 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/httpd/conf/httpd.conf
INSTALL_ROOT=%{buildroot} make install

# remove unpackaged files
rm -rf %{buildroot}%{extension_dir}/*.a %{buildroot}%{_bindir}/{phptar} %{buildroot}%{_datadir}/pear %{buildroot}%{_libdir}/libphp%{phpver}.la %{buildroot}%{_mandir} %{buildroot}%{_sysconfdir}/httpd %{buildroot}%{_bindir}/phar %{buildroot}%{_bindir}/phar.phar

# strip binaries for non-debug builds
%if %RH_STRIP_BINARY
 strip -s --strip-unneeded %{buildroot}%{_libdir}/httpd/modules/libphp%{phpver}.so %{buildroot}%{extension_dir}/*.so %{buildroot}%{_bindir}/php
%endif

%files
%attr(755,root,root) %{_libdir}/httpd/modules/libphp%{phpver}.so

%files common
%dir %{_datadir}/%{name}
%dir %{_libdir}/%{name}
%dir %{extension_dir}

%files bcmath
%{extension_dir}/bcmath.so

%files bz2
%{extension_dir}/bz2.so

%files calendar
%{extension_dir}/calendar.so

%files cli
%{_bindir}/php

%files ctype
%{extension_dir}/ctype.so

%files curl
%{extension_dir}/curl.so

%files devel
%{_bindir}/php-config
%{_bindir}/phpize
%{_includedir}/php
%{_libdir}/%{name}/build

%files dom
%{extension_dir}/dom.so

%files exif
%{extension_dir}/exif.so

%files fileinfo
%{extension_dir}/fileinfo.so

%files gd
%{extension_dir}/gd.so

%files gettext
%{extension_dir}/gettext.so

%files hash
%{extension_dir}/hash.so

%files iconv
%{extension_dir}/iconv.so

%files imap
%{extension_dir}/imap.so

%files intl
%{extension_dir}/intl.so

%files json
%{extension_dir}/json.so

%files mbstring
%{extension_dir}/mbstring.so

%files mysqli
%{extension_dir}/mysqli.so
%{extension_dir}/mysqlnd.so

%files opcache
%{extension_dir}/opcache.so
%{_datarootdir}/%{name}/zendoptimizer.php

%files openssl
%{extension_dir}/openssl.so

%files pcntl
%{extension_dir}/pcntl.so

%files pdo
%{extension_dir}/pdo.so
%{extension_dir}/pdo_mysql.so

%files phar
%{extension_dir}/phar.so

%files posix
%{extension_dir}/posix.so

%files readline
%{extension_dir}/readline.so

%files session
%{extension_dir}/session.so

%files simplexml
%{extension_dir}/simplexml.so

%files soap
%{extension_dir}/soap.so

%files sockets
%{extension_dir}/sockets.so

%files tidy
%{extension_dir}/tidy.so

%files tokenizer
%{extension_dir}/tokenizer.so

%files xml
%{extension_dir}/xml.so

%files xmlreader
%{extension_dir}/xmlreader.so

%files xmlwriter
%{extension_dir}/xmlwriter.so

%files zip
%{extension_dir}/zip.so

%files zlib
%{extension_dir}/zlib.so

%changelog
* Thu Aug 31 2017 Reindl Harald <h.reindl@thelounge.net>
- update to PHP 7.0.23 / 7.1.9
 [2017-09-27 13:39 UTC] spam2 at rhsoft dot net
@remi

-touch configure.in
+touch configure.ac

very interesting since this below is from the Fedora specfile you maintain (https://kojipkgs.fedoraproject.org//packages/php/7.1.10/1.fc26/src/php-7.1.10-1.fc26.src.rpm) and contains "touch configure.in" too

%build
# aclocal workaround - to be improved
cat `aclocal --print-ac-dir`/{libtool,ltoptions,ltsugar,ltversion,lt~obsolete}.m4 >>aclocal.m4

# Force use of system libtool:
libtoolize --force --copy
cat `aclocal --print-ac-dir`/{libtool,ltoptions,ltsugar,ltversion,lt~obsolete}.m4 >build/libtool.m4

# Regenerate configure scripts (patches change config.m4's)
touch configure.in
./buildconf --force


-------- Weitergeleitete Nachricht --------
Betreff: Re: [PHP-DEV] 7.2.0 beta 3: libtool: Version mismatch error. This is libtool 2.4.6, but the libtool: definition of this LT_INIT
Datum: Mon, 21 Aug 2017 09:53:20 +0200
Von: Remi Collet <remi@fedoraproject.org>
An: internals@lists.php.net

Le 20/08/2017 à 20:01, lists@rhsoft.net a écrit :
> i saw exactly the same "You should recreate aclocal.m4 with macros from
> libtool 2.4.6" with the first alpha tarball while all the time HEAD, 7.0
> and 7.1 are working fine with the same build-spec

I have build all alpha/beta of 7.2.0 without any issue

But:

-touch configure.in
+touch configure.ac
 [2017-11-05 04:22 UTC] php-bugs at lists dot php dot net
No feedback was provided. The bug is being suspended because
we assume that you are no longer experiencing the problem.
If this is not the case and you are able to provide the
information that was requested earlier, please do so and
change the status of the bug back to "Re-Opened". Thank you.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Mar 28 18:01:29 2024 UTC