Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:99152 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 27262 invoked from network); 24 May 2017 16:59:50 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 24 May 2017 16:59:50 -0000 Authentication-Results: pb1.pair.com header.from=lists@rhsoft.net; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=lists@rhsoft.net; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain rhsoft.net designates 91.118.73.15 as permitted sender) X-PHP-List-Original-Sender: lists@rhsoft.net X-Host-Fingerprint: 91.118.73.15 mail.thelounge.net Received: from [91.118.73.15] ([91.118.73.15:33629] helo=mail.thelounge.net) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id C4/4D-10292-00CB5295 for ; Wed, 24 May 2017 12:59:45 -0400 Received: from srv-rhsoft.rhsoft.net (Authenticated sender: h.reindl@thelounge.net) by mail.thelounge.net (THELOUNGE MTA) with ESMTPSA id 3wXzCG07bhzXMp for ; Wed, 24 May 2017 18:59:37 +0200 (CEST) To: internals@lists.php.net References: <72c5e033-9ea4-61f0-c955-09c3df6c4d73@rhsoft.net> <4177a6b3-11f0-f3f2-0dd3-ce118ee42be1@fedoraproject.org> Message-ID: Date: Wed, 24 May 2017 18:59:37 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.0 MIME-Version: 1.0 In-Reply-To: <4177a6b3-11f0-f3f2-0dd3-ce118ee42be1@fedoraproject.org> Content-Type: multipart/mixed; boundary="------------2B6773F994209E6869E99B4B" Content-Language: de-CH Subject: Re: [PHP-DEV] [RFC] [Discussion] UUID From: lists@rhsoft.net ("lists@rhsoft.net") --------------2B6773F994209E6869E99B4B Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Am 24.05.2017 um 18:30 schrieb Remi Collet: > Le 24/05/2017 à 17:21, lists@rhsoft.net a écrit : > >> frankly get out of my sight with composer >> >> i maintain the whole webstacke for many years at my own (rpm packages) >> and so the Fedora repos have excluded anything relevant to PHP - trying >> to build composer by just download the src.rpm ends in a ton of build >> dependencies, bootsrap stuff because of cyclic dependencies, frameworks >> nobody needs and wants in environments where 3rd party code is >> discouraged because it becomes a problem sooner or later in case of >> upgrades and so composer is just a red flag for me until a PHP build >> spits out a /usr/bin/composer binary which is self contained >> > > I definitively don't understand your point. why? > If you want composer, you will ALWAYS need Symfony (and some other > pieces). Composer is symfony app. and here the problem starts i DO NOT want Symfony because i don't have a need for any 3rd party software just because i don't have "fire and forget" projects - i have *one* project for a lifetime which covers all * frameworks * abstraction layers * on top a CMS * on top of the CMS customer sites * on top of the CMS admin backaneds for dns/epp/httpd/mail... * and since the framework as well as the CMS support CLI mode a ton of automation for maintain services, cms-tasks, cleanups and all needed admin staff for the whole infrastructure from the moment on a introdcue 3rd party frameworks i am no longer free to build PHP as i like it and the version i want stripped down to a minimum and only enable and compile needed extensions, package everything as loadable extensions and manage the whole stuff with rpm-meta-packages the only acceptable things here are PHAR files like phpdoc [harry@srv-rhsoft:~]$ php -n -m [PHP Modules] Core date filter libxml pcre Reflection SPL standard and frankly i would love to anyhting above and *especially* standard as loadable extensions instead have it in /usr/bin/php *and* /usr/lib64/httpd/modules/libphp7.so compiled beause, well, we run also native system services written in PHP which could have a smaller footprint if ou need some ideas for teh Fedora "rpm.spec" take a look at the attachment :-) --------------2B6773F994209E6869E99B4B Content-Type: text/x-rpm-spec; name="php.spec" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="php.spec" Version: 7.1.5 # 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 0 %global pgo_build 1 %global lto_build 0 %global break_build 0 %global debug_build 0 %global extension_dir %{_libdir}/%{name}/modules %if %{?_with_production:1}%{!?_with_production:0} %global mtune native %global rpmsuffix native %global php_native_release 1 %else %global mtune sandybridge %global rpmsuffix sandybridge %global php_native_release 0 %endif %if %php_debug_build %global _include_minidebuginfo 1 %global RH_GCC_DEBUG_OPTION -g3 %global RH_CONFIGURE_DEBUG_OPTION enable-debug %global RH_STRIP_BINARY 0 %global pgo_build 0 %global lto_build 0 %else %if %debug_build %global _include_minidebuginfo 1 %global RH_GCC_DEBUG_OPTION -g3 %global RH_CONFIGURE_DEBUG_OPTION enable-debug %global RH_STRIP_BINARY 0 %global pgo_build 0 %global lto_build 0 %else %global _include_minidebuginfo 0 %global RH_GCC_DEBUG_OPTION -g0 %global RH_CONFIGURE_DEBUG_OPTION disable-debug %global RH_STRIP_BINARY 1 %endif %endif %if %lto_build %global RH_LTO_CONFIGURE_OPTION disable-gcc-global-regs %else %global RH_LTO_CONFIGURE_OPTION enable-gcc-global-regs %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 -fopenmp -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 -fno-lto -fuse-ld=gold -fuse-linker-plugin -fprofile-use -Wformat -Werror=format-security -Wno-stack-protector -Wstrict-aliasing -Wa,--noexecstack' Name: php Release: 1.%{php_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-realpath-cache-openbasedir.patch Patch2: php-70-systzdata.patch Patch3: 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} %patch1 -p1 -b .realpath %if "%{version}" >= "7.1.0" %patch3 -p1 -b .systzdata-71 %else %patch2 -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 # compiler and linker flags %if %lto_build RH_LTO_FLAGS="-flto -fno-fat-lto-objects -fuse-ld=gold -fuse-linker-plugin" %else RH_LTO_FLAGS="-fno-lto -fuse-ld=gold -fuse-linker-plugin" %endif %if %debug_build export CFLAGS="-m64 -O0 %{RH_GCC_DEBUG_OPTION} -fno-lto" %else %if %php_debug_build export CFLAGS="-m64 -O0 %{RH_GCC_DEBUG_OPTION} -fno-lto" %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 -fopenmp -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 %{RH_GCC_DEBUG_OPTION} -minline-all-stringops -pipe -fno-align-labels -fno-exceptions -fno-gcse -fno-math-errno $RH_LTO_FLAGS -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 -fopenmp -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 %{RH_GCC_DEBUG_OPTION} -minline-all-stringops -pipe $RH_LTO_FLAGS -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 \ --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 \ --%{RH_LTO_CONFIGURE_OPTION} \ --%{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 %{?_smp_mflags} prof-gen /usr/bin/bash /rpmbuild/PHP-PGO/profile.sh --php_build $PWD make prof-clean make %{?_smp_mflags} prof-use %else make %{?_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 * Mon May 15 2017 Reindl Harald - call 'Zend/zend_vm_gen.php' in case a php-install is avalibale on the buildmachine * Thu May 11 2017 Reindl Harald - update to PHP 7.0.19 - make generate 'ext/fileinfo/data_file.c' from system libmagic conditional for PHP >= 7.2.0 - /usr/bin/php ext/fileinfo/create_data_file.php /usr/share/misc/magic.mgc > ext/fileinfo/data_file.c - https://bugs.php.net/bug.php?id=74573 and https://bugs.php.net/bug.php?id=67516 * Tue May 9 2017 Reindl Harald - add '--enable-opcache-jit' to configure for tests with experimental jit-branch - build 'mysqlnd.so' as shared extension - build 'xml.so' as shared extension - build 'zlib.so' as shared extension * Thu Apr 13 2017 Reindl Harald - update to PHP 7.0.18 * Tue Mar 14 2017 Reindl Harald - update to PHP 7.0.17 * Thu Feb 16 2017 Reindl Harald - update to PHP 7.0.16 * Wed Jan 18 2017 Reindl Harald - update to PHP 7.0.15 * Tue Jan 17 2017 Reindl Harald - add '-fdevirtualize-speculatively -fgraphite-identity -floop-block -floop-unroll-and-jam' to compiler flags - remove openssl-tests because https://bugs.php.net/bug.php?id=73609 makes me sick - add fedora systzdata-patches - add '-fstrict-aliasing -Wstrict-aliasing' to compiler-flags - add '--enable-huge-code-pages' to configure - build 'readline' as loadable extension (interactive shell) * Sun Jan 8 2017 Reindl Harald - command 'rpmbuild -bb php.spec --with production' will tune for current hardware while default to 'sandybridge' - build-cpu-architecture is now part of the package-version to move optimized builds to different repos - remove all optimizations when 'debug_build' is enabled and add 'valgrind' param to 'profile.sh'-call - add '-ftree-loop-im' and '-fvariable-expansion-in-unroller' to compiler flags * Tue Dec 27 2016 Reindl Harald - build 'intl' as loadable extension - add 'libicu-devel' to build-requires - run profiling-script after compile a debug-build to fetch memleak-warnings - build 'bz2' as loadable extension * Thu Dec 8 2016 Reindl Harald - update to PHP 7.0.14 * Thu Nov 10 2016 Reindl Harald - update to PHP 7.0.13 * Sat Nov 5 2016 Reindl Harald - added patch to enable 'realpath_cache' with enabled 'open_basedir' we disable 'symlink' and 'link' for years and so CVE-2006-5178 has no point http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-5178 * Sat Oct 15 2016 Reindl Harald - macro 'lto_build' enables link-time-optimization which increases build memory-usage combined with profile-guided-optimization dramatically but may improve performance for production builds adds '--disable-gcc-global-regs' to configure-flags adds '-flto -fno-fat-lto-objects -fuse-ld=gold -fuse-linker-plugin' to compiler and linker flags * Sat Oct 1 2016 Reindl Harald - macro 'break_build' starts a webserver on port 9001 with the temporary mod_php - script '/rpmbuild/PHP-PGO/profile.sh' supports as second param 'onlywebserver' instead profiling and kill it afterwards so we can use it's generate-logic for 'httpd.conf' and 'php.ini' with current locations in the working directory - remove '-funroll-loops' from compiler-flags - enabled for pgo-builds by '-fprofile-use' - add '-fno-exceptions -fvect-cost-model=unlimited -fipa-pta -fsemantic-interposition' to compiler flags - add '-fwrapv' to compiler flags to avoid https://bugs.php.net/bug.php?id=71201 * Thu Sep 29 2016 Reindl Harald - change PGO sequence to use "make prof-gen; profile.sh; make prof-clean; make prof-use" - remove "-Wno-coverage-mismatch" from compiler flags - https://bugs.php.net/bug.php?id=73111 - add '-fmerge-all-constants' to compiler flags * Sat Sep 24 2016 Reindl Harald - add '-fno-align-labels -fno-gcse' to compiler flags https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html Note: When compiling a program using computed gotos, a GCC extension, you may get better run-time performance if you disable the global common subexpression elimination pass by adding -fno-gcse to the command line * Fri Sep 23 2016 Reindl Harald - remove 'ftp', 'xmlrpc' and 'xslt' from build - rework call of test-suite to use default-settings instead cloned /etc/php.ini - removed useless options from configure now that we build with system-gd * Wed Sep 21 2016 Reindl Harald - define 'break_build' and local 'debug_build' macros to stop before tests and packaging - ship a 'debug-ini.php' with extensions and 'extension_dir' in the working directory - now we can use the built binaries without installing them on the system - usecase: temporary debug-builds or tests without running the whole build-process - output tells the needed env-export and how to call the binary export PHP_INI_SCAN_DIR=/home/builduser/rpmbuild/BUILD/php-7.0.11 CLI-BINARY: /home/builduser/rpmbuild/BUILD/php-7.0.11/sapi/cli/php * Sun Sep 18 2016 Reindl Harald - use 'profile-guided-optimization' instead of 'link-time-optimization' for memory/optimize-balance - define 'pgo_build' macro to disable 'profile-guided-optimization' temporary - we run scripted requests from a temporary webserver between make-stages to profile our application - benchmark our cms-system shows 7 percent higher performance for php7 - see: https://software.intel.com/en-us/blogs/2015/10/09/pgo-let-it-go-php - link with 'nodump' for enhanced security - remove 'mcrypt' from build (if-you-are-typing-the-word-mcrypt-into-your-code-you-are-doing-it-wrong) - move all extensions to sub-packages for minimzed dependencies - add '-fivopts -ftree-loop-if-convert -ftree-loop-if-convert-stores -ftree-loop-ivcanon' to compiler flags - explicit export of 'CC' environment variable with CFLAGS for optimized builds - use system-gd and disable some autotests (now supported without patches) - use system-libzip (now supported without patches) - remove skipped and failing autotests to keep focus on new regressions - cleanup spec-file to build more or less 'vanilla' php with own optimizations - add 'php-httpd-dummy.conf' as temporary 'httpd.conf' at build-time for 'apxs' without hacks - add 're2c' to build-requires and '--enable-re2c-cgoto' to configure - build all extensions loadable to share them between httpd and cli - cleanup configure options - start with '--disable-all' and enable used features - build without unused modules - improves time for build and selftest - add '--disable-opcache-file' for smaller builds because we only use the shm-cache - add '-fno-math-errno -fira-loop-pressure -ftree-loop-distribution' to compiler flags --------------2B6773F994209E6869E99B4B--