From f1af93971b7490792d8541bc790e0d8c6d787059 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Fri, 6 Sep 2019 10:28:05 +0100 Subject: gentoo resync : 06.08.2019 --- dev-lang/Manifest.gz | Bin 18193 -> 18199 bytes dev-lang/go/Manifest | 8 +- dev-lang/go/go-1.11.13.ebuild | 2 +- dev-lang/go/go-1.12.8.ebuild | 2 +- dev-lang/go/go-1.12.9.ebuild | 246 +++++++ dev-lang/go/go-1.13.ebuild | 246 +++++++ dev-lang/pasm/Manifest | 4 +- dev-lang/pasm/pasm-1.7.ebuild | 4 +- dev-lang/php/Manifest | 8 +- dev-lang/php/php-5.6.40-r5.ebuild | 789 --------------------- dev-lang/php/php-5.6.40-r6.ebuild | 789 +++++++++++++++++++++ dev-lang/php/php-7.2.22.ebuild | 749 +++++++++++++++++++ dev-lang/php/php-7.3.9.ebuild | 750 ++++++++++++++++++++ dev-lang/php/php-7.4.0_beta4.ebuild | 723 +++++++++++++++++++ dev-lang/python-exec/Manifest | 3 +- dev-lang/python-exec/python-exec-2.4.6-r1.ebuild | 2 +- dev-lang/python-exec/python-exec-2.4.6.ebuild | 133 ---- dev-lang/ruby/Manifest | 8 +- dev-lang/ruby/ruby-2.4.7.ebuild | 230 ++++++ dev-lang/ruby/ruby-2.5.5.ebuild | 2 +- dev-lang/ruby/ruby-2.5.6.ebuild | 225 ++++++ dev-lang/ruby/ruby-2.6.4.ebuild | 237 +++++++ dev-lang/swi-prolog/Manifest | 8 +- dev-lang/swi-prolog/swi-prolog-8.1.11.ebuild | 99 +++ dev-lang/swi-prolog/swi-prolog-8.1.12.ebuild | 99 +++ dev-lang/swi-prolog/swi-prolog-8.1.8.ebuild | 99 --- dev-lang/swi-prolog/swi-prolog-8.1.9.ebuild | 99 --- dev-lang/teyjus/Manifest | 6 +- ...ixes-arity-for-pervasive-modulo-operation.patch | 28 + ...ing-literals-from-proper-character-groups.patch | 45 ++ ...3-Removing-deprecated-function-String.set.patch | 51 ++ dev-lang/teyjus/teyjus-2.0.2.ebuild | 117 --- dev-lang/teyjus/teyjus-2.1-r1.ebuild | 112 +++ dev-lang/vala/Manifest | 8 +- dev-lang/vala/vala-0.36.20.ebuild | 37 + dev-lang/vala/vala-0.40.16.ebuild | 53 ++ dev-lang/vala/vala-0.45.90.ebuild | 44 -- dev-lang/vala/vala-0.45.91.ebuild | 48 ++ 38 files changed, 4810 insertions(+), 1303 deletions(-) create mode 100644 dev-lang/go/go-1.12.9.ebuild create mode 100644 dev-lang/go/go-1.13.ebuild delete mode 100644 dev-lang/php/php-5.6.40-r5.ebuild create mode 100644 dev-lang/php/php-5.6.40-r6.ebuild create mode 100644 dev-lang/php/php-7.2.22.ebuild create mode 100644 dev-lang/php/php-7.3.9.ebuild create mode 100644 dev-lang/php/php-7.4.0_beta4.ebuild delete mode 100644 dev-lang/python-exec/python-exec-2.4.6.ebuild create mode 100644 dev-lang/ruby/ruby-2.4.7.ebuild create mode 100644 dev-lang/ruby/ruby-2.5.6.ebuild create mode 100644 dev-lang/ruby/ruby-2.6.4.ebuild create mode 100644 dev-lang/swi-prolog/swi-prolog-8.1.11.ebuild create mode 100644 dev-lang/swi-prolog/swi-prolog-8.1.12.ebuild delete mode 100644 dev-lang/swi-prolog/swi-prolog-8.1.8.ebuild delete mode 100644 dev-lang/swi-prolog/swi-prolog-8.1.9.ebuild create mode 100644 dev-lang/teyjus/files/teyjus-2.1-p001-Fixes-arity-for-pervasive-modulo-operation.patch create mode 100644 dev-lang/teyjus/files/teyjus-2.1-p002-Add-string-literals-from-proper-character-groups.patch create mode 100644 dev-lang/teyjus/files/teyjus-2.1-p003-Removing-deprecated-function-String.set.patch delete mode 100644 dev-lang/teyjus/teyjus-2.0.2.ebuild create mode 100644 dev-lang/teyjus/teyjus-2.1-r1.ebuild create mode 100644 dev-lang/vala/vala-0.36.20.ebuild create mode 100644 dev-lang/vala/vala-0.40.16.ebuild delete mode 100644 dev-lang/vala/vala-0.45.90.ebuild create mode 100644 dev-lang/vala/vala-0.45.91.ebuild (limited to 'dev-lang') diff --git a/dev-lang/Manifest.gz b/dev-lang/Manifest.gz index a8fdd6a8d09e..cc5330f86ff7 100644 Binary files a/dev-lang/Manifest.gz and b/dev-lang/Manifest.gz differ diff --git a/dev-lang/go/Manifest b/dev-lang/go/Manifest index 369230ac4975..9584c3de98a2 100644 --- a/dev-lang/go/Manifest +++ b/dev-lang/go/Manifest @@ -16,12 +16,16 @@ DIST go1.12.5.src.tar.gz 21971348 BLAKE2B 7de8db4a6c4cd9e1883fbf28357fe99ad9f43f DIST go1.12.6.src.tar.gz 21975398 BLAKE2B 05c183baf2e6544b039cff33abb7c5d66a50a0a7cadaa16032a3dc3793bfa27e82c4598dbb700bf7f90ba2ce2639bb60484e61e50fc154d8184d4874954b81e4 SHA512 431a0b916ce2e64d816808a04bc3bf028e955538ab55c571021c08e599781ae344487a55e119bb3aae3d32f84cd83e2c176dc72d336b95da0352edffeab07a48 DIST go1.12.7.src.tar.gz 21976647 BLAKE2B bf0c723f1e02048d91844c7b8908500c83442a8ab7ceeaacdb37d7204f72d80331eab44de54f99411479be8e645b2626fb8a34df0cedbd75fa57c4e1d84d493a SHA512 f84c6b89dea9df21f0efa07564eb80baeee5bc2d68cced5fd645ebb32e9317e60b657afe011c81e7739d8a93e4b4dafa0b4f78431a009d36e05de55f89ed0fd6 DIST go1.12.8.src.tar.gz 21978756 BLAKE2B 65258c101d729bbd82f69ba4286ba8e64f9d3128be97243374d442dfcc4033f1238bb57530a34dc0142f55cc8f2692efab65452286c4769f24e8aa3a4a80abd1 SHA512 193a9b08752aa2479c19f5b56fdfe2296c7e6097e0c583290f0fce754ac7571e2ff345f66b69774d8e22f2caa147a3dc15658148017b09e5e7f49fd4569373d4 +DIST go1.12.9.src.tar.gz 21979950 BLAKE2B dca7e3afcabd513c4b8193e93c0a1ed1a2326dccfce9b909d97b3731fffbe7e26712ab164645e06a316baa949b1e0b14a2fea8d23e6f90fd5b72afa0d15b432b SHA512 57041e7fb767f528aa9fc2592d205d3a7c120c73f92dc8d91f17f816e12aa6152c8421b333081800a5f50b1bb656f203a25faf8ed92c69a6ec164ce0a5619c13 +DIST go1.13.src.tar.gz 21621948 BLAKE2B dff6024287c0805ec735cb40aef4ffd872bdc17df6e0d531be3d16806292edde2a63299fe7b9b3c97a79f6f864ab0f95962a0cd2e1a0ba0216b3f4bc59bf4bcf SHA512 c6346b1ab256cb743dd98625d8b16cdcc1365b186e039e99747d6c18041045daa065f6bdce17cca0a9800be2dbb34e90adf5518d5295693f80435c02fe5b2cd8 EBUILD go-1.11.10.ebuild 6448 BLAKE2B c7196c5172a0aaaaa707b4557caf4bc093241d76b14ffb22980f130c47dfb9abc041afb6bb6a22660d0699464eff630a4c9974aac7756d7e6514f2b22e7cadcb SHA512 aa8993afc41fa784ad67e2e8bab4a3edc5c178eecc66fd2b14285b739235c9eac0b44abee85de004c835df9807be35799fcfc9cde1a92d32bccc75c2e73f8085 EBUILD go-1.11.12.ebuild 6451 BLAKE2B de8659b981b3ae812cdcbd4816f4efa33ca8f29b9462375e03817d97c9415bff805568321b900e891c6f73576c220e55bc5ea6fb4ff47f1057c4ba6383d0707f SHA512 5543bb226fcb9958c02d67d145a3bbcb285e471eed0967db3b75187b9f9ad3a5d5e2ebd168580d014d7962aa1c92da0f447029748683feb46c9744e3239da535 -EBUILD go-1.11.13.ebuild 6449 BLAKE2B cf4db759cb9cd1f825344f2255c813045bcc25e15155d64c7765891ed6f674ebe707b4c25301a96f3c1f4c06bdde93ff7e0ed9a9aec384dc8e1fccbc8c0a2b8e SHA512 0cc8cdd9ec1acc54a40b6bb3382c7f7f900790378ba34d073de54d6c4e59126fa21abff090469a5ff7db0921376a2de76c8ce53588c6f89e64a0cb48fd3237e3 +EBUILD go-1.11.13.ebuild 6448 BLAKE2B c7196c5172a0aaaaa707b4557caf4bc093241d76b14ffb22980f130c47dfb9abc041afb6bb6a22660d0699464eff630a4c9974aac7756d7e6514f2b22e7cadcb SHA512 aa8993afc41fa784ad67e2e8bab4a3edc5c178eecc66fd2b14285b739235c9eac0b44abee85de004c835df9807be35799fcfc9cde1a92d32bccc75c2e73f8085 EBUILD go-1.12.5.ebuild 6459 BLAKE2B 11cc998ff708a26c833e7ac2ff72c7fd2aabf0e3a3bfaa7558820d4726e29e22e5d0ad0b3100bd8e982b54074fc1230a43d288cf873810024a3fa1b3b77450e5 SHA512 deff55ebb12c4a915b439a1d598e02b8fd03a1d1ee873f9e6f47c6ff22cef82c3624aa68eac89968a3f01f7b91794d501675a59871fe9dd022fb2ee8cd29cd26 EBUILD go-1.12.6.ebuild 6462 BLAKE2B 865d384352a841289541d6ae0c8fb5993eee183d3f1c30944987f7010faa41c79cdaa0b1b5e9d54fbebf2ca3ce312a9532a30421b43b69216b517936f56f3c21 SHA512 107d6f1187ade0eef80f52b0bc54e430a03705c8234185a665549d3a4c63c356f1554610885dd8fad23a8094bbfe6bdd89963f97da54dc6b7cdaef62b7c3568f EBUILD go-1.12.7.ebuild 6462 BLAKE2B 865d384352a841289541d6ae0c8fb5993eee183d3f1c30944987f7010faa41c79cdaa0b1b5e9d54fbebf2ca3ce312a9532a30421b43b69216b517936f56f3c21 SHA512 107d6f1187ade0eef80f52b0bc54e430a03705c8234185a665549d3a4c63c356f1554610885dd8fad23a8094bbfe6bdd89963f97da54dc6b7cdaef62b7c3568f -EBUILD go-1.12.8.ebuild 6460 BLAKE2B fdd3ca731eda7778d0792f009ea151efb81a3a57c15ca3958f2f01ec83287bef3b4c9428c8db32cf646302c74a19258673936d6ba375ede5f1ed6f16ca05e408 SHA512 b3f2d86b543f44ec7c2af7ecbd8a961b25517e30ce796c3aa2e12edc3f22eb2136ac4e5905c8d1030e1bc631256cf90f2883569e13334c34c26b6abe603c5e9a +EBUILD go-1.12.8.ebuild 6459 BLAKE2B 11cc998ff708a26c833e7ac2ff72c7fd2aabf0e3a3bfaa7558820d4726e29e22e5d0ad0b3100bd8e982b54074fc1230a43d288cf873810024a3fa1b3b77450e5 SHA512 deff55ebb12c4a915b439a1d598e02b8fd03a1d1ee873f9e6f47c6ff22cef82c3624aa68eac89968a3f01f7b91794d501675a59871fe9dd022fb2ee8cd29cd26 +EBUILD go-1.12.9.ebuild 6462 BLAKE2B 865d384352a841289541d6ae0c8fb5993eee183d3f1c30944987f7010faa41c79cdaa0b1b5e9d54fbebf2ca3ce312a9532a30421b43b69216b517936f56f3c21 SHA512 107d6f1187ade0eef80f52b0bc54e430a03705c8234185a665549d3a4c63c356f1554610885dd8fad23a8094bbfe6bdd89963f97da54dc6b7cdaef62b7c3568f +EBUILD go-1.13.ebuild 6462 BLAKE2B 865d384352a841289541d6ae0c8fb5993eee183d3f1c30944987f7010faa41c79cdaa0b1b5e9d54fbebf2ca3ce312a9532a30421b43b69216b517936f56f3c21 SHA512 107d6f1187ade0eef80f52b0bc54e430a03705c8234185a665549d3a4c63c356f1554610885dd8fad23a8094bbfe6bdd89963f97da54dc6b7cdaef62b7c3568f EBUILD go-9999.ebuild 6462 BLAKE2B 865d384352a841289541d6ae0c8fb5993eee183d3f1c30944987f7010faa41c79cdaa0b1b5e9d54fbebf2ca3ce312a9532a30421b43b69216b517936f56f3c21 SHA512 107d6f1187ade0eef80f52b0bc54e430a03705c8234185a665549d3a4c63c356f1554610885dd8fad23a8094bbfe6bdd89963f97da54dc6b7cdaef62b7c3568f MISC metadata.xml 663 BLAKE2B fc92966e1b4a155b4d442842988d0404c0148b029d187ab7294d49dabad771296d63ca3184128ac27cea4e74e7d6cfc8852084ca8f1d15a1d0755586a0bf68de SHA512 f67b7e312cfb2a896552ae73e835d53ffbb0a7c71c30f0a7cb44c65e2753055e185e7a5c48e2cfff33a42609629cc3c32ee56a9d8f61d8429798c1e8424e36bf diff --git a/dev-lang/go/go-1.11.13.ebuild b/dev-lang/go/go-1.11.13.ebuild index a53df7c09567..b48fe53d64d1 100644 --- a/dev-lang/go/go-1.11.13.ebuild +++ b/dev-lang/go/go-1.11.13.ebuild @@ -37,7 +37,7 @@ case ${PV} in case ${PV} in *_beta*|*_rc*) ;; *) - KEYWORDS="-* amd64 ~arm ~arm64 ~ppc64 ~s390 x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x64-macos ~x64-solaris" + KEYWORDS="-* amd64 arm ~arm64 ~ppc64 ~s390 x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x64-macos ~x64-solaris" # The upstream tests fail under portage but pass if the build is # run according to their documentation [1]. # I am restricting the tests on released versions until this is diff --git a/dev-lang/go/go-1.12.8.ebuild b/dev-lang/go/go-1.12.8.ebuild index 35c5de1d232e..daee1d59a92e 100644 --- a/dev-lang/go/go-1.12.8.ebuild +++ b/dev-lang/go/go-1.12.8.ebuild @@ -37,7 +37,7 @@ case ${PV} in case ${PV} in *_beta*|*_rc*) ;; *) - KEYWORDS="-* amd64 ~arm ~arm64 ~ppc64 ~s390 x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" + KEYWORDS="-* amd64 arm ~arm64 ~ppc64 ~s390 x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" # The upstream tests fail under portage but pass if the build is # run according to their documentation [1]. # I am restricting the tests on released versions until this is diff --git a/dev-lang/go/go-1.12.9.ebuild b/dev-lang/go/go-1.12.9.ebuild new file mode 100644 index 000000000000..a6151a8c829b --- /dev/null +++ b/dev-lang/go/go-1.12.9.ebuild @@ -0,0 +1,246 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} + +MY_PV=${PV/_/} + +inherit toolchain-funcs + +BOOTSTRAP_VERSION="bootstrap-1.8" +BOOTSTRAP_DIST="https://dev.gentoo.org/~williamh/dist" +BOOTSTRAP_URI=" + ${BOOTSTRAP_DIST}/go-linux-amd64-${BOOTSTRAP_VERSION}.tbz + ${BOOTSTRAP_DIST}/go-linux-arm-${BOOTSTRAP_VERSION}.tbz + ${BOOTSTRAP_DIST}/go-linux-arm64-${BOOTSTRAP_VERSION}.tbz + ${BOOTSTRAP_DIST}/go-linux-ppc64-${BOOTSTRAP_VERSION}.tbz + ${BOOTSTRAP_DIST}/go-linux-ppc64le-${BOOTSTRAP_VERSION}.tbz + ${BOOTSTRAP_DIST}/go-linux-s390x-${BOOTSTRAP_VERSION}.tbz + ${BOOTSTRAP_DIST}/go-linux-386-${BOOTSTRAP_VERSION}.tbz + ${BOOTSTRAP_DIST}/go-freebsd-amd64-${BOOTSTRAP_VERSION}.tbz + ${BOOTSTRAP_DIST}/go-freebsd-386-${BOOTSTRAP_VERSION}.tbz + ${BOOTSTRAP_DIST}/go-darwin-amd64-${BOOTSTRAP_VERSION}.tbz + ${BOOTSTRAP_DIST}/go-solaris-amd64-${BOOTSTRAP_VERSION}.tbz +" + +case ${PV} in +*9999*) + EGIT_REPO_URI="https://github.com/golang/go.git" + inherit git-r3 + ;; +*) + SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz " + S="${WORKDIR}"/go + case ${PV} in + *_beta*|*_rc*) ;; + *) + KEYWORDS="-* ~amd64 ~arm ~arm64 ~ppc64 ~s390 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" + # The upstream tests fail under portage but pass if the build is + # run according to their documentation [1]. + # I am restricting the tests on released versions until this is + # solved. + # [1] https://golang.org/issues/18442 + RESTRICT="test" + ;; + esac +esac + +# If gccgo or a previously installed version of dev-lang/go is not being +# used to build Go, there is no way to know the architecture or operating system +# of the build machine, so we need to download all of our bootstrap +# archives to allow this ebuild to work under crossdev. +# +# https://bugs.gentoo.org/671394 +SRC_URI+="!gccgo? ( !system-bootstrap? ( ${BOOTSTRAP_URI} ) )" + +DESCRIPTION="A concurrent garbage collected and typesafe programming language" +HOMEPAGE="https://golang.org" + +LICENSE="BSD" +SLOT="0/${PV}" +IUSE="gccgo system-bootstrap" + +BDEPEND="gccgo? ( >=sys-devel/gcc-5[go] )" +RDEPEND="!> \ - "${D}/${PHP_EXT_INI_DIR}"/opcache.ini - dosym "${PHP_EXT_INI_DIR#${EPREFIX}}/opcache.ini" \ - "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini" - fi - - # SAPI-specific handling - if [[ "${sapi}" == "fpm" ]] ; then - einfo "Installing FPM config file php-fpm.conf" - insinto "${PHP_INI_DIR#${EPREFIX}}" - doins sapi/fpm/php-fpm.conf - fi - - dodoc php.ini-{development,production} -} - -php_set_ini_dir() { - PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}" - PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext" - PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active" -} - -src_prepare() { - local patchdir="${WORKDIR}/php-patches-${PATCH_V}" - - eapply "${patchdir}/" - - # Copy test binaries from patches - local ext_src - for ext_src in exif iconv ; do - cp "${patchdir}/${ext_src}/"* "ext/${ext_src}/tests/" || die - done - - # Change PHP branding - # Get the alpha/beta/rc version - sed -re "s|^(PHP_EXTRA_VERSION=\").*(\")|\1-pl${PR/r/}-gentoo\2|g" \ - -i configure.in || die "Unable to change PHP branding" - - # Patch PHP to show Gentoo as the server platform - sed -e 's/PHP_UNAME=`uname -a | xargs`/PHP_UNAME=`uname -s -n -r -v | xargs`/g' \ - -i configure.in || die "Failed to fix server platform name" - - # Prevent PHP from activating the Apache config, - # as we will do that ourselves - sed -i \ - -e "s,-i -a -n php${PHP_MV},-i -n php${PHP_MV},g" \ - -e "s,-i -A -n php${PHP_MV},-i -n php${PHP_MV},g" \ - configure sapi/apache2filter/config.m4 sapi/apache2handler/config.m4 \ - || die - - # Patch PHP to support heimdal instead of mit-krb5 - if has_version "app-crypt/heimdal" ; then - sed -e 's|gssapi_krb5|gssapi|g' -i acinclude.m4 \ - || die "Failed to fix heimdal libname" - sed -e 's|PHP_ADD_LIBRARY(k5crypto, 1, $1)||g' -i acinclude.m4 \ - || die "Failed to fix heimdal crypt library reference" - fi - - eapply_user - - # Force rebuilding aclocal.m4 - rm -f aclocal.m4 || die "failed to remove aclocal.m4 in src_prepare" - - mv configure.in configure.ac || die - - eautoreconf - - if [[ ${CHOST} == *-darwin* ]] ; then - # http://bugs.php.net/bug.php?id=48795, bug #343481 - sed -i -e '/BUILD_CGI="\\$(CC)/s/CC/CXX/' configure || die - fi -} - -src_configure() { - addpredict /usr/share/snmp/mibs/.index #nowarn - addpredict /var/lib/net-snmp/mib_indexes #nowarn - - PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}" - - # The php-fpm config file wants localstatedir to be ${EPREFIX}/var - # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002. - local our_conf=( - --prefix="${PHP_DESTDIR}" - --mandir="${PHP_DESTDIR}/man" - --infodir="${PHP_DESTDIR}/info" - --libdir="${PHP_DESTDIR}/lib" - --with-libdir="$(get_libdir)" - --localstatedir="${EPREFIX}/var" - --without-pear - $(use_enable threads maintainer-zts) - ) - - our_conf+=( - $(use_enable bcmath bcmath) - $(use_with bzip2 bz2 "${EPREFIX}/usr") - $(use_enable calendar calendar) - $(use_enable coverage gcov) - $(use_enable ctype ctype) - $(use_with curl curl "${EPREFIX}/usr") - $(use_enable xml dom) - $(use_with enchant enchant "${EPREFIX}/usr") - $(use_enable exif exif) - $(use_enable fileinfo fileinfo) - $(use_enable filter filter) - $(use_enable ftp ftp) - $(use_with nls gettext "${EPREFIX}/usr") - $(use_with gmp gmp "${EPREFIX}/usr") - $(use_enable hash hash) - $(use_with mhash mhash "${EPREFIX}/usr") - $(use_with iconv iconv \ - $(use elibc_glibc || use elibc_musl || use elibc_FreeBSD || echo "${EPREFIX}/usr")) - $(use_enable intl intl) - $(use_enable ipv6 ipv6) - $(use_enable json json) - $(use_with kerberos kerberos "${EPREFIX}/usr") - $(use_enable xml libxml) - $(use_with xml libxml-dir "${EPREFIX}/usr") - $(use_enable unicode mbstring) - $(use_with crypt mcrypt "${EPREFIX}/usr") - $(use_with mssql mssql "${EPREFIX}/usr") - $(use_with unicode onig "${EPREFIX}/usr") - $(use_with ssl openssl "${EPREFIX}/usr") - $(use_with ssl openssl-dir "${EPREFIX}/usr") - $(use_enable pcntl pcntl) - $(use_enable phar phar) - $(use_enable pdo pdo) - $(use_enable opcache opcache) - $(use_with postgres pgsql "${EPREFIX}/usr") - $(use_enable posix posix) - $(use_with spell pspell "${EPREFIX}/usr") - $(use_with recode recode "${EPREFIX}/usr") - $(use_enable simplexml simplexml) - $(use_enable sharedmem shmop) - $(use_with snmp snmp "${EPREFIX}/usr") - $(use_enable soap soap) - $(use_enable sockets sockets) - $(use_with sqlite sqlite3 "${EPREFIX}/usr") - $(use_with sybase-ct sybase-ct "${EPREFIX}/usr") - $(use_enable sysvipc sysvmsg) - $(use_enable sysvipc sysvsem) - $(use_enable sysvipc sysvshm) - $(use_with tidy tidy "${EPREFIX}/usr") - $(use_enable tokenizer tokenizer) - $(use_enable wddx wddx) - $(use_enable xml xml) - $(use_enable xmlreader xmlreader) - $(use_enable xmlwriter xmlwriter) - $(use_with xmlrpc xmlrpc) - $(use_with xslt xsl "${EPREFIX}/usr") - $(use_enable zip zip) - $(use_with zlib zlib "${EPREFIX}/usr") - $(use_enable debug debug) - ) - - # DBA support - if use cdb || use berkdb || use flatfile || use gdbm || use inifile \ - || use qdbm ; then - our_conf+=( "--enable-dba${shared}" ) - fi - - # DBA drivers support - our_conf+=( - $(use_with cdb cdb) - $(use_with berkdb db4 "${EPREFIX}/usr") - $(use_enable flatfile flatfile) - $(use_with gdbm gdbm "${EPREFIX}/usr") - $(use_enable inifile inifile) - $(use_with qdbm qdbm "${EPREFIX}/usr") - ) - - # Support for the GD graphics library - our_conf+=( - $(use_with truetype freetype-dir "${EPREFIX}/usr") - $(use_with truetype t1lib "${EPREFIX}/usr") - $(use_enable cjk gd-jis-conv) - $(use_with gd jpeg-dir "${EPREFIX}/usr") - $(use_with gd png-dir "${EPREFIX}/usr") - $(use_with xpm xpm-dir "${EPREFIX}/usr") - $(use_with vpx vpx-dir "${EPREFIX}/usr") - ) - # enable gd last, so configure can pick up the previous settings - our_conf+=( $(use_with gd gd) ) - - # IMAP support - if use imap ; then - our_conf+=( - $(use_with imap imap "${EPREFIX}/usr") - $(use_with ssl imap-ssl "${EPREFIX}/usr") - ) - fi - - # Interbase/firebird support - our_conf+=( $(use_with firebird interbase "${EPREFIX}/usr") ) - - # LDAP support - if use ldap ; then - our_conf+=( - $(use_with ldap ldap "${EPREFIX}/usr") - $(use_with ldap-sasl ldap-sasl "${EPREFIX}/usr") - ) - fi - - # MySQL support - local mysqllib="mysqlnd" - local mysqlilib="mysqlnd" - use libmysqlclient && mysqllib="${EPREFIX}/usr" - use libmysqlclient && mysqlilib="${EPREFIX}/usr/bin/mysql_config" - - our_conf+=( $(use_with mysql mysql "${mysqllib}") ) - our_conf+=( $(use_with mysqli mysqli "${mysqlilib}") ) - - local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock" - if use mysql || use mysqli ; then - our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") ) - fi - - # ODBC support - our_conf+=( - $(use_with odbc unixODBC "${EPREFIX}/usr") - $(use_with iodbc iodbc "${EPREFIX}/usr") - ) - - # Oracle support - our_conf+=( $(use_with oci8-instant-client oci8) ) - - # PDO support - if use pdo ; then - our_conf+=( - $(use_with mssql pdo-dblib) - $(use_with mysql pdo-mysql "${mysqllib}") - $(use_with postgres pdo-pgsql) - $(use_with sqlite pdo-sqlite "${EPREFIX}/usr") - $(use_with firebird pdo-firebird "${EPREFIX}/usr") - $(use_with odbc pdo-odbc "unixODBC,${EPREFIX}/usr") - $(use_with oci8-instant-client pdo-oci) - ) - fi - - # readline/libedit support - our_conf+=( - $(use_with readline readline "${EPREFIX}/usr") - $(use_with libedit libedit "${EPREFIX}/usr") - ) - - # Session support - if use session ; then - our_conf+=( $(use_with sharedmem mm "${EPREFIX}/usr") ) - else - our_conf+=( $(use_enable session session) ) - fi - - # Use pic for shared modules such as apache2's mod_php - our_conf+=( --with-pic ) - - # we use the system copy of pcre - # --with-pcre-regex affects ext/pcre - # --with-pcre-dir affects ext/filter and ext/zip - our_conf+=( - --with-pcre-regex="${EPREFIX}/usr" - --with-pcre-dir="${EPREFIX}/usr" - ) - - # Catch CFLAGS problems - # Fixes bug #14067. - # Changed order to run it in reverse for bug #32022 and #12021. - replace-cpu-flags "k6*" "i586" - - # Cache the ./configure test results between SAPIs. - our_conf+=( --cache-file="${T}/config.cache" ) - - # Support user-passed configuration parameters - our_conf+=( ${EXTRA_ECONF:-} ) - - # Support the Apache2 extras, they must be set globally for all - # SAPIs to work correctly, especially for external PHP extensions - - mkdir -p "${WORKDIR}/sapis-build" || die - for one_sapi in $SAPIS ; do - use "${one_sapi}" || continue - php_set_ini_dir "${one_sapi}" - - # The BUILD_DIR variable is used to determine where to output - # the files that autotools creates. This was all originally - # based on the autotools-utils eclass. - BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}" - cp -a "${S}" "${BUILD_DIR}" || die - cd "${BUILD_DIR}" || die - - local sapi_conf=( - --with-config-file-path="${PHP_INI_DIR}" - --with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}" - ) - - for sapi in $SAPIS ; do - case "$sapi" in - cli|cgi|embed|fpm) - if [[ "${one_sapi}" == "${sapi}" ]] ; then - sapi_conf+=( "--enable-${sapi}" ) - if [[ "fpm" == "${sapi}" ]] ; then - sapi_conf+=( - $(use_with acl fpm-acl) - $(use_with systemd fpm-systemd) - ) - fi - else - sapi_conf+=( "--disable-${sapi}" ) - fi - ;; - - apache2) - if [[ "${one_sapi}" == "${sapi}" ]] ; then - sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" ) - else - sapi_conf+=( --without-apxs2 ) - fi - ;; - esac - done - - # Construct the $myeconfargs array by concatenating $our_conf - # (the common args) and $sapi_conf (the SAPI-specific args). - local myeconfargs=( "${our_conf[@]}" ) - myeconfargs+=( "${sapi_conf[@]}" ) - - pushd "${BUILD_DIR}" > /dev/null || die - econf "${myeconfargs[@]}" - popd > /dev/null || die - done -} - -src_compile() { - # snmp seems to run during src_compile, too (bug #324739) - addpredict /usr/share/snmp/mibs/.index #nowarn - addpredict /var/lib/net-snmp/mib_indexes #nowarn - - for sapi in ${SAPIS} ; do - if use "${sapi}"; then - cd "${WORKDIR}/sapis-build/$sapi" || \ - die "Failed to change dir to ${WORKDIR}/sapis-build/$1" - emake - fi - done -} - -src_install() { - # see bug #324739 for what happens when we don't have that - addpredict /usr/share/snmp/mibs/.index #nowarn - - # grab the first SAPI that got built and install common files from there - local first_sapi="" - for sapi in $SAPIS ; do - if use $sapi ; then - first_sapi=$sapi - break - fi - done - - # Makefile forgets to create this before trying to write to it... - dodir "${PHP_DESTDIR#${EPREFIX}}/bin" - - # Install php environment (without any sapis) - cd "${WORKDIR}/sapis-build/$first_sapi" || die - emake INSTALL_ROOT="${D}" \ - install-build install-headers install-programs - - local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)" - - # Create the directory where we'll put version-specific php scripts - keepdir "/usr/share/php${PHP_MV}" - - local sapi="", file="" - local sapi_list="" - - for sapi in ${SAPIS}; do - if use "${sapi}" ; then - einfo "Installing SAPI: ${sapi}" - cd "${WORKDIR}/sapis-build/${sapi}" || die - - if [[ "${sapi}" == "apache2" ]] ; then - # We're specifically not using emake install-sapi as libtool - # may cause unnecessary relink failures (see bug #351266) - insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/" - newins ".libs/libphp5$(get_libname)" \ - "libphp${PHP_MV}$(get_libname)" - keepdir "/usr/$(get_libdir)/apache2/modules" - else - # needed each time, php_install_ini would reset it - local dest="${PHP_DESTDIR#${EPREFIX}}" - into "${dest}" - case "$sapi" in - cli) - source="sapi/cli/php" - ;; - cgi) - source="sapi/cgi/php-cgi" - ;; - fpm) - source="sapi/fpm/php-fpm" - ;; - embed) - source="libs/libphp${PHP_MV}$(get_libname)" - ;; - *) - die "unhandled sapi in src_install" - ;; - esac - - if [[ "${source}" == *"$(get_libname)" ]]; then - dolib.so "${source}" - else - dobin "${source}" - local name="$(basename ${source})" - dosym "${dest}/bin/${name}" "/usr/bin/${name}${SLOT}" - fi - fi - - php_install_ini "${sapi}" - - # construct correct SAPI string for php-config - # thanks to ferringb for the bash voodoo - if [[ "${sapi}" == "apache2" ]]; then - sapi_list="${sapi_list:+${sapi_list} }apache2handler" - else - sapi_list="${sapi_list:+${sapi_list} }${sapi}" - fi - fi - done - - # Installing opcache module - if use opcache ; then - into "${PHP_DESTDIR#${EPREFIX}}" - dolib.so "modules/opcache$(get_libname)" - fi - - # Install env.d files - newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}" - sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die - sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die - - # set php-config variable correctly (bug #278439) - sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \ - "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die - - if use fpm ; then - if use systemd; then - systemd_newunit "${FILESDIR}/php-fpm_at.service" \ - "php-fpm@${SLOT}.service" - else - systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \ - "php-fpm@${SLOT}.service" - fi - fi -} - -src_test() { - echo ">>> Test phase [test]: ${CATEGORY}/${PF}" - PHP_BIN="${WORKDIR}/sapis-build/cli/sapi/cli/php" - if [[ ! -x "${PHP_BIN}" ]] ; then - ewarn "Test phase requires USE=cli, skipping" - return - else - export TEST_PHP_EXECUTABLE="${PHP_BIN}" - fi - - if [[ -x "${WORKDIR}/sapis/cgi/php-cgi" ]] ; then - export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis/cgi/php-cgi" - fi - - REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \ - "session.save_path=${T}" \ - "${WORKDIR}/sapis-build/cli/run-tests.php" -n -q -d \ - "session.save_path=${T}" - - for name in ${EXPECTED_TEST_FAILURES}; do - mv "${name}.out" "${name}.out.orig" 2>/dev/null || die - done - - local failed="$(find -name '*.out')" - if [[ ${failed} != "" ]] ; then - ewarn "The following test cases failed unexpectedly:" - for name in ${failed}; do - ewarn " ${name/.out/}" - done - else - einfo "No unexpected test failures, all fine" - fi - - if [[ ${PHP_SHOW_UNEXPECTED_TEST_PASS} == "1" ]] ; then - local passed="" - for name in ${EXPECTED_TEST_FAILURES}; do - [[ -f "${name}.diff" ]] && continue - passed="${passed} ${name}" - done - if [[ ${passed} != "" ]] ; then - einfo "The following test cases passed unexpectedly:" - for name in ${passed}; do - ewarn " ${passed}" - done - else - einfo "None of the known-to-fail tests passed, all fine" - fi - fi -} - -pkg_postinst() { - # Output some general info to the user - if use apache2 ; then - elog - elog "To enable PHP in apache, you will need to add \"-D PHP\" to" - elog "your apache2 command. OpenRC users can append that string to" - elog "APACHE2_OPTS in /etc/conf.d/apache2." - elog - elog "The apache module configuration file 70_mod_php.conf is" - elog "provided (and maintained) by eselect-php." - elog - fi - - # Create the symlinks for php - for m in ${SAPIS}; do - [[ ${m} == 'embed' ]] && continue; - if use $m ; then - local ci=$(eselect php show $m) - if [[ -z $ci ]]; then - eselect php set $m php${SLOT} || die - einfo "Switched ${m} to use php:${SLOT}" - einfo - elif [[ $ci != "php${SLOT}" ]] ; then - elog "To switch $m to use php:${SLOT}, run" - elog " eselect php set $m php${SLOT}" - elog - fi - fi - done - - # Remove dead symlinks for SAPIs that were just disabled. For - # example, if the user has the cgi SAPI enabled, then he has an - # eselect-php symlink for it. If he later reinstalls PHP with - # USE="-cgi", that symlink will break. This call to eselect is - # supposed to remove that dead link per bug 572436. - eselect php cleanup || die - - if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then - elog "To build extensions for this version of PHP, you will need to" - elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable." - elog - fi - - # Warn about the removal of PHP_INI_VERSION if the user has it set. - if [[ -n "${PHP_INI_VERSION}" ]]; then - ewarn 'The PHP_INI_VERSION variable has been phased out. You may' - ewarn 'remove it from your configuration at your convenience. See' - ewarn - ewarn ' https://bugs.gentoo.org/611214' - ewarn - ewarn 'for more information.' - fi - - elog "For details on how version slotting works, please see" - elog "the wiki:" - elog - elog " https://wiki.gentoo.org/wiki/PHP" - elog -} - -pkg_postrm() { - # This serves two purposes. First, if we have just removed the last - # installed version of PHP, then this will remove any dead symlinks - # belonging to eselect-php. Second, if a user upgrades slots from - # (say) 5.6 to 7.0 and depcleans the old slot, then this will update - # his existing symlinks to point to the new 7.0 installation. The - # latter is bug 432962. - # - # Note: the eselect-php package may not be installed at this point, - # so we can't die() if this command fails. - eselect php cleanup -} diff --git a/dev-lang/php/php-5.6.40-r6.ebuild b/dev-lang/php/php-5.6.40-r6.ebuild new file mode 100644 index 000000000000..9a3ebaa2a5f1 --- /dev/null +++ b/dev-lang/php/php-5.6.40-r6.ebuild @@ -0,0 +1,789 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +inherit autotools flag-o-matic systemd + +PATCH_V="7.1.31bp" + +DESCRIPTION="The PHP language runtime engine" +HOMEPAGE="https://secure.php.net/" +SRC_URI="https://php.net/distributions/${P}.tar.xz + https://gitweb.gentoo.org/proj/php-patches.git/snapshot/php-patches-${PATCH_V}.tar.bz2" + +LICENSE="PHP-3.01 + BSD + Zend-2.0 + bcmath? ( LGPL-2.1+ ) + fpm? ( BSD-2 ) + gd? ( gd ) + unicode? ( BSD-2 LGPL-2.1 )" + +SLOT="$(ver_cut 1-2)" +KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos" + +# We can build the following SAPIs in the given order +SAPIS="embed cli cgi fpm apache2" + +# SAPIs and SAPI-specific USE flags (cli SAPI is default on): +IUSE="${IUSE} + ${SAPIS/cli/+cli} + threads" + +IUSE="${IUSE} acl bcmath berkdb bzip2 calendar cdb cjk + coverage crypt +ctype curl debug + enchant exif +fileinfo +filter firebird + +flatfile ftp gd gdbm gmp +hash +iconv imap inifile + intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl + mhash mssql mysql libmysqlclient mysqli nls + oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm + readline recode selinux +session sharedmem + +simplexml snmp soap sockets spell sqlite ssl + sybase-ct sysvipc systemd tidy +tokenizer truetype unicode vpx wddx + +xml xmlreader xmlwriter xmlrpc xpm xslt zip zlib" + +# The supported (that is, autodetected) versions of BDB are listed in +# the ./configure script. Other versions *work*, but we need to stick to +# the ones that can be detected to avoid a repeat of bug #564824. +COMMON_DEPEND=" + >=app-eselect/eselect-php-0.9.1[apache2?,fpm?] + >=dev-libs/libpcre-8.32[unicode] + fpm? ( acl? ( sys-apps/acl ) ) + apache2? ( || ( >=www-servers/apache-2.4[apache2_modules_unixd,threads=] + =dev-libs/libmcrypt-2.4 ) + curl? ( >=net-misc/curl-7.10.5 ) + enchant? ( app-text/enchant ) + exif? ( !gd? ( + virtual/jpeg:0 + media-libs/libpng:0= + sys-libs/zlib:0= + ) ) + firebird? ( dev-db/firebird ) + gd? ( virtual/jpeg:0 media-libs/libpng:0= sys-libs/zlib:0= ) + gdbm? ( >=sys-libs/gdbm-1.8.0:0= ) + gmp? ( dev-libs/gmp:0= ) + iconv? ( virtual/libiconv ) + imap? ( virtual/imap-c-client[kerberos=,ssl=] ) + intl? ( dev-libs/icu:= ) + iodbc? ( dev-db/libiodbc ) + kerberos? ( virtual/krb5 ) + ldap? ( >=net-nds/openldap-1.2.11 ) + ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 ) + libedit? ( || ( sys-freebsd/freebsd-lib dev-libs/libedit ) ) + mssql? ( dev-db/freetds[mssql] ) + libmysqlclient? ( + mysql? ( =dev-db/unixODBC-1.8.13 ) + postgres? ( dev-db/postgresql:* ) + qdbm? ( dev-db/qdbm ) + readline? ( sys-libs/readline:0= ) + recode? ( app-text/recode ) + sharedmem? ( dev-libs/mm ) + simplexml? ( >=dev-libs/libxml2-2.6.8 ) + snmp? ( >=net-analyzer/net-snmp-5.2 ) + soap? ( >=dev-libs/libxml2-2.6.8 ) + spell? ( >=app-text/aspell-0.50 ) + sqlite? ( >=dev-db/sqlite-3.7.6.3 ) + ssl? ( + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl:0= ) + ) + sybase-ct? ( dev-db/freetds ) + tidy? ( app-text/htmltidy ) + truetype? ( + =media-libs/freetype-2* + >=media-libs/t1lib-5.0.0 + !gd? ( + virtual/jpeg:0 media-libs/libpng:0= sys-libs/zlib:0= ) + ) + unicode? ( dev-libs/oniguruma:= ) + vpx? ( media-libs/libvpx:0= ) + wddx? ( >=dev-libs/libxml2-2.6.8 ) + xml? ( >=dev-libs/libxml2-2.6.8 ) + xmlrpc? ( >=dev-libs/libxml2-2.6.8 virtual/libiconv ) + xmlreader? ( >=dev-libs/libxml2-2.6.8 ) + xmlwriter? ( >=dev-libs/libxml2-2.6.8 ) + xpm? ( + x11-libs/libXpm + virtual/jpeg:0 + media-libs/libpng:0= sys-libs/zlib:0= + ) + xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 ) + zip? ( sys-libs/zlib:0= ) + zlib? ( sys-libs/zlib:0= ) +" + +RDEPEND="${COMMON_DEPEND} + virtual/mta + fpm? ( + selinux? ( sec-policy/selinux-phpfpm ) + systemd? ( sys-apps/systemd ) )" + +DEPEND="${COMMON_DEPEND} + app-arch/xz-utils + >=sys-devel/bison-3.0.1 + sys-devel/flex + >=sys-devel/m4-1.4.3 + >=sys-devel/libtool-1.5.18" + +# Without USE=readline or libedit, the interactive "php -a" CLI will hang. +REQUIRED_USE=" + || ( cli cgi fpm apache2 embed ) + cli? ( ^^ ( readline libedit ) ) + truetype? ( gd zlib ) + vpx? ( gd zlib ) + cjk? ( gd zlib ) + exif? ( gd zlib ) + xpm? ( gd zlib ) + gd? ( zlib ) + simplexml? ( xml ) + soap? ( xml ) + wddx? ( xml ) + xmlrpc? ( || ( xml iconv ) ) + xmlreader? ( xml ) + xslt? ( xml ) + ldap-sasl? ( ldap ) + mhash? ( hash ) + phar? ( hash ) + recode? ( !imap !mysql !mysqli !libmysqlclient ) + libmysqlclient? ( || ( + mysql + mysqli + pdo + ) ) + + qdbm? ( !gdbm ) + readline? ( !libedit ) + sharedmem? ( !threads ) +" + +PHP_MV="$(ver_cut 1)" + +php_install_ini() { + local phpsapi="${1}" + + # work out where we are installing the ini file + php_set_ini_dir "${phpsapi}" + + # Always install the production INI file, bug 611214. + local phpinisrc="php.ini-production-${phpsapi}" + cp php.ini-production "${phpinisrc}" || die + + # default to /tmp for save_path, bug #282768 + sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die + + # Set the extension dir + sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \ + -i "${phpinisrc}" || die + + # Set the include path to point to where we want to find PEAR packages + sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die + + dodir "${PHP_INI_DIR#${EPREFIX}}" + insinto "${PHP_INI_DIR#${EPREFIX}}" + newins "${phpinisrc}" php.ini + + elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}" + elog + + dodir "${PHP_EXT_INI_DIR#${EPREFIX}}" + dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}" + + if use opcache; then + elog "Adding opcache to $PHP_EXT_INI_DIR" + echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \ + "${D}/${PHP_EXT_INI_DIR}"/opcache.ini + dosym "${PHP_EXT_INI_DIR#${EPREFIX}}/opcache.ini" \ + "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini" + fi + + # SAPI-specific handling + if [[ "${sapi}" == "fpm" ]] ; then + einfo "Installing FPM config file php-fpm.conf" + insinto "${PHP_INI_DIR#${EPREFIX}}" + doins sapi/fpm/php-fpm.conf + fi + + dodoc php.ini-{development,production} +} + +php_set_ini_dir() { + PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}" + PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext" + PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active" +} + +src_prepare() { + local patchdir="${WORKDIR}/php-patches-${PATCH_V}" + + eapply "${patchdir}/" + + # Copy test binaries from patches + local ext_src + for ext_src in exif iconv ; do + cp "${patchdir}/${ext_src}/"* "ext/${ext_src}/tests/" || die + done + + # Change PHP branding + # Get the alpha/beta/rc version + sed -re "s|^(PHP_EXTRA_VERSION=\").*(\")|\1-pl${PR/r/}-gentoo\2|g" \ + -i configure.in || die "Unable to change PHP branding" + + # Patch PHP to show Gentoo as the server platform + sed -e 's/PHP_UNAME=`uname -a | xargs`/PHP_UNAME=`uname -s -n -r -v | xargs`/g' \ + -i configure.in || die "Failed to fix server platform name" + + # Prevent PHP from activating the Apache config, + # as we will do that ourselves + sed -i \ + -e "s,-i -a -n php${PHP_MV},-i -n php${PHP_MV},g" \ + -e "s,-i -A -n php${PHP_MV},-i -n php${PHP_MV},g" \ + configure sapi/apache2filter/config.m4 sapi/apache2handler/config.m4 \ + || die + + # Patch PHP to support heimdal instead of mit-krb5 + if has_version "app-crypt/heimdal" ; then + sed -e 's|gssapi_krb5|gssapi|g' -i acinclude.m4 \ + || die "Failed to fix heimdal libname" + sed -e 's|PHP_ADD_LIBRARY(k5crypto, 1, $1)||g' -i acinclude.m4 \ + || die "Failed to fix heimdal crypt library reference" + fi + + eapply_user + + # Force rebuilding aclocal.m4 + rm -f aclocal.m4 || die "failed to remove aclocal.m4 in src_prepare" + + mv configure.in configure.ac || die + + eautoreconf + + if [[ ${CHOST} == *-darwin* ]] ; then + # http://bugs.php.net/bug.php?id=48795, bug #343481 + sed -i -e '/BUILD_CGI="\\$(CC)/s/CC/CXX/' configure || die + fi +} + +src_configure() { + addpredict /usr/share/snmp/mibs/.index #nowarn + addpredict /var/lib/net-snmp/mib_indexes #nowarn + + PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}" + + # The php-fpm config file wants localstatedir to be ${EPREFIX}/var + # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002. + local our_conf=( + --prefix="${PHP_DESTDIR}" + --mandir="${PHP_DESTDIR}/man" + --infodir="${PHP_DESTDIR}/info" + --libdir="${PHP_DESTDIR}/lib" + --with-libdir="$(get_libdir)" + --localstatedir="${EPREFIX}/var" + --without-pear + $(use_enable threads maintainer-zts) + ) + + our_conf+=( + $(use_enable bcmath bcmath) + $(use_with bzip2 bz2 "${EPREFIX}/usr") + $(use_enable calendar calendar) + $(use_enable coverage gcov) + $(use_enable ctype ctype) + $(use_with curl curl "${EPREFIX}/usr") + $(use_enable xml dom) + $(use_with enchant enchant "${EPREFIX}/usr") + $(use_enable exif exif) + $(use_enable fileinfo fileinfo) + $(use_enable filter filter) + $(use_enable ftp ftp) + $(use_with nls gettext "${EPREFIX}/usr") + $(use_with gmp gmp "${EPREFIX}/usr") + $(use_enable hash hash) + $(use_with mhash mhash "${EPREFIX}/usr") + $(use_with iconv iconv \ + $(use elibc_glibc || use elibc_musl || use elibc_FreeBSD || echo "${EPREFIX}/usr")) + $(use_enable intl intl) + $(use_enable ipv6 ipv6) + $(use_enable json json) + $(use_with kerberos kerberos "${EPREFIX}/usr") + $(use_enable xml libxml) + $(use_with xml libxml-dir "${EPREFIX}/usr") + $(use_enable unicode mbstring) + $(use_with crypt mcrypt "${EPREFIX}/usr") + $(use_with mssql mssql "${EPREFIX}/usr") + $(use_with unicode onig "${EPREFIX}/usr") + $(use_with ssl openssl "${EPREFIX}/usr") + $(use_with ssl openssl-dir "${EPREFIX}/usr") + $(use_enable pcntl pcntl) + $(use_enable phar phar) + $(use_enable pdo pdo) + $(use_enable opcache opcache) + $(use_with postgres pgsql "${EPREFIX}/usr") + $(use_enable posix posix) + $(use_with spell pspell "${EPREFIX}/usr") + $(use_with recode recode "${EPREFIX}/usr") + $(use_enable simplexml simplexml) + $(use_enable sharedmem shmop) + $(use_with snmp snmp "${EPREFIX}/usr") + $(use_enable soap soap) + $(use_enable sockets sockets) + $(use_with sqlite sqlite3 "${EPREFIX}/usr") + $(use_with sybase-ct sybase-ct "${EPREFIX}/usr") + $(use_enable sysvipc sysvmsg) + $(use_enable sysvipc sysvsem) + $(use_enable sysvipc sysvshm) + $(use_with tidy tidy "${EPREFIX}/usr") + $(use_enable tokenizer tokenizer) + $(use_enable wddx wddx) + $(use_enable xml xml) + $(use_enable xmlreader xmlreader) + $(use_enable xmlwriter xmlwriter) + $(use_with xmlrpc xmlrpc) + $(use_with xslt xsl "${EPREFIX}/usr") + $(use_enable zip zip) + $(use_with zlib zlib "${EPREFIX}/usr") + $(use_enable debug debug) + ) + + # DBA support + if use cdb || use berkdb || use flatfile || use gdbm || use inifile \ + || use qdbm ; then + our_conf+=( "--enable-dba${shared}" ) + fi + + # DBA drivers support + our_conf+=( + $(use_with cdb cdb) + $(use_with berkdb db4 "${EPREFIX}/usr") + $(use_enable flatfile flatfile) + $(use_with gdbm gdbm "${EPREFIX}/usr") + $(use_enable inifile inifile) + $(use_with qdbm qdbm "${EPREFIX}/usr") + ) + + # Support for the GD graphics library + our_conf+=( + $(use_with truetype freetype-dir "${EPREFIX}/usr") + $(use_with truetype t1lib "${EPREFIX}/usr") + $(use_enable cjk gd-jis-conv) + $(use_with gd jpeg-dir "${EPREFIX}/usr") + $(use_with gd png-dir "${EPREFIX}/usr") + $(use_with xpm xpm-dir "${EPREFIX}/usr") + $(use_with vpx vpx-dir "${EPREFIX}/usr") + ) + # enable gd last, so configure can pick up the previous settings + our_conf+=( $(use_with gd gd) ) + + # IMAP support + if use imap ; then + our_conf+=( + $(use_with imap imap "${EPREFIX}/usr") + $(use_with ssl imap-ssl "${EPREFIX}/usr") + ) + fi + + # Interbase/firebird support + our_conf+=( $(use_with firebird interbase "${EPREFIX}/usr") ) + + # LDAP support + if use ldap ; then + our_conf+=( + $(use_with ldap ldap "${EPREFIX}/usr") + $(use_with ldap-sasl ldap-sasl "${EPREFIX}/usr") + ) + fi + + # MySQL support + local mysqllib="mysqlnd" + local mysqlilib="mysqlnd" + use libmysqlclient && mysqllib="${EPREFIX}/usr" + use libmysqlclient && mysqlilib="${EPREFIX}/usr/bin/mysql_config" + + our_conf+=( $(use_with mysql mysql "${mysqllib}") ) + our_conf+=( $(use_with mysqli mysqli "${mysqlilib}") ) + + local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock" + if use mysql || use mysqli ; then + our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") ) + fi + + # ODBC support + our_conf+=( + $(use_with odbc unixODBC "${EPREFIX}/usr") + $(use_with iodbc iodbc "${EPREFIX}/usr") + ) + + # Oracle support + our_conf+=( $(use_with oci8-instant-client oci8) ) + + # PDO support + if use pdo ; then + our_conf+=( + $(use_with mssql pdo-dblib) + $(use_with mysql pdo-mysql "${mysqllib}") + $(use_with postgres pdo-pgsql) + $(use_with sqlite pdo-sqlite "${EPREFIX}/usr") + $(use_with firebird pdo-firebird "${EPREFIX}/usr") + $(use_with odbc pdo-odbc "unixODBC,${EPREFIX}/usr") + $(use_with oci8-instant-client pdo-oci) + ) + fi + + # readline/libedit support + our_conf+=( + $(use_with readline readline "${EPREFIX}/usr") + $(use_with libedit libedit "${EPREFIX}/usr") + ) + + # Session support + if use session ; then + our_conf+=( $(use_with sharedmem mm "${EPREFIX}/usr") ) + else + our_conf+=( $(use_enable session session) ) + fi + + # Use pic for shared modules such as apache2's mod_php + our_conf+=( --with-pic ) + + # we use the system copy of pcre + # --with-pcre-regex affects ext/pcre + # --with-pcre-dir affects ext/filter and ext/zip + our_conf+=( + --with-pcre-regex="${EPREFIX}/usr" + --with-pcre-dir="${EPREFIX}/usr" + ) + + # Catch CFLAGS problems + # Fixes bug #14067. + # Changed order to run it in reverse for bug #32022 and #12021. + replace-cpu-flags "k6*" "i586" + + # Cache the ./configure test results between SAPIs. + our_conf+=( --cache-file="${T}/config.cache" ) + + # Support user-passed configuration parameters + our_conf+=( ${EXTRA_ECONF:-} ) + + # Support the Apache2 extras, they must be set globally for all + # SAPIs to work correctly, especially for external PHP extensions + + mkdir -p "${WORKDIR}/sapis-build" || die + for one_sapi in $SAPIS ; do + use "${one_sapi}" || continue + php_set_ini_dir "${one_sapi}" + + # The BUILD_DIR variable is used to determine where to output + # the files that autotools creates. This was all originally + # based on the autotools-utils eclass. + BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}" + cp -a "${S}" "${BUILD_DIR}" || die + cd "${BUILD_DIR}" || die + + local sapi_conf=( + --with-config-file-path="${PHP_INI_DIR}" + --with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}" + ) + + for sapi in $SAPIS ; do + case "$sapi" in + cli|cgi|embed|fpm) + if [[ "${one_sapi}" == "${sapi}" ]] ; then + sapi_conf+=( "--enable-${sapi}" ) + if [[ "fpm" == "${sapi}" ]] ; then + sapi_conf+=( + $(use_with acl fpm-acl) + $(use_with systemd fpm-systemd) + ) + fi + else + sapi_conf+=( "--disable-${sapi}" ) + fi + ;; + + apache2) + if [[ "${one_sapi}" == "${sapi}" ]] ; then + sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" ) + else + sapi_conf+=( --without-apxs2 ) + fi + ;; + esac + done + + # Construct the $myeconfargs array by concatenating $our_conf + # (the common args) and $sapi_conf (the SAPI-specific args). + local myeconfargs=( "${our_conf[@]}" ) + myeconfargs+=( "${sapi_conf[@]}" ) + + pushd "${BUILD_DIR}" > /dev/null || die + econf "${myeconfargs[@]}" + popd > /dev/null || die + done +} + +src_compile() { + # snmp seems to run during src_compile, too (bug #324739) + addpredict /usr/share/snmp/mibs/.index #nowarn + addpredict /var/lib/net-snmp/mib_indexes #nowarn + + for sapi in ${SAPIS} ; do + if use "${sapi}"; then + cd "${WORKDIR}/sapis-build/$sapi" || \ + die "Failed to change dir to ${WORKDIR}/sapis-build/$1" + emake + fi + done +} + +src_install() { + # see bug #324739 for what happens when we don't have that + addpredict /usr/share/snmp/mibs/.index #nowarn + + # grab the first SAPI that got built and install common files from there + local first_sapi="" + for sapi in $SAPIS ; do + if use $sapi ; then + first_sapi=$sapi + break + fi + done + + # Makefile forgets to create this before trying to write to it... + dodir "${PHP_DESTDIR#${EPREFIX}}/bin" + + # Install php environment (without any sapis) + cd "${WORKDIR}/sapis-build/$first_sapi" || die + emake INSTALL_ROOT="${D}" \ + install-build install-headers install-programs + + local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)" + + # Create the directory where we'll put version-specific php scripts + keepdir "/usr/share/php${PHP_MV}" + + local sapi="", file="" + local sapi_list="" + + for sapi in ${SAPIS}; do + if use "${sapi}" ; then + einfo "Installing SAPI: ${sapi}" + cd "${WORKDIR}/sapis-build/${sapi}" || die + + if [[ "${sapi}" == "apache2" ]] ; then + # We're specifically not using emake install-sapi as libtool + # may cause unnecessary relink failures (see bug #351266) + insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/" + newins ".libs/libphp5$(get_libname)" \ + "libphp${PHP_MV}$(get_libname)" + keepdir "/usr/$(get_libdir)/apache2/modules" + else + # needed each time, php_install_ini would reset it + local dest="${PHP_DESTDIR#${EPREFIX}}" + into "${dest}" + case "$sapi" in + cli) + source="sapi/cli/php" + ;; + cgi) + source="sapi/cgi/php-cgi" + ;; + fpm) + source="sapi/fpm/php-fpm" + ;; + embed) + source="libs/libphp${PHP_MV}$(get_libname)" + ;; + *) + die "unhandled sapi in src_install" + ;; + esac + + if [[ "${source}" == *"$(get_libname)" ]]; then + dolib.so "${source}" + else + dobin "${source}" + local name="$(basename ${source})" + dosym "${dest}/bin/${name}" "/usr/bin/${name}${SLOT}" + fi + fi + + php_install_ini "${sapi}" + + # construct correct SAPI string for php-config + # thanks to ferringb for the bash voodoo + if [[ "${sapi}" == "apache2" ]]; then + sapi_list="${sapi_list:+${sapi_list} }apache2handler" + else + sapi_list="${sapi_list:+${sapi_list} }${sapi}" + fi + fi + done + + # Installing opcache module + if use opcache ; then + into "${PHP_DESTDIR#${EPREFIX}}" + dolib.so "modules/opcache$(get_libname)" + fi + + # Install env.d files + newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}" + sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die + sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die + + # set php-config variable correctly (bug #278439) + sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \ + "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die + + if use fpm ; then + if use systemd; then + systemd_newunit "${FILESDIR}/php-fpm_at.service" \ + "php-fpm@${SLOT}.service" + else + systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \ + "php-fpm@${SLOT}.service" + fi + fi +} + +src_test() { + echo ">>> Test phase [test]: ${CATEGORY}/${PF}" + PHP_BIN="${WORKDIR}/sapis-build/cli/sapi/cli/php" + if [[ ! -x "${PHP_BIN}" ]] ; then + ewarn "Test phase requires USE=cli, skipping" + return + else + export TEST_PHP_EXECUTABLE="${PHP_BIN}" + fi + + if [[ -x "${WORKDIR}/sapis/cgi/php-cgi" ]] ; then + export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis/cgi/php-cgi" + fi + + REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \ + "session.save_path=${T}" \ + "${WORKDIR}/sapis-build/cli/run-tests.php" -n -q -d \ + "session.save_path=${T}" + + for name in ${EXPECTED_TEST_FAILURES}; do + mv "${name}.out" "${name}.out.orig" 2>/dev/null || die + done + + local failed="$(find -name '*.out')" + if [[ ${failed} != "" ]] ; then + ewarn "The following test cases failed unexpectedly:" + for name in ${failed}; do + ewarn " ${name/.out/}" + done + else + einfo "No unexpected test failures, all fine" + fi + + if [[ ${PHP_SHOW_UNEXPECTED_TEST_PASS} == "1" ]] ; then + local passed="" + for name in ${EXPECTED_TEST_FAILURES}; do + [[ -f "${name}.diff" ]] && continue + passed="${passed} ${name}" + done + if [[ ${passed} != "" ]] ; then + einfo "The following test cases passed unexpectedly:" + for name in ${passed}; do + ewarn " ${passed}" + done + else + einfo "None of the known-to-fail tests passed, all fine" + fi + fi +} + +pkg_postinst() { + # Output some general info to the user + if use apache2 ; then + elog + elog "To enable PHP in apache, you will need to add \"-D PHP\" to" + elog "your apache2 command. OpenRC users can append that string to" + elog "APACHE2_OPTS in /etc/conf.d/apache2." + elog + elog "The apache module configuration file 70_mod_php.conf is" + elog "provided (and maintained) by eselect-php." + elog + fi + + # Create the symlinks for php + for m in ${SAPIS}; do + [[ ${m} == 'embed' ]] && continue; + if use $m ; then + local ci=$(eselect php show $m) + if [[ -z $ci ]]; then + eselect php set $m php${SLOT} || die + einfo "Switched ${m} to use php:${SLOT}" + einfo + elif [[ $ci != "php${SLOT}" ]] ; then + elog "To switch $m to use php:${SLOT}, run" + elog " eselect php set $m php${SLOT}" + elog + fi + fi + done + + # Remove dead symlinks for SAPIs that were just disabled. For + # example, if the user has the cgi SAPI enabled, then he has an + # eselect-php symlink for it. If he later reinstalls PHP with + # USE="-cgi", that symlink will break. This call to eselect is + # supposed to remove that dead link per bug 572436. + eselect php cleanup || die + + if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then + elog "To build extensions for this version of PHP, you will need to" + elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable." + elog + fi + + # Warn about the removal of PHP_INI_VERSION if the user has it set. + if [[ -n "${PHP_INI_VERSION}" ]]; then + ewarn 'The PHP_INI_VERSION variable has been phased out. You may' + ewarn 'remove it from your configuration at your convenience. See' + ewarn + ewarn ' https://bugs.gentoo.org/611214' + ewarn + ewarn 'for more information.' + fi + + elog "For details on how version slotting works, please see" + elog "the wiki:" + elog + elog " https://wiki.gentoo.org/wiki/PHP" + elog +} + +pkg_postrm() { + # This serves two purposes. First, if we have just removed the last + # installed version of PHP, then this will remove any dead symlinks + # belonging to eselect-php. Second, if a user upgrades slots from + # (say) 5.6 to 7.0 and depcleans the old slot, then this will update + # his existing symlinks to point to the new 7.0 installation. The + # latter is bug 432962. + # + # Note: the eselect-php package may not be installed at this point, + # so we can't die() if this command fails. + eselect php cleanup +} diff --git a/dev-lang/php/php-7.2.22.ebuild b/dev-lang/php/php-7.2.22.ebuild new file mode 100644 index 000000000000..4156c8c952e9 --- /dev/null +++ b/dev-lang/php/php-7.2.22.ebuild @@ -0,0 +1,749 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +inherit flag-o-matic systemd autotools + +DESCRIPTION="The PHP language runtime engine" +HOMEPAGE="https://php.net/" +SRC_URI="https://php.net/distributions/${P}.tar.xz" + +LICENSE="PHP-3.01 + BSD + Zend-2.0 + bcmath? ( LGPL-2.1+ ) + fpm? ( BSD-2 ) + gd? ( gd ) + unicode? ( BSD-2 LGPL-2.1 )" + +SLOT="$(ver_cut 1-2)" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos" + +# We can build the following SAPIs in the given order +SAPIS="embed cli cgi fpm apache2 phpdbg" + +# SAPIs and SAPI-specific USE flags (cli SAPI is default on): +IUSE="${IUSE} + ${SAPIS/cli/+cli} + threads" + +IUSE="${IUSE} acl argon2 bcmath berkdb bzip2 calendar cdb cjk + coverage +ctype curl debug + enchant exif +fileinfo +filter firebird + +flatfile ftp gd gdbm gmp +hash +iconv imap inifile + intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl lmdb + mhash mssql mysql mysqli nls + oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm + readline recode selinux +session session-mm sharedmem + +simplexml snmp soap sockets sodium spell sqlite ssl + sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode wddx webp + +xml xmlreader xmlwriter xmlrpc xpm xslt zip zip-encryption zlib" + +# The supported (that is, autodetected) versions of BDB are listed in +# the ./configure script. Other versions *work*, but we need to stick to +# the ones that can be detected to avoid a repeat of bug #564824. +COMMON_DEPEND=" + >=app-eselect/eselect-php-0.9.1[apache2?,fpm?] + >=dev-libs/libpcre-8.32[unicode] + fpm? ( acl? ( sys-apps/acl ) ) + apache2? ( || ( >=www-servers/apache-2.4[apache2_modules_unixd,threads=] + =net-misc/curl-7.10.5 ) + enchant? ( =sys-libs/gdbm-1.8.0:0= ) + gmp? ( dev-libs/gmp:0= ) + iconv? ( virtual/libiconv ) + imap? ( virtual/imap-c-client[kerberos=,ssl=] ) + intl? ( dev-libs/icu:= ) + iodbc? ( dev-db/libiodbc ) + kerberos? ( virtual/krb5 ) + ldap? ( >=net-nds/openldap-1.2.11 ) + ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 ) + libedit? ( || ( sys-freebsd/freebsd-lib dev-libs/libedit ) ) + lmdb? ( dev-db/lmdb:= ) + mssql? ( dev-db/freetds[mssql] ) + nls? ( sys-devel/gettext ) + oci8-instant-client? ( dev-db/oracle-instantclient-basic ) + odbc? ( >=dev-db/unixODBC-1.8.13 ) + postgres? ( dev-db/postgresql:* ) + qdbm? ( dev-db/qdbm ) + readline? ( sys-libs/readline:0= ) + recode? ( app-text/recode ) + session-mm? ( dev-libs/mm ) + simplexml? ( >=dev-libs/libxml2-2.6.8 ) + snmp? ( >=net-analyzer/net-snmp-5.2 ) + soap? ( >=dev-libs/libxml2-2.6.8 ) + sodium? ( dev-libs/libsodium:= ) + spell? ( >=app-text/aspell-0.50 ) + sqlite? ( >=dev-db/sqlite-3.7.6.3 ) + ssl? ( + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl:0= ) + ) + tidy? ( || ( app-text/tidy-html5 app-text/htmltidy ) ) + tokyocabinet? ( dev-db/tokyocabinet ) + truetype? ( =media-libs/freetype-2* ) + unicode? ( dev-libs/oniguruma:= ) + wddx? ( >=dev-libs/libxml2-2.6.8 ) + webp? ( media-libs/libwebp:0= ) + xml? ( >=dev-libs/libxml2-2.6.8 ) + xmlrpc? ( >=dev-libs/libxml2-2.6.8 virtual/libiconv ) + xmlreader? ( >=dev-libs/libxml2-2.6.8 ) + xmlwriter? ( >=dev-libs/libxml2-2.6.8 ) + xpm? ( x11-libs/libXpm ) + xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 ) + zip? ( sys-libs/zlib:0= ) + zip-encryption? ( >=dev-libs/libzip-1.2.0:= ) + zlib? ( sys-libs/zlib:0= ) +" + +RDEPEND="${COMMON_DEPEND} + virtual/mta + fpm? ( + selinux? ( sec-policy/selinux-phpfpm ) + systemd? ( sys-apps/systemd ) )" + +# Bison isn't actually needed when building from a release tarball +# However, the configure script will warn if it's absent or if you +# have an incompatible version installed. See bug 593278. +DEPEND="${COMMON_DEPEND} + app-arch/xz-utils + >=sys-devel/bison-3.0.1" + +BDEPEND="virtual/pkgconfig" + +# Without USE=readline or libedit, the interactive "php -a" CLI will hang. +REQUIRED_USE=" + || ( cli cgi fpm apache2 embed phpdbg ) + cli? ( ^^ ( readline libedit ) ) + truetype? ( gd zlib ) + webp? ( gd zlib ) + cjk? ( gd zlib ) + exif? ( gd zlib ) + xpm? ( gd zlib ) + gd? ( zlib ) + simplexml? ( xml ) + soap? ( xml ) + wddx? ( xml ) + xmlrpc? ( || ( xml iconv ) ) + xmlreader? ( xml ) + xslt? ( xml ) + ldap-sasl? ( ldap ) + mhash? ( hash ) + phar? ( hash ) + qdbm? ( !gdbm ) + readline? ( !libedit ) + recode? ( !imap !mysqli !mysql ) + session-mm? ( session !threads ) + mysql? ( hash || ( mysqli pdo ) ) + mysqli? ( hash ) + zip-encryption? ( zip ) +" +PATCHES=( + "${FILESDIR}/php-freetype-2.9.1.patch" + "${FILESDIR}/php-7.2.13-intl-use-icu-namespace.patch" +) +RESTRICT="!test? ( test )" +PHP_MV="$(ver_cut 1)" + +php_install_ini() { + local phpsapi="${1}" + + # work out where we are installing the ini file + php_set_ini_dir "${phpsapi}" + + # Always install the production INI file, bug 611214. + local phpinisrc="php.ini-production-${phpsapi}" + cp php.ini-production "${phpinisrc}" || die + + # default to /tmp for save_path, bug #282768 + sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die + + # Set the extension dir + sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \ + -i "${phpinisrc}" || die + + # Set the include path to point to where we want to find PEAR packages + sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die + + dodir "${PHP_INI_DIR#${EPREFIX}}" + insinto "${PHP_INI_DIR#${EPREFIX}}" + newins "${phpinisrc}" php.ini + + elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}" + elog + + dodir "${PHP_EXT_INI_DIR#${EPREFIX}}" + dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}" + + if use opcache; then + elog "Adding opcache to $PHP_EXT_INI_DIR" + echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \ + "${D}/${PHP_EXT_INI_DIR}"/opcache.ini + dosym "${PHP_EXT_INI_DIR#${EPREFIX}}/opcache.ini" \ + "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini" + fi + + # SAPI-specific handling + if [[ "${sapi}" == "fpm" ]] ; then + einfo "Installing FPM config files php-fpm.conf and www.conf" + insinto "${PHP_INI_DIR#${EPREFIX}}" + doins sapi/fpm/php-fpm.conf + insinto "${PHP_INI_DIR#${EPREFIX}}/fpm.d" + doins sapi/fpm/www.conf + fi + + dodoc php.ini-{development,production} +} + +php_set_ini_dir() { + PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}" + PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext" + PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active" +} + +src_prepare() { + default + + # In php-7.x, the FPM pool configuration files have been split off + # of the main config. By default the pool config files go in + # e.g. /etc/php-fpm.d, which isn't slotted. So here we move the + # include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later + # we'll install the pool configuration file "www.conf" there. + php_set_ini_dir fpm + sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \ + sapi/fpm/php-fpm.conf.in \ + || die 'failed to move the include directory in php-fpm.conf' + + # Bug 669566 - necessary so that build tools are updated for commands like pecl + # Force rebuilding aclocal.m4 + rm -f aclocal.m4 || die "failed to remove aclocal.m4 in src_prepare" + eautoreconf +} + +src_configure() { + addpredict /usr/share/snmp/mibs/.index #nowarn + addpredict /var/lib/net-snmp/mib_indexes #nowarn + + PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}" + + # The php-fpm config file wants localstatedir to be ${EPREFIX}/var + # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002. + local our_conf=( + --prefix="${PHP_DESTDIR}" + --mandir="${PHP_DESTDIR}/man" + --infodir="${PHP_DESTDIR}/info" + --libdir="${PHP_DESTDIR}/lib" + --with-libdir="$(get_libdir)" + --localstatedir="${EPREFIX}/var" + --without-pear + $(use_enable threads maintainer-zts) + ) + + our_conf+=( + $(use_with argon2 password-argon2 "${EPREFIX}/usr") + $(use_enable bcmath bcmath) + $(use_with bzip2 bz2 "${EPREFIX}/usr") + $(use_enable calendar calendar) + $(use_enable coverage gcov) + $(use_enable ctype ctype) + $(use_with curl curl "${EPREFIX}/usr") + $(use_enable xml dom) + $(use_with enchant enchant "${EPREFIX}/usr") + $(use_enable exif exif) + $(use_enable fileinfo fileinfo) + $(use_enable filter filter) + $(use_enable ftp ftp) + $(use_with nls gettext "${EPREFIX}/usr") + $(use_with gmp gmp "${EPREFIX}/usr") + $(use_enable hash hash) + $(use_with mhash mhash "${EPREFIX}/usr") + $(use_with iconv iconv \ + $(use elibc_glibc || use elibc_musl || use elibc_FreeBSD || echo "${EPREFIX}/usr")) + $(use_enable intl intl) + $(use_enable ipv6 ipv6) + $(use_enable json json) + $(use_with kerberos kerberos "${EPREFIX}/usr") + $(use_enable xml libxml) + $(use_with xml libxml-dir "${EPREFIX}/usr") + $(use_enable unicode mbstring) + $(use_with unicode onig "${EPREFIX}/usr") + $(use_with ssl openssl "${EPREFIX}/usr") + $(use_with ssl openssl-dir "${EPREFIX}/usr") + $(use_enable pcntl pcntl) + $(use_enable phar phar) + $(use_enable pdo pdo) + $(use_enable opcache opcache) + $(use_with postgres pgsql "${EPREFIX}/usr") + $(use_enable posix posix) + $(use_with spell pspell "${EPREFIX}/usr") + $(use_with recode recode "${EPREFIX}/usr") + $(use_enable simplexml simplexml) + $(use_enable sharedmem shmop) + $(use_with snmp snmp "${EPREFIX}/usr") + $(use_enable soap soap) + $(use_enable sockets sockets) + $(use_with sodium sodium "${EPREFIX}/usr") + $(use_with sqlite sqlite3 "${EPREFIX}/usr") + $(use_enable sysvipc sysvmsg) + $(use_enable sysvipc sysvsem) + $(use_enable sysvipc sysvshm) + $(use_with tidy tidy "${EPREFIX}/usr") + $(use_enable tokenizer tokenizer) + $(use_enable wddx wddx) + $(use_enable xml xml) + $(use_enable xmlreader xmlreader) + $(use_enable xmlwriter xmlwriter) + $(use_with xmlrpc xmlrpc) + $(use_with xslt xsl "${EPREFIX}/usr") + $(use_enable zip zip) + $(use_with zip-encryption libzip "${EPREFIX}/usr") + $(use_with zlib zlib "${EPREFIX}/usr") + $(use_enable debug debug) + ) + + # DBA support + if use cdb || use berkdb || use flatfile || use gdbm || use inifile \ + || use qdbm || use lmdb || use tokyocabinet ; then + our_conf+=( "--enable-dba${shared}" ) + fi + + # DBA drivers support + our_conf+=( + $(use_with cdb cdb) + $(use_with berkdb db4 "${EPREFIX}/usr") + $(use_enable flatfile flatfile) + $(use_with gdbm gdbm "${EPREFIX}/usr") + $(use_enable inifile inifile) + $(use_with qdbm qdbm "${EPREFIX}/usr") + $(use_with lmdb lmdb "${EPREFIX}/usr") + ) + + # Support for the GD graphics library + our_conf+=( + $(use_with truetype freetype-dir "${EPREFIX}/usr") + $(use_enable cjk gd-jis-conv) + $(use_with gd jpeg-dir "${EPREFIX}/usr") + $(use_with gd png-dir "${EPREFIX}/usr") + $(use_with xpm xpm-dir "${EPREFIX}/usr") + ) + if use webp; then + our_conf+=( --with-webp-dir="${EPREFIX}/usr" ) + fi + # enable gd last, so configure can pick up the previous settings + our_conf+=( $(use_with gd gd) ) + + # IMAP support + if use imap ; then + our_conf+=( + $(use_with imap imap "${EPREFIX}/usr") + $(use_with ssl imap-ssl "${EPREFIX}/usr") + ) + fi + + # Interbase/firebird support + our_conf+=( $(use_with firebird interbase "${EPREFIX}/usr") ) + + # LDAP support + if use ldap ; then + our_conf+=( + $(use_with ldap ldap "${EPREFIX}/usr") + $(use_with ldap-sasl ldap-sasl "${EPREFIX}/usr") + ) + fi + + # MySQL support + local mysqllib="mysqlnd" + local mysqlilib="mysqlnd" + + our_conf+=( $(use_with mysqli mysqli "${mysqlilib}") ) + + local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock" + if use mysql || use mysqli ; then + our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") ) + fi + + # ODBC support + our_conf+=( + $(use_with odbc unixODBC "${EPREFIX}/usr") + $(use_with iodbc iodbc "${EPREFIX}/usr") + ) + + # Oracle support + our_conf+=( $(use_with oci8-instant-client oci8) ) + + # PDO support + if use pdo ; then + our_conf+=( + $(use_with mssql pdo-dblib "${EPREFIX}/usr") + $(use_with mysql pdo-mysql "${mysqllib}") + $(use_with postgres pdo-pgsql) + $(use_with sqlite pdo-sqlite "${EPREFIX}/usr") + $(use_with firebird pdo-firebird "${EPREFIX}/usr") + $(use_with odbc pdo-odbc "unixODBC,${EPREFIX}/usr") + $(use_with oci8-instant-client pdo-oci) + ) + fi + + # readline/libedit support + our_conf+=( + $(use_with readline readline "${EPREFIX}/usr") + $(use_with libedit libedit "${EPREFIX}/usr") + ) + + # Session support + if use session ; then + our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") ) + else + our_conf+=( $(use_enable session session) ) + fi + + # Use pic for shared modules such as apache2's mod_php + our_conf+=( --with-pic ) + + # we use the system copy of pcre + # --with-pcre-regex affects ext/pcre + # --with-pcre-dir affects ext/filter and ext/zip + # --with-pcre-valgrind cannot be enabled with system pcre + # Many arches don't support pcre-jit + our_conf+=( + --with-pcre-regex="${EPREFIX}/usr" + --with-pcre-dir="${EPREFIX}/usr" + --without-pcre-valgrind + --without-pcre-jit + ) + + # Catch CFLAGS problems + # Fixes bug #14067. + # Changed order to run it in reverse for bug #32022 and #12021. + replace-cpu-flags "k6*" "i586" + + # Cache the ./configure test results between SAPIs. + our_conf+=( --cache-file="${T}/config.cache" ) + + # Support user-passed configuration parameters + our_conf+=( ${EXTRA_ECONF:-} ) + + # Support the Apache2 extras, they must be set globally for all + # SAPIs to work correctly, especially for external PHP extensions + + mkdir -p "${WORKDIR}/sapis-build" || die + for one_sapi in $SAPIS ; do + use "${one_sapi}" || continue + php_set_ini_dir "${one_sapi}" + + # The BUILD_DIR variable is used to determine where to output + # the files that autotools creates. This was all originally + # based on the autotools-utils eclass. + BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}" + cp -a "${S}" "${BUILD_DIR}" || die + cd "${BUILD_DIR}" || die + + local sapi_conf=( + --with-config-file-path="${PHP_INI_DIR}" + --with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}" + ) + + for sapi in $SAPIS ; do + case "$sapi" in + cli|cgi|embed|fpm|phpdbg) + if [[ "${one_sapi}" == "${sapi}" ]] ; then + sapi_conf+=( "--enable-${sapi}" ) + if [[ "fpm" == "${sapi}" ]] ; then + sapi_conf+=( + $(use_with acl fpm-acl) + $(use_with systemd fpm-systemd) + ) + fi + else + sapi_conf+=( "--disable-${sapi}" ) + fi + ;; + + apache2) + if [[ "${one_sapi}" == "${sapi}" ]] ; then + sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" ) + else + sapi_conf+=( --without-apxs2 ) + fi + ;; + esac + done + + # Construct the $myeconfargs array by concatenating $our_conf + # (the common args) and $sapi_conf (the SAPI-specific args). + local myeconfargs=( "${our_conf[@]}" ) + myeconfargs+=( "${sapi_conf[@]}" ) + + pushd "${BUILD_DIR}" > /dev/null || die + econf "${myeconfargs[@]}" + popd > /dev/null || die + done +} + +src_compile() { + # snmp seems to run during src_compile, too (bug #324739) + addpredict /usr/share/snmp/mibs/.index #nowarn + addpredict /var/lib/net-snmp/mib_indexes #nowarn + + for sapi in ${SAPIS} ; do + if use "${sapi}"; then + cd "${WORKDIR}/sapis-build/$sapi" || \ + die "Failed to change dir to ${WORKDIR}/sapis-build/$1" + emake + fi + done +} + +src_install() { + # see bug #324739 for what happens when we don't have that + addpredict /usr/share/snmp/mibs/.index #nowarn + + # grab the first SAPI that got built and install common files from there + local first_sapi="" + for sapi in $SAPIS ; do + if use $sapi ; then + first_sapi=$sapi + break + fi + done + + # Makefile forgets to create this before trying to write to it... + dodir "${PHP_DESTDIR#${EPREFIX}}/bin" + + # Install php environment (without any sapis) + cd "${WORKDIR}/sapis-build/$first_sapi" || die + emake INSTALL_ROOT="${D}" \ + install-build install-headers install-programs + + local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)" + + # Create the directory where we'll put version-specific php scripts + keepdir "/usr/share/php${PHP_MV}" + + local sapi="", file="" + local sapi_list="" + + for sapi in ${SAPIS}; do + if use "${sapi}" ; then + einfo "Installing SAPI: ${sapi}" + cd "${WORKDIR}/sapis-build/${sapi}" || die + + if [[ "${sapi}" == "apache2" ]] ; then + # We're specifically not using emake install-sapi as libtool + # may cause unnecessary relink failures (see bug #351266) + insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/" + newins ".libs/libphp${PHP_MV}$(get_libname)" \ + "libphp${PHP_MV}$(get_libname)" + keepdir "/usr/$(get_libdir)/apache2/modules" + else + # needed each time, php_install_ini would reset it + local dest="${PHP_DESTDIR#${EPREFIX}}" + into "${dest}" + case "$sapi" in + cli) + source="sapi/cli/php" + ;; + cgi) + source="sapi/cgi/php-cgi" + ;; + fpm) + source="sapi/fpm/php-fpm" + ;; + embed) + source="libs/libphp${PHP_MV}$(get_libname)" + ;; + phpdbg) + source="sapi/phpdbg/phpdbg" + ;; + *) + die "unhandled sapi in src_install" + ;; + esac + + if [[ "${source}" == *"$(get_libname)" ]]; then + dolib.so "${source}" + else + dobin "${source}" + local name="$(basename ${source})" + dosym "${dest}/bin/${name}" "/usr/bin/${name}${SLOT}" + fi + fi + + php_install_ini "${sapi}" + + # construct correct SAPI string for php-config + # thanks to ferringb for the bash voodoo + if [[ "${sapi}" == "apache2" ]]; then + sapi_list="${sapi_list:+${sapi_list} }apache2handler" + else + sapi_list="${sapi_list:+${sapi_list} }${sapi}" + fi + fi + done + + # Installing opcache module + if use opcache ; then + into "${PHP_DESTDIR#${EPREFIX}}" + dolib.so "modules/opcache$(get_libname)" + fi + + # Install env.d files + newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}" + sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die + sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die + + # set php-config variable correctly (bug #278439) + sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \ + "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die + + if use fpm ; then + if use systemd; then + systemd_newunit "${FILESDIR}/php-fpm_at.service" \ + "php-fpm@${SLOT}.service" + else + systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \ + "php-fpm@${SLOT}.service" + fi + fi +} + +src_test() { + echo ">>> Test phase [test]: ${CATEGORY}/${PF}" + PHP_BIN="${WORKDIR}/sapis-build/cli/sapi/cli/php" + if [[ ! -x "${PHP_BIN}" ]] ; then + ewarn "Test phase requires USE=cli, skipping" + return + else + export TEST_PHP_EXECUTABLE="${PHP_BIN}" + fi + + if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then + export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" + fi + + if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then + export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" + fi + + REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \ + "session.save_path=${T}" \ + "${WORKDIR}/sapis-build/cli/run-tests.php" -n -q -d \ + "session.save_path=${T}" + + for name in ${EXPECTED_TEST_FAILURES}; do + mv "${name}.out" "${name}.out.orig" 2>/dev/null || die + done + + local failed="$(find -name '*.out')" + if [[ ${failed} != "" ]] ; then + ewarn "The following test cases failed unexpectedly:" + for name in ${failed}; do + ewarn " ${name/.out/}" + done + else + einfo "No unexpected test failures, all fine" + fi + + if [[ ${PHP_SHOW_UNEXPECTED_TEST_PASS} == "1" ]] ; then + local passed="" + for name in ${EXPECTED_TEST_FAILURES}; do + [[ -f "${name}.diff" ]] && continue + passed="${passed} ${name}" + done + if [[ ${passed} != "" ]] ; then + einfo "The following test cases passed unexpectedly:" + for name in ${passed}; do + ewarn " ${passed}" + done + else + einfo "None of the known-to-fail tests passed, all fine" + fi + fi +} + +pkg_postinst() { + # Output some general info to the user + if use apache2 ; then + elog + elog "To enable PHP in apache, you will need to add \"-D PHP\" to" + elog "your apache2 command. OpenRC users can append that string to" + elog "APACHE2_OPTS in /etc/conf.d/apache2." + elog + elog "The apache module configuration file 70_mod_php.conf is" + elog "provided (and maintained) by eselect-php." + elog + fi + + # Create the symlinks for php + for m in ${SAPIS}; do + [[ ${m} == 'embed' ]] && continue; + if use $m ; then + local ci=$(eselect php show $m) + if [[ -z $ci ]]; then + eselect php set $m php${SLOT} || die + einfo "Switched ${m} to use php:${SLOT}" + einfo + elif [[ $ci != "php${SLOT}" ]] ; then + elog "To switch $m to use php:${SLOT}, run" + elog " eselect php set $m php${SLOT}" + elog + fi + fi + done + + # Remove dead symlinks for SAPIs that were just disabled. For + # example, if the user has the cgi SAPI enabled, then he has an + # eselect-php symlink for it. If he later reinstalls PHP with + # USE="-cgi", that symlink will break. This call to eselect is + # supposed to remove that dead link per bug 572436. + eselect php cleanup || die + + if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then + elog "To build extensions for this version of PHP, you will need to" + elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable." + elog + fi + + # Warn about the removal of PHP_INI_VERSION if the user has it set. + if [[ -n "${PHP_INI_VERSION}" ]]; then + ewarn 'The PHP_INI_VERSION variable has been phased out. You may' + ewarn 'remove it from your configuration at your convenience. See' + ewarn + ewarn ' https://bugs.gentoo.org/611214' + ewarn + ewarn 'for more information.' + fi + + elog "For details on how version slotting works, please see" + elog "the wiki:" + elog + elog " https://wiki.gentoo.org/wiki/PHP" + elog +} + +pkg_postrm() { + # This serves two purposes. First, if we have just removed the last + # installed version of PHP, then this will remove any dead symlinks + # belonging to eselect-php. Second, if a user upgrades slots from + # (say) 5.6 to 7.0 and depcleans the old slot, then this will update + # his existing symlinks to point to the new 7.0 installation. The + # latter is bug 432962. + # + # Note: the eselect-php package may not be installed at this point, + # so we can't die() if this command fails. + eselect php cleanup +} diff --git a/dev-lang/php/php-7.3.9.ebuild b/dev-lang/php/php-7.3.9.ebuild new file mode 100644 index 000000000000..eb9e3727c510 --- /dev/null +++ b/dev-lang/php/php-7.3.9.ebuild @@ -0,0 +1,750 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +inherit flag-o-matic systemd autotools + +MY_PV=${PV/_rc/RC} +DESCRIPTION="The PHP language runtime engine" +HOMEPAGE="https://php.net/" +SRC_URI="https://php.net/distributions/${P}.tar.xz" + +LICENSE="PHP-3.01 + BSD + Zend-2.0 + bcmath? ( LGPL-2.1+ ) + fpm? ( BSD-2 ) + gd? ( gd ) + unicode? ( BSD-2 LGPL-2.1 )" + +SLOT="$(ver_cut 1-2)" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos" + +S="${WORKDIR}/${PN}-${MY_PV}" + +# We can build the following SAPIs in the given order +SAPIS="embed cli cgi fpm apache2 phpdbg" + +# SAPIs and SAPI-specific USE flags (cli SAPI is default on): +IUSE="${IUSE} + ${SAPIS/cli/+cli} + threads" + +IUSE="${IUSE} acl argon2 bcmath berkdb bzip2 calendar cdb cjk + coverage +ctype curl debug + enchant exif +fileinfo +filter firebird + +flatfile ftp gd gdbm gmp +hash +iconv imap inifile + intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl lmdb + mhash mssql mysql mysqli nls + oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm + readline recode selinux +session session-mm sharedmem + +simplexml snmp soap sockets sodium spell sqlite ssl + sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode wddx webp + +xml xmlreader xmlwriter xmlrpc xpm xslt zip zip-encryption zlib" + +# The supported (that is, autodetected) versions of BDB are listed in +# the ./configure script. Other versions *work*, but we need to stick to +# the ones that can be detected to avoid a repeat of bug #564824. +COMMON_DEPEND=" + >=app-eselect/eselect-php-0.9.1[apache2?,fpm?] + >=dev-libs/libpcre2-10.30[unicode] + fpm? ( acl? ( sys-apps/acl ) ) + apache2? ( || ( >=www-servers/apache-2.4[apache2_modules_unixd,threads=] + =net-misc/curl-7.10.5 ) + enchant? ( =sys-libs/zlib-1.2.0.4 ) + gdbm? ( >=sys-libs/gdbm-1.8.0:0= ) + gmp? ( dev-libs/gmp:0= ) + iconv? ( virtual/libiconv ) + imap? ( virtual/imap-c-client[kerberos=,ssl=] ) + intl? ( dev-libs/icu:= ) + iodbc? ( dev-db/libiodbc ) + kerberos? ( virtual/krb5 ) + ldap? ( >=net-nds/openldap-1.2.11 ) + ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 ) + libedit? ( || ( sys-freebsd/freebsd-lib dev-libs/libedit ) ) + lmdb? ( dev-db/lmdb:= ) + mssql? ( dev-db/freetds[mssql] ) + nls? ( sys-devel/gettext ) + oci8-instant-client? ( dev-db/oracle-instantclient-basic ) + odbc? ( >=dev-db/unixODBC-1.8.13 ) + postgres? ( dev-db/postgresql:* ) + qdbm? ( dev-db/qdbm ) + readline? ( sys-libs/readline:0= ) + recode? ( app-text/recode ) + session-mm? ( dev-libs/mm ) + simplexml? ( >=dev-libs/libxml2-2.6.8 ) + snmp? ( >=net-analyzer/net-snmp-5.2 ) + soap? ( >=dev-libs/libxml2-2.6.8 ) + sodium? ( dev-libs/libsodium:= ) + spell? ( >=app-text/aspell-0.50 ) + sqlite? ( >=dev-db/sqlite-3.7.6.3 ) + ssl? ( + !libressl? ( >=dev-libs/openssl-1.0.1:0= ) + libressl? ( dev-libs/libressl:0= ) + ) + tidy? ( || ( app-text/tidy-html5 app-text/htmltidy ) ) + tokyocabinet? ( dev-db/tokyocabinet ) + truetype? ( =media-libs/freetype-2* ) + unicode? ( dev-libs/oniguruma:= ) + wddx? ( >=dev-libs/libxml2-2.6.8 ) + webp? ( media-libs/libwebp:0= ) + xml? ( >=dev-libs/libxml2-2.6.8 ) + xmlrpc? ( >=dev-libs/libxml2-2.6.8 virtual/libiconv ) + xmlreader? ( >=dev-libs/libxml2-2.6.8 ) + xmlwriter? ( >=dev-libs/libxml2-2.6.8 ) + xpm? ( x11-libs/libXpm ) + xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 ) + zip? ( >=sys-libs/zlib-1.2.0.4:0= ) + zip-encryption? ( >=dev-libs/libzip-1.2.0:= ) + zlib? ( >=sys-libs/zlib-1.2.0.4:0= ) +" + +RDEPEND="${COMMON_DEPEND} + virtual/mta + fpm? ( + selinux? ( sec-policy/selinux-phpfpm ) + systemd? ( sys-apps/systemd ) )" + +# Bison isn't actually needed when building from a release tarball +# However, the configure script will warn if it's absent or if you +# have an incompatible version installed. See bug 593278. +DEPEND="${COMMON_DEPEND} + app-arch/xz-utils + >=sys-devel/bison-3.0.1" + +BDEPEND="virtual/pkgconfig" + +# Without USE=readline or libedit, the interactive "php -a" CLI will hang. +REQUIRED_USE=" + || ( cli cgi fpm apache2 embed phpdbg ) + cli? ( ^^ ( readline libedit ) ) + truetype? ( gd zlib ) + webp? ( gd zlib ) + cjk? ( gd zlib ) + exif? ( gd zlib ) + xpm? ( gd zlib ) + gd? ( zlib ) + simplexml? ( xml ) + soap? ( xml ) + wddx? ( xml ) + xmlrpc? ( || ( xml iconv ) ) + xmlreader? ( xml ) + xslt? ( xml ) + ldap-sasl? ( ldap ) + mhash? ( hash ) + phar? ( hash ) + qdbm? ( !gdbm ) + readline? ( !libedit ) + recode? ( !imap !mysqli !mysql ) + session-mm? ( session !threads ) + mysql? ( || ( mysqli pdo ) ) + zip-encryption? ( zip ) +" +PATCHES=( + "${FILESDIR}/php-freetype-2.9.1.patch" +) + +PHP_MV="$(ver_cut 1)" + +php_install_ini() { + local phpsapi="${1}" + + # work out where we are installing the ini file + php_set_ini_dir "${phpsapi}" + + # Always install the production INI file, bug 611214. + local phpinisrc="php.ini-production-${phpsapi}" + cp php.ini-production "${phpinisrc}" || die + + # default to /tmp for save_path, bug #282768 + sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die + + # Set the extension dir + sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \ + -i "${phpinisrc}" || die + + # Set the include path to point to where we want to find PEAR packages + sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die + + dodir "${PHP_INI_DIR#${EPREFIX}}" + insinto "${PHP_INI_DIR#${EPREFIX}}" + newins "${phpinisrc}" php.ini + + elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}" + elog + + dodir "${PHP_EXT_INI_DIR#${EPREFIX}}" + dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}" + + if use opcache; then + elog "Adding opcache to $PHP_EXT_INI_DIR" + echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \ + "${D}/${PHP_EXT_INI_DIR}"/opcache.ini + dosym "${PHP_EXT_INI_DIR#${EPREFIX}}/opcache.ini" \ + "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini" + fi + + # SAPI-specific handling + if [[ "${sapi}" == "fpm" ]] ; then + einfo "Installing FPM config files php-fpm.conf and www.conf" + insinto "${PHP_INI_DIR#${EPREFIX}}" + doins sapi/fpm/php-fpm.conf + insinto "${PHP_INI_DIR#${EPREFIX}}/fpm.d" + doins sapi/fpm/www.conf + fi + + dodoc php.ini-{development,production} +} + +php_set_ini_dir() { + PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}" + PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext" + PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active" +} + +src_prepare() { + default + + # In php-7.x, the FPM pool configuration files have been split off + # of the main config. By default the pool config files go in + # e.g. /etc/php-fpm.d, which isn't slotted. So here we move the + # include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later + # we'll install the pool configuration file "www.conf" there. + php_set_ini_dir fpm + sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \ + sapi/fpm/php-fpm.conf.in \ + || die 'failed to move the include directory in php-fpm.conf' + + # Bug 669566 - necessary so that build tools are updated for commands like pecl + # Force rebuilding aclocal.m4 + rm -f aclocal.m4 || die "failed to remove aclocal.m4 in src_prepare" + eautoreconf +} + +src_configure() { + addpredict /usr/share/snmp/mibs/.index #nowarn + addpredict /var/lib/net-snmp/mib_indexes #nowarn + + PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}" + + # The php-fpm config file wants localstatedir to be ${EPREFIX}/var + # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002. + local our_conf=( + --prefix="${PHP_DESTDIR}" + --mandir="${PHP_DESTDIR}/man" + --infodir="${PHP_DESTDIR}/info" + --libdir="${PHP_DESTDIR}/lib" + --with-libdir="$(get_libdir)" + --localstatedir="${EPREFIX}/var" + --without-pear + $(use_enable threads maintainer-zts) + ) + + our_conf+=( + $(use_with argon2 password-argon2 "${EPREFIX}/usr") + $(use_enable bcmath bcmath) + $(use_with bzip2 bz2 "${EPREFIX}/usr") + $(use_enable calendar calendar) + $(use_enable coverage gcov) + $(use_enable ctype ctype) + $(use_with curl curl "${EPREFIX}/usr") + $(use_enable xml dom) + $(use_with enchant enchant "${EPREFIX}/usr") + $(use_enable exif exif) + $(use_enable fileinfo fileinfo) + $(use_enable filter filter) + $(use_enable ftp ftp) + $(use_with nls gettext "${EPREFIX}/usr") + $(use_with gmp gmp "${EPREFIX}/usr") + $(use_enable hash hash) + $(use_with mhash mhash "${EPREFIX}/usr") + $(use_with iconv iconv \ + $(use elibc_glibc || use elibc_musl || use elibc_FreeBSD || echo "${EPREFIX}/usr")) + $(use_enable intl intl) + $(use_enable ipv6 ipv6) + $(use_enable json json) + $(use_with kerberos kerberos "${EPREFIX}/usr") + $(use_enable xml libxml) + $(use_with xml libxml-dir "${EPREFIX}/usr") + $(use_enable unicode mbstring) + $(use_with unicode onig "${EPREFIX}/usr") + $(use_with ssl openssl "${EPREFIX}/usr") + $(use_with ssl openssl-dir "${EPREFIX}/usr") + $(use_enable pcntl pcntl) + $(use_enable phar phar) + $(use_enable pdo pdo) + $(use_enable opcache opcache) + $(use_with postgres pgsql "${EPREFIX}/usr") + $(use_enable posix posix) + $(use_with spell pspell "${EPREFIX}/usr") + $(use_with recode recode "${EPREFIX}/usr") + $(use_enable simplexml simplexml) + $(use_enable sharedmem shmop) + $(use_with snmp snmp "${EPREFIX}/usr") + $(use_enable soap soap) + $(use_enable sockets sockets) + $(use_with sodium sodium "${EPREFIX}/usr") + $(use_with sqlite sqlite3 "${EPREFIX}/usr") + $(use_enable sysvipc sysvmsg) + $(use_enable sysvipc sysvsem) + $(use_enable sysvipc sysvshm) + $(use_with tidy tidy "${EPREFIX}/usr") + $(use_enable tokenizer tokenizer) + $(use_enable wddx wddx) + $(use_enable xml xml) + $(use_enable xmlreader xmlreader) + $(use_enable xmlwriter xmlwriter) + $(use_with xmlrpc xmlrpc) + $(use_with xslt xsl "${EPREFIX}/usr") + $(use_enable zip zip) + $(use_with zip-encryption libzip "${EPREFIX}/usr") + $(use_with zlib zlib "${EPREFIX}/usr") + $(use_enable debug debug) + ) + + # DBA support + if use cdb || use berkdb || use flatfile || use gdbm || use inifile \ + || use qdbm || use lmdb || use tokyocabinet ; then + our_conf+=( "--enable-dba${shared}" ) + fi + + # DBA drivers support + our_conf+=( + $(use_with cdb cdb) + $(use_with berkdb db4 "${EPREFIX}/usr") + $(use_enable flatfile flatfile) + $(use_with gdbm gdbm "${EPREFIX}/usr") + $(use_enable inifile inifile) + $(use_with qdbm qdbm "${EPREFIX}/usr") + $(use_with lmdb lmdb "${EPREFIX}/usr") + ) + + # Support for the GD graphics library + our_conf+=( + $(use_with truetype freetype-dir "${EPREFIX}/usr") + $(use_enable cjk gd-jis-conv) + $(use_with gd jpeg-dir "${EPREFIX}/usr") + $(use_with gd png-dir "${EPREFIX}/usr") + $(use_with xpm xpm-dir "${EPREFIX}/usr") + ) + if use webp; then + our_conf+=( --with-webp-dir="${EPREFIX}/usr" ) + fi + # enable gd last, so configure can pick up the previous settings + our_conf+=( $(use_with gd gd) ) + + # IMAP support + if use imap ; then + our_conf+=( + $(use_with imap imap "${EPREFIX}/usr") + $(use_with ssl imap-ssl "${EPREFIX}/usr") + ) + fi + + # Interbase/firebird support + our_conf+=( $(use_with firebird interbase "${EPREFIX}/usr") ) + + # LDAP support + if use ldap ; then + our_conf+=( + $(use_with ldap ldap "${EPREFIX}/usr") + $(use_with ldap-sasl ldap-sasl "${EPREFIX}/usr") + ) + fi + + # MySQL support + local mysqllib="mysqlnd" + local mysqlilib="mysqlnd" + + our_conf+=( $(use_with mysqli mysqli "${mysqlilib}") ) + + local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock" + if use mysql || use mysqli ; then + our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") ) + fi + + # ODBC support + our_conf+=( + $(use_with odbc unixODBC "${EPREFIX}/usr") + $(use_with iodbc iodbc "${EPREFIX}/usr") + ) + + # Oracle support + our_conf+=( $(use_with oci8-instant-client oci8) ) + + # PDO support + if use pdo ; then + our_conf+=( + $(use_with mssql pdo-dblib "${EPREFIX}/usr") + $(use_with mysql pdo-mysql "${mysqllib}") + $(use_with postgres pdo-pgsql) + $(use_with sqlite pdo-sqlite "${EPREFIX}/usr") + $(use_with firebird pdo-firebird "${EPREFIX}/usr") + $(use_with odbc pdo-odbc "unixODBC,${EPREFIX}/usr") + $(use_with oci8-instant-client pdo-oci) + ) + fi + + # readline/libedit support + our_conf+=( + $(use_with readline readline "${EPREFIX}/usr") + $(use_with libedit libedit "${EPREFIX}/usr") + ) + + # Session support + if use session ; then + our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") ) + else + our_conf+=( $(use_enable session session) ) + fi + + # Use pic for shared modules such as apache2's mod_php + our_conf+=( --with-pic ) + + # we use the system copy of pcre + # --with-pcre-regex affects ext/pcre + # --with-pcre-dir affects ext/filter and ext/zip + # --with-pcre-valgrind cannot be enabled with system pcre + # Many arches don't support pcre-jit + our_conf+=( + --with-pcre-regex="${EPREFIX}/usr" + --with-pcre-dir="${EPREFIX}/usr" + --without-pcre-valgrind + --without-pcre-jit + ) + + # Catch CFLAGS problems + # Fixes bug #14067. + # Changed order to run it in reverse for bug #32022 and #12021. + replace-cpu-flags "k6*" "i586" + + # Cache the ./configure test results between SAPIs. + our_conf+=( --cache-file="${T}/config.cache" ) + + # Support user-passed configuration parameters + our_conf+=( ${EXTRA_ECONF:-} ) + + # Support the Apache2 extras, they must be set globally for all + # SAPIs to work correctly, especially for external PHP extensions + + mkdir -p "${WORKDIR}/sapis-build" || die + for one_sapi in $SAPIS ; do + use "${one_sapi}" || continue + php_set_ini_dir "${one_sapi}" + + # The BUILD_DIR variable is used to determine where to output + # the files that autotools creates. This was all originally + # based on the autotools-utils eclass. + BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}" + cp -a "${S}" "${BUILD_DIR}" || die + cd "${BUILD_DIR}" || die + + local sapi_conf=( + --with-config-file-path="${PHP_INI_DIR}" + --with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}" + ) + + for sapi in $SAPIS ; do + case "$sapi" in + cli|cgi|embed|fpm|phpdbg) + if [[ "${one_sapi}" == "${sapi}" ]] ; then + sapi_conf+=( "--enable-${sapi}" ) + if [[ "fpm" == "${sapi}" ]] ; then + sapi_conf+=( + $(use_with acl fpm-acl) + $(use_with systemd fpm-systemd) + ) + fi + else + sapi_conf+=( "--disable-${sapi}" ) + fi + ;; + + apache2) + if [[ "${one_sapi}" == "${sapi}" ]] ; then + sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" ) + else + sapi_conf+=( --without-apxs2 ) + fi + ;; + esac + done + + # Construct the $myeconfargs array by concatenating $our_conf + # (the common args) and $sapi_conf (the SAPI-specific args). + local myeconfargs=( "${our_conf[@]}" ) + myeconfargs+=( "${sapi_conf[@]}" ) + + pushd "${BUILD_DIR}" > /dev/null || die + econf "${myeconfargs[@]}" + popd > /dev/null || die + done +} + +src_compile() { + # snmp seems to run during src_compile, too (bug #324739) + addpredict /usr/share/snmp/mibs/.index #nowarn + addpredict /var/lib/net-snmp/mib_indexes #nowarn + + for sapi in ${SAPIS} ; do + if use "${sapi}"; then + cd "${WORKDIR}/sapis-build/$sapi" || \ + die "Failed to change dir to ${WORKDIR}/sapis-build/$1" + emake + fi + done +} + +src_install() { + # see bug #324739 for what happens when we don't have that + addpredict /usr/share/snmp/mibs/.index #nowarn + + # grab the first SAPI that got built and install common files from there + local first_sapi="" + for sapi in $SAPIS ; do + if use $sapi ; then + first_sapi=$sapi + break + fi + done + + # Makefile forgets to create this before trying to write to it... + dodir "${PHP_DESTDIR#${EPREFIX}}/bin" + + # Install php environment (without any sapis) + cd "${WORKDIR}/sapis-build/$first_sapi" || die + emake INSTALL_ROOT="${D}" \ + install-build install-headers install-programs + + local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)" + + # Create the directory where we'll put version-specific php scripts + keepdir "/usr/share/php${PHP_MV}" + + local sapi="", file="" + local sapi_list="" + + for sapi in ${SAPIS}; do + if use "${sapi}" ; then + einfo "Installing SAPI: ${sapi}" + cd "${WORKDIR}/sapis-build/${sapi}" || die + + if [[ "${sapi}" == "apache2" ]] ; then + # We're specifically not using emake install-sapi as libtool + # may cause unnecessary relink failures (see bug #351266) + insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/" + newins ".libs/libphp${PHP_MV}$(get_libname)" \ + "libphp${PHP_MV}$(get_libname)" + keepdir "/usr/$(get_libdir)/apache2/modules" + else + # needed each time, php_install_ini would reset it + local dest="${PHP_DESTDIR#${EPREFIX}}" + into "${dest}" + case "$sapi" in + cli) + source="sapi/cli/php" + ;; + cgi) + source="sapi/cgi/php-cgi" + ;; + fpm) + source="sapi/fpm/php-fpm" + ;; + embed) + source="libs/libphp${PHP_MV}$(get_libname)" + ;; + phpdbg) + source="sapi/phpdbg/phpdbg" + ;; + *) + die "unhandled sapi in src_install" + ;; + esac + + if [[ "${source}" == *"$(get_libname)" ]]; then + dolib.so "${source}" + else + dobin "${source}" + local name="$(basename ${source})" + dosym "${dest}/bin/${name}" "/usr/bin/${name}${SLOT}" + fi + fi + + php_install_ini "${sapi}" + + # construct correct SAPI string for php-config + # thanks to ferringb for the bash voodoo + if [[ "${sapi}" == "apache2" ]]; then + sapi_list="${sapi_list:+${sapi_list} }apache2handler" + else + sapi_list="${sapi_list:+${sapi_list} }${sapi}" + fi + fi + done + + # Installing opcache module + if use opcache ; then + into "${PHP_DESTDIR#${EPREFIX}}" + dolib.so "modules/opcache$(get_libname)" + fi + + # Install env.d files + newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}" + sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die + sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die + + # set php-config variable correctly (bug #278439) + sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \ + "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die + + if use fpm ; then + if use systemd; then + systemd_newunit "${FILESDIR}/php-fpm_at.service" \ + "php-fpm@${SLOT}.service" + else + systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \ + "php-fpm@${SLOT}.service" + fi + fi +} + +src_test() { + echo ">>> Test phase [test]: ${CATEGORY}/${PF}" + PHP_BIN="${WORKDIR}/sapis-build/cli/sapi/cli/php" + if [[ ! -x "${PHP_BIN}" ]] ; then + ewarn "Test phase requires USE=cli, skipping" + return + else + export TEST_PHP_EXECUTABLE="${PHP_BIN}" + fi + + if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then + export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" + fi + + if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then + export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" + fi + + REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \ + "session.save_path=${T}" \ + "${WORKDIR}/sapis-build/cli/run-tests.php" -n -q -d \ + "session.save_path=${T}" + + for name in ${EXPECTED_TEST_FAILURES}; do + mv "${name}.out" "${name}.out.orig" 2>/dev/null || die + done + + local failed="$(find -name '*.out')" + if [[ ${failed} != "" ]] ; then + ewarn "The following test cases failed unexpectedly:" + for name in ${failed}; do + ewarn " ${name/.out/}" + done + else + einfo "No unexpected test failures, all fine" + fi + + if [[ ${PHP_SHOW_UNEXPECTED_TEST_PASS} == "1" ]] ; then + local passed="" + for name in ${EXPECTED_TEST_FAILURES}; do + [[ -f "${name}.diff" ]] && continue + passed="${passed} ${name}" + done + if [[ ${passed} != "" ]] ; then + einfo "The following test cases passed unexpectedly:" + for name in ${passed}; do + ewarn " ${passed}" + done + else + einfo "None of the known-to-fail tests passed, all fine" + fi + fi +} + +pkg_postinst() { + # Output some general info to the user + if use apache2 ; then + elog + elog "To enable PHP in apache, you will need to add \"-D PHP\" to" + elog "your apache2 command. OpenRC users can append that string to" + elog "APACHE2_OPTS in /etc/conf.d/apache2." + elog + elog "The apache module configuration file 70_mod_php.conf is" + elog "provided (and maintained) by eselect-php." + elog + fi + + # Create the symlinks for php + for m in ${SAPIS}; do + [[ ${m} == 'embed' ]] && continue; + if use $m ; then + local ci=$(eselect php show $m) + if [[ -z $ci ]]; then + eselect php set $m php${SLOT} || die + einfo "Switched ${m} to use php:${SLOT}" + einfo + elif [[ $ci != "php${SLOT}" ]] ; then + elog "To switch $m to use php:${SLOT}, run" + elog " eselect php set $m php${SLOT}" + elog + fi + fi + done + + # Remove dead symlinks for SAPIs that were just disabled. For + # example, if the user has the cgi SAPI enabled, then he has an + # eselect-php symlink for it. If he later reinstalls PHP with + # USE="-cgi", that symlink will break. This call to eselect is + # supposed to remove that dead link per bug 572436. + eselect php cleanup || die + + if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then + elog "To build extensions for this version of PHP, you will need to" + elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable." + elog + fi + + # Warn about the removal of PHP_INI_VERSION if the user has it set. + if [[ -n "${PHP_INI_VERSION}" ]]; then + ewarn 'The PHP_INI_VERSION variable has been phased out. You may' + ewarn 'remove it from your configuration at your convenience. See' + ewarn + ewarn ' https://bugs.gentoo.org/611214' + ewarn + ewarn 'for more information.' + fi + + elog "For details on how version slotting works, please see" + elog "the wiki:" + elog + elog " https://wiki.gentoo.org/wiki/PHP" + elog +} + +pkg_postrm() { + # This serves two purposes. First, if we have just removed the last + # installed version of PHP, then this will remove any dead symlinks + # belonging to eselect-php. Second, if a user upgrades slots from + # (say) 5.6 to 7.0 and depcleans the old slot, then this will update + # his existing symlinks to point to the new 7.0 installation. The + # latter is bug 432962. + # + # Note: the eselect-php package may not be installed at this point, + # so we can't die() if this command fails. + eselect php cleanup +} diff --git a/dev-lang/php/php-7.4.0_beta4.ebuild b/dev-lang/php/php-7.4.0_beta4.ebuild new file mode 100644 index 000000000000..4e86c019721d --- /dev/null +++ b/dev-lang/php/php-7.4.0_beta4.ebuild @@ -0,0 +1,723 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +WANT_AUTOMAKE="none" + +inherit flag-o-matic systemd autotools + +MY_PV=${PV/_/} +DESCRIPTION="The PHP language runtime engine" +HOMEPAGE="https://php.net/" +SRC_URI="https://downloads.php.net/~derick/${P/_/}.tar.xz" + +LICENSE="PHP-3.01 + BSD + Zend-2.0 + bcmath? ( LGPL-2.1+ ) + fpm? ( BSD-2 ) + gd? ( gd ) + unicode? ( BSD-2 LGPL-2.1 )" + +SLOT="$(ver_cut 1-2)" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos" + +S="${WORKDIR}/${PN}-${MY_PV}" + +# We can build the following SAPIs in the given order +SAPIS="embed cli cgi fpm apache2 phpdbg" + +# SAPIs and SAPI-specific USE flags (cli SAPI is default on): +IUSE="${IUSE} + ${SAPIS/cli/+cli} + threads" + +IUSE="${IUSE} acl argon2 bcmath berkdb bzip2 calendar cdb cjk + coverage +ctype curl debug + enchant exif ffi +fileinfo +filter firebird + +flatfile ftp gd gdbm gmp +iconv imap inifile + intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl lmdb + mhash mssql mysql mysqli nls + oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm + readline selinux +session session-mm sharedmem + +simplexml snmp soap sockets sodium spell sqlite ssl + sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode webp + +xml xmlreader xmlwriter xmlrpc xpm xslt zip zlib" + +# The supported (that is, autodetected) versions of BDB are listed in +# the ./configure script. Other versions *work*, but we need to stick to +# the ones that can be detected to avoid a repeat of bug #564824. +COMMON_DEPEND=" + >=app-eselect/eselect-php-0.9.1[apache2?,fpm?] + >=dev-libs/libpcre2-10.30[unicode] + fpm? ( acl? ( sys-apps/acl ) ) + apache2? ( || ( >=www-servers/apache-2.4[apache2_modules_unixd,threads=] + =net-misc/curl-7.10.5 ) + enchant? ( =virtual/libffi-3.0.11 ) + firebird? ( dev-db/firebird ) + gd? ( virtual/jpeg:0 media-libs/libpng:0= ) + gdbm? ( >=sys-libs/gdbm-1.8.0:0= ) + gmp? ( dev-libs/gmp:0= ) + iconv? ( virtual/libiconv ) + imap? ( virtual/imap-c-client[kerberos=,ssl=] ) + intl? ( dev-libs/icu:= ) + kerberos? ( virtual/krb5 ) + ldap? ( >=net-nds/openldap-1.2.11 ) + ldap-sasl? ( dev-libs/cyrus-sasl ) + libedit? ( || ( sys-freebsd/freebsd-lib dev-libs/libedit ) ) + lmdb? ( dev-db/lmdb:= ) + mssql? ( dev-db/freetds[mssql] ) + nls? ( sys-devel/gettext ) + oci8-instant-client? ( dev-db/oracle-instantclient-basic ) + odbc? ( iodbc? ( dev-db/libiodbc ) !iodbc? ( >=dev-db/unixODBC-1.8.13 ) ) + postgres? ( dev-db/postgresql:* ) + qdbm? ( dev-db/qdbm ) + readline? ( sys-libs/readline:0= ) + session-mm? ( dev-libs/mm ) + snmp? ( >=net-analyzer/net-snmp-5.2 ) + sodium? ( dev-libs/libsodium:= ) + spell? ( >=app-text/aspell-0.50 ) + sqlite? ( >=dev-db/sqlite-3.7.6.3 ) + ssl? ( + !libressl? ( >=dev-libs/openssl-1.0.1:0= ) + libressl? ( dev-libs/libressl:0= ) + ) + tidy? ( || ( app-text/tidy-html5 app-text/htmltidy ) ) + tokyocabinet? ( dev-db/tokyocabinet ) + truetype? ( =media-libs/freetype-2* ) + unicode? ( dev-libs/oniguruma:= ) + webp? ( media-libs/libwebp:0= ) + xml? ( >=dev-libs/libxml2-2.7.6 ) + xpm? ( x11-libs/libXpm ) + xslt? ( dev-libs/libxslt ) + zip? ( >=dev-libs/libzip-1.2.0:= ) + zlib? ( >=sys-libs/zlib-1.2.0.4:0= ) +" + +RDEPEND="${COMMON_DEPEND} + virtual/mta + fpm? ( + selinux? ( sec-policy/selinux-phpfpm ) + systemd? ( sys-apps/systemd ) )" + +# Bison isn't actually needed when building from a release tarball +# However, the configure script will warn if it's absent or if you +# have an incompatible version installed. See bug 593278. +DEPEND="${COMMON_DEPEND} + app-arch/xz-utils + >=sys-devel/bison-3.0.1" + +BDEPEND="virtual/pkgconfig" + +# Without USE=readline or libedit, the interactive "php -a" CLI will hang. +REQUIRED_USE=" + || ( cli cgi fpm apache2 embed phpdbg ) + cli? ( ^^ ( readline libedit ) ) + !cli? ( ?? ( readline libedit ) ) + truetype? ( gd zlib ) + webp? ( gd zlib ) + cjk? ( gd zlib ) + exif? ( gd zlib ) + xpm? ( gd zlib ) + gd? ( zlib ) + simplexml? ( xml ) + soap? ( xml ) + xmlrpc? ( xml iconv ) + xmlreader? ( xml ) + xmlwriter? ( xml ) + xslt? ( xml ) + ldap-sasl? ( ldap ) + qdbm? ( !gdbm ) + session-mm? ( session !threads ) + mysql? ( || ( mysqli pdo ) ) + firebird? ( pdo ) + mssql? ( pdo ) +" + +PHP_MV="$(ver_cut 1)" + +php_install_ini() { + local phpsapi="${1}" + + # work out where we are installing the ini file + php_set_ini_dir "${phpsapi}" + + # Always install the production INI file, bug 611214. + local phpinisrc="php.ini-production-${phpsapi}" + cp php.ini-production "${phpinisrc}" || die + + # default to /tmp for save_path, bug #282768 + sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die + + # Set the extension dir + sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \ + -i "${phpinisrc}" || die + + # Set the include path to point to where we want to find PEAR packages + sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die + + dodir "${PHP_INI_DIR#${EPREFIX}}" + insinto "${PHP_INI_DIR#${EPREFIX}}" + newins "${phpinisrc}" php.ini + + elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}" + elog + + dodir "${PHP_EXT_INI_DIR#${EPREFIX}}" + dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}" + + if use opcache; then + elog "Adding opcache to $PHP_EXT_INI_DIR" + echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \ + "${D}/${PHP_EXT_INI_DIR}"/opcache.ini + dosym "${PHP_EXT_INI_DIR#${EPREFIX}}/opcache.ini" \ + "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini" + fi + + # SAPI-specific handling + if [[ "${sapi}" == "fpm" ]] ; then + einfo "Installing FPM config files php-fpm.conf and www.conf" + insinto "${PHP_INI_DIR#${EPREFIX}}" + doins sapi/fpm/php-fpm.conf + insinto "${PHP_INI_DIR#${EPREFIX}}/fpm.d" + doins sapi/fpm/www.conf + fi + + dodoc php.ini-{development,production} +} + +php_set_ini_dir() { + PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}" + PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext" + PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active" +} + +src_prepare() { + default + + # In php-7.x, the FPM pool configuration files have been split off + # of the main config. By default the pool config files go in + # e.g. /etc/php-fpm.d, which isn't slotted. So here we move the + # include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later + # we'll install the pool configuration file "www.conf" there. + php_set_ini_dir fpm + sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \ + sapi/fpm/php-fpm.conf.in \ + || die 'failed to move the include directory in php-fpm.conf' + + # Bug 669566 - necessary so that build tools are updated for commands like pecl + cp "${BROOT}/usr/share/aclocal/libtool.m4" build/ || die + eautoreconf +} + +src_configure() { + addpredict /usr/share/snmp/mibs/.index #nowarn + addpredict /var/lib/net-snmp/mib_indexes #nowarn + + PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}" + + # The php-fpm config file wants localstatedir to be ${EPREFIX}/var + # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002. + local our_conf=( + --prefix="${PHP_DESTDIR}" + --mandir="${PHP_DESTDIR}/man" + --infodir="${PHP_DESTDIR}/info" + --libdir="${PHP_DESTDIR}/lib" + --with-libdir="$(get_libdir)" + --localstatedir="${EPREFIX}/var" + --without-pear + $(use_enable threads maintainer-zts) + ) + + our_conf+=( + $(use_with argon2 password-argon2 "${EPREFIX}/usr") + $(use_enable bcmath) + $(use_with bzip2 bz2 "${EPREFIX}/usr") + $(use_enable calendar) + $(use_enable coverage gcov) + $(use_enable ctype) + $(use_with curl) + $(use_enable xml dom) + $(use_with enchant) + $(use_enable exif) + $(use_with ffi) + $(use_enable fileinfo) + $(use_enable filter) + $(use_enable ftp) + $(use_with nls gettext "${EPREFIX}/usr") + $(use_with gmp gmp "${EPREFIX}/usr") + $(use_with mhash mhash "${EPREFIX}/usr") + $(use_with iconv iconv \ + $(use elibc_glibc || use elibc_musl || use elibc_FreeBSD || echo "${EPREFIX}/usr")) + $(use_enable intl) + $(use_enable ipv6) + $(use_enable json) + $(use_with kerberos) + $(use_with xml libxml) + $(use_enable unicode mbstring) + $(use_with ssl openssl) + $(use_enable pcntl) + $(use_enable phar) + $(use_enable pdo) + $(use_enable opcache) + $(use_with postgres pgsql "${EPREFIX}/usr") + $(use_enable posix) + $(use_with spell pspell "${EPREFIX}/usr") + $(use_enable simplexml) + $(use_enable sharedmem shmop) + $(use_with snmp snmp "${EPREFIX}/usr") + $(use_enable soap) + $(use_enable sockets) + $(use_with sodium) + $(use_with sqlite sqlite3) + $(use_enable sysvipc sysvmsg) + $(use_enable sysvipc sysvsem) + $(use_enable sysvipc sysvshm) + $(use_with tidy tidy "${EPREFIX}/usr") + $(use_enable tokenizer) + $(use_enable xml) + $(use_enable xmlreader) + $(use_enable xmlwriter) + $(use_with xmlrpc) + $(use_with xslt xsl) + $(use_with zip) + $(use_with zlib zlib "${EPREFIX}/usr") + $(use_enable debug) + ) + + # DBA support + if use cdb || use berkdb || use flatfile || use gdbm || use inifile \ + || use qdbm || use lmdb || use tokyocabinet ; then + our_conf+=( "--enable-dba" ) + fi + + # DBA drivers support + our_conf+=( + $(use_with cdb) + $(use_with berkdb db4 "${EPREFIX}/usr") + $(use_enable flatfile) + $(use_with gdbm gdbm "${EPREFIX}/usr") + $(use_enable inifile) + $(use_with qdbm qdbm "${EPREFIX}/usr") + $(use_with tokyocabinet tcadb "${EPREFIX}/usr") + $(use_with lmdb lmdb "${EPREFIX}/usr") + ) + + # Support for the GD graphics library + our_conf+=( + $(use_with truetype freetype) + $(use_enable cjk gd-jis-conv) + $(use_with gd jpeg) + $(use_with xpm) + $(use_with webp) + ) + # enable gd last, so configure can pick up the previous settings + our_conf+=( $(use_enable gd) ) + + # IMAP support + if use imap ; then + our_conf+=( + $(use_with imap imap "${EPREFIX}/usr") + $(use_with ssl imap-ssl "${EPREFIX}/usr") + ) + fi + + # LDAP support + if use ldap ; then + our_conf+=( + $(use_with ldap ldap "${EPREFIX}/usr") + $(use_with ldap-sasl) + ) + fi + + # MySQL support + local mysqllib="mysqlnd" + local mysqlilib="mysqlnd" + + our_conf+=( $(use_with mysqli mysqli "${mysqlilib}") ) + + local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock" + if use mysql || use mysqli ; then + our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") ) + fi + + # ODBC support + our_conf+=( + $(use_with odbc unixODBC "${EPREFIX}/usr") + $(use_with iodbc) + ) + + # Oracle support + our_conf+=( $(use_with oci8-instant-client oci8) ) + + # PDO support + if use pdo ; then + our_conf+=( + $(use_with mssql pdo-dblib "${EPREFIX}/usr") + $(use_with mysql pdo-mysql "${mysqllib}") + $(use_with postgres pdo-pgsql) + $(use_with sqlite pdo-sqlite) + $(use_with firebird pdo-firebird "${EPREFIX}/usr") + $(use_with odbc pdo-odbc "unixODBC,${EPREFIX}/usr") + $(use_with oci8-instant-client pdo-oci) + ) + fi + + # readline/libedit support + our_conf+=( + $(use_with readline readline "${EPREFIX}/usr") + $(use_with libedit) + ) + + # Session support + if use session ; then + our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") ) + else + our_conf+=( $(use_enable session) ) + fi + + # Use pic for shared modules such as apache2's mod_php + our_conf+=( --with-pic ) + + # we use the system copy of pcre + # --with-external-pcre affects ext/pcre + # Many arches don't support pcre-jit + our_conf+=( + --with-external-pcre + --without-pcre-jit + ) + + # Catch CFLAGS problems + # Fixes bug #14067. + # Changed order to run it in reverse for bug #32022 and #12021. + replace-cpu-flags "k6*" "i586" + + # Cache the ./configure test results between SAPIs. + our_conf+=( --cache-file="${T}/config.cache" ) + + # Support user-passed configuration parameters + our_conf+=( ${EXTRA_ECONF:-} ) + + # Support the Apache2 extras, they must be set globally for all + # SAPIs to work correctly, especially for external PHP extensions + + mkdir -p "${WORKDIR}/sapis-build" || die + for one_sapi in $SAPIS ; do + use "${one_sapi}" || continue + php_set_ini_dir "${one_sapi}" + + # The BUILD_DIR variable is used to determine where to output + # the files that autotools creates. This was all originally + # based on the autotools-utils eclass. + BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}" + cp -a "${S}" "${BUILD_DIR}" || die + cd "${BUILD_DIR}" || die + + local sapi_conf=( + --with-config-file-path="${PHP_INI_DIR}" + --with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}" + ) + + for sapi in $SAPIS ; do + case "$sapi" in + cli|cgi|embed|fpm|phpdbg) + if [[ "${one_sapi}" == "${sapi}" ]] ; then + sapi_conf+=( "--enable-${sapi}" ) + if [[ "fpm" == "${sapi}" ]] ; then + sapi_conf+=( + $(use_with acl fpm-acl) + $(use_with systemd fpm-systemd) + ) + fi + else + sapi_conf+=( "--disable-${sapi}" ) + fi + ;; + + apache2) + if [[ "${one_sapi}" == "${sapi}" ]] ; then + sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" ) + else + sapi_conf+=( --without-apxs2 ) + fi + ;; + esac + done + + # Construct the $myeconfargs array by concatenating $our_conf + # (the common args) and $sapi_conf (the SAPI-specific args). + local myeconfargs=( "${our_conf[@]}" ) + myeconfargs+=( "${sapi_conf[@]}" ) + + pushd "${BUILD_DIR}" > /dev/null || die + econf "${myeconfargs[@]}" + popd > /dev/null || die + done +} + +src_compile() { + # snmp seems to run during src_compile, too (bug #324739) + addpredict /usr/share/snmp/mibs/.index #nowarn + addpredict /var/lib/net-snmp/mib_indexes #nowarn + + for sapi in ${SAPIS} ; do + if use "${sapi}"; then + cd "${WORKDIR}/sapis-build/$sapi" || \ + die "Failed to change dir to ${WORKDIR}/sapis-build/$1" + emake + fi + done +} + +src_install() { + # see bug #324739 for what happens when we don't have that + addpredict /usr/share/snmp/mibs/.index #nowarn + + # grab the first SAPI that got built and install common files from there + local first_sapi="" + for sapi in $SAPIS ; do + if use $sapi ; then + first_sapi=$sapi + break + fi + done + + # Makefile forgets to create this before trying to write to it... + dodir "${PHP_DESTDIR#${EPREFIX}}/bin" + + # Install php environment (without any sapis) + cd "${WORKDIR}/sapis-build/$first_sapi" || die + emake INSTALL_ROOT="${D}" \ + install-build install-headers install-programs + + local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)" + + # Create the directory where we'll put version-specific php scripts + keepdir "/usr/share/php${PHP_MV}" + + local sapi="", file="" + local sapi_list="" + + for sapi in ${SAPIS}; do + if use "${sapi}" ; then + einfo "Installing SAPI: ${sapi}" + cd "${WORKDIR}/sapis-build/${sapi}" || die + + if [[ "${sapi}" == "apache2" ]] ; then + # We're specifically not using emake install-sapi as libtool + # may cause unnecessary relink failures (see bug #351266) + insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/" + newins ".libs/libphp${PHP_MV}$(get_libname)" \ + "libphp${PHP_MV}$(get_libname)" + keepdir "/usr/$(get_libdir)/apache2/modules" + else + # needed each time, php_install_ini would reset it + local dest="${PHP_DESTDIR#${EPREFIX}}" + into "${dest}" + case "$sapi" in + cli) + source="sapi/cli/php" + ;; + cgi) + source="sapi/cgi/php-cgi" + ;; + fpm) + source="sapi/fpm/php-fpm" + ;; + embed) + source="libs/libphp${PHP_MV}$(get_libname)" + ;; + phpdbg) + source="sapi/phpdbg/phpdbg" + ;; + *) + die "unhandled sapi in src_install" + ;; + esac + + if [[ "${source}" == *"$(get_libname)" ]]; then + dolib.so "${source}" + else + dobin "${source}" + local name="$(basename ${source})" + dosym "${dest}/bin/${name}" "/usr/bin/${name}${SLOT}" + fi + fi + + php_install_ini "${sapi}" + + # construct correct SAPI string for php-config + # thanks to ferringb for the bash voodoo + if [[ "${sapi}" == "apache2" ]]; then + sapi_list="${sapi_list:+${sapi_list} }apache2handler" + else + sapi_list="${sapi_list:+${sapi_list} }${sapi}" + fi + fi + done + + # Installing opcache module + if use opcache ; then + into "${PHP_DESTDIR#${EPREFIX}}" + dolib.so "modules/opcache$(get_libname)" + fi + + # Install env.d files + newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}" + sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die + sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die + + # set php-config variable correctly (bug #278439) + sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \ + "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die + + if use fpm ; then + if use systemd; then + systemd_newunit "${FILESDIR}/php-fpm_at.service" \ + "php-fpm@${SLOT}.service" + else + systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \ + "php-fpm@${SLOT}.service" + fi + fi +} + +src_test() { + echo ">>> Test phase [test]: ${CATEGORY}/${PF}" + PHP_BIN="${WORKDIR}/sapis-build/cli/sapi/cli/php" + if [[ ! -x "${PHP_BIN}" ]] ; then + ewarn "Test phase requires USE=cli, skipping" + return + else + export TEST_PHP_EXECUTABLE="${PHP_BIN}" + fi + + if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then + export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" + fi + + if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then + export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" + fi + + REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \ + "session.save_path=${T}" \ + "${WORKDIR}/sapis-build/cli/run-tests.php" -n -q -d \ + "session.save_path=${T}" + + for name in ${EXPECTED_TEST_FAILURES}; do + mv "${name}.out" "${name}.out.orig" 2>/dev/null || die + done + + local failed="$(find -name '*.out')" + if [[ ${failed} != "" ]] ; then + ewarn "The following test cases failed unexpectedly:" + for name in ${failed}; do + ewarn " ${name/.out/}" + done + else + einfo "No unexpected test failures, all fine" + fi + + if [[ ${PHP_SHOW_UNEXPECTED_TEST_PASS} == "1" ]] ; then + local passed="" + for name in ${EXPECTED_TEST_FAILURES}; do + [[ -f "${name}.diff" ]] && continue + passed="${passed} ${name}" + done + if [[ ${passed} != "" ]] ; then + einfo "The following test cases passed unexpectedly:" + for name in ${passed}; do + ewarn " ${passed}" + done + else + einfo "None of the known-to-fail tests passed, all fine" + fi + fi +} + +pkg_postinst() { + # Output some general info to the user + if use apache2 ; then + elog + elog "To enable PHP in apache, you will need to add \"-D PHP\" to" + elog "your apache2 command. OpenRC users can append that string to" + elog "APACHE2_OPTS in /etc/conf.d/apache2." + elog + elog "The apache module configuration file 70_mod_php.conf is" + elog "provided (and maintained) by eselect-php." + elog + fi + + # Create the symlinks for php + for m in ${SAPIS}; do + [[ ${m} == 'embed' ]] && continue; + if use $m ; then + local ci=$(eselect php show $m) + if [[ -z $ci ]]; then + eselect php set $m php${SLOT} || die + einfo "Switched ${m} to use php:${SLOT}" + einfo + elif [[ $ci != "php${SLOT}" ]] ; then + elog "To switch $m to use php:${SLOT}, run" + elog " eselect php set $m php${SLOT}" + elog + fi + fi + done + + # Remove dead symlinks for SAPIs that were just disabled. For + # example, if the user has the cgi SAPI enabled, then he has an + # eselect-php symlink for it. If he later reinstalls PHP with + # USE="-cgi", that symlink will break. This call to eselect is + # supposed to remove that dead link per bug 572436. + eselect php cleanup || die + + if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then + elog "To build extensions for this version of PHP, you will need to" + elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable." + elog + fi + + # Warn about the removal of PHP_INI_VERSION if the user has it set. + if [[ -n "${PHP_INI_VERSION}" ]]; then + ewarn 'The PHP_INI_VERSION variable has been phased out. You may' + ewarn 'remove it from your configuration at your convenience. See' + ewarn + ewarn ' https://bugs.gentoo.org/611214' + ewarn + ewarn 'for more information.' + fi + + elog "For details on how version slotting works, please see" + elog "the wiki:" + elog + elog " https://wiki.gentoo.org/wiki/PHP" + elog +} + +pkg_postrm() { + # This serves two purposes. First, if we have just removed the last + # installed version of PHP, then this will remove any dead symlinks + # belonging to eselect-php. Second, if a user upgrades slots from + # (say) 5.6 to 7.0 and depcleans the old slot, then this will update + # his existing symlinks to point to the new 7.0 installation. The + # latter is bug 432962. + # + # Note: the eselect-php package may not be installed at this point, + # so we can't die() if this command fails. + eselect php cleanup +} diff --git a/dev-lang/python-exec/Manifest b/dev-lang/python-exec/Manifest index 766f95957137..10cfd491b50f 100644 --- a/dev-lang/python-exec/Manifest +++ b/dev-lang/python-exec/Manifest @@ -1,5 +1,4 @@ DIST python-exec-2.4.6.tar.bz2 87634 BLAKE2B 7b6de8ad0e0603fafd3284e6e3c5247ad83f145ab4db6728914318ae8e6f5aaa3c0247f4e01238fca11519ef72fb1b11436aea7e2b8c988b8717b3f6a2a43c37 SHA512 e05eaf01b83de196a10933636ab6b1a5489a421592df49b8b58eabd0e732de970f902744cd3a06b5ab530a6d69fe6dfa8f270fbb09b9fe3df4ae04d516828050 -EBUILD python-exec-2.4.6-r1.ebuild 4312 BLAKE2B 7fea7d02a9d4621717a700ede8b4e01ed99186675844d5d61e02ee35e64f33ce668a32f99c4bfac4ac8ab61b22bc8ce8efe485597f5ede70f27240814f38a69a SHA512 dce24155e8aa576cc1a5082a4ea508242762d5e961a03ae3bcafd7ad311a50d9e606d733c7d4a9d69053d5b5bada7216210b053b9f39f4cdd49a6e0c2ed4ebdf -EBUILD python-exec-2.4.6.ebuild 4410 BLAKE2B f1c24ea633225370dc1390cd56861c230d28fa55f3bbf5a8588d7cd26e45bdc17a1edd163f0d6b5b01de9b8d98342013b456a5d2f9e4498fdf031cc222c76b44 SHA512 8ca031a55c23587a8129b25afcfb5bfccf2016d7bfa7dbd70bdf47d752d80d80f0edfb62aa2e811609a220d51211865de1f0a2fb9236f50aaa10110ed4cea83d +EBUILD python-exec-2.4.6-r1.ebuild 4306 BLAKE2B 59fd3edded4bd678980e12e658996dda7bb74a140040a1902d07cfeb226bf1a2088fccc5b1f725d23d936d57404adad67e175e63b5ad7c8ca0a929142ca37230 SHA512 91017a7b1a1c10d8536d4587e0d7d27caa74cfa63d1823a354abbf47bb8e2e48022401addb3b8e7cd111a1e2ae7bbc21ae88650c795b3f573c996d220f50b596 EBUILD python-exec-9999.ebuild 4101 BLAKE2B c9a38a540fb5548d34bb239d3f23bfd3ce3e8f8eea9e01f9d64a92218bced4e15212e25f12a28ff165a80412d7a62dad08f86f8183704da67dcff6238d6c239f SHA512 a57aa9bd6a88ea62e1f8d6b01a3c25491d4b405eda4de05f64a03575f737493700d73581ee2de2d79f3b3a681532f04433c33748a90dd615010340d44a316277 MISC metadata.xml 589 BLAKE2B 7f9fa9750915db8b546b52a560a7fd8d9a63c4f310e423ebdc0508fe9b14363001b30f3c3db26f6d05eec8a44176d62a9335153dff2d55a41a31d3b428cc9ca6 SHA512 2ac0223af0a2cf95d2b18ef415eadb325af0094e4ec361a414b0d68b203dc1c937d3d680af96bdad1e8a48cb5786683bdbbd451f47a0f3a777c075e1690ccf7a diff --git a/dev-lang/python-exec/python-exec-2.4.6-r1.ebuild b/dev-lang/python-exec/python-exec-2.4.6-r1.ebuild index 427a37c2724a..18343cded128 100644 --- a/dev-lang/python-exec/python-exec-2.4.6-r1.ebuild +++ b/dev-lang/python-exec/python-exec-2.4.6-r1.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://github.com/mgorny/python-exec/releases/download/v${PV}/${P}.tar LICENSE="BSD-2" SLOT="2" -KEYWORDS="~alpha ~amd64 ~arm arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 ~riscv s390 sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" # Internal Python project hack. Do not copy it. Ever. IUSE="${_PYTHON_ALL_IMPLS[@]/#/python_targets_}" diff --git a/dev-lang/python-exec/python-exec-2.4.6.ebuild b/dev-lang/python-exec/python-exec-2.4.6.ebuild deleted file mode 100644 index d4d144328e17..000000000000 --- a/dev-lang/python-exec/python-exec-2.4.6.ebuild +++ /dev/null @@ -1,133 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -# Kids, don't do this at home! -inherit python-utils-r1 -PYTHON_COMPAT=( "${_PYTHON_ALL_IMPLS[@]}" ) - -# Inherited purely to have PYTHON_TARGET flags which will satisfy USE -# dependencies and trigger necessary rebuilds. -inherit python-r1 - -DESCRIPTION="Python script wrapper" -HOMEPAGE="https://github.com/mgorny/python-exec/" -SRC_URI="https://github.com/mgorny/python-exec/releases/download/v${PV}/${P}.tar.bz2" - -LICENSE="BSD-2" -SLOT="2" -KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 ~riscv s390 sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" -IUSE="" - -# eselect-python because of /usr/bin/python* collisions and new config -# python versions because of missing $scriptdir/python* symlinks -RDEPEND=" - !> "${ED}"etc/python-exec/python-exec.conf || die - fi - fi -} diff --git a/dev-lang/ruby/Manifest b/dev-lang/ruby/Manifest index c2314aeaca12..7a98fb2679a0 100644 --- a/dev-lang/ruby/Manifest +++ b/dev-lang/ruby/Manifest @@ -13,11 +13,17 @@ AUX 2.6/005_no-undefined-ext.patch 486 BLAKE2B 715f952cab863847f420afb020cac6819 AUX 2.6/009_no-gems.patch 1261 BLAKE2B 359d0a73c374e5c464eb0343d33272244bb88ba200977007a93f3c3c776779a013174fc2c97717e4ae4a1495011d3baae80e68b07433eab1320955a49aed8b59 SHA512 1607b9c2021e5b5f08cf28c64d3f3ddd077bc47df02a353182a9bc70dc6831ea18e8681d9808bb6841939d64082ae4966081014ee110d2090ec67ffe8faa9b8b AUX 2.6/010-default-gem-location.patch 688 BLAKE2B 4c2074d69b9fe5258a2fe0e38bb501a39f34ad1fa08ef338224edba1f06073138cbe3d831ecdf9910c989a7f0a1c6c6b73ced0d8ff212207a3a3df5f4d90b5de SHA512 65206a6ca42ade0413ae1467f41082f4a93b3166644d2504cff3d280d23da02fd41aea5aca69dd43f6081b436db90a5b1e98725d8fa51519ca302c02ec526ad7 DIST ruby-2.4.6.tar.xz 10005544 BLAKE2B 2af984d96dad4d7ef4d467b317bd4bb54b0614d96619377bc46f7588cd1c72bee47202b61d6ec54f00113fd25672d2831221dbf0a4491aa271541a34c634ee84 SHA512 eafb2257747f99e2ed262af142e71175b70f7cceaa4d1253b92c8337f075a9a58a2d93b029d75e11a9b124f112a8f0983273b2b30afc147b5cf71a8dbb5fa0ba +DIST ruby-2.4.7.tar.xz 10118948 BLAKE2B e85e051e9dbac8e7f87bd6187dc105b89a6bc7197c811bd51bf25b109781b8ec79c02e48887cbac841d38922d278da4ee32d8cf14e180083f4a902d77c4ec2dc SHA512 df637c5803ddd83f759e9c24b0e7ca1f6cae7c7b353409583d92dbffece0d9d02b48905d6552327a1522a4a37d4e2d22c6c11bd991383835be35e2f31739d649 DIST ruby-2.5.5.tar.xz 11459832 BLAKE2B ced1105a87e7df8f82a65ca8d1d329d5a9d110d2f3f88b27a79262c4ac1484dda16d8646c0c03f18c1bb25f8b154075eb03a0614355ec62f677c2fa56ab3c956 SHA512 06b1d58536ebfacb7b56c1e6ed4b8ab816fadc4f48c845a452554cd262e7908199a30e5793f3cbaec2db56a8803aa5c6089abf7bf06c8fc47867e97870b7dfec +DIST ruby-2.5.6.tar.xz 11323612 BLAKE2B 5db6d573089a9fba95a1027891a0116c14d495b342ca8f055bd1ad55942f2a15a65a61cc1a0f6f249cd10fe2f6161f3ab0066a6dbce8e480e55b76ca5bdb5cd9 SHA512 4fe5f8bad5d320f8f17b02ce15afee341e7b0074efcfd98d8944e0cb7c448e0660c4553dd5c0328ee3b49fea3247642f85c60bdce431ed57f58b6326dfd48ee1 DIST ruby-2.6.2.tar.xz 11889840 BLAKE2B 817919c078869c2ad8d5c9d8c8b7ee77e8b0e3339c2ef662a94a666a859f762fa63c6f8534027abd368e91fe4e3e1fe68fa984cbf12f76cff8c0c66f0114914f SHA512 13f7d7b483a037378eac4bf4bebddc21d69f4e19e6bbb397dd53e7518037ae9a3aa5b41fc20bf1fe410803c6efc3a6a65a65af47648d3a93713f75cfe885326a DIST ruby-2.6.3.tar.xz 11904360 BLAKE2B 8113e5a19b967cdf995a3c8d3c83aeab3bf89e975d3b039c64259e97f20dbe9ebd96ada093f9d330516d16ef78bb0ecbbac8f3facd467aa13f1f70b23b992f82 SHA512 959a613f5cf5b3185a1d7a7ba0e1921166b3930f30461b391b1c9fcfe396f56dc3c736123dfc7b4e72c32a97dc5a1eb1fd7f09bcc3793a3c5526f6644ba421c8 +DIST ruby-2.6.4.tar.xz 11727940 BLAKE2B abeff89d50612d6426e1dc5fd7c15c83ef9714ddb38c64ed14bff6331c619b0a55d4a64bff49177576c3fae8cfcee30127e808f49d11b3e64a2230a043e16bd3 SHA512 930a4162fdb008d2446247908c14269fd13db4dc80bd2bb201a65a69c03f5933f97b4c5079ccd2a12db4934ff97b2debaa10a6c6f5c3060e55873f4397747eaa EBUILD ruby-2.4.6.ebuild 6643 BLAKE2B b2fd05964cb115f3a0b7509f176b7fb855c2feb666dd46d12bc3d7f532e9214152406df18ce2bc7081e0a0e68199e55c91c8a18aec70280e0416517c42110ea3 SHA512 f218259c93463e4a360ced99544fd147b77826ac0b40450e6461c5f34425cee7e50bcce316622dee56f71168f74720b77cd04aed80add2839b5c0c805b31af5f -EBUILD ruby-2.5.5.ebuild 6441 BLAKE2B a0a5ba7c999975b6adf40fa29cf51b15a072303b5e0ad5d5c351ac2d578092a31ecf85f5673800fd6c03d50a639562bf5655d2633d31c5c77919153e8c62b0e1 SHA512 0d3650146960404bb44e08427c4c9970ac7f1b5e3b5e3c4d232ae695b102d573debd4a140a008e8a3ba30972a778732da37f67b14facb739b7ae5e1c8c0eec2f +EBUILD ruby-2.4.7.ebuild 6649 BLAKE2B 475ae84754b435f87e6f8f54263f1504c587a4bf4048f7abe70d12e84e4df0e84fbd252478b4edb76ee13ddb6a94761b3045cf181976fe65dd6dc5db73ccf805 SHA512 00c66008aef631f25635425cfdd73281a61bfcbb733af0fa0fd56ac14bff03cfc14a6ec753eff157be4d9807fdde703549df877f73ee12e1543570c508edf04f +EBUILD ruby-2.5.5.ebuild 6438 BLAKE2B 95a3c3b1766d29dc8eed92909adec55407f435b0321eda9b9b53897395afca16672b5988e46d2f6fa1e5e24c697c2a0403f8331c0efda29fd3e03bf7c20a3302 SHA512 507daf247cd2df63cb0b7ce5851cd7e4e485492ff67b092138b8d6d19c593be185ae5efab7249cdc17f3d6ab6eebdb387f8a9abf35b59155a5675723b7ba217a +EBUILD ruby-2.5.6.ebuild 6439 BLAKE2B 5ed061b811b200af15fc839ea23d38c4de0351b6637ea282eb4de97e97dd38192e9a8f056b4e84b07dff3b933a02b928d6b92e1673b9b739599da980ff5c755e SHA512 96c263959a7a0b859987f0c2c24f7e82397a05edd7cf41ad32a058d2a57a812665ed0f4e280772c52bb5a86c06ecdf8540d0750f2a7e2a1c749fd4cfeafcdce2 EBUILD ruby-2.6.2.ebuild 6891 BLAKE2B 5e59babfae786171568cfad90b3111cfc543667a0e41afafaa453c9447c21377c9cc20e6ffaf1d5fe6621d8664df73edf48913818b72dd725aef076164c962cc SHA512 c7dd27222c81ef318cd42f2222912ab9eab62015687d7589306457f5001f026b0f330317ce1115b78ddd23278a333c0c3b8052cd37f900966cf1f9b6652c601a EBUILD ruby-2.6.3.ebuild 6891 BLAKE2B 5e59babfae786171568cfad90b3111cfc543667a0e41afafaa453c9447c21377c9cc20e6ffaf1d5fe6621d8664df73edf48913818b72dd725aef076164c962cc SHA512 c7dd27222c81ef318cd42f2222912ab9eab62015687d7589306457f5001f026b0f330317ce1115b78ddd23278a333c0c3b8052cd37f900966cf1f9b6652c601a +EBUILD ruby-2.6.4.ebuild 6891 BLAKE2B 059de0ac210fbac3e69eb0905b6363dd17c6cf9851e13d980413f4ca2d2d0f4622753a2d01764bf46b60faaacd0c85fa2ca4bf799cc13e68d68dd9a949de0686 SHA512 f2e334927ec9a3ea69f44542367d408bdba0cec9a0c511010dd1a7066cbe1aece971a73c7c816af49de8d91cfdce73cc134eeff6f3709462f3b4f6fc86014f4e MISC metadata.xml 445 BLAKE2B c3b5fae44894da3c78d024a376522aa2ef486cd9435351ddd7fa8b7c9afdc36969251a3b043d5890a368616f0736ae80e2a65a7342b327f30eb3497c5c02d28a SHA512 3818ac938dd6f8a05e18662f83af542fb29af00a476362592afa86bc537a74ddd0abe275784340539b2cd38f97ad1fce8b8c427c65d61c05a90b2118f2d16a91 diff --git a/dev-lang/ruby/ruby-2.4.7.ebuild b/dev-lang/ruby/ruby-2.4.7.ebuild new file mode 100644 index 000000000000..728daa1020f2 --- /dev/null +++ b/dev-lang/ruby/ruby-2.4.7.ebuild @@ -0,0 +1,230 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools flag-o-matic multilib + +MY_P="${PN}-$(ver_cut 1-3)" +S=${WORKDIR}/${MY_P} + +SLOT=$(ver_cut 1-2) +MY_SUFFIX=$(ver_rs 1 '' ${SLOT}) +RUBYVERSION=${SLOT}.0 + +DESCRIPTION="An object-oriented scripting language" +HOMEPAGE="https://www.ruby-lang.org/" +SRC_URI="mirror://ruby/${SLOT}/${MY_P}.tar.xz" + +LICENSE="|| ( Ruby-BSD BSD-2 )" +KEYWORDS="~alpha amd64 ~arm arm64 hppa ~ia64 ~mips ppc ppc64 s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd" +IUSE="berkdb debug doc examples gdbm ipv6 jemalloc libressl +rdoc rubytests socks5 +ssl static-libs tk xemacs" + +RDEPEND=" + berkdb? ( sys-libs/db:= ) + gdbm? ( sys-libs/gdbm:= ) + jemalloc? ( dev-libs/jemalloc ) + ssl? ( + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl ) + ) + socks5? ( >=net-proxy/dante-1.1.13 ) + tk? ( + dev-lang/tcl:0=[threads] + dev-lang/tk:0=[threads] + ) + dev-libs/libyaml + virtual/libffi:= + sys-libs/readline:0= + sys-libs/zlib + >=app-eselect/eselect-ruby-20161226 + ! +Date: Sun Aug 9 21:15:16 2015 +0200 + + Fixes arity for pervasive modulo operation + +diff --git a/source/tables_gen/pervasives/pervasives.in b/source/tables_gen/pervasives/pervasives.in +index 2a332da..fcac330 100644 +--- a/source/tables_gen/pervasives/pervasives.in ++++ b/source/tables_gen/pervasives/pervasives.in +@@ -91,8 +91,6 @@ + TYPE 7 int -> int + /* unary minus on integers */ + 56 %i~ intuminus 0 0 0 TRUE FALSE MAX PREFIX NOCODE - +- /* modulus */ +- 61 mod mod 0 0 0 TRUE TRUE 160 INFIXL NOCODE + /* integer abs */ + 63 %iabs iabs 0 0 0 TRUE TRUE 0 NOFIXITY NOCODE abs + ;; +@@ -107,6 +105,8 @@ + 59 %i* intmult 0 0 0 TRUE FALSE 160 INFIXL NOCODE * + /* integer division */ + 60 div intdiv 0 0 0 TRUE FALSE 160 INFIXL NOCODE ++ /* modulus */ ++ 61 mod mod 0 0 0 TRUE TRUE 160 INFIXL NOCODE + ;; + + /* int -> int -> o */ diff --git a/dev-lang/teyjus/files/teyjus-2.1-p002-Add-string-literals-from-proper-character-groups.patch b/dev-lang/teyjus/files/teyjus-2.1-p002-Add-string-literals-from-proper-character-groups.patch new file mode 100644 index 000000000000..0d5e4acbb913 --- /dev/null +++ b/dev-lang/teyjus/files/teyjus-2.1-p002-Add-string-literals-from-proper-character-groups.patch @@ -0,0 +1,45 @@ +commit 78ba2ba7e42d06e64a7a10915259a4e419aa4ce4 +Merge: 4e53477 bb9ba6a +Author: fafounet +Date: Sat Feb 27 13:10:59 2016 +0100 + + Merge pull request #104 from robblanco/string-literals + + Add string literals from proper character groups + +commit bb9ba6a57969c9eeab5841923ca822756860163c +Author: Rob Blanco +Date: Wed Feb 24 19:01:06 2016 +0100 + + Add string literals from proper character groups + + Escape prefixes were included in the strings being passed to the + character composition functions, resulting in incorrect characters + being generated (in the case of control characters) or exceptions + being thrown (in octal and hex literals, in combination with the + OCaml-specific prefixes). + +diff --git a/source/compiler/lplex.mll b/source/compiler/lplex.mll +index 6cb28cd..6b2576a 100644 +--- a/source/compiler/lplex.mll ++++ b/source/compiler/lplex.mll +@@ -215,11 +215,14 @@ and stringstate = parse + | "\\\"" {addChar '"'; stringstate lexbuf} + | "\"\"" {addChar '"'; stringstate lexbuf} + +-| "\\^"['@'-'z'] as text {addControl text; stringstate lexbuf} +-| "\\" OCTAL as text {addOctal text; stringstate lexbuf} +-| "\\" (OCTAL OCTAL OCTAL) as text {addOctal text; stringstate lexbuf} +-| "\\x" HEX as text {addHex text; stringstate lexbuf} +-| "\\x" (HEX HEX) as text {addHex text; stringstate lexbuf} ++| "\\^" (['@'-'z'] as text) {addControl (String.make 1 text); ++ stringstate lexbuf} ++| "\\" (OCTAL as text) {addOctal (String.make 1 text); ++ stringstate lexbuf} ++| "\\" (OCTAL OCTAL OCTAL as text) {addOctal text; stringstate lexbuf} ++| "\\x" (HEX as text) {addHex (String.make 1 text); ++ stringstate lexbuf} ++| "\\x" (HEX HEX as text) {addHex text; stringstate lexbuf} + + | "\\x" _ {Errormsg.error lexbuf.lex_curr_p + "Illegal hex character specification"; diff --git a/dev-lang/teyjus/files/teyjus-2.1-p003-Removing-deprecated-function-String.set.patch b/dev-lang/teyjus/files/teyjus-2.1-p003-Removing-deprecated-function-String.set.patch new file mode 100644 index 000000000000..a6724a9093ac --- /dev/null +++ b/dev-lang/teyjus/files/teyjus-2.1-p003-Removing-deprecated-function-String.set.patch @@ -0,0 +1,51 @@ +commit 38772fa56ed7edef88e71df8a69eea4f341968ed +Author: Giselle Reis +Date: Fri Jul 26 15:28:03 2019 +0300 + + Removing deprecated function String.set + + Teyjus will not build with a typecheck error + because String.set takes bytes, not a string. This + commit fixes this issue. + String.set is deprecated, so Bytes.set is used + instead. + +diff --git a/source/compiler/bytecode.ml b/source/compiler/bytecode.ml +index 957c276..655ddab 100644 +--- a/source/compiler/bytecode.ml ++++ b/source/compiler/bytecode.ml +@@ -248,28 +248,28 @@ let readWord () = readNBytes (getInChannel ()) (getWordSize ()) + let readString () = + let input = getInChannel () in + let length = readNBytes input 4 in +- let myString = String.make length ' ' in ++ let myString = Bytes.make length ' ' in + let rec readStringAux index = + if (index = length) then () + else +- (String.set myString index (input_char input); ++ (Bytes.set myString index (input_char input); + readStringAux (index + 1)) + in + readStringAux 0; +- myString ++ Bytes.to_string myString + + let readLongString () = + let input = getInChannel() in + let length = readNBytes input 4 in +- let myString = String.make length ' ' in ++ let myString = Bytes.make length ' ' in + let rec readStringAux index = + if (index = length) then () + else +- (String.set myString index (input_char input); ++ (Bytes.set myString index (input_char input); + readStringAux (index + 1)) + in + readStringAux 0; +- myString ++ Bytes.to_string myString + + (* skip n bytes *) + let skipNBytes numberBytes = diff --git a/dev-lang/teyjus/teyjus-2.0.2.ebuild b/dev-lang/teyjus/teyjus-2.0.2.ebuild deleted file mode 100644 index 41a6ffe77a02..000000000000 --- a/dev-lang/teyjus/teyjus-2.0.2.ebuild +++ /dev/null @@ -1,117 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI="6" - -inherit elisp-common multilib versionator - -MY_PN="${PN}-source" -MY_P=$(version_format_string '${MY_PN}-$1.$2-b$3') - -DESCRIPTION="Higher-order logic programming language Lambda Prolog" -HOMEPAGE="http://teyjus.cs.umn.edu/" -SRC_URI="https://teyjus.googlecode.com/files/${MY_P}.tar.gz" - -SLOT="0/${PV}" -KEYWORDS="~amd64 ~x86" -LICENSE="GPL-3" -IUSE="emacs examples +ocamlopt" - -RDEPEND=">=sys-devel/binutils-2.17:* - >=sys-devel/gcc-2.95.3:* - >=dev-lang/ocaml-3.10[ocamlopt?] - emacs? ( virtual/emacs )" -DEPEND="${RDEPEND} - dev-util/omake" - -S=${WORKDIR}/${PN} - -SITEFILE=50${PN}-gentoo.el - -src_prepare() { - default - eapply "${FILESDIR}/${PN}-2.0.2-flags.patch" - local cflags="" - for i in ${CFLAGS} - do - cflags="${cflags} -ccopt ${i}" - done - local lflags="" - for i in ${LDFLAGS} - do - lflags="${lflags} -cclib ${i}" - done - sed -e "s@CFLAGS +=@CFLAGS += ${CFLAGS}@" \ - -e "s@LDFLAGS +=@LDFLAGS += ${LDFLAGS}@" \ - -e "s@OCAMLFLAGS +=@OCAMLFLAGS +=${cflags}${lflags}@" \ - -i "${S}/source/OMakefile" \ - || die "Could not set flags in ${S}/teyjus/source/OMakefile" - if has_version ">=dev-lang/ocaml-4.03.0"; then - # bug 591368 - pushd "${S}/source" || die - sed -e 's@$(FNT)/ccode_stubs@$(FNT)/ccode_stubs_c@' \ - -e 's@\(FNT_ML_TO_C\[\] =\)@\1\n $(FNT)/ccode_stubs@' \ - -i OMakefile || die - cd "${S}/source/front" || die - mv ccode_stubs.mli ccode_stubs.ml || die - mv ccode_stubs.c ccode_stubs_c.c || die - popd || die - fi -} - -src_compile() { - addpredict "/usr/$(get_libdir)/omake/Pervasives.omc" - addpredict "/usr/$(get_libdir)/omake/build/C.omc" - addpredict "/usr/$(get_libdir)/omake/build/Common.omc" - addpredict "/usr/$(get_libdir)/omake/configure/Configure.omc" - addpredict "/usr/$(get_libdir)/omake/build/OCaml.omc" - omake --verbose all || die "omake all failed" - if use emacs ; then - pushd "${S}/emacs" || die "Could change directory to emacs" - elisp-compile *.el || die "emacs elisp compile failed" - popd - fi -} - -ins_example_dir() { - dodir "/usr/share/${PN}/examples/${1}" - insinto "/usr/share/${PN}/examples/${1}" - cd "${S}/examples/${1}" - doins * -} - -src_install() { - newbin source/tjcc.opt tjcc - newbin source/tjdepend.opt tjdepend - newbin source/tjdis.opt tjdis - newbin source/tjlink.opt tjlink - newbin source/tjsim.opt tjsim - dodoc README - if use emacs ; then - elisp-install ${PN} emacs/*.{el,elc} - cp "${FILESDIR}"/${SITEFILE} "${S}" - sed -e 's@/usr/bin/tjcc@'${EPREFIX}/usr/bin/tjcc'@' -i ${SITEFILE} \ - || die "Could not set tjcc executable path in emacs site file" - elisp-site-file-install ${SITEFILE} - fi - if use examples; then - ins_example_dir "handbook/logic" - ins_example_dir "handbook/progs" - ins_example_dir "misc" - ins_example_dir "ndprover" - ins_example_dir "pcf" - fi -} - -pkg_postinst() { - if use emacs; then - elisp-site-regen - ewarn "For teyjus emacs, add this line to ~/.emacs" - ewarn "" - ewarn "(require 'teyjus)" - fi -} - -pkg_postrm() { - use emacs && elisp-site-regen -} diff --git a/dev-lang/teyjus/teyjus-2.1-r1.ebuild b/dev-lang/teyjus/teyjus-2.1-r1.ebuild new file mode 100644 index 000000000000..4a0f0073b3ed --- /dev/null +++ b/dev-lang/teyjus/teyjus-2.1-r1.ebuild @@ -0,0 +1,112 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +inherit elisp-common multilib + +DESCRIPTION="Higher-order logic programming language Lambda Prolog" +HOMEPAGE="http://teyjus.cs.umn.edu/" +SRC_URI="https://github.com/teyjus/teyjus/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +SLOT="0/${PV}" +KEYWORDS="~amd64 ~x86" +LICENSE="GPL-3" +IUSE="emacs examples +ocamlopt" + +RDEPEND=">=sys-devel/binutils-2.17:* + >=sys-devel/gcc-2.95.3:* + >=dev-lang/ocaml-3.10[ocamlopt?] + emacs? ( virtual/emacs )" +DEPEND="${RDEPEND} + app-text/dos2unix + dev-util/omake" + +SITEFILE=50${PN}-gentoo.el + +PATCHES=( "${FILESDIR}/${P}-p001-Fixes-arity-for-pervasive-modulo-operation.patch" + "${FILESDIR}/${P}-p002-Add-string-literals-from-proper-character-groups.patch" + "${FILESDIR}/${P}-p003-Removing-deprecated-function-String.set.patch") + +src_prepare() { + find . -type f -exec dos2unix {} \; + default + local cflags="" + for i in ${CFLAGS} + do + cflags="${cflags} -ccopt ${i}" + done + local lflags="" + for i in ${LDFLAGS} + do + lflags="${lflags} -cclib ${i}" + done + sed -e "s@\(OCAMLFLAGS= -w -A\)@\1 ${cflags}${lflags}@" \ + -e "s@\(CFLAGS +=\) -g@\1 ${CFLAGS}\nLDFLAGS += ${LDFLAGS}@" \ + -i "${S}/source/OMakefile" \ + || die "Could not set flags in ${S}/teyjus/source/OMakefile" + if has_version ">=dev-lang/ocaml-4.03.0"; then + # bug 591368 + pushd "${S}/source" || die + sed -e 's@$(FNT)/ccode_stubs@$(FNT)/ccode_stubs_c@' \ + -e 's@\(FNT_ML_TO_C\[\] =\)@\1\n $(FNT)/ccode_stubs@' \ + -i OMakefile || die + cd "${S}/source/front" || die + mv ccode_stubs.mli ccode_stubs.ml || die + mv ccode_stubs.c ccode_stubs_c.c || die + popd || die + fi +} + +src_compile() { + export HOME="${T}" + omake --verbose --force-dotomake all || die "omake all failed" + if use emacs ; then + pushd "${S}/emacs" || die "Could change directory to emacs" + elisp-compile *.el || die "emacs elisp compile failed" + popd + fi +} + +ins_example_dir() { + dodir "/usr/share/${PN}/examples/${1}" + insinto "/usr/share/${PN}/examples/${1}" + cd "${S}/examples/${1}" + doins * +} + +src_install() { + newbin source/tjcc.opt tjcc + newbin source/tjdepend.opt tjdepend + newbin source/tjdis.opt tjdis + newbin source/tjlink.opt tjlink + newbin source/tjsim.opt tjsim + dodoc README.md QUICKSTART + if use emacs ; then + elisp-install ${PN} emacs/*.{el,elc} + cp "${FILESDIR}"/${SITEFILE} "${S}" + sed -e 's@/usr/bin/tjcc@'${EPREFIX}/usr/bin/tjcc'@' -i ${SITEFILE} \ + || die "Could not set tjcc executable path in emacs site file" + elisp-site-file-install ${SITEFILE} + fi + if use examples; then + ins_example_dir "handbook/logic" + ins_example_dir "handbook/progs" + ins_example_dir "misc" + ins_example_dir "ndprover" + ins_example_dir "pcf" + fi +} + +pkg_postinst() { + if use emacs; then + elisp-site-regen + ewarn "For teyjus emacs, add this line to ~/.emacs" + ewarn "" + ewarn "(require 'teyjus)" + fi +} + +pkg_postrm() { + use emacs && elisp-site-regen +} diff --git a/dev-lang/vala/Manifest b/dev-lang/vala/Manifest index 14687535ac48..92867d7b0c11 100644 --- a/dev-lang/vala/Manifest +++ b/dev-lang/vala/Manifest @@ -3,16 +3,20 @@ AUX 0.40-valadoc-doclets-data-parallel-installable.patch 6105 BLAKE2B 24f3a2c441 AUX 0.44-valadoc-doclets-data-parallel-installable.patch 6063 BLAKE2B d27b69ab82a789f73e9ba02ef10d3865452a5d5532215e44533012be29d36d40496346a0557ee90831fbe2cf1da9e77e56b30c3f1e988c051b97142d12952931 SHA512 d5174b6dbc887f25f90e400ae569152a998da3df3e9ca4ea5f450240b1982b7a118ddbce7814b98e966e384b956c02389b34200b6a1ecbf4e634fdc07421809a DIST vala-0.36.18.tar.xz 2905668 BLAKE2B ed7f8a38e99fd75945071cf54190631b0ccddbb682da9790bb07b4d334063679bfb002bcf6e5c6c1807ca2b1c4e80659441779c113a7b05f9b4ff291f5ada201 SHA512 69d76fddee8e52e54dc8a3dbe1c0ffc5aeaede096f52614c3a7e18d28ec7a6a31aa617719a4d27a7a15867cd740888f5b381cd612d8fc010f1ea9fd9389d0655 DIST vala-0.36.19.tar.xz 2909240 BLAKE2B 8b41ab516a6e5c9eef6e4f5590cfa49892e69a8bf28837c2816fb2024a91d614df3b0007554aad3ab8a87b18f174c5571289e0264d3a724fb223276d03a3001b SHA512 cb275146537f3cf0678d7de5c0ee1b1b364fef11099f3c3aaba48c1d0b839fd313cc04bef981f36e5f08b3cbb08cd3aef930357e4ee1ed52fefef446aede6449 +DIST vala-0.36.20.tar.xz 2918672 BLAKE2B 9c2c46992444fafd173f767a4a10ac185b0c49db0ede3cb52dec10da08ab3370adb4445087b24c91c9126e8586418a149ac783b3de92cac6c4badd488f3dc56f SHA512 21ca0573a2f9d945a362f7f15da7db25532fd7b19a0aa0442243b95df0568b7a88ae94d0659af44f6f57e364f4370de361102e7e46a070487985e7cb5d81277c DIST vala-0.40.14.tar.xz 3398668 BLAKE2B 6df1e47439000e1a49dda4d58651b7039737a2648563fc4e09d679bf63d968d9dafcc9ab5e371ca450bab70163f9fb1fb30ffa75451940f9a1518d7fb3a5ebf1 SHA512 0387bbcf35055f2b4a8f790370847bcc12a92d7969d9ed583b0630be8b637a9e28895508da9cdfab8baf97ad5fdc9249bf82e31e6c1ee19d0026f5061c027db8 DIST vala-0.40.15.tar.xz 3406020 BLAKE2B aaa2967a140fae94b4609f4b54f2e37c71fe79453cb3ea30568ee018d2227d1c45061440ad632bcfc53650fbe4dba2f062d8095f95936623a49efb5e97f2c2bb SHA512 abb918b00afab7a85586f9bd26b78be87e19b725752cbb77dd428da2e6241b1f3d4aaa70e3e6daf6f373562d02f1ff8016e6c9107e2bf088d9b84334adecdda2 +DIST vala-0.40.16.tar.xz 3412776 BLAKE2B 0cfe072ce3dfd8b95e804582899ff002869bc005b93ad1ba68e9b085e12444a3ef967c6282d65bab7f8302018edc075077ae8de65182b9123f8f74a91ea062bf SHA512 e37c8573fe6104c0ad6f29748cd28564638d62ebe499ce084481c74d2601a19334c431575904fbbed490b44ea117246516580a5d658dfba30c63de7e7c3fa3e0 DIST vala-0.42.7.tar.xz 3362192 BLAKE2B 59f76d43f4bf80f75681c386cb30c4686bf93444bcd371900b134e0338ab865cf61d4cfd35facfff47c78075c384028cbcbd318eb927444f15862f7a28bccaa1 SHA512 d9044b126c91f3b1835a7182a054464339e4e2e52e63df90f43d2d5d9cba06fd6bb7eed5f6aa4d502f43f0a1232610d39d244952cfca54f63eb019e764899eca DIST vala-0.44.7.tar.xz 3355928 BLAKE2B 172e9fee6edec63324b9babc125d2bdb53c2025b2cb86339b54a4c8017ccdf78a848076fdd6a8f5200c15c48864542d711896160f78790d36a29d30980177d34 SHA512 5a645e1b1929644ec6b53d06895afcf62d41d6fd63f82c3be3aa4e28847173071621ec857cb973df38d36e60eb960954c2fb48fb4189e1afcbb25a2376ff0d77 -DIST vala-0.45.90.tar.xz 3357976 BLAKE2B 8c7beb7f2e0fc88b2d789334d0986a6822448148fda2666bc34ff2d3a928e0256895025a88a86c5ca35a9969536157eb27226523c1bda0355bbd436e3c82337b SHA512 3d8ca535f30ba73c2433f377f029b3f7edb92f4a5a71a54ddd95936314f881d5d0b6e31a8fc8747197ab458b3bd84b3e1f1b7a7a73d6bf99edb544e6b2b5339b +DIST vala-0.45.91.tar.xz 3358640 BLAKE2B e51e1e30042cce60f58f9c63698222d40e719f2cd9258d264bdffc2226cd0c126dc0c256d557a2bc600cd2c0cd9f1f55987f9e96ac666d9d57fdd7b1501afb1d SHA512 7bddbd0d711b50154be6e6d3ebe0576c3ead0f533a0b177c3eb181555eb3d096353157cc490b49c9453686e765739283e30d3881652a9bfb82baeed9be4817b6 EBUILD vala-0.36.18.ebuild 798 BLAKE2B 6def4d1f13ee1fd84f2405da15b6cab064ec882b2ba4fd497636966414308dddefda9357d0559b052277476becf2856ca923f62007f0a319ea90cc3a0fcf572d SHA512 2bbd7d899f35cfbe72ee2c9304ff2d68e87babb06fa6f8c2ea94edbe95cb3b039e33e565d5af6cda978cf6e8517cc5cd51f763dcf6f9963c5c5ae30ae434555e EBUILD vala-0.36.19.ebuild 799 BLAKE2B 6dad69eb7e269525d33eba9e093a41a521b4de2eb6b7f4b933a2eb4e377de2c3dd6dedc0f17c03c4c0d77c85913b3d61d4d92f6b225a237a17c0b1bccc6a5100 SHA512 4a492eb53d12c62d04c5f4b574e71c88a81c28291682ac16a0f4ad02263193860fdf0f965a8c81e9aadca79e62872e833d3db8d5f97833b3a40971d2d1739c6f +EBUILD vala-0.36.20.ebuild 803 BLAKE2B 9bdfc3b9ea2ad19f212ecf671a73e1a7a285ab21d125590755950551366bc368855102e3f91b304ad975bc6ac2e0744130629ae56643a92210b97cfef1896d16 SHA512 a19224046df529f1dc98159e92b32c57a18c89a4791ecc2420182ff047bef6bd77461c3dda0164e7af8a33981180b15a0d22ddfcca4beffabf2887a12629698f EBUILD vala-0.40.14.ebuild 1185 BLAKE2B 1cb8b3efdd6f010c5524aabced06132f9f90920d3345e216df0dcb555ab2d4c10afa196271b2623d71d5b4dc57ce2705677275c1da7c0099925e82d5cb1eac26 SHA512 5e271726a2e71902440df5c03897f9c1960d83bb6eff5d2f4a1213d791190a2f34a81fdefb165427c9ca3a92aacdc801c5bb4be5b98fca27ed0b9adafc4d5158 EBUILD vala-0.40.15.ebuild 1186 BLAKE2B be9ce6de6adbaa89caaec477d2cc774af7f55533d217d74845e780b628e0d17cd124da1a7f8312b8b4f30f74eaedd4d556647f13934c953e0831bce0413b6c87 SHA512 915aabe3dac3f293517e3166c7aff81591b3aadca06034ad3ac2aa53ae3b8f6d6262fd6acbfde54f2cacaa9ab9fd5454ad611c009f909e3cce8184d256245689 +EBUILD vala-0.40.16.ebuild 1190 BLAKE2B 6acd9bc1639f16dc6ba933abd675903ab68d832170eb6342caddea8dc4a8a6ff6c7fcea12d42b7f9b2a9a4e059f96ddc499f97baf9f2612061000c9116426c2f SHA512 543ee0e1469bc4d569bc6b97889d2ba14d2175ddf3104eb56bb363ca9f0968ef0de04e679d830a9a2011ce342cb07657a7f6af770ce426f15027de8af228557c EBUILD vala-0.42.7.ebuild 1185 BLAKE2B bbf7accf72f7d5370762acdbcc44efe46e56a05b4a08a5cd7ada34ecb81ce6ef30a1a96880ad0a8ca38b264f06a10e464aa11b4c2e15119a4c84485cb358c42f SHA512 1d32eaa0fa1883351b774cf31863624d595f2b840383b14d88790de48ccea776a498bb9bef7dddace1878f9a1fa2b59ef0e9c4e23a881a1238165a62d3b2781e EBUILD vala-0.44.7.ebuild 1118 BLAKE2B 7cbf0d0ed9c91f24e4089e0f3399e9c1b37b5a4f3d437323988d6b2ded2c7fefb58c5e3628f42a486ca8efc32cfed41a22bb339509b129f4949dfa77795a402b SHA512 173584f83ac6b82bb35ea858f5898a4e88ec6f3c84bd2efe613f3aa46a710447ff8dfdaf7e707bdf197caf4e142c2a12f22db5de3e29894aa496f8a7c8396df4 -EBUILD vala-0.45.90.ebuild 933 BLAKE2B 4763ba85b0ce563ef93b147d3fe12fecda7228d381bf07b66e09a8d02526583152428ec547e0ac1eaf97b8b91021c7e3b4554baba1397fd3d30321032993efcc SHA512 766e340c2029859ef6ebb8b5fb4a80710ec880a27a786d615ab83fb365865966ab9864c7d8e8ca79857ae925911e8f4669b2cb0fea68e3615a5b6ba07bf7dff7 +EBUILD vala-0.45.91.ebuild 1311 BLAKE2B 86cf90f253b4a0901da423160e9bb013a7726ad3aa56f1e2db5b668429493331e123049806af5912b68ff9ea785be484b50b773c67864243718eb645a81ca742 SHA512 c11f735374ef683a908279cded712b0120ee0dc5c5836b688800c1ab6d6c4e9b5e8facc9aac2b6d9c375c74fe0d5dd914e807f003a6ccdc8d95ab303ba56d58d MISC metadata.xml 345 BLAKE2B de3110ae281a87f8cb8f6c10d93705f56f0cfed972cd893a063e66c2629150d491498a29b35b4efe19fa5b6baa740f1d989bad440924befc60ef56423096f108 SHA512 163aa55430a075974d504a5bbb71ad9a249cb215de12a82b3141de18bb05f1e0c2078c02c617cf7d98a97c7f8dd407077183754d8c82c77e80dd0d7b2ec38283 diff --git a/dev-lang/vala/vala-0.36.20.ebuild b/dev-lang/vala/vala-0.36.20.ebuild new file mode 100644 index 000000000000..8065118e097b --- /dev/null +++ b/dev-lang/vala/vala-0.36.20.ebuild @@ -0,0 +1,37 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +inherit gnome2 + +DESCRIPTION="Compiler for the GObject type system" +HOMEPAGE="https://wiki.gnome.org/Projects/Vala" + +LICENSE="LGPL-2.1" +SLOT="0.36" +KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ~mips ppc ppc64 s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-linux" +IUSE="test" + +RDEPEND=" + >=dev-libs/glib-2.32:2 + >=dev-libs/vala-common-${PV} +" +DEPEND="${RDEPEND} + !${CATEGORY}/${PN}:0 + dev-libs/libxslt + sys-devel/flex + virtual/pkgconfig + virtual/yacc + test? ( + dev-libs/dbus-glib + >=dev-libs/glib-2.26:2 + dev-libs/gobject-introspection ) +" + +src_configure() { + # weasyprint enables generation of PDF from HTML + gnome2_src_configure \ + --disable-unversioned \ + VALAC=: \ + WEASYPRINT=: +} diff --git a/dev-lang/vala/vala-0.40.16.ebuild b/dev-lang/vala/vala-0.40.16.ebuild new file mode 100644 index 000000000000..fada0b1047f8 --- /dev/null +++ b/dev-lang/vala/vala-0.40.16.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +GNOME2_EAUTORECONF="yes" + +inherit gnome2 + +DESCRIPTION="Compiler for the GObject type system" +HOMEPAGE="https://wiki.gnome.org/Projects/Vala" + +LICENSE="LGPL-2.1" +SLOT="0.40" +KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ~mips ppc ppc64 s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-linux" +IUSE="test valadoc" + +RDEPEND=" + >=dev-libs/glib-2.40.0:2 + >=dev-libs/vala-common-${PV} + valadoc? ( >=media-gfx/graphviz-2.16 ) +" +DEPEND="${RDEPEND} + !${CATEGORY}/${PN}:0 + dev-libs/libxslt + sys-devel/flex + virtual/pkgconfig + virtual/yacc + test? ( + dev-libs/dbus-glib + >=dev-libs/glib-2.26:2 + dev-libs/gobject-introspection ) +" + +PATCHES=( + # From master + "${FILESDIR}"/0.40-Allow-disabling-the-build-of-valadoc.patch + # Add missing bits to make valadoc parallel installable + "${FILESDIR}"/0.40-valadoc-doclets-data-parallel-installable.patch +) + +src_configure() { + # weasyprint enables generation of PDF from HTML + gnome2_src_configure \ + --disable-unversioned \ + $(use_enable valadoc) \ + VALAC=: \ + WEASYPRINT=: +} + +src_install() { + default + find "${D}" -name "*.la" -delete || die +} diff --git a/dev-lang/vala/vala-0.45.90.ebuild b/dev-lang/vala/vala-0.45.90.ebuild deleted file mode 100644 index 26d79ce3530d..000000000000 --- a/dev-lang/vala/vala-0.45.90.ebuild +++ /dev/null @@ -1,44 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit gnome2 - -DESCRIPTION="Compiler for the GObject type system" -HOMEPAGE="https://wiki.gnome.org/Projects/Vala" - -LICENSE="LGPL-2.1+" -SLOT="0.46" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-linux" -IUSE="test valadoc" - -RDEPEND=" - >=dev-libs/glib-2.48.0:2 - >=dev-libs/vala-common-${PV} - valadoc? ( >=media-gfx/graphviz-2.16 ) -" -DEPEND="${RDEPEND} - dev-libs/libxslt - sys-devel/flex - virtual/pkgconfig - virtual/yacc - test? ( - dev-libs/dbus-glib - >=dev-libs/glib-2.26:2 - dev-libs/gobject-introspection ) -" - -src_configure() { - # weasyprint enables generation of PDF from HTML - gnome2_src_configure \ - --disable-unversioned \ - $(use_enable valadoc) \ - VALAC=: \ - WEASYPRINT=: -} - -src_install() { - default - find "${D}" -name "*.la" -delete || die -} diff --git a/dev-lang/vala/vala-0.45.91.ebuild b/dev-lang/vala/vala-0.45.91.ebuild new file mode 100644 index 000000000000..48608c5585be --- /dev/null +++ b/dev-lang/vala/vala-0.45.91.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit gnome2 + +DESCRIPTION="Compiler for the GObject type system" +HOMEPAGE="https://wiki.gnome.org/Projects/Vala" + +LICENSE="LGPL-2.1+" +SLOT="0.46" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-linux" +IUSE="test valadoc" + +RDEPEND=" + >=dev-libs/glib-2.48.0:2 + >=dev-libs/vala-common-${PV} + valadoc? ( >=media-gfx/graphviz-2.16 ) + != it, which would be bad +# as the newer is not required with older vala when those are picked instead of 0.46. +# vala-0.45.91 ships a broken libsoup-2.4.vapi copy too, but that'll be fixed by 0.45.92 +DEPEND="${RDEPEND} + dev-libs/libxslt + sys-devel/flex + virtual/pkgconfig + virtual/yacc + test? ( + dev-libs/dbus-glib + >=dev-libs/glib-2.26:2 + dev-libs/gobject-introspection ) +" + +src_configure() { + # weasyprint enables generation of PDF from HTML + gnome2_src_configure \ + --disable-unversioned \ + $(use_enable valadoc) \ + VALAC=: \ + WEASYPRINT=: +} + +src_install() { + default + find "${D}" -name "*.la" -delete || die +} -- cgit v1.2.3