Sync with portage [Tue Dec 20 09:40:03 MSK 2016].

mhiretskiy 685
root 7 years ago
parent 0bf2d9f99f
commit d14fcfcb81

@ -1,3 +1,4 @@
DIST httpd-2.2.31.tar.bz2 5610489 SHA256 f32f9d19f535dac63b06cb55dfc023b40dcd28196b785f79f9346779e22f26ac SHA512 5aa47d4b76f692bbd8b309135ff99152df98cf69b505b9daf3f13f7f2a31443eaf4995161adfbc47a133b4d0e091fda2d95fc6b87a956f0ada18d7466ee28e74 WHIRLPOOL a2e3e53c51719cb6f7e641b41788cd89ce7b4d2ea105b403bfa3b3d4479b69c5604228269062f66722594e105e91121d05b1c9f27ca7dc4ecfcf339da8b8375c
DIST httpd-2.4.20.tar.bz2 6331344 SHA256 0e76a375ed3dbac636f50ac39de966ece443751fe4d62392f9a360a19d94d0da SHA512 8591e0ca8f1c4755d670f1a8780bb656c62b30635cff1f7d4434f7c5017b99f1b14bbb296da5cdb63cd3bcfa4908b8b5f99a0c036e9e0f0c9514acd2a3cb7e53 WHIRLPOOL cc61fa5a2344268cdba69ba1662d555d492b40468a81b1d67fce55f85e178f63ef218a303e51e494c91a26dcec259e3912ca640192dbbe42d2b02ee4fac19a1d
DIST httpd-2.4.23.tar.bz2 6351875 SHA256 0c1694b2aad7765896faf92843452ee2555b9591ae10d4f19b245f2adfe85e58 SHA512 c520de5be748c0a785ef0dc77102749eb4f47e224968b8d4bed2ae644faa0964623a0e960b64486a0888446790d050b52a6ae34fe61717fab95b37384b4825b1 WHIRLPOOL f3defbd06a878c66236adfcac2b59b6f47115ac815708bb45f2152bd1754b14a01458c9331eb7a65cba52e0bc53e2e66b32a384d44a029b07ffdd068c7c08a19
DIST httpd-2.4.25.tar.bz2 6398218 SHA256 f87ec2df1c9fee3e6bfde3c8b855a3ddb7ca1ab20ca877bd0e2b6bf3f05c80b2 SHA512 6ba4ce1dcef71416cf1c0de2468c002767b5637a75744daf5beb0edd045749a751b3826c4132f594c48e4b33ca8e1b25ebfb63ac4c8b759ca066a89d3261fb22 WHIRLPOOL ccb783875632241e8acf7b43c59163c25b13357b307416abaa3adb0ac868fc547b3cff9585b347e98a8663ec26bea3edad4d42604e6ae86b0db5f769fc11d072

@ -0,0 +1,107 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=6
inherit flag-o-matic eutils multilib toolchain-funcs
DESCRIPTION="Useful Apache tools - htdigest, htpasswd, ab, htdbm"
HOMEPAGE="https://httpd.apache.org/"
SRC_URI="mirror://apache/httpd/httpd-${PV}.tar.bz2"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc64-solaris ~x64-solaris"
IUSE="libressl ssl"
RESTRICT="test"
RDEPEND=">=dev-libs/apr-1.5.0:1
dev-libs/apr-util:1
dev-libs/expat
dev-libs/libpcre
kernel_linux? ( sys-apps/util-linux )
ssl? (
!libressl? ( dev-libs/openssl:0= )
libressl? ( dev-libs/libressl:0= )
)"
DEPEND="${RDEPEND}
sys-devel/libtool"
S="${WORKDIR}/httpd-${PV}"
PATCHES=(
"${FILESDIR}/${PN}-2.4.7-Makefile.patch" #459446
)
src_prepare() {
default
# This package really should upgrade to using pcre's .pc file.
cat <<-\EOF >"${T}"/pcre-config
#!/bin/bash
flags=()
for flag; do
if [[ ${flag} == "--version" ]]; then
flags+=( --modversion )
else
flags+=( "${flag}" )
fi
done
exec ${PKG_CONFIG} libpcre "${flags[@]}"
EOF
chmod a+x "${T}"/pcre-config
}
src_configure() {
# Brain dead check.
tc-is-cross-compiler && export ap_cv_void_ptr_lt_long="no"
tc-export PKG_CONFIG
# Instead of filtering --as-needed (bug #128505), append --no-as-needed
#append-ldflags $(no-as-needed)
# econf overwrites the stuff from config.layout.
ac_cv_path_PKGCONFIG=${PKG_CONFIG} \
econf \
--libexecdir="${EPREFIX}"/usr/$(get_libdir)/apache2/modules \
--sbindir="${EPREFIX}"/usr/sbin \
--with-perl="${EPREFIX}"/usr/bin/perl \
--with-expat="${EPREFIX}"/usr \
--with-z="${EPREFIX}"/usr \
--with-apr="${SYSROOT}${EPREFIX}"/usr \
--with-apr-util="${SYSROOT}${EPREFIX}"/usr \
--with-pcre="${T}"/pcre-config \
$(use_enable ssl) \
$(usex ssl '--with-ssl="${EPREFIX}"/usr' '')
sed -i \
-e '/^LTFLAGS/s:--silent::' \
build/rules.mk build/config_vars.mk || die
}
src_compile() {
emake -C support
}
src_install() {
emake -C support DESTDIR="${D}" install
dodoc CHANGES
doman docs/man/{dbmmanage,htdigest,htpasswd,htdbm,ab,logresolve}.1 \
docs/man/{htcacheclean,rotatelogs}.8
# Providing compatiblity symlinks for #177697 (which we'll stop to install
# at some point).
pushd "${ED}"/usr/sbin >/dev/null || die
local i
for i in *; do
dosym ${i} /usr/sbin/${i}2
done
popd >/dev/null || die
# Provide a symlink for ab-ssl
if use ssl; then
dosym ab /usr/bin/ab-ssl
dosym ab /usr/bin/ab2-ssl
fi
}

@ -12,7 +12,7 @@ SRC_URI="http://git.zx2c4.com/password-store/snapshot/password-store-${PV}.tar.x
SLOT="0"
LICENSE="GPL-2"
KEYWORDS="~amd64 ~x86 ~x86-macos"
KEYWORDS="amd64 ~x86 ~x86-macos"
IUSE="+git X zsh-completion fish-completion emacs dmenu importers elibc_Darwin"
RDEPEND="

@ -11,7 +11,7 @@ SRC_URI="http://www.libarchive.org/downloads/${P}.tar.gz"
LICENSE="BSD BSD-2 BSD-4 public-domain"
SLOT="0/13"
KEYWORDS="alpha amd64 arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~arm-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 ~s390 ~sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="acl +bzip2 +e2fsprogs expat +iconv kernel_linux libressl lz4 +lzma lzo nettle static-libs +threads xattr +zlib"
RDEPEND="

@ -14,7 +14,7 @@ SRC_URI="mirror://sourceforge/${PN}/${PN}_${PV}_src_all.tar.bz2"
LICENSE="LGPL-2.1 rar? ( unRAR )"
SLOT="0"
KEYWORDS="alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sparc x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris"
KEYWORDS="alpha amd64 ~arm ~hppa ia64 ~ppc ~ppc64 ~s390 sparc x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris"
IUSE="abi_x86_x32 doc kde +pch rar static wxwidgets"
REQUIRED_USE="kde? ( wxwidgets )"

@ -14,7 +14,7 @@ SRC_URI="http://www.rarlab.com/rar/${MY_PN}-${PV}.tar.gz"
LICENSE="unRAR"
SLOT="0"
KEYWORDS="alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris"
KEYWORDS="alpha amd64 ~arm ~arm64 ~hppa ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris"
IUSE=""
RDEPEND="!<=app-arch/unrar-gpl-0.0.1_p20080417"

@ -14,7 +14,7 @@ SRC_URI="http://${PN}.le-web.org/download/${PN}/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
KEYWORDS="amd64 ~x86"
IUSE="qt4"
DEPEND="${PYTHON_DEPS}

@ -10,5 +10,5 @@ SRC_URI="https://archive.hadrons.org/software/libmd/${P}.tar.xz"
LICENSE="|| ( BSD BSD-2 ISC BEER-WARE public-domain )"
SLOT="0"
KEYWORDS="~amd64 ~x86"
KEYWORDS="amd64 ~x86"
IUSE=""

@ -12,7 +12,7 @@ SRC_URI="mirror://debian/pool/main/s/signing-party/${PN}_${PV}.orig.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
KEYWORDS="amd64 ~x86"
IUSE=""
DEPEND="dev-lang/perl"

@ -1,10 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>zx2c4@gentoo.org</email>
<name>Jason A. Donenfeld</name>
</maintainer>
<upstream>
<remote-id type="github">kuba/simp_le</remote-id>
</upstream>

@ -43,7 +43,7 @@ DEPEND="
app-text/pandoc
dev-haskell/pandoc-citeproc[bibutils]
dev-texlive/texlive-fontsrecommended
dev-texlive/texlive-latex
dev-texlive/texlive-latexrecommended
virtual/pkgconfig
api? (
media-fonts/dejavu

@ -16,7 +16,7 @@ if [[ ${PV} == "9999" ]] ; then
KEYWORDS=""
else
SRC_URI="https://root.cern.ch/download/${ROOT_PN}_v${PV}.source.tar.gz"
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
S="${WORKDIR}/${ROOT_PN}"
fi
@ -43,7 +43,7 @@ DEPEND="
app-text/pandoc
dev-haskell/pandoc-citeproc[bibutils]
dev-texlive/texlive-fontsrecommended
dev-texlive/texlive-latex
dev-texlive/texlive-latexrecommended
virtual/pkgconfig
api? (
media-fonts/dejavu

@ -35,7 +35,7 @@ DEPEND="
app-text/pandoc
dev-haskell/pandoc-citeproc[bibutils]
dev-texlive/texlive-fontsrecommended
dev-texlive/texlive-latex
dev-texlive/texlive-latexrecommended
virtual/pkgconfig
api? (
media-fonts/dejavu

@ -15,7 +15,7 @@ if [[ ${PV} == 9999* ]] ; then
else
SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> vim-${PV}.tar.gz
https://dev.gentoo.org/~radhermit/vim/vim-8.0.0106-gentoo-patches.tar.bz2"
KEYWORDS="alpha amd64 arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris"
KEYWORDS="alpha amd64 arm ~hppa ia64 ~ppc ~ppc64 sparc x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris"
fi
DESCRIPTION="GUI version of the Vim text editor"

@ -13,7 +13,7 @@ if [[ ${PV} == 9999* ]] ; then
else
SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> vim-${PV}.tar.gz
https://dev.gentoo.org/~radhermit/vim/vim-8.0.0106-gentoo-patches.tar.bz2"
KEYWORDS="alpha amd64 arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~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 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
fi
DESCRIPTION="vim and gvim shared files"

@ -14,7 +14,7 @@ if [[ ${PV} == 9999* ]] ; then
else
SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> ${P}.tar.gz
https://dev.gentoo.org/~radhermit/vim/vim-8.0.0106-gentoo-patches.tar.bz2"
KEYWORDS="alpha amd64 arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~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 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
fi
DESCRIPTION="Vim, an improved vi-style text editor"

@ -12,7 +12,7 @@ if [[ ${PV} == "99999999" ]] ; then
else
SRC_URI="mirror://gentoo/${P}.tar.bz2
https://dev.gentoo.org/~floppym/dist/${P}.tar.bz2"
KEYWORDS="alpha amd64 arm ~arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh ~sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-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 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
fi
DESCRIPTION="Eselect module for management of multiple Python versions"

@ -10,7 +10,7 @@ SRC_URI="https://github.com/jauhien/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
KEYWORDS="amd64 ~x86"
RDEPEND="app-admin/eselect"

@ -12,7 +12,7 @@ SRC_URI="${HOMEPAGE}/releases/download/tp-smapi/${PV}/${P}.tgz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
KEYWORDS="amd64 ~x86"
IUSE="hdaps"

@ -14,7 +14,7 @@ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~x86"
KEYWORDS="amd64 ~ppc ~x86"
IUSE="gnome gtk kde qt4"
RDEPEND="

@ -261,7 +261,7 @@ pkg_pretend() {
fi
check-reqs_pkg_pretend
if ! $(tc-is-clang) && [[ $(gcc-major-version) -lt 4 ]] || {
if ! $(tc-is-clang) && { [[ $(gcc-major-version) -lt 4 ]] ||
[[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 7 ]]; } then
eerror "Compilation with gcc older than 4.7 is not supported"
die "Too old gcc found."

@ -261,7 +261,7 @@ pkg_pretend() {
fi
check-reqs_pkg_pretend
if ! $(tc-is-clang) && [[ $(gcc-major-version) -lt 4 ]] || {
if ! $(tc-is-clang) && { [[ $(gcc-major-version) -lt 4 ]] ||
[[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 7 ]]; } then
eerror "Compilation with gcc older than 4.7 is not supported"
die "Too old gcc found."

@ -260,7 +260,7 @@ pkg_pretend() {
fi
check-reqs_pkg_pretend
if ! $(tc-is-clang) && [[ $(gcc-major-version) -lt 4 ]] || {
if ! $(tc-is-clang) && { [[ $(gcc-major-version) -lt 4 ]] ||
[[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 7 ]]; } then
eerror "Compilation with gcc older than 4.7 is not supported"
die "Too old gcc found."

@ -260,7 +260,7 @@ pkg_pretend() {
fi
check-reqs_pkg_pretend
if ! $(tc-is-clang) && [[ $(gcc-major-version) -lt 4 ]] || {
if ! $(tc-is-clang) && { [[ $(gcc-major-version) -lt 4 ]] ||
[[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 7 ]]; } then
eerror "Compilation with gcc older than 4.7 is not supported"
die "Too old gcc found."

@ -16,7 +16,7 @@ SRC_URI="
LICENSE="BSD-2"
SLOT="0"
KEYWORDS="alpha amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~sparc64-solaris"
KEYWORDS="alpha amd64 ~arm ~hppa ia64 ~mips ~ppc ~ppc64 ~s390 ~sh sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~sparc64-solaris"
IUSE="debug nls test"
RDEPEND="

@ -1,4 +1,4 @@
# Copyright 1999-2014 Gentoo Foundation
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
@ -21,7 +21,7 @@ DEPEND="${RDEPEND}
test? (
sys-apps/diffutils
media-libs/tiff
app-text/ghostscript-gpl
app-text/ghostscript-gpl[tiff]
)"
# Only need perl for the installed tools.
RDEPEND+=" perl? ( >=dev-lang/perl-5.8 )"

@ -1,4 +1,4 @@
# Copyright 1999-2015 Gentoo Foundation
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
@ -21,7 +21,7 @@ DEPEND="${RDEPEND}
test? (
sys-apps/diffutils
media-libs/tiff
app-text/ghostscript-gpl
app-text/ghostscript-gpl[tiff]
)"
# Only need perl for the installed tools.
RDEPEND+=" perl? ( >=dev-lang/perl-5.8 )"

@ -1,4 +1,4 @@
# Copyright 1999-2015 Gentoo Foundation
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
@ -21,7 +21,7 @@ DEPEND="${RDEPEND}
test? (
sys-apps/diffutils
media-libs/tiff
app-text/ghostscript-gpl
app-text/ghostscript-gpl[tiff]
)"
# Only need perl for the installed tools.
RDEPEND+=" perl? ( >=dev-lang/perl-5.8 )"

@ -1,4 +1,4 @@
# Copyright 1999-2015 Gentoo Foundation
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
@ -21,7 +21,7 @@ DEPEND="${RDEPEND}
test? (
sys-apps/diffutils
media-libs/tiff
app-text/ghostscript-gpl
app-text/ghostscript-gpl[tiff]
)"
# Only need perl for the installed tools.
RDEPEND+=" perl? ( >=dev-lang/perl-5.8 )"

@ -10,7 +10,7 @@ SRC_URI="mirror://sourceforge/${PN}/${PN}/${P}.tar.bz2"
LICENSE="Boost-1.0"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
IUSE="doc examples ssl test"
RDEPEND="dev-libs/boost

@ -20,7 +20,7 @@ RESTRICT="!bindist? ( bindist )"
REQUIRED_USE="server? ( tokudb? ( jemalloc ) ) static? ( !pam ) jdbc? ( extraengine server !static )"
# REMEMBER: also update eclass/mysql*.eclass before committing!
KEYWORDS="alpha amd64 arm ~arm64 hppa ~ia64 ~mips ~ppc ppc64 ~s390 ~sh ~sparc x86 ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ~ppc ppc64 ~s390 ~sh sparc x86 ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
MY_PATCH_DIR="${WORKDIR}/mysql-extras-${MY_EXTRAS_VER}"
PATCHES=(

@ -15,7 +15,7 @@ inherit mysql-multilib-r1
IUSE="$IUSE"
# REMEMBER: also update eclass/mysql*.eclass before committing!
KEYWORDS="alpha amd64 arm hppa ~ia64 ~mips ~ppc ppc64 ~s390 ~sh ~sparc x86 ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
KEYWORDS="alpha amd64 arm hppa ia64 ~mips ~ppc ppc64 ~s390 ~sh sparc x86 ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
# When MY_EXTRAS is bumped, the index should be revised to exclude these.
EPATCH_EXCLUDE=''

@ -15,7 +15,7 @@ HOMEPAGE="https://www.phpmyadmin.net/"
SRC_URI="https://files.phpmyadmin.net/${MY_PN}/${MY_PV}/${MY_P}.tar.xz"
LICENSE="GPL-2"
KEYWORDS="alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86 ~x86-fbsd ~ppc-macos ~x64-macos ~x86-macos"
KEYWORDS="alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 sparc x86 ~x86-fbsd ~ppc-macos ~x64-macos ~x86-macos"
IUSE="setup"
RDEPEND="

@ -13,7 +13,7 @@ PYTHON_COMPAT=( python{2_7,3_4} )
inherit eutils flag-o-matic linux-info multilib pam prefix python-single-r1 \
systemd user versionator
KEYWORDS="alpha amd64 arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~ppc-macos ~x86-solaris"
KEYWORDS="alpha amd64 arm ~hppa ia64 ~mips ~ppc ~ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~ppc-macos ~x86-solaris"
SLOT="$(get_version_component_range 1-2)"

@ -9,7 +9,7 @@ PYTHON_COMPAT=( python{2_7,3_4} )
inherit eutils flag-o-matic linux-info multilib pam prefix python-single-r1 \
systemd user versionator
KEYWORDS="alpha amd64 arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~ppc-macos ~x86-solaris"
KEYWORDS="alpha amd64 arm ~hppa ia64 ~mips ~ppc ~ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~ppc-macos ~x86-solaris"
SLOT="$(get_version_component_range 1-2)"

@ -9,7 +9,7 @@ PYTHON_COMPAT=( python{2_7,3_4} )
inherit eutils flag-o-matic linux-info multilib pam prefix python-single-r1 \
systemd user versionator
KEYWORDS="alpha amd64 arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~ppc-macos ~x86-solaris"
KEYWORDS="alpha amd64 arm ~hppa ia64 ~mips ~ppc ~ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~ppc-macos ~x86-solaris"
SLOT="$(get_version_component_range 1-2)"

@ -9,7 +9,7 @@ PYTHON_COMPAT=( python{2_7,3_4} )
inherit eutils flag-o-matic linux-info multilib pam prefix python-single-r1 \
systemd user versionator
KEYWORDS="alpha amd64 arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~ppc-macos ~x86-solaris"
KEYWORDS="alpha amd64 arm ~hppa ia64 ~mips ~ppc ~ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~ppc-macos ~x86-solaris"
SLOT="$(get_version_component_range 1-2)"

@ -9,7 +9,7 @@ PYTHON_COMPAT=( python{2_7,3_4,3_5} )
inherit eutils flag-o-matic linux-info multilib pam prefix python-single-r1 \
systemd user versionator
KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~ppc-macos ~x86-solaris"
KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ia64 ~mips ~ppc ~ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~ppc-macos ~x86-solaris"
SLOT="$(get_version_component_range 1-2)"

@ -1,5 +1,3 @@
DIST php-5.5.37.tar.bz2 13699851 SHA256 d2380ebe46caf17f2c4cd055867d00a82e6702dc5f62dc29ce864a5742905d88 SHA512 d2da921f3efd858e1cb8004873e377ca9c5821d5269d5b8e7c9be830b183f4d18f737b14653f65a43c0957bdca994e09a476d77e3a29a11e357abc24618c4c0f WHIRLPOOL 8db12b1d090bc1bfb3f5b20c661ba05588b8f988484d1887a959f943dd6f1756cb62bac811c809af516e6c3582b64388443546a3b4a17f0527a69fcbafc0452c
DIST php-5.5.38.tar.xz 11077780 SHA256 cb527c44b48343c8557fe2446464ff1d4695155a95601083e5d1f175df95580f SHA512 c2cdb18b2c9edaeff66591e8f58f8ff488260f537cdf9ce09820c163f20ff5209c0def89343d429932c9506ad4ef3daacf224946dac1c59622501092483f30c6 WHIRLPOOL 4380c1daa39f04f90d1457152e366720b295e96aba6859625c6b375a3785b4e0f30fea590c1ee1edb439c2a405446526c702a003d68ea6c817ab8684068a7581
DIST php-5.6.28.tar.xz 12441072 SHA256 07187ba2870f89cef334cd2ad6cb801aeec5eaf283da0293a9a6be75d6786d11 SHA512 3af54c0533bba23fa74c3815143cb27890900d8b0726ba8ae99a5f7dde4b5411e8eb7f559f73cf41559f11437036da70c7842b64f5555e4fab00d40cf7c35cd1 WHIRLPOOL 6b288cbb8bb005360b67fe998bf024674d685399fa411c03f5feb39a285a639012864c66ab166e2cdb6d468b59c5114f245b172813b5edd384cee598d488306a
DIST php-5.6.29.tar.xz 12444988 SHA256 0ff352a433f73e2c82b0d5b283b600402518569bf72a74e247f356dacbf322a7 SHA512 cb0d5eee5e705da270650439075ecacc8c3edc4f198ff96fb5ae6d63e999d5dbf65d3e45e52cd3e65f808a9ab91212a9ac5234d44a92daae683b8191d2b59619 WHIRLPOOL 28887945283a418d9b54378387927585a0d38718dabd650a999c3353315f428c0a46856097f056594f79f0ef7da10446a0fcb96762f4335d2afe8242f693370a
DIST php-7.0.14.tar.xz 12534712 SHA256 0f1dff6392a1cc2ed126b9695f580a2ed77eb09d2c23b41cabfb41e6f27a8c89 SHA512 321d07c89873fadcf5a4edf38323cd9e350fb06f9954a16ea2e1b9341590f1047b78d69818d80b376cd8e9f92ed9c3132b79bd5832a3ded99b78d87c291fb9a5 WHIRLPOOL 8283f14e02c763974cc5b9c24cca475030cbfaba8bb667d5e81b41ba9e2de42afd2364c586afbfc688bad03cd3b8de1399036064b8500a5afe614114fcbbe989

@ -1,311 +0,0 @@
;;;;;;;;;;;;;;;;;;;;;
; FPM Configuration ;
;;;;;;;;;;;;;;;;;;;;;
; All relative paths in this configuration file are relative to PHP's install
; prefix (/usr/lib/php5.3). This prefix can be dynamicaly changed by using the
; '-p' argument from the command line.
; Include one or more files. If glob(3) exists, it is used to include a bunch of
; files from a glob(3) pattern. This directive can be used everywhere in the
; file.
; Relative path can also be used. They will be prefixed by:
; - the global prefix if it's been set (-p arguement)
; - /usr/lib/php5.3 otherwise
;include=/etc/php/fpm-php5.3/fpm.d/*.conf
;;;;;;;;;;;;;;;;;;
; Global Options ;
;;;;;;;;;;;;;;;;;;
[global]
; Pid file
; Note: the default prefix is /var/lib
; Default Value: none
; Warning: pid file is overriden by the Gentoo init script.
; FPM will refuse to start if you uncomment this settingi and make use of the
; init script.
; pid = /var/run/php-fpm.pid
; Error log file
; Note: the default prefix is /var/lib
; Default Value: log/php-fpm.log
error_log = /var/log/php-fpm.log
; Log level
; Possible Values: alert, error, warning, notice, debug
; Default Value: notice
;log_level = notice
; If this number of child processes exit with SIGSEGV or SIGBUS within the time
; interval set by emergency_restart_interval then FPM will restart. A value
; of '0' means 'Off'.
; Default Value: 0
;emergency_restart_threshold = 0
; Interval of time used by emergency_restart_interval to determine when
; a graceful restart will be initiated. This can be useful to work around
; accidental corruptions in an accelerator's shared memory.
; Available Units: s(econds), m(inutes), h(ours), or d(ays)
; Default Unit: seconds
; Default Value: 0
;emergency_restart_interval = 0
; Time limit for child processes to wait for a reaction on signals from master.
; Available units: s(econds), m(inutes), h(ours), or d(ays)
; Default Unit: seconds
; Default Value: 0
;process_control_timeout = 0
; Send FPM to background. Set to 'no' to keep FPM in foreground for debugging.
; Default Value: yes
;daemonize = yes
;;;;;;;;;;;;;;;;;;;;
; Pool Definitions ;
;;;;;;;;;;;;;;;;;;;;
; Multiple pools of child processes may be started with different listening
; ports and different management options. The name of the pool will be
; used in logs and stats. There is no limitation on the number of pools which
; FPM can handle. Your system will tell you anyway :)
; Start a new pool named 'www'.
; the variable $pool can we used in any directive and will be replaced by the
; pool name ('www' here)
[www]
; Per pool prefix
; It only applies on the following directives:
; - 'slowlog'
; - 'listen' (unixsocket)
; - 'chroot'
; - 'chdir'
; - 'php_values'
; - 'php_admin_values'
; When not set, the global prefix (or /usr/lib/php5.3) applies instead.
; Note: This directive can also be relative to the global prefix.
; Default Value: none
;prefix = /path/to/pools/$pool
; The address on which to accept FastCGI requests.
; Valid syntaxes are:
; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific address on
; a specific port;
; 'port' - to listen on a TCP socket to all addresses on a
; specific port;
; '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
listen = 127.0.0.1:9000
; Set listen(2) backlog. A value of '-1' means unlimited.
; Default Value: 128 (-1 on FreeBSD and OpenBSD)
;listen.backlog = -1
; List of ipv4 addresses of FastCGI clients which are allowed to connect.
; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original
; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address
; must be separated by a comma. If this value is left blank, connections will be
; accepted from any ip address.
; Default Value: any
;listen.allowed_clients = 127.0.0.1
; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions.
; Default Values: user and group are set as the running user
; mode is set to 0666
;listen.owner = nobody
;listen.group = nobody
;listen.mode = 0666
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
user = nobody
group = nobody
; Choose how the process manager will control the number of child processes.
; Possible Values:
; static - a fixed number (pm.max_children) of child processes;
; dynamic - the number of child processes are set dynamically based on the
; following directives:
; pm.max_children - the maximum number of children that can
; be alive at the same time.
; pm.start_servers - the number of children created on startup.
; pm.min_spare_servers - the minimum number of children in 'idle'
; state (waiting to process). If the number
; of 'idle' processes is less than this
; number then some children will be created.
; pm.max_spare_servers - the maximum number of children in 'idle'
; state (waiting to process). If the number
; of 'idle' processes is greater than this
; number then some children will be killed.
; Note: This value is mandatory.
pm = dynamic
; The number of child processes to be created when pm is set to 'static' and the
; maximum number of child processes to be created when pm is set to 'dynamic'.
; This value sets the limit on the number of simultaneous requests that will be
; served. Equivalent to the ApacheMaxClients directive with mpm_prefork.
; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP
; CGI.
; Note: Used when pm is set to either 'static' or 'dynamic'
; Note: This value is mandatory.
pm.max_children = 50
; The number of child processes created on startup.
; Note: Used only when pm is set to 'dynamic'
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
;pm.start_servers = 20
; The desired minimum number of idle server processes.
; Note: Used only when pm is set to 'dynamic'
; Note: Mandatory when pm is set to 'dynamic'
pm.min_spare_servers = 5
; The desired maximum number of idle server processes.
; Note: Used only when pm is set to 'dynamic'
; Note: Mandatory when pm is set to 'dynamic'
pm.max_spare_servers = 35
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries. For
; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default Value: 0
;pm.max_requests = 500
; The URI to view the FPM status page. If this value is not set, no URI will be
; recognized as a status page. By default, the status page shows the following
; information:
; accepted conn - the number of request accepted by the pool;
; pool - the name of the pool;
; process manager - static or dynamic;
; idle processes - the number of idle processes;
; active processes - the number of active processes;
; total processes - the number of idle + active processes.
; max children reached - number of times, the process limit has been reached,
; when pm tries to start more children (works only for
; pm 'dynamic')
; The values of 'idle processes', 'active processes' and 'total processes' are
; updated each second. The value of 'accepted conn' is updated in real time.
; Example output:
; accepted conn: 12073
; pool: www
; process manager: static
; idle processes: 35
; active processes: 65
; total processes: 100
; max children reached: 1
; By default the status page output is formatted as text/plain. Passing either
; 'html' or 'json' as a query string will return the corresponding output
; syntax. Example:
; http://www.foo.bar/status
; http://www.foo.bar/status?json
; http://www.foo.bar/status?html
; Note: The value must start with a leading slash (/). The value can be
; anything, but it may not be a good idea to use the .php extension or it
; may conflict with a real PHP file.
; Default Value: not set
;pm.status_path = /status
; The ping URI to call the monitoring page of FPM. If this value is not set, no
; URI will be recognized as a ping page. This could be used to test from outside
; that FPM is alive and responding, or to
; - create a graph of FPM availability (rrd or such);
; - remove a server from a group if it is not responding (load balancing);
; - trigger alerts for the operating team (24/7).
; Note: The value must start with a leading slash (/). The value can be
; anything, but it may not be a good idea to use the .php extension or it
; may conflict with a real PHP file.
; Default Value: not set
;ping.path = /ping
; This directive may be used to customize the response of a ping request. The
; response is formatted as text/plain with a 200 response code.
; Default Value: pong
;ping.response = pong
; The timeout for serving a single request after which the worker process will
; be killed. This option should be used when the 'max_execution_time' ini option
; does not stop script execution for some reason. A value of '0' means 'off'.
; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
; Default Value: 0
;request_terminate_timeout = 0
; The timeout for serving a single request after which a PHP backtrace will be
; dumped to the 'slowlog' file. A value of '0s' means 'off'.
; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
; Default Value: 0
;request_slowlog_timeout = 0
; The log file for slow requests
; Default Value: not set
; Note: slowlog is mandatory if request_slowlog_timeout is set
;slowlog = /var/log/php-fpm-$pool.log.slow
; Set open file descriptor rlimit.
; Default Value: system defined value
;rlimit_files = 1024
; Set max core size rlimit.
; Possible Values: 'unlimited' or an integer greater or equal to 0
; Default Value: system defined value
;rlimit_core = 0
; Chroot to this directory at the start. This value must be defined as an
; absolute path. When this value is not set, chroot is not used.
; Note: you can prefix with '$prefix' to chroot to the pool prefix or one
; of its subdirectories. If the pool prefix is not set, the global prefix
; will be used instead.
; Note: chrooting is a great security feature and should be used whenever
; possible. However, all PHP paths will be relative to the chroot
; (error_log, sessions.save_path, ...).
; Default Value: not set
;chroot =
; Chdir to this directory at the start.
; Note: relative path can be used.
; Default Value: current directory or / when chroot
;chdir = /var/www
; Redirect worker stdout and stderr into main error log. If not set, stdout and
; stderr will be redirected to /dev/null according to FastCGI specs.
; Note: on highloaded environement, this can cause some delay in the page
; process time (several ms).
; Default Value: no
;catch_workers_output = yes
; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from
; the current environment.
; Default Value: clean env
;env[HOSTNAME] = $HOSTNAME
;env[PATH] = /usr/local/bin:/usr/bin:/bin
;env[TMP] = /tmp
;env[TMPDIR] = /tmp
;env[TEMP] = /tmp
; Additional php.ini defines, specific to this pool of workers. These settings
; overwrite the values previously defined in the php.ini. The directives are the
; same as the PHP SAPI:
; php_value/php_flag - you can set classic ini defines which can
; be overwritten from PHP call 'ini_set'.
; php_admin_value/php_admin_flag - these directives won't be overwritten by
; PHP call 'ini_set'
; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no.
; Defining 'extension' will load the corresponding shared extension from
; extension_dir. Defining 'disable_functions' or 'disable_classes' will not
; overwrite previously defined php.ini values, but will append the new value
; instead.
; Note: path INI options can be relative and will be expanded with the prefix
; (pool, global or /usr/lib/php5.3)
; Default Value: nothing is defined by default except the values in php.ini and
; specified at startup with the -d argument
;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com
;php_flag[display_errors] = off
;php_admin_value[error_log] = /var/log/fpm-php.www.log
;php_admin_flag[log_errors] = on
;php_admin_value[memory_limit] = 32M

@ -1,784 +0,0 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
inherit eutils autotools flag-o-matic versionator depend.apache apache-module db-use libtool systemd
KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
function php_get_uri ()
{
case "${1}" in
"php-pre")
echo "http://downloads.php.net/dsp/${2}"
;;
"php")
echo "http://www.php.net/distributions/${2}"
;;
"olemarkus")
echo "https://dev.gentoo.org/~olemarkus/php/${2}"
;;
"gentoo")
echo "mirror://gentoo/${2}"
;;
*)
die "unhandled case in php_get_uri"
;;
esac
}
PHP_MV="$(get_major_version)"
SLOT="$(get_version_component_range 1-2)"
# alias, so we can handle different types of releases (finals, rcs, alphas,
# betas, ...) w/o changing the whole ebuild
PHP_PV="${PV/_rc/RC}"
PHP_PV="${PHP_PV/_alpha/alpha}"
PHP_PV="${PHP_PV/_beta/beta}"
PHP_RELEASE="php"
[[ ${PV} == ${PV/_alpha/} ]] || PHP_RELEASE="php-pre"
[[ ${PV} == ${PV/_beta/} ]] || PHP_RELEASE="php-pre"
[[ ${PV} == ${PV/_rc/} ]] || PHP_RELEASE="php-pre"
PHP_P="${PN}-${PHP_PV}"
PHP_SRC_URI="$(php_get_uri "${PHP_RELEASE}" "${PHP_P}.tar.bz2")"
PHP_FPM_CONF_VER="1"
SRC_URI="${PHP_SRC_URI}"
DESCRIPTION="The PHP language runtime engine"
HOMEPAGE="http://php.net/"
LICENSE="PHP-3"
S="${WORKDIR}/${PHP_P}"
# 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} bcmath berkdb bzip2 calendar cdb cjk
crypt +ctype curl debug
enchant exif frontbase +fileinfo +filter firebird
flatfile ftp gd gdbm gmp +hash +iconv imap inifile
intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit 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"
DEPEND="
>=app-eselect/eselect-php-0.7.1-r3[apache2?,fpm?]
>=dev-libs/libpcre-8.32[unicode]
apache2? ( || ( >=www-servers/apache-2.4[apache2_modules_unixd,threads=]
<www-servers/apache-2.4[threads=] ) )
berkdb? ( =sys-libs/db-4* )
bzip2? ( app-arch/bzip2 )
cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
cjk? ( !gd? (
virtual/jpeg:0
media-libs/libpng:0=
sys-libs/zlib
) )
crypt? ( >=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
) )
firebird? ( dev-db/firebird )
gd? ( virtual/jpeg:0 media-libs/libpng:0= sys-libs/zlib )
gdbm? ( >=sys-libs/gdbm-1.8.0 )
gmp? ( >=dev-libs/gmp-4.1.2 )
iconv? ( virtual/libiconv )
imap? ( virtual/imap-c-client[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? ( virtual/mysql )
mysqli? ( >=virtual/mysql-4.1 )
)
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 )
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? ( >=dev-libs/openssl-0.9.7 )
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 )
)
unicode? ( dev-libs/oniguruma )
vpx? ( media-libs/libvpx )
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
)
xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 )
zip? ( sys-libs/zlib )
zlib? ( sys-libs/zlib )
virtual/mta
"
php="=${CATEGORY}/${PF}"
REQUIRED_USE="
truetype? ( gd )
vpx? ( gd )
cjk? ( gd )
exif? ( gd )
xpm? ( gd )
gd? ( zlib )
simplexml? ( xml )
soap? ( xml )
wddx? ( xml )
xmlrpc? ( || ( xml iconv ) )
xmlreader? ( xml )
xslt? ( xml )
ldap-sasl? ( ldap )
mhash? ( hash )
phar? ( hash )
libmysqlclient? ( || (
mysql
mysqli
pdo
) )
qdbm? ( !gdbm )
readline? ( !libedit )
recode? ( !imap !mysql !mysqli )
sharedmem? ( !threads )
!cli? ( !cgi? ( !fpm? ( !apache2? ( !embed? ( cli ) ) ) ) )"
RDEPEND="${DEPEND}"
RDEPEND="${RDEPEND}
fpm? (
selinux? ( sec-policy/selinux-phpfpm )
systemd? ( sys-apps/systemd ) )"
DEPEND="${DEPEND}
sys-devel/flex
>=sys-devel/m4-1.4.3
>=sys-devel/libtool-1.5.18"
# Allow users to install production version if they want to
case "${PHP_INI_VERSION}" in
production|development)
;;
*)
PHP_INI_VERSION="development"
;;
esac
PHP_INI_UPSTREAM="php.ini-${PHP_INI_VERSION}"
PHP_INI_FILE="php.ini"
want_apache
pkg_setup() {
depend.apache_pkg_setup
}
php_install_ini() {
local phpsapi="${1}"
# work out where we are installing the ini file
php_set_ini_dir "${phpsapi}"
local phpinisrc="${PHP_INI_UPSTREAM}-${phpsapi}"
cp "${PHP_INI_UPSTREAM}" "${phpinisrc}"
# default to /tmp for save_path, bug #282768
sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}"
# Set the extension dir
sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" -i "${phpinisrc}"
# 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}"
dodir "${PHP_INI_DIR#${EPREFIX}}"
insinto "${PHP_INI_DIR#${EPREFIX}}"
newins "${phpinisrc}" "${PHP_INI_FILE}"
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_if_iuse 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
[[ -z ${PHP_FPM_CONF_VER} ]] && PHP_FPM_CONF_VER=0
einfo "Installing FPM CGI config file php-fpm.conf"
insinto "${PHP_INI_DIR#${EPREFIX}}"
newins "${FILESDIR}/php-fpm-r${PHP_FPM_CONF_VER}.conf" php-fpm.conf
# Remove bogus /etc/php-fpm.conf.default (bug 359906)
[[ -f "${ED}/etc/php-fpm.conf.default" ]] && rm "${ED}/etc/php-fpm.conf.default"
fi
# Install PHP ini files into /usr/share/php
dodoc php.ini-development
dodoc php.ini-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() {
# USE=sharedmem (session/mod_mm to be exact) tries to mmap() this path
# ([empty session.save_path]/session_mm_[sapi][gid].sem)
# there is no easy way to circumvent that, all php calls during
# install use -n, so no php.ini file will be used.
# As such, this is the easiest way to get around
addpredict /session_mm_cli250.sem
addpredict /session_mm_cli0.sem
# 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
# 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
#Add user patches #357637
epatch_user
#force rebuilding aclocal.m4
rm aclocal.m4
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
addpredict /var/lib/net-snmp/mib_indexes
PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}"
# This is a global variable and should be in caps. It isn't because the
# phpconfutils eclass relies on exactly this name...
# for --with-libdir see bug #327025
my_conf="
--prefix="${PHP_DESTDIR}"
--mandir="${PHP_DESTDIR}"/man
--infodir="${PHP_DESTDIR}"/info
--libdir="${PHP_DESTDIR}"/lib
--with-libdir=$(get_libdir)
--without-pear
$(use_enable threads maintainer-zts)"
# extension USE flag shared
my_conf+="
$(use_enable bcmath bcmath )
$(use_with bzip2 bz2 "${EPREFIX}"/usr)
$(use_enable calendar calendar )
$(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 || 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 systemd fpm-systemd)
$(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
my_conf="${my_conf} --enable-dba${shared}"
fi
# DBA drivers support
my_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
my_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
my_conf+="
$(use_with gd gd)"
# IMAP support
if use imap ; then
my_conf+="
$(use_with imap imap ${EPREFIX}/usr)
$(use_with ssl imap-ssl ${EPREFIX}/usr)"
fi
# Interbase/firebird support
if use firebird ; then
my_conf+="
$(use_with firebird interbase ${EPREFIX}/usr)"
fi
# LDAP support
if use ldap ; then
my_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"
my_conf+=" $(use_with mysql mysql $mysqllib)"
my_conf+=" $(use_with mysqli mysqli $mysqlilib)"
local mysqlsock=" $(use_with mysql mysql-sock ${EPREFIX}/var/run/mysqld/mysqld.sock)"
if use mysql ; then
my_conf+="${mysqlsock}"
elif use mysqli ; then
my_conf+="${mysqlsock}"
fi
# ODBC support
if use odbc ; then
my_conf+="
$(use_with odbc unixODBC ${EPREFIX}/usr)"
fi
if use iodbc ; then
my_conf+="
$(use_with iodbc iodbc ${EPREFIX}/usr)"
fi
# Oracle support
if use oci8-instant-client ; then
my_conf+="
$(use_with oci8-instant-client oci8)"
fi
# PDO support
if use pdo ; then
my_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 odbc pdo-odbc unixODBC,${EPREFIX}/usr)"
if use oci8-instant-client ; then
my_conf+="
$(use_with oci8-instant-client pdo-oci)"
fi
fi
# readline/libedit support
my_conf+="
$(use_with readline readline ${EPREFIX}/usr)
$(use_with libedit libedit ${EPREFIX}/usr)"
# Session support
if use session ; then
my_conf+="
$(use_with sharedmem mm ${EPREFIX}/usr)"
else
my_conf+="
$(use_enable session session )"
fi
# Use pic for shared modules such as apache2's mod_php
my_conf="${my_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
my_conf="${my_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"
# Support user-passed configuration parameters
my_conf="${my_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"
for one_sapi in $SAPIS ; do
use "${one_sapi}" || continue
php_set_ini_dir "${one_sapi}"
cp -r "${S}" "${WORKDIR}/sapis-build/${one_sapi}"
cd "${WORKDIR}/sapis-build/${one_sapi}"
sapi_conf="${my_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="${sapi_conf} --enable-${sapi}"
else
sapi_conf="${sapi_conf} --disable-${sapi}"
fi
;;
apache2)
if [[ "${one_sapi}" == "${sapi}" ]] ; then
sapi_conf="${sapi_conf} --with-apxs2=${EPREFIX}/usr/sbin/apxs"
else
sapi_conf="${sapi_conf} --without-apxs2"
fi
;;
esac
done
econf ${sapi_conf}
done
}
src_compile() {
# snmp seems to run during src_compile, too (bug #324739)
addpredict /usr/share/snmp/mibs/.index
addpredict /var/lib/net-snmp/mib_indexes
for sapi in ${SAPIS} ; do
if use "${sapi}"; then
cd "${WORKDIR}/sapis-build/$sapi" || "Failed to change dir to ${WORKDIR}/sapis-build/$1"
emake || die "emake failed"
fi
done
}
src_install() {
# see bug #324739 for what happens when we don't have that
addpredict /usr/share/snmp/mibs/.index
# 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"
emake INSTALL_ROOT="${D}" \
install-build install-headers install-programs \
|| die "emake install failed"
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}"
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}" || die "Unable to install ${sapi} sapi"
else
dobin "${source}" || die "Unable to install ${sapi} sapi"
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_if_iuse opcache ; then
dolib.so "modules/opcache$(get_libname)" || die "Unable to install opcache module"
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}"
sed -e "s|php5|php${SLOT}|g" -i \
"${ED}/etc/env.d/20php${SLOT}"
# 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"
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
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
APACHE2_MOD_DEFINE="PHP"
APACHE2_MOD_CONF="70_mod_php" # provided by app-eselect/eselect-php
apache-module_pkg_postinst
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}
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
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
if ! use readline && use cli ; then
ewarn "Note that in order to use php interactivly, you need to enable"
ewarn "the readline USE flag or php -a will hang"
fi
elog
elog "This ebuild installed a version of php.ini based on php.ini-${PHP_INI_VERSION} version."
elog "You can chose which version of php.ini to install by default by setting PHP_INI_VERSION to either"
elog "'production' or 'development' in ${EPREFIX}/etc/make.conf"
elog "Both versions of php.ini can be found in ${EPREFIX}/usr/share/doc/${PF}"
elog
elog "For more details on how minor version slotting works (PHP_TARGETS) please read the upgrade guide:"
elog "https://www.gentoo.org/proj/en/php/php-upgrading.xml"
elog
}
pkg_prerm() {
eselect php cleanup
}

@ -1,791 +0,0 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
inherit eutils autotools flag-o-matic versionator depend.apache apache-module db-use libtool systemd
KEYWORDS="alpha amd64 arm hppa ~ia64 ~mips ~ppc ppc64 ~s390 ~sh ~sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
function php_get_uri ()
{
case "${1}" in
"php-pre")
echo "http://downloads.php.net/dsp/${2}"
;;
"php")
echo "http://www.php.net/distributions/${2}"
;;
"olemarkus")
echo "https://dev.gentoo.org/~olemarkus/php/${2}"
;;
"gentoo")
echo "mirror://gentoo/${2}"
;;
*)
die "unhandled case in php_get_uri"
;;
esac
}
PHP_MV="$(get_major_version)"
SLOT="$(get_version_component_range 1-2)"
# alias, so we can handle different types of releases (finals, rcs, alphas,
# betas, ...) w/o changing the whole ebuild
PHP_PV="${PV/_rc/RC}"
PHP_PV="${PHP_PV/_alpha/alpha}"
PHP_PV="${PHP_PV/_beta/beta}"
PHP_RELEASE="php"
[[ ${PV} == ${PV/_alpha/} ]] || PHP_RELEASE="php-pre"
[[ ${PV} == ${PV/_beta/} ]] || PHP_RELEASE="php-pre"
[[ ${PV} == ${PV/_rc/} ]] || PHP_RELEASE="php-pre"
PHP_P="${PN}-${PHP_PV}"
PHP_SRC_URI="$(php_get_uri "${PHP_RELEASE}" "${PHP_P}.tar.xz")"
PHP_FPM_CONF_VER="1"
SRC_URI="${PHP_SRC_URI}"
DESCRIPTION="The PHP language runtime engine"
HOMEPAGE="http://php.net/"
LICENSE="PHP-3"
S="${WORKDIR}/${PHP_P}"
# 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} bcmath berkdb bzip2 calendar cdb cjk
crypt +ctype curl debug
enchant exif frontbase +fileinfo +filter firebird
flatfile ftp gd gdbm gmp +hash +iconv imap inifile
intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit 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"
DEPEND="
>=app-eselect/eselect-php-0.7.1-r3[apache2?,fpm?]
>=dev-libs/libpcre-8.32[unicode]
apache2? ( || ( >=www-servers/apache-2.4[apache2_modules_unixd,threads=]
<www-servers/apache-2.4[threads=] ) )
berkdb? ( =sys-libs/db-4* )
bzip2? ( app-arch/bzip2 )
cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
cjk? ( !gd? (
virtual/jpeg:0
media-libs/libpng:0=
sys-libs/zlib
) )
crypt? ( >=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
) )
firebird? ( dev-db/firebird )
gd? ( virtual/jpeg:0 media-libs/libpng:0= sys-libs/zlib )
gdbm? ( >=sys-libs/gdbm-1.8.0 )
gmp? ( >=dev-libs/gmp-4.1.2 )
iconv? ( virtual/libiconv )
imap? ( virtual/imap-c-client[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? ( virtual/mysql )
mysqli? ( >=virtual/mysql-4.1 )
)
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 )
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? ( >=dev-libs/openssl-0.9.7 )
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 )
)
unicode? ( dev-libs/oniguruma )
vpx? ( media-libs/libvpx )
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
)
xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 )
zip? ( sys-libs/zlib )
zlib? ( sys-libs/zlib )
virtual/mta
"
php="=${CATEGORY}/${PF}"
REQUIRED_USE="
truetype? ( gd )
vpx? ( gd )
cjk? ( gd )
exif? ( gd )
xpm? ( gd )
gd? ( zlib )
simplexml? ( xml )
soap? ( xml )
wddx? ( xml )
xmlrpc? ( || ( xml iconv ) )
xmlreader? ( xml )
xslt? ( xml )
ldap-sasl? ( ldap )
mhash? ( hash )
phar? ( hash )
libmysqlclient? ( || (
mysql
mysqli
pdo
) )
qdbm? ( !gdbm )
readline? ( !libedit )
recode? ( !imap !mysql !mysqli )
sharedmem? ( !threads )
!cli? ( !cgi? ( !fpm? ( !apache2? ( !embed? ( cli ) ) ) ) )"
RDEPEND="${DEPEND}"
RDEPEND="${RDEPEND}
fpm? (
selinux? ( sec-policy/selinux-phpfpm )
systemd? ( sys-apps/systemd ) )"
DEPEND="${DEPEND}
sys-devel/flex
>=sys-devel/m4-1.4.3
>=sys-devel/libtool-1.5.18"
# Allow users to install production version if they want to
case "${PHP_INI_VERSION}" in
production|development)
;;
*)
PHP_INI_VERSION="development"
;;
esac
PHP_INI_UPSTREAM="php.ini-${PHP_INI_VERSION}"
PHP_INI_FILE="php.ini"
want_apache
pkg_setup() {
depend.apache_pkg_setup
}
php_install_ini() {
local phpsapi="${1}"
# work out where we are installing the ini file
php_set_ini_dir "${phpsapi}"
local phpinisrc="${PHP_INI_UPSTREAM}-${phpsapi}"
cp "${PHP_INI_UPSTREAM}" "${phpinisrc}"
# default to /tmp for save_path, bug #282768
sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}"
# Set the extension dir
sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" -i "${phpinisrc}"
# 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}"
dodir "${PHP_INI_DIR#${EPREFIX}}"
insinto "${PHP_INI_DIR#${EPREFIX}}"
newins "${phpinisrc}" "${PHP_INI_FILE}"
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_if_iuse 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
[[ -z ${PHP_FPM_CONF_VER} ]] && PHP_FPM_CONF_VER=0
einfo "Installing FPM CGI config file php-fpm.conf"
insinto "${PHP_INI_DIR#${EPREFIX}}"
newins "${FILESDIR}/php-fpm-r${PHP_FPM_CONF_VER}.conf" php-fpm.conf
# Remove bogus /etc/php-fpm.conf.default (bug 359906)
[[ -f "${ED}/etc/php-fpm.conf.default" ]] && rm "${ED}/etc/php-fpm.conf.default"
fi
# Install PHP ini files into /usr/share/php
dodoc php.ini-development
dodoc php.ini-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() {
# USE=sharedmem (session/mod_mm to be exact) tries to mmap() this path
# ([empty session.save_path]/session_mm_[sapi][gid].sem)
# there is no easy way to circumvent that, all php calls during
# install use -n, so no php.ini file will be used.
# As such, this is the easiest way to get around
addpredict /session_mm_cli250.sem
addpredict /session_mm_cli0.sem
# 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
# 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
#Add user patches #357637
epatch_user
#force rebuilding aclocal.m4
rm aclocal.m4
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
addpredict /var/lib/net-snmp/mib_indexes
PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}"
# This is a global variable and should be in caps. It isn't because the
# phpconfutils eclass relies on exactly this name...
# for --with-libdir see bug #327025
my_conf="
--prefix="${PHP_DESTDIR}"
--mandir="${PHP_DESTDIR}"/man
--infodir="${PHP_DESTDIR}"/info
--libdir="${PHP_DESTDIR}"/lib
--with-libdir=$(get_libdir)
--without-pear
$(use_enable threads maintainer-zts)"
# extension USE flag shared
my_conf+="
$(use_enable bcmath bcmath )
$(use_with bzip2 bz2 "${EPREFIX}"/usr)
$(use_enable calendar calendar )
$(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 || 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 systemd fpm-systemd)
$(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
my_conf="${my_conf} --enable-dba${shared}"
fi
# DBA drivers support
my_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
my_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
my_conf+="
$(use_with gd gd)"
# IMAP support
if use imap ; then
my_conf+="
$(use_with imap imap "${EPREFIX}"/usr)
$(use_with ssl imap-ssl "${EPREFIX}"/usr)"
fi
# Interbase/firebird support
if use firebird ; then
my_conf+="
$(use_with firebird interbase "${EPREFIX}"/usr)"
fi
# LDAP support
if use ldap ; then
my_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"
my_conf+=" $(use_with mysql mysql $mysqllib)"
my_conf+=" $(use_with mysqli mysqli $mysqlilib)"
local mysqlsock=" $(use_with mysql mysql-sock ${EPREFIX}/var/run/mysqld/mysqld.sock)"
if use mysql ; then
my_conf+="${mysqlsock}"
elif use mysqli ; then
my_conf+="${mysqlsock}"
fi
# ODBC support
if use odbc ; then
my_conf+="
$(use_with odbc unixODBC "${EPREFIX}"/usr)"
fi
if use iodbc ; then
my_conf+="
$(use_with iodbc iodbc "${EPREFIX}"/usr)"
fi
# Oracle support
if use oci8-instant-client ; then
my_conf+="
$(use_with oci8-instant-client oci8)"
fi
# PDO support
if use pdo ; then
my_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 odbc pdo-odbc "unixODBC,${EPREFIX}/usr")"
if use oci8-instant-client ; then
my_conf+="
$(use_with oci8-instant-client pdo-oci)"
fi
fi
# readline/libedit support
my_conf+="
$(use_with readline readline "${EPREFIX}/usr")
$(use_with libedit libedit "${EPREFIX}/usr")"
# Session support
if use session ; then
my_conf+="
$(use_with sharedmem mm "${EPREFIX}/usr")"
else
my_conf+="
$(use_enable session session )"
fi
# Use pic for shared modules such as apache2's mod_php
my_conf="${my_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
my_conf="${my_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"
# Support user-passed configuration parameters
my_conf="${my_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"
for one_sapi in $SAPIS ; do
use "${one_sapi}" || continue
php_set_ini_dir "${one_sapi}"
cp -r "${S}" "${WORKDIR}/sapis-build/${one_sapi}"
cd "${WORKDIR}/sapis-build/${one_sapi}"
sapi_conf="${my_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="${sapi_conf} --enable-${sapi}"
else
sapi_conf="${sapi_conf} --disable-${sapi}"
fi
;;
apache2)
if [[ "${one_sapi}" == "${sapi}" ]] ; then
sapi_conf="${sapi_conf} --with-apxs2=${EPREFIX}/usr/sbin/apxs"
else
sapi_conf="${sapi_conf} --without-apxs2"
fi
;;
esac
done
econf ${sapi_conf}
done
}
src_compile() {
# snmp seems to run during src_compile, too (bug #324739)
addpredict /usr/share/snmp/mibs/.index
addpredict /var/lib/net-snmp/mib_indexes
for sapi in ${SAPIS} ; do
if use "${sapi}"; then
cd "${WORKDIR}/sapis-build/$sapi" || "Failed to change dir to ${WORKDIR}/sapis-build/$1"
emake || die "emake failed"
fi
done
}
src_install() {
# see bug #324739 for what happens when we don't have that
addpredict /usr/share/snmp/mibs/.index
# 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"
emake INSTALL_ROOT="${D}" \
install-build install-headers install-programs \
|| die "emake install failed"
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}"
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}" || die "Unable to install ${sapi} sapi"
else
dobin "${source}" || die "Unable to install ${sapi} sapi"
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_if_iuse opcache ; then
dolib.so "modules/opcache$(get_libname)" || die "Unable to install opcache module"
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}"
sed -e "s|php5|php${SLOT}|g" -i \
"${ED}/etc/env.d/20php${SLOT}"
# 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"
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
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
APACHE2_MOD_DEFINE="PHP"
APACHE2_MOD_CONF="70_mod_php" # provided by app-eselect/eselect-php
apache-module_pkg_postinst
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}
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
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
if ! use readline && use cli ; then
ewarn "Note that in order to use php interactivly, you need to enable"
ewarn "the readline USE flag or php -a will hang"
fi
elog
elog "This ebuild installed a version of php.ini based on php.ini-${PHP_INI_VERSION} version."
elog "You can chose which version of php.ini to install by default by setting PHP_INI_VERSION to either"
elog "'production' or 'development' in ${EPREFIX}/etc/make.conf"
elog "Both versions of php.ini can be found in ${EPREFIX}/usr/share/doc/${PF}"
elog
elog "For more details on how minor version slotting works (PHP_TARGETS) please read the upgrade guide:"
elog "https://www.gentoo.org/proj/en/php/php-upgrading.xml"
elog
ewarn
ewarn "PHP 5.5 is End of Life"
ewarn "This version of PHP 5.5 is likely to be the last and is not due to receive any further security updates."
ewarn "Please migrate to 5.6 or later as soon as possible."
ewarn "PHP 5.5 will be masked for removal on the next release."
ewarn
}
pkg_prerm() {
eselect php cleanup
}

@ -1,2 +1 @@
DIST scala-2.11.7.tgz 28460530 SHA256 ffe4196f13ee98a66cf54baffb0940d29432b2bd820bd0781a8316eec22926d0 SHA512 1603fc6a0a6b3656146eee5650e0a57402d8ce65382220055a4934acb8fa15a81721b3b732ca856566e99c564e8b0a9448c8887668a814765798bea57933e6a3 WHIRLPOOL 808db0b2eddf356ad259b21681a6465b666875da3ebc6f49be3f4c9da7358b36dec0b25b6c243725e92f27311a109f559ffc6f2c31dd19f115d665cff95ed8b5
DIST scala-2.11.8.tgz 28678231 SHA256 87fc86a19d9725edb5fd9866c5ee9424cdb2cd86b767f1bb7d47313e8e391ace SHA512 c00a0eaa4317c3ffbdbbd9c817f06c5262f0549f22bd7f1886cc22643e34e8909648bbfb58f3a63c453baf045381a52128ff0b18b7a39274ef03aad7daea9fdf WHIRLPOOL dfdd640218b0fa39acb4ba3bb0b43fc82b24b6f5442ab4bca1140b90022dccfd222d9d05c8b790184735e6d254e5d7a06b06f066b7d6ec74166c010298723069

@ -1,77 +0,0 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
JAVA_PKG_IUSE="doc"
inherit java-pkg-2
DESCRIPTION="The Scala Programming Language"
HOMEPAGE="http://scala.epfl.ch/"
SRC_URI="http://downloads.typesafe.com/scala/${PV}/scala-${PV}.tgz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE="doc"
DEPEND=""
RDEPEND=">=virtual/jre-1.6
!dev-lang/scala"
S=${WORKDIR}/scala-${PV}
java_prepare() {
ebegin 'Cleaning .bat files'
rm -f bin/*.bat || die
eend $?
ebegin 'Patching SCALA_HOME variable in bin/ directory'
for f in bin/*; do
sed -i -e 's#\(SCALA_HOME\)=.*#\1=/usr/share/scala-bin#' $f || die
done
eend $?
}
src_install() {
ebegin 'Installing bin scripts'
dobin bin/*
eend $?
ebegin 'Installing jar files'
cd lib/ || die
# Unversion those libs
java-pkg_newjar scala-continuations-library_*.jar scala-continuations-library.jar
java-pkg_newjar akka-actor_*.jar akka-actor.jar
java-pkg_newjar config-*.jar config.jar
java-pkg_newjar scala-actors-2.11.0.jar scala-actors.jar
java-pkg_newjar scala-actors-migration_*.jar scala-actors-migration.jar
java-pkg_newjar scala-swing_*.jar scala-swing.jar
java-pkg_newjar scala-parser-combinators_*.jar scala-parser-combinators.jar
java-pkg_newjar scala-xml_*.jar scala-xml.jar
java-pkg_newjar jline-*.jar jline.jar
java-pkg_newjar scala-continuations-plugin_*.jar scala-continuations-plugin.jar
java-pkg_newjar scalap-*.jar scalap.jar
# Install these the usual way
java-pkg_dojar scala-compiler.jar
java-pkg_dojar scala-library.jar
java-pkg_dojar scala-reflect.jar
eend $?
cd ../ || die
ebegin 'Installing man pages'
doman man/man1/*.1
eend $?
if use doc; then
ebegin 'Installing documentation'
java-pkg_dohtml -r doc/tools
eend $?
fi
}

@ -1,26 +1,29 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=6
JAVA_PKG_IUSE="doc"
inherit java-pkg-2
MY_PN="${PN%-*}"
MY_P="${MY_PN}-${PV}"
DESCRIPTION="The Scala Programming Language"
HOMEPAGE="http://scala.epfl.ch/"
SRC_URI="http://downloads.typesafe.com/scala/${PV}/scala-${PV}.tgz"
SRC_URI="http://downloads.lightbend.com/${MY_PN}/${PV}/${MY_P}.tgz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~x86"
KEYWORDS="amd64 x86"
IUSE="doc"
RDEPEND=">=virtual/jre-1.6
RDEPEND="
>=virtual/jre-1.6
!dev-lang/scala"
S="${WORKDIR}/scala-${PV}"
S="${WORKDIR}/${MY_P}"
src_prepare() {
default
@ -29,6 +32,7 @@ src_prepare() {
eend $?
ebegin 'Patching SCALA_HOME variable in bin/ directory'
local f
for f in bin/*; do
sed -i -e 's#\(SCALA_HOME\)=.*#\1=/usr/share/scala-bin#' $f || die
done

@ -10,7 +10,7 @@ SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
LICENSE="GPL-3+ BSD BSD-2"
SLOT="0"
KEYWORDS="alpha ~amd64 arm ~arm64 hppa ~ia64 ~mips ~ppc ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~x64-solaris ~x86-solaris"
KEYWORDS="alpha amd64 arm ~arm64 hppa ~ia64 ~mips ~ppc ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~x64-solaris ~x86-solaris"
IUSE="ccache doc pcre"
RESTRICT="test"

@ -13,7 +13,7 @@ DESCRIPTION="A C++ crypto library"
HOMEPAGE="http://botan.randombit.net/"
SRC_URI="http://botan.randombit.net/releases/${MY_P}.tgz"
KEYWORDS="amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86 ~ppc-macos"
KEYWORDS="amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 sparc x86 ~ppc-macos"
SLOT="0"
LICENSE="BSD"
IUSE="bindist doc python bzip2 gmp ssl static-libs threads zlib"

@ -11,7 +11,7 @@ SRC_URI="mirror://sourceforge/expat/${P}.tar.bz2"
LICENSE="MIT"
SLOT="0"
KEYWORDS="alpha amd64 arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
KEYWORDS="alpha amd64 arm ~arm64 ~hppa ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
IUSE="elibc_FreeBSD examples static-libs unicode"
RDEPEND="abi_x86_32? ( !<=app-emulation/emul-linux-x86-baselibs-20130224-r6
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)] )"

@ -2,6 +2,8 @@ DIST gmp-4.3.2.tar.bz2 1897483 SHA256 936162c0312886c21581002b79932829aa048cfaf9
DIST gmp-6.0.0a.tar.xz 1904112 SHA256 9156d32edac6955bc53b0218f5f3763facb890b73a835d5e1b901dcf8eb8b764 SHA512 50368f4368b244b442438ce1768cf0f1166e490d1bafb8feda1ffc90fea3807e7328f30f3faa861799e4f5ff6e3113049ca3231b2f48571e4583fc3d60441816 WHIRLPOOL 81639a9d433ce9ccb26527af309c7c41437bb3463e5986cce3b35f81b527068a2304ec3287e660454f850dedab61463a077f49d4ea2b7ee87eec94b15730c394
DIST gmp-6.1.0.tar.xz 1950316 SHA256 68dadacce515b0f8a54f510edf07c1b636492bcdb8e8d54c56eb216225d16989 SHA512 3647f07914e6c01b28d94f2d9783e50b0ca9f742a694f56d5759e79a057143ded578b71707ff909c6b0f5710862974606461608e73b33af3114b5338670d8630 WHIRLPOOL 54de621aa9d7c6896fe454e399b8716743d7ac41e312180f8211c961ec8eb358423e75992aa22ee6809ae57cb143783d271e5c0fca61714a556a12ee55882a05
DIST gmp-6.1.1.tar.xz 1943164 SHA256 d36e9c05df488ad630fff17edb50051d6432357f9ce04e34a09b3d818825e831 SHA512 6ead5fdf15891e0c47b094351497a052cc691973f09c60a8322546418eb615bddb180a93fd7846b88b096b5644cb9d375eab2a4a07af64399f5159eccf3edee2 WHIRLPOOL 0a899c6d414e5d6e0b4d2e8fa45baa74adbcaee8960bbb6a8beb8a2e76baa85f07f8fc198e941ed386cffdf73bdf7ef44be7312c39b786a6584410e86bc887b5
DIST gmp-6.1.2.tar.xz 1946336 SHA256 87b565e89a9a684fe4ebeeddb8399dce2599f9c9049854ca8c0dfbdea0e21912 SHA512 9f098281c0593b76ee174b722936952671fab1dae353ce3ed436a31fe2bc9d542eca752353f6645b7077c1f395ab4fdd355c58e08e2a801368f1375690eee2c6 WHIRLPOOL 1f4be0fcb5868cc5e3f5e699e51da0d52cdb131906468f5401a40ae145dad2d48935b87330b786fff2a2f593d6f39542c4d5fb7bef5922817ae61ff57870951d
DIST gmp-man-6.0.0a.pdf 1187496 SHA256 b38ed1d760b20c01b734b65380ab667373fa48d8203f762a434cd3f326c67a38 SHA512 528972502d65d23b58c47a594a628e648f11cc027bd0894a39b8f892bb421ceabb7f35640a9eede21cea791f5f597ed4661a1f73444c56a6fb31fa6e362d96c2 WHIRLPOOL e6c4eb3a9adc82496a1872223ceb153e05c3aabd2323aeb38064739a5200eb8fc24fa3bb96f5fb1e632cc90a2576bd3966bae3c7a7a0c750ca56faeb30837eea
DIST gmp-man-6.1.0.pdf 825716 SHA256 c3fea59f39497839b48010e612d0ef898c3efea9c0601a3b4d1597628c8ea40e SHA512 cec172766c6f5dce6b7306edbd542a63788df590391b8b2e6fb4e9d48947b2fbb47dd23acaf74eab6d35cb627bcb804e7ebb1d63aa5f043e4daa4558b698a5a0 WHIRLPOOL afe825c4dbbde11c2c013d6aa3e168d6e59743f647269487df2679d944b5aa748319e455211f2c20137f56e7177ea0543182a4f5bef8274b205b0a3c03254c81
DIST gmp-man-6.1.1.pdf 825669 SHA256 f0c87df68a1d6f01c434253986541107a65f350b5388f2b1a1b405f7e06921f2 SHA512 18e6aca87f5ff8848f82456d86233f127328bfbe309e67902c8dd6f25228db344bd3e6cc3a55e48f2c3f19d0a57358bc4ada7cd623799b273030a5119fb1257b WHIRLPOOL ff3ce6f16ae7a1c7954c432d28a88f6abebae769be9a63ca85f481fb85dd3e0e5d691cb4d9b9aec1ad7e2387167eef8413277698dc2d7cbd3b941759979ef6d9
DIST gmp-man-6.1.2.pdf 825720 SHA256 f78f18ac0b0e56920920af0209415a4b371b7b101ceaa03739a31bfe3c2888f8 SHA512 85de10b2c03f7381881c3e95aa7fc53d8e018115028496ffbb5a79ab4967106c69ed7e97a5e434e6bb39752498aade8c2caa7cf77a8942b7ffd9150368a0d9c3 WHIRLPOOL d952544d178c7d970ec3c1b080191603326a2c77523c27f03f80bc03b9a8910a0093c3f6990640aa596d45adb8fa34a7ef3c9c35abf60945c43c533499052ce0

@ -0,0 +1,111 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI="5"
inherit flag-o-matic eutils libtool multilib-minimal
MY_PV=${PV/_p*}
MY_PV=${MY_PV/_/-}
MY_P=${PN}-${MY_PV}
PLEVEL=${PV/*p}
DESCRIPTION="Library for arithmetic on arbitrary precision integers, rational numbers, and floating-point numbers"
HOMEPAGE="http://gmplib.org/"
SRC_URI="ftp://ftp.gmplib.org/pub/${MY_P}/${MY_P}.tar.xz
mirror://gnu/${PN}/${MY_P}.tar.xz
doc? ( http://gmplib.org/${PN}-man-${MY_PV}.pdf )"
LICENSE="|| ( LGPL-3+ GPL-2+ )"
# The subslot reflects the C & C++ SONAMEs.
SLOT="0/10.4"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
IUSE="+asm doc cxx pgo static-libs"
DEPEND="sys-devel/m4
app-arch/xz-utils"
RDEPEND=""
S=${WORKDIR}/${MY_P%a}
DOCS=( AUTHORS ChangeLog NEWS README doc/configuration doc/isa_abi_headache )
HTML_DOCS=( doc )
MULTILIB_WRAPPED_HEADERS=( /usr/include/gmp.h )
src_prepare() {
[[ -d ${FILESDIR}/${PV} ]] && EPATCH_SUFFIX="diff" EPATCH_FORCE="yes" epatch "${FILESDIR}"/${PV}
# note: we cannot run autotools here as gcc depends on this package
elibtoolize
epatch "${FILESDIR}"/${PN}-6.1.0-noexecstack-detect.patch
# GMP uses the "ABI" env var during configure as does Gentoo (econf).
# So, to avoid patching the source constantly, wrap things up.
mv configure configure.wrapped || die
cat <<-\EOF > configure
#!/bin/sh
exec env ABI="${GMPABI}" "$0.wrapped" "$@"
EOF
# Patches to original configure might have lost the +x bit.
chmod a+rx configure{,.wrapped}
}
multilib_src_configure() {
# Because of our 32-bit userland, 1.0 is the only HPPA ABI that works
# http://gmplib.org/manual/ABI-and-ISA.html#ABI-and-ISA (bug #344613)
if [[ ${CHOST} == hppa2.0-* ]] ; then
GMPABI="1.0"
fi
# ABI mappings (needs all architectures supported)
case ${ABI} in
32|x86) GMPABI=32;;
64|amd64|n64) GMPABI=64;;
[onx]32) GMPABI=${ABI};;
esac
export GMPABI
tc-export CC
ECONF_SOURCE="${S}" econf \
--localstatedir="${EPREFIX}"/var/state/gmp \
--enable-shared \
$(use_enable asm assembly) \
$(use_enable cxx) \
$(use_enable static-libs static)
}
multilib_src_compile() {
emake
if use pgo ; then
emake -j1 -C tune tuneup
ebegin "Trying to generate tuned data"
./tune/tuneup | tee gmp.mparam.h.new
if eend $(( 0 + ${PIPESTATUS[*]/#/+} )) ; then
mv gmp.mparam.h.new gmp-mparam.h || die
emake clean
emake
fi
fi
}
multilib_src_test() {
emake check
}
multilib_src_install() {
emake DESTDIR="${D}" install
# should be a standalone lib
rm -f "${D}"/usr/$(get_libdir)/libgmp.la
# this requires libgmp
local la="${D}/usr/$(get_libdir)/libgmpxx.la"
use static-libs \
&& sed -i 's:/[^ ]*/libgmp.la:-lgmp:' "${la}" \
|| rm -f "${la}"
}
multilib_src_install_all() {
einstalldocs
use doc && cp "${DISTDIR}"/gmp-man-${MY_PV}.pdf "${D}"/usr/share/doc/${PF}/
}

@ -1,3 +1,4 @@
DIST icu4c-55_1-src.tgz 25600847 SHA256 e16b22cbefdd354bec114541f7849a12f8fc2015320ca5282ee4fd787571457b SHA512 21a3eb2c3678cd27b659eed073f8f1bd99c9751291d077820e9a370fd90b7d9b3bf414cc03dec4acb7fa61087e02d04f9f40e91a32c5180c718e2102fbd0cd35 WHIRLPOOL 8c5221c82ee2c8a02beafd0fdf91e0038e49912cc8b05fb7437dd4d0a0204b97ea62c45c2dd9dde0f658620b772d706e795821865c567d2e1eb91f8b83a12c4a
DIST icu4c-57_1-src.tgz 22360664 SHA256 ff8c67cb65949b1e7808f2359f2b80f722697048e90e7cfc382ec1fe229e9581 SHA512 a3c701e9c81622db545bcf93f315c7b13159750f43f009d0aec59ceae3a8e1ccb751826d4b8a7387aca47f38bff2a85816b1a123b07d2bf731558c7b66e47b8a WHIRLPOOL f9107e3019a0d9b4c40b83e6e7ea5277ab7d4317e349d6c5d6731f0b2355811b37a4c12aa8408a3bc0195ffeebdc952b7df709d2fb191ae1044fffadbafc897c
DIST icu4c-58_1-src.tgz 23366443 SHA256 0eb46ba3746a9c2092c8ad347a29b1a1b4941144772d13a88667a7b11ea30309 SHA512 59b2a76834192a35125fda326587e613ef4486152cf0278c6f22568d4ae02c4b2d897efcea2654ef2b11bd1c3154aecd38cb68a70f69430736f343689f94c155 WHIRLPOOL faf2624a83f0d6f874166b328522dc9c89088db2690433ab05e96371722b635b81fd5210c7e87fe8e5df6681e881cf10204832925b448552affe8c2f6c851e37
DIST icu4c-58_2-src.tgz 23369902 SHA256 2b0a4410153a9b20de0e20c7d8b66049a72aef244b53683d0d7521371683da0c SHA512 5c21af748f48b392e6c0412bd0aee92162ea931820dcbfab4ec6e0299868504b303d88f7586cc95de55c777ac0dca3a29d6c8ca0892c646ebc864c8a5b5a162a WHIRLPOOL 25829f8ee870b703fd604ae5b9b584390a142f5011e2a5db18332453e2f1640d81270086f243318eeb93f187b04ea23dab14901ab81c8d924c8d47b1f77aee5a

@ -14,7 +14,7 @@ LICENSE="BSD"
SLOT="0/${PV}"
KEYWORDS="alpha amd64 arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~amd64-fbsd ~x86-fbsd"
KEYWORDS="alpha amd64 arm ~arm64 ~hppa ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd"
IUSE="debug doc examples static-libs"
DEPEND="

@ -0,0 +1,142 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=6
inherit eutils flag-o-matic toolchain-funcs autotools multilib-minimal
DESCRIPTION="International Components for Unicode"
HOMEPAGE="http://www.icu-project.org/"
SRC_URI="http://download.icu-project.org/files/icu4c/${PV/_/}/icu4c-${PV//./_}-src.tgz"
LICENSE="BSD"
SLOT="0/${PV}"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
IUSE="debug doc examples static-libs"
DEPEND="
virtual/pkgconfig
doc? (
app-doc/doxygen[dot]
)
"
S="${WORKDIR}/${PN}/source"
MULTILIB_CHOST_TOOLS=(
/usr/bin/icu-config
)
PATCHES=(
"${FILESDIR}/${PN}-58.1-remove-bashisms.patch"
"${FILESDIR}/${PN}-58.1-iterator.patch"
)
src_prepare() {
# apply patches
default
local variable
# Disable renaming as it is stupid thing to do
sed -i \
-e "s/#define U_DISABLE_RENAMING 0/#define U_DISABLE_RENAMING 1/" \
common/unicode/uconfig.h || die
# Fix linking of icudata
sed -i \
-e "s:LDFLAGSICUDT=-nodefaultlibs -nostdlib:LDFLAGSICUDT=:" \
config/mh-linux || die
# Append doxygen configuration to configure
sed -i \
-e 's:icudefs.mk:icudefs.mk Doxyfile:' \
configure.ac || die
eautoreconf
}
src_configure() {
# Use C++14
append-cxxflags -std=c++14
if tc-is-cross-compiler; then
mkdir "${WORKDIR}"/host || die
pushd "${WORKDIR}"/host >/dev/null || die
CFLAGS="" CXXFLAGS="" ASFLAGS="" LDFLAGS="" \
CC="$(tc-getBUILD_CC)" CXX="$(tc-getBUILD_CXX)" AR="$(tc-getBUILD_AR)" \
RANLIB="$(tc-getBUILD_RANLIB)" LD="$(tc-getBUILD_LD)" \
"${S}"/configure --disable-renaming --disable-debug \
--disable-samples --enable-static || die
emake
popd >/dev/null || die
fi
multilib-minimal_src_configure
}
multilib_src_configure() {
local myeconfargs=(
--disable-renaming
--disable-samples
--disable-layoutex
$(use_enable debug)
$(use_enable static-libs static)
)
multilib_is_native_abi && myeconfargs+=(
$(use_enable examples samples)
)
tc-is-cross-compiler && myeconfargs+=(
--with-cross-build="${WORKDIR}"/host
)
# icu tries to use clang by default
tc-export CC CXX
ECONF_SOURCE=${S} \
econf "${myeconfargs[@]}"
}
multilib_src_compile() {
default
if multilib_is_native_abi && use doc; then
doxygen -u Doxyfile || die
doxygen Doxyfile || die
fi
}
multilib_src_test() {
# INTLTEST_OPTS: intltest options
# -e: Exhaustive testing
# -l: Reporting of memory leaks
# -v: Increased verbosity
# IOTEST_OPTS: iotest options
# -e: Exhaustive testing
# -v: Increased verbosity
# CINTLTST_OPTS: cintltst options
# -e: Exhaustive testing
# -v: Increased verbosity
emake -j1 VERBOSE="1" check
}
multilib_src_install() {
default
if multilib_is_native_abi && use doc; then
docinto html
dodoc -r doc/html/*
fi
}
multilib_src_install_all() {
einstalldocs
docinto html
dodoc ../readme.html
}

@ -12,7 +12,7 @@ SRC_URI="http://dl.matroska.org/downloads/${PN}/${P}.tar.bz2"
LICENSE="LGPL-2.1"
SLOT="0/4" # subslot = soname major version
KEYWORDS="alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos"
KEYWORDS="alpha amd64 ~arm ~hppa ia64 ~ppc ~ppc64 sparc x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos"
IUSE="debug static-libs"
src_prepare() {

@ -18,7 +18,7 @@ SRC_URI="
"
LICENSE="LGPL-2.1 utils? ( GPL-2 )"
SLOT="3"
KEYWORDS="alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~amd64-linux ~ia64-linux ~x86-linux"
KEYWORDS="alpha amd64 ~arm ~arm64 ~hppa ia64 ~mips ~ppc ~ppc64 ~s390 ~sh sparc x86 ~amd64-linux ~ia64-linux ~x86-linux"
IUSE="static-libs python utils"
RDEPEND="

@ -14,7 +14,7 @@ SRC_URI="https://github.com/bitcoin/${MyPN}/archive/${COMMITHASH}.tar.gz -> ${My
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~x86 ~amd64-linux ~x86-linux"
KEYWORDS="amd64 ~arm ~arm64 ~mips ~ppc ~x86 ~amd64-linux ~x86-linux"
IUSE="asm doc ecdh endomorphism experimental gmp libressl +recovery schnorr test"
REQUIRED_USE="

@ -12,7 +12,7 @@ SRC_URI="http://download.libsodium.org/${PN}/releases/${P}.tar.gz"
LICENSE="ISC"
SLOT="0/18"
KEYWORDS="alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc x86 ~amd64-linux ~x86-linux"
KEYWORDS="alpha amd64 ~arm ~arm64 ~hppa ia64 ~mips ~ppc ~ppc64 sparc x86 ~amd64-linux ~x86-linux"
IUSE="+asm minimal static-libs +urandom cpu_flags_x86_sse4_1 cpu_flags_x86_aes"
PATCHES=( "${FILESDIR}"/${PN}-1.0.10-cpuflags.patch )

@ -14,7 +14,7 @@ SRC_URI="
LICENSE="LGPL-2.1"
SLOT="0"
KEYWORDS="alpha amd64 ~ppc ~ppc64 ~sparc x86"
KEYWORDS="alpha amd64 ~ppc ~ppc64 sparc x86"
IUSE="static-libs"
S="${WORKDIR}/${P}.orig"

@ -53,9 +53,11 @@ src_prepare() {
done
php-ext-source-r3_src_prepare
#Remove call by reference which is error
sed -i -e 's/\&\$/\$/' -e '/?>/d' "${S}/php/uuid.php5" || die
else
eapply_user
fi
#Remove call by reference which is error
sed -i -e 's/\&\$/\$/' -e '/?>/d' "${S}/php/uuid.php5" || die
}
src_configure() {

@ -1 +1,2 @@
DIST tut-2013.12.18.tar.gz 248575 SHA256 750c06fa4f681c9ca3b504f7916925e7620db4237675a4769814f8426c021fc8 SHA512 daf232df8d27a5600209ee44dc72f83b9574b68c14cf9566aa826091767e2fc3c00a9e03e83386f46d7f2030bb6d6af5db6af326424a4c0bc41063e227ab8004 WHIRLPOOL 8487b0c35b9ae5c1b181930f687ec5be822b501e3eacbe120b7b0b08c1ae3bf1e5dd102b86806ea4d3fb4479bd8619aab23b4025777e9adc3c445aae0cbdab97
DIST tut-2016.12.19.tar.gz 261753 SHA256 eff44452fa23bf58f4ff933ce47a10c597bd8a38640f88b1733d411640bca4c3 SHA512 296846dcaf9ed357232f69ce21927eea6a79173b66c5f16d41d7cbdb4dd5a18cc8b15217af56ef7a0a5fca0e55d148431bd872d4b815c239d21e5e4dfb4f312d WHIRLPOOL ab2e3e5a3534c48fd420cae2dc6955a729f8cb18e5cbc7080fb0e7576ce628fb129a15805b0d49a49082cf18212774cb896cdeed87c966cef7c7763bd9e37202

@ -0,0 +1,25 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=6
PYTHON_COMPAT=( python2_7 )
PYTHON_REQ_USE='threads(+)'
NO_WAF_LIBDIR=yes
inherit python-any-r1 waf-utils
DESCRIPTION="C++ Template Unit Test Framework"
HOMEPAGE="http://mrzechonek.github.io/tut-framework/"
SRC_URI="https://github.com/mrzechonek/tut-framework/archive/${PV//./-}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""
DEPEND=${PYTHON_DEPS}
RDEPEND=""
S="${WORKDIR}/tut-framework-${PV//./-}"

@ -13,7 +13,7 @@ LICENSE="MIT"
SRC_URI="https://codeload.github.com/jgarzik/${PN}/tar.gz/v${PV} -> ${P}.tgz"
SLOT="0/0"
KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~x86 ~amd64-linux ~x86-linux"
KEYWORDS="amd64 ~arm ~arm64 ~mips ~ppc ~x86 ~amd64-linux ~x86-linux"
IUSE=""

@ -12,7 +12,7 @@ SRC_URI="mirror://apache/xerces/c/3/sources/${P}.tar.gz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="alpha amd64 ~arm hppa ~ppc ppc64 ~sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux"
KEYWORDS="alpha amd64 ~arm hppa ~ppc ppc64 sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux"
IUSE="cpu_flags_x86_sse2 curl doc elibc_Darwin elibc_FreeBSD examples iconv icu static-libs test threads"

@ -3,3 +3,4 @@ DIST ecl-13.5.1.tgz 9401163 SHA256 f91c57ce065fe9748bc8104e191e4b2dcfe854d634315
DIST ecl-15.3.7.tgz 8755180 SHA256 2dc6ffbbf1e0a7b1323d49a991ba1f005127ca3e153651d91ba9e65bdaec948f SHA512 50a28ed551e507bee526ae44a12da2524c1feedf07cf8ca99650e37ecd7b99c4e2f2758c077979b174d303ffdcd9325637b708a29d14d8c3851c7e65d4ea026c WHIRLPOOL 57b0382b0e3dc7cd601b835a371c9ec6658911b1471cb5bfeee6144d22500e8ca55268f2a001c49d446e9be1a3771ca12348f2565f68ec83f1660c4295545a06
DIST ecl-16.0.0.tgz 8009304 SHA256 343ed4c3e4906562757a6039b85ce16d33dd5e8001d74004936795983e3af033 SHA512 15e4c604901dae1037e54ab1739d45a0f5f05decf6e72ba60d8b6b53e549021e93b811b809c4a72f423a20e9f9770969910d35edd5f184757293f98f89024c3a WHIRLPOOL 1af13ce81017bdad0ad6ee235beea9cc3e79d4b09b3863911a8092fd69a8d15f9c6eb75603c62d291450001d900cc1074c8882beb4c6da011b368b2a7f8fe7b5
DIST ecl-16.1.2.tgz 7449461 SHA256 2d482b1a0a4fbd5d881434517032279d808cb6405e22dd91ef6d733534464b99 SHA512 f204494907226a12b4ecabc39d555f27c1ce5cba515fccd187d9b7ee584d86278558d6a26b2bbec98bce582239f21ac00c2d854f594c6b1f21e1636793845926 WHIRLPOOL 1590695d82c274d06806bffdadb872fba9b870efd19e234fd265b07911cd0bdfe456ddc16e63f9fd707559750a0373739627d440f91567084ee9e0c72b640f40
DIST ecl-16.1.3.tgz 7459212 SHA256 76a585c616e8fa83a6b7209325a309da5bc0ca68e0658f396f49955638111254 SHA512 5d743f422f6bc24671abf4c739cde8273d08f056906a1ef8aed5145c703b6d52c7fa4b5e0be8c125f32240c20ce053007786bb3ae81cc34d47791f6fae0819c1 WHIRLPOOL 0e65b49e9a7fcf443aa3fb81766efae7f49ec7a8e30779a39279160da057b3a83d7649bb226045ee4a31e0658d85d7d1214799499f297399594d931091288b96

@ -0,0 +1,93 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
inherit eutils multilib
# test phase only works if ecls already installed #516876
RESTRICT="test"
MY_P=ecl-${PV}
DESCRIPTION="ECL is an embeddable Common Lisp implementation"
HOMEPAGE="https://common-lisp.net/project/ecl/"
SRC_URI="https://common-lisp.net/project/ecl/static/files/release/${MY_P}.tgz"
LICENSE="BSD LGPL-2"
SLOT="0/${PV}"
KEYWORDS="~amd64 ~ppc ~sparc ~x86"
IUSE="cxx debug emacs gengc precisegc cpu_flags_x86_sse +threads +unicode +libatomic X"
CDEPEND="dev-libs/gmp:0
virtual/libffi
libatomic? ( dev-libs/libatomic_ops )
>=dev-libs/boehm-gc-7.1[threads?]
>=dev-lisp/asdf-2.33-r3:="
DEPEND="${CDEPEND}
app-text/texi2html
emacs? ( virtual/emacs >=app-eselect/eselect-emacs-1.12 )"
RDEPEND="${CDEPEND}"
S="${WORKDIR}"/${MY_P}
pkg_setup () {
if use gengc || use precisegc ; then
ewarn "You have enabled the generational garbage collector or"
ewarn "the precise collection routines. These features are not very stable"
ewarn "at the moment and may cause crashes."
ewarn "Don't enable them unless you know what you're doing."
fi
}
src_prepare() {
epatch "${FILESDIR}"/${PV}-headers-gentoo.patch
epatch "${FILESDIR}"/${PV}-build.patch
cp "${EPREFIX}"/usr/share/common-lisp/source/asdf/build/asdf.lisp contrib/asdf/ || die
}
src_configure() {
econf \
--with-system-gmp \
--enable-boehm=system \
--enable-longdouble=yes \
--with-dffi \
$(use_with cxx) \
$(use_enable gengc) \
$(use_enable precisegc) \
$(use_with debug debug-cflags) \
$(use_enable libatomic libatomic system) \
$(use_with cpu_flags_x86_sse sse) \
$(use_enable threads) \
$(use_with threads __thread) \
$(use_enable unicode) \
$(use_with unicode unicode-names) \
$(use_with X x) \
$(use_with X clx)
}
src_compile() {
if use emacs; then
local ETAGS=$(eselect --brief etags list | sed -ne '/emacs/{p;q}')
[[ -n ${ETAGS} ]] || die "No etags implementation found"
pushd build > /dev/null || die
emake ETAGS=${ETAGS} TAGS
popd > /dev/null
else
touch build/TAGS
fi
#parallel make fails
emake -j1 || die "Compilation failed"
}
src_install () {
emake DESTDIR="${D}" install || die "Installation failed"
dodoc README.md CHANGELOG
dodoc "${FILESDIR}"/README.Gentoo
pushd build/doc
newman ecl.man ecl.1
newman ecl-config.man ecl-config.1
popd
}

@ -0,0 +1,10 @@
diff -r -U2 ecl-16.1.3.orig/src/c/printer/write_sse.d ecl-16.1.3/src/c/printer/write_sse.d
--- ecl-16.1.3.orig/src/c/printer/write_sse.d 2016-12-19 17:25:00.000000000 +0700
+++ ecl-16.1.3/src/c/printer/write_sse.d 2016-12-19 19:20:01.863563607 +0700
@@ -13,4 +13,6 @@
*/
+#include <ecl/config.h>
+
#ifdef ECL_SSE2
#include <ecl/ecl.h>

@ -0,0 +1,15 @@
diff -r -U2 ecl-16.1.3.orig/src/h/object.h ecl-16.1.3/src/h/object.h
--- ecl-16.1.3.orig/src/h/object.h 2016-12-19 17:25:00.000000000 +0700
+++ ecl-16.1.3/src/h/object.h 2016-12-19 19:22:21.147557750 +0700
@@ -26,6 +26,11 @@
*/
+#ifndef TRUE
#define TRUE 1 /* boolean true value */
+#endif
+
+#ifndef FALSE
#define FALSE 0 /* boolean false value */
+#endif
#if !defined(__cplusplus) && !defined(bool)

@ -1,2 +1 @@
DIST eliom-5.0.0.tar.gz 728278 SHA256 6726500f9a54478def95875d04098dc8dc829d4a10e06896ff4f037bb1c03cbd SHA512 1c5297e376c3a46935de369b418638a772304246b73756f8bc052301b48d62a37af527274bf1a05064f33b60ff9dcde057a0030f083136fa4e1c0cfa07f01887 WHIRLPOOL ca1186787a8f938cf029f9a5c9904ed0324a3d24d2f0d0834dd1e2b2f995de6d57d1040b4d128de8233255ca385478f0ba3bf597c2f0315ab2f1894118755dca
DIST eliom-6.0.0.tar.gz 722673 SHA256 ec5636481be9cccc8256b13a5e551f6a8c32662e1c3211887a22eedf5c8958f9 SHA512 c59261bb6ba2303a7951de2e689abcb55af92b53a145d42054244d253b6757d72ba3f937772219b2b0aa5bccfe1a74baf62c938f40c1cce90720b6efe7be3b63 WHIRLPOOL e4f8c44c16dbc33c7576a117a25cb2f709a893ad82baa517fb2d5a776b0838affbef56aba84a977903c71d32987f3d16af485c5cf8dddd1cc39395025d996226

@ -1,67 +0,0 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
inherit eutils multilib findlib
DESCRIPTION="A web framework to program client/server applications"
HOMEPAGE="http://ocsigen.org/eliom/"
SRC_URI="https://github.com/ocsigen/eliom/archive/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="LGPL-2.1-with-linking-exception"
SLOT="0/${PV}"
KEYWORDS="~amd64"
IUSE="doc +ocamlopt +ppx"
RDEPEND=">=dev-lang/ocaml-4.03:=[ocamlopt?]
>=dev-ml/js_of_ocaml-2.8.2:=
>=www-servers/ocsigenserver-2.8:=
>=dev-ml/tyxml-4:=
>=dev-ml/deriving-0.6:=
>=dev-ml/reactiveData-0.2.1:=
dev-ml/ocaml-ipaddr:=
dev-ml/react:=
dev-ml/ocaml-ssl:=
>=dev-ml/lwt-2.5.0:=
dev-ml/calendar:=
dev-ml/camlp4:=
ppx? ( >=dev-ml/ppx_tools-0.99.3:= )"
DEPEND="${RDEPEND}
dev-ml/ocamlbuild
dev-ml/opam"
src_prepare() {
epatch "${FILESDIR}/"{camlp4,oc43,oc43-2}.patch \
"${FILESDIR}/tyxml4.patch" \
"${FILESDIR}/jsofocaml-282.patch" \
"${FILESDIR}/reactivedata.patch" \
"${FILESDIR}/ocsigen28.patch"
}
src_compile() {
if use ocamlopt ; then
emake PPX=$(usex ppx true false) all
else
emake PPX=$(usex ppx true false) byte
fi
use doc && emake doc
emake man
}
src_install() {
opam-installer \
--prefix="${ED}/usr" \
--libdir="${D}/$(ocamlc -where)" \
--docdir="${ED}/usr/share/doc/${PF}" \
--mandir="${ED}/usr/share/man" \
|| die
dodoc CHANGES README.md
if use doc ; then
docinto client/html
dodoc -r _build/src/lib/client/api.docdir/*
docinto server/html
dodoc -r _build/src/lib/server/api.docdir/*
fi
}

@ -1,48 +0,0 @@
commit f157a5b913451b85e8cfe7549c66e5c98669233b
Author: Vasilis Papavasileiou <git@vasilis.airpost.net>
Date: Wed Mar 2 14:23:02 2016 +0100
Compile against Camlp4 4.02+7
diff --git a/src/syntax/pa_eliom_seed.ml b/src/syntax/pa_eliom_seed.ml
index c101ff8..dc31caa 100644
--- a/src/syntax/pa_eliom_seed.ml
+++ b/src/syntax/pa_eliom_seed.ml
@@ -632,8 +632,26 @@ module Register(Id : sig val name: string end)(Pass : Pass) = struct
| None ->
Printf.ksprintf (Syntax_error.raise loc) fmt
- module E2 = Camlp4.ErrorHandler.Register(Syntax_error)
- DELETE_RULE Gram expr: "{"; TRY [label_expr_list; "}"] END;
+ module E2 = Camlp4.ErrorHandler.Register(Syntax_error) ;;
+
+ try
+ DELETE_RULE Gram expr: "{"; TRY [label_expr_list; "}"] END
+ with Camlp4.Struct.Grammar.Delete.Rule_not_found _ ->
+ (let test_record_field =
+ Gram.Entry.of_parser "record_field" (fun strm ->
+ let rec loop = function
+ | [] -> ()
+ | (UIDENT _, _) :: (KEYWORD ".", _) :: rest -> loop rest
+ | (LIDENT _, _) :: (KEYWORD "=", _) :: _ -> ()
+ | (LIDENT _, _) :: (KEYWORD ";", _) :: _ -> ()
+ | [LIDENT _, _] -> ()
+ | _ -> raise Stream.Failure
+ in
+ loop (Stream.npeek 100 strm))
+ in
+ DELETE_RULE Gram expr:
+ "{"; test_record_field; label_expr_list; "}" END) ;;
+
DELETE_RULE Gram expr: "{"; TRY [expr LEVEL "."; "with"]; label_expr_list; "}" END;
(* Extending syntax *)
@@ -812,7 +830,7 @@ module Register(Id : sig val name: string end)(Pass : Pass) = struct
expr: LEVEL "simple"
[ [ KEYWORD "{"; lel = TRY [lel = label_expr_list; "}" -> lel] ->
- <:expr< { $lel$ } >>
+ Ast.ExRec (_loc, lel, Ast.ExNil _loc)
| KEYWORD "{shared#";
typ = TRY [ typ = OPT ctyp; KEYWORD "{" -> typ];
opt_lvl = dummy_set_level_shared_value_expr ;

@ -1,361 +0,0 @@
Backported from:
commit 4edaf2275e2f7a027f3c7dc52e1e295a6e56b19a
Author: Vasilis Papavasileiou <git@vasilis.airpost.net>
Date: Thu Aug 18 19:40:56 2016 +0200
Fix ocsigen/js_of_ocaml#518
upstream.
Index: eliom-5.0.0/src/lib/eliom_client.client.ml
===================================================================
--- eliom-5.0.0.orig/src/lib/eliom_client.client.ml
+++ eliom-5.0.0/src/lib/eliom_client.client.ml
@@ -461,23 +461,29 @@ let raw_event_handler value =
let closure_name_prefix = Eliom_lib_base.RawXML.closure_name_prefix
let closure_name_prefix_len = String.length closure_name_prefix
-let reify_caml_event name node ce : string * (#Dom_html.event Js.t -> bool) =
+let reify_caml_event name node ce =
match ce with
- | Xml.CE_call_service None -> name,(fun _ -> true)
+ | Xml.CE_call_service None -> name, `Other (fun _ -> true)
| Xml.CE_call_service (Some (`A, cookies_info, tmpl)) ->
- name, (fun ev ->
+ name, `Other (fun ev ->
let node = Js.Opt.get (Dom_html.CoerceTo.a node)
(fun () -> Lwt_log.raise_error ~section "not an anchor element")
in
raw_a_handler node cookies_info tmpl ev)
| Xml.CE_call_service
(Some ((`Form_get | `Form_post) as kind, cookies_info, tmpl)) ->
- name, (fun ev ->
+ name, `Other (fun ev ->
let form = Js.Opt.get (Dom_html.CoerceTo.form node)
(fun () -> Lwt_log.raise_error ~section "not a form element") in
raw_form_handler form kind cookies_info tmpl ev)
| Xml.CE_client_closure f ->
- name, (fun ev -> try f ev; true with False -> false)
+ name, `Other (fun ev -> try f ev; true with False -> false)
+ | Xml.CE_client_closure_keyboard f ->
+ name,
+ `Keyboard (fun ev -> try f ev; true with Eliom_lib.False -> false)
+ | Xml.CE_client_closure_mouse f ->
+ name,
+ `Mouse (fun ev -> try f ev; true with Eliom_lib.False -> false)
| Xml.CE_registered_closure (_, cv) ->
let name =
let len = String.length name in
@@ -485,16 +491,27 @@ let reify_caml_event name node ce : stri
then String.sub name closure_name_prefix_len
(len - closure_name_prefix_len)
else name in
- name, raw_event_handler cv
+ name, `Other (raw_event_handler cv)
let register_event_handler, flush_load_script =
let add, _, flush = create_buffer () in
let register node (name, ev) =
- let name,f = reify_caml_event name node ev in
- if name = "onload"
- then add f
- else Js.Unsafe.set node (Js.bytestring name)
- (Dom_html.handler (fun ev -> Js.bool (f ev)))
+ match reify_caml_event name node ev with
+ | "onload", `Other f ->
+ add f
+ | "onload", `Keyboard _ ->
+ failwith "keyboard event handler for onload"
+ | "onload", `Mouse _ ->
+ failwith "keyboard event handler for onload"
+ | name, `Other f ->
+ Js.Unsafe.set node (Js.bytestring name)
+ (Dom_html.handler (fun ev -> Js.bool (f ev)))
+ | name, `Keyboard f ->
+ Js.Unsafe.set node (Js.bytestring name)
+ (Dom_html.handler (fun ev -> Js.bool (f ev)))
+ | name, `Mouse f ->
+ Js.Unsafe.set node (Js.bytestring name)
+ (Dom_html.handler (fun ev -> Js.bool (f ev)))
in
let flush () =
let fs = flush () in
Index: eliom-5.0.0/src/lib/eliom_content.server.mli
===================================================================
--- eliom-5.0.0.orig/src/lib/eliom_content.server.mli
+++ eliom-5.0.0/src/lib/eliom_content.server.mli
@@ -114,7 +114,7 @@ module Xml : sig
example {% <<a_api project="js_of_ocaml" | type
Dom_html.mouseEvent>>%} or {% <<a_api project="js_of_ocaml" | type
Dom_html.keyboardEvent >>%}. *)
- type -'a caml_event_handler constraint 'a = #Dom_html.event
+ type caml_event_handler
(**/**)
@@ -129,18 +129,14 @@ module Xml : sig
val make_event_handler_table : elt -> Eliom_lib.RawXML.event_handler_table
val make_client_attrib_table : elt -> Eliom_lib.RawXML.client_attrib_table
- val caml_event_handler : ((#Dom_html.event as 'a) Js.t -> unit) Eliom_lib.client_value -> 'a caml_event_handler
-
- class type biggest_event = object
- inherit Dom_html.event
- inherit Dom_html.mouseEvent
- inherit Dom_html.keyboardEvent
- end
+ val caml_event_handler :
+ (Dom_html.event Js.t -> unit) Eliom_lib.client_value ->
+ caml_event_handler
type racontent =
| RA of acontent
| RAReact of acontent option React.signal
- | RACamlEventHandler of biggest_event caml_event_handler
+ | RACamlEventHandler of caml_event_handler
| RALazyStr of string Eliom_lazy.request
| RALazyStrL of separator * string Eliom_lazy.request list
| RAClient of string * attrib option * Eliom_lib.poly
Index: eliom-5.0.0/src/lib/eliom_content_core.client.ml
===================================================================
--- eliom-5.0.0.orig/src/lib/eliom_content_core.client.ml
+++ eliom-5.0.0/src/lib/eliom_content_core.client.ml
@@ -87,21 +87,19 @@ module Xml = struct
let node ?(a = []) name children = make (Node (name, a, children))
let lazy_node ?a name children = node ?a name (Eliom_lazy.force children)
- type biggest_event_handler = biggest_event Js.t -> unit
-
type event_handler = Dom_html.event Js.t -> unit
type mouse_event_handler = Dom_html.mouseEvent Js.t -> unit
type keyboard_event_handler = Dom_html.keyboardEvent Js.t -> unit
let event_handler_attrib name (value : event_handler) =
internal_event_handler_attrib name
- (Caml (CE_client_closure (value :> biggest_event_handler)))
+ (Caml (CE_client_closure value))
let mouse_event_handler_attrib name (value : mouse_event_handler) =
internal_event_handler_attrib name
- (Caml (CE_client_closure (value :> biggest_event_handler)))
+ (Caml (CE_client_closure_mouse value))
let keyboard_event_handler_attrib name (value : keyboard_event_handler) =
internal_event_handler_attrib name
- (Caml (CE_client_closure (value :> biggest_event_handler)))
+ (Caml (CE_client_closure_keyboard value))
let node_react_children ?(a = []) name children =
{elt = Lazy.from_val (ReactChildren (Node (name,a,[]),children)); node_id=NoId}
Index: eliom-5.0.0/src/lib/eliom_content_core.client.mli
===================================================================
--- eliom-5.0.0.orig/src/lib/eliom_content_core.client.mli
+++ eliom-5.0.0/src/lib/eliom_content_core.client.mli
@@ -35,24 +35,21 @@ module Xml : sig
type aname = string
type attrib
- type -'a caml_event_handler =
+ type caml_event_handler =
| CE_registered_closure of string * Eliom_lib.poly
(* 'a Js.t -> unit) client_value_server *)
- | CE_client_closure of ((#Dom_html.event as 'a) Js.t -> unit)
+ | CE_client_closure of
+ (Dom_html.event Js.t -> unit) (* Client side-only *)
+ | CE_client_closure_mouse of
+ (Dom_html.mouseEvent Js.t -> unit) (* Client side-only *)
+ | CE_client_closure_keyboard of
+ (Dom_html.keyboardEvent Js.t -> unit) (* Client side-only *)
| CE_call_service of
([ `A | `Form_get | `Form_post] * (bool * string list) option * string option) option Eliom_lazy.request
- (* Inherit from all events.
- Necessary for subtyping since caml_event_handler is contravariant. *)
- class type biggest_event = object
- inherit Dom_html.event
- inherit Dom_html.mouseEvent
- inherit Dom_html.keyboardEvent
- end
-
type internal_event_handler =
| Raw of string
- | Caml of biggest_event caml_event_handler
+ | Caml of caml_event_handler
type event_handler = Dom_html.event Js.t -> unit
type mouse_event_handler = Dom_html.mouseEvent Js.t -> unit
type keyboard_event_handler = Dom_html.keyboardEvent Js.t -> unit
@@ -89,7 +86,7 @@ module Xml : sig
type racontent =
| RA of acontent
| RAReact of acontent option React.signal
- | RACamlEventHandler of biggest_event caml_event_handler
+ | RACamlEventHandler of caml_event_handler
| RALazyStr of string Eliom_lazy.request
| RALazyStrL of separator * string Eliom_lazy.request list
| RAClient of string * attrib option * Eliom_lib.poly
Index: eliom-5.0.0/src/lib/eliom_content_core.server.ml
===================================================================
--- eliom-5.0.0.orig/src/lib/eliom_content_core.server.ml
+++ eliom-5.0.0/src/lib/eliom_content_core.server.ml
@@ -114,7 +114,6 @@ module Xml = struct
let lazy_node ?(a = []) name children =
make_lazy (Eliom_lazy.from_fun (fun () -> (Node (name, a, Eliom_lazy.force children))))
- type biggest_event_handler = (biggest_event Js.t -> unit) Eliom_lib.client_value
type event_handler = (Dom_html.event Js.t -> unit) Eliom_lib.client_value
type mouse_event_handler = (Dom_html.mouseEvent Js.t -> unit) Eliom_lib.client_value
type keyboard_event_handler = (Dom_html.keyboardEvent Js.t -> unit) Eliom_lib.client_value
@@ -133,11 +132,11 @@ module Xml = struct
let biggest_event_handler_attrib name cf =
internal_event_handler_attrib name (event_handler cf)
let event_handler_attrib name (cf : event_handler) =
- biggest_event_handler_attrib name (cf :> biggest_event_handler)
+ biggest_event_handler_attrib name cf
let mouse_event_handler_attrib name (cf : mouse_event_handler) =
- biggest_event_handler_attrib name (cf :> biggest_event_handler)
+ biggest_event_handler_attrib name cf
let keyboard_event_handler_attrib name (cf : keyboard_event_handler) =
- biggest_event_handler_attrib name (cf :> biggest_event_handler)
+ biggest_event_handler_attrib name cf
let client_attrib ?init (x : attrib Eliom_lib.client_value) =
let crypto = make_cryptographic_safe_string () in
Index: eliom-5.0.0/src/lib/eliom_content_core.server.mli
===================================================================
--- eliom-5.0.0.orig/src/lib/eliom_content_core.server.mli
+++ eliom-5.0.0/src/lib/eliom_content_core.server.mli
@@ -28,7 +28,7 @@ module Xml : sig
and type mouse_event_handler = (Dom_html.mouseEvent Js.t -> unit) Eliom_lib.client_value
and type keyboard_event_handler = (Dom_html.keyboardEvent Js.t -> unit) Eliom_lib.client_value
- type -'a caml_event_handler constraint 'a = #Dom_html.event
+ type caml_event_handler
(**/**)
@@ -43,15 +43,9 @@ module Xml : sig
val make_event_handler_table : elt -> Eliom_lib.RawXML.event_handler_table
val make_client_attrib_table : elt -> Eliom_lib.RawXML.client_attrib_table
- class type biggest_event = object
- inherit Dom_html.event
- inherit Dom_html.mouseEvent
- inherit Dom_html.keyboardEvent
- end
-
type internal_event_handler =
| Raw of string
- | Caml of biggest_event caml_event_handler
+ | Caml of caml_event_handler
val internal_event_handler_attrib : aname -> internal_event_handler -> attrib
val internal_event_handler_of_service :
@@ -59,12 +53,14 @@ module Xml : sig
* (bool * string list) option
* string option) option Eliom_lazy.request -> internal_event_handler
- val caml_event_handler : ((#Dom_html.event as 'a) Js.t -> unit) Eliom_lib.client_value -> 'a caml_event_handler
+ val caml_event_handler :
+ (Dom_html.event Js.t -> unit) Eliom_lib.client_value ->
+ caml_event_handler
type racontent =
| RA of acontent
| RAReact of acontent option React.signal
- | RACamlEventHandler of biggest_event caml_event_handler
+ | RACamlEventHandler of caml_event_handler
| RALazyStr of string Eliom_lazy.request
| RALazyStrL of separator * string Eliom_lazy.request list
| RAClient of string * attrib option * Eliom_lib.poly
Index: eliom-5.0.0/src/lib/eliom_lib_base.shared.ml
===================================================================
--- eliom-5.0.0.orig/src/lib/eliom_lib_base.shared.ml
+++ eliom-5.0.0/src/lib/eliom_lib_base.shared.ml
@@ -70,26 +70,22 @@ module RawXML = struct
type cookie_info = (bool * string list) deriving (Json)
- type -'a caml_event_handler =
+ type caml_event_handler =
| CE_registered_closure of
string * poly (* 'a Js.t -> unit) client_value *)
| CE_client_closure of
- ((#Dom_html.event as 'a) Js.t -> unit) (* Client side-only *)
+ (Dom_html.event Js.t -> unit) (* Client side-only *)
+ | CE_client_closure_mouse of
+ (Dom_html.mouseEvent Js.t -> unit) (* Client side-only *)
+ | CE_client_closure_keyboard of
+ (Dom_html.keyboardEvent Js.t -> unit) (* Client side-only *)
| CE_call_service of
([ `A | `Form_get | `Form_post] * (cookie_info option) * string option)
option Eliom_lazy.request
- (* Inherit from all events.
- Necessary for subtyping since caml_event_handler is contravariant. *)
- class type biggest_event = object
- inherit Dom_html.event
- inherit Dom_html.mouseEvent
- inherit Dom_html.keyboardEvent
- end
-
type internal_event_handler =
| Raw of string
- | Caml of biggest_event caml_event_handler
+ | Caml of caml_event_handler
type uri = string Eliom_lazy.request
let string_of_uri = Eliom_lazy.force
@@ -128,7 +124,7 @@ module RawXML = struct
type racontent =
| RA of acontent
| RAReact of acontent option React.signal
- | RACamlEventHandler of biggest_event caml_event_handler
+ | RACamlEventHandler of caml_event_handler
| RALazyStr of string Eliom_lazy.request
| RALazyStrL of separator * string Eliom_lazy.request list
| RAClient of string * attrib option * poly (*attrib client_value *)
Index: eliom-5.0.0/src/lib/eliom_lib_base.shared.mli
===================================================================
--- eliom-5.0.0.orig/src/lib/eliom_lib_base.shared.mli
+++ eliom-5.0.0/src/lib/eliom_lib_base.shared.mli
@@ -73,24 +73,21 @@ module RawXML : sig
type cookie_info = (bool * string list) deriving (Json)
- type -'a caml_event_handler =
+ type caml_event_handler =
| CE_registered_closure of
string * poly (* 'a Js.t -> unit) client_value *)
- | CE_client_closure of ((#Dom_html.event as 'a) Js.t -> unit)
+ | CE_client_closure of
+ (Dom_html.event Js.t -> unit) (* Client side-only *)
+ | CE_client_closure_mouse of
+ (Dom_html.mouseEvent Js.t -> unit) (* Client side-only *)
+ | CE_client_closure_keyboard of
+ (Dom_html.keyboardEvent Js.t -> unit) (* Client side-only *)
| CE_call_service of
([ `A | `Form_get | `Form_post] * (cookie_info option) * string option) option Eliom_lazy.request
- (* Inherit from all events.
- Necessary for subtyping since caml_event_handler is contravariant. *)
- class type biggest_event = object
- inherit Dom_html.event
- inherit Dom_html.mouseEvent
- inherit Dom_html.keyboardEvent
- end
-
type internal_event_handler =
| Raw of string
- | Caml of biggest_event caml_event_handler
+ | Caml of caml_event_handler
type uri = string Eliom_lazy.request
val string_of_uri : uri -> string
@@ -127,7 +124,7 @@ module RawXML : sig
type racontent =
| RA of acontent
| RAReact of acontent option React.signal
- | RACamlEventHandler of biggest_event caml_event_handler
+ | RACamlEventHandler of caml_event_handler
| RALazyStr of string Eliom_lazy.request
| RALazyStrL of separator * string Eliom_lazy.request list
| RAClient of string * attrib option * poly (* attrib client_value *)

@ -1,136 +0,0 @@
commit 27c69ac5dfbc26744e304232bb8c0cf22d396082
Author: Vasilis Papavasileiou <git@vasilis.airpost.net>
Date: Thu May 5 11:14:02 2016 -0400
Fix PPX for 4.03 (empty let bindings)
diff --git a/src/ppx/ppx_eliom_client.ml b/src/ppx/ppx_eliom_client.ml
index 580d2b5..fb2d263 100644
--- a/src/ppx/ppx_eliom_client.ml
+++ b/src/ppx/ppx_eliom_client.ml
@@ -89,21 +89,25 @@ module Pass = struct
]
let define_client_functions ~loc client_value_datas =
- let bindings =
- List.map
- (fun (_num, id, expr, args) ->
- let patt = Pat.var id in
- let typ = find_fragment id in
- let args = List.map Pat.var args in
- let expr =
- [%expr
- fun [%p pat_args args] -> ([%e expr] : [%t typ])
- ] [@metaloc loc]
- in
- Vb.mk ~loc patt expr)
- client_value_datas
- in
- Str.value ~loc Nonrecursive bindings
+ match client_value_datas with
+ | [] ->
+ []
+ | _ ->
+ let bindings =
+ List.map
+ (fun (_num, id, expr, args) ->
+ let patt = Pat.var id in
+ let typ = find_fragment id in
+ let args = List.map Pat.var args in
+ let expr =
+ [%expr
+ fun [%p pat_args args] -> ([%e expr] : [%t typ])
+ ] [@metaloc loc]
+ in
+ Vb.mk ~loc patt expr)
+ client_value_datas
+ in
+ [Str.value ~loc Nonrecursive bindings]
(* For injections *)
@@ -139,8 +143,8 @@ module Pass = struct
let client_expr_data = flush_client_value_datas () in
open_client_section loc ::
register_client_closures client_expr_data @
- [ define_client_functions loc client_expr_data ;
- item ;
+ define_client_functions loc client_expr_data @
+ [ item ;
close_server_section loc ;
]
@@ -155,11 +159,13 @@ module Pass = struct
push_client_value_data num id expr
(List.map fst escaped_bindings);
- match context with
- | `Server ->
+ match context, escaped_bindings with
+ | `Server, _ ->
(* We are in a server fragment, this code should always be discarded. *)
Exp.extension @@ AM.extension_of_error @@ Location.errorf "Eliom: ICE"
- | `Shared ->
+ | `Shared, [] ->
+ [%expr [%e frag_eid] ()][@metaloc loc]
+ | `Shared, _ ->
let bindings =
List.map
(fun (gen_id, expr) ->
diff --git a/src/ppx/ppx_eliom_server.ml b/src/ppx/ppx_eliom_server.ml
index 97f0b53..b5238ad 100644
--- a/src/ppx/ppx_eliom_server.ml
+++ b/src/ppx/ppx_eliom_server.ml
@@ -85,6 +85,7 @@ module Pass = struct
let $gen_id$ = $orig_expr$ and ...
(Necessary for injections in shared section) *)
let bind_injected_idents injections =
+ assert (injections <> []);
let bindings =
List.map
(fun (txt, expr,_) ->
@@ -134,10 +135,15 @@ module Pass = struct
let client_str item =
let all_injections = flush_injections () in
- let loc = item.pstr_loc in
- [ bind_injected_idents all_injections;
+ let ccs =
+ let loc = item.pstr_loc in
close_client_section loc all_injections
- ]
+ in
+ match all_injections with
+ | [] ->
+ [ ccs ]
+ | l ->
+ [ bind_injected_idents l ; ccs ]
let server_str item = [
item ;
@@ -146,12 +152,19 @@ module Pass = struct
let shared_str item =
let all_injections = flush_injections () in
- let loc = item.pstr_loc in
- [ bind_injected_idents all_injections ;
- item ;
- close_server_section loc ;
- close_client_section loc all_injections ;
- ]
+ let cl =
+ let loc = item.pstr_loc in
+ [
+ item;
+ close_server_section loc ;
+ close_client_section loc all_injections ;
+ ]
+ in
+ match all_injections with
+ | [] ->
+ cl
+ | l ->
+ bind_injected_idents l :: cl
let fragment ?typ ~context:_ ~num ~id expr =
let typ =

@ -1,37 +0,0 @@
Index: eliom-5.0.0/src/lib/eliom_lib.client.mli
===================================================================
--- eliom-5.0.0.orig/src/lib/eliom_lib.client.mli
+++ eliom-5.0.0/src/lib/eliom_lib.client.mli
@@ -43,7 +43,6 @@ type 'a shared_value = 'a
val create_shared_value : 'a -> 'a client_value -> 'a shared_value
-exception Eliom_Internal_Error of string
(** This exception is raised (in Lwt) on the client if a call to a
server function {% <<a_api subproject="server"|val
Index: eliom-5.0.0/src/lib/eliom_lib.server.mli
===================================================================
--- eliom-5.0.0.orig/src/lib/eliom_lib.server.mli
+++ eliom-5.0.0/src/lib/eliom_lib.server.mli
@@ -50,7 +50,6 @@ type +'a shared_value
*)
exception Client_value_creation_invalid_context of string
-exception Eliom_Internal_Error of string
type file_info = Ocsigen_extensions.file_info
Index: eliom-5.0.0/src/syntax/pa_include.ml
===================================================================
--- eliom-5.0.0.orig/src/syntax/pa_include.ml
+++ eliom-5.0.0/src/syntax/pa_include.ml
@@ -27,7 +27,7 @@ module Make(Syntax : Camlp4.Sig.Camlp4Sy
class subst_type env = object (self)
inherit Ast.map as super
method sig_item si = match si with
- | Ast.SgTyp (_loc, (Ast.TyDcl (_, lid, _, Ast.TyNil _, _)))
+ | Ast.SgTyp (_loc, rf, (Ast.TyDcl (_, lid, _, Ast.TyNil _, _)))
when List.mem_assoc lid env -> <:sig_item< >>
| si -> super#sig_item si
method ctyp ty = match ty with

@ -1,500 +0,0 @@
Index: eliom-5.0.0/src/lib/eliom_common.server.ml
===================================================================
--- eliom-5.0.0.orig/src/lib/eliom_common.server.ml
+++ eliom-5.0.0/src/lib/eliom_common.server.ml
@@ -1372,7 +1372,7 @@ let create_persistent_table name =
let persistent_cookies_table :
(full_state_name * float option * timeout * perssessgrp option)
- Ocsipersist.table Lazy.t =
+ Ocsipersist.table Lwt.t Lazy.t =
lazy (create_persistent_table eliom_persistent_cookie_table)
(* Another tables, containing the session info for each cookie *)
(* the table contains:
@@ -1390,7 +1390,7 @@ let persistent_cookies_table :
let remove_from_all_persistent_tables key =
Perstables.fold (* could be replaced by a parallel map *)
(fun thr t -> thr >>= fun () ->
- Ocsipersist.remove (Ocsipersist.open_table t) key >>= Lwt_unix.yield)
+ Ocsipersist.open_table t >>= fun table -> Ocsipersist.remove table key >>= Lwt_unix.yield)
(return ())
!perstables
Index: eliom-5.0.0/src/lib/eliom_common.server.mli
===================================================================
--- eliom-5.0.0.orig/src/lib/eliom_common.server.mli
+++ eliom-5.0.0/src/lib/eliom_common.server.mli
@@ -609,10 +609,10 @@ module Perstables :
val fold : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
end
val perstables : string list ref
-val create_persistent_table : string -> 'a Ocsipersist.table
+val create_persistent_table : string -> 'a Ocsipersist.table Lwt.t
val persistent_cookies_table :
(full_state_name * float option * timeout * perssessgrp option)
- Ocsipersist.table Lazy.t
+ Ocsipersist.table Lwt.t Lazy.t
val remove_from_all_persistent_tables : string -> unit Lwt.t
val absolute_change_sitedata : sitedata -> unit
val get_current_sitedata : unit -> sitedata
Index: eliom-5.0.0/src/lib/eliom_reference.server.ml
===================================================================
--- eliom-5.0.0.orig/src/lib/eliom_reference.server.ml
+++ eliom-5.0.0/src/lib/eliom_reference.server.ml
@@ -32,8 +32,8 @@ type 'a eref_kind =
| Ref of 'a lazy_t ref (* Ocaml reference *)
| Vol of 'a volatile_table Lazy.t (* Vol. table (group, session, process) *)
| Ocsiper of 'a option Ocsipersist.t Lwt.t (* Global persist. table *)
- | Ocsiper_sit of 'a Ocsipersist.table (* Persist. table for site *)
- | Per of 'a persistent_table (* Persist. table for group session or process *)
+ | Ocsiper_sit of 'a Ocsipersist.table Lwt.t (* Persist. table for site *)
+ | Per of 'a persistent_table Lwt.t (* Persist. table for group session or process *)
type volatile = [ `Volatile ]
type persistent = [ `Persistent ]
@@ -174,9 +174,7 @@ let eref_from_fun_ ~ext ~scope ?secure ?
| None -> (Volatile.eref_from_fun_ ~ext ~scope ?secure f :> _ eref)
| Some name ->
(f, ext,
- Ocsiper (Ocsipersist.make_persistent
- ~store:pers_ref_store
- ~name ~default:None))
+ Ocsiper (pers_ref_store >>= fun store -> Ocsipersist.make_persistent ~store ~name ~default:None))
end
| `Site ->
begin
@@ -207,6 +205,7 @@ let get_site_id () =
let get (f, _, table as eref) =
match table with
| Per t ->
+ t >>= fun t ->
(get_persistent_data ~table:t () >>= function
| Data d -> Lwt.return d
| _ ->
@@ -221,6 +220,7 @@ let get (f, _, table as eref) =
Ocsipersist.set r (Some value) >>= fun () ->
Lwt.return value)
| Ocsiper_sit t ->
+ t >>= fun t ->
(let site_id = get_site_id () in
try_lwt Ocsipersist.find t site_id
with Not_found ->
@@ -231,9 +231,10 @@ let get (f, _, table as eref) =
let set (_, _, table as eref) value =
match table with
- | Per t -> set_persistent_data ~table:t value
+ | Per t -> t >>= fun t -> set_persistent_data ~table:t value
| Ocsiper r -> r >>= fun r -> Ocsipersist.set r (Some value)
| Ocsiper_sit t ->
+ t >>= fun t ->
Ocsipersist.add t (get_site_id ()) value
| _ -> Lwt.return (Volatile.set eref value)
@@ -242,9 +243,10 @@ let modify eref f =
let unset (f, _, table as eref) =
match table with
- | Per t -> remove_persistent_data ~table:t ()
+ | Per t -> t >>= fun t -> remove_persistent_data ~table:t ()
| Ocsiper r -> r >>= fun r -> Ocsipersist.set r None
| Ocsiper_sit t ->
+ t >>= fun t ->
Ocsipersist.remove t (get_site_id ())
| _ -> Lwt.return (Volatile.unset eref)
@@ -258,6 +260,7 @@ module Ext = struct
match table with
| Vol _ -> Lwt.return (Volatile.Ext.get state r)
| Per t ->
+ t >>= fun t ->
(Lwt.catch
(fun () -> Eliom_state.Ext.Low_level.get_persistent_data
~state ~table:t)
@@ -279,6 +282,7 @@ module Ext = struct
match table with
| Vol _ -> Lwt.return (Volatile.Ext.set state r value)
| Per t ->
+ t >>= fun t ->
Eliom_state.Ext.Low_level.set_persistent_data
~state ~table:t value
| _ -> Lwt.fail (Failure "wrong eref for this function")
@@ -291,7 +295,7 @@ module Ext = struct
let state = Eliom_state.Ext.untype_state state in
match table with
| Vol _ -> Lwt.return (Volatile.Ext.unset state r)
- | Per t -> Eliom_state.Ext.Low_level.remove_persistent_data
+ | Per t -> t >>= fun t -> Eliom_state.Ext.Low_level.remove_persistent_data
~state ~table:t
| _ -> failwith "wrong eref for this function"
Index: eliom-5.0.0/src/lib/eliom_state.server.ml
===================================================================
--- eliom-5.0.0.orig/src/lib/eliom_state.server.ml
+++ eliom-5.0.0/src/lib/eliom_state.server.ml
@@ -918,11 +918,11 @@ type 'a persistent_table =
bool *
(int64 * 'a) Ocsipersist.table)
-let create_persistent_table ~scope ?secure name : 'a persistent_table =
+let create_persistent_table ~scope ?secure name : 'a persistent_table Lwt.t =
let sitedata = Eliom_request_info.find_sitedata "create_persistent_table" in
let secure = Eliom_common.get_secure secure sitedata in
- let t = Eliom_common.create_persistent_table name in
- (scope, secure, t)
+ Eliom_common.create_persistent_table name >>= fun t ->
+ Lwt.return (scope, secure, t)
let get_p_table_key_
~table:(scope, secure, table)
@@ -1271,10 +1271,8 @@ module Ext = struct
let get_persistent_cookie_info
((_, _, cookie) : ([< Eliom_common.cookie_level ], [ `Pers ]) state) =
- Ocsipersist.find
- (Lazy.force Eliommod_persess.persistent_cookies_table)
- cookie
- >>= fun v ->
+ Lazy.force Eliommod_persess.persistent_cookies_table >>= fun table ->
+ Ocsipersist.find table cookie >>= fun v ->
Lwt.return (cookie, v)
let discard_state ~state =
@@ -1487,10 +1485,8 @@ module Ext = struct
| None -> TNone
| Some t -> TSome t
in
- Ocsipersist.add
- (Lazy.force Eliom_common.persistent_cookies_table)
- cookie
- (fullstname, exp, ti, sessgrp)
+ Lazy.force Eliom_common.persistent_cookies_table >>= fun table ->
+ Ocsipersist.add table cookie (fullstname, exp, ti, sessgrp)
let get_service_cookie_timeout ~cookie:(_, (_, _, _, r, _, _)) =
!r
@@ -1510,10 +1506,8 @@ module Ext = struct
let unset_persistent_data_cookie_timeout
~cookie:(cookie, (fullstname, exp, _, sessgrp)) =
- Ocsipersist.add
- (Lazy.force Eliom_common.persistent_cookies_table)
- cookie
- (fullstname, exp, TGlobal, sessgrp)
+ Lazy.force Eliom_common.persistent_cookies_table >>= fun table ->
+ Ocsipersist.add table cookie (fullstname, exp, TGlobal, sessgrp)
let get_session_group_list () =
Index: eliom-5.0.0/src/lib/eliom_state.server.mli
===================================================================
--- eliom-5.0.0.orig/src/lib/eliom_state.server.mli
+++ eliom-5.0.0/src/lib/eliom_state.server.mli
@@ -1019,7 +1019,7 @@ val remove_volatile_data :
val create_persistent_table :
scope:Eliom_common.user_scope ->
?secure:bool ->
- string -> 'a persistent_table
+ string -> 'a persistent_table Lwt.t
(** gets persistent session data for the current persistent session (if any).
(low level) *)
Index: eliom-5.0.0/src/lib/server/eliommod_cookies.ml
===================================================================
--- eliom-5.0.0.orig/src/lib/server/eliommod_cookies.ml
+++ eliom-5.0.0/src/lib/server/eliommod_cookies.ml
@@ -152,8 +152,7 @@ let get_cookie_info
lazy
(catch
(fun () ->
- Ocsipersist.find
- (Lazy.force Eliom_common.persistent_cookies_table) value >>=
+ Lazy.force Eliom_common.persistent_cookies_table >>= fun table -> Ocsipersist.find table value >>=
fun (full_state_name, persexp, perstimeout, sessgrp) ->
Eliommod_sessiongroups.Pers.up value sessgrp >>= fun () ->
Index: eliom-5.0.0/src/lib/server/eliommod_gc.ml
===================================================================
--- eliom-5.0.0.orig/src/lib/server/eliommod_gc.ml
+++ eliom-5.0.0/src/lib/server/eliommod_gc.ml
@@ -309,7 +309,8 @@ let persistent_session_gc sitedata =
(fun () ->
let now = Unix.time () in
Lwt_log.ign_info ~section "GC of persistent sessions";
- (Ocsipersist.iter_table
+ Lazy.force Eliommod_persess.persistent_cookies_table >>=
+ Ocsipersist.iter_table
(fun k ((scope, _, _), exp, _, session_group) ->
(match exp with
| Some exp when exp < now ->
@@ -320,8 +321,7 @@ let persistent_session_gc sitedata =
session_group k
(*WAS: remove_from_all_persistent_tables k *)
| _ -> return ())
- )
- (Lazy.force Eliommod_persess.persistent_cookies_table)))
+ ))
>>=
f
in ignore (f ())
Index: eliom-5.0.0/src/lib/server/eliommod_pagegen.ml
===================================================================
--- eliom-5.0.0.orig/src/lib/server/eliommod_pagegen.ml
+++ eliom-5.0.0/src/lib/server/eliommod_pagegen.ml
@@ -135,8 +135,9 @@ let update_cookie_table ?now sitedata (c
oldv = newc.Eliom_common.pc_value ->
catch
(fun () ->
+ Lazy.force Eliommod_persess.persistent_cookies_table >>= fun table ->
Ocsipersist.replace_if_exists
- (Lazy.force Eliommod_persess.persistent_cookies_table)
+ table
newc.Eliom_common.pc_value
(name,
newexp,
@@ -147,8 +148,9 @@ let update_cookie_table ?now sitedata (c
(* someone else closed the session *)
| e -> fail e)
| _ ->
+ Lazy.force Eliommod_persess.persistent_cookies_table >>= fun table ->
Ocsipersist.add
- (Lazy.force Eliommod_persess.persistent_cookies_table)
+ table
newc.Eliom_common.pc_value
(name,
newexp,
Index: eliom-5.0.0/src/lib/server/eliommod_persess.ml
===================================================================
--- eliom-5.0.0.orig/src/lib/server/eliommod_persess.ml
+++ eliom-5.0.0/src/lib/server/eliommod_persess.ml
@@ -50,7 +50,7 @@ let number_of_persistent_table_elements
List.fold_left
(fun thr t ->
thr >>= fun l ->
- Ocsipersist.length (Ocsipersist.open_table t) >>= fun e ->
+ Ocsipersist.open_table t >>= fun table -> Ocsipersist.length table >>= fun e ->
return ((t, e)::l)) (return []) !perstables
let close_persistent_state2
@@ -141,8 +141,7 @@ let rec find_or_create_persistent_cookie
(* We do not need to verify if it already exists.
make_new_session_id does never generate twice the same cookie. *)
let usertimeout = ref Eliom_common.TGlobal (* See global table *) in
- Ocsipersist.add
- (Lazy.force persistent_cookies_table) c
+ Lazy.force persistent_cookies_table >>= fun table -> Ocsipersist.add table c
(full_st_name,
None (* Some 0. *) (* exp on server - We'll change it later *),
Eliom_common.TGlobal (* timeout - see global config *),
Index: eliom-5.0.0/src/lib/server/eliommod_persess.mli
===================================================================
--- eliom-5.0.0.orig/src/lib/server/eliommod_persess.mli
+++ eliom-5.0.0/src/lib/server/eliommod_persess.mli
@@ -22,7 +22,7 @@ val perstables : string list ref
val persistent_cookies_table :
(Eliom_common.full_state_name * float option * Eliom_common.timeout *
Eliom_common.perssessgrp option)
- Ocsipersist.table Lazy.t
+ Ocsipersist.table Lwt.t Lazy.t
val number_of_persistent_tables : unit -> int
val number_of_persistent_table_elements : unit -> (string * int) list Lwt.t
val close_persistent_state2 :
Index: eliom-5.0.0/src/lib/server/eliommod_sessadmin.ml
===================================================================
--- eliom-5.0.0.orig/src/lib/server/eliommod_sessadmin.ml
+++ eliom-5.0.0/src/lib/server/eliommod_sessadmin.ml
@@ -94,6 +94,7 @@ let close_all_data_states ~scope ~secure
let close_all_persistent_states2 full_st_name sitedata =
+ Lazy.force Eliommod_persess.persistent_cookies_table >>=
Ocsipersist.iter_table
(fun k ((scope, _, _) as full_st_name2, old_exp, old_t, sessiongrp) ->
if full_st_name = full_st_name2 && old_t = Eliom_common.TGlobal
@@ -102,7 +103,6 @@ let close_all_persistent_states2 full_st
Lwt_unix.yield
else return ()
)
- (Lazy.force Eliommod_persess.persistent_cookies_table)
(** Close all persistent sessions for one session name.
If the optional parameter [?state_name] (session name) is not present,
@@ -195,6 +195,7 @@ let update_pers_exp full_st_name sitedat
close_all_persistent_states2 full_st_name sitedata
| _ ->
let now = Unix.time () in
+ Lazy.force Eliommod_persess.persistent_cookies_table >>= fun table ->
Ocsipersist.iter_table
(fun k ((scope, _, _) as full_st_name2, old_exp, old_t, sessgrp) ->
if full_st_name = full_st_name2 && old_t =
@@ -211,11 +212,7 @@ let update_pers_exp full_st_name sitedat
Eliommod_persess.close_persistent_state2
~scope sitedata sessgrp k
| _ ->
- Ocsipersist.add
- (Lazy.force Eliommod_persess.persistent_cookies_table)
- k
- (full_st_name2, newexp,
- Eliom_common.TGlobal, sessgrp) >>= Lwt_unix.yield
+ Ocsipersist.add table k (full_st_name2, newexp, Eliom_common.TGlobal, sessgrp) >>= Lwt_unix.yield
else return ()
)
- (Lazy.force Eliommod_persess.persistent_cookies_table)
+ table
Index: eliom-5.0.0/src/lib/server/eliommod_sessexpl.ml
===================================================================
--- eliom-5.0.0.orig/src/lib/server/eliommod_sessexpl.ml
+++ eliom-5.0.0/src/lib/server/eliommod_sessexpl.ml
@@ -57,12 +57,12 @@ let iter_data_cookies f =
(** Iterator on persistent cookies *)
let iter_persistent_cookies f =
+ Lazy.force Eliommod_persess.persistent_cookies_table >>=
Ocsipersist.iter_table
(fun k v ->
f (k, v) >>=
Lwt_unix.yield
)
- (Lazy.force Eliommod_persess.persistent_cookies_table)
(** Iterator on service cookies *)
@@ -94,13 +94,14 @@ let fold_data_cookies f beg =
(** Iterator on persistent cookies *)
let fold_persistent_cookies f beg =
+ Lazy.force Eliommod_persess.persistent_cookies_table >>= fun table ->
Ocsipersist.fold_table
(fun k v beg ->
f (k, v) beg >>= fun res ->
Lwt_unix.yield () >>= fun () ->
return res
)
- (Lazy.force Eliommod_persess.persistent_cookies_table)
+ table
beg
(*****************************************************************************)
@@ -121,4 +122,4 @@ let number_of_table_elements () =
List.map (fun f -> f ()) !Eliommod_datasess.counttableelements
let number_of_persistent_cookies () =
- Ocsipersist.length (Lazy.force Eliommod_persess.persistent_cookies_table)
+ Lazy.force Eliommod_persess.persistent_cookies_table >>= Ocsipersist.length
Index: eliom-5.0.0/src/lib/server/eliommod_sessiongroups.ml
===================================================================
--- eliom-5.0.0.orig/src/lib/server/eliommod_sessiongroups.ml
+++ eliom-5.0.0/src/lib/server/eliommod_sessiongroups.ml
@@ -413,7 +413,7 @@ module Pers = struct
(*VVV Verify this carefully! *)
(*VVV VEOcsigen_request_infoFY concurrent access *)
- let grouptable : (nbmax * string list) Ocsipersist.table Lazy.t =
+ let grouptable : (nbmax * string list) Ocsipersist.table Lwt.t Lazy.t =
lazy (Ocsipersist.open_table "__eliom_session_group_table")
(* It is lazy because if the module is linked statically,
the creation of the table must happen after initialisation
@@ -426,7 +426,7 @@ module Pers = struct
| Some g ->
Lwt.catch
(fun () ->
- Ocsipersist.find !!grouptable
+ !!grouptable >>= fun grouptable -> Ocsipersist.find grouptable
(Eliom_common.string_of_perssessgrp g) >>= fun (_, a) ->
Lwt.return a)
(function
@@ -439,7 +439,7 @@ module Pers = struct
let sg = Eliom_common.string_of_perssessgrp sg in
Lwt.catch
(fun () ->
- Ocsipersist.find !!grouptable sg >>= fun (max2, cl) ->
+ !!grouptable >>= fun grouptable -> Ocsipersist.find grouptable sg >>= fun (max2, cl) ->
let max, newmax = match set_max with
| None -> ((match max2 with
| Default -> defaultmax
@@ -449,7 +449,7 @@ module Pers = struct
| Some (Some v) -> Some v, Val v
in
let cl, toclose = cut max cl in
- Ocsipersist.replace_if_exists !!grouptable sg (newmax, (sess_id::cl))
+ Ocsipersist.replace_if_exists grouptable sg (newmax, (sess_id::cl))
>>= fun () ->
Lwt.return toclose)
(function
@@ -459,7 +459,7 @@ module Pers = struct
| Some None -> Nolimit
| Some (Some v) -> Val v
in
- Ocsipersist.add !!grouptable sg (max, [sess_id]) >>= fun () ->
+ !!grouptable >>= fun grouptable -> Ocsipersist.add grouptable sg (max, [sess_id]) >>= fun () ->
Lwt.return []
| e -> Lwt.fail e)
| None -> Lwt.return []
@@ -502,8 +502,7 @@ module Pers = struct
belonging to the group grp *)
(* group_name is the cookie value *)
remove sitedata group_name grp >>= fun () ->
- Ocsipersist.remove
- (!!Eliom_common.persistent_cookies_table) group_name
+ !!Eliom_common.persistent_cookies_table >>= fun table -> Ocsipersist.remove table group_name
| _ -> Lwt.return ())
>>= fun () ->
@@ -511,7 +510,7 @@ module Pers = struct
match sess_grp with
| Some sg ->
let sg = Eliom_common.string_of_perssessgrp sg in
- Ocsipersist.remove !!grouptable sg
+ !!grouptable >>= fun grouptable -> Ocsipersist.remove grouptable sg
| None -> Lwt.return ()
)
(function Not_found -> Lwt.return () | e -> Lwt.fail e)
@@ -526,7 +525,7 @@ module Pers = struct
match cookie_level with
| `Client_process -> begin
(* We remove cookie info from the table *)
- Ocsipersist.remove (!!Eliom_common.persistent_cookies_table) cookie
+ !!Eliom_common.persistent_cookies_table >>= fun table -> Ocsipersist.remove table cookie
>>= fun () ->
(* We remove the session from its group: *)
@@ -555,7 +554,7 @@ module Pers = struct
let sg = Eliom_common.string_of_perssessgrp sg0 in
Lwt.catch
(fun () ->
- Ocsipersist.find !!grouptable sg >>= fun (max, cl) ->
+ !!grouptable >>= fun grouptable -> Ocsipersist.find grouptable sg >>= fun (max, cl) ->
let newcl = List.remove_first_if_any sess_id cl in
(match newcl with
| [] ->
@@ -570,8 +569,8 @@ module Pers = struct
remove_group ~cookie_level:`Session sitedata sess_grp
| _ -> Lwt.return ()
) >>= fun () ->
- Ocsipersist.remove !!grouptable sg
- | _ -> Ocsipersist.replace_if_exists !!grouptable sg (max, newcl)
+ Ocsipersist.remove grouptable sg
+ | _ -> Ocsipersist.replace_if_exists grouptable sg (max, newcl)
)
)
(function
@@ -586,9 +585,9 @@ module Pers = struct
let sg = Eliom_common.string_of_perssessgrp sg in
Lwt.catch
(fun () ->
- Ocsipersist.find !!grouptable sg >>= fun (max, cl) ->
+ !!grouptable >>= fun grouptable -> Ocsipersist.find grouptable sg >>= fun (max, cl) ->
let newcl = List.remove_first_if_any sess_id cl in
- Ocsipersist.replace_if_exists !!grouptable sg (max, sess_id::newcl)
+ Ocsipersist.replace_if_exists grouptable sg (max, sess_id::newcl)
)
(function
| Not_found -> Lwt.return ()
@@ -601,6 +600,6 @@ module Pers = struct
end
else Lwt.return []
- let nb_of_groups () = Ocsipersist.length !!grouptable
+ let nb_of_groups () = !!grouptable >>= Ocsipersist.length
end

@ -1,44 +0,0 @@
Index: eliom-5.0.0/src/lib/eliom_shared.eliom
===================================================================
--- eliom-5.0.0.orig/src/lib/eliom_shared.eliom
+++ eliom-5.0.0/src/lib/eliom_shared.eliom
@@ -288,7 +288,7 @@ module FakeReactiveData = struct
val concat : 'a t -> 'a t -> 'a t
val value : 'a t -> 'a list
val synced : 'a t -> bool
- val signal : 'a t -> 'a list FakeReact.S.t
+ val signal : ?eq:('a -> 'a -> bool) -> 'a t -> 'a list FakeReact.S.t
val singleton_s : 'a FakeReact.S.t -> 'a t
val map : ('a -> 'b) -> 'a t -> 'b t
val from_signal :
@@ -304,7 +304,7 @@ module FakeReactiveData = struct
let singleton_s s = [FakeReact.S.value s], FakeReact.S.synced s
let value (l, _) = l
let synced (_, b) = b
- let signal (l, synced) = fst (FakeReact.S.create ~synced l)
+ let signal ?eq (l, synced) = fst (FakeReact.S.create ~synced l)
let map f (l, b) = List.map f l, b
let from_signal ?eq s = FakeReact.S.(value s, synced s)
module Lwt = struct
@@ -635,7 +635,7 @@ module ReactiveData = struct
let value (s : 'a t) = {shared# 'a list {
FakeReactiveData.RList.value (Value.local %s) }}
- let signal (s : 'a t) = {shared# 'a list FakeReact.S.t {
+ let signal ?eq (s : 'a t) = {shared# 'a list FakeReact.S.t {
FakeReactiveData.RList.signal (Value.local %s) }}
let map f s = {shared# 'a FakeReactiveData.RList.t {
Index: eliom-5.0.0/src/lib/eliom_shared_sigs.shared.mli
===================================================================
--- eliom-5.0.0.orig/src/lib/eliom_shared_sigs.shared.mli
+++ eliom-5.0.0/src/lib/eliom_shared_sigs.shared.mli
@@ -143,7 +143,7 @@ module type RLIST = sig
val concat : 'a t -> 'a t -> 'a t
val value : 'a t -> 'a list Eliom_lib.shared_value
- val signal : 'a t -> 'a list signal
+ val signal : ?eq:(('a -> 'a -> bool)) -> 'a t -> 'a list signal
val singleton_s : 'a signal -> 'a t
val map : ('a -> 'b) Eliom_lib.shared_value -> 'a t -> 'b t
val from_signal :

File diff suppressed because it is too large Load Diff

@ -2,3 +2,4 @@ DIST iTeML-2.0.1.tar.gz 38387 SHA256 ae6ff9d0fcc20b8e96a44517fb3641d5193c63169aa
DIST iTeML-2.2.tar.gz 50025 SHA256 c31e5449624fc6729a362cc73efe475b2965d2e602b69b3a06fab2b38ea18b36 SHA512 78fb71a00d785f7faf0faa08c988bdfffe755dc6554437c86c80a4e56d6fb001606c78159e23acf0230286167585d136754dda68f8d7486aef64b228cc69034d WHIRLPOOL 672ce047cd901cd38671cf6f1020bf5d4c6e7cd13b3af4138ebad2015ca7db54a558cbbbdbda66d2aacfb3a1c7f709de95808b8d193b9551660f60349e3f346b
DIST iTeML-2.3.tar.gz 51077 SHA256 749bec7a7f91a0ee4e86811f70e423319181a7d4f2bfcfcb718448020d2dfdd8 SHA512 ac83c18baf9d0cb9de027881356cfffd4cb7e698598cc85badd31ebfbfe2d21ff94d35bf9ac997b08c2a4eb88eded759708f2759a11c088a63fe3c79e3db3ed4 WHIRLPOOL 71ec844e9851ecbc27afbf8d6d0f31ec73064eee7752840c458492abad6e432c2e072fe3fc695c910fc5bbadc4fa9fac8cffd5cbdfed2df82d87c837a2899d73
DIST iTeML-2.4.tar.gz 51354 SHA256 46488f19c4df8b6ec6ca638084e4f18cb647e46fa536863e0fe29fac8f12b76c SHA512 38461ec3ba68b5823d43fa6f955e17bb456dacf7aec94a3195d73db15c42cc080acfd6d2b81bc2d730f84656da3fc2755a0916512e65520326f5bcd4cdcadf64 WHIRLPOOL 0282ab98d7b011568ddfe20f0eeeda991cf5e583b10bd756aeb75031ee6c55e24c37a57796f11e03fbfd83b3bc681ebd61a2ac17decb495aa4e4805f0cf46529
DIST iTeML-2.5.tar.gz 33750 SHA256 3295853f8a17e6adb085c69bab0eddacdba11c1acc4ee2bdbae9f093239683c3 SHA512 b8a2f842f0076bdf3f30a71983f686b931ac3f7fde73ad83041dae1d33d8bca2c7695b71dcc53ef942fbdee7422e2e4d22994f69b70d54e2b4d62bc1c64395c9 WHIRLPOOL 45279bb9168fdfb6354723cd3bb950390390586a3959dd95adac54eebfabe835c1d85a77ae54f00aa36c41191e262714a86602472ad70c8e30aa289b283c3de9

@ -0,0 +1,31 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
inherit findlib
DESCRIPTION="Inline (Unit) Tests for OCaml"
HOMEPAGE="https://github.com/vincent-hugot/iTeML"
SRC_URI="https://github.com/vincent-hugot/iTeML/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-3"
SLOT="0/${PV}"
KEYWORDS="~amd64"
IUSE=""
RDEPEND="dev-ml/ounit:=
dev-lang/ocaml:=[ocamlopt]
>=dev-ml/qcheck-0.5:=
"
DEPEND="${RDEPEND}
dev-ml/ocamlbuild
"
src_install() {
findlib_src_preinst
dodir /usr/bin
emake BIN="${ED}/usr/bin/" install
dodoc README.adoc HOWTO.adoc
}

@ -1,4 +1,2 @@
DIST ocaml-containers-0.18.tar.gz 418480 SHA256 8bac90113e229a9dc55a2f54c20cf363df43c2e72ca349a5a811ad113a6d2909 SHA512 fa61039fc3bbfcd53117ae582689ffca645b42a811ebe0fc8aa5da93ba5373c2ac54896ecaddbe3eff7593b2be44f208abb625ad3354d2b089a0b811b9f77cff WHIRLPOOL 10795e812baab4525f6fdfbc101c7b14230ef87893ccf01702a6a75e373a12bf643f775f63cb27640f0dd398da541e6c185489dc27cd9fc7bd75a4a90f34baf2
DIST ocaml-containers-0.19.tar.gz 419243 SHA256 e53472e009ea2699f39940844fc0ef9abb332234834c6963f8325aa7df0694f5 SHA512 1ed078121770d72ba685c116ddeebc848b086e371604c7fedf1bdb58ea5cb9685db8a3c7c4edcac69a9cd18ece1eb601d1675c25efe6ab61e2a511a8a857aff2 WHIRLPOOL 27df23c2b0196647f071089d2044dbb7cf4b2c710bdc066eda892e8e4ffe229d5bafc2ec29b5afc4cffd0513d69d16776342258e667e62613ff2c771762ea1d5
DIST ocaml-containers-0.20.tar.gz 427546 SHA256 d5ffbf6c87bc25b914043817f02a5513fe9b0499d3d0d67b43cceb2bc38d286b SHA512 9e97d4563824a937c42fee89dc86e91ff740bdb4c444ab4ce9b31f50b272f9f400d2d71fb298294d80443002f4b511f2292cc41be15234128bdcd18dd1b1cfd4 WHIRLPOOL f1e0599504d206725a6027905803355e5a80ee936287024bd184062c3030796dd289044e2d6d301bdb104eda25a9d457f424371123f0ce5b320dff1e83463d1f
DIST ocaml-containers-0.21.tar.gz 429430 SHA256 7b3395964e527a60cfc3c96354c4ba1ebb9996e6f83399a31dd58eb053fd777b SHA512 fd339b09296245d40eac7661468147c98c45cdfc882ac890ca9a903f3a4abb21d4d13981b9784710d317ef4b3f76c3141b322df78673df2e0108d20cb633ae84 WHIRLPOOL 5cdd686f4d1b2b33ecc401b569a9321bc639b5c83866b5954585b021ecadb72e2a2b66eca778e6d5b0105f2c613d7df2cc3e20f2c1b44db622a03f7bf9068f9e
DIST ocaml-containers-0.22.tar.gz 429678 SHA256 883e64a6b2275355086521a67d5fe0e436bbf79f54c8fb068a05ab3cf3408e98 SHA512 1454f8bcd11d02a9efd2fe223e2db591d2e1d66df6877af920b4d8a2cc3a2c6b34b0979069015565618700dfb4a74d6a8f2d8cd8f9fc6fa7888331320ea41c46 WHIRLPOOL f5993d629fe2a803b1284cd5794f3345060215cf16bb97347dd2173b7015735ddcd43b98c3b5ccf365d372ffedf77892e862fbc276b24468699a95492dc784e7

@ -1,18 +0,0 @@
Index: ocaml-containers-0.18/Makefile
===================================================================
--- ocaml-containers-0.18.orig/Makefile
+++ ocaml-containers-0.18/Makefile
@@ -90,12 +90,7 @@ QTEST_PREAMBLE='open CCFun;; '
qtest-gen:
@mkdir -p qtest
- @if which qtest > /dev/null ; then \
- qtest extract --preamble $(QTEST_PREAMBLE) \
- -o qtest/run_qtest.ml \
- $(QTESTABLE) 2> /dev/null ; \
- else touch qtest/run_qtest.ml ; \
- fi
+ touch qtest/run_qtest.ml
push-stable:
git checkout stable

@ -1,33 +0,0 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
#OASIS_BUILD_TESTS=1
OASIS_BUILD_DOCS=1
inherit oasis
DESCRIPTION="A modular standard library focused on data structures"
HOMEPAGE="https://github.com/c-cube/ocaml-containers"
SRC_URI="https://github.com/c-cube/ocaml-containers/archive/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD-2"
SLOT="0/${PV}"
KEYWORDS="~amd64"
IUSE=""
RDEPEND="
dev-ml/result:=
dev-ml/sequence:=
"
DEPEND="${RDEPEND} dev-ml/cppo"
PATCHES=( "${FILESDIR}/notests.patch" )
src_configure() {
oasis_configure_opts="
--enable-unix
--disable-bench
" oasis_src_configure
}

@ -1,33 +0,0 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
#OASIS_BUILD_TESTS=1
OASIS_BUILD_DOCS=1
inherit oasis
DESCRIPTION="A modular standard library focused on data structures"
HOMEPAGE="https://github.com/c-cube/ocaml-containers"
SRC_URI="https://github.com/c-cube/ocaml-containers/archive/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD-2"
SLOT="0/${PV}"
KEYWORDS="~amd64"
IUSE=""
RDEPEND="
dev-ml/result:=
dev-ml/sequence:=
"
DEPEND="${RDEPEND} dev-ml/cppo"
PATCHES=( "${FILESDIR}/notests.patch" )
src_configure() {
oasis_configure_opts="
--enable-unix
--disable-bench
" oasis_src_configure
}

@ -0,0 +1 @@
DIST qcheck-0.5.tar.gz 101731 SHA256 930d035981b91617c7f7104228c51741d2b9116094d47ea2a8260091fd80bb3f SHA512 449a73298eacd1348058f8307af3d702007049d4516e2a86214c07968b9b77fec5fa7006bfc681ec6ae6cb8561ee9f6353649b97c698ef338576026af340d5fa WHIRLPOOL 01db048a5db094c51640514b723a752a542535243b613b7877c0095ada9dff9442a03d60e804f3a2e4fed592dda269151f4f8698e2d4a3bfda9f68cfe0bbf5eb

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>printing@gentoo.org</email>
<name>Gentoo Printing Project</name>
</maintainer>
<maintainer type="project">
<email>ml@gentoo.org</email>
<name>Gentoo ML Project</name>
</maintainer>
</pkgmetadata>

@ -0,0 +1,21 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
inherit oasis
DESCRIPTION="QuickCheck inspired property-based testing for OCaml"
HOMEPAGE="https://github.com/c-cube/qcheck/"
SRC_URI="https://github.com/c-cube/qcheck/archive/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="LGPL-2.1"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""
RDEPEND="dev-ml/ounit:=
!<dev-ml/iTeML-2.5"
DEPEND="${RDEPEND}
dev-ml/ocamlbuild"

@ -11,7 +11,7 @@ inherit eutils perl-module
DESCRIPTION="MySQL driver for the Perl5 Database Interface (DBI)"
SLOT="0"
KEYWORDS="alpha amd64 arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
KEYWORDS="alpha amd64 arm ~hppa ia64 ~mips ~ppc ~ppc64 ~s390 ~sh sparc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
# embedded=on disables ssl support
# https://metacpan.org/source/MICHIELB/DBD-mysql-4.036/dbdimp.c#L1886

@ -1,4 +1,4 @@
# Copyright 1999-2014 Gentoo Foundation
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
@ -14,7 +14,7 @@ SLOT="0"
KEYWORDS="~amd64"
IUSE=""
DEPEND=">=net-fs/samba-3.0.20[smbclient]"
DEPEND=">=net-fs/samba-4.2[client]"
RDEPEND="${DEPEND}"
# tests are not designed to work on a non-developer system.

@ -1,4 +1,4 @@
# Copyright 1999-2015 Gentoo Foundation
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
@ -12,7 +12,7 @@ DESCRIPTION="Perl encapsulation of invoking the Latex programs"
LICENSE="|| ( GPL-1+ Artistic )"
SLOT="0"
KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd"
KEYWORDS="amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd"
IUSE="test"
RDEPEND="
@ -27,5 +27,10 @@ RDEPEND="
"
DEPEND="${RDEPEND}
virtual/perl-ExtUtils-MakeMaker
test? (
app-text/texlive
dev-texlive/texlive-latexextra
)
"
SRC_TEST="do"

@ -12,7 +12,7 @@ DESCRIPTION="Encode characters for LaTeX formatting"
LICENSE="|| ( GPL-1+ Artistic )"
SLOT="0"
KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd"
KEYWORDS="amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd"
IUSE="test"
RDEPEND="

@ -12,7 +12,7 @@ DESCRIPTION="Perl extension for the automatic generation of LaTeX tables"
LICENSE="|| ( GPL-1+ Artistic )"
SLOT="0"
KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd"
KEYWORDS="amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd"
IUSE="test"
RDEPEND="

@ -11,7 +11,7 @@ inherit perl-module
DESCRIPTION="Modules to streamline Nagios, Icinga, Shinken, etc. plugins"
SLOT="0"
KEYWORDS="~amd64 ~hppa ~x86"
KEYWORDS="amd64 ~hppa ~x86"
IUSE="test"
RDEPEND="

@ -12,7 +12,7 @@ DESCRIPTION="Name your accessors get_foo() and set_foo(), whatever that may mean
LICENSE="Artistic-2"
SLOT="0"
KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd"
KEYWORDS="amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd"
IUSE=""
RDEPEND="

@ -12,7 +12,7 @@ inherit perl-module
DESCRIPTION="Internationalizing Domain Names in Applications (IDNA)"
SLOT="0"
KEYWORDS="~amd64 ~x86"
KEYWORDS="amd64 ~x86"
IUSE="test"
RDEPEND="

@ -12,7 +12,7 @@ DESCRIPTION="Convert Pod data to formatted LaTeX"
LICENSE="|| ( GPL-1+ Artistic )"
SLOT="0"
KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd"
KEYWORDS="amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd"
IUSE=""
RDEPEND="

@ -10,7 +10,7 @@ inherit perl-module
DESCRIPTION="Convert POD to Markdown"
SLOT="0"
KEYWORDS="~amd64 ~x86"
KEYWORDS="amd64 ~x86"
IUSE="test minimal"
RDEPEND="

@ -11,7 +11,7 @@ inherit perl-module
DESCRIPTION="Intelligently generate a README file from POD"
SLOT="0"
KEYWORDS="~amd64 ~x86"
KEYWORDS="amd64 ~x86"
IUSE="minimal test"
RDEPEND="

@ -10,7 +10,7 @@ inherit perl-module
DESCRIPTION="format Pod as LaTeX"
SLOT="0"
KEYWORDS="~amd64 ~x86"
KEYWORDS="amd64 ~x86"
IUSE="test"
RDEPEND="

@ -12,7 +12,7 @@ DESCRIPTION="Perl interface for cyclic redundancy check generation"
LICENSE="public-domain"
SLOT="0"
KEYWORDS="alpha amd64 arm ~hppa ~ia64 ~mips ppc ~ppc64 ~s390 ~sh ~sparc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
KEYWORDS="alpha amd64 arm ~hppa ia64 ~mips ppc ~ppc64 ~s390 ~sh sparc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
IUSE=""
SRC_TEST=do

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save