Sync with portage [Wed Oct 4 09:36:55 MSK 2017].

mhiretskiy 978
root 7 years ago
parent 0f43c98eae
commit 5d3c11013b

@ -1,2 +1,3 @@
DIST keepassxc-2.1.4.tar.gz 3345520 SHA256 40a990dbcf442eb3cad99452b58ffd36e5855b39e78f213ea20e99fbc7876701 SHA512 48030eb6df595c73644f43d6222654c5f76962ae5aa2f44ca4dc9c8e45726380c6be4300af7a8279b07c06b70912da444f2b17c5b6c37a91cb239d695e7518d8 WHIRLPOOL da2bdac3e334b48903c6b20532ea4a0af0fe057e10e702ba6a4221e828b8f416d666ff67407b434d38b4cbbe5119d3c8a49927e4d5092f4f62ab49e30981017c
DIST keepassxc-2.2.0.tar.gz 3814252 SHA256 9d9d39b9c056955fe5d7a5212efe1703be02fa4731c36e2b1e06a78174b0a7b8 SHA512 e23968c259afade81c8dcf0786ed68ca77ca8e9726dffb12e1017f2f60afb29b60ec1b71450ce7e284d543bcaa72bbc79bec917dea852d5bb923dff7fc6edcb5 WHIRLPOOL a993068922d8fd0bd1b06d434fff7340160c30992a166f15d9692d83e4a985939b88d20fce2b0425d3bab00de0e2ffce6fd2d34ff0bd92d08d95747ae03c9df9
DIST keepassxc-2.2.1.tar.gz 3880551 SHA256 184663e8b08e081dedf4c9dbdd68bf86ed0f5e32388b4781b7afcf89ef5c8e4d SHA512 bce2a0d6d3ad32bb507afac22670b34c37f5e36de6a30bb7c9b5a523c12bad59d95a414b90608451660fb9ce224279c7658e1892f2b99c673908449cc86e5595 WHIRLPOOL 32a0ede5c150bc4fc54c1b0a8f3c46110a19349d732913bdc9f3bc6492c1998569b2cd7a178ec9bb11e5b8dc9698138d8a7f26000211377a0c90f505605fe54c

@ -0,0 +1,65 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
SCM=""
[[ "${PV}" == 9999 ]] && SCM="git-r3"
inherit cmake-utils ${SCM}
unset SCM
DESCRIPTION="KeePassXC - KeePass Cross-platform Community Edition"
HOMEPAGE="https://github.com/keepassxreboot/keepassxc"
if [[ "${PV}" != 9999 ]] ; then
SRC_URI="https://github.com/keepassxreboot/keepassxc/archive/${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64 ~x86"
else
EGIT_REPO_URI="https://github.com/keepassxreboot/${PN}"
fi
LICENSE="LGPL-2.1 GPL-2 GPL-3"
SLOT="0"
IUSE="autotype debug http test yubikey"
RDEPEND="
dev-libs/libgcrypt:=
dev-qt/qtcore:5
dev-qt/qtdbus:5
dev-qt/qtgui:5
dev-qt/qtnetwork:5
dev-qt/qtwidgets:5
sys-libs/zlib
autotype? (
dev-qt/qtx11extras:5
x11-libs/libX11
x11-libs/libXi
x11-libs/libXtst
)
yubikey? ( sys-auth/ykpers )
"
DEPEND="
${RDEPEND}
dev-qt/linguist-tools:5
dev-qt/qtconcurrent:5
test? ( dev-qt/qttest:5 )
"
src_prepare() {
use test || \
sed -e "/^find_package(Qt5Test/d" -i CMakeLists.txt || die
cmake-utils_src_prepare
}
src_configure() {
local mycmakeargs=(
-DWITH_GUI_TESTS=OFF
-DWITH_TESTS="$(usex test)"
-DWITH_XC_AUTOTYPE="$(usex autotype)"
-DWITH_XC_HTTP="$(usex http)"
-DWITH_XC_YUBIKEY="$(usex yubikey)"
)
cmake-utils_src_configure
}

@ -10,7 +10,7 @@ SRC_URI="http://mmonit.com/monit/dist/${P}.tar.gz"
LICENSE="AGPL-3"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-linux"
KEYWORDS="~amd64 ppc ~ppc64 ~x86 ~amd64-linux"
IUSE="libressl pam ssl"
RDEPEND="

@ -1,4 +1,3 @@
DIST restic-0.4.0.tar.gz 22926188 SHA256 746dbc7b73f5a542be57b71714b243266a011f1d750f56f5100c08a59df1aeac SHA512 ccd15f010f8da3bae3d33698e70ff1d9565f52fb56991b78d35f95493417a4ab050021153d81c424947233255d9553d050f7a66e1c709843fe3b2d323a81f85b WHIRLPOOL 94e6b9ed777a86cb6e46cf734b9280e68cc2ce1ea061c8a94409dca594add1ec24fb736a56e35571302ff5043a60bef7f60ff3b39b038ee128bc815f7d3d48cd
DIST restic-0.5.0.tar.gz 22937327 SHA256 a8e99087478a076b8a9c7c74d37cd23a56224d8c9b242c171756784ade024fda SHA512 571e4b0aa92a6cd9320f48c46a4b2190576d9328169d54762747dfa024ab280fb41ee377b59f0114d89ebd50bc54488a8cb5e2b36c57959202e848394107bb3c WHIRLPOOL 19fef25a6e2dff3145a6700abb581e7cae3abe5522ee0197f56a572d499824e84ba25a3111c5e71856ffac18d75622766c74c585a44b6db489468050e1c8d59a
DIST restic-0.6.1.tar.gz 25231223 SHA256 7cd709c592a5978723673397d7d13c37c0977e20c43db253d0c274b53a55654a SHA512 8c899ca8b6e3dfa399fe5c4306f72a1bcfa869dd667d27f3f88efa26aaa1000959bf91b515911b2ef7b2d4c5bb3e2ed4f202c87add7766d2147b7d40f0757a9a WHIRLPOOL 39225876fd6ce9e4ddac765688238ab5ea430272aacc6e96d54c359de939d2e69cdc45a5571cb63777c258a74b5a9bfbd6114d2463004b242b009856d87b6e2e
DIST restic-0.7.1.tar.gz 25438170 SHA256 81efde662c34225b5705f3d72daa1f6278455c2b8f786224d7a1ecca0b14efca SHA512 3b887149c801fe81f9bf65e0ae4a17ba97f66c0133f45b3f5526d79d580f072e0e5fd89cd78a5018992dc42e6dafb9385139f4336fe6f06d57d8abe7a9e323b1 WHIRLPOOL bbdeafadd7b329147b7ea30b13d806d20de76e8efcc1ace4eea74420aa39f6d7a8f5eb186169d2a053988d07d44063ca71c54287aa07c4cd4cdc906a07b80dc7
DIST restic-0.7.3.tar.gz 37062625 SHA256 6d795a5f052b3a8cb8e7571629da14f00e92035b7174eb20e32fd1440f68aaff SHA512 2d44b4fc363c7f6389c1f06469cf30ebeff4d6ade0bd4fcae1d7d9def3922936b45043b04f4072284b773df2c6487c58db6aea41c7de5c8184ca33ca3c44d44a WHIRLPOOL dde430e4d718928b01da0f1558fd8a7bf65a0d9e3a4a620cc7557e6afd4760a8dc6c1a9d7c744649cb817b99fb22ee2e2f893d5fd49fa961d5ab6b8bb02941b0

@ -1,42 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
DESCRIPTION="restic is a backup program that is fast, efficient and secure"
HOMEPAGE="https://restic.github.io/"
SRC_URI="https://github.com/restic/restic/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="test"
DOCS=( README.md CONTRIBUTING.md doc/Design.md doc/FAQ.md doc/index.md doc/Manual.md doc/REST_backend.md )
DEPEND="dev-lang/go
test? ( sys-fs/fuse:0 )"
RDEPEND="sys-fs/fuse:0"
src_compile() {
local mygoargs=(
-v
-work
-x
-tags release
-ldflags "-w -X main.version=${PV}"
-o "${S}"/restic cmds/restic
)
GOPATH="${S}:${S}/vendor" go build "${mygoargs[@]}" || die
}
src_test() {
GOPATH="${S}:${S}/vendor" go test -v -work -x restic/... cmds/... || die
}
src_install() {
dobin restic
einstalldocs
}

@ -1,42 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
DESCRIPTION="restic is a backup program that is fast, efficient and secure"
HOMEPAGE="https://restic.github.io/"
SRC_URI="https://github.com/restic/restic/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="test"
DOCS=( README.md CONTRIBUTING.md doc/Design.md doc/FAQ.md doc/index.md doc/Manual.md doc/REST_backend.md )
DEPEND="dev-lang/go
test? ( sys-fs/fuse )"
RDEPEND="sys-fs/fuse:0"
src_compile() {
local mygoargs=(
-v
-work
-x
-tags release
-ldflags "-w -X main.version=${PV}"
-o "${S}"/restic cmds/restic
)
GOPATH="${S}:${S}/vendor" go build "${mygoargs[@]}" || die
}
src_test() {
GOPATH="${S}:${S}/vendor" go test -v -work -x restic/... cmds/... || die
}
src_install() {
dobin restic
einstalldocs
}

@ -0,0 +1,62 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit golang-vcs-snapshot
DESCRIPTION="A backup program that is fast, efficient and secure"
HOMEPAGE="https://restic.github.io/"
SRC_URI="https://github.com/restic/restic/archive/v${PV}.tar.gz -> ${P}.tar.gz"
EGO_PN="github.com/restic/restic"
LICENSE="BSD-2"
SLOT="0"
KEYWORDS="~amd64 ~arm ~x86"
IUSE="test"
DOCS=(
README.rst CONTRIBUTING.md doc/design.rst
doc/faq.rst doc/index.rst doc/manual.rst
doc/rest_backend.rst doc/development.rst
doc/talks.rst doc/tutorial_aws_s3.rst doc/installation.rst
)
DEPEND="
dev-lang/go
test? ( sys-fs/fuse:0 )"
RDEPEND="sys-fs/fuse:0"
S="${WORKDIR}/${P}/src/${EGO_PN}"
src_compile() {
local mygoargs=(
-v
-work
-x
-tags release
-ldflags "-s -w -X main.version=${PV}"
-asmflags "-trimpath=${S}"
-gcflags "-trimpath=${S}"
-o restic ${EGO_PN}/cmd/restic
)
GOPATH="${WORKDIR}/${P}:$(get_golibdir_gopath)" \
go build "${mygoargs[@]}" || die
}
src_test() {
GOPATH="${WORKDIR}/${P}:$(get_golibdir_gopath)" \
go test -timeout 30m -v -work -x ${EGO_PN}/cmd/... ${EGO_PN}/internal/... || die
}
src_install() {
dobin restic
einstalldocs
local i
for i in doc/man/*; do
doman "$i"
done
}

@ -9,7 +9,7 @@ SRC_URI="http://www.coker.com.au/bonnie++/experimental/${P}.tgz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~hppa ia64 ~mips ppc ~ppc64 ~sparc ~x86"
KEYWORDS="~alpha ~amd64 ~arm ~hppa ia64 ~mips ppc ppc64 ~sparc ~x86"
IUSE="debug"
S="${WORKDIR}/${P}"

@ -1 +0,0 @@
DIST jakarta-jmeter-2.0.1_src.tgz 5368483 SHA256 8dc7b0ff680af721adeeab198f7dc99f5e376df04c2504291564cfaccdcf5f36 SHA512 221a9d1ed19407ab0b863443827f8b6d7f179ef27227defc3c71ab4ccb5981bbb82f239206993590500a9adf2444cdcefb219dcb28afe6488659a2be19374b08 WHIRLPOOL 07a980e7f46da636d760a0c62ba42de653fda3417cc2442fc34d5e13b46291b3a3f0c49fd05a93bdebb7d8968c5a77e643a59094fdf619d0dc24e048a9e5f762

@ -1,59 +0,0 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
inherit java-pkg-2 java-ant-2
DESCRIPTION="Load test and measure performance on HTTP/FTP services and databases"
HOMEPAGE="http://jmeter.apache.org/"
SRC_URI="mirror://apache/jakarta/jmeter/source/jakarta-${P}_src.tgz"
COMMON_DEP="
beanshell? ( dev-java/bsh )
>=dev-java/bsf-2.3
=dev-java/junit-3.8*
java-virtuals/javamail"
DEPEND=">=virtual/jdk-1.4
doc? ( >=dev-java/velocity-1.4 )
dev-java/ant-nodeps
sys-apps/sed
${COMMON_DEP}"
RDEPEND=">=virtual/jre-1.4
${COMMON_DEP}"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE="beanshell doc"
S=${WORKDIR}/jakarta-${P}
src_unpack() {
unpack ${A}
cd "${S}"
sed -i -e 's/%//g' bin/jmeter || die "Unable to sed."
cd "${S}/lib"
# FIXME replace all bundled jars bug #63309
# then rm -f *.jar
use beanshell && java-pkg_jar-from bsh
java-pkg_jar-from bsf-2.3
java-pkg_jar-from junit
java-pkg_jar-from --virtual javamail
java-pkg_filter-compiler jikes
}
src_compile() {
local tasks="ant-nodeps"
use doc && tasks="${tasks} velocity"
ANT_TASKS="${tasks}" eant package $(use_doc docs-all) || die "compile problem"
}
src_install() {
diropts --mode=0775
dodir /opt/${PN}
local dest="${D}/opt/${PN}/"
cp -pPR bin/ lib/ printable_docs/ "${dest}"
if use doc; then
cp -pPR printable_docs "${dest}" || die "Failed to install docs"
fi
dodoc README || die
use doc && dohtml -r docs/*
}

@ -1,71 +0,0 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
JAVA_PKG_IUSE="doc source examples"
inherit java-pkg-2 java-ant-2
DESCRIPTION="Load test and measure performance on HTTP/FTP services and databases"
HOMEPAGE="http://jmeter.apache.org/"
SRC_URI="mirror://apache/jakarta/jmeter/source/jakarta-${P}_src.tgz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="beanshell"
COMMON_DEP="
beanshell? ( dev-java/bsh )
>=dev-java/bsf-2.3
=dev-java/junit-3.8*
java-virtuals/javamail"
DEPEND=">=virtual/jdk-1.4
doc? ( >=dev-java/velocity-1.4 )
dev-java/ant-nodeps
sys-apps/sed
${COMMON_DEP}"
RDEPEND=">=virtual/jre-1.4
${COMMON_DEP}"
S=${WORKDIR}/jakarta-${P}
java_prepare() {
sed -i -e 's/%//g' bin/jmeter || die "Unable to sed."
cd "${S}/lib" || die
# FIXME replace all bundled jars bug #63309
# then rm -f *.jar
use beanshell && java-pkg_jar-from bsh
java-pkg_jar-from bsf-2.3
java-pkg_jar-from junit
java-pkg_jar-from --virtual javamail
java-pkg_filter-compiler jikes
find "${S}"/src -name "*.java" | xargs sed -i -e 's:\benum\b:enumx:g' || die # fix for bug #514662
}
src_compile() {
local tasks="ant-nodeps"
use doc && tasks="${tasks} velocity"
ANT_TASKS="${tasks}" eant package $(use_doc docs-all) || die "compile problem"
}
src_install() {
diropts --mode=0775
dodir /opt/${PN}
local dest="${D}/opt/${PN}/"
cp -pPR bin/ lib/ "${dest}" || die
if use doc; then
cp -pPR printable_docs "${dest}" || die "Failed to install docs"
fi
dodoc README
echo "PATH=\"/opt/${PN}/bin\"" > "${T}/90${PN}" || die
doenvd "${T}/90${PN}" || die "failed to install env.d file"
use doc && dohtml -r docs/*
use source && java-pkg_dosrc src/*
use examples && java-pkg_doexamples xdocs/demos/*
}

@ -1,77 +0,0 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
JAVA_PKG_IUSE="doc source examples"
inherit java-pkg-2 java-ant-2
DESCRIPTION="Load test and measure performance on HTTP/FTP services and databases"
HOMEPAGE="http://jmeter.apache.org/"
SRC_URI="mirror://apache/jakarta/jmeter/source/jakarta-${P}_src.tgz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE="beanshell"
CDEPEND="
beanshell? (
dev-java/bsh:0
)
dev-java/bsf:2.3
dev-java/junit:0
dev-java/oracle-javamail:0"
DEPEND="virtual/jdk:1.7
doc? (
dev-java/velocity:0
)
dev-java/ant-nodeps
sys-apps/sed
${CDEPEND}"
RDEPEND="virtual/jre:1.7
${CDEPEND}"
JAVA_ANT_ENCODING="ISO-8859-1"
S=${WORKDIR}/jakarta-${P}
java_prepare() {
sed -i -e 's/%//g' bin/jmeter || die "Unable to sed."
cd "${S}/lib" || die
# FIXME replace all bundled jars bug #63309
# then rm -f *.jar
use beanshell && java-pkg_jar-from bsh
java-pkg_jar-from bsf-2.3
java-pkg_jar-from junit
java-pkg_jar-from oracle-javamail
java-pkg_filter-compiler jikes
find "${S}"/src -name "*.java" | xargs sed -i -e 's:\benum\b:enumx:g' || die # fix for bug #514662
}
src_compile() {
local tasks="ant-nodeps"
use doc && tasks="${tasks} velocity"
ANT_TASKS="${tasks}" eant package $(use_doc docs-all) || die "compile problem"
}
src_install() {
diropts --mode=0775
dodir /opt/${PN}
local dest="${D}/opt/${PN}/"
cp -pPR bin/ lib/ "${dest}" || die
if use doc; then
cp -pPR printable_docs "${dest}" || die "Failed to install docs"
fi
dodoc README
echo "PATH=\"/opt/${PN}/bin\"" > "${T}/90${PN}" || die
doenvd "${T}/90${PN}" || die "failed to install env.d file"
use doc && dohtml -r docs/*
use source && java-pkg_dosrc src/*
use examples && java-pkg_doexamples xdocs/demos/*
}

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>java@gentoo.org</email>
<name>Java</name>
</maintainer>
<use>
<flag name="beanshell">Enable BeanShell scripting support</flag>
</use>
</pkgmetadata>

@ -8,7 +8,7 @@ inherit elisp
DESCRIPTION="Basic edit toolkit"
HOMEPAGE="https://www.emacswiki.org/emacs/basic-toolkit.el"
# taken from https://www.emacswiki.org/emacs/download/basic-toolkit.el
SRC_URI="https://enise.org/users/victor/share/distfiles/${P}.el.xz"
SRC_URI="https://github.com/gavv/distfiles/raw/master/${P}.el.xz"
LICENSE="GPL-3+"
SLOT="0"

@ -1,4 +1,4 @@
# Copyright 1999-2016 Gentoo Foundation
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@ -8,7 +8,7 @@ inherit elisp
DESCRIPTION="Some enhanced functions for buffer manipulate"
HOMEPAGE="http://www.emacswiki.org/emacs/buffer-extension.el"
# taken from https://www.emacswiki.org/emacs/download/buffer-extension.el
SRC_URI="https://enise.org/users/victor/share/distfiles/${P}.el.xz"
SRC_URI="https://github.com/gavv/distfiles/raw/master/${P}.el.xz"
LICENSE="GPL-3+"
SLOT="0"

@ -1,4 +1,4 @@
# Copyright 1999-2016 Gentoo Foundation
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@ -8,7 +8,7 @@ inherit elisp
DESCRIPTION="Select buffer by cycling through"
HOMEPAGE="http://www.emacswiki.org/emacs/cycle-buffer.el"
# taken from https://www.emacswiki.org/emacs/download/cycle-buffer.el
SRC_URI="https://enise.org/users/victor/share/distfiles/${P}.el.xz"
SRC_URI="https://github.com/gavv/distfiles/raw/master/${P}.el.xz"
LICENSE="public-domain"
SLOT="0"

@ -1,4 +1,4 @@
# Copyright 1999-2016 Gentoo Foundation
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@ -8,7 +8,7 @@ inherit elisp
DESCRIPTION="Resume Emacs"
HOMEPAGE="http://www.gentei.org/~yuuji/software/"
# taken from http://www.gentei.org/~yuuji/software/euc/revive.el
SRC_URI="https://enise.org/users/victor/share/distfiles/${P}.el.xz"
SRC_URI="https://github.com/gavv/distfiles/raw/master/${P}.el.xz"
LICENSE="yuuji"
SLOT="0"

@ -1,4 +1,4 @@
# Copyright 1999-2016 Gentoo Foundation
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@ -8,7 +8,7 @@ inherit elisp
DESCRIPTION="Window manager for GNU Emacs"
HOMEPAGE="http://www.gentei.org/~yuuji/software/"
# taken from http://www.gentei.org/~yuuji/software/euc/windows.el
SRC_URI="https://enise.org/users/victor/share/distfiles/${P}.el.xz"
SRC_URI="https://github.com/gavv/distfiles/raw/master/${P}.el.xz"
LICENSE="yuuji"
SLOT="0"

@ -1,36 +0,0 @@
From 9714f6b87e19b32d3a6663a20df6610265c4bfe5 Mon Sep 17 00:00:00 2001
From: Juergen Gross <jgross@suse.com>
Date: Wed, 28 Sep 2016 06:02:44 +0200
Subject: [PATCH] pvgrub: fix crash when booting kernel with p2m list outside
kernel mapping
When trying to boot a kernel with the p2m list not mapped by the
initial kernel mapping it can happen that pvgrub is failing as it is
keeping some page tables mapped.
Unmap the additional page tables created for the special p2m mapping
will avoid this failure.
Reported-by: Sven Koehler <sven.koehler@gmail.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
---
stubdom/grub/kexec.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/stubdom/grub/kexec.c b/stubdom/grub/kexec.c
index 8fd9ff9..71c2f3f 100644
--- a/stubdom/grub/kexec.c
+++ b/stubdom/grub/kexec.c
@@ -347,6 +347,8 @@ void kexec(void *kernel, long kernel_size, void *module, long module_size, char
/* Unmap libxc's projection of the boot page table */
seg = xc_dom_seg_to_ptr(dom, &dom->pgtables_seg);
munmap(seg, dom->pgtables_seg.vend - dom->pgtables_seg.vstart);
+ seg = xc_dom_seg_to_ptr(dom, &dom->p2m_seg);
+ munmap(seg, dom->p2m_seg.vend - dom->p2m_seg.vstart);
/* Unmap day0 pages to avoid having a r/w mapping of the future page table */
for (pfn = 0; pfn < allocated; pfn++)
--
2.10.0

@ -11,7 +11,7 @@ SRC_URI="https://dev.gentoo.org/~yngwin/distfiles/${P}.tar.xz"
LICENSE="LGPL-2.1 CDDL"
SLOT="0/1"
KEYWORDS="amd64 ~ppc ~ppc64 ~x86"
KEYWORDS="amd64 ~ppc ppc64 ~x86"
IUSE=""
RDEPEND="dev-db/sqlite:3"

@ -1,8 +1,7 @@
DIST khal-0.8.1.tar.gz 125681 SHA256 9d352e4aa6256e493d5aea69540f642158bdcab75d2383e1e43506bf89982094 SHA512 01b24b7fb041a78443eb1ede80797ca689c2141bf6bb6b171f49931de7440055c38efc4611c483fe85da90794d074e4d08224ce633878ca2f7b8d66799391033 WHIRLPOOL cbcff5dec339ea97ee7bc83860b4f0c0f75801553e191d5856d30758c95936b2a156cea09ae9bd5a2ea96a3914b454f84ce0123970d1d74693be75caa23cbd27
DIST khal-0.8.3.tar.gz 126656 SHA256 1ec6940a9fbd207c41428b103bac1d1555129b9b4eca2b843c544bd48ac63ee3 SHA512 f49e57a6cc9abfcf8dbc5811c2fe00661fd09a8a6d1a64bae4df5ce9c1d01c6f325adeef68a7b45eed3a34bd797b801c00fcd8fa4fdf378335d5273629f0a165 WHIRLPOOL 20963f12d9419f2421680548a6de22261e4d9c4482f6a28937b4339335b5a4965178bae0624cc5172da98c534603d3cd0ed5337e03c04190195a478b34b4a34f
DIST khal-0.8.4.tar.gz 129251 SHA256 2e5c41eadf83c8f175dc05816571e747da921b025e4acc6b287c109b6e237e0f SHA512 8a1066f137db1b3a9c2cc246ea17baf6745efd3db9dadacb76b287546137da363bcd78a4ac2acd2c659fbf25f16b155cc993099067a736ef3b68b2e8512d7b83 WHIRLPOOL 094c9ec2a0343d557ba70956239d5fa719d9fd08c7038d542b173f18ebce30b11761ac2e09780381fb55a9942cb885fd63b46d6c32573c94ed52990f34841e7b
DIST khal-0.9.0.tar.gz 158220 SHA256 b9aa992a8ed1a5d816eeeff79256ad7edea591acdf16ae30e65bfdc3adef0f8d SHA512 f457d6cbd323f65c2185776b8c8ed67268820ee4c06c845f3640dfc085a5528b19c855ada670d397a74d6c0785b7abeb90247528cbc826b39b51284917577acd WHIRLPOOL 4f003e39735917a7dec13f4aaffb851755e0d1f2c2d007111a4766622dfc900cece0c0dd38d5735d145ba36855639c08d1db3c3a7e5e9da5d428e23c469fc600
DIST khal-0.9.3.tar.gz 165182 SHA256 d4d748ae09fd0069124bf28ca61db1b1fbc3e8e95e2f23e597e28e2e38336ac7 SHA512 38f9c059eb8ebaacd40d4d5e276f8e42ea0bcc5237b46647974601458fc8576ec8920873cc90c002a8e101b2383028d60a2e74dbfb601acd9c0770ada2c63b65 WHIRLPOOL 8461b39508fb3b5bd2a0532dd71507334852b71492688f0dabcf76b9d70cf8f29e831a36d38028340c1fa1853dda4c1eda706559e8ee6dfb9ecdc112363b5002
DIST khal-0.9.4.tar.gz 169530 SHA256 21aa1ac464383a515be9f18d6b06413d17116ef9353d5349211c540c4bd7996e SHA512 a17643dc998b3414bb62d2fd2fd42a364dd5344eeb54be9cb310df8da952e06add41669d65d61b550385bc94bccff4382fca78e4cdcf71a202b8abe5c394d394 WHIRLPOOL 4ca55e0b5cdde8cde0b85d45b1b3936bd3f0b39bce127d9d59e2c442b37d93a520b83b523506579f4ebbccacd6bc26698ab4cd2de9330e872ed01c006f54d47a
DIST khal-0.9.5.tar.gz 170011 SHA256 b945894cb4ededa6711989814bd4866815f322aa25dff581d808a7eae5047b3b SHA512 8dae0989a7351a4148e9f6e52e8b69d1b46c7e5465233d5e389db5a20c9da6349da11f0119df7536b01c620a30cb43805cfcedaa32d563a592a337b0faf56946 WHIRLPOOL c98a2a7e7c03654c3b2bac0ba80104b61b8ef1ae8db6e41c8662a75470b7044d9ccfe6a01c702e65b79db645583793deed4fa4f6e65297f0b9079477159d6eb8
DIST khal-0.9.6.tar.gz 169539 SHA256 6ec7ce0202764839521f47805e10ac1f54e9adfae3f82e7c1e67ad88eefd6772 SHA512 3d8299d714fcf64d4790d270238acfc9250bfabce2182f49922e51004bce33509853ed6889e9eb694ee2f8f3357b1a175b2cec29ec135cf7fc8bacf237bbcc11 WHIRLPOOL 0bce1dca6f0a7fab0cd0399a9bbd020d8c77d30991181ba6856a46905295e6d68889149c171bfebd7c119a490a7154a3bc13820e072d754b7e0f65c83c523f75
DIST khal-0.9.7.tar.gz 173401 SHA256 bbdacd99e725a21e35c5baf335261bf40528735bda6499c509ebbde39c303774 SHA512 24fd1ee472971f029f998b061da719a0dfe4ee9584a5ea237b6cf0c886b5c45d7a7ee4bf9c23c41eb0dd0c5eba0bcabed7a5f05ae486a890150429031e215180 WHIRLPOOL 7fa7125c169bc45ea4a9d638fd916698c9f4a7b792c8695020e7b82c593b8af3583546c11fb519cd3cd470caeaf21bda59ee9782e7d4bbb74e6710a7b0e63009

@ -1,43 +0,0 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI="6"
PYTHON_COMPAT=( python3_4 )
PYTHON_REQ_USE="sqlite"
inherit distutils-r1
DESCRIPTION="A CalDAV based calendar"
HOMEPAGE="http://lostpackets.de/khal/"
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="MIT"
KEYWORDS="~amd64 ~x86"
SLOT="0"
IUSE="zsh-completion"
RDEPEND=">=dev-python/click-3.2[${PYTHON_USEDEP}]
dev-python/icalendar[${PYTHON_USEDEP}]
dev-python/urwid[${PYTHON_USEDEP}]
dev-python/pyxdg[${PYTHON_USEDEP}]
dev-python/pytz[${PYTHON_USEDEP}]
>=dev-python/vdirsyncer-0.5.2[${PYTHON_USEDEP}]
dev-python/pkginfo[${PYTHON_USEDEP}]
dev-python/python-dateutil[${PYTHON_USEDEP}]
dev-python/configobj[${PYTHON_USEDEP}]
dev-python/tzlocal[${PYTHON_USEDEP}]
dev-python/setproctitle[${PYTHON_USEDEP}]
zsh-completion? ( app-shells/zsh )"
DEPEND="dev-python/setuptools_scm[${PYTHON_USEDEP}]"
DOCS=( AUTHORS.txt CHANGELOG.rst CONTRIBUTING.txt README.rst khal.conf.sample )
src_install() {
distutils-r1_src_install
if use zsh-completion; then
insinto /usr/share/zsh/site-functions
doins misc/__khal
fi
}

@ -1,9 +1,9 @@
# Copyright 1999-2016 Gentoo Foundation
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI="6"
PYTHON_COMPAT=( python3_4 )
PYTHON_COMPAT=( python3_{4,5,6} )
PYTHON_REQ_USE="sqlite"
inherit distutils-r1
@ -18,21 +18,22 @@ SLOT="0"
IUSE="zsh-completion"
RDEPEND=">=dev-python/click-3.2[${PYTHON_USEDEP}]
>=dev-python/click-log-0.1.3[${PYTHON_USEDEP}]
dev-python/icalendar[${PYTHON_USEDEP}]
dev-python/urwid[${PYTHON_USEDEP}]
dev-python/pyxdg[${PYTHON_USEDEP}]
dev-python/pytz[${PYTHON_USEDEP}]
dev-python/vdirsyncer[${PYTHON_USEDEP}]
dev-python/pkginfo[${PYTHON_USEDEP}]
dev-python/python-dateutil[${PYTHON_USEDEP}]
dev-python/configobj[${PYTHON_USEDEP}]
>=dev-python/atomicwrites-0.1.7[${PYTHON_USEDEP}]
>=dev-python/tzlocal-1.0[${PYTHON_USEDEP}]
dev-python/setproctitle[${PYTHON_USEDEP}]
zsh-completion? ( app-shells/zsh )"
DEPEND="dev-python/setuptools_scm[${PYTHON_USEDEP}]"
DEPEND=">dev-python/setuptools_scm-1.12.0[${PYTHON_USEDEP}]
dev-python/freezegun"
DOCS=( AUTHORS.txt CHANGELOG.rst CONTRIBUTING.txt README.rst khal.conf.sample )
DOCS=( AUTHORS.txt CHANGELOG.rst CONTRIBUTING.rst README.rst khal.conf.sample )
src_install() {
distutils-r1_src_install

@ -1,2 +1,3 @@
DIST pdfpc-3.1.1.tgz 199004 SHA256 ec5ffb9c2b55d1bac76172a6a13ed527ceed8cf0d659aca5e302f6a7185f00f2 SHA512 554203094b18fe11fd085414961de6644df3c258ad52d46ad171cfd6c2199028bcbaa9560bdaba63d83f858b467407cc276972b34f341cc25260db1d1358e88d WHIRLPOOL bddcba6a4285ea2b58dd01f76b7b050db630eaa97de5bba32a66f7f85563e6a99763a52e82286297f605dfa59d9ff918007baab297e587968ac1c83e3d69e8a8
DIST pdfpc-4.0.7.tar.gz 83626 SHA256 25d5aa2cce344f1554f1f45a7c1f636576587cfd553d75d704e0c95ae3b2a503 SHA512 557e2a24e7aa4b0a7bc413517d6b274c7bad91f5e9d24ec139d0e62c490712081344448bfbedc82a90d28cd9b5910a6f51863aa44dc1c7a61ada6d154780444c WHIRLPOOL f5018d7ba64bea17923c9e3f2e5b6e7e3bc950ffea02a53c93d63057590f1538371fe6b11383d6fbfb4c32d04887f75d1e01f6b24c4b9fc43ac1aacf9be075cd
DIST pdfpc-4.0.8.tar.gz 91138 SHA256 c04539398176b0911ec7216c48a04d90d7c893aa5b16cfdef8ea861885991066 SHA512 f077f08f2ee997d55b4e4ced31ec6f21791353871104fff9ece264455a18e30ba365933b15b6b596817f3e6f3f0a181f4fecf19180b8a4337f3752d3aebec7d7 WHIRLPOOL 901f46b831162c88d510754288feb7851e5b3f31af618b7e0b91f884b980bb72ac1de897878bc07db72b6b5d6fa15f108404e835778a0c3615e06a94451567b5

@ -0,0 +1,43 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
VALA_MIN_API_VERSION="0.26"
VALA_MAX_API_VERSION="0.36" # fix sed line if you increase this
inherit vala cmake-utils
DESCRIPTION="Presenter console with multi-monitor support for PDF files"
HOMEPAGE="http://pdfpc.github.io"
SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="gstreamer"
RDEPEND="app-text/poppler:=[cairo]
dev-libs/glib:2
dev-libs/libgee:0.8
gnome-base/librsvg
gstreamer? ( media-libs/gstreamer:1.0
media-libs/gst-plugins-base:1.0 )
sys-apps/dbus
x11-libs/gtk+:3"
DEPEND="${RDEPEND}
$(vala_depend)"
src_prepare() {
default
sed -i -e "s/valac-0.20/valac-0.36 valac-0.34 valac-0.32 valac-0.30 valac-0.28 valac-0.26/" cmake/vala/FindVala.cmake || die
vala_src_prepare
}
src_configure(){
local mycmakeargs=(
-DSYSCONFDIR="${EPREFIX}/etc"
-DMOVIES=$(usex gstreamer on off)
)
cmake-utils_src_configure
}

@ -12,7 +12,7 @@ SRC_URI="https://github.com/vaeth/eix/releases/download/v${PV}/${P}.tar.xz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~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 ~x64-cygwin ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="debug doc nls sqlite"
BOTHDEPEND="nls? ( virtual/libintl )

@ -18,7 +18,7 @@ LICENSE="GPL-2"
SLOT="0"
IUSE=""
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ia64 ~mips ppc ppc64 ~sparc ~x86 ~x86-fbsd"
KEYWORDS="alpha amd64 ~arm ~arm64 ~hppa ia64 ~mips ppc ppc64 ~sparc x86 ~x86-fbsd"
RDEPEND="
dev-util/dialog

@ -19,7 +19,7 @@ fi
LICENSE="BSD"
SLOT="0"
KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ia64 ~mips ppc ~ppc64 ~s390 ~sh ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="libedit static vanilla"
RDEPEND="!static? ( libedit? ( dev-libs/libedit ) )"

@ -9,7 +9,7 @@ SRC_URI="https://github.com/${PN}-shell/${PN}-shell/releases/download/${PV}/${P}
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris"
KEYWORDS="~amd64 ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris"
IUSE="nls"
RDEPEND="

@ -10,7 +10,7 @@ SRC_URI="https://github.com/vaeth/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris"
IUSE=""
src_install() {

@ -10,7 +10,7 @@ SRC_URI="https://github.com/vaeth/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris"
IUSE=""
src_install() {

@ -1 +0,0 @@
DIST adiff-1.4 10902 SHA256 c4e56a2a2288e4dc53a824e603d942c59caaebf9b72f01e332a9d98ebfa6df72 SHA512 edbb4d6a8ce8f636a874d22d1e44bc04b860ab31f1e825ce3e865ee3f6bf07fb6a7b9dd44e5429aad21a475d82b34f176d76f8466e58aeca74717740f7054219 WHIRLPOOL 1099775af9d2c5908d8a26cf4277b24ed3ab41b583f83c4bf263f09b190a8c8b68cf6c431219156346fad0848fd40670a93c8cf3c476333e0ec823f319b6b3bc

@ -1,43 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
DESCRIPTION="Wordise diff"
HOMEPAGE="https://wiki.gentoo.org/wiki/No_homepage"
SRC_URI="mirror://gentoo/${P}"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~ia64 ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
DEPEND="
dev-lang/perl
!app-arch/atool"
RDEPEND="
${DEPEND}
sys-apps/diffutils"
S="${WORKDIR}"
src_unpack() {
:; # Nothing to unpack.
}
src_compile() {
local _p2m=(
--release=${PV}
--center="${HOMEPAGE}"
--date="2007-12-11"
"${DISTDIR}"/${P}
${PN}.1
)
pod2man "${_p2m[@]}" || die
}
src_install() {
newbin "${DISTDIR}/${P}" "${PN}"
doman "${PN}.1"
}

@ -1,33 +0,0 @@
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
DESCRIPTION="wordwise diff"
HOMEPAGE="http://agriffis.n01se.net/adiff/"
SRC_URI="${HOMEPAGE}/${P}"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="alpha amd64 ia64 ppc64 x86 ~amd64-linux ~x86-linux ~ppc-macos"
IUSE=""
DEPEND="dev-lang/perl
!app-arch/atool"
RDEPEND="${DEPEND}
sys-apps/diffutils"
S=${WORKDIR}
src_unpack() {
# Nothing to unpack
:
}
src_compile() {
pod2man --release=${PV} --center="${HOMEPAGE}" \
--date="2007-12-11" "${DISTDIR}"/${P} ${PN}.1 || die
}
src_install() {
newbin "${DISTDIR}"/${P} ${PN}
doman ${PN}.1
}

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- maintainer-needed -->
</pkgmetadata>

@ -71,6 +71,11 @@ src_prepare() {
# This has to be after automake has run so that we don't clobber
# the default target that automake creates for us.
echo 'install-filterLTLIBRARIES: install-libLTLIBRARIES' >> Makefile.in || die
# unicode patch breaks on Darwin, NCURSES_WIDECHAR won't get set
# any more. Fix this.
[[ ${CHOST} == *-darwin* ]] && use unicode && \
append-cppflags -DNCURSES_WIDECHAR=1
}
src_configure() {

@ -21,7 +21,7 @@ SRC_URI="
LICENSE="AGPL-3 CPL-1.0"
SLOT="0"
KEYWORDS="alpha amd64 arm ~arm64 ~hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
IUSE="cups dbus gtk l10n_de static-libs tiff unicode X"
COMMON_DEPEND="

@ -11,7 +11,7 @@ if [[ "${PV}" == "9999" ]] ; then
SLOT="0/9999"
else
SRC_URI="https://poppler.freedesktop.org/${P}.tar.xz"
KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ia64 ~mips ppc ppc64 ~s390 ~sh ~sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
SLOT="0/68" # CHECK THIS WHEN BUMPING!!! SUBSLOT IS libpoppler.so SOVERSION
fi

@ -8,7 +8,7 @@ PYTHON_COMPAT=( python2_7 python3_{4,5,6} )
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)"

@ -8,7 +8,7 @@ PYTHON_COMPAT=( python2_7 python3_{4,5,6} )
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)"

@ -8,7 +8,7 @@ PYTHON_COMPAT=( python2_7 python3_{4,5,6} )
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)"

@ -8,7 +8,7 @@ PYTHON_COMPAT=( python2_7 python3_{4,5,6} )
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)"

@ -8,7 +8,7 @@ PYTHON_COMPAT=( python2_7 python3_{4,5,6} )
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,38 +0,0 @@
Description: fix FTBFS with --as-needed linker option
Libraries must be placed after object files in command line.
Author: Ilya Barygin <randomaction@ubuntu.com>
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -135,6 +135,10 @@
# All libraries for .exe files
set(all_libs ${aseprite_libraries} ${libs3rdparty} ${sys_libs})
+if(LIBALLEGRO4_LINK_FLAGS)
+ set(all_libs ${all_libs} ${LIBALLEGRO4_LINK_FLAGS})
+endif()
+
######################################################################
# ASEPRITE libraries
@@ -405,10 +409,6 @@
add_executable(aseprite WIN32 main.cpp ${win32_resources} ${x11_resources})
target_link_libraries(aseprite ${all_libs})
-if(LIBALLEGRO4_LINK_FLAGS)
- set_target_properties(aseprite
- PROPERTIES LINK_FLAGS ${LIBALLEGRO4_LINK_FLAGS})
-endif()
install(TARGETS aseprite
RUNTIME DESTINATION bin)
@@ -450,8 +450,7 @@
endif()
if(LIBALLEGRO4_LINK_FLAGS)
- set_target_properties(${testname}
- PROPERTIES LINK_FLAGS ${LIBALLEGRO4_LINK_FLAGS})
+ target_link_libraries(${testname} ${LIBALLEGRO4_LINK_FLAGS})
endif()
if(extra_definitions)

@ -1,21 +0,0 @@
From 169edeaa69cce2670213c39232a249a487670883 Mon Sep 17 00:00:00 2001
From: hasufell <hasufell@hasufell.de>
Date: Sun, 2 Nov 2014 16:58:33 +0100
Subject: [PATCH] Fix underlinking with USE_SHARED_ALLEGRO4=ON
---
src/CMakeLists.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 21c3352..0ce11d2 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -58,6 +58,7 @@ if(USE_SHARED_ALLEGRO4)
OUTPUT_VARIABLE LIBALLEGRO4_LINK_FLAGS
OUTPUT_STRIP_TRAILING_WHITESPACE)
+ set(LIBALLEGRO4_LINK_FLAGS ${LIBALLEGRO4_LINK_FLAGS} ${PLATFORM_LIBS})
include_directories(${LIBALLEGRO4_INCLUDE_DIR})
else()
add_definitions(-DALLEGRO4_WITH_RESIZE_PATCH)

@ -1 +1,2 @@
DIST physfs-2.0.3.tar.bz2 560628 SHA256 ca862097c0fb451f2cacd286194d071289342c107b6fe69079c079883ff66b69 SHA512 47eff0c81b8dc3bb526766b0a8ad2437d2951867880116d6e6e8f2ec1490e263541fb741867fed6517cc3fa8a9c5651b36e3e02a499f19cfdc5c7261c9707e80 WHIRLPOOL 30362f92d5702842142c08c3183a384876a03e9e3e400364b0fa59c99ffee994667c1ad08fe633ef146e98301789a980a3419f60a18b24b9c341bb74144ccc73
DIST physfs-3.0.0.tar.bz2 194277 SHA256 f2617d6855ea97ea42e4a8ebcad404354be99dfd8a274eacea92091b27fd7324 SHA512 4293dc72a5b2e41fbd02c4426da7bfc1e94a013d8a332b3124798a91ef27b4a57adef303f23d5e03150855de69cf22fc8bb29e6395725a18e3a12f6c74b4111f WHIRLPOOL e0010e15b2449565939dd5e9d65fb63cbbb78069a0390fc0ba95c7671a484db7470ec300cfd8aaa5810aff7fd14bbc669f8e902a9469ba7d51ebeed6c94b15f4

@ -0,0 +1,45 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit cmake-multilib
DESCRIPTION="Abstraction layer for filesystem and archive access"
HOMEPAGE="http://icculus.org/physfs/"
SRC_URI="http://icculus.org/physfs/downloads/${P}.tar.bz2"
LICENSE="ZLIB"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc64 ~x86 ~x86-fbsd"
IUSE="grp hog mvl qpak static-libs wad +zip"
RDEPEND=""
DEPEND=""
DOCS=( docs/CHANGELOG.txt docs/CREDITS.txt docs/TODO.txt )
src_prepare() {
default
sed -i -e 's:-Werror::' CMakeLists.txt || die
# make sure these libs aren't used
rm -rf lzma zlib*
}
src_configure() {
local mycmakeargs=(
-DPHYSFS_ARCHIVE_7Z=OFF
-DPHYSFS_BUILD_SHARED=ON
-DPHYSFS_BUILD_TEST=OFF
-DPHYSFS_BUILD_WX_TEST=OFF
-DPHYSFS_INTERNAL_ZLIB=OFF
-DPHYSFS_BUILD_STATIC="$(usex static-libs)"
-DPHYSFS_ARCHIVE_GRP="$(usex grp)"
-DPHYSFS_ARCHIVE_HOG="$(usex hog)"
-DPHYSFS_ARCHIVE_MVL="$(usex mvl)"
-DPHYSFS_ARCHIVE_WAD="$(usex wad)"
-DPHYSFS_ARCHIVE_QPAK="$(usex qpak)"
-DPHYSFS_ARCHIVE_ZIP="$(usex zip)"
)
cmake-multilib_src_configure
}

@ -16,10 +16,12 @@ fi
LICENSE="ZLIB"
SLOT="0"
IUSE="doc grp hog mvl qpak static-libs wad +zip"
IUSE="grp hog mvl qpak static-libs wad +zip"
RDEPEND=""
DEPEND="doc? ( app-doc/doxygen )"
DEPEND=""
DOCS=( docs/CHANGELOG.txt docs/CREDITS.txt docs/TODO.txt )
src_prepare() {
default
@ -46,18 +48,3 @@ src_configure() {
cmake-multilib_src_configure
}
src_compile() {
cmake-multilib_src_compile
if multilib_is_native_abi && use doc ; then
doxygen || die "doxygen failed"
fi
}
src_install() {
local DOCS=( docs/CHANGELOG.txt docs/CREDITS.txt docs/TODO.txt )
local HTML_DOCS=$(usex doc 'docs/html/*' '')
cmake-multilib_src_install
}

@ -1,2 +0,0 @@
DIST inetlib-1.0.tar.gz 151002 SHA256 f59a46051b01dd01f04d0cc677d95a6c02b3389787d59a63b0f74bef20f887f8 SHA512 f3efa679d4f09d65025b3a903bb94eeced6470fff4414a1a1dc00985f644855bef9aaf5015c24c4321a6088e5ca48ced2177548f11dc84c07b4e5281b9709ede WHIRLPOOL 8f79486a4c11926ab9063a25efe411c39adebe377c93a8bc2484fc09907ed97455f231778d462aaae5fb8830da1d39d9a00cdbdc50e83905df4e9bc1491399d8
DIST inetlib-1.1.tar.gz 177251 SHA256 2b30cad60f3136b04f9ae4a906da8ac964654dacd3281097ec3558e67c9a51a0 SHA512 0ebc112bc8758ca8da23797d71d91d386896be6105cc1a40448445e59a6cdc43dc5dcd84f8b69332d7b7eaf11efd474588cadcb68f7356f2aa40657aaf62147b WHIRLPOOL 48bc55ac1b102c81f3de0d1e943ff51731e963b5cd9ac080a91a99f3da7ed48966deb034f4c863d722aef0461ff96f153dccb62c1edced5ac7c8c1897bb0b5d6

@ -1,64 +0,0 @@
diff -uNr inetlib-1.0.orig/source/gnu/inet/imap/IMAPConnection.java inetlib-1.0/source/gnu/inet/imap/IMAPConnection.java
--- inetlib-1.0.orig/source/gnu/inet/imap/IMAPConnection.java 2006-09-19 13:18:21.512067374 +0200
+++ inetlib-1.0/source/gnu/inet/imap/IMAPConnection.java 2006-09-19 13:19:07.024373510 +0200
@@ -45,7 +45,6 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import java.util.Properties;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocket;
@@ -555,7 +554,7 @@
String[] m = new String[] { mechanism };
CallbackHandler ch = new SaslCallbackHandler(username, password);
// Avoid lengthy callback procedure for GNU Crypto
- Properties p = new Properties();
+ HashMap p = new HashMap();
p.put("gnu.crypto.sasl.username", username);
p.put("gnu.crypto.sasl.password", password);
SaslClient sasl = Sasl.createSaslClient(m, null, "smtp",
diff -uNr inetlib-1.0.orig/source/gnu/inet/pop3/POP3Connection.java inetlib-1.0/source/gnu/inet/pop3/POP3Connection.java
--- inetlib-1.0.orig/source/gnu/inet/pop3/POP3Connection.java 2006-09-19 13:18:21.531064997 +0200
+++ inetlib-1.0/source/gnu/inet/pop3/POP3Connection.java 2006-09-19 13:20:28.841137790 +0200
@@ -39,8 +39,8 @@
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
-import java.util.Properties;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocket;
@@ -220,7 +220,7 @@
String[] m = new String[] { mechanism };
CallbackHandler ch = new SaslCallbackHandler (username, password);
// Avoid lengthy callback procedure for GNU Crypto
- Properties p = new Properties ();
+ HashMap p = new HashMap();
p.put ("gnu.crypto.sasl.username", username);
p.put ("gnu.crypto.sasl.password", password);
SaslClient sasl =
diff -uNr inetlib-1.0.orig/source/gnu/inet/smtp/SMTPConnection.java inetlib-1.0/source/gnu/inet/smtp/SMTPConnection.java
--- inetlib-1.0.orig/source/gnu/inet/smtp/SMTPConnection.java 2006-09-19 13:18:21.533064747 +0200
+++ inetlib-1.0/source/gnu/inet/smtp/SMTPConnection.java 2006-09-19 13:21:16.996113371 +0200
@@ -37,8 +37,8 @@
import java.security.GeneralSecurityException;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
-import java.util.Properties;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocket;
@@ -567,7 +567,7 @@
String[] m = new String[] { mechanism };
CallbackHandler ch = new SaslCallbackHandler (username, password);
// Avoid lengthy callback procedure for GNU Crypto
- Properties p = new Properties ();
+ HashMap p = new HashMap();
p.put ("gnu.crypto.sasl.username", username);
p.put ("gnu.crypto.sasl.password", password);
SaslClient sasl =

@ -1,87 +0,0 @@
diff -uNr inetlib.orig/source/gnu/inet/imap/IMAPConnection.java inetlib/source/gnu/inet/imap/IMAPConnection.java
--- inetlib.orig/source/gnu/inet/imap/IMAPConnection.java 2006-09-19 10:25:48.402313856 +0200
+++ inetlib/source/gnu/inet/imap/IMAPConnection.java 2006-09-19 10:27:02.775026067 +0200
@@ -46,7 +46,6 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import java.util.Properties;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocket;
@@ -653,7 +652,7 @@
String[] m = new String[] { mechanism };
CallbackHandler ch = new SaslCallbackHandler (username, password);
// Avoid lengthy callback procedure for GNU Crypto
- Properties p = new Properties ();
+ HashMap p = new HashMap();
p.put ("gnu.crypto.sasl.username", username);
p.put ("gnu.crypto.sasl.password", password);
SaslClient sasl = Sasl.createSaslClient (m, null, "smtp",
diff -uNr inetlib.orig/source/gnu/inet/nntp/NNTPConnection.java inetlib/source/gnu/inet/nntp/NNTPConnection.java
--- inetlib.orig/source/gnu/inet/nntp/NNTPConnection.java 2006-09-19 10:25:48.420311609 +0200
+++ inetlib/source/gnu/inet/nntp/NNTPConnection.java 2006-09-19 10:29:02.781039000 +0200
@@ -42,7 +42,7 @@
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
-import java.util.Properties;
+import java.util.HashMap;
import java.util.TimeZone;
import javax.security.auth.callback.CallbackHandler;
@@ -1140,7 +1140,7 @@
String[] m = new String[] { mechanism };
CallbackHandler ch = new SaslCallbackHandler (username, password);
// Avoid lengthy callback procedure for GNU Crypto
- Properties p = new Properties ();
+ HashMap p = new HashMap();
p.put ("gnu.crypto.sasl.username", username);
p.put ("gnu.crypto.sasl.password", password);
SaslClient sasl =
diff -uNr inetlib.orig/source/gnu/inet/pop3/POP3Connection.java inetlib/source/gnu/inet/pop3/POP3Connection.java
--- inetlib.orig/source/gnu/inet/pop3/POP3Connection.java 2006-09-19 10:25:48.426310859 +0200
+++ inetlib/source/gnu/inet/pop3/POP3Connection.java 2006-09-19 10:27:59.374957608 +0200
@@ -41,10 +41,10 @@
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import java.util.Properties;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocket;
@@ -232,7 +232,7 @@
String[] m = new String[] { mechanism };
CallbackHandler ch = new SaslCallbackHandler (username, password);
// Avoid lengthy callback procedure for GNU Crypto
- Properties p = new Properties ();
+ HashMap p = new HashMap();
p.put ("gnu.crypto.sasl.username", username);
p.put ("gnu.crypto.sasl.password", password);
SaslClient sasl =
diff -uNr inetlib.orig/source/gnu/inet/smtp/SMTPConnection.java inetlib/source/gnu/inet/smtp/SMTPConnection.java
--- inetlib.orig/source/gnu/inet/smtp/SMTPConnection.java 2006-09-19 10:25:48.428310610 +0200
+++ inetlib/source/gnu/inet/smtp/SMTPConnection.java 2006-09-19 10:26:34.107606132 +0200
@@ -38,8 +38,8 @@
import java.security.GeneralSecurityException;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
-import java.util.Properties;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocket;
@@ -598,7 +598,7 @@
String[] m = new String[] { mechanism };
CallbackHandler ch = new SaslCallbackHandler (username, password);
// Avoid lengthy callback procedure for GNU Crypto
- Properties p = new Properties ();
+ HashMap p = new HashMap();
p.put ("gnu.crypto.sasl.username", username);
p.put ("gnu.crypto.sasl.password", password);
SaslClient sasl =

@ -1,63 +0,0 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
inherit java-pkg-2
MY_PN="inetlib"
MY_P="${MY_PN}-${PV}"
DESCRIPTION="Network extensions library for GNU classpath and classpathx"
HOMEPAGE="https://www.gnu.org/software/classpath/"
SRC_URI="mirror://gnu/classpath/${MY_P}.tar.gz"
LICENSE="GPL-2-with-linking-exception"
SLOT="1.0"
KEYWORDS="amd64 x86"
IUSE="doc"
RDEPEND=">=virtual/jre-1.3
>=dev-java/gnu-crypto-2.0.1"
DEPEND=">=virtual/jdk-1.3
${RDEPEND}"
S="${WORKDIR}/${MY_P}"
# TODO we could give configure the lib dir on the live filesystem
# instead of populating ${S}/ext with the jars we need -nichoj
# TODO fix jikes support. Related to bug #89711
src_unpack() {
unpack ${A}
cd "${S}"
epatch "${FILESDIR}/${P}-jdk15.patch"
mkdir ext && cd ext
java-pkg_jar-from gnu-crypto javax-security.jar javax-security-auth-callback.jar
java-pkg_jar-from gnu-crypto javax-security.jar javax-security-sasl.jar
# fake jar to shut build system up, jsse is part of JDK's classpath already
ln -s javax-security-sasl.jar jsse.jar
}
src_compile() {
econf \
--enable-smtp \
--enable-imap \
--enable-pop3 \
--enable-nntp \
--enable-ftp \
--enable-gopher \
--with-jsse-jar="${S}"/ext \
--with-javax-security-auth-callback-jar="${S}"/ext \
--with-javax-security-sasl-jar="${S}"/ext \
|| die "econf failed"
# https://bugs.gentoo.org/show_bug.cgi?id=179897
emake JAVACFLAGS="${JAVACFLAGS}" -j1 || die "emake failed"
if use doc ; then
emake -j1 javadoc || die "emake javadoc failed"
fi
}
src_install() {
einstall || die
rm -rf "${D}"/usr/share/java
java-pkg_dojar ${MY_PN}.jar
use doc && java-pkg_dojavadoc docs
dodoc AUTHORS NEWS README || die
}

@ -1,57 +0,0 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
inherit java-pkg-2 java-ant-2
MY_PN="inetlib"
MY_P="${MY_PN}-${PV}"
DESCRIPTION="Network extensions library for GNU classpath and classpathx"
HOMEPAGE="https://www.gnu.org/software/classpath/"
SRC_URI="mirror://gnu/classpath/${MY_P}.tar.gz"
LICENSE="GPL-2-with-linking-exception"
SLOT="1.1"
KEYWORDS="amd64 x86"
IUSE="doc"
RDEPEND=">=virtual/jre-1.3
>=dev-java/gnu-crypto-2.0.1"
DEPEND=">=virtual/jdk-1.3
${RDEPEND}"
S="${WORKDIR}/${MY_PN}"
src_unpack() {
unpack ${A}
cd "${S}"
epatch "${FILESDIR}/${P}-jdk15.patch"
mkdir ext && cd ext
java-pkg_jar-from gnu-crypto
# fake jar to shut build system up, jsse is part of JDK's classpath already
ln -s javax-security.jar jsse.jar
}
src_compile() {
econf \
--enable-smtp \
--enable-imap \
--enable-pop3 \
--enable-nntp \
--enable-ftp \
--enable-gopher \
--with-jsse-jar="${S}"/ext \
--with-javax-security-jar="${S}"/ext \
|| die
# https://bugs.gentoo.org/show_bug.cgi?id=179897
emake JAVACFLAGS="${JAVACFLAGS}" -j1 || die
if use doc ; then
emake -j1 javadoc || die
fi
}
src_install() {
einstall || die
rm -rf "${D}"/usr/share/java
java-pkg_dojar inetlib.jar
use doc && java-pkg_dojavadoc docs
dodoc AUTHORS NEWS README || die
}

@ -1,15 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>java@gentoo.org</email>
<name>Java</name>
</maintainer>
<longdescription>
GNU Classpath inetlib is an extension library to provide extra network
protocol support for GNU Classpath and ClasspathX project, but it can
also used standalone to make adding http, imap, pop3 and smtp client
support to applictions.
</longdescription>
</pkgmetadata>

@ -1 +0,0 @@
DIST mail-1.0.tar.gz 707084 SHA256 0dcbf6b24ea1f0a47a4aff15060dda19349d8bea7025a6e7d2249969afb7099e SHA512 14513b577a312c4c3ba994db02ca561614f64d532baf07a3f58d97d8a8e129d83ed29a835b079131c1789c584b851188ae1450a531b6e5a544513c219bc37f09 WHIRLPOOL 6001858a0bb73bbb5ea855fc781ee09ed3773c7de67fc4cfed7fd6b34ea3bced42c78900de022996a2ae34651aa7884cb2e6a69d25e5fb2ade7415707a51913b

@ -1,54 +0,0 @@
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
inherit java-pkg-2
MY_PN="mail"
MY_P="${MY_PN}-${PV}"
DESCRIPTION="GNU implementation of the Javamail API"
HOMEPAGE="https://www.gnu.org/software/classpathx/javamail/"
SRC_URI="mirror://gnu/classpathx/${MY_P}.tar.gz"
LICENSE="GPL-2-with-linking-exception"
SLOT="1"
KEYWORDS="amd64 x86"
IUSE="doc"
RDEPEND=">=virtual/jre-1.4
=dev-java/gnu-jaf-1*
=dev-java/gnu-classpath-inetlib-1.0*
!<=dev-java/mx4j-3.0.1
!<=dev-java/mx4j-3.0.1-r2"
DEPEND=">=virtual/jdk-1.4
${RDEPEND}"
S=${WORKDIR}/${MY_P}
# TODO: Re-enable jikes support (see bug #89711)
src_compile() {
local activation=$(dirname $(java-pkg_getjar gnu-jaf-1 activation.jar))
local inetlib=$(dirname $(java-pkg_getjar gnu-classpath-inetlib-1.0 inetlib.jar))
econf \
--with-activation-jar=${activation} \
--with-inetlib-jar=${inetlib} \
--enable-smtp \
--enable-imap \
--enable-pop3 \
--enable-nntp \
--enable-mbox \
--enable-maildir \
|| die "failed to configure"
emake JAVACFLAGS="${JAVACFLAGS}" || die "failed to compile"
if use doc; then
emake javadoc || die "failed to generate javadoc"
fi
}
src_install() {
java-pkg_dojar gnumail-providers.jar
java-pkg_newjar gnumail.jar mail.jar
dodoc AUTHORS ChangeLog NEWS README README.*
use doc && java-pkg_dojavadoc docs
}

@ -1,29 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>java@gentoo.org</email>
<name>Java</name>
</maintainer>
<longdescription>
GNU JavaMail is a free implementation of the JavaMail API specification,
version 1.3. All the code has been written from scratch without
reference to Sun's code, which allows GNU JavaMail to be used on a
completely free operating system such as GNU/Linux or the Hurd. The code
is optimized to work with free Java implementations, nothing prevents it
from being used with any compliant JVM.
GNU JavaMail provides a protocol-independent framework for building mail
client applications in Java. The API itself provides a complete MIME
implementation, and drivers for individual messaging protocols, known as
providers, can be plugged into the JavaMail framework dynamically.
Several providers, implementing Internet standard protocols, are
included with GNU JavaMail. These include:
* SMTP, IMAP, POP3
* NNTP including posting to news servers
* The UNIX mbox format
* Dan Bernstein's Maildir format
</longdescription>
</pkgmetadata>

@ -1 +0,0 @@
DIST mail-1.4-sources.jar 465692 SHA256 a20f7b4b98307424cb065ed4478dbce0a5831dfa48e1dea08d3d775632a9e1a6 SHA512 a4be6983d77a4baababcdb20d8586da7dc2f6a75419a02a1c8d72456023d4043b1aae6981321092a54e9f8dd0dc0ec7ab7d1080ab10fd9d84827e6c7a1d4c31c WHIRLPOOL 2885f46cd8780e708236ce0a336e12dfe373208638e0a2c9203452ca212deb44a55331620e2a25274889e9d9b9463bd4848541809fabc1cf4ff24722057c6561

@ -1,25 +0,0 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
JAVA_PKG_IUSE="doc source"
inherit java-pkg-2 java-pkg-simple
DESCRIPTION="Provides a platform/protocol-independent framework for mail and messaging apps"
HOMEPAGE="https://javamail.java.net/"
SRC_URI="http://repo1.maven.org/maven2/javax/mail/mail/${PV}/mail-${PV}-sources.jar"
LICENSE="|| ( CDDL GPL-2-with-classpath-exception )"
SLOT="0"
KEYWORDS="~amd64 ~ppc64 ~x86"
IUSE=""
RDEPEND="
${CDEPEND}
>=virtual/jre-1.6"
DEPEND="
${CDEPEND}
>=virtual/jdk-1.6
app-arch/unzip"

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>java@gentoo.org</email>
<name>Java</name>
</maintainer>
</pkgmetadata>

@ -1 +0,0 @@
DIST sun-javamail-1.4.3.zip 1174915 SHA256 5204fd4e38b4f2a43fb727c861d7d1f69933d489706de100189970032582becd SHA512 092b44857ed8a7fee25e9dd5085144b9b04aaec2e294ac7271accda8d0f8ea71792671079c2e377dadce02282446f176abbd3f78f55a8342930667a985080210 WHIRLPOOL f0440fd2bd7f3a8db357e9824a81aaa68b08688aab0b77c08dcd8e136a8b5856678fc5e50c5799234e59df4df516c06ac3c78c0f699d757cbfbb06f54296372e

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>java@gentoo.org</email>
<name>Java</name>
</maintainer>
</pkgmetadata>

@ -1,36 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
JAVA_PKG_IUSE="doc source"
inherit java-pkg-2 java-pkg-simple
DESCRIPTION="A Java-based framework to build multiplatform mail and messaging applications"
HOMEPAGE="http://java.sun.com/products/javamail/index.html"
SRC_URI="mirror://gentoo/javamail-${PV}-src.zip -> ${P}.zip"
LICENSE="|| ( CDDL GPL-2 BSD )"
SLOT="0"
KEYWORDS="amd64 ~arm ppc64 x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
DEPEND=">=virtual/jdk-1.6"
RDEPEND=">=virtual/jre-1.6"
S="${WORKDIR}"
JAVA_ENCODING="ISO-8859-1"
JAVA_SRC_DIR="mail"
HTML_DOCS=( doc/release )
src_prepare() {
default
rm -rv mail/src/test || die
}
src_install() {
java-pkg-simple_src_install
einstalldocs
}

@ -4,3 +4,4 @@ DIST execline-2.1.5.0.tar.gz 80932 SHA256 8a3605a6db73183baa376bf2130e8b7eb75a5b
DIST execline-2.2.0.0.tar.gz 82860 SHA256 93bd744f2e3ad204cb89f147efdc6ca4e622f9c6bfc9895e0b2cb8b0480029de SHA512 0174bd46c231684f78b7ea2f6f85776b9edf780d1ae928fcaf0eda3ade46fa60666c17af4480fd37179461b622a069221386f229c777fd214b5abe70e7f58a19 WHIRLPOOL 6e39ceca7a867e5fc6d7fee16e78df2a5602b15924c411766089719afd81b198c7e816b54634dd2f322048c0230f9009392f01264eacba96924fe1af8888625f
DIST execline-2.3.0.0.tar.gz 81704 SHA256 a0ec43b8feba299cc1e5c65b1978ed76571afa595bc53165373e29a57468f425 SHA512 d8bd3420366d2e81e8bcbd644f235fc50e32a83d8e25989cf12f4b4c03bf553e0c356311ef185f98e03887ad65fd75a12ec4746ac832e72aeb023016d91f36c1 WHIRLPOOL b1b278c5623bae97a9e232bbdee2ff21a5cfb8dbd33bc53547620d876a4e0649543bee3de1e0c33b20442f26faeb2089e5325d0b7891e7d568a2ccff7629eb38
DIST execline-2.3.0.1.tar.gz 82620 SHA256 2bf65aaaf808718952e05c2221b4e9472271e53ebd915c8d1d49a3e992583bf4 SHA512 be72bff29055655275e2da0ed831034158300ff39184822966e35ff9a6c2dea4f7e5fc5e79bda40be91a791cb99ee9accc7cbdeccef3c4489bf2253e0a107365 WHIRLPOOL 52d57761012f90408a0cbb55168b0971941a2727dd40c0c41df0ca1066c15683e246172e2c608f880eaf6c7ba4b2802eaee2f103f3dc2eca5a9d8612bb24f87c
DIST execline-2.3.0.2.tar.gz 82378 SHA256 c11650651a7230bd5687945a7698b2da3fe13c3c0eb15e296bb91769d4775f45 SHA512 0ec20bd0695bbf1aef9db6725c7d58ca95044401412ba85a22274d21aa37a5f51455739d403f929870dfcd4b59dcea474e0290a42e6a7dfe4136ef066b36e208 WHIRLPOOL 89c4cb3f258bb32c86b266dc7102e1992d80152f5a47382b218f2cd316815c6aaddebd9e716f884c13e6b83430145212aa39224b59768ac3e385402f008ccbb4

@ -0,0 +1,55 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit versionator
DESCRIPTION="a non-interactive scripting language"
HOMEPAGE="https://www.skarnet.org/software/execline/"
SRC_URI="https://www.skarnet.org/software/${PN}/${P}.tar.gz"
LICENSE="ISC"
SLOT="0/$(get_version_component_range 1-2)"
KEYWORDS="~amd64 ~arm ~x86"
IUSE="static static-libs"
DEPEND=">=sys-devel/make-3.81
static? (
>=dev-libs/skalibs-2.6.0.0[static-libs]
)
!static? (
>=dev-libs/skalibs-2.6.0.0
)
"
RDEPEND="
!static? (
>=dev-libs/skalibs-2.6.0.0:=
)
"
HTML_DOCS="doc/*"
src_prepare() {
default
# Remove QA warning about LDFLAGS addition
sed -i "s/tryldflag LDFLAGS_AUTO -Wl,--hash-style=both/:/" "${S}/configure" || die
# configure overrides gentoo's -fstack-protector default
sed -i "/^tryflag CFLAGS_AUTO -fno-stack-protector$/d" "${S}/configure" || die
}
src_configure() {
econf \
--bindir=/bin \
--dynlibdir=/$(get_libdir) \
--libdir=/usr/$(get_libdir)/${PN} \
--with-dynlib=/$(get_libdir) \
--with-lib=/usr/$(get_libdir)/skalibs \
--with-sysdeps=/usr/$(get_libdir)/skalibs \
$(use_enable !static shared) \
$(use_enable static allstatic) \
$(use_enable static static-libc) \
$(use_enable static-libs static)
}

@ -12,3 +12,21 @@
--- a/gcc/params.def 2016-03-30 09:47:40.000000000 +0200
+++ b/gcc/params.def 2016-09-19 12:56:58.443179039 +0200
@@ -673,7 +673,7 @@ DEFPARAM (PARAM_INTEGER_SHARE_LIMIT,
--- gcc-6-gpl-2017-src/gcc/ada/osint.adb.old 2017-03-10 21:58:02.600710156 +0100
+++ gcc-6-gpl-2017-src/gcc/ada/osint.adb 2017-03-10 21:59:38.033983293 +0100
@@ -2229,14 +2229,11 @@
for J in Start_Of_Prefix .. Name_Len - Prog'Length + 1 loop
if Name_Buffer (J .. J + Prog'Length - 1) = Prog then
End_Of_Prefix := J - 1;
+ Start_Of_Suffix := J + Prog'Length;
exit;
end if;
end loop;
- if End_Of_Prefix > 1 then
- Start_Of_Suffix := End_Of_Prefix + Prog'Length + 1;
- end if;
-
-- Create the new program name
return new String'

@ -13,7 +13,7 @@ SLOT="0" # Note: Slotting Lazarus needs slotting fpc, see DEPEND.
LICENSE="GPL-2 LGPL-2.1-with-linking-exception"
KEYWORDS="amd64 ppc x86"
DESCRIPTION="Lazarus IDE is a feature rich visual programming environment emulating Delphi"
HOMEPAGE="https://www.lazarus.freepascal.org/"
HOMEPAGE="https://www.lazarus-ide.org/"
IUSE="minimal"
SRC_URI="https://downloads.sourceforge.net/project/${PN}/Lazarus%20Zip%20_%20GZip/Lazarus%20${PV}/${PN}-${PV}-0.tar.gz"

@ -7,7 +7,7 @@ inherit eutils
FPCVER="3.0.0"
DESCRIPTION="Lazarus IDE is a feature rich visual programming environment emulating Delphi"
HOMEPAGE="https://www.lazarus.freepascal.org/"
HOMEPAGE="https://www.lazarus-ide.org/"
SRC_URI="https://sourceforge.net/projects/${PN}/files/Lazarus%20Zip%20_%20GZip/Lazarus%201.6.2/${P}-0.tar.gz"
LICENSE="GPL-2 LGPL-2.1-with-linking-exception"

@ -7,7 +7,7 @@ inherit eutils
FPCVER="3.0.0"
DESCRIPTION="Lazarus IDE is a feature rich visual programming environment emulating Delphi"
HOMEPAGE="https://www.lazarus.freepascal.org/"
HOMEPAGE="https://www.lazarus-ide.org/"
SRC_URI="https://sourceforge.net/projects/${PN}/files/Lazarus%20Zip%20_%20GZip/Lazarus%20${PV}/${P}-0.tar.gz"
LICENSE="GPL-2 LGPL-2.1-with-linking-exception"

@ -1,4 +1,7 @@
DIST php-5.6.31.tar.xz 12461268 SHA256 c464af61240a9b7729fabe0314cdbdd5a000a4f0c9bd201f89f8628732fe4ae4 SHA512 b5d3bc306167c851460036aa21194a2f74a50a26aa5c46159394bddbff94e4a418b557d68d5e1315672b3571b13a231ef7810d5346f57c0094acfe29c2e70495 WHIRLPOOL 2cd74a9cfe82b9363b4fbad37b13a8f7cc9571d2493a95b52cdaeeafe2d04255a29b31792dce2db0c41696539ed6b203446a2a6a8ea0319d82066fe9622bfcb9
DIST php-7.0.23.tar.xz 11953100 SHA256 8e526e3551a58e00c8055fa4a72804aa1bd3ee1c0411b25bf1504cc4992609df SHA512 62201592fca88fb1c302badf7e73e5d417e9a062300e0d32fdfcb346d300cd86bf957b880a73795037a332fe148b64589bb15204bdd6b0ddcbbddc5a12e6d042 WHIRLPOOL 5d6131b5d7701b01c1aa849c6b5e3b133b4276999354eccecf847675552eb0be79a68cd0a10595c64bda2594489d3699868b4ed9a1fe3c5cdcc4fda45be32493
DIST php-7.0.24.tar.xz 11959232 SHA256 4dba7aa365193c9229f89f1975fad4c01135d29922a338ffb4a27e840d6f1c98 SHA512 7ae7795ff89924adc5f989bcf438a372684c7fc041ec10db96369f12faaeb90a23e7a7b5253f2a1022059f7464e6c11ee46a164a7f873b0b44a5317c3a3a49e7 WHIRLPOOL c5d8cdc684738610f520df0f46042625cfa0a5530e84e4c813493f755f03656f8ba71de630769f6381b9b729feb161b06eae7d44dcf21f79bec67fd5b9c23c26
DIST php-7.1.10.tar.xz 12166036 SHA256 2b8efa771a2ead0bb3ae67b530ca505b5b286adc873cca9ce97a6e1d6815c50b SHA512 64f03d7a8928283e2f4f0958168610780553765ac20cf558cd6452ba4474461e74366c41b9bfdaf08b25195ca9c0059a94b77f06d8de3512d251cb2a84113d30 WHIRLPOOL 9ec9b6a93e95f23b15c8816de0384b62297ae06cec9b4c8cabeef8ecbefcd7c14b751c7310fa13a1326028a61c4f7206b5c0ce3388e0b40e44fffa0de6129721
DIST php-7.1.9.tar.xz 12157172 SHA256 ec9ca348dd51f19a84dc5d33acfff1fba1f977300604bdac08ed46ae2c281e8c SHA512 feefaae7edda115c9c10d6a07a9d897343ca972e4e5ec327f383cb28f204ac10956653fc120f0474901e59f32f105dc1a7afe64d49a3ea8bf486377837618013 WHIRLPOOL 5179ca1adddb099a3d8dccc009a96202f6d69edeea3126a5f861498475f36413f0a17a6a501b1b0eadba3acfb4ff262a8a5a7ee324043f03d74e857d1dc7c6a8
DIST php-7.2.0RC2.tar.xz 12051048 SHA256 0406366fcd5be4ee5e76e3c6a4279e04f93a1827a44d27c4f57fbed9e01cd281 SHA512 aa7e3632381677db995a72dcf0276a3be0d40c32138743a225d8e41e791a6fe00859e27ed7699be90e3843d3eb4da90af6a31aab65dc790c402863d09f409a48 WHIRLPOOL fc8c39b8b4a6184fa8e460dd91b0afbb62c5321effd5c5227eb276adb46857acf05e0fa5749279b0f26fe2c08d9f8001f0132507ab778dd1f7df7237da74b623
DIST php-7.2.0RC3.tar.xz 11973876 SHA256 abe0a237f94837854f2cfd9c7dc99fbca2c817ae1d6194a514f29b463db36853 SHA512 a33e72e458e7e9fef59db5c147da9efdbd6d2987610216d99fd6c8bb25927153573614bdf3ca3b4e3278c5e6657fbd30665e3a895448afb0d6951af65e8e5b55 WHIRLPOOL 128ff4e663dfca3ad60c7ba2fa789a394a607ae6e93bb1e2b371972179c5fcecf13504cab0f6ec20bbf08c4040a6bfba8388bed9f60ddbc226dd9b9c241e555f

@ -0,0 +1,739 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit flag-o-matic versionator systemd
DESCRIPTION="The PHP language runtime engine"
HOMEPAGE="http://php.net/"
SRC_URI="http://php.net/distributions/${P}.tar.xz"
LICENSE="PHP-3.01
BSD
Zend-2.0
bcmath? ( LGPL-2.1+ )
fpm? ( BSD-2 )
gd? ( gd )
unicode? ( BSD-2 LGPL-2.1 )"
SLOT="$(get_version_component_range 1-2)"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
# We can build the following SAPIs in the given order
SAPIS="embed cli cgi fpm apache2 phpdbg"
# SAPIs and SAPI-specific USE flags (cli SAPI is default on):
IUSE="${IUSE}
${SAPIS/cli/+cli}
threads"
IUSE="${IUSE} acl bcmath berkdb bzip2 calendar cdb cjk
coverage crypt +ctype curl debug
enchant exif +fileinfo +filter firebird
flatfile ftp gd gdbm gmp +hash +iconv imap inifile
intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl
mhash mssql mysql 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
sysvipc systemd tidy +tokenizer truetype unicode wddx webp
+xml xmlreader xmlwriter xmlrpc xpm xslt zip zlib"
# The supported (that is, autodetected) versions of BDB are listed in
# the ./configure script. Other versions *work*, but we need to stick to
# the ones that can be detected to avoid a repeat of bug #564824.
COMMON_DEPEND="
>=app-eselect/eselect-php-0.9.1[apache2?,fpm?]
>=dev-libs/libpcre-8.32[unicode]
acl? ( sys-apps/acl )
apache2? ( || ( >=www-servers/apache-2.4[apache2_modules_unixd,threads=]
<www-servers/apache-2.4[threads=] ) )
berkdb? ( || ( sys-libs/db:5.3
sys-libs/db:5.1
sys-libs/db:4.8
sys-libs/db:4.7
sys-libs/db:4.6
sys-libs/db:4.5 ) )
bzip2? ( app-arch/bzip2 )
cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
cjk? ( !gd? (
virtual/jpeg:0
media-libs/libpng:0=
sys-libs/zlib
) )
coverage? ( dev-util/lcov )
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:0 )
iconv? ( virtual/libiconv )
imap? ( virtual/imap-c-client[kerberos=,ssl=] )
intl? ( dev-libs/icu:= )
iodbc? ( dev-db/libiodbc )
kerberos? ( virtual/krb5 )
ldap? ( >=net-nds/openldap-1.2.11 )
ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 )
libedit? ( || ( sys-freebsd/freebsd-lib dev-libs/libedit ) )
mssql? ( dev-db/freetds[mssql] )
nls? ( sys-devel/gettext )
oci8-instant-client? ( dev-db/oracle-instantclient-basic )
odbc? ( >=dev-db/unixODBC-1.8.13 )
postgres? ( dev-db/postgresql:* )
qdbm? ( dev-db/qdbm )
readline? ( sys-libs/readline:0= )
recode? ( app-text/recode )
sharedmem? ( dev-libs/mm )
simplexml? ( >=dev-libs/libxml2-2.6.8 )
snmp? ( >=net-analyzer/net-snmp-5.2 )
soap? ( >=dev-libs/libxml2-2.6.8 )
spell? ( >=app-text/aspell-0.50 )
sqlite? ( >=dev-db/sqlite-3.7.6.3 )
ssl? (
!libressl? ( dev-libs/openssl:0 )
libressl? ( dev-libs/libressl )
)
tidy? ( app-text/htmltidy )
truetype? (
=media-libs/freetype-2*
!gd? (
virtual/jpeg:0 media-libs/libpng:0= sys-libs/zlib )
)
unicode? ( dev-libs/oniguruma:= )
wddx? ( >=dev-libs/libxml2-2.6.8 )
webp? ( media-libs/libwebp )
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 )
"
RDEPEND="${COMMON_DEPEND}
virtual/mta
fpm? (
selinux? ( sec-policy/selinux-phpfpm )
systemd? ( sys-apps/systemd ) )"
DEPEND="${COMMON_DEPEND}
app-arch/xz-utils
>=sys-devel/bison-3.0.1
sys-devel/flex
>=sys-devel/m4-1.4.3
>=sys-devel/libtool-1.5.18"
# Without USE=readline or libedit, the interactive "php -a" CLI will hang.
REQUIRED_USE="
|| ( cli cgi fpm apache2 embed phpdbg )
cli? ( ^^ ( readline libedit ) )
truetype? ( gd )
webp? ( 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 )
qdbm? ( !gdbm )
readline? ( !libedit )
recode? ( !imap !mysqli !mysql )
sharedmem? ( !threads )
mysql? ( || ( mysqli pdo ) )
"
PHP_MV="$(get_major_version)"
php_install_ini() {
local phpsapi="${1}"
# work out where we are installing the ini file
php_set_ini_dir "${phpsapi}"
# Always install the production INI file, bug 611214.
local phpinisrc="php.ini-production-${phpsapi}"
cp php.ini-production "${phpinisrc}" || die
# default to /tmp for save_path, bug #282768
sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die
# Set the extension dir
sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \
-i "${phpinisrc}" || die
# Set the include path to point to where we want to find PEAR packages
sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die
dodir "${PHP_INI_DIR#${EPREFIX}}"
insinto "${PHP_INI_DIR#${EPREFIX}}"
newins "${phpinisrc}" php.ini
elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}"
elog
dodir "${PHP_EXT_INI_DIR#${EPREFIX}}"
dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}"
if use opcache; then
elog "Adding opcache to $PHP_EXT_INI_DIR"
echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \
"${D}/${PHP_EXT_INI_DIR}"/opcache.ini
dosym "${PHP_EXT_INI_DIR#${EPREFIX}}/opcache.ini" \
"${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini"
fi
# SAPI-specific handling
if [[ "${sapi}" == "fpm" ]] ; then
einfo "Installing FPM config files php-fpm.conf and www.conf"
insinto "${PHP_INI_DIR#${EPREFIX}}"
doins sapi/fpm/php-fpm.conf
insinto "${PHP_INI_DIR#${EPREFIX}}/fpm.d"
doins sapi/fpm/www.conf
fi
dodoc php.ini-{development,production}
}
php_set_ini_dir() {
PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}"
PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext"
PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active"
}
src_prepare() {
default
# In php-7.x, the FPM pool configuration files have been split off
# of the main config. By default the pool config files go in
# e.g. /etc/php-fpm.d, which isn't slotted. So here we move the
# include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later
# we'll install the pool configuration file "www.conf" there.
php_set_ini_dir fpm
sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \
sapi/fpm/php-fpm.conf.in \
|| die 'failed to move the include directory in php-fpm.conf'
}
src_configure() {
addpredict /usr/share/snmp/mibs/.index
addpredict /var/lib/net-snmp/mib_indexes
PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}"
# The php-fpm config file wants localstatedir to be ${EPREFIX}/var
# and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002.
local our_conf=(
--prefix="${PHP_DESTDIR}"
--mandir="${PHP_DESTDIR}/man"
--infodir="${PHP_DESTDIR}/info"
--libdir="${PHP_DESTDIR}/lib"
--with-libdir="$(get_libdir)"
--localstatedir="${EPREFIX}/var"
--without-pear
$(use_enable threads maintainer-zts)
)
our_conf+=(
$(use_with acl fpm-acl)
$(use_enable bcmath bcmath)
$(use_with bzip2 bz2 "${EPREFIX}/usr")
$(use_enable calendar calendar)
$(use_enable coverage gcov)
$(use_enable ctype ctype)
$(use_with curl curl "${EPREFIX}/usr")
$(use_enable xml dom)
$(use_with enchant enchant "${EPREFIX}/usr")
$(use_enable exif exif)
$(use_enable fileinfo fileinfo)
$(use_enable filter filter)
$(use_enable ftp ftp)
$(use_with nls gettext "${EPREFIX}/usr")
$(use_with gmp gmp "${EPREFIX}/usr")
$(use_enable hash hash)
$(use_with mhash mhash "${EPREFIX}/usr")
$(use_with iconv iconv \
$(use elibc_glibc || use elibc_musl || 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 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_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
our_conf+=( "--enable-dba${shared}" )
fi
# DBA drivers support
our_conf+=(
$(use_with cdb cdb)
$(use_with berkdb db4 "${EPREFIX}/usr")
$(use_enable flatfile flatfile)
$(use_with gdbm gdbm "${EPREFIX}/usr")
$(use_enable inifile inifile)
$(use_with qdbm qdbm "${EPREFIX}/usr")
)
# Support for the GD graphics library
our_conf+=(
$(use_with truetype freetype-dir "${EPREFIX}/usr")
$(use_enable cjk gd-jis-conv)
$(use_with gd jpeg-dir "${EPREFIX}/usr")
$(use_with gd png-dir "${EPREFIX}/usr")
$(use_with xpm xpm-dir "${EPREFIX}/usr")
)
if use webp; then
our_conf+=( --with-webp-dir="${EPREFIX}/usr" )
fi
# enable gd last, so configure can pick up the previous settings
our_conf+=( $(use_with gd gd) )
# IMAP support
if use imap ; then
our_conf+=(
$(use_with imap imap "${EPREFIX}/usr")
$(use_with ssl imap-ssl "${EPREFIX}/usr")
)
fi
# Interbase/firebird support
our_conf+=( $(use_with firebird interbase "${EPREFIX}/usr") )
# LDAP support
if use ldap ; then
our_conf+=(
$(use_with ldap ldap "${EPREFIX}/usr")
$(use_with ldap-sasl ldap-sasl "${EPREFIX}/usr")
)
fi
# MySQL support
local mysqllib="mysqlnd"
local mysqlilib="mysqlnd"
our_conf+=( $(use_with mysqli mysqli "${mysqlilib}") )
local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock"
if use mysql || use mysqli ; then
our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") )
fi
# ODBC support
our_conf+=(
$(use_with odbc unixODBC "${EPREFIX}/usr")
$(use_with iodbc iodbc "${EPREFIX}/usr")
)
# Oracle support
our_conf+=( $(use_with oci8-instant-client oci8) )
# PDO support
if use pdo ; then
our_conf+=(
$(use_with mssql pdo-dblib "${EPREFIX}/usr")
$(use_with mysql pdo-mysql "${mysqllib}")
$(use_with postgres pdo-pgsql)
$(use_with sqlite pdo-sqlite "${EPREFIX}/usr")
$(use_with firebird pdo-firebird "${EPREFIX}/usr")
$(use_with odbc pdo-odbc "unixODBC,${EPREFIX}/usr")
$(use_with oci8-instant-client pdo-oci)
)
fi
# readline/libedit support
our_conf+=(
$(use_with readline readline "${EPREFIX}/usr")
$(use_with libedit libedit "${EPREFIX}/usr")
)
# Session support
if use session ; then
our_conf+=( $(use_with sharedmem mm "${EPREFIX}/usr") )
else
our_conf+=( $(use_enable session session) )
fi
# Use pic for shared modules such as apache2's mod_php
our_conf+=( --with-pic )
# we use the system copy of pcre
# --with-pcre-regex affects ext/pcre
# --with-pcre-dir affects ext/filter and ext/zip
our_conf+=(
--with-pcre-regex="${EPREFIX}/usr"
--with-pcre-dir="${EPREFIX}/usr"
)
# Catch CFLAGS problems
# Fixes bug #14067.
# Changed order to run it in reverse for bug #32022 and #12021.
replace-cpu-flags "k6*" "i586"
# Cache the ./configure test results between SAPIs.
our_conf+=( --cache-file="${T}/config.cache" )
# Support user-passed configuration parameters
our_conf+=( ${EXTRA_ECONF:-} )
# Support the Apache2 extras, they must be set globally for all
# SAPIs to work correctly, especially for external PHP extensions
mkdir -p "${WORKDIR}/sapis-build" || die
for one_sapi in $SAPIS ; do
use "${one_sapi}" || continue
php_set_ini_dir "${one_sapi}"
# The BUILD_DIR variable is used to determine where to output
# the files that autotools creates. This was all originally
# based on the autotools-utils eclass.
BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}"
cp -a "${S}" "${BUILD_DIR}" || die
cd "${BUILD_DIR}" || die
local sapi_conf=(
--with-config-file-path="${PHP_INI_DIR}"
--with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}"
)
for sapi in $SAPIS ; do
case "$sapi" in
cli|cgi|embed|fpm|phpdbg)
if [[ "${one_sapi}" == "${sapi}" ]] ; then
sapi_conf+=( "--enable-${sapi}" )
else
sapi_conf+=( "--disable-${sapi}" )
fi
;;
apache2)
if [[ "${one_sapi}" == "${sapi}" ]] ; then
sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" )
else
sapi_conf+=( --without-apxs2 )
fi
;;
esac
done
# Construct the $myeconfargs array by concatenating $our_conf
# (the common args) and $sapi_conf (the SAPI-specific args).
local myeconfargs=( "${our_conf[@]}" )
myeconfargs+=( "${sapi_conf[@]}" )
pushd "${BUILD_DIR}" > /dev/null || die
econf "${myeconfargs[@]}"
popd > /dev/null || die
done
}
src_compile() {
# snmp seems to run during src_compile, too (bug #324739)
addpredict /usr/share/snmp/mibs/.index
addpredict /var/lib/net-snmp/mib_indexes
for sapi in ${SAPIS} ; do
if use "${sapi}"; then
cd "${WORKDIR}/sapis-build/$sapi" || \
die "Failed to change dir to ${WORKDIR}/sapis-build/$1"
emake
fi
done
}
src_install() {
# see bug #324739 for what happens when we don't have that
addpredict /usr/share/snmp/mibs/.index
# grab the first SAPI that got built and install common files from there
local first_sapi=""
for sapi in $SAPIS ; do
if use $sapi ; then
first_sapi=$sapi
break
fi
done
# Makefile forgets to create this before trying to write to it...
dodir "${PHP_DESTDIR#${EPREFIX}}/bin"
# Install php environment (without any sapis)
cd "${WORKDIR}/sapis-build/$first_sapi" || die
emake INSTALL_ROOT="${D}" \
install-build install-headers install-programs
local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)"
# Create the directory where we'll put version-specific php scripts
keepdir "/usr/share/php${PHP_MV}"
local sapi="", file=""
local sapi_list=""
for sapi in ${SAPIS}; do
if use "${sapi}" ; then
einfo "Installing SAPI: ${sapi}"
cd "${WORKDIR}/sapis-build/${sapi}" || die
if [[ "${sapi}" == "apache2" ]] ; then
# We're specifically not using emake install-sapi as libtool
# may cause unnecessary relink failures (see bug #351266)
insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/"
newins ".libs/libphp${PHP_MV}$(get_libname)" \
"libphp${PHP_MV}$(get_libname)"
keepdir "/usr/$(get_libdir)/apache2/modules"
else
# needed each time, php_install_ini would reset it
local dest="${PHP_DESTDIR#${EPREFIX}}"
into "${dest}"
case "$sapi" in
cli)
source="sapi/cli/php"
;;
cgi)
source="sapi/cgi/php-cgi"
;;
fpm)
source="sapi/fpm/php-fpm"
;;
embed)
source="libs/libphp${PHP_MV}$(get_libname)"
;;
phpdbg)
source="sapi/phpdbg/phpdbg"
;;
*)
die "unhandled sapi in src_install"
;;
esac
if [[ "${source}" == *"$(get_libname)" ]]; then
dolib.so "${source}"
else
dobin "${source}"
local name="$(basename ${source})"
dosym "${dest}/bin/${name}" "/usr/bin/${name}${SLOT}"
fi
fi
php_install_ini "${sapi}"
# construct correct SAPI string for php-config
# thanks to ferringb for the bash voodoo
if [[ "${sapi}" == "apache2" ]]; then
sapi_list="${sapi_list:+${sapi_list} }apache2handler"
else
sapi_list="${sapi_list:+${sapi_list} }${sapi}"
fi
fi
done
# Installing opcache module
if use opcache ; then
into "${PHP_DESTDIR#${EPREFIX}}"
dolib.so "modules/opcache$(get_libname)"
fi
# Install env.d files
newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}"
sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
# set php-config variable correctly (bug #278439)
sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \
"${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die
if use fpm ; then
if use systemd; then
systemd_newunit "${FILESDIR}/php-fpm_at.service" \
"php-fpm@${SLOT}.service"
else
systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \
"php-fpm@${SLOT}.service"
fi
fi
}
src_test() {
echo ">>> Test phase [test]: ${CATEGORY}/${PF}"
PHP_BIN="${WORKDIR}/sapis-build/cli/sapi/cli/php"
if [[ ! -x "${PHP_BIN}" ]] ; then
ewarn "Test phase requires USE=cli, skipping"
return
else
export TEST_PHP_EXECUTABLE="${PHP_BIN}"
fi
if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then
export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi"
fi
if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then
export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg"
fi
REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \
"session.save_path=${T}" \
"${WORKDIR}/sapis-build/cli/run-tests.php" -n -q -d \
"session.save_path=${T}"
for name in ${EXPECTED_TEST_FAILURES}; do
mv "${name}.out" "${name}.out.orig" 2>/dev/null || die
done
local failed="$(find -name '*.out')"
if [[ ${failed} != "" ]] ; then
ewarn "The following test cases failed unexpectedly:"
for name in ${failed}; do
ewarn " ${name/.out/}"
done
else
einfo "No unexpected test failures, all fine"
fi
if [[ ${PHP_SHOW_UNEXPECTED_TEST_PASS} == "1" ]] ; then
local passed=""
for name in ${EXPECTED_TEST_FAILURES}; do
[[ -f "${name}.diff" ]] && continue
passed="${passed} ${name}"
done
if [[ ${passed} != "" ]] ; then
einfo "The following test cases passed unexpectedly:"
for name in ${passed}; do
ewarn " ${passed}"
done
else
einfo "None of the known-to-fail tests passed, all fine"
fi
fi
}
pkg_postinst() {
# Output some general info to the user
if use apache2 ; then
elog
elog "To enable PHP in apache, you will need to add \"-D PHP\" to"
elog "your apache2 command. OpenRC users can append that string to"
elog "APACHE2_OPTS in /etc/conf.d/apache2."
elog
elog "The apache module configuration file 70_mod_php.conf is"
elog "provided (and maintained) by eselect-php."
elog
fi
# Create the symlinks for php
for m in ${SAPIS}; do
[[ ${m} == 'embed' ]] && continue;
if use $m ; then
local ci=$(eselect php show $m)
if [[ -z $ci ]]; then
eselect php set $m php${SLOT} || die
einfo "Switched ${m} to use php:${SLOT}"
einfo
elif [[ $ci != "php${SLOT}" ]] ; then
elog "To switch $m to use php:${SLOT}, run"
elog " eselect php set $m php${SLOT}"
elog
fi
fi
done
# Remove dead symlinks for SAPIs that were just disabled. For
# example, if the user has the cgi SAPI enabled, then he has an
# eselect-php symlink for it. If he later reinstalls PHP with
# USE="-cgi", that symlink will break. This call to eselect is
# supposed to remove that dead link per bug 572436.
eselect php cleanup || die
if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then
elog "To build extensions for this version of PHP, you will need to"
elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable."
elog
fi
# Warn about the removal of PHP_INI_VERSION if the user has it set.
if [[ -n "${PHP_INI_VERSION}" ]]; then
ewarn 'The PHP_INI_VERSION variable has been phased out. You may'
ewarn 'remove it from your configuration at your convenience. See'
ewarn
ewarn ' https://bugs.gentoo.org/611214'
ewarn
ewarn 'for more information.'
fi
elog "For details on how version slotting works, please see"
elog "the wiki:"
elog
elog " https://wiki.gentoo.org/wiki/PHP"
elog
}
pkg_postrm() {
# This serves two purposes. First, if we have just removed the last
# installed version of PHP, then this will remove any dead symlinks
# belonging to eselect-php. Second, if a user upgrades slots from
# (say) 5.6 to 7.0 and depcleans the old slot, then this will update
# his existing symlinks to point to the new 7.0 installation. The
# latter is bug 432962.
#
# Note: the eselect-php package may not be installed at this point,
# so we can't die() if this command fails.
eselect php cleanup
}

@ -0,0 +1,721 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit flag-o-matic versionator systemd
DESCRIPTION="The PHP language runtime engine"
HOMEPAGE="http://php.net/"
SRC_URI="http://php.net/distributions/${P}.tar.xz"
LICENSE="PHP-3.01
BSD
Zend-2.0
bcmath? ( LGPL-2.1+ )
fpm? ( BSD-2 )
gd? ( gd )
unicode? ( BSD-2 LGPL-2.1 )"
SLOT="$(get_version_component_range 1-2)"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
# We can build the following SAPIs in the given order
SAPIS="embed cli cgi fpm apache2 phpdbg"
# SAPIs and SAPI-specific USE flags (cli SAPI is default on):
IUSE="${IUSE}
${SAPIS/cli/+cli}
threads"
IUSE="${IUSE} acl bcmath berkdb bzip2 calendar cdb cjk
coverage crypt +ctype curl debug
enchant exif +fileinfo +filter firebird
flatfile ftp gd gdbm gmp +hash +iconv imap inifile
intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl
mhash mssql mysql 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
sysvipc systemd test tidy +tokenizer truetype unicode wddx webp
+xml xmlreader xmlwriter xmlrpc xpm xslt zip zlib"
# The supported (that is, autodetected) versions of BDB are listed in
# the ./configure script. Other versions *work*, but we need to stick to
# the ones that can be detected to avoid a repeat of bug #564824.
COMMON_DEPEND="
>=app-eselect/eselect-php-0.9.1[apache2?,fpm?]
>=dev-libs/libpcre-8.32[unicode]
acl? ( sys-apps/acl )
apache2? ( || ( >=www-servers/apache-2.4[apache2_modules_unixd,threads=]
<www-servers/apache-2.4[threads=] ) )
berkdb? ( || ( sys-libs/db:5.3
sys-libs/db:5.1
sys-libs/db:4.8
sys-libs/db:4.7
sys-libs/db:4.6
sys-libs/db:4.5 ) )
bzip2? ( app-arch/bzip2 )
cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
coverage? ( dev-util/lcov )
crypt? ( >=dev-libs/libmcrypt-2.4 )
curl? ( >=net-misc/curl-7.10.5 )
enchant? ( app-text/enchant )
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:0 )
iconv? ( virtual/libiconv )
imap? ( virtual/imap-c-client[kerberos=,ssl=] )
intl? ( dev-libs/icu:= )
iodbc? ( dev-db/libiodbc )
kerberos? ( virtual/krb5 )
ldap? ( >=net-nds/openldap-1.2.11 )
ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 )
libedit? ( || ( sys-freebsd/freebsd-lib dev-libs/libedit ) )
mssql? ( dev-db/freetds[mssql] )
nls? ( sys-devel/gettext )
oci8-instant-client? ( dev-db/oracle-instantclient-basic )
odbc? ( >=dev-db/unixODBC-1.8.13 )
postgres? ( dev-db/postgresql:* )
qdbm? ( dev-db/qdbm )
readline? ( sys-libs/readline:0= )
recode? ( app-text/recode )
sharedmem? ( dev-libs/mm )
simplexml? ( >=dev-libs/libxml2-2.6.8 )
snmp? ( >=net-analyzer/net-snmp-5.2 )
soap? ( >=dev-libs/libxml2-2.6.8 )
spell? ( >=app-text/aspell-0.50 )
sqlite? ( >=dev-db/sqlite-3.7.6.3 )
ssl? (
!libressl? ( dev-libs/openssl:0 )
libressl? ( dev-libs/libressl )
)
tidy? ( || ( app-text/tidy-html5 app-text/htmltidy ) )
truetype? ( =media-libs/freetype-2* )
unicode? ( dev-libs/oniguruma:= )
wddx? ( >=dev-libs/libxml2-2.6.8 )
webp? ( media-libs/libwebp )
xml? ( >=dev-libs/libxml2-2.6.8 )
xmlrpc? ( >=dev-libs/libxml2-2.6.8 virtual/libiconv )
xmlreader? ( >=dev-libs/libxml2-2.6.8 )
xmlwriter? ( >=dev-libs/libxml2-2.6.8 )
xpm? ( x11-libs/libXpm )
xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 )
zip? ( sys-libs/zlib )
zlib? ( sys-libs/zlib )
"
RDEPEND="${COMMON_DEPEND}
virtual/mta
fpm? (
selinux? ( sec-policy/selinux-phpfpm )
systemd? ( sys-apps/systemd ) )"
# Bison isn't actually needed when building from a release tarball
# However, the configure script will warn if it's absent or if you
# have an incompatible version installed. See bug 593278.
DEPEND="${COMMON_DEPEND}
app-arch/xz-utils
>=sys-devel/bison-3.0.1"
# Without USE=readline or libedit, the interactive "php -a" CLI will hang.
REQUIRED_USE="
|| ( cli cgi fpm apache2 embed phpdbg )
cli? ( ^^ ( readline libedit ) )
truetype? ( gd )
webp? ( 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 )
qdbm? ( !gdbm )
readline? ( !libedit )
recode? ( !imap !mysqli !mysql )
sharedmem? ( !threads )
mysql? ( || ( mysqli pdo ) )
"
PHP_MV="$(get_major_version)"
php_install_ini() {
local phpsapi="${1}"
# work out where we are installing the ini file
php_set_ini_dir "${phpsapi}"
# Always install the production INI file, bug 611214.
local phpinisrc="php.ini-production-${phpsapi}"
cp php.ini-production "${phpinisrc}" || die
# default to /tmp for save_path, bug #282768
sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die
# Set the extension dir
sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \
-i "${phpinisrc}" || die
# Set the include path to point to where we want to find PEAR packages
sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die
dodir "${PHP_INI_DIR#${EPREFIX}}"
insinto "${PHP_INI_DIR#${EPREFIX}}"
newins "${phpinisrc}" php.ini
elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}"
elog
dodir "${PHP_EXT_INI_DIR#${EPREFIX}}"
dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}"
if use opcache; then
elog "Adding opcache to $PHP_EXT_INI_DIR"
echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \
"${D}/${PHP_EXT_INI_DIR}"/opcache.ini
dosym "${PHP_EXT_INI_DIR#${EPREFIX}}/opcache.ini" \
"${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini"
fi
# SAPI-specific handling
if [[ "${sapi}" == "fpm" ]] ; then
einfo "Installing FPM config files php-fpm.conf and www.conf"
insinto "${PHP_INI_DIR#${EPREFIX}}"
doins sapi/fpm/php-fpm.conf
insinto "${PHP_INI_DIR#${EPREFIX}}/fpm.d"
doins sapi/fpm/www.conf
fi
dodoc php.ini-{development,production}
}
php_set_ini_dir() {
PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}"
PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext"
PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active"
}
src_prepare() {
default
# In php-7.x, the FPM pool configuration files have been split off
# of the main config. By default the pool config files go in
# e.g. /etc/php-fpm.d, which isn't slotted. So here we move the
# include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later
# we'll install the pool configuration file "www.conf" there.
php_set_ini_dir fpm
sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \
sapi/fpm/php-fpm.conf.in \
|| die 'failed to move the include directory in php-fpm.conf'
}
src_configure() {
addpredict /usr/share/snmp/mibs/.index
addpredict /var/lib/net-snmp/mib_indexes
PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}"
# The php-fpm config file wants localstatedir to be ${EPREFIX}/var
# and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002.
local our_conf=(
--prefix="${PHP_DESTDIR}"
--mandir="${PHP_DESTDIR}/man"
--infodir="${PHP_DESTDIR}/info"
--libdir="${PHP_DESTDIR}/lib"
--with-libdir="$(get_libdir)"
--localstatedir="${EPREFIX}/var"
--without-pear
$(use_enable threads maintainer-zts)
)
our_conf+=(
$(use_with acl fpm-acl)
$(use_enable bcmath bcmath)
$(use_with bzip2 bz2 "${EPREFIX}/usr")
$(use_enable calendar calendar)
$(use_enable coverage gcov)
$(use_enable ctype ctype)
$(use_with curl curl "${EPREFIX}/usr")
$(use_enable xml dom)
$(use_with enchant enchant "${EPREFIX}/usr")
$(use_enable exif exif)
$(use_enable fileinfo fileinfo)
$(use_enable filter filter)
$(use_enable ftp ftp)
$(use_with nls gettext "${EPREFIX}/usr")
$(use_with gmp gmp "${EPREFIX}/usr")
$(use_enable hash hash)
$(use_with mhash mhash "${EPREFIX}/usr")
$(use_with iconv iconv \
$(use elibc_glibc || use elibc_musl || 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 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_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
our_conf+=( "--enable-dba${shared}" )
fi
# DBA drivers support
our_conf+=(
$(use_with cdb cdb)
$(use_with berkdb db4 "${EPREFIX}/usr")
$(use_enable flatfile flatfile)
$(use_with gdbm gdbm "${EPREFIX}/usr")
$(use_enable inifile inifile)
$(use_with qdbm qdbm "${EPREFIX}/usr")
)
# Support for the GD graphics library
our_conf+=(
$(use_with truetype freetype-dir "${EPREFIX}/usr")
$(use_enable cjk gd-jis-conv)
$(use_with gd jpeg-dir "${EPREFIX}/usr")
$(use_with gd png-dir "${EPREFIX}/usr")
$(use_with xpm xpm-dir "${EPREFIX}/usr")
)
if use webp; then
our_conf+=( --with-webp-dir="${EPREFIX}/usr" )
fi
# enable gd last, so configure can pick up the previous settings
our_conf+=( $(use_with gd gd) )
# IMAP support
if use imap ; then
our_conf+=(
$(use_with imap imap "${EPREFIX}/usr")
$(use_with ssl imap-ssl "${EPREFIX}/usr")
)
fi
# Interbase/firebird support
our_conf+=( $(use_with firebird interbase "${EPREFIX}/usr") )
# LDAP support
if use ldap ; then
our_conf+=(
$(use_with ldap ldap "${EPREFIX}/usr")
$(use_with ldap-sasl ldap-sasl "${EPREFIX}/usr")
)
fi
# MySQL support
local mysqllib="mysqlnd"
local mysqlilib="mysqlnd"
our_conf+=( $(use_with mysqli mysqli "${mysqlilib}") )
local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock"
if use mysql || use mysqli ; then
our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") )
fi
# ODBC support
our_conf+=(
$(use_with odbc unixODBC "${EPREFIX}/usr")
$(use_with iodbc iodbc "${EPREFIX}/usr")
)
# Oracle support
our_conf+=( $(use_with oci8-instant-client oci8) )
# PDO support
if use pdo ; then
our_conf+=(
$(use_with mssql pdo-dblib "${EPREFIX}/usr")
$(use_with mysql pdo-mysql "${mysqllib}")
$(use_with postgres pdo-pgsql)
$(use_with sqlite pdo-sqlite "${EPREFIX}/usr")
$(use_with firebird pdo-firebird "${EPREFIX}/usr")
$(use_with odbc pdo-odbc "unixODBC,${EPREFIX}/usr")
$(use_with oci8-instant-client pdo-oci)
)
fi
# readline/libedit support
our_conf+=(
$(use_with readline readline "${EPREFIX}/usr")
$(use_with libedit libedit "${EPREFIX}/usr")
)
# Session support
if use session ; then
our_conf+=( $(use_with sharedmem mm "${EPREFIX}/usr") )
else
our_conf+=( $(use_enable session session) )
fi
# Use pic for shared modules such as apache2's mod_php
our_conf+=( --with-pic )
# we use the system copy of pcre
# --with-pcre-regex affects ext/pcre
# --with-pcre-dir affects ext/filter and ext/zip
our_conf+=(
--with-pcre-regex="${EPREFIX}/usr"
--with-pcre-dir="${EPREFIX}/usr"
)
# Catch CFLAGS problems
# Fixes bug #14067.
# Changed order to run it in reverse for bug #32022 and #12021.
replace-cpu-flags "k6*" "i586"
# Cache the ./configure test results between SAPIs.
our_conf+=( --cache-file="${T}/config.cache" )
# Support user-passed configuration parameters
our_conf+=( ${EXTRA_ECONF:-} )
# Support the Apache2 extras, they must be set globally for all
# SAPIs to work correctly, especially for external PHP extensions
mkdir -p "${WORKDIR}/sapis-build" || die
for one_sapi in $SAPIS ; do
use "${one_sapi}" || continue
php_set_ini_dir "${one_sapi}"
# The BUILD_DIR variable is used to determine where to output
# the files that autotools creates. This was all originally
# based on the autotools-utils eclass.
BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}"
cp -a "${S}" "${BUILD_DIR}" || die
cd "${BUILD_DIR}" || die
local sapi_conf=(
--with-config-file-path="${PHP_INI_DIR}"
--with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}"
)
for sapi in $SAPIS ; do
case "$sapi" in
cli|cgi|embed|fpm|phpdbg)
if [[ "${one_sapi}" == "${sapi}" ]] ; then
sapi_conf+=( "--enable-${sapi}" )
else
sapi_conf+=( "--disable-${sapi}" )
fi
;;
apache2)
if [[ "${one_sapi}" == "${sapi}" ]] ; then
sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" )
else
sapi_conf+=( --without-apxs2 )
fi
;;
esac
done
# Construct the $myeconfargs array by concatenating $our_conf
# (the common args) and $sapi_conf (the SAPI-specific args).
local myeconfargs=( "${our_conf[@]}" )
myeconfargs+=( "${sapi_conf[@]}" )
pushd "${BUILD_DIR}" > /dev/null || die
econf "${myeconfargs[@]}"
popd > /dev/null || die
done
}
src_compile() {
# snmp seems to run during src_compile, too (bug #324739)
addpredict /usr/share/snmp/mibs/.index
addpredict /var/lib/net-snmp/mib_indexes
for sapi in ${SAPIS} ; do
if use "${sapi}"; then
cd "${WORKDIR}/sapis-build/$sapi" || \
die "Failed to change dir to ${WORKDIR}/sapis-build/$1"
emake
fi
done
}
src_install() {
# see bug #324739 for what happens when we don't have that
addpredict /usr/share/snmp/mibs/.index
# grab the first SAPI that got built and install common files from there
local first_sapi=""
for sapi in $SAPIS ; do
if use $sapi ; then
first_sapi=$sapi
break
fi
done
# Makefile forgets to create this before trying to write to it...
dodir "${PHP_DESTDIR#${EPREFIX}}/bin"
# Install php environment (without any sapis)
cd "${WORKDIR}/sapis-build/$first_sapi" || die
emake INSTALL_ROOT="${D}" \
install-build install-headers install-programs
local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)"
# Create the directory where we'll put version-specific php scripts
keepdir "/usr/share/php${PHP_MV}"
local sapi="", file=""
local sapi_list=""
for sapi in ${SAPIS}; do
if use "${sapi}" ; then
einfo "Installing SAPI: ${sapi}"
cd "${WORKDIR}/sapis-build/${sapi}" || die
if [[ "${sapi}" == "apache2" ]] ; then
# We're specifically not using emake install-sapi as libtool
# may cause unnecessary relink failures (see bug #351266)
insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/"
newins ".libs/libphp${PHP_MV}$(get_libname)" \
"libphp${PHP_MV}$(get_libname)"
keepdir "/usr/$(get_libdir)/apache2/modules"
else
# needed each time, php_install_ini would reset it
local dest="${PHP_DESTDIR#${EPREFIX}}"
into "${dest}"
case "$sapi" in
cli)
source="sapi/cli/php"
;;
cgi)
source="sapi/cgi/php-cgi"
;;
fpm)
source="sapi/fpm/php-fpm"
;;
embed)
source="libs/libphp${PHP_MV}$(get_libname)"
;;
phpdbg)
source="sapi/phpdbg/phpdbg"
;;
*)
die "unhandled sapi in src_install"
;;
esac
if [[ "${source}" == *"$(get_libname)" ]]; then
dolib.so "${source}"
else
dobin "${source}"
local name="$(basename ${source})"
dosym "${dest}/bin/${name}" "/usr/bin/${name}${SLOT}"
fi
fi
php_install_ini "${sapi}"
# construct correct SAPI string for php-config
# thanks to ferringb for the bash voodoo
if [[ "${sapi}" == "apache2" ]]; then
sapi_list="${sapi_list:+${sapi_list} }apache2handler"
else
sapi_list="${sapi_list:+${sapi_list} }${sapi}"
fi
fi
done
# Installing opcache module
if use opcache ; then
into "${PHP_DESTDIR#${EPREFIX}}"
dolib.so "modules/opcache$(get_libname)"
fi
# Install env.d files
newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}"
sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
# set php-config variable correctly (bug #278439)
sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \
"${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die
if use fpm ; then
if use systemd; then
systemd_newunit "${FILESDIR}/php-fpm_at.service" \
"php-fpm@${SLOT}.service"
else
systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \
"php-fpm@${SLOT}.service"
fi
fi
}
src_test() {
echo ">>> Test phase [test]: ${CATEGORY}/${PF}"
PHP_BIN="${WORKDIR}/sapis-build/cli/sapi/cli/php"
if [[ ! -x "${PHP_BIN}" ]] ; then
ewarn "Test phase requires USE=cli, skipping"
return
else
export TEST_PHP_EXECUTABLE="${PHP_BIN}"
fi
if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then
export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi"
fi
if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then
export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg"
fi
REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \
"session.save_path=${T}" \
"${WORKDIR}/sapis-build/cli/run-tests.php" -n -q -d \
"session.save_path=${T}"
for name in ${EXPECTED_TEST_FAILURES}; do
mv "${name}.out" "${name}.out.orig" 2>/dev/null || die
done
local failed="$(find -name '*.out')"
if [[ ${failed} != "" ]] ; then
ewarn "The following test cases failed unexpectedly:"
for name in ${failed}; do
ewarn " ${name/.out/}"
done
else
einfo "No unexpected test failures, all fine"
fi
if [[ ${PHP_SHOW_UNEXPECTED_TEST_PASS} == "1" ]] ; then
local passed=""
for name in ${EXPECTED_TEST_FAILURES}; do
[[ -f "${name}.diff" ]] && continue
passed="${passed} ${name}"
done
if [[ ${passed} != "" ]] ; then
einfo "The following test cases passed unexpectedly:"
for name in ${passed}; do
ewarn " ${passed}"
done
else
einfo "None of the known-to-fail tests passed, all fine"
fi
fi
}
pkg_postinst() {
# Output some general info to the user
if use apache2 ; then
elog
elog "To enable PHP in apache, you will need to add \"-D PHP\" to"
elog "your apache2 command. OpenRC users can append that string to"
elog "APACHE2_OPTS in /etc/conf.d/apache2."
elog
elog "The apache module configuration file 70_mod_php.conf is"
elog "provided (and maintained) by eselect-php."
elog
fi
# Create the symlinks for php
for m in ${SAPIS}; do
[[ ${m} == 'embed' ]] && continue;
if use $m ; then
local ci=$(eselect php show $m)
if [[ -z $ci ]]; then
eselect php set $m php${SLOT} || die
einfo "Switched ${m} to use php:${SLOT}"
einfo
elif [[ $ci != "php${SLOT}" ]] ; then
elog "To switch $m to use php:${SLOT}, run"
elog " eselect php set $m php${SLOT}"
elog
fi
fi
done
# Remove dead symlinks for SAPIs that were just disabled. For
# example, if the user has the cgi SAPI enabled, then he has an
# eselect-php symlink for it. If he later reinstalls PHP with
# USE="-cgi", that symlink will break. This call to eselect is
# supposed to remove that dead link per bug 572436.
eselect php cleanup || die
if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then
elog "To build extensions for this version of PHP, you will need to"
elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable."
elog
fi
# Warn about the removal of PHP_INI_VERSION if the user has it set.
if [[ -n "${PHP_INI_VERSION}" ]]; then
ewarn 'The PHP_INI_VERSION variable has been phased out. You may'
ewarn 'remove it from your configuration at your convenience. See'
ewarn
ewarn ' https://bugs.gentoo.org/611214'
ewarn
ewarn 'for more information.'
fi
elog "For details on how version slotting works, please see"
elog "the wiki:"
elog
elog " https://wiki.gentoo.org/wiki/PHP"
elog
}
pkg_postrm() {
# This serves two purposes. First, if we have just removed the last
# installed version of PHP, then this will remove any dead symlinks
# belonging to eselect-php. Second, if a user upgrades slots from
# (say) 5.6 to 7.0 and depcleans the old slot, then this will update
# his existing symlinks to point to the new 7.0 installation. The
# latter is bug 432962.
#
# Note: the eselect-php package may not be installed at this point,
# so we can't die() if this command fails.
eselect php cleanup
}

@ -0,0 +1,734 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit flag-o-matic versionator systemd
DESCRIPTION="The PHP language runtime engine"
HOMEPAGE="http://php.net/"
SRC_URI="https://downloads.php.net/~remi/php-7.2.0RC3.tar.xz"
LICENSE="PHP-3.01
BSD
Zend-2.0
bcmath? ( LGPL-2.1+ )
fpm? ( BSD-2 )
gd? ( gd )
unicode? ( BSD-2 LGPL-2.1 )"
SLOT="$(get_version_component_range 1-2)"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
S="${WORKDIR}/php-7.2.0RC3"
# We can build the following SAPIs in the given order
SAPIS="embed cli cgi fpm apache2 phpdbg"
# SAPIs and SAPI-specific USE flags (cli SAPI is default on):
IUSE="${IUSE}
${SAPIS/cli/+cli}
threads"
IUSE="${IUSE} acl argon2 bcmath berkdb bzip2 calendar cdb cjk
coverage +ctype curl debug
enchant exif +fileinfo +filter firebird
flatfile ftp gd gdbm gmp +hash +iconv imap inifile
intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl lmdb
mhash mssql mysql mysqli nls
oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm
readline recode selinux +session sharedmem
+simplexml snmp soap sockets sodium spell sqlite ssl
sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode wddx webp
+xml xmlreader xmlwriter xmlrpc xpm xslt zip zip-encryption zlib"
# The supported (that is, autodetected) versions of BDB are listed in
# the ./configure script. Other versions *work*, but we need to stick to
# the ones that can be detected to avoid a repeat of bug #564824.
COMMON_DEPEND="
>=app-eselect/eselect-php-0.9.1[apache2?,fpm?]
>=dev-libs/libpcre-8.32[unicode]
acl? ( sys-apps/acl )
apache2? ( || ( >=www-servers/apache-2.4[apache2_modules_unixd,threads=]
<www-servers/apache-2.4[threads=] ) )
argon2? ( app-crypt/argon2 )
berkdb? ( || ( sys-libs/db:5.3
sys-libs/db:5.1
sys-libs/db:4.8
sys-libs/db:4.7
sys-libs/db:4.6
sys-libs/db:4.5 ) )
bzip2? ( app-arch/bzip2 )
cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
coverage? ( dev-util/lcov )
curl? ( >=net-misc/curl-7.10.5 )
enchant? ( app-text/enchant )
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:0 )
iconv? ( virtual/libiconv )
imap? ( virtual/imap-c-client[kerberos=,ssl=] )
intl? ( dev-libs/icu:= )
iodbc? ( dev-db/libiodbc )
kerberos? ( virtual/krb5 )
ldap? ( >=net-nds/openldap-1.2.11 )
ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 )
libedit? ( || ( sys-freebsd/freebsd-lib dev-libs/libedit ) )
lmdb? ( dev-db/lmdb:= )
mssql? ( dev-db/freetds[mssql] )
nls? ( sys-devel/gettext )
oci8-instant-client? ( dev-db/oracle-instantclient-basic )
odbc? ( >=dev-db/unixODBC-1.8.13 )
postgres? ( dev-db/postgresql:* )
qdbm? ( dev-db/qdbm )
readline? ( sys-libs/readline:0= )
recode? ( app-text/recode )
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 )
sodium? ( dev-libs/libsodium:= )
spell? ( >=app-text/aspell-0.50 )
sqlite? ( >=dev-db/sqlite-3.7.6.3 )
ssl? (
!libressl? ( dev-libs/openssl:0 )
libressl? ( dev-libs/libressl )
)
tidy? ( || ( app-text/tidy-html5 app-text/htmltidy ) )
tokyocabinet? ( dev-db/tokyocabinet )
truetype? ( =media-libs/freetype-2* )
unicode? ( dev-libs/oniguruma:= )
wddx? ( >=dev-libs/libxml2-2.6.8 )
webp? ( media-libs/libwebp )
xml? ( >=dev-libs/libxml2-2.6.8 )
xmlrpc? ( >=dev-libs/libxml2-2.6.8 virtual/libiconv )
xmlreader? ( >=dev-libs/libxml2-2.6.8 )
xmlwriter? ( >=dev-libs/libxml2-2.6.8 )
xpm? ( x11-libs/libXpm )
xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 )
zip? ( sys-libs/zlib )
zip-encryption? ( >=dev-libs/libzip-1.2.0:= )
zlib? ( sys-libs/zlib )
"
RDEPEND="${COMMON_DEPEND}
virtual/mta
fpm? (
selinux? ( sec-policy/selinux-phpfpm )
systemd? ( sys-apps/systemd ) )"
# Bison isn't actually needed when building from a release tarball
# However, the configure script will warn if it's absent or if you
# have an incompatible version installed. See bug 593278.
DEPEND="${COMMON_DEPEND}
app-arch/xz-utils
>=sys-devel/bison-3.0.1"
# Without USE=readline or libedit, the interactive "php -a" CLI will hang.
REQUIRED_USE="
|| ( cli cgi fpm apache2 embed phpdbg )
cli? ( ^^ ( readline libedit ) )
truetype? ( gd )
webp? ( 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 )
qdbm? ( !gdbm )
readline? ( !libedit )
recode? ( !imap !mysqli !mysql )
sharedmem? ( !threads )
mysql? ( || ( mysqli pdo ) )
zip-encryption? ( zip )
"
PHP_MV="$(get_major_version)"
php_install_ini() {
local phpsapi="${1}"
# work out where we are installing the ini file
php_set_ini_dir "${phpsapi}"
# Always install the production INI file, bug 611214.
local phpinisrc="php.ini-production-${phpsapi}"
cp php.ini-production "${phpinisrc}" || die
# default to /tmp for save_path, bug #282768
sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die
# Set the extension dir
sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \
-i "${phpinisrc}" || die
# Set the include path to point to where we want to find PEAR packages
sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die
dodir "${PHP_INI_DIR#${EPREFIX}}"
insinto "${PHP_INI_DIR#${EPREFIX}}"
newins "${phpinisrc}" php.ini
elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}"
elog
dodir "${PHP_EXT_INI_DIR#${EPREFIX}}"
dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}"
if use opcache; then
elog "Adding opcache to $PHP_EXT_INI_DIR"
echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \
"${D}/${PHP_EXT_INI_DIR}"/opcache.ini
dosym "${PHP_EXT_INI_DIR#${EPREFIX}}/opcache.ini" \
"${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini"
fi
# SAPI-specific handling
if [[ "${sapi}" == "fpm" ]] ; then
einfo "Installing FPM config files php-fpm.conf and www.conf"
insinto "${PHP_INI_DIR#${EPREFIX}}"
doins sapi/fpm/php-fpm.conf
insinto "${PHP_INI_DIR#${EPREFIX}}/fpm.d"
doins sapi/fpm/www.conf
fi
dodoc php.ini-{development,production}
}
php_set_ini_dir() {
PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}"
PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext"
PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active"
}
src_prepare() {
default
# In php-7.x, the FPM pool configuration files have been split off
# of the main config. By default the pool config files go in
# e.g. /etc/php-fpm.d, which isn't slotted. So here we move the
# include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later
# we'll install the pool configuration file "www.conf" there.
php_set_ini_dir fpm
sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \
sapi/fpm/php-fpm.conf.in \
|| die 'failed to move the include directory in php-fpm.conf'
}
src_configure() {
addpredict /usr/share/snmp/mibs/.index
addpredict /var/lib/net-snmp/mib_indexes
PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}"
# The php-fpm config file wants localstatedir to be ${EPREFIX}/var
# and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002.
local our_conf=(
--prefix="${PHP_DESTDIR}"
--mandir="${PHP_DESTDIR}/man"
--infodir="${PHP_DESTDIR}/info"
--libdir="${PHP_DESTDIR}/lib"
--with-libdir="$(get_libdir)"
--localstatedir="${EPREFIX}/var"
--without-pear
$(use_enable threads maintainer-zts)
)
our_conf+=(
$(use_with acl fpm-acl)
$(use_with argon2 password-argon2 "${EPREFIX}/usr")
$(use_enable bcmath bcmath)
$(use_with bzip2 bz2 "${EPREFIX}/usr")
$(use_enable calendar calendar)
$(use_enable coverage gcov)
$(use_enable ctype ctype)
$(use_with curl curl "${EPREFIX}/usr")
$(use_enable xml dom)
$(use_with enchant enchant "${EPREFIX}/usr")
$(use_enable exif exif)
$(use_enable fileinfo fileinfo)
$(use_enable filter filter)
$(use_enable ftp ftp)
$(use_with nls gettext "${EPREFIX}/usr")
$(use_with gmp gmp "${EPREFIX}/usr")
$(use_enable hash hash)
$(use_with mhash mhash "${EPREFIX}/usr")
$(use_with iconv iconv \
$(use elibc_glibc || use elibc_musl || echo "${EPREFIX}/usr"))
$(use_enable intl intl)
$(use_enable ipv6 ipv6)
$(use_enable json json)
$(use_with kerberos kerberos "${EPREFIX}/usr")
$(use_enable xml libxml)
$(use_with xml libxml-dir "${EPREFIX}/usr")
$(use_enable unicode mbstring)
$(use_with unicode onig "${EPREFIX}/usr")
$(use_with ssl openssl "${EPREFIX}/usr")
$(use_with ssl openssl-dir "${EPREFIX}/usr")
$(use_enable pcntl pcntl)
$(use_enable phar phar)
$(use_enable pdo pdo)
$(use_enable opcache opcache)
$(use_with postgres pgsql "${EPREFIX}/usr")
$(use_enable posix posix)
$(use_with spell pspell "${EPREFIX}/usr")
$(use_with recode recode "${EPREFIX}/usr")
$(use_enable simplexml simplexml)
$(use_enable sharedmem shmop)
$(use_with snmp snmp "${EPREFIX}/usr")
$(use_enable soap soap)
$(use_enable sockets sockets)
$(use_with sodium sodium "${EPREFIX}/usr")
$(use_with sqlite sqlite3 "${EPREFIX}/usr")
$(use_enable sysvipc sysvmsg)
$(use_enable sysvipc sysvsem)
$(use_enable sysvipc sysvshm)
$(use_with 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 zip-encryption libzip "${EPREFIX}/usr")
$(use_with zlib zlib "${EPREFIX}/usr")
$(use_enable debug debug)
)
# DBA support
if use cdb || use berkdb || use flatfile || use gdbm || use inifile \
|| use qdbm || use lmdb || use tokyocabinet ; then
our_conf+=( "--enable-dba${shared}" )
fi
# DBA drivers support
our_conf+=(
$(use_with cdb cdb)
$(use_with berkdb db4 "${EPREFIX}/usr")
$(use_enable flatfile flatfile)
$(use_with gdbm gdbm "${EPREFIX}/usr")
$(use_enable inifile inifile)
$(use_with qdbm qdbm "${EPREFIX}/usr")
$(use_with lmdb lmdb "${EPREFIX}/usr")
)
# Support for the GD graphics library
our_conf+=(
$(use_with truetype freetype-dir "${EPREFIX}/usr")
$(use_enable cjk gd-jis-conv)
$(use_with gd jpeg-dir "${EPREFIX}/usr")
$(use_with gd png-dir "${EPREFIX}/usr")
$(use_with xpm xpm-dir "${EPREFIX}/usr")
)
if use webp; then
our_conf+=( --with-webp-dir="${EPREFIX}/usr" )
fi
# enable gd last, so configure can pick up the previous settings
our_conf+=( $(use_with gd gd) )
# IMAP support
if use imap ; then
our_conf+=(
$(use_with imap imap "${EPREFIX}/usr")
$(use_with ssl imap-ssl "${EPREFIX}/usr")
)
fi
# Interbase/firebird support
our_conf+=( $(use_with firebird interbase "${EPREFIX}/usr") )
# LDAP support
if use ldap ; then
our_conf+=(
$(use_with ldap ldap "${EPREFIX}/usr")
$(use_with ldap-sasl ldap-sasl "${EPREFIX}/usr")
)
fi
# MySQL support
local mysqllib="mysqlnd"
local mysqlilib="mysqlnd"
our_conf+=( $(use_with mysqli mysqli "${mysqlilib}") )
local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock"
if use mysql || use mysqli ; then
our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") )
fi
# ODBC support
our_conf+=(
$(use_with odbc unixODBC "${EPREFIX}/usr")
$(use_with iodbc iodbc "${EPREFIX}/usr")
)
# Oracle support
our_conf+=( $(use_with oci8-instant-client oci8) )
# PDO support
if use pdo ; then
our_conf+=(
$(use_with mssql pdo-dblib "${EPREFIX}/usr")
$(use_with mysql pdo-mysql "${mysqllib}")
$(use_with postgres pdo-pgsql)
$(use_with sqlite pdo-sqlite "${EPREFIX}/usr")
$(use_with firebird pdo-firebird "${EPREFIX}/usr")
$(use_with odbc pdo-odbc "unixODBC,${EPREFIX}/usr")
$(use_with oci8-instant-client pdo-oci)
)
fi
# readline/libedit support
our_conf+=(
$(use_with readline readline "${EPREFIX}/usr")
$(use_with libedit libedit "${EPREFIX}/usr")
)
# Session support
if use session ; then
our_conf+=( $(use_with sharedmem mm "${EPREFIX}/usr") )
else
our_conf+=( $(use_enable session session) )
fi
# Use pic for shared modules such as apache2's mod_php
our_conf+=( --with-pic )
# we use the system copy of pcre
# --with-pcre-regex affects ext/pcre
# --with-pcre-dir affects ext/filter and ext/zip
# --with-pcre-valgrind cannot be enabled with system pcre
# Many arches don't support pcre-jit
our_conf+=(
--with-pcre-regex="${EPREFIX}/usr"
--with-pcre-dir="${EPREFIX}/usr"
--without-pcre-valgrind
--without-pcre-jit
)
# Catch CFLAGS problems
# Fixes bug #14067.
# Changed order to run it in reverse for bug #32022 and #12021.
replace-cpu-flags "k6*" "i586"
# Cache the ./configure test results between SAPIs.
our_conf+=( --cache-file="${T}/config.cache" )
# Support user-passed configuration parameters
our_conf+=( ${EXTRA_ECONF:-} )
# Support the Apache2 extras, they must be set globally for all
# SAPIs to work correctly, especially for external PHP extensions
mkdir -p "${WORKDIR}/sapis-build" || die
for one_sapi in $SAPIS ; do
use "${one_sapi}" || continue
php_set_ini_dir "${one_sapi}"
# The BUILD_DIR variable is used to determine where to output
# the files that autotools creates. This was all originally
# based on the autotools-utils eclass.
BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}"
cp -a "${S}" "${BUILD_DIR}" || die
cd "${BUILD_DIR}" || die
local sapi_conf=(
--with-config-file-path="${PHP_INI_DIR}"
--with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}"
)
for sapi in $SAPIS ; do
case "$sapi" in
cli|cgi|embed|fpm|phpdbg)
if [[ "${one_sapi}" == "${sapi}" ]] ; then
sapi_conf+=( "--enable-${sapi}" )
else
sapi_conf+=( "--disable-${sapi}" )
fi
;;
apache2)
if [[ "${one_sapi}" == "${sapi}" ]] ; then
sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" )
else
sapi_conf+=( --without-apxs2 )
fi
;;
esac
done
# Construct the $myeconfargs array by concatenating $our_conf
# (the common args) and $sapi_conf (the SAPI-specific args).
local myeconfargs=( "${our_conf[@]}" )
myeconfargs+=( "${sapi_conf[@]}" )
pushd "${BUILD_DIR}" > /dev/null || die
econf "${myeconfargs[@]}"
popd > /dev/null || die
done
}
src_compile() {
# snmp seems to run during src_compile, too (bug #324739)
addpredict /usr/share/snmp/mibs/.index
addpredict /var/lib/net-snmp/mib_indexes
for sapi in ${SAPIS} ; do
if use "${sapi}"; then
cd "${WORKDIR}/sapis-build/$sapi" || \
die "Failed to change dir to ${WORKDIR}/sapis-build/$1"
emake
fi
done
}
src_install() {
# see bug #324739 for what happens when we don't have that
addpredict /usr/share/snmp/mibs/.index
# grab the first SAPI that got built and install common files from there
local first_sapi=""
for sapi in $SAPIS ; do
if use $sapi ; then
first_sapi=$sapi
break
fi
done
# Makefile forgets to create this before trying to write to it...
dodir "${PHP_DESTDIR#${EPREFIX}}/bin"
# Install php environment (without any sapis)
cd "${WORKDIR}/sapis-build/$first_sapi" || die
emake INSTALL_ROOT="${D}" \
install-build install-headers install-programs
local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)"
# Create the directory where we'll put version-specific php scripts
keepdir "/usr/share/php${PHP_MV}"
local sapi="", file=""
local sapi_list=""
for sapi in ${SAPIS}; do
if use "${sapi}" ; then
einfo "Installing SAPI: ${sapi}"
cd "${WORKDIR}/sapis-build/${sapi}" || die
if [[ "${sapi}" == "apache2" ]] ; then
# We're specifically not using emake install-sapi as libtool
# may cause unnecessary relink failures (see bug #351266)
insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/"
newins ".libs/libphp${PHP_MV}$(get_libname)" \
"libphp${PHP_MV}$(get_libname)"
keepdir "/usr/$(get_libdir)/apache2/modules"
else
# needed each time, php_install_ini would reset it
local dest="${PHP_DESTDIR#${EPREFIX}}"
into "${dest}"
case "$sapi" in
cli)
source="sapi/cli/php"
;;
cgi)
source="sapi/cgi/php-cgi"
;;
fpm)
source="sapi/fpm/php-fpm"
;;
embed)
source="libs/libphp${PHP_MV}$(get_libname)"
;;
phpdbg)
source="sapi/phpdbg/phpdbg"
;;
*)
die "unhandled sapi in src_install"
;;
esac
if [[ "${source}" == *"$(get_libname)" ]]; then
dolib.so "${source}"
else
dobin "${source}"
local name="$(basename ${source})"
dosym "${dest}/bin/${name}" "/usr/bin/${name}${SLOT}"
fi
fi
php_install_ini "${sapi}"
# construct correct SAPI string for php-config
# thanks to ferringb for the bash voodoo
if [[ "${sapi}" == "apache2" ]]; then
sapi_list="${sapi_list:+${sapi_list} }apache2handler"
else
sapi_list="${sapi_list:+${sapi_list} }${sapi}"
fi
fi
done
# Installing opcache module
if use opcache ; then
into "${PHP_DESTDIR#${EPREFIX}}"
dolib.so "modules/opcache$(get_libname)"
fi
# Install env.d files
newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}"
sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die
# set php-config variable correctly (bug #278439)
sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \
"${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die
if use fpm ; then
if use systemd; then
systemd_newunit "${FILESDIR}/php-fpm_at.service" \
"php-fpm@${SLOT}.service"
else
systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \
"php-fpm@${SLOT}.service"
fi
fi
}
src_test() {
echo ">>> Test phase [test]: ${CATEGORY}/${PF}"
PHP_BIN="${WORKDIR}/sapis-build/cli/sapi/cli/php"
if [[ ! -x "${PHP_BIN}" ]] ; then
ewarn "Test phase requires USE=cli, skipping"
return
else
export TEST_PHP_EXECUTABLE="${PHP_BIN}"
fi
if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then
export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi"
fi
if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then
export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg"
fi
REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \
"session.save_path=${T}" \
"${WORKDIR}/sapis-build/cli/run-tests.php" -n -q -d \
"session.save_path=${T}"
for name in ${EXPECTED_TEST_FAILURES}; do
mv "${name}.out" "${name}.out.orig" 2>/dev/null || die
done
local failed="$(find -name '*.out')"
if [[ ${failed} != "" ]] ; then
ewarn "The following test cases failed unexpectedly:"
for name in ${failed}; do
ewarn " ${name/.out/}"
done
else
einfo "No unexpected test failures, all fine"
fi
if [[ ${PHP_SHOW_UNEXPECTED_TEST_PASS} == "1" ]] ; then
local passed=""
for name in ${EXPECTED_TEST_FAILURES}; do
[[ -f "${name}.diff" ]] && continue
passed="${passed} ${name}"
done
if [[ ${passed} != "" ]] ; then
einfo "The following test cases passed unexpectedly:"
for name in ${passed}; do
ewarn " ${passed}"
done
else
einfo "None of the known-to-fail tests passed, all fine"
fi
fi
}
pkg_postinst() {
# Output some general info to the user
if use apache2 ; then
elog
elog "To enable PHP in apache, you will need to add \"-D PHP\" to"
elog "your apache2 command. OpenRC users can append that string to"
elog "APACHE2_OPTS in /etc/conf.d/apache2."
elog
elog "The apache module configuration file 70_mod_php.conf is"
elog "provided (and maintained) by eselect-php."
elog
fi
# Create the symlinks for php
for m in ${SAPIS}; do
[[ ${m} == 'embed' ]] && continue;
if use $m ; then
local ci=$(eselect php show $m)
if [[ -z $ci ]]; then
eselect php set $m php${SLOT} || die
einfo "Switched ${m} to use php:${SLOT}"
einfo
elif [[ $ci != "php${SLOT}" ]] ; then
elog "To switch $m to use php:${SLOT}, run"
elog " eselect php set $m php${SLOT}"
elog
fi
fi
done
# Remove dead symlinks for SAPIs that were just disabled. For
# example, if the user has the cgi SAPI enabled, then he has an
# eselect-php symlink for it. If he later reinstalls PHP with
# USE="-cgi", that symlink will break. This call to eselect is
# supposed to remove that dead link per bug 572436.
eselect php cleanup || die
if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then
elog "To build extensions for this version of PHP, you will need to"
elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable."
elog
fi
# Warn about the removal of PHP_INI_VERSION if the user has it set.
if [[ -n "${PHP_INI_VERSION}" ]]; then
ewarn 'The PHP_INI_VERSION variable has been phased out. You may'
ewarn 'remove it from your configuration at your convenience. See'
ewarn
ewarn ' https://bugs.gentoo.org/611214'
ewarn
ewarn 'for more information.'
fi
elog "For details on how version slotting works, please see"
elog "the wiki:"
elog
elog " https://wiki.gentoo.org/wiki/PHP"
elog
}
pkg_postrm() {
# This serves two purposes. First, if we have just removed the last
# installed version of PHP, then this will remove any dead symlinks
# belonging to eselect-php. Second, if a user upgrades slots from
# (say) 5.6 to 7.0 and depcleans the old slot, then this will update
# his existing symlinks to point to the new 7.0 installation. The
# latter is bug 432962.
#
# Note: the eselect-php package may not be installed at this point,
# so we can't die() if this command fails.
eselect php cleanup
}

@ -1,17 +1,6 @@
DIST ruby-2.2.6.tar.xz 10487776 SHA256 9414ecc0d09cf71c9a24e8dc82fcc87919ac7359fb08db2791d6c32bfd157339 SHA512 a2cfde1c6df4df6b996f8d86c52b255fd43b469f8b9f0d7a81ce5f4de949a67025d8bead4ce61f03263eb6a8378b156b843f97b429208afaa1d3bfd0a7af4ef4 WHIRLPOOL 77b01fbd54f77196bca93d0120474436dcdc2e8d437cf70ca1382ed38c58cf05c27e9896cb4b2afd61ea2862ce6b864d707cd4682e17dfc7912d4a74da2b741e
DIST ruby-2.2.7.tar.xz 10507528 SHA256 234c8aee6543da9efd67008e6e7ee740d41ed57a52e797f65043c3b5ec3bcb53 SHA512 21bebec6d0972f4e6f2988f471c58520e32096e43a61d627eb2210df283a6fd6d0fc49da9063f2d086f3d489f13e948462a6f084f9e931b4fde6102f490cc225 WHIRLPOOL 35e1470b7d5de25efd213b70befa7b0ce599f3e2ef73aacdf343d7ed3fe14836ab0899124cce8670c00470af9428a81a7f693cb5897448c2d2e824d5b8a1819b
DIST ruby-2.2.8.tar.xz 10520648 SHA256 37eafc15037396c26870f6a6c5bcd0658d14b46cd5e191a3b56d89dd22d561b0 SHA512 e21004bee537f0c706f4ac9526507b414ddb6a8d721e8fad8d7fe88992a4f048eb5eb79f8d8b8af2a8b331dcfa74b560490218a1acb3532c2cdb4fb4909da3c9 WHIRLPOOL a5b2f7a6c5131376980cf4d2a5f2d7a8a440effed588214c295fb4b83483d84310ba6bfbb96ee904384831eda47f0b1c0263d5190ca41db95df272428144cad1
DIST ruby-2.3.4.tar.xz 11450108 SHA256 341cd9032e9fd17c452ed8562a8d43f7e45bfe05e411d0d7d627751dd82c578c SHA512 9e3adc2de6703e50e75db37db2981006d4c69759929d61db6a0d63627cfe5977d0ad66d2c69d7161cfc0c0d1c2cb38e5181a06ccd2790df2f72ec25c2ad01e02 WHIRLPOOL 1e9d4112134910ebf1bd241b5031551fdfa882405ca850d9b11af9dc79251379971e18666600d88ef2054c4794a98142df150f83cb06f1dff616faee45ffe1cc
DIST ruby-2.3.5.tar.xz 11437868 SHA256 7d3a7dabb190c2da06c963063342ca9a214bcd26f2158e904f0ec059b065ffda SHA512 c55e3b71241f505b6bbad78b3bd40235064faae3443ca14b77b6356556caed6a0d055dc2e2cd7ebdb5290ab908e06d2b7d68f72469af5017eda4b29664b0d889 WHIRLPOOL 2f7d0d7fbf12441e8d312c6c34cb06bf663a975ab3602fa385d44fb42c9b68ddfe8518ad28aead7f164afc9d6c0b825ade16c9205625bb46a738103b744b1f48
DIST ruby-2.4.1.tar.xz 9939188 SHA256 4fc8a9992de3e90191de369270ea4b6c1b171b7941743614cc50822ddc1fe654 SHA512 e6fd290b6edd166348b70f0f1c56f7ed9d956c4c1eb91d97d0548041ca4196b9b75ec1ad35c745bdbfd4de195899093e7205d7f02b014ecf1c48e6f31cf25903 WHIRLPOOL b45a6e3bd70e6ef802d084ad87ad0eddd85932e07939bd6ed6a2e6944aa289f231971fedd7d1eece792becb08312f37b80073a2a9df070f61f32747c0708523e
DIST ruby-2.4.2.tar.xz 10046412 SHA256 748a8980d30141bd1a4124e11745bb105b436fb1890826e0d2b9ea31af27f735 SHA512 c1d42272fb0d94b693452e703b0ea4942bf59cbd4b08ba83bf039f54be97ebc88511632413da0164970b4cf97bc302bccb88aab48edfa8fa147498e7ee741595 WHIRLPOOL 4117f18e7901700d2cf603ed60cbe9b59ca65359ec359a7616b2cf90c76c25117afe864a8a7b55e7dc52c93377c541a8b497f1b281cdccade97aafa5ca363a5b
DIST ruby-patches-2.2.6.tar.bz2 2272 SHA256 f54373704ce8df732490e8d1e7e35188503faacc5278fe0ab0d8c07bdc762fed SHA512 ed8bff8f730ccb114e62784d29541f276b2821d9eb121a9772dc4aabc139b688f2b14f5f27710098a8cd751c62d31b46170b427ad54dc4f6490c003450ae1583 WHIRLPOOL 8598c9284252c1e7cc9f9019c5f468ce5ab8b4ae013e71c631cd00cc8bfde068b041f1bc6851bb2962982a1e46cbde0ddc51c186ea41638a7881c587c658e603
DIST ruby-patches-2.2.7-r3.tar.bz2 5757 SHA256 3470915805a6264ad74a9c7cb7280c4be3585b4dc255685e53205eb4c90536f9 SHA512 9766a44633ddc33e575e2f82d0954ea54620ce7ff7f73d58e76dc3c8ab1cb664c02bc3dac5ca5834d955d5cdfc8d3b647f91c19160e3a9f62c9a69839705702e WHIRLPOOL 6476c46449424a73b75ce4605b2501240b20972960064f0c6380afba67c5472563292dd7d1965400c641b746715c3ff547566d674244b127699196043ab87d18
DIST ruby-patches-2.2.7-r4.tar.bz2 6460 SHA256 2f7c0414d65870bf89539d6e737e9c9e5b78188d3305a5d001d562619375ee04 SHA512 a5891c893b9f5219a6b17e0628678f1714a0c04d8699a272e91aa2ecf1068677b78da60475c32ddcea5a988d1d0d2469fada58da56ef5821f03f47b30855f2ee WHIRLPOOL 4521ea39407f396db2ef646162f7cc093e3137733ad20bff2761763fd8f3161d604f2a594cb41f5f494fffeb221b8d70cefe74020ae7dcbe3ce99083237cf68e
DIST ruby-patches-2.2.8.tar.bz2 5764 SHA256 5c44fc38cb25d7dbdd8bef0fae49b5fc2f4f42da4e5b4b871655fd5e68faddbe SHA512 296387ec7f2ff82ad55f147d8f9568de544403d286ad24bb60aca916215d7ff6e1d6aca5a31c00a1999504989cda2bbd3260cae96c18ba73f9ffdcfd6b2695bd WHIRLPOOL 28889531d98b1bb96ceaa059f7fc641cc3db16eda0e3ad4cea031127c71897613d73cc3c8926dfd9ec978be79ca1201e7c90056ddcbec58d3e842c8af9a52389
DIST ruby-patches-2.3.4-r3.tar.bz2 4698 SHA256 196bbafe0c43718b4e2120e2e4d681befe9ccba1d2607fb9459d670c74d5bd38 SHA512 f2867c3460e3a276849b09bd367949024aa8c0e4631fef6bd46e1ef44d56dfe2a7baa88ea640b8953252e566d7927178da50195b6382d8fd8e1b9ef7d9ceb2fc WHIRLPOOL 9ba584dcc0055f4401f4345da7b161d08b4a4651ea669b7a26c7504d3aeb650051080d089652c2ae39e0163609cbef1f480a46555a4f3af8297180215929d472
DIST ruby-patches-2.3.4-r4.tar.bz2 5483 SHA256 47470aac5d2e941c3781ebd820a725dcf11da1688f8299d0408bcc9540295647 SHA512 d5dbfbbd3b2bfc43d2e7a34c4de7203470f6050875a85fc313505e224c0089fdc44045130ef6dd791d50e1f4c22afc369d3549c7860a9694d182334ce6e3687e WHIRLPOOL c6049425955a05fdcbdd859782aa6c9c372cedfbe4962c1a48c7be4e1c9d29db3010444ac68882491fc35a1f53df7d5096dc3593e4bc67c4afb40aa16609a1b3
DIST ruby-patches-2.3.5.tar.bz2 3593 SHA256 0bdc378a9e3ea6ec1579cc99a3c8b983b492e49b9fc1e9432595d66d3a8013ae SHA512 eacb7f6787b36c7d848453b29152190a164ebc6882ab509eeb6584e49af4b66a665c4baff4ecf75e5831ae54d47dbc651d6f048918f3327500c429f1f419ed94 WHIRLPOOL 7f236988663c1082a988b836bf558b5c042c09257cdbad6931474ece7f19be2d37dfe559292182dfc6a9966f6aa3fd2bbbf0f3630bd792f84f61fd135cf7bcbe
DIST ruby-patches-2.4.1-r3.tar.bz2 4589 SHA256 6a096f444d1281ac1ce8fd391d085741d3f41527ed0f9b893d7276c17e7b9bdd SHA512 8507189b192fd9f7f2591a2e417526e7f8baf9d2330669b13f79759c06f7729684772e74fee88c78b0ae5b266ad08c5694fcd173f4fb44c34f4cb4d1042cd773 WHIRLPOOL 81c992c4bf5bdc8a9091c68a31ffea1e52cb024388be193173bc6ad254b005bed0d3fec2a50bf4fd6e07044e386ab41f5e5b102ed27742cb53f1d381cf0a3d4a
DIST ruby-patches-2.4.1-r4.tar.bz2 5381 SHA256 39d2f61c76b6d2c8d0524167f5355a166e7ae3eb128447517b308d5b927ff44e SHA512 168d1353f22df8884ce6dbb2ee7fb81573b9997e480f57d7da4e9504ab5b2ce7bbccad237276c71775d0730c1a6a8920978e3b26eaa06fe3c94495272af77b74 WHIRLPOOL d4d3c715715886149ea91bcc7a2da0298e88434db570eee07241eb3c74cc1d9984342212290c9b0d6adcf9e79e4c08af7b179d9be2dd45b334ae386eb23fa157
DIST ruby-patches-2.4.2.tar.bz2 3443 SHA256 621e92c4c14cec458100adf74e122df76663be4f75fc4ea86423a9ac6755ea3e SHA512 fb8349c67c72caf10ec12c4b5410194b4df24345446c2e3b6c6176d00727bfe803f4a905ef094a2d52315b6f4c3ce74fb8fbaa2fdf5efe46e6ccb24bf8418b17 WHIRLPOOL 306a16b49037a669398fb9c1b7c2b5484860d8749bf4c12d0e5eec02e3a7f7760b48b4a3cd709e0fa2b54f3d8dddff36d7eeb8d53d2d647d59e099b0299b8ed1

@ -1,245 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
#PATCHSET=1
inherit autotools eutils flag-o-matic multilib versionator
MY_P="${PN}-$(get_version_component_range 1-3)"
S=${WORKDIR}/${MY_P}
SLOT=$(get_version_component_range 1-2)
MY_SUFFIX=$(delete_version_separator 1 ${SLOT})
RUBYVERSION=2.2.0
if [[ -n ${PATCHSET} ]]; then
if [[ ${PVR} == ${PV} ]]; then
PATCHSET="${PV}-r0.${PATCHSET}"
else
PATCHSET="${PVR}.${PATCHSET}"
fi
else
PATCHSET="${PVR}"
fi
DESCRIPTION="An object-oriented scripting language"
HOMEPAGE="http://www.ruby-lang.org/"
SRC_URI="mirror://ruby/2.2/${MY_P}.tar.xz
https://dev.gentoo.org/~flameeyes/ruby-team/${PN}-patches-${PATCHSET}.tar.bz2"
LICENSE="|| ( Ruby-BSD BSD-2 )"
KEYWORDS="alpha amd64 arm ~arm64 hppa ~ia64 ~mips ppc ppc64 ~s390 ~sh ~sparc x86 ~amd64-fbsd ~x86-fbsd"
IUSE="berkdb debug doc examples gdbm ipv6 jemalloc libressl +rdoc rubytests socks5 ssl tk xemacs ncurses +readline"
RDEPEND="
berkdb? ( sys-libs/db:= )
gdbm? ( sys-libs/gdbm )
jemalloc? ( dev-libs/jemalloc )
ssl? (
!libressl? ( dev-libs/openssl:0= )
libressl? ( dev-libs/libressl )
)
socks5? ( >=net-proxy/dante-1.1.13 )
tk? (
dev-lang/tcl:0=[threads]
dev-lang/tk:0=[threads]
)
ncurses? ( sys-libs/ncurses:0= )
readline? ( sys-libs/readline:0= )
dev-libs/libyaml
virtual/libffi
sys-libs/zlib
>=app-eselect/eselect-ruby-20141227
!<dev-ruby/rdoc-3.9.4
!<dev-ruby/rubygems-1.8.10-r1"
DEPEND="${RDEPEND}"
BUNDLED_GEMS="
>=dev-ruby/minitest-5.4.3[ruby_targets_ruby22]
>=dev-ruby/power_assert-0.2.2[ruby_targets_ruby22]
>=dev-ruby/test-unit-3.0.8[ruby_targets_ruby22]
"
PDEPEND="
${BUNDLED_GEMS}
virtual/rubygems[ruby_targets_ruby22]
>=dev-ruby/json-1.8.1[ruby_targets_ruby22]
>=dev-ruby/rake-0.9.6[ruby_targets_ruby22]
rdoc? ( >=dev-ruby/rdoc-4.0.1[ruby_targets_ruby22] )
xemacs? ( app-xemacs/ruby-modes )"
src_prepare() {
EPATCH_FORCE="yes" EPATCH_SUFFIX="patch" \
epatch "${WORKDIR}/patches"
# We can no longer unbundle all of rake because rubygems now depends
# on this. We leave the actual rake code around to bootstrap
# rubygems, but remove the bits that would cause a file collision.
einfo "Unbundling gems..."
cd "$S"
rm -rf \
{bin,lib}/rake lib/rake.rb man/rake.1 \
bin/gem || die "removal failed"
# Remove bundled gems that we will install via PDEPEND, bug
# 539700. Use explicit version numbers to ensure rm fails when they
# change so we can update dependencies accordingly.
rm gems/{minitest-5.4.3,power_assert-0.2.2,test-unit-3.0.8}.gem || die
# Fix a hardcoded lib path in configure script
sed -i -e "s:\(RUBY_LIB_PREFIX=\"\${prefix}/\)lib:\1$(get_libdir):" \
configure.in || die "sed failed"
eautoreconf
}
src_configure() {
local modules= myconf=
# -fomit-frame-pointer makes ruby segfault, see bug #150413.
filter-flags -fomit-frame-pointer
# In many places aliasing rules are broken; play it safe
# as it's risky with newer compilers to leave it as it is.
append-flags -fno-strict-aliasing
# SuperH needs this
use sh && append-flags -mieee
# Socks support via dante
if use socks5 ; then
# Socks support can't be disabled as long as SOCKS_SERVER is
# set and socks library is present, so need to unset
# SOCKS_SERVER in that case.
unset SOCKS_SERVER
fi
# Increase GC_MALLOC_LIMIT if set (default is 8000000)
if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then
append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}"
fi
# ipv6 hack, bug 168939. Needs --enable-ipv6.
use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET"
# Determine which modules *not* to build depending in the USE flags.
if ! use readline ; then
modules="${modules},readline"
fi
if ! use berkdb ; then
modules="${modules},dbm"
fi
if ! use gdbm ; then
modules="${modules},gdbm"
fi
if ! use ssl ; then
modules="${modules},openssl"
fi
if ! use ncurses ; then
modules="${modules},curses"
fi
if ! use tk ; then
modules="${modules},tk"
fi
# Provide an empty LIBPATHENV because we disable rpath but we do not
# need LD_LIBRARY_PATH by default since that breaks USE=multitarget
# #564272
INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \
--program-suffix=${MY_SUFFIX} \
--with-soname=ruby${MY_SUFFIX} \
--docdir=${EPREFIX}/usr/share/doc/${P} \
--enable-shared \
--enable-pthread \
--disable-rpath \
--with-out-ext="${modules}" \
$(use_enable jemalloc jemalloc) \
$(use_enable socks5 socks) \
$(use_enable doc install-doc) \
--enable-ipv6 \
$(use_enable debug) \
${myconf} \
--enable-option-checking=no \
|| die "econf failed"
}
src_compile() {
emake V=1 EXTLDFLAGS="${LDFLAGS}" || die "emake failed"
}
src_test() {
emake -j1 V=1 test || die "make test failed"
elog "Ruby's make test has been run. Ruby also ships with a make check"
elog "that cannot be run until after ruby has been installed."
elog
if use rubytests; then
elog "You have enabled rubytests, so they will be installed to"
elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other"
elog "than root, and you must place them into a writeable directory."
elog "Then call: "
elog
elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb"
else
elog "Enable the rubytests USE flag to install the make check tests"
fi
}
src_install() {
# Remove the remaining bundled gems. We do this late in the process
# since they are used during the build to e.g. create the
# documentation.
rm -rf ext/json || die
# Ruby is involved in the install process, we don't want interference here.
unset RUBYOPT
local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
LD_LIBRARY_PATH="${S}:${D}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
RUBYLIB="${S}:${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
for d in $(find "${S}/ext" -type d) ; do
RUBYLIB="${RUBYLIB}:$d"
done
export LD_LIBRARY_PATH RUBYLIB
emake V=1 DESTDIR="${D}" install || die "make install failed"
# Remove installed rubygems copy
rm -rf "${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
rm -rf "${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
rm -rf "${D}/usr/bin/"{ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed"
if use doc; then
make DESTDIR="${D}" install-doc || die "make install-doc failed"
fi
if use examples; then
insinto /usr/share/doc/${PF}
doins -r sample
fi
dodoc ChangeLog NEWS doc/NEWS* README* || die
if use rubytests; then
pushd test
insinto /usr/share/${PN}-${SLOT}/test
doins -r .
popd
fi
}
pkg_postinst() {
if [[ ! -n $(readlink "${ROOT}"usr/bin/ruby) ]] ; then
eselect ruby set ruby${MY_SUFFIX}
fi
elog
elog "To switch between available Ruby profiles, execute as root:"
elog "\teselect ruby set ruby(19|20|...)"
elog
}
pkg_postrm() {
eselect ruby cleanup
}

@ -1,245 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
#PATCHSET=1
inherit autotools eutils flag-o-matic multilib versionator
MY_P="${PN}-$(get_version_component_range 1-3)"
S=${WORKDIR}/${MY_P}
SLOT=$(get_version_component_range 1-2)
MY_SUFFIX=$(delete_version_separator 1 ${SLOT})
RUBYVERSION=2.2.0
if [[ -n ${PATCHSET} ]]; then
if [[ ${PVR} == ${PV} ]]; then
PATCHSET="${PV}-r0.${PATCHSET}"
else
PATCHSET="${PVR}.${PATCHSET}"
fi
else
PATCHSET="${PVR}"
fi
DESCRIPTION="An object-oriented scripting language"
HOMEPAGE="http://www.ruby-lang.org/"
SRC_URI="mirror://ruby/2.2/${MY_P}.tar.xz
https://dev.gentoo.org/~flameeyes/ruby-team/${PN}-patches-${PATCHSET}.tar.bz2"
LICENSE="|| ( Ruby-BSD BSD-2 )"
KEYWORDS="alpha ~amd64 arm ~arm64 ~hppa ia64 ~mips ppc ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
IUSE="berkdb debug doc examples gdbm ipv6 jemalloc libressl +rdoc rubytests socks5 ssl tk xemacs ncurses +readline"
RDEPEND="
berkdb? ( sys-libs/db:= )
gdbm? ( sys-libs/gdbm )
jemalloc? ( dev-libs/jemalloc )
ssl? (
!libressl? ( dev-libs/openssl:0= )
libressl? ( dev-libs/libressl )
)
socks5? ( >=net-proxy/dante-1.1.13 )
tk? (
dev-lang/tcl:0=[threads]
dev-lang/tk:0=[threads]
)
ncurses? ( sys-libs/ncurses:0= )
readline? ( sys-libs/readline:0= )
dev-libs/libyaml
virtual/libffi
sys-libs/zlib
>=app-eselect/eselect-ruby-20141227
!<dev-ruby/rdoc-3.9.4
!<dev-ruby/rubygems-1.8.10-r1"
DEPEND="${RDEPEND}"
BUNDLED_GEMS="
>=dev-ruby/minitest-5.4.3[ruby_targets_ruby22]
>=dev-ruby/power_assert-0.2.2[ruby_targets_ruby22]
>=dev-ruby/test-unit-3.0.8[ruby_targets_ruby22]
"
PDEPEND="
${BUNDLED_GEMS}
virtual/rubygems[ruby_targets_ruby22]
>=dev-ruby/json-1.8.1[ruby_targets_ruby22]
>=dev-ruby/rake-0.9.6[ruby_targets_ruby22]
rdoc? ( >=dev-ruby/rdoc-4.0.1[ruby_targets_ruby22] )
xemacs? ( app-xemacs/ruby-modes )"
src_prepare() {
EPATCH_FORCE="yes" EPATCH_SUFFIX="patch" \
epatch "${WORKDIR}/patches"
# We can no longer unbundle all of rake because rubygems now depends
# on this. We leave the actual rake code around to bootstrap
# rubygems, but remove the bits that would cause a file collision.
einfo "Unbundling gems..."
cd "$S"
rm -rf \
{bin,lib}/rake lib/rake.rb man/rake.1 \
bin/gem || die "removal failed"
# Remove bundled gems that we will install via PDEPEND, bug
# 539700. Use explicit version numbers to ensure rm fails when they
# change so we can update dependencies accordingly.
rm gems/{minitest-5.4.3,power_assert-0.2.2,test-unit-3.0.8}.gem || die
# Fix a hardcoded lib path in configure script
sed -i -e "s:\(RUBY_LIB_PREFIX=\"\${prefix}/\)lib:\1$(get_libdir):" \
configure.in || die "sed failed"
eautoreconf
}
src_configure() {
local modules= myconf=
# -fomit-frame-pointer makes ruby segfault, see bug #150413.
filter-flags -fomit-frame-pointer
# In many places aliasing rules are broken; play it safe
# as it's risky with newer compilers to leave it as it is.
append-flags -fno-strict-aliasing
# SuperH needs this
use sh && append-flags -mieee
# Socks support via dante
if use socks5 ; then
# Socks support can't be disabled as long as SOCKS_SERVER is
# set and socks library is present, so need to unset
# SOCKS_SERVER in that case.
unset SOCKS_SERVER
fi
# Increase GC_MALLOC_LIMIT if set (default is 8000000)
if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then
append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}"
fi
# ipv6 hack, bug 168939. Needs --enable-ipv6.
use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET"
# Determine which modules *not* to build depending in the USE flags.
if ! use readline ; then
modules="${modules},readline"
fi
if ! use berkdb ; then
modules="${modules},dbm"
fi
if ! use gdbm ; then
modules="${modules},gdbm"
fi
if ! use ssl ; then
modules="${modules},openssl"
fi
if ! use ncurses ; then
modules="${modules},curses"
fi
if ! use tk ; then
modules="${modules},tk"
fi
# Provide an empty LIBPATHENV because we disable rpath but we do not
# need LD_LIBRARY_PATH by default since that breaks USE=multitarget
# #564272
INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \
--program-suffix=${MY_SUFFIX} \
--with-soname=ruby${MY_SUFFIX} \
--docdir=${EPREFIX}/usr/share/doc/${P} \
--enable-shared \
--enable-pthread \
--disable-rpath \
--with-out-ext="${modules}" \
$(use_with jemalloc jemalloc) \
$(use_enable socks5 socks) \
$(use_enable doc install-doc) \
--enable-ipv6 \
$(use_enable debug) \
${myconf} \
--enable-option-checking=no \
|| die "econf failed"
}
src_compile() {
emake V=1 EXTLDFLAGS="${LDFLAGS}" || die "emake failed"
}
src_test() {
emake -j1 V=1 test || die "make test failed"
elog "Ruby's make test has been run. Ruby also ships with a make check"
elog "that cannot be run until after ruby has been installed."
elog
if use rubytests; then
elog "You have enabled rubytests, so they will be installed to"
elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other"
elog "than root, and you must place them into a writeable directory."
elog "Then call: "
elog
elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb"
else
elog "Enable the rubytests USE flag to install the make check tests"
fi
}
src_install() {
# Remove the remaining bundled gems. We do this late in the process
# since they are used during the build to e.g. create the
# documentation.
rm -rf ext/json || die
# Ruby is involved in the install process, we don't want interference here.
unset RUBYOPT
local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
LD_LIBRARY_PATH="${S}:${D}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
RUBYLIB="${S}:${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
for d in $(find "${S}/ext" -type d) ; do
RUBYLIB="${RUBYLIB}:$d"
done
export LD_LIBRARY_PATH RUBYLIB
emake V=1 DESTDIR="${D}" install || die "make install failed"
# Remove installed rubygems copy
rm -rf "${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
rm -rf "${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
rm -rf "${D}/usr/bin/"{ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed"
if use doc; then
make DESTDIR="${D}" install-doc || die "make install-doc failed"
fi
if use examples; then
insinto /usr/share/doc/${PF}
doins -r sample
fi
dodoc ChangeLog NEWS doc/NEWS* README* || die
if use rubytests; then
pushd test
insinto /usr/share/${PN}-${SLOT}/test
doins -r .
popd
fi
}
pkg_postinst() {
if [[ ! -n $(readlink "${ROOT}"usr/bin/ruby) ]] ; then
eselect ruby set ruby${MY_SUFFIX}
fi
elog
elog "To switch between available Ruby profiles, execute as root:"
elog "\teselect ruby set ruby(19|20|...)"
elog
}
pkg_postrm() {
eselect ruby cleanup
}

@ -1,245 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
#PATCHSET=1
inherit autotools eutils flag-o-matic multilib versionator
MY_P="${PN}-$(get_version_component_range 1-3)"
S=${WORKDIR}/${MY_P}
SLOT=$(get_version_component_range 1-2)
MY_SUFFIX=$(delete_version_separator 1 ${SLOT})
RUBYVERSION=2.2.0
if [[ -n ${PATCHSET} ]]; then
if [[ ${PVR} == ${PV} ]]; then
PATCHSET="${PV}-r0.${PATCHSET}"
else
PATCHSET="${PVR}.${PATCHSET}"
fi
else
PATCHSET="${PVR}"
fi
DESCRIPTION="An object-oriented scripting language"
HOMEPAGE="http://www.ruby-lang.org/"
SRC_URI="mirror://ruby/2.2/${MY_P}.tar.xz
https://dev.gentoo.org/~flameeyes/ruby-team/${PN}-patches-${PATCHSET}.tar.bz2"
LICENSE="|| ( Ruby-BSD BSD-2 )"
KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
IUSE="berkdb debug doc examples gdbm ipv6 jemalloc libressl +rdoc rubytests socks5 ssl tk xemacs ncurses +readline"
RDEPEND="
berkdb? ( sys-libs/db:= )
gdbm? ( sys-libs/gdbm )
jemalloc? ( dev-libs/jemalloc )
ssl? (
!libressl? ( dev-libs/openssl:0= )
libressl? ( dev-libs/libressl )
)
socks5? ( >=net-proxy/dante-1.1.13 )
tk? (
dev-lang/tcl:0=[threads]
dev-lang/tk:0=[threads]
)
ncurses? ( sys-libs/ncurses:0= )
readline? ( sys-libs/readline:0= )
dev-libs/libyaml
virtual/libffi
sys-libs/zlib
>=app-eselect/eselect-ruby-20141227
!<dev-ruby/rdoc-3.9.4
!<dev-ruby/rubygems-1.8.10-r1"
DEPEND="${RDEPEND}"
BUNDLED_GEMS="
>=dev-ruby/minitest-5.4.3[ruby_targets_ruby22]
>=dev-ruby/power_assert-0.2.2[ruby_targets_ruby22]
>=dev-ruby/test-unit-3.0.8[ruby_targets_ruby22]
"
PDEPEND="
${BUNDLED_GEMS}
virtual/rubygems[ruby_targets_ruby22]
>=dev-ruby/json-1.8.1[ruby_targets_ruby22]
>=dev-ruby/rake-0.9.6[ruby_targets_ruby22]
rdoc? ( >=dev-ruby/rdoc-4.0.1[ruby_targets_ruby22] )
xemacs? ( app-xemacs/ruby-modes )"
src_prepare() {
EPATCH_FORCE="yes" EPATCH_SUFFIX="patch" \
epatch "${WORKDIR}/patches"
# We can no longer unbundle all of rake because rubygems now depends
# on this. We leave the actual rake code around to bootstrap
# rubygems, but remove the bits that would cause a file collision.
einfo "Unbundling gems..."
cd "$S"
rm -rf \
{bin,lib}/rake lib/rake.rb man/rake.1 \
bin/gem || die "removal failed"
# Remove bundled gems that we will install via PDEPEND, bug
# 539700. Use explicit version numbers to ensure rm fails when they
# change so we can update dependencies accordingly.
rm gems/{minitest-5.4.3,power_assert-0.2.2,test-unit-3.0.8}.gem || die
# Fix a hardcoded lib path in configure script
sed -i -e "s:\(RUBY_LIB_PREFIX=\"\${prefix}/\)lib:\1$(get_libdir):" \
configure.in || die "sed failed"
eautoreconf
}
src_configure() {
local modules= myconf=
# -fomit-frame-pointer makes ruby segfault, see bug #150413.
filter-flags -fomit-frame-pointer
# In many places aliasing rules are broken; play it safe
# as it's risky with newer compilers to leave it as it is.
append-flags -fno-strict-aliasing
# SuperH needs this
use sh && append-flags -mieee
# Socks support via dante
if use socks5 ; then
# Socks support can't be disabled as long as SOCKS_SERVER is
# set and socks library is present, so need to unset
# SOCKS_SERVER in that case.
unset SOCKS_SERVER
fi
# Increase GC_MALLOC_LIMIT if set (default is 8000000)
if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then
append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}"
fi
# ipv6 hack, bug 168939. Needs --enable-ipv6.
use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET"
# Determine which modules *not* to build depending in the USE flags.
if ! use readline ; then
modules="${modules},readline"
fi
if ! use berkdb ; then
modules="${modules},dbm"
fi
if ! use gdbm ; then
modules="${modules},gdbm"
fi
if ! use ssl ; then
modules="${modules},openssl"
fi
if ! use ncurses ; then
modules="${modules},curses"
fi
if ! use tk ; then
modules="${modules},tk"
fi
# Provide an empty LIBPATHENV because we disable rpath but we do not
# need LD_LIBRARY_PATH by default since that breaks USE=multitarget
# #564272
INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \
--program-suffix=${MY_SUFFIX} \
--with-soname=ruby${MY_SUFFIX} \
--docdir=${EPREFIX}/usr/share/doc/${P} \
--enable-shared \
--enable-pthread \
--disable-rpath \
--with-out-ext="${modules}" \
$(use_with jemalloc jemalloc) \
$(use_enable socks5 socks) \
$(use_enable doc install-doc) \
--enable-ipv6 \
$(use_enable debug) \
${myconf} \
--enable-option-checking=no \
|| die "econf failed"
}
src_compile() {
emake V=1 EXTLDFLAGS="${LDFLAGS}" || die "emake failed"
}
src_test() {
emake -j1 V=1 test || die "make test failed"
elog "Ruby's make test has been run. Ruby also ships with a make check"
elog "that cannot be run until after ruby has been installed."
elog
if use rubytests; then
elog "You have enabled rubytests, so they will be installed to"
elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other"
elog "than root, and you must place them into a writeable directory."
elog "Then call: "
elog
elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb"
else
elog "Enable the rubytests USE flag to install the make check tests"
fi
}
src_install() {
# Remove the remaining bundled gems. We do this late in the process
# since they are used during the build to e.g. create the
# documentation.
rm -rf ext/json || die
# Ruby is involved in the install process, we don't want interference here.
unset RUBYOPT
local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
LD_LIBRARY_PATH="${S}:${D}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
RUBYLIB="${S}:${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
for d in $(find "${S}/ext" -type d) ; do
RUBYLIB="${RUBYLIB}:$d"
done
export LD_LIBRARY_PATH RUBYLIB
emake V=1 DESTDIR="${D}" install || die "make install failed"
# Remove installed rubygems copy
rm -rf "${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
rm -rf "${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
rm -rf "${D}/usr/bin/"{ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed"
if use doc; then
make DESTDIR="${D}" install-doc || die "make install-doc failed"
fi
if use examples; then
insinto /usr/share/doc/${PF}
doins -r sample
fi
dodoc ChangeLog NEWS doc/NEWS* README* || die
if use rubytests; then
pushd test
insinto /usr/share/${PN}-${SLOT}/test
doins -r .
popd
fi
}
pkg_postinst() {
if [[ ! -n $(readlink "${ROOT}"usr/bin/ruby) ]] ; then
eselect ruby set ruby${MY_SUFFIX}
fi
elog
elog "To switch between available Ruby profiles, execute as root:"
elog "\teselect ruby set ruby(19|20|...)"
elog
}
pkg_postrm() {
eselect ruby cleanup
}

@ -1,242 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
#PATCHSET=1
inherit autotools eutils flag-o-matic multilib versionator
MY_P="${PN}-$(get_version_component_range 1-3)"
S=${WORKDIR}/${MY_P}
SLOT=$(get_version_component_range 1-2)
MY_SUFFIX=$(delete_version_separator 1 ${SLOT})
RUBYVERSION=2.3.0
if [[ -n ${PATCHSET} ]]; then
if [[ ${PVR} == ${PV} ]]; then
PATCHSET="${PV}-r0.${PATCHSET}"
else
PATCHSET="${PVR}.${PATCHSET}"
fi
else
PATCHSET="${PVR}"
fi
DESCRIPTION="An object-oriented scripting language"
HOMEPAGE="http://www.ruby-lang.org/"
SRC_URI="mirror://ruby/${SLOT}/${MY_P}.tar.xz
https://dev.gentoo.org/~flameeyes/ruby-team/${PN}-patches-${PATCHSET}.tar.bz2"
LICENSE="|| ( Ruby-BSD BSD-2 )"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
IUSE="berkdb debug doc examples gdbm ipv6 jemalloc libressl +rdoc rubytests socks5 ssl tk xemacs ncurses +readline"
RDEPEND="
berkdb? ( sys-libs/db:= )
gdbm? ( sys-libs/gdbm )
jemalloc? ( dev-libs/jemalloc )
ssl? (
!libressl? ( dev-libs/openssl:0= )
libressl? ( dev-libs/libressl )
)
socks5? ( >=net-proxy/dante-1.1.13 )
tk? (
dev-lang/tcl:0=[threads]
dev-lang/tk:0=[threads]
)
ncurses? ( sys-libs/ncurses:0= )
readline? ( sys-libs/readline:0= )
dev-libs/libyaml
virtual/libffi
sys-libs/zlib
>=app-eselect/eselect-ruby-20151229
!<dev-ruby/rdoc-3.9.4
!<dev-ruby/rubygems-1.8.10-r1"
DEPEND="${RDEPEND}"
BUNDLED_GEMS="
>=dev-ruby/did_you_mean-1.0.0:1[ruby_targets_ruby23]
>=dev-ruby/minitest-5.8.3[ruby_targets_ruby23]
>=dev-ruby/net-telnet-0.1.1[ruby_targets_ruby23]
>=dev-ruby/power_assert-0.2.6[ruby_targets_ruby23]
>=dev-ruby/rake-10.4.2[ruby_targets_ruby23]
>=dev-ruby/test-unit-3.1.5[ruby_targets_ruby23]
"
PDEPEND="
${BUNDLED_GEMS}
virtual/rubygems[ruby_targets_ruby23]
>=dev-ruby/json-1.8.3[ruby_targets_ruby23]
rdoc? ( >=dev-ruby/rdoc-4.2.1[ruby_targets_ruby23] )
xemacs? ( app-xemacs/ruby-modes )"
src_prepare() {
EPATCH_FORCE="yes" EPATCH_SUFFIX="patch" \
epatch "${WORKDIR}/patches"
einfo "Unbundling gems..."
cd "$S"
# Remove bundled gems that we will install via PDEPEND, bug
# 539700. Use explicit version numbers to ensure rm fails when they
# change so we can update dependencies accordingly.
rm -f gems/{did_you_mean-1.0.0,minitest-5.8.3,net-telnet-0.1.1,power_assert-0.2.6,rake-10.4.2,test-unit-3.1.5}.gem || die
# Fix a hardcoded lib path in configure script
sed -i -e "s:\(RUBY_LIB_PREFIX=\"\${prefix}/\)lib:\1$(get_libdir):" \
configure.in || die "sed failed"
eautoreconf
}
src_configure() {
local modules= myconf=
# -fomit-frame-pointer makes ruby segfault, see bug #150413.
filter-flags -fomit-frame-pointer
# In many places aliasing rules are broken; play it safe
# as it's risky with newer compilers to leave it as it is.
append-flags -fno-strict-aliasing
# SuperH needs this
use sh && append-flags -mieee
# Socks support via dante
if use socks5 ; then
# Socks support can't be disabled as long as SOCKS_SERVER is
# set and socks library is present, so need to unset
# SOCKS_SERVER in that case.
unset SOCKS_SERVER
fi
# Increase GC_MALLOC_LIMIT if set (default is 8000000)
if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then
append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}"
fi
# ipv6 hack, bug 168939. Needs --enable-ipv6.
use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET"
# Determine which modules *not* to build depending in the USE flags.
if ! use readline ; then
modules="${modules},readline"
fi
if ! use berkdb ; then
modules="${modules},dbm"
fi
if ! use gdbm ; then
modules="${modules},gdbm"
fi
if ! use ssl ; then
modules="${modules},openssl"
fi
if ! use ncurses ; then
modules="${modules},curses"
fi
if ! use tk ; then
modules="${modules},tk"
fi
# Provide an empty LIBPATHENV because we disable rpath but we do not
# need LD_LIBRARY_PATH by default since that breaks USE=multitarget
# #564272
INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \
--program-suffix=${MY_SUFFIX} \
--with-soname=ruby${MY_SUFFIX} \
--docdir=${EPREFIX}/usr/share/doc/${P} \
--enable-shared \
--enable-pthread \
--disable-rpath \
--with-out-ext="${modules}" \
$(use_with jemalloc jemalloc) \
$(use_enable socks5 socks) \
$(use_enable doc install-doc) \
--enable-ipv6 \
$(use_enable debug) \
${myconf} \
--enable-option-checking=no \
|| die "econf failed"
}
src_compile() {
emake V=1 EXTLDFLAGS="${LDFLAGS}" || die "emake failed"
}
src_test() {
emake -j1 V=1 test || die "make test failed"
elog "Ruby's make test has been run. Ruby also ships with a make check"
elog "that cannot be run until after ruby has been installed."
elog
if use rubytests; then
elog "You have enabled rubytests, so they will be installed to"
elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other"
elog "than root, and you must place them into a writeable directory."
elog "Then call: "
elog
elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb"
else
elog "Enable the rubytests USE flag to install the make check tests"
fi
}
src_install() {
# Remove the remaining bundled gems. We do this late in the process
# since they are used during the build to e.g. create the
# documentation.
rm -rf ext/json || die
# Ruby is involved in the install process, we don't want interference here.
unset RUBYOPT
local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
LD_LIBRARY_PATH="${S}:${D}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
RUBYLIB="${S}:${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
for d in $(find "${S}/ext" -type d) ; do
RUBYLIB="${RUBYLIB}:$d"
done
export LD_LIBRARY_PATH RUBYLIB
emake V=1 DESTDIR="${D}" install || die "make install failed"
# Remove installed rubygems and rdoc copy
rm -rf "${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
rm -rf "${D}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed"
rm -rf "${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
rm -rf "${D}/usr/bin/"{ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed"
if use doc; then
make DESTDIR="${D}" install-doc || die "make install-doc failed"
fi
if use examples; then
insinto /usr/share/doc/${PF}
doins -r sample
fi
dodoc ChangeLog NEWS doc/NEWS* README* || die
if use rubytests; then
pushd test
insinto /usr/share/${PN}-${SLOT}/test
doins -r .
popd
fi
}
pkg_postinst() {
if [[ ! -n $(readlink "${ROOT}"usr/bin/ruby) ]] ; then
eselect ruby set ruby${MY_SUFFIX}
fi
elog
elog "To switch between available Ruby profiles, execute as root:"
elog "\teselect ruby set ruby(19|20|...)"
elog
}
pkg_postrm() {
eselect ruby cleanup
}

@ -1,242 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
#PATCHSET=1
inherit autotools eutils flag-o-matic multilib versionator
MY_P="${PN}-$(get_version_component_range 1-3)"
S=${WORKDIR}/${MY_P}
SLOT=$(get_version_component_range 1-2)
MY_SUFFIX=$(delete_version_separator 1 ${SLOT})
RUBYVERSION=2.3.0
if [[ -n ${PATCHSET} ]]; then
if [[ ${PVR} == ${PV} ]]; then
PATCHSET="${PV}-r0.${PATCHSET}"
else
PATCHSET="${PVR}.${PATCHSET}"
fi
else
PATCHSET="${PVR}"
fi
DESCRIPTION="An object-oriented scripting language"
HOMEPAGE="http://www.ruby-lang.org/"
SRC_URI="mirror://ruby/${SLOT}/${MY_P}.tar.xz
https://dev.gentoo.org/~flameeyes/ruby-team/${PN}-patches-${PATCHSET}.tar.bz2"
LICENSE="|| ( Ruby-BSD BSD-2 )"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
IUSE="berkdb debug doc examples gdbm ipv6 jemalloc libressl +rdoc rubytests socks5 ssl tk xemacs ncurses +readline"
RDEPEND="
berkdb? ( sys-libs/db:= )
gdbm? ( sys-libs/gdbm )
jemalloc? ( dev-libs/jemalloc )
ssl? (
!libressl? ( dev-libs/openssl:0= )
libressl? ( dev-libs/libressl )
)
socks5? ( >=net-proxy/dante-1.1.13 )
tk? (
dev-lang/tcl:0=[threads]
dev-lang/tk:0=[threads]
)
ncurses? ( sys-libs/ncurses:0= )
readline? ( sys-libs/readline:0= )
dev-libs/libyaml
virtual/libffi
sys-libs/zlib
>=app-eselect/eselect-ruby-20151229
!<dev-ruby/rdoc-3.9.4
!<dev-ruby/rubygems-1.8.10-r1"
DEPEND="${RDEPEND}"
BUNDLED_GEMS="
>=dev-ruby/did_you_mean-1.0.0:1[ruby_targets_ruby23]
>=dev-ruby/minitest-5.8.3[ruby_targets_ruby23]
>=dev-ruby/net-telnet-0.1.1[ruby_targets_ruby23]
>=dev-ruby/power_assert-0.2.6[ruby_targets_ruby23]
>=dev-ruby/rake-10.4.2[ruby_targets_ruby23]
>=dev-ruby/test-unit-3.1.5[ruby_targets_ruby23]
"
PDEPEND="
${BUNDLED_GEMS}
virtual/rubygems[ruby_targets_ruby23]
>=dev-ruby/json-1.8.3[ruby_targets_ruby23]
rdoc? ( >=dev-ruby/rdoc-4.2.1[ruby_targets_ruby23] )
xemacs? ( app-xemacs/ruby-modes )"
src_prepare() {
EPATCH_FORCE="yes" EPATCH_SUFFIX="patch" \
epatch "${WORKDIR}/patches"
einfo "Unbundling gems..."
cd "$S"
# Remove bundled gems that we will install via PDEPEND, bug
# 539700. Use explicit version numbers to ensure rm fails when they
# change so we can update dependencies accordingly.
rm -f gems/{did_you_mean-1.0.0,minitest-5.8.3,net-telnet-0.1.1,power_assert-0.2.6,rake-10.4.2,test-unit-3.1.5}.gem || die
# Fix a hardcoded lib path in configure script
sed -i -e "s:\(RUBY_LIB_PREFIX=\"\${prefix}/\)lib:\1$(get_libdir):" \
configure.in || die "sed failed"
eautoreconf
}
src_configure() {
local modules= myconf=
# -fomit-frame-pointer makes ruby segfault, see bug #150413.
filter-flags -fomit-frame-pointer
# In many places aliasing rules are broken; play it safe
# as it's risky with newer compilers to leave it as it is.
append-flags -fno-strict-aliasing
# SuperH needs this
use sh && append-flags -mieee
# Socks support via dante
if use socks5 ; then
# Socks support can't be disabled as long as SOCKS_SERVER is
# set and socks library is present, so need to unset
# SOCKS_SERVER in that case.
unset SOCKS_SERVER
fi
# Increase GC_MALLOC_LIMIT if set (default is 8000000)
if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then
append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}"
fi
# ipv6 hack, bug 168939. Needs --enable-ipv6.
use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET"
# Determine which modules *not* to build depending in the USE flags.
if ! use readline ; then
modules="${modules},readline"
fi
if ! use berkdb ; then
modules="${modules},dbm"
fi
if ! use gdbm ; then
modules="${modules},gdbm"
fi
if ! use ssl ; then
modules="${modules},openssl"
fi
if ! use ncurses ; then
modules="${modules},curses"
fi
if ! use tk ; then
modules="${modules},tk"
fi
# Provide an empty LIBPATHENV because we disable rpath but we do not
# need LD_LIBRARY_PATH by default since that breaks USE=multitarget
# #564272
INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \
--program-suffix=${MY_SUFFIX} \
--with-soname=ruby${MY_SUFFIX} \
--docdir=${EPREFIX}/usr/share/doc/${P} \
--enable-shared \
--enable-pthread \
--disable-rpath \
--with-out-ext="${modules}" \
$(use_with jemalloc jemalloc) \
$(use_enable socks5 socks) \
$(use_enable doc install-doc) \
--enable-ipv6 \
$(use_enable debug) \
${myconf} \
--enable-option-checking=no \
|| die "econf failed"
}
src_compile() {
emake V=1 EXTLDFLAGS="${LDFLAGS}" || die "emake failed"
}
src_test() {
emake -j1 V=1 test || die "make test failed"
elog "Ruby's make test has been run. Ruby also ships with a make check"
elog "that cannot be run until after ruby has been installed."
elog
if use rubytests; then
elog "You have enabled rubytests, so they will be installed to"
elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other"
elog "than root, and you must place them into a writeable directory."
elog "Then call: "
elog
elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb"
else
elog "Enable the rubytests USE flag to install the make check tests"
fi
}
src_install() {
# Remove the remaining bundled gems. We do this late in the process
# since they are used during the build to e.g. create the
# documentation.
rm -rf ext/json || die
# Ruby is involved in the install process, we don't want interference here.
unset RUBYOPT
local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
LD_LIBRARY_PATH="${S}:${D}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
RUBYLIB="${S}:${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
for d in $(find "${S}/ext" -type d) ; do
RUBYLIB="${RUBYLIB}:$d"
done
export LD_LIBRARY_PATH RUBYLIB
emake V=1 DESTDIR="${D}" install || die "make install failed"
# Remove installed rubygems and rdoc copy
rm -rf "${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
rm -rf "${D}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed"
rm -rf "${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
rm -rf "${D}/usr/bin/"{ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed"
if use doc; then
make DESTDIR="${D}" install-doc || die "make install-doc failed"
fi
if use examples; then
insinto /usr/share/doc/${PF}
doins -r sample
fi
dodoc ChangeLog NEWS doc/NEWS* README* || die
if use rubytests; then
pushd test
insinto /usr/share/${PN}-${SLOT}/test
doins -r .
popd
fi
}
pkg_postinst() {
if [[ ! -n $(readlink "${ROOT}"usr/bin/ruby) ]] ; then
eselect ruby set ruby${MY_SUFFIX}
fi
elog
elog "To switch between available Ruby profiles, execute as root:"
elog "\teselect ruby set ruby(19|20|...)"
elog
}
pkg_postrm() {
eselect ruby cleanup
}

@ -1,243 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
#PATCHSET=1
inherit autotools eutils flag-o-matic multilib versionator
MY_P="${PN}-$(get_version_component_range 1-3)"
S=${WORKDIR}/${MY_P}
SLOT=$(get_version_component_range 1-2)
MY_SUFFIX=$(delete_version_separator 1 ${SLOT})
RUBYVERSION=${SLOT}.0
if [[ -n ${PATCHSET} ]]; then
if [[ ${PVR} == ${PV} ]]; then
PATCHSET="${PV}-r0.${PATCHSET}"
else
PATCHSET="${PVR}.${PATCHSET}"
fi
else
PATCHSET="${PVR}"
fi
DESCRIPTION="An object-oriented scripting language"
HOMEPAGE="http://www.ruby-lang.org/"
SRC_URI="mirror://ruby/${SLOT}/${MY_P}.tar.xz
https://dev.gentoo.org/~graaff/ruby-team/${PN}-patches-${PATCHSET}.tar.bz2"
LICENSE="|| ( Ruby-BSD BSD-2 )"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
IUSE="berkdb debug doc examples gdbm ipv6 jemalloc libressl +rdoc rubytests socks5 ssl static-libs tk xemacs"
RDEPEND="
berkdb? ( sys-libs/db:= )
gdbm? ( sys-libs/gdbm )
jemalloc? ( dev-libs/jemalloc )
ssl? (
!libressl? ( dev-libs/openssl:0= )
libressl? ( dev-libs/libressl )
)
socks5? ( >=net-proxy/dante-1.1.13 )
tk? (
dev-lang/tcl:0=[threads]
dev-lang/tk:0=[threads]
)
dev-libs/libyaml
virtual/libffi
sys-libs/zlib
>=app-eselect/eselect-ruby-20161226
!<dev-ruby/rdoc-3.9.4
!<dev-ruby/rubygems-1.8.10-r1"
DEPEND="${RDEPEND}"
BUNDLED_GEMS="
>=dev-ruby/did_you_mean-1.1.0:2.4[ruby_targets_ruby24]
>=dev-ruby/minitest-5.10.1[ruby_targets_ruby24]
>=dev-ruby/net-telnet-0.1.1[ruby_targets_ruby24]
>=dev-ruby/power_assert-0.4.1[ruby_targets_ruby24]
>=dev-ruby/rake-12.0.0[ruby_targets_ruby24]
>=dev-ruby/test-unit-3.2.3[ruby_targets_ruby24]
>=dev-ruby/xmlrpc-0.2.1[ruby_targets_ruby24]
"
PDEPEND="
${BUNDLED_GEMS}
virtual/rubygems[ruby_targets_ruby24]
>=dev-ruby/json-2.0.2[ruby_targets_ruby24]
rdoc? ( >=dev-ruby/rdoc-5.1.0[ruby_targets_ruby24] )
xemacs? ( app-xemacs/ruby-modes )"
src_prepare() {
EPATCH_FORCE="yes" EPATCH_SUFFIX="patch" \
epatch "${WORKDIR}/patches"
einfo "Unbundling gems..."
cd "$S"
# Remove bundled gems that we will install via PDEPEND, bug
# 539700. Use explicit version numbers to ensure rm fails when they
# change so we can update dependencies accordingly.
rm -f gems/{did_you_mean-1.1.0,minitest-5.10.1,net-telnet-0.1.1,power_assert-0.4.1,rake-12.0.0,test-unit-3.2.3,xmlrpc-0.2.1}.gem || die
einfo "Removing bundled libraries..."
rm -fr ext/fiddle/libffi-3.2.1 || die
# Fix a hardcoded lib path in configure script
sed -i -e "s:\(RUBY_LIB_PREFIX=\"\${prefix}/\)lib:\1$(get_libdir):" \
configure.in || die "sed failed"
eapply_user
eautoreconf
}
src_configure() {
local modules= myconf=
# -fomit-frame-pointer makes ruby segfault, see bug #150413.
filter-flags -fomit-frame-pointer
# In many places aliasing rules are broken; play it safe
# as it's risky with newer compilers to leave it as it is.
append-flags -fno-strict-aliasing
# SuperH needs this
use sh && append-flags -mieee
# Socks support via dante
if use socks5 ; then
# Socks support can't be disabled as long as SOCKS_SERVER is
# set and socks library is present, so need to unset
# SOCKS_SERVER in that case.
unset SOCKS_SERVER
fi
# Increase GC_MALLOC_LIMIT if set (default is 8000000)
if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then
append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}"
fi
# ipv6 hack, bug 168939. Needs --enable-ipv6.
use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET"
# Determine which modules *not* to build depending in the USE flags.
if ! use berkdb ; then
modules="${modules},dbm"
fi
if ! use gdbm ; then
modules="${modules},gdbm"
fi
if ! use ssl ; then
modules="${modules},openssl"
fi
if ! use tk ; then
modules="${modules},tk"
fi
# Provide an empty LIBPATHENV because we disable rpath but we do not
# need LD_LIBRARY_PATH by default since that breaks USE=multitarget
# #564272
INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \
--program-suffix=${MY_SUFFIX} \
--with-soname=ruby${MY_SUFFIX} \
--docdir=${EPREFIX}/usr/share/doc/${P} \
--enable-shared \
--enable-pthread \
--disable-rpath \
--with-out-ext="${modules}" \
$(use_with jemalloc jemalloc) \
$(use_enable socks5 socks) \
$(use_enable doc install-doc) \
--enable-ipv6 \
$(use_enable static-libs static) \
$(use_enable static-libs install-static-library) \
$(use_with static-libs static-linked-ext) \
$(use_enable debug) \
${myconf} \
--enable-option-checking=no \
|| die "econf failed"
}
src_compile() {
emake V=1 EXTLDFLAGS="${LDFLAGS}" || die "emake failed"
}
src_test() {
emake -j1 V=1 test || die "make test failed"
elog "Ruby's make test has been run. Ruby also ships with a make check"
elog "that cannot be run until after ruby has been installed."
elog
if use rubytests; then
elog "You have enabled rubytests, so they will be installed to"
elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other"
elog "than root, and you must place them into a writeable directory."
elog "Then call: "
elog
elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb"
else
elog "Enable the rubytests USE flag to install the make check tests"
fi
}
src_install() {
# Remove the remaining bundled gems. We do this late in the process
# since they are used during the build to e.g. create the
# documentation.
rm -rf ext/json || die
# Ruby is involved in the install process, we don't want interference here.
unset RUBYOPT
local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
LD_LIBRARY_PATH="${S}:${D}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
RUBYLIB="${S}:${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
for d in $(find "${S}/ext" -type d) ; do
RUBYLIB="${RUBYLIB}:$d"
done
export LD_LIBRARY_PATH RUBYLIB
emake V=1 DESTDIR="${D}" install || die "make install failed"
# Remove installed rubygems and rdoc copy
rm -rf "${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
rm -rf "${D}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed"
rm -rf "${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
rm -rf "${D}/usr/bin/"{ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed"
if use doc; then
make DESTDIR="${D}" install-doc || die "make install-doc failed"
fi
if use examples; then
insinto /usr/share/doc/${PF}
doins -r sample
fi
dodoc ChangeLog NEWS doc/NEWS* README* || die
if use rubytests; then
pushd test
insinto /usr/share/${PN}-${SLOT}/test
doins -r .
popd
fi
}
pkg_postinst() {
if [[ ! -n $(readlink "${ROOT}"usr/bin/ruby) ]] ; then
eselect ruby set ruby${MY_SUFFIX}
fi
elog
elog "To switch between available Ruby profiles, execute as root:"
elog "\teselect ruby set ruby(19|20|...)"
elog
}
pkg_postrm() {
eselect ruby cleanup
}

@ -1,243 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
#PATCHSET=1
inherit autotools eutils flag-o-matic multilib versionator
MY_P="${PN}-$(get_version_component_range 1-3)"
S=${WORKDIR}/${MY_P}
SLOT=$(get_version_component_range 1-2)
MY_SUFFIX=$(delete_version_separator 1 ${SLOT})
RUBYVERSION=${SLOT}.0
if [[ -n ${PATCHSET} ]]; then
if [[ ${PVR} == ${PV} ]]; then
PATCHSET="${PV}-r0.${PATCHSET}"
else
PATCHSET="${PVR}.${PATCHSET}"
fi
else
PATCHSET="${PVR}"
fi
DESCRIPTION="An object-oriented scripting language"
HOMEPAGE="http://www.ruby-lang.org/"
SRC_URI="mirror://ruby/${SLOT}/${MY_P}.tar.xz
https://dev.gentoo.org/~graaff/ruby-team/${PN}-patches-${PATCHSET}.tar.bz2"
LICENSE="|| ( Ruby-BSD BSD-2 )"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
IUSE="berkdb debug doc examples gdbm ipv6 jemalloc libressl +rdoc rubytests socks5 ssl static-libs tk xemacs"
RDEPEND="
berkdb? ( sys-libs/db:= )
gdbm? ( sys-libs/gdbm )
jemalloc? ( dev-libs/jemalloc )
ssl? (
!libressl? ( dev-libs/openssl:0= )
libressl? ( dev-libs/libressl )
)
socks5? ( >=net-proxy/dante-1.1.13 )
tk? (
dev-lang/tcl:0=[threads]
dev-lang/tk:0=[threads]
)
dev-libs/libyaml
virtual/libffi
sys-libs/zlib
>=app-eselect/eselect-ruby-20161226
!<dev-ruby/rdoc-3.9.4
!<dev-ruby/rubygems-1.8.10-r1"
DEPEND="${RDEPEND}"
BUNDLED_GEMS="
>=dev-ruby/did_you_mean-1.1.0:2.4[ruby_targets_ruby24]
>=dev-ruby/minitest-5.10.1[ruby_targets_ruby24]
>=dev-ruby/net-telnet-0.1.1[ruby_targets_ruby24]
>=dev-ruby/power_assert-0.4.1[ruby_targets_ruby24]
>=dev-ruby/rake-12.0.0[ruby_targets_ruby24]
>=dev-ruby/test-unit-3.2.3[ruby_targets_ruby24]
>=dev-ruby/xmlrpc-0.2.1[ruby_targets_ruby24]
"
PDEPEND="
${BUNDLED_GEMS}
virtual/rubygems[ruby_targets_ruby24]
>=dev-ruby/json-2.0.2[ruby_targets_ruby24]
rdoc? ( >=dev-ruby/rdoc-5.1.0[ruby_targets_ruby24] )
xemacs? ( app-xemacs/ruby-modes )"
src_prepare() {
EPATCH_FORCE="yes" EPATCH_SUFFIX="patch" \
epatch "${WORKDIR}/patches"
einfo "Unbundling gems..."
cd "$S"
# Remove bundled gems that we will install via PDEPEND, bug
# 539700. Use explicit version numbers to ensure rm fails when they
# change so we can update dependencies accordingly.
rm -f gems/{did_you_mean-1.1.0,minitest-5.10.1,net-telnet-0.1.1,power_assert-0.4.1,rake-12.0.0,test-unit-3.2.3,xmlrpc-0.2.1}.gem || die
einfo "Removing bundled libraries..."
rm -fr ext/fiddle/libffi-3.2.1 || die
# Fix a hardcoded lib path in configure script
sed -i -e "s:\(RUBY_LIB_PREFIX=\"\${prefix}/\)lib:\1$(get_libdir):" \
configure.in || die "sed failed"
eapply_user
eautoreconf
}
src_configure() {
local modules= myconf=
# -fomit-frame-pointer makes ruby segfault, see bug #150413.
filter-flags -fomit-frame-pointer
# In many places aliasing rules are broken; play it safe
# as it's risky with newer compilers to leave it as it is.
append-flags -fno-strict-aliasing
# SuperH needs this
use sh && append-flags -mieee
# Socks support via dante
if use socks5 ; then
# Socks support can't be disabled as long as SOCKS_SERVER is
# set and socks library is present, so need to unset
# SOCKS_SERVER in that case.
unset SOCKS_SERVER
fi
# Increase GC_MALLOC_LIMIT if set (default is 8000000)
if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then
append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}"
fi
# ipv6 hack, bug 168939. Needs --enable-ipv6.
use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET"
# Determine which modules *not* to build depending in the USE flags.
if ! use berkdb ; then
modules="${modules},dbm"
fi
if ! use gdbm ; then
modules="${modules},gdbm"
fi
if ! use ssl ; then
modules="${modules},openssl"
fi
if ! use tk ; then
modules="${modules},tk"
fi
# Provide an empty LIBPATHENV because we disable rpath but we do not
# need LD_LIBRARY_PATH by default since that breaks USE=multitarget
# #564272
INSTALL="${EPREFIX}/usr/bin/install -c" LIBPATHENV="" econf \
--program-suffix=${MY_SUFFIX} \
--with-soname=ruby${MY_SUFFIX} \
--docdir=${EPREFIX}/usr/share/doc/${P} \
--enable-shared \
--enable-pthread \
--disable-rpath \
--with-out-ext="${modules}" \
$(use_with jemalloc jemalloc) \
$(use_enable socks5 socks) \
$(use_enable doc install-doc) \
--enable-ipv6 \
$(use_enable static-libs static) \
$(use_enable static-libs install-static-library) \
$(use_with static-libs static-linked-ext) \
$(use_enable debug) \
${myconf} \
--enable-option-checking=no \
|| die "econf failed"
}
src_compile() {
emake V=1 EXTLDFLAGS="${LDFLAGS}" || die "emake failed"
}
src_test() {
emake -j1 V=1 test || die "make test failed"
elog "Ruby's make test has been run. Ruby also ships with a make check"
elog "that cannot be run until after ruby has been installed."
elog
if use rubytests; then
elog "You have enabled rubytests, so they will be installed to"
elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other"
elog "than root, and you must place them into a writeable directory."
elog "Then call: "
elog
elog "ruby${MY_SUFFIX} -C /location/of/tests runner.rb"
else
elog "Enable the rubytests USE flag to install the make check tests"
fi
}
src_install() {
# Remove the remaining bundled gems. We do this late in the process
# since they are used during the build to e.g. create the
# documentation.
rm -rf ext/json || die
# Ruby is involved in the install process, we don't want interference here.
unset RUBYOPT
local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
LD_LIBRARY_PATH="${S}:${D}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
RUBYLIB="${S}:${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
for d in $(find "${S}/ext" -type d) ; do
RUBYLIB="${RUBYLIB}:$d"
done
export LD_LIBRARY_PATH RUBYLIB
emake V=1 DESTDIR="${D}" install || die "make install failed"
# Remove installed rubygems and rdoc copy
rm -rf "${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
rm -rf "${D}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed"
rm -rf "${D}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
rm -rf "${D}/usr/bin/"{ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed"
if use doc; then
make DESTDIR="${D}" install-doc || die "make install-doc failed"
fi
if use examples; then
insinto /usr/share/doc/${PF}
doins -r sample
fi
dodoc ChangeLog NEWS doc/NEWS* README* || die
if use rubytests; then
pushd test
insinto /usr/share/${PN}-${SLOT}/test
doins -r .
popd
fi
}
pkg_postinst() {
if [[ ! -n $(readlink "${ROOT}"usr/bin/ruby) ]] ; then
eselect ruby set ruby${MY_SUFFIX}
fi
elog
elog "To switch between available Ruby profiles, execute as root:"
elog "\teselect ruby set ruby(19|20|...)"
elog
}
pkg_postrm() {
eselect ruby cleanup
}

@ -101,6 +101,26 @@ DIST scala-2.11.1-nest.jar 2920 SHA256 3c7cf1a1b9fe9ad2abf3bfcedaa17a976c72f4bcc
DIST scala-2.11.1-push.jar 8886289 SHA256 58eb2b8c501bbff0e78074a058e3fc160012a80952c1cc96ed301d8a08d7e98d SHA512 b5539d381c8978ac57fc4258696e4cb552f47917178152b38b5683e42ed60da4d9da198a0344652f201541a71f92afd2ac8b3c3d3ec5266a8c222e9661d8a06a WHIRLPOOL 8fa6522a0fd9939f4ffd443b55e7a5adbb93a9dc5cbad569ccecd6be77ecd259eadbdb16c2c7eab6d9f175fbf33746faf9c41cf4d1050e7f576b86119301e126
DIST scala-2.11.1-vizant.jar 15910 SHA256 a54e19093725d0d085544553246e48607c1e6ab65575ae0ff721b788118461d6 SHA512 4464d7349016f4999199e227e8eaf7bb3ef6b7e38ad0e8e710faad55df2e1243d99b53b9a789a1ffd3c39aef0d979dffc543f4691feae68cfa743e51bcf61390 WHIRLPOOL 1b957b8b850f79309c3577a2dcac52a620fa54f810f242a02c52bbcee1cc9c5818785baa7db8e2b82b850bcb56b528c4dd07cdfad2f991c0025293ca02c0dc99
DIST scala-2.11.1.tar.gz 5633076 SHA256 868a009c89a331ec05914faa204f865d09f2b7b35eabdb41e7f43e8734e0abf5 SHA512 bde7a8fae9fa570df392a70aa06f901bc4987703fadf1e7ad9f090f3b3c9a2ff1bbe055a401b0d851193b5ddcd8b0536c4916f79ae4c63b74c31695de6e651b2 WHIRLPOOL 4f153b829efe7e3435bab5fca27a0e52c94aa8f50f2078cee082575bb8f7677b4e0a70c49a92060c3509cc009f3586ff592c2b332a4c78bb57bcb9973328e6d1
DIST scala-2.11.11-annotations.jar 2242 SHA256 f2d057a006bba4253d069795284a7610f1c837af6a80c0057736099962e24bcc SHA512 3ceee0b1361b9e0911c1ff060ad108a1d93f7ea3e82ef946401cd5f895cb06016ac0ecdfd095f99b11cfb28c4cef7705c1b564c7af644c5f19b45c14a413c4dd WHIRLPOOL 51fa0efc5dd14cf8364e9639375511fc3e716bd520a193e6c17a2fe3f02eebd1529eb98fd3b382a6386baa5b779ebd0327e8f141aee172d11d9548d9921c58e1
DIST scala-2.11.11-ant-contrib.jar 224277 SHA256 be33a69818310b5c55e41dc11d48cd895f5f129da4b0d28c2f4c6c3e1cbcf3fc SHA512 5ec325a55bb213226c86faf8a99951839319e9579956ae58e2ccfe84f62d2742542998f98eed3f0dc8f8f94635d6dff1fe02e3c0f5289df1f09027ae2b9bee83 WHIRLPOOL aa713cc04b10c46adbbb8a5904e3fb34c6e32b67bb9a5f1a89768ceab8c31b977875c84434bc03c5b42105a4019f55cc10d806b0345c365a309e93d3f02e0a10
DIST scala-2.11.11-ant-dotnet-1.0.jar 57795 SHA256 40c18fcfb8c28e4ee82e53f72a3257db43bcba01e16ebd5a4550fc419edf30c1 SHA512 72afc387cf9dbeb99e627ca7f35f919f627bbf3f072eb46036120695fb70311490593c255c2a2e79b684adb8f213d8ab591d4ceda5d5f2e6b6906a6977b38867 WHIRLPOOL 18aa33fe259bd52e2f37b903be39d462e8622ff744f990fc92871eaa4fe10ff69cd25b2c968cc353b3c5138cd3fffd755715aef6bb16c57b0b72e7e5fd1975e1
DIST scala-2.11.11-ant.jar 1506140 SHA256 0251dbb938740ace07a53675113eee753ba389db65aebc814b175af50321620e SHA512 ddee72ca62adb20e700022609749a4d6cc848c94e597a7450226770c8b97aa2c1f7f23b7a1c6ac8acd63047101997ebd68c19b393ebffde9ff5c7bb1957cd18c WHIRLPOOL 1b2b7e0289cb16f5131a9c0b1b6eb1279011e7af79fc470dd6dc2047afc7fa99bdeec6d9db4f46adb83f6110593118d0909a4b1fa6b01dc56890bf6d2785373b
DIST scala-2.11.11-code.jar 683 SHA256 4a03a08954e6b912a469b5e0db898247ea3ebc25b641f328e80f19163a0d908a SHA512 d963c186f3029858b1f6b53cf6e3470946365f13a6bcc334a7c959fd449dace10a953c496dbf3036828f2b5e5ad17d22f5e3912446bed14bd71b2f0de2f6c767 WHIRLPOOL 06e44b713306b3bdb7e878db1598546b45857091eb457c0fdba738d5f8c4de726920532e5cdf10260002c69299bd2756df52f407373053c5883e961899624d85
DIST scala-2.11.11-enums.jar 1372 SHA256 95c53606c7113333ef95b4efbd3ae08af715ca49f71845a5d33150e6b7e9a072 SHA512 3d2356b9f610e98a03f64cbdd18ee36138b68ba5b170bb9b78bc7449439c3870f6f5bc795f3e1b8d325daf468ae85c581b60d1d360c1ae68c70792ad62b9c1dc WHIRLPOOL 30b26ba56a36272cf5973d3a89850cb3f5bff6c45a7a6bbd6ccf4ff342720bba89dfc0cdbe10058b770b7e73093ea948e574d5e081c36ab866f3bea9f0e14f95
DIST scala-2.11.11-forkjoin.jar 60850 SHA256 4007ca649f037ed5ecc87c74529f499b75ed1a0f3f78e8f82cd97a71f5d2d5c7 SHA512 702370f2654b1c06f340c100078c630a82808e56c4dcc323881d6547945ce028345a5ee3048cbb9502a3b340b1d84ab5a635f80dbb381fdd88cc25b60cad768f WHIRLPOOL 9d561c9872c140e266efefb1c1afe76a2754eda32357718d048ff0896d6a2d14f168e1e2eddfcb37bbd0ac07fb7a7079b63e0f512946a7e30ff62883ee8bfd84
DIST scala-2.11.11-genericNest.jar 1136 SHA256 c2c23341eec9fb379b57d7bf1156fedb3e2b9f97d2d5729fbfc7d766fd390faa SHA512 32c3b3e14bc72db2572bf120c1fda49a369b27ff8ae6ae12f6d7b12fdffef4064b515671c8f1b6dbfd78209247f6a7b7b26e700dd70a105de3ca59f5185ff9d6 WHIRLPOOL 61b2d9f840fc0ed86a8207cf353a2f7b9bf8523d31b4e8f74eb21ecac1a405ed04c5a4a8e78a13d64b2dd186a7ec3885cd5e2514ad572e600e5744c3f15f74c5
DIST scala-2.11.11-gentoo-binary.tar.bz2 31842222 SHA256 fdd72db43e12c60cf2174d57235442ef91dadeb1256628fc3b571ad7c20d933c SHA512 0325dad506d71397dff36d741834f57267b07d1f5f65f8e5e21124754c0dc73ec4613cbb48f6c11383ab8c277f1bea1af5338f1af74e5c5d19ed06ca5f4c6829 WHIRLPOOL 2ef01bd9856eb2b56e8f148a47f46f0dcc61ac9f5cc34294e87797cf5a2cd9d917301baedaf561c4ebf9832f8b8da2b9d58a1a63b10566ea930aaf46546df0c5
DIST scala-2.11.11-instrumented.jar 31725 SHA256 8a424c8bd5805ec429a9477cbd0f44bf65a2b79b720d438bfd347dba8da06484 SHA512 b1d77c4380a2b8ffe715ec106e58081e5c89e314c5a13071d627c3f974144ad453e79d405cd722d75095b62e8682b7414d40b691506c7d2f5dde62e2fce51e39 WHIRLPOOL 5ef8ee89b3fa66bf5025fd1b5db65d4d628b3452ba8530e3c3b1dd530fb5286fe3acee2cf56de09148cf2d37968626708690cc03da202cf3d58159cfd56fe8bc
DIST scala-2.11.11-jsoup-1.3.1.jar 133835 SHA256 5695a4351412dbb21cfc9f09a31d66df5da94bd9bf2777325ff22916bbb32cb0 SHA512 365e43b6d8ba14ae32607241481f7c0e6393268f5c3faef860be7674150edece2c30376108e54f307df6a266a91100a1c7dbc2f28b4207b5227bc1bec6e1106d WHIRLPOOL 5b8ecbd677722e59642b630257748260dad0ad2e04b78b4472022729554d3984805dc02214cc983cacb76b0a526b062937074d3122a804e97e3e772e8c2e003c
DIST scala-2.11.11-jsr166_and_extra.jar 728574 SHA256 e33a59e291bae8dbd2b37c6a4d5eae459a313db3a588f42c59ac5fd8edf6e13b SHA512 40d949cfefc5111c79b79f085657d56aa046d1b318e6ad78de5869f61a6515c2076b70344be5ae3fb93a7b3f54f46a129e2536515b258e0d5bf2e670c5001306 WHIRLPOOL ef8414d7862736cf072ff60fff5008f38dadcf826364cf21929fdfca7d331872d8097e6a6907dd500ef5d5a68964d8c2ed9ebeedf6470dc25ede269c1a8172b5
DIST scala-2.11.11-macro210.jar 2065 SHA256 c0796c2defec3dcf2f786945fbdced0448a958bb68eaef71efcf5c14184f28ff SHA512 13c119afc4400f1531cad0cf38ab1652fce641090c11bff8f044a0d7f99df90412241ae78d5c623b7ecff1ce4720ae51fca4324f51bde0331e12f2e6e9898dd0 WHIRLPOOL 33b843583c02bd25db09df595026822f4e81d6a80c2cce3a7099dfb77dda80f595e5392e843c786a63b8d430d8acf53c20bc669ec1272b0f58c52cb0b67408b5
DIST scala-2.11.11-maven-ant-tasks-2.1.1.jar 1314262 SHA256 b8891b4a90aca2793ad385ab57216f51c4879c6ab7e927354f407b46510cab51 SHA512 e3f0ff1d41ec31b2b64acb2ebcc175709714033589cb8e763f94aa80359c84f5d960c46dae713c9e37e1a09b977e7da617f8fe10a5b6fb30c55efd19bc307e68 WHIRLPOOL 73c44ea6aba4a3c697f64d08475b4c17bdc929ac9f320a25714fbe7cdc2939ad334deb7a90eb6c950cce8ba402d19bc2615a104788bafed7d247b997d3146743
DIST scala-2.11.11-maven-deps.tar.gz 94530315 SHA256 544769138ab3a99c302f4f59d466bbb00f3c2da32dcbc285cb0c35efc5ba6a5a SHA512 b716d5d2a79960bae47dbb96a350027e908b9d5b62a0806e6b6f9905374f3e9cbb06c8865a3a2aa96399b4fc2fa1db949729cbb560e70af31225be151375f1ff WHIRLPOOL 0d97cfdd437297a41fe4c4991b081dff9aa21576cd87d350cee52ad1bb22702ec4c3b4ac396739b523012d5441496a037b6334a49608335f25d2bfb830e669c8
DIST scala-2.11.11-methvsfield.jar 609 SHA256 730b33d098319d969760f2250dc6924c9f85f94a8a2eb2b2a025dcf05378d9c6 SHA512 6db923ed7059bc91c8442d5804ccd8336e94f5202b3dcc348a4eb5026f09e1e86862f6e94818beae9ad42fcdc8e51df4d59a27109903a8ccb78054425ae47a71 WHIRLPOOL d5362d5fc2795ff0671f386429840bb4f84173f9308e34c2b0eb585fb7cacbd308ab87c42f2fd407597abc4f010e8ffde600dd30addcd63c2d71c2d5f22f1582
DIST scala-2.11.11-nest.jar 2920 SHA256 3c7cf1a1b9fe9ad2abf3bfcedaa17a976c72f4bccb0e0c7dbcf7ecf27bc20aa5 SHA512 5eaaa870e06b5e00efb1f6ccced71343e8aa01578ea2b320b2d051f2df3713df9c500f074cc74a9e3c5cc509e03cf9c71265329bf2ddb3e82cb331524202fa38 WHIRLPOOL 1d73b612946a6a226841d3e0ad8cb3ebb06997c70e94feb1f9236e4e58a93c429cc7cdecaa4175fd5b78920253bcc157f798593b6a8eacb873b3d9a51284be34
DIST scala-2.11.11-push.jar 8886289 SHA256 58eb2b8c501bbff0e78074a058e3fc160012a80952c1cc96ed301d8a08d7e98d SHA512 b5539d381c8978ac57fc4258696e4cb552f47917178152b38b5683e42ed60da4d9da198a0344652f201541a71f92afd2ac8b3c3d3ec5266a8c222e9661d8a06a WHIRLPOOL 8fa6522a0fd9939f4ffd443b55e7a5adbb93a9dc5cbad569ccecd6be77ecd259eadbdb16c2c7eab6d9f175fbf33746faf9c41cf4d1050e7f576b86119301e126
DIST scala-2.11.11-vizant.jar 15910 SHA256 a54e19093725d0d085544553246e48607c1e6ab65575ae0ff721b788118461d6 SHA512 4464d7349016f4999199e227e8eaf7bb3ef6b7e38ad0e8e710faad55df2e1243d99b53b9a789a1ffd3c39aef0d979dffc543f4691feae68cfa743e51bcf61390 WHIRLPOOL 1b957b8b850f79309c3577a2dcac52a620fa54f810f242a02c52bbcee1cc9c5818785baa7db8e2b82b850bcb56b528c4dd07cdfad2f991c0025293ca02c0dc99
DIST scala-2.11.11.tar.gz 6556573 SHA256 f97bccddbc53fc4da027fda3d2e6ad3d7776ec7ce56adad0ddb505266e1689e1 SHA512 c4e8ca544ea86c3e381a7b3d9120b13574cab92d73ff56aa10955afffe64c62ea11cd44abddd75984bc0ac58e8257b00357618cf9377e6690351db269657608c WHIRLPOOL 4cad89bd5e997363435b6a5f6baac6b30baff6f0c2db23f008541371e265b3074ede91384566c9ff5d742c839a15c9f8a6484c37d8161db1fc3fecc0ef78fbbb
DIST scala-2.11.2-annotations.jar 2242 SHA256 f2d057a006bba4253d069795284a7610f1c837af6a80c0057736099962e24bcc SHA512 3ceee0b1361b9e0911c1ff060ad108a1d93f7ea3e82ef946401cd5f895cb06016ac0ecdfd095f99b11cfb28c4cef7705c1b564c7af644c5f19b45c14a413c4dd WHIRLPOOL 51fa0efc5dd14cf8364e9639375511fc3e716bd520a193e6c17a2fe3f02eebd1529eb98fd3b382a6386baa5b779ebd0327e8f141aee172d11d9548d9921c58e1
DIST scala-2.11.2-ant-contrib.jar 224277 SHA256 be33a69818310b5c55e41dc11d48cd895f5f129da4b0d28c2f4c6c3e1cbcf3fc SHA512 5ec325a55bb213226c86faf8a99951839319e9579956ae58e2ccfe84f62d2742542998f98eed3f0dc8f8f94635d6dff1fe02e3c0f5289df1f09027ae2b9bee83 WHIRLPOOL aa713cc04b10c46adbbb8a5904e3fb34c6e32b67bb9a5f1a89768ceab8c31b977875c84434bc03c5b42105a4019f55cc10d806b0345c365a309e93d3f02e0a10
DIST scala-2.11.2-ant-dotnet-1.0.jar 57795 SHA256 40c18fcfb8c28e4ee82e53f72a3257db43bcba01e16ebd5a4550fc419edf30c1 SHA512 72afc387cf9dbeb99e627ca7f35f919f627bbf3f072eb46036120695fb70311490593c255c2a2e79b684adb8f213d8ab591d4ceda5d5f2e6b6906a6977b38867 WHIRLPOOL 18aa33fe259bd52e2f37b903be39d462e8622ff744f990fc92871eaa4fe10ff69cd25b2c968cc353b3c5138cd3fffd755715aef6bb16c57b0b72e7e5fd1975e1

@ -0,0 +1,24 @@
--- scala-2.11.8-orig/tools/get-scala-commit-date 2016-03-04 21:57:12.000000000 +1100
+++ scala-2.11.8/tools/get-scala-commit-date 2016-09-16 10:29:09.215240534 +1000
@@ -10,8 +10,8 @@
[[ $# -eq 0 ]] || cd "$1"
-lastcommitdate=$(git log --format="%ci" HEAD | head -n 1 | cut -d ' ' -f 1)
-lastcommithours=$(git log --format="%ci" HEAD | head -n 1 | cut -d ' ' -f 2)
+lastcommitdate="2016-03-04"
+lastcommithours="00:00:00"
# 20120324
echo "${lastcommitdate//-/}-${lastcommithours//:/}"
--- scala-2.11.8-orig/tools/get-scala-commit-sha 2016-03-04 21:57:12.000000000 +1100
+++ scala-2.11.8/tools/get-scala-commit-sha 2016-09-16 10:29:45.566119137 +1000
@@ -12,7 +12,7 @@
# printf %016s is not portable for 0-padding, has to be a digit.
# so we're stuck disassembling it.
-hash=$(git log -1 --format="%H" HEAD)
+hash="1706a37eb84ec252aea77bccebad3e48448534ad"
hash=${hash#g}
hash=${hash:0:10}
echo "$hash"

@ -0,0 +1,224 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI="5"
JAVA_PKG_IUSE="doc source"
JAVA_ANT_DISABLE_ANT_CORE_DEP="yes"
EANT_TEST_TARGET="test.suite"
inherit eutils check-reqs java-pkg-2 java-ant-2 versionator
MY_P="${PN}-sources-${PV}"
SV="$(get_version_component_range 1-2)"
# creating the binary:
# JAVA_PKG_FORCE_VM="$available-1.7" USE="doc source" ebuild scala-*.ebuild compile
# cd $WORDKIR
# tar -cjf scala-2.11.8-gentoo-binary.tar.bz2 scala-2.11.8/build/pack/bin \
# scala-2.11.8/build/pack/lib/ scala-2.11.8/build/pack/man \
# scala-2.11.8/src/actors/ scala-2.11.8/src/forkjoin/ \
# scala-2.11.8/src/library scala-2.11.8/src/library-aux/ \
# scala-2.11.8/src/reflect/ scala-2.11.8/docs/TODO \
# scala-2.11.8/doc/README scala-2.11.8/build/scaladoc/compiler
# In the pullJarFiles function in tools/binary-repo-lib.sh it executes find commands
# to search for .desired.sha1 files, which contain sha1 hashes that are appended
# to ${BURI} along with the subdirectory and filename to form the list of jar files
# listed in SRC_URI. The output of this find command can be hacked into the desired format:
# find . -name \*.desired.sha1 -exec sed -e 's@\([0-9a-f]*\).*@\1@' {} \; -print
# After editing it into the desired format: sort -t / -k 3 file
BURI="http://repo.typesafe.com/typesafe/scala-sha-bootstrap/org/scala-lang/bootstrap"
declare -a JURI=(
"${BURI}/943cd5c8802b2a3a64a010efb86ec19bac142e40/lib/ant/ant-contrib.jar -> ${P}-ant-contrib.jar"
"${BURI}/3fc1e35ca8c991fc3488548f7a276bd9053c179d/lib/ant/ant-dotnet-1.0.jar -> ${P}-ant-dotnet-1.0.jar"
"${BURI}/7b456ca6b93900f96e58cc8371f03d90a9c1c8d1/lib/ant/ant.jar -> ${P}-ant.jar"
"${BURI}/7e50e3e227d834695f1e0bf018a7326e06ee4c86/lib/ant/maven-ant-tasks-2.1.1.jar -> ${P}-maven-ant-tasks-2.1.1.jar"
"${BURI}/2c61d6e9a912b3253194d5d6d3e1db7e2545ac4b/lib/ant/vizant.jar -> ${P}-vizant.jar"
"${BURI}/ddd7d5398733c4fbbb8355c049e258d47af636cf/lib/forkjoin.jar -> ${P}-forkjoin.jar"
"${BURI}/0392ecdeb306263c471ce51fa368223388b82b61/test/benchmarks/lib/jsr166_and_extra.jar -> ${P}-jsr166_and_extra.jar"
"${BURI}/e737b123d31eede5594ceda07caafed1673ec472/test/files/codelib/code.jar -> ${P}-code.jar"
"${BURI}/02fe2ed93766323a13f22c7a7e2ecdcd84259b6c/test/files/lib/annotations.jar -> ${P}-annotations.jar"
"${BURI}/981392dbd1f727b152cd1c908c5fce60ad9d07f7/test/files/lib/enums.jar -> ${P}-enums.jar"
"${BURI}/b1ec8a095cec4902b3609d74d274c04365c59c04/test/files/lib/genericNest.jar -> ${P}-genericNest.jar"
"${BURI}/346d3dff4088839d6b4d163efa2892124039d216/test/files/lib/jsoup-1.3.1.jar -> ${P}-jsoup-1.3.1.jar"
"${BURI}/3794ec22d9b27f2b179bd34e9b46db771b934ec3/test/files/lib/macro210.jar -> ${P}-macro210.jar"
"${BURI}/be8454d5e7751b063ade201c225dcedefd252775/test/files/lib/methvsfield.jar -> ${P}-methvsfield.jar"
"${BURI}/cd33e0a0ea249eb42363a2f8ba531186345ff68c/test/files/lib/nest.jar -> ${P}-nest.jar"
"${BURI}/1b11ac773055c1e942c6b5eb4aabdf02292a7194/test/files/speclib/instrumented.jar -> ${P}-instrumented.jar"
"${BURI}/a1883f4304d5aa65e1f6ee6aad5900c62dd81079/tools/push.jar -> ${P}-push.jar"
)
DESCRIPTION="The Scala Programming Language"
HOMEPAGE="http://www.scala-lang.org/"
SRC_URI="
!binary?
( https://github.com/scala/scala/archive/v${PV}.tar.gz -> ${P}.tar.gz
${JURI[@]}
https://dev.gentoo.org/~patrick/${P}-maven-deps.tar.gz
)
binary? ( https://dev.gentoo.org/~patrick/${P}-gentoo-binary.tar.bz2 )
"
LICENSE="BSD"
SLOT="${SV}/${PV}"
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~x86-macos"
IUSE="binary emacs"
COMMON_DEP="dev-java/ant-core:0
dev-java/hawtjni-runtime:0"
DEPEND="${COMMON_DEP}
!binary? (
|| ( =virtual/jdk-1.7* =virtual/jdk-1.8* )
dev-java/ant-core:0
dev-java/ant-contrib:0
dev-java/ant-nodeps:0
media-gfx/graphviz
)
binary? (
|| ( =virtual/jdk-1.7* =virtual/jdk-1.8* )
)
app-arch/xz-utils:0"
RDEPEND="${COMMON_DEP}
>=virtual/jre-1.7
app-eselect/eselect-scala
!dev-lang/scala-bin:0"
PDEPEND="emacs? ( app-emacs/scala-mode:0 )"
S="${WORKDIR}/${P}"
CHECKREQS_MEMORY="1536M"
pkg_setup() {
java-pkg-2_pkg_setup
if ! use binary; then
debug-print "Checking for sufficient physical RAM"
ewarn "This package can fail to build with memory allocation errors in some cases."
ewarn "If you are unable to build from sources, please try USE=binary"
ewarn "for this package. See bug #181390 for more information."
check-reqs_pkg_setup
fi
}
src_unpack() {
# Unpack tar files only.
for f in ${A} ; do
[[ ${f} == *".tar."* ]] && unpack ${f}
done
}
java_prepare() {
java-pkg_getjars ant-core,hawtjni-runtime
if ! use binary; then
local a
for a in "${JURI[@]}"
do
echo "${a}"
local g="${a/* -> /}"
echo "${g}"
local j="${a/ -> */}"
echo "${j}"
cp -p "${DISTDIR}/${g}" "${S}/${j#${BURI}/*/}" || die
done
# gentoo patch (by gienah) to stop it calling git log in the build
epatch "${FILESDIR}/${P}-no-git.patch"
# Note: to bump scala, some things to try are:
# 1. update all the sha1s in JURI
# 2. remove the https://dev.gentoo.org/~gienah/snapshots/${P}-maven-deps.tar.gz from SRC_URI
# 3. try emerge scala. Check if it downloads more stuff in src_compile to ${WORKDIR}/.m2
# or /var/tmp/portage/.m2 or /root/.m2
# 4. tar up all the .m2 junk into ${P}-maven-deps.tar.gz and add it to SRC_URI.
sed -e "s@\(<mkdir dir=\"\)\${user.home}\(/.m2/repository\"/>\)@\1${WORKDIR}\2\n <artifact:localRepository id=\"localrepo\" path=\"${WORKDIR}/.m2/repository\" />@" \
-e "s@\${user.home}/.m2@${WORKDIR}/.m2@g" \
-e 's@\(<artifact:dependencies .*>\)@\1\n <localRepository refid="localrepo" />@g' \
-i "${S}/build.xml" \
|| die "Could not change location of .m2 maven download directory in ${S}/build.xml"
sed -e 's@-Xmx1024M@-Xmx1536M@' \
-e 's@-XX:MaxPermSize=128M@-XX:MaxPermSize=256M@' \
-i "${S}/test/partest" \
|| die "Could not change increase memory size in ${S}/test/partest"
fi
}
src_compile() {
if ! use binary; then
#unset ANT_OPTS as this is set in the build.xml
#sets -X type variables which might come back to bite me
unset ANT_OPTS
# reported in bugzilla that multiple launches use less resources
# https://bugs.gentoo.org/show_bug.cgi?id=282023
eant all.clean
eant -Djavac.args="-encoding UTF-8" -Duser.home="${WORKDIR}" \
fastdist-opt
if use doc; then
# The separate build for doc is to workaround this problem that occurs
# with one "fastdist docscomp" build (still fails with MaxPermSize=384M)
# java.lang.OutOfMemoryError: PermGen space
eant -Djavac.args="-encoding UTF-8" -Duser.home="${WORKDIR}" \
docscomp
eant -Djavac.args="-encoding UTF-8" -Duser.home="${WORKDIR}" \
docs
fi
else
einfo "Skipping compilation, USE=binary is set."
fi
}
src_test() {
java-pkg-2_src_test
}
src_install() {
pushd build/pack || die
local SCALADIR="/usr/share/${PN}-${SV}"
exeinto "${SCALADIR}/bin"
doexe $(find bin/ -type f ! -iname '*.bat')
dodir "${SCALADIR}/lib"
insinto "${SCALADIR}/lib"
pushd lib || die
for j in *.jar; do
local i="$(echo "${j}" | sed -e "s@[_-][0-9.-]*\.jar@.jar@")"
newins "${j}" "${i}"
java-pkg_regjar "${ED}${SCALADIR}/lib/${i}"
done
popd
dodir /usr/bin
for b in $(find bin/ -type f ! -iname '*.bat'); do
local _name=$(basename "${b}")
dosym "${SCALADIR}/bin/${_name}" "/usr/bin/${_name}-${SV}"
done
pushd man/man1 || die
for i in *.1; do
newman "${i}" "${i/./-${SV}.}"
done
popd
popd
#sources are .scala so no use for java-pkg_dosrc
pushd src || die
if use source; then
dodir "${SCALADIR}/src"
insinto "${SCALADIR}/src"
doins -r actors forkjoin library library-aux reflect
fi
popd
local docdir="build/scaladoc"
dodoc docs/TODO doc/README
if use doc; then
dohtml -r "${docdir}"/{compiler,library}
fi
}

@ -3,6 +3,11 @@ DIST js185-1.0.0.tar.gz 6164605 SHA256 5d12f7e1f5b4a99436685d97b9b7b75f094d33580
DIST mozjs-24.2.0.tar.bz2 15624530 SHA256 e62f3f331ddd90df1e238c09d61a505c516fe9fd8c5c95336611d191d18437d8 SHA512 49805e256f6fa797505c01b7596d5bb941ed7a2454862c52ed42ad48b5ae4540b777e77ed8da1b98c89f8622ed2c76052187983687008a4ff53594addb328df4 WHIRLPOOL ea74d19c79b1a0fe407e2803900c49c23e8b76444fb4e20995072c3c59427e8df1895df04f2f4de779a1c58cd1166dd97aeaf7564350832011efe89dbcf9583e
DIST mozjs-38.2.1.rc0.tar.bz2 25012381 SHA256 01994c758174bc173bcf4960f05ecb4da21014f09641a63b2952bbf9eeaa8b5c SHA512 60262c7619cc418569aec81775a671105acbc5bf372273828868f2fbbbc4ea33f78380f7455710816bfcdae828fb4115a08234d599cb30d0db859fcba17f019d WHIRLPOOL b1661859dc41a61317a48a8ee34cab53a369f37067c6565db2c890c596411e51981e0e64f81c5f5bd2bc2ff943493d972b00a5984b99de6e07ce16c07f784cb7
DIST mozjs-45.0.2.tar.bz2 97508152 SHA256 570530b1e551bf4a459d7cae875f33f99d5ef0c29ccc7742a1b6f588e5eadbee SHA512 84a3cf12e2603e00bcfe518a1a5000f53b21758c1c6b32a0410e63ab7db8d4452028195b0ba3e56144054b06e90f8e5195b4db94dba711f7c75d11da99c6c61d WHIRLPOOL dba2f7d4778f47f6476c3dd2e658a5b39ff9e571d4e71fe2508d58910a0989c24f892cbc7cc64aa7c94692cf947eb1a545fd0752bb5d8aace12c2dc96404c114
DIST mozjs-52.2.0_pre20170719.tar.bz2 30630133 SHA256 2bab92b432ecbe665616440594463abfb21ce3aff573f360f19ef0cce8ce4c77 SHA512 9657006e071bdf0b6006ab806949eb8371f4d749989d95a3a46da0baedfe669727ccd6430c2022a4ec5ce2bb9cd9a231aba85605de1319a5c678633f0001a78c WHIRLPOOL 14db035ad690b416b793df34a065ddf5096e43346f5a0462cf79605f1745fa18f7f578ae46b0eadeeef3fb7369e76f812c4cdfe227b1442d277fd80625998c52
DIST mozjs-52.4.0_pre20171003.tar.bz2 30588541 SHA256 12765b2d931fc171014b1e575afb776eebb81cd46cab55838c0f3943e3c51c6a SHA512 80e006ed7550b64dad7cf78335dd9f2d34f50ad486439887f0088eb3817242d24cf7c1d9325e2dcd4a01fd5c5f54d710873113b97fd914ccd961fa46a71653fa WHIRLPOOL 3468e0d2ad65c7b1132711af265054def0b74e2382d31b446b4225467fbf2318f771c1e961cf5eacb656f9db0158282d30383e06daf769a2270501d84c6ec05d
DIST mozjs17.0.0.tar.gz 6778934 SHA256 321e964fe9386785d3bf80870640f2fa1c683e32fe988eeb201b04471c172fba SHA512 39b68aeb9f712f146778d8b68ee795709a1372c8ab893a222af4eb34882427d6f5cf877e743d6cb2f1b4348c194d8f3774f00cb775b03515b34b49560b748be4 WHIRLPOOL 4df7b51577787194065162b09d2c3dda849c13fa901305f9925d4ca5d38bb7f8e2daa943099e003fb9d11f9264ae2d77ccf04e5eea11e3ddcb624b504b99d52f
DIST spidermonkey-52.0-patches-0.tar.xz 5172 SHA256 20165c0fbf5d441cea6217a7a6dca8b8623b5dbba2496eb769aaef3ca93647bf SHA512 88ad640fb0efa4972f1b7782bd0abee1751b73914ee51faade93b25c4d8eec64e7693898842a406c49fc2ab43733404efeccb138afb64d2193b9a5eb612578e3 WHIRLPOOL bd9f264d54bfd14ad9f339229a29a66f873d2ae66fbbc55edd4ae80135f08c6cd4a5e9c5ab65254749ecbafb7c8fdaa5c5936275e263e53ce47ab606d143114c
DIST spidermonkey-slot0-patches-01.tar.xz 10488 SHA256 7f0bf9921b9320046b9f06afaa1e0764aead72770ef0a3c29f4967aa20f9f7f9 SHA512 6c878ed0b50c052989a8b965fed845e9c672b691f4c4b1f98ee82e81a33880e1e6bf1dac8222d71322553282de602a88272dedebbcf50d27967fc172f0a8054a WHIRLPOOL 6a35cd027af0b7e730f8e563b9a2048bc8c7b8447889ae4b0cb719a12d48917c34b6e694c84e0e0c23a45b5f5d016580ceb97ac58527f705ffe2a59d56f15869
DIST spidermonkey-slot17-patches-01.tar.xz 2748 SHA256 366ff6db042face813c7e2145184e750d7f8ec44c0e8725c0b53d6be0cc33e2b SHA512 21a90f85d156de3cca9811317507162a458f908bb447924fcfbf49b7bb70496b611ce7df90b90775316b8ceafda56692be3bf856b168b83ed40b8a5c668eed3f WHIRLPOOL bee9e8b46200a2f8b41d5fa208a18471758c7bc1c08c9621a46e54846f49fecb37325a8ada9c438119e4772554078870a5e3d4d76d9d6e13e2d13c287ed0834a
DIST spidermonkey-slot24-patches-01.tar.xz 3444 SHA256 6a16001d665443c5e40c3237f6adc16589b26993e9d3c87577e6feabae42f7e0 SHA512 712250983f726eb2fe7ae243e9ca510b6e5b8fa0f221fe5120c2e2f75334f7e4b10b8ab172869d7333a120529dbc2a513c170533d5ad5af27a2643ce1384bbdb WHIRLPOOL ec895aabb0486b9eea41bbc005af552cadb587450af72de79a7d4a20f9258b589c63cf1f8b3afbba8244fe8b748937ebcbf572f1655a57e68c0d2b482cddd153
DIST spidermonkey-slot38-patches-01.tar.xz 7472 SHA256 ff4b66116b18b376630efa0ced0c0ce8c3a636c43b75e34e904c87f8d4cd4f6a SHA512 953acee985d192c6d0f18f14c70fdda33a7c8f784c6833ca8b75495044b40a8b3f29b281c40dbfcda0c8570c111a3dd1717c2ef0ffd651c1b50d1f2bff1f6d09 WHIRLPOOL b41f21c2b7434332c8bff351af7e030a94db7044995f88df74d7efcf2d196f5ddba6293230b42f528ca22ea2d7fdd58d0da935bb90b155f7c83fc5b3f9645ef5
DIST spidermonkey-slot45-patches-01.tar.xz 5092 SHA256 713e03f4c95908d93003fa1ca776823cccaf8fdc27db09ea59176edc318504dc SHA512 d52f038a7b4f7b410b5a1f94a55962adafc5906e7d85f605f3fe45ad49417c2b9d58d853a81b5d2395a2842c9780992d5a2c1a0e67aa77fb09f21aff9aeb0f7a WHIRLPOOL 9e4119af5a09f155a8f8781448364a9262ab2fb8d085a7235498f555ffa64eb054706ada3548ac40f76e686ed80e2777d39c565a631bf58b0c2e45f6195ce47b

@ -1,17 +0,0 @@
--- a/js/src/configure.in 2014-06-05 21:15:27.000000000 -0400
+++ b/js/src/configure.in 2014-06-13 11:01:51.130703283 -0400
@@ -1156,14 +1156,6 @@
AC_MSG_RESULT([no])
LDFLAGS=$_SAVE_LDFLAGS)
- AC_MSG_CHECKING([for --build-id option to ld])
- _SAVE_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS -Wl,--build-id"
- AC_TRY_LINK(,,AC_MSG_RESULT([yes])
- [NSPR_LDFLAGS="$NSPR_LDFLAGS -Wl,--build-id"],
- AC_MSG_RESULT([no])
- LDFLAGS=$_SAVE_LDFLAGS)
-
# Turn on gcc/clang warnings:
# https://gcc.gnu.org/onlinedocs/gcc-4.4.0/gcc/Warning-Options.html
#

@ -1,22 +0,0 @@
--- a/js/src/jscpucfg.h 2012-01-18 17:38:54.409461514 +0100
+++ b/js/src/jscpucfg.h 2012-01-18 17:38:59.522462164 +0100
@@ -77,6 +77,19 @@
#define IS_BIG_ENDIAN 1
#endif
+#elif defined(__FreeBSD__)
+#include <sys/endian.h>
+
+#if defined(BYTE_ORDER)
+#if BYTE_ORDER == LITTLE_ENDIAN
+#define IS_LITTLE_ENDIAN 1
+#undef IS_BIG_ENDIAN
+#elif BYTE_ORDER == BIG_ENDIAN
+#undef IS_LITTLE_ENDIAN
+#define IS_BIG_ENDIAN 1
+#endif
+#endif
+
#elif defined(JS_HAVE_ENDIAN_H)
#include <endian.h>

@ -1,21 +0,0 @@
--- a/js/src/configure.in
+++ b/js/src/configure.in
@@ -958,7 +958,7 @@
CPU_ARCH=s390x
;;
-hppa* | parisc)
+hppa* | parisc*)
CPU_ARCH=hppa
;;
@@ -2009,6 +2009,9 @@
AC_DEFINE(JS_CPU_MIPS)
AC_DEFINE(JS_NUNBOX32)
;;
+hppa*)
+ AC_DEFINE(JS_NUNBOX32)
+ ;;
esac
MOZ_ARG_DISABLE_BOOL(ion,

@ -1,46 +0,0 @@
# HG changeset patch
# User Lars T Hansen <lhansen@mozilla.com>
# Date 1457091735 -3600
# Node ID 69f237c2cf9131e97372debee01931dbacd064e5
# Parent 3aa4483740828617001060fe7386051020521e90
Bug 1253216 - clean up the atomic ops ifdef nest. r=jorendorff
diff --git a/js/src/jit/AtomicOperations.h b/js/src/jit/AtomicOperations.h
--- a/js/src/jit/AtomicOperations.h
+++ b/js/src/jit/AtomicOperations.h
@@ -318,21 +318,29 @@ AtomicOperations::isLockfree(int32_t siz
} // namespace js
#if defined(JS_CODEGEN_ARM)
# include "jit/arm/AtomicOperations-arm.h"
#elif defined(JS_CODEGEN_ARM64)
# include "jit/arm64/AtomicOperations-arm64.h"
#elif defined(JS_CODEGEN_MIPS32) || defined(JS_CODEGEN_MIPS64)
# include "jit/mips-shared/AtomicOperations-mips-shared.h"
-#elif defined(__ppc64__) || defined(__PPC64_) \
- || defined(__ppc64le__) || defined(__PPC64LE__) \
- || defined(__ppc__) || defined(__PPC__)
+#elif defined(__ppc__) || defined(__PPC__)
# include "jit/none/AtomicOperations-ppc.h"
#elif defined(JS_CODEGEN_NONE)
-# include "jit/none/AtomicOperations-none.h"
+ // You can disable the JIT with --disable-ion but you must still
+ // provide the atomic operations that will be used by the JS engine.
+ // When the JIT is disabled the operations are simply safe-for-races
+ // C++ realizations of atomics. These operations cannot be written
+ // in portable C++, hence the default here is to crash. See the
+ // top of the file for more guidance.
+# if defined(__ppc64__) || defined(__PPC64__) || defined(__ppc64le__) || defined(__PPC64LE__)
+# include "jit/none/AtomicOperations-ppc.h"
+# else
+# include "jit/none/AtomicOperations-none.h" // These MOZ_CRASH() always
+# endif
#elif defined(JS_CODEGEN_X86) || defined(JS_CODEGEN_X64)
# include "jit/x86-shared/AtomicOperations-x86-shared.h"
#else
# error "Atomic operations must be defined for this platform"
#endif
#endif // jit_AtomicOperations_h

@ -1,11 +0,0 @@
--- a/js/src/jit/AtomicOperations.h 2016-03-12 13:42:27.914524205 -0500
+++ b/js/src/jit/AtomicOperations.h 2016-03-12 13:42:15.644573630 -0500
@@ -311,6 +311,8 @@
// top of the file for more guidance.
# if defined(__ppc64__) || defined(__PPC64__) || defined(__ppc64le__) || defined(__PPC64LE__)
# include "jit/none/AtomicOperations-ppc.h"
+# elif defined(__i386__) || defined(__x86_64__)
+# include "jit/x86-shared/AtomicOperations-x86-shared.h"
# else
# include "jit/none/AtomicOperations-none.h" // These MOZ_CRASH() always
# endif

@ -1,248 +0,0 @@
--- a/js/src/jit/AtomicOperations.h 2016-11-08 21:27:30.000000000 +0100
+++ b/js/src/jit/AtomicOperations.h 2016-11-08 22:17:59.280251831 +0100
@@ -311,6 +311,8 @@
// top of the file for more guidance.
# if defined(__ppc64__) || defined(__PPC64__) || defined(__ppc64le__) || defined(__PPC64LE__)
# include "jit/none/AtomicOperations-ppc.h"
+# elif defined(__ia64__)
+# include "jit/none/AtomicOperations-ia64.h"
# elif defined(__i386__) || defined(__x86_64__)
# include "jit/x86-shared/AtomicOperations-x86-shared.h"
# else
--- /dev/null
+++ b/js/src/jit/none/AtomicOperations-ia64.h 2016-11-08 22:09:41.378809457 +0100
@@ -0,0 +1,234 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+ * vim: set ts=8 sts=4 et sw=4 tw=99:
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/* For documentation, see jit/AtomicOperations.h */
+
+#ifndef jit_ia64_AtomicOperations_ia64_h
+#define jit_ia64_AtomicOperations_ia64_h
+
+#include "mozilla/Assertions.h"
+#include "mozilla/Types.h"
+
+#if defined(__GNUC__)
+
+// The default implementation tactic for gcc is to use the newer
+// __atomic intrinsics added for use in C++11 <atomic>. Where that
+// isn't available, we use GCC's older __sync functions instead.
+//
+// ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS is kept as a backward
+// compatible option for older compilers: enable this to use GCC's old
+// __sync functions instead of the newer __atomic functions. This
+// will be required for GCC 4.6.x and earlier, should we need to use
+// those versions.
+
+//#define ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
+
+inline bool
+js::jit::AtomicOperations::isLockfree8()
+{
+# ifndef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
+ MOZ_ASSERT(__atomic_always_lock_free(sizeof(int8_t), 0));
+ MOZ_ASSERT(__atomic_always_lock_free(sizeof(int16_t), 0));
+ MOZ_ASSERT(__atomic_always_lock_free(sizeof(int32_t), 0));
+ MOZ_ASSERT(__atomic_always_lock_free(sizeof(int64_t), 0));
+ return true;
+# else
+ return false;
+# endif
+}
+
+inline void
+js::jit::AtomicOperations::fenceSeqCst()
+{
+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
+ __sync_synchronize();
+# else
+ __atomic_thread_fence(__ATOMIC_SEQ_CST);
+# endif
+}
+
+template<typename T>
+inline T
+js::jit::AtomicOperations::loadSeqCst(T* addr)
+{
+ MOZ_ASSERT(sizeof(T) < 8 || isLockfree8());
+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
+ __sync_synchronize();
+ T v = *addr;
+ __sync_synchronize();
+# else
+ T v;
+ __atomic_load(addr, &v, __ATOMIC_SEQ_CST);
+# endif
+ return v;
+}
+
+template<typename T>
+inline void
+js::jit::AtomicOperations::storeSeqCst(T* addr, T val)
+{
+ MOZ_ASSERT(sizeof(T) < 8 || isLockfree8());
+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
+ __sync_synchronize();
+ *addr = val;
+ __sync_synchronize();
+# else
+ __atomic_store(addr, &val, __ATOMIC_SEQ_CST);
+# endif
+}
+
+template<typename T>
+inline T
+js::jit::AtomicOperations::compareExchangeSeqCst(T* addr, T oldval, T newval)
+{
+ MOZ_ASSERT(sizeof(T) < 8 || isLockfree8());
+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
+ return __sync_val_compare_and_swap(addr, oldval, newval);
+# else
+ __atomic_compare_exchange(addr, &oldval, &newval, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST);
+ return oldval;
+# endif
+}
+
+template<typename T>
+inline T
+js::jit::AtomicOperations::fetchAddSeqCst(T* addr, T val)
+{
+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
+ return __sync_fetch_and_add(addr, val);
+# else
+ return __atomic_fetch_add(addr, val, __ATOMIC_SEQ_CST);
+# endif
+}
+
+template<typename T>
+inline T
+js::jit::AtomicOperations::fetchSubSeqCst(T* addr, T val)
+{
+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
+ return __sync_fetch_and_sub(addr, val);
+# else
+ return __atomic_fetch_sub(addr, val, __ATOMIC_SEQ_CST);
+# endif
+}
+
+template<typename T>
+inline T
+js::jit::AtomicOperations::fetchAndSeqCst(T* addr, T val)
+{
+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
+ return __sync_fetch_and_and(addr, val);
+# else
+ return __atomic_fetch_and(addr, val, __ATOMIC_SEQ_CST);
+# endif
+}
+
+template<typename T>
+inline T
+js::jit::AtomicOperations::fetchOrSeqCst(T* addr, T val)
+{
+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
+ return __sync_fetch_and_or(addr, val);
+# else
+ return __atomic_fetch_or(addr, val, __ATOMIC_SEQ_CST);
+# endif
+}
+
+template<typename T>
+inline T
+js::jit::AtomicOperations::fetchXorSeqCst(T* addr, T val)
+{
+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
+ return __sync_fetch_and_xor(addr, val);
+# else
+ return __atomic_fetch_xor(addr, val, __ATOMIC_SEQ_CST);
+# endif
+}
+
+template<typename T>
+inline T
+js::jit::AtomicOperations::exchangeSeqCst(T* addr, T val)
+{
+ MOZ_ASSERT(sizeof(T) < 8 || isLockfree8());
+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
+ T v;
+ __sync_synchronize();
+ do {
+ v = *addr;
+ } while (__sync_val_compare_and_swap(addr, v, val) != v);
+ return v;
+# else
+ T v;
+ __atomic_exchange(addr, &val, &v, __ATOMIC_SEQ_CST);
+ return v;
+# endif
+}
+
+template<typename T>
+inline T
+js::jit::AtomicOperations::loadSafeWhenRacy(T* addr)
+{
+ return *addr; // FIXME (1208663): not yet safe
+}
+
+template<typename T>
+inline void
+js::jit::AtomicOperations::storeSafeWhenRacy(T* addr, T val)
+{
+ *addr = val; // FIXME (1208663): not yet safe
+}
+
+inline void
+js::jit::AtomicOperations::memcpySafeWhenRacy(void* dest, const void* src, size_t nbytes)
+{
+ ::memcpy(dest, src, nbytes); // FIXME (1208663): not yet safe
+}
+
+inline void
+js::jit::AtomicOperations::memmoveSafeWhenRacy(void* dest, const void* src, size_t nbytes)
+{
+ ::memmove(dest, src, nbytes); // FIXME (1208663): not yet safe
+}
+
+template<size_t nbytes>
+inline void
+js::jit::RegionLock::acquire(void* addr)
+{
+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
+ while (!__sync_bool_compare_and_swap(&spinlock, 0, 1))
+ ;
+# else
+ uint32_t zero = 0;
+ uint32_t one = 1;
+ while (!__atomic_compare_exchange(&spinlock, &zero, &one, false, __ATOMIC_ACQUIRE, __ATOMIC_ACQUIRE)) {
+ zero = 0;
+ continue;
+ }
+# endif
+}
+
+template<size_t nbytes>
+inline void
+js::jit::RegionLock::release(void* addr)
+{
+ MOZ_ASSERT(AtomicOperations::loadSeqCst(&spinlock) == 1, "releasing unlocked region lock");
+# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
+ __sync_sub_and_fetch(&spinlock, 1);
+# else
+ uint32_t zero = 0;
+ __atomic_store(&spinlock, &zero, __ATOMIC_SEQ_CST);
+# endif
+}
+
+# undef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
+
+#elif defined(ENABLE_SHARED_ARRAY_BUFFER)
+
+# error "Either disable JS shared memory, use GCC, or add code here"
+
+#endif
+
+#endif // jit_ia64_AtomicOperations_ia64_h

@ -1,32 +0,0 @@
From: Jory A. Pratt <anarchy@gentoo.org>
Note: the first occurrence of :space: is [:space:] (with a single pair
of []), where it should be [[:space:]] (with two pairs of []).
This causes the sed command to fail (with the error message quoted in
my original report), driving to failure the whole configure step.
https://bugzilla.mozilla.org/show_bug.cgi?id=1329252
diff --git a/build/autoconf/icu.m4 b/build/autoconf/icu.m4
--- a/build/autoconf/icu.m4
+++ b/build/autoconf/icu.m4
@@ -68,17 +68,17 @@ if test -n "$USE_ICU"; then
icudir="$_topsrcdir/intl/icu/source"
if test ! -d "$icudir"; then
icudir="$_topsrcdir/../../intl/icu/source"
if test ! -d "$icudir"; then
AC_MSG_ERROR([Cannot find the ICU directory])
fi
fi
- version=`sed -n 's/^[[:space:]]*#[[:space:]]*define[[:space:]][[:space:]]*U_ICU_VERSION_MAJOR_NUM[[:space:]][[:space:]]*\([0-9][0-9]*\)[[:space:]]*$/\1/p' "$icudir/common/unicode/uvernum.h"`
+ version=`sed -n 's/^[[[:space:]]]*#[[:space:]]*define[[:space:]][[:space:]]*U_ICU_VERSION_MAJOR_NUM[[:space:]][[:space:]]*\([0-9][0-9]*\)[[:space:]]*$/\1/p' "$icudir/common/unicode/uvernum.h"`
if test x"$version" = x; then
AC_MSG_ERROR([cannot determine icu version number from uvernum.h header file $lineno])
fi
MOZ_ICU_VERSION="$version"
if test "$OS_TARGET" = WINNT; then
MOZ_SHARED_ICU=1
fi

@ -1,32 +0,0 @@
From: Jory A. Pratt <anarchy@gentoo.org>
Note: the first occurrence of :space: is [:space:] (with a single pair
of []), where it should be [[:space:]] (with two pairs of []).
This causes the sed command to fail (with the error message quoted in
my original report), driving to failure the whole configure step.
https://bugzilla.mozilla.org/show_bug.cgi?id=1329252
diff --git a/build/autoconf/icu.m4 b/build/autoconf/icu.m4
--- a/build/autoconf/icu.m4
+++ b/build/autoconf/icu.m4
@@ -68,17 +68,17 @@
icudir="$_topsrcdir/intl/icu/source"
if test ! -d "$icudir"; then
icudir="$_topsrcdir/../../intl/icu/source"
if test ! -d "$icudir"; then
AC_MSG_ERROR([Cannot find the ICU directory])
fi
fi
- version=`sed -n 's/^[[:space:]]*#[[:space:]]*define[[:space:]][[:space:]]*U_ICU_VERSION_MAJOR_NUM[[:space:]][[:space:]]*\([0-9][0-9]*\)[[:space:]]*$/\1/p' "$icudir/common/unicode/uvernum.h"`
+ version=`sed -n 's/^[[[:space:]]]*#[[:space:]]*define[[:space:]][[:space:]]*U_ICU_VERSION_MAJOR_NUM[[:space:]][[:space:]]*\([0-9][0-9]*\)[[:space:]]*$/\1/p' "$icudir/common/unicode/uvernum.h"`
if test x"$version" = x; then
AC_MSG_ERROR([cannot determine icu version number from uvernum.h header file $lineno])
fi
MOZ_ICU_VERSION="$version"
if test -z "${JS_STANDALONE}" -a -n "${JS_SHARED_LIBRARY}${MOZ_NATIVE_ICU}"; then
MOZ_SHARED_ICU=1
fi

@ -1,124 +0,0 @@
from https://github.com/GNOME/jhbuild/blob/master/patches/mozjs38-1269317.patch
--- a/js/src/jit/RegisterSets.h 2017-02-10 17:33:06.210702431 -0800
+++ b/js/src/jit/RegisterSets.h 2017-02-10 17:43:52.877514146 -0800
@@ -7,7 +7,6 @@
#ifndef jit_RegisterSets_h
#define jit_RegisterSets_h
-#include "mozilla/Alignment.h"
#include "mozilla/MathAlgorithms.h"
#include "jit/JitAllocPolicy.h"
@@ -26,8 +25,8 @@
Code code_;
public:
- AnyRegister()
- { }
+ AnyRegister() = default;
+
explicit AnyRegister(Register gpr) {
code_ = gpr.code();
}
@@ -156,7 +155,7 @@
}
#endif
- ValueOperand() {}
+ ValueOperand() = default;
};
// Registers to hold either either a typed or untyped value.
@@ -165,46 +164,25 @@
// Type of value being stored.
MIRType type_;
- // Space to hold either an AnyRegister or a ValueOperand.
union U {
- mozilla::AlignedStorage2<AnyRegister> typed;
- mozilla::AlignedStorage2<ValueOperand> value;
+ AnyRegister typed;
+ ValueOperand value;
} data;
- AnyRegister& dataTyped() {
- MOZ_ASSERT(hasTyped());
- return *data.typed.addr();
- }
- ValueOperand& dataValue() {
- MOZ_ASSERT(hasValue());
- return *data.value.addr();
- }
-
- AnyRegister dataTyped() const {
- MOZ_ASSERT(hasTyped());
- return *data.typed.addr();
- }
- const ValueOperand& dataValue() const {
- MOZ_ASSERT(hasValue());
- return *data.value.addr();
- }
-
public:
- TypedOrValueRegister()
- : type_(MIRType_None)
- {}
+ TypedOrValueRegister() = default;
TypedOrValueRegister(MIRType type, AnyRegister reg)
: type_(type)
{
- dataTyped() = reg;
+ data.typed = reg;
}
MOZ_IMPLICIT TypedOrValueRegister(ValueOperand value)
: type_(MIRType_Value)
{
- dataValue() = value;
+ data.value = value;
}
MIRType type() const {
@@ -220,11 +198,13 @@
}
AnyRegister typedReg() const {
- return dataTyped();
+ MOZ_ASSERT(hasTyped());
+ return data.typed;
}
ValueOperand valueReg() const {
- return dataValue();
+ MOZ_ASSERT(hasValue());
+ return data.value;
}
AnyRegister scratchReg() {
@@ -240,19 +220,18 @@
// Whether a constant value is being stored.
bool constant_;
- // Space to hold either a Value or a TypedOrValueRegister.
union U {
- mozilla::AlignedStorage2<Value> constant;
- mozilla::AlignedStorage2<TypedOrValueRegister> reg;
+ Value constant;
+ TypedOrValueRegister reg;
} data;
Value& dataValue() {
MOZ_ASSERT(constant());
- return *data.constant.addr();
+ return data.constant;
}
TypedOrValueRegister& dataReg() {
MOZ_ASSERT(!constant());
- return *data.reg.addr();
+ return data.reg;
}
public:

@ -1,20 +0,0 @@
Description: Copy headers on install instead of symlinking
Author: Rico Tzschichholz <ricotz@ubuntu.com>
Forwarded: no
Last-Update: 2014-10-29
---
Index: b/python/mozbuild/mozbuild/backend/recursivemake.py
===================================================================
--- a/python/mozbuild/mozbuild/backend/recursivemake.py
+++ b/python/mozbuild/mozbuild/backend/recursivemake.py
@@ -796,7 +796,7 @@
return
for source, dest, _ in self._walk_hierarchy(obj, exports):
- self._install_manifests['dist_include'].add_symlink(source, dest)
+ self._install_manifests['dist_include'].add_copy(source, dest)
if not os.path.exists(source):
raise Exception('File listed in EXPORTS does not exist: %s' % source)

@ -1,605 +0,0 @@
from https://github.com/GNOME/jhbuild/blob/master/patches/mozjs38-fix-tracelogger.patch
# === Fix the SM38 tracelogger ===
# This patch is a squashed version of several patches that were adapted
# to fix failing hunks.
#
# Applied in the following order, they are:
# * https://bugzilla.mozilla.org/show_bug.cgi?id=1223767
# Assertion failure: i < size_, at js/src/vm/TraceLoggingTypes.h:210
# Also fix stop-information to make reduce.py work correctly.
# * https://bugzilla.mozilla.org/show_bug.cgi?id=1227914
# Limit the memory tracelogger can take.
# This causes tracelogger to flush data to the disk regularly and prevents out of
# memory issues if a lot of data gets logged.
# * https://bugzilla.mozilla.org/show_bug.cgi?id=1155618
# Fix tracelogger destructor that touches possibly uninitialised hash table.
# * https://bugzilla.mozilla.org/show_bug.cgi?id=1223636
# Don't treat extraTextId as containing only extra ids.
# This fixes an assertion failure: id == nextTextId at js/src/vm/TraceLoggingGraph.cpp
# * https://bugzilla.mozilla.org/show_bug.cgi?id=1227028
# Fix when to keep the payload of a TraceLogger event.
# This fixes an assertion failure: textId < uint32_t(1 << 31) at js/src/vm/TraceLoggingGraph.h
# * https://bugzilla.mozilla.org/show_bug.cgi?id=1266649
# Handle failing to add to pointermap gracefully.
# * https://bugzilla.mozilla.org/show_bug.cgi?id=1280648
# Don't cache based on pointers to movable GC things.
# * https://bugzilla.mozilla.org/show_bug.cgi?id=1224123
# Fix the use of LastEntryId in tracelogger.h.
# * https://bugzilla.mozilla.org/show_bug.cgi?id=1231170
# Use size in debugger instead of the current id to track last logged item.
# * https://bugzilla.mozilla.org/show_bug.cgi?id=1221844
# Move TraceLogger_Invalidation to LOG_ITEM.
# Add some debug checks to logTimestamp.
# * https://bugzilla.mozilla.org/show_bug.cgi?id=1255766
# Also mark resizing of memory.
# * https://bugzilla.mozilla.org/show_bug.cgi?id=1259403
# Only increase capacity by multiples of 2.
# Always make sure there are 3 free slots for events.
# ===
diff --git a/js/src/jit-test/tests/tracelogger/bug1231170.js b/js/src/jit-test/tests/tracelogger/bug1231170.js
new file mode 100644
index 0000000..023e93e
--- /dev/null
+++ b/js/src/jit-test/tests/tracelogger/bug1231170.js
@@ -0,0 +1,3 @@
+var du = new Debugger();
+if (typeof du.drainTraceLogger === "function")
+ du.drainTraceLogger();
diff --git a/js/src/jit-test/tests/tracelogger/bug1266649.js b/js/src/jit-test/tests/tracelogger/bug1266649.js
new file mode 100644
index 0000000..81ae7ad
--- /dev/null
+++ b/js/src/jit-test/tests/tracelogger/bug1266649.js
@@ -0,0 +1,10 @@
+
+var du = new Debugger();
+if (typeof du.setupTraceLogger === "function" &&
+ typeof oomTest === 'function')
+{
+ du.setupTraceLogger({
+ Scripts: true
+ })
+ oomTest(() => function(){});
+}
diff --git a/js/src/jit/Ion.cpp b/js/src/jit/Ion.cpp
index 93e2fda..09049d6 100644
--- a/js/src/jit/Ion.cpp
+++ b/js/src/jit/Ion.cpp
@@ -1055,6 +1055,8 @@ IonScript::Destroy(FreeOp* fop, IonScript* script)
script->destroyCaches();
script->unlinkFromRuntime(fop);
+ // Frees the potential event we have set.
+ script->traceLoggerScriptEvent_ = TraceLoggerEvent();
fop->free_(script);
}
diff --git a/js/src/vm/Debugger.cpp b/js/src/vm/Debugger.cpp
index 26262fd..af7f313 100644
--- a/js/src/vm/Debugger.cpp
+++ b/js/src/vm/Debugger.cpp
@@ -369,10 +369,10 @@ Debugger::Debugger(JSContext* cx, NativeObject* dbg)
objects(cx),
environments(cx),
#ifdef NIGHTLY_BUILD
- traceLoggerLastDrainedId(0),
+ traceLoggerLastDrainedSize(0),
traceLoggerLastDrainedIteration(0),
#endif
- traceLoggerScriptedCallsLastDrainedId(0),
+ traceLoggerScriptedCallsLastDrainedSize(0),
traceLoggerScriptedCallsLastDrainedIteration(0)
{
assertSameCompartment(cx, dbg);
@@ -3907,9 +3907,9 @@ Debugger::drainTraceLogger(JSContext* cx, unsigned argc, Value* vp)
size_t num;
TraceLoggerThread* logger = TraceLoggerForMainThread(cx->runtime());
bool lostEvents = logger->lostEvents(dbg->traceLoggerLastDrainedIteration,
- dbg->traceLoggerLastDrainedId);
+ dbg->traceLoggerLastDrainedSize);
EventEntry* events = logger->getEventsStartingAt(&dbg->traceLoggerLastDrainedIteration,
- &dbg->traceLoggerLastDrainedId,
+ &dbg->traceLoggerLastDrainedSize,
&num);
RootedObject array(cx, NewDenseEmptyArray(cx));
@@ -4002,10 +4002,10 @@ Debugger::drainTraceLoggerScriptCalls(JSContext* cx, unsigned argc, Value* vp)
size_t num;
TraceLoggerThread* logger = TraceLoggerForMainThread(cx->runtime());
bool lostEvents = logger->lostEvents(dbg->traceLoggerScriptedCallsLastDrainedIteration,
- dbg->traceLoggerScriptedCallsLastDrainedId);
+ dbg->traceLoggerScriptedCallsLastDrainedSize);
EventEntry* events = logger->getEventsStartingAt(
&dbg->traceLoggerScriptedCallsLastDrainedIteration,
- &dbg->traceLoggerScriptedCallsLastDrainedId,
+ &dbg->traceLoggerScriptedCallsLastDrainedSize,
&num);
RootedObject array(cx, NewDenseEmptyArray(cx));
diff --git a/js/src/vm/Debugger.h b/js/src/vm/Debugger.h
index 8cac36a..c92d685 100644
--- a/js/src/vm/Debugger.h
+++ b/js/src/vm/Debugger.h
@@ -314,10 +314,10 @@ class Debugger : private mozilla::LinkedListElement<Debugger>
* lost events.
*/
#ifdef NIGHTLY_BUILD
- uint32_t traceLoggerLastDrainedId;
+ uint32_t traceLoggerLastDrainedSize;
uint32_t traceLoggerLastDrainedIteration;
#endif
- uint32_t traceLoggerScriptedCallsLastDrainedId;
+ uint32_t traceLoggerScriptedCallsLastDrainedSize;
uint32_t traceLoggerScriptedCallsLastDrainedIteration;
class FrameRange;
diff --git a/js/src/vm/TraceLogging.cpp b/js/src/vm/TraceLogging.cpp
index 6715b36..9766a6f 100644
--- a/js/src/vm/TraceLogging.cpp
+++ b/js/src/vm/TraceLogging.cpp
@@ -131,7 +131,7 @@ TraceLoggerThread::init()
{
if (!pointerMap.init())
return false;
- if (!extraTextId.init())
+ if (!textIdPayloads.init())
return false;
if (!events.init())
return false;
@@ -185,10 +185,10 @@ TraceLoggerThread::~TraceLoggerThread()
graph = nullptr;
}
- for (TextIdHashMap::Range r = extraTextId.all(); !r.empty(); r.popFront())
- js_delete(r.front().value());
- extraTextId.finish();
- pointerMap.finish();
+ if (textIdPayloads.initialized()) {
+ for (TextIdHashMap::Range r = textIdPayloads.all(); !r.empty(); r.popFront())
+ js_delete(r.front().value());
+ }
}
bool
@@ -287,7 +287,7 @@ TraceLoggerThread::eventText(uint32_t id)
if (id < TraceLogger_Last)
return TLTextIdString(static_cast<TraceLoggerTextId>(id));
- TextIdHashMap::Ptr p = extraTextId.lookup(id);
+ TextIdHashMap::Ptr p = textIdPayloads.lookup(id);
MOZ_ASSERT(p);
return p->value()->string();
@@ -341,13 +341,15 @@ TraceLoggerThread::extractScriptDetails(uint32_t textId, const char** filename,
TraceLoggerEventPayload*
TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId textId)
{
- TextIdHashMap::AddPtr p = extraTextId.lookupForAdd(textId);
- if (p)
+ TextIdHashMap::AddPtr p = textIdPayloads.lookupForAdd(textId);
+ if (p) {
+ MOZ_ASSERT(p->value()->textId() == textId); // Sanity check.
return p->value();
+ }
TraceLoggerEventPayload* payload = js_new<TraceLoggerEventPayload>(textId, (char*)nullptr);
- if (!extraTextId.add(p, textId, payload))
+ if (!textIdPayloads.add(p, textId, payload))
return nullptr;
return payload;
@@ -357,8 +359,10 @@ TraceLoggerEventPayload*
TraceLoggerThread::getOrCreateEventPayload(const char* text)
{
PointerHashMap::AddPtr p = pointerMap.lookupForAdd((const void*)text);
- if (p)
+ if (p) {
+ MOZ_ASSERT(p->value()->textId() < nextTextId); // Sanity check.
return p->value();
+ }
size_t len = strlen(text);
char* str = js_pod_malloc<char>(len + 1);
@@ -369,7 +373,7 @@ TraceLoggerThread::getOrCreateEventPayload(const char* text)
MOZ_ASSERT(ret == len);
MOZ_ASSERT(strlen(str) == len);
- uint32_t textId = extraTextId.count() + TraceLogger_Last;
+ uint32_t textId = nextTextId;
TraceLoggerEventPayload* payload = js_new<TraceLoggerEventPayload>(textId, str);
if (!payload) {
@@ -377,17 +381,19 @@ TraceLoggerThread::getOrCreateEventPayload(const char* text)
return nullptr;
}
- if (!extraTextId.putNew(textId, payload)) {
+ if (!textIdPayloads.putNew(textId, payload)) {
js_delete(payload);
return nullptr;
}
- if (!pointerMap.add(p, text, payload))
- return nullptr;
-
if (graph.get())
graph->addTextId(textId, str);
+ nextTextId++;
+
+ if (!pointerMap.add(p, text, payload))
+ return nullptr;
+
return payload;
}
@@ -407,9 +413,14 @@ TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type, const char* f
if (!traceLoggerState->isTextIdEnabled(type))
return getOrCreateEventPayload(type);
- PointerHashMap::AddPtr p = pointerMap.lookupForAdd(ptr);
- if (p)
- return p->value();
+ PointerHashMap::AddPtr p;
+ if (ptr) {
+ p = pointerMap.lookupForAdd(ptr);
+ if (p) {
+ MOZ_ASSERT(p->value()->textId() < nextTextId); // Sanity check.
+ return p->value();
+ }
+ }
// Compute the length of the string to create.
size_t lenFilename = strlen(filename);
@@ -428,24 +439,28 @@ TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type, const char* f
MOZ_ASSERT(ret == len);
MOZ_ASSERT(strlen(str) == len);
- uint32_t textId = extraTextId.count() + TraceLogger_Last;
+ uint32_t textId = nextTextId;
TraceLoggerEventPayload* payload = js_new<TraceLoggerEventPayload>(textId, str);
if (!payload) {
js_free(str);
return nullptr;
}
- if (!extraTextId.putNew(textId, payload)) {
+ if (!textIdPayloads.putNew(textId, payload)) {
js_delete(payload);
return nullptr;
}
- if (!pointerMap.add(p, ptr, payload))
- return nullptr;
-
if (graph.get())
graph->addTextId(textId, str);
+ nextTextId++;
+
+ if (ptr) {
+ if (!pointerMap.add(p, ptr, payload))
+ return nullptr;
+ }
+
return payload;
}
@@ -453,14 +468,14 @@ TraceLoggerEventPayload*
TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type, JSScript* script)
{
return getOrCreateEventPayload(type, script->filename(), script->lineno(), script->column(),
- script);
+ nullptr);
}
TraceLoggerEventPayload*
TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type,
const JS::ReadOnlyCompileOptions& script)
{
- return getOrCreateEventPayload(type, script.filename(), script.lineno, script.column, &script);
+ return getOrCreateEventPayload(type, script.filename(), script.lineno, script.column, nullptr);
}
void
@@ -485,7 +500,7 @@ TraceLoggerThread::startEvent(uint32_t id)
if (!traceLoggerState->isTextIdEnabled(id))
return;
- logTimestamp(id);
+ log(id);
}
void
@@ -510,7 +525,7 @@ TraceLoggerThread::stopEvent(uint32_t id)
if (!traceLoggerState->isTextIdEnabled(id))
return;
- logTimestamp(TraceLogger_Stop);
+ log(TraceLogger_Stop);
}
void
@@ -522,23 +537,57 @@ TraceLoggerThread::logTimestamp(TraceLoggerTextId id)
void
TraceLoggerThread::logTimestamp(uint32_t id)
{
+ MOZ_ASSERT(id > TraceLogger_LastTreeItem && id < TraceLogger_Last);
+ log(id);
+}
+
+void
+TraceLoggerThread::log(uint32_t id)
+{
if (enabled == 0)
return;
MOZ_ASSERT(traceLoggerState);
- if (!events.ensureSpaceBeforeAdd()) {
+
+ // We request for 3 items to add, since if we don't have enough room
+ // we record the time it took to make more place. To log this information
+ // we need 2 extra free entries.
+ if (!events.hasSpaceForAdd(3)) {
uint64_t start = rdtsc() - traceLoggerState->startupTime;
- if (graph.get())
- graph->log(events);
+ if (!events.ensureSpaceBeforeAdd(3)) {
+ if (graph.get())
+ graph->log(events);
+
+ iteration_++;
+ events.clear();
+
+ // Remove the item in the pointerMap for which the payloads
+ // have no uses anymore
+ for (PointerHashMap::Enum e(pointerMap); !e.empty(); e.popFront()) {
+ if (e.front().value()->uses() != 0)
+ continue;
+
+ TextIdHashMap::Ptr p = textIdPayloads.lookup(e.front().value()->textId());
+ MOZ_ASSERT(p);
+ textIdPayloads.remove(p);
+
+ e.removeFront();
+ }
- iteration_++;
- events.clear();
+ // Free all payloads that have no uses anymore.
+ for (TextIdHashMap::Enum e(textIdPayloads); !e.empty(); e.popFront()) {
+ if (e.front().value()->uses() == 0) {
+ js_delete(e.front().value());
+ e.removeFront();
+ }
+ }
+ }
// Log the time it took to flush the events as being from the
// Tracelogger.
if (graph.get()) {
- MOZ_ASSERT(events.capacity() > 2);
+ MOZ_ASSERT(events.hasSpaceForAdd(2));
EventEntry& entryStart = events.pushUninitialized();
entryStart.time = start;
entryStart.textId = TraceLogger_Internal;
@@ -548,13 +597,6 @@ TraceLoggerThread::logTimestamp(uint32_t id)
entryStop.textId = TraceLogger_Stop;
}
- // Free all TextEvents that have no uses anymore.
- for (TextIdHashMap::Enum e(extraTextId); !e.empty(); e.popFront()) {
- if (e.front().value()->uses() == 0) {
- js_delete(e.front().value());
- e.removeFront();
- }
- }
}
uint64_t time = rdtsc() - traceLoggerState->startupTime;
@@ -956,3 +998,16 @@ TraceLoggerEvent::~TraceLoggerEvent()
if (payload_)
payload_->release();
}
+
+TraceLoggerEvent&
+TraceLoggerEvent::operator=(const TraceLoggerEvent& other)
+{
+ if (hasPayload())
+ payload()->release();
+ if (other.hasPayload())
+ other.payload()->use();
+
+ payload_ = other.payload_;
+
+ return *this;
+}
diff --git a/js/src/vm/TraceLogging.h b/js/src/vm/TraceLogging.h
index a124dcb..91a1eb0 100644
--- a/js/src/vm/TraceLogging.h
+++ b/js/src/vm/TraceLogging.h
@@ -110,6 +110,9 @@ class TraceLoggerEvent {
bool hasPayload() const {
return !!payload_;
}
+
+ TraceLoggerEvent& operator=(const TraceLoggerEvent& other);
+ TraceLoggerEvent(const TraceLoggerEvent& event) = delete;
};
/**
@@ -130,6 +133,10 @@ class TraceLoggerEventPayload {
uses_(0)
{ }
+ ~TraceLoggerEventPayload() {
+ MOZ_ASSERT(uses_ == 0);
+ }
+
uint32_t textId() {
return textId_;
}
@@ -166,7 +173,8 @@ class TraceLoggerThread
mozilla::UniquePtr<TraceLoggerGraph> graph;
PointerHashMap pointerMap;
- TextIdHashMap extraTextId;
+ TextIdHashMap textIdPayloads;
+ uint32_t nextTextId;
ContinuousSpace<EventEntry> events;
@@ -181,6 +189,7 @@ class TraceLoggerThread
: enabled(0),
failed(false),
graph(),
+ nextTextId(TraceLogger_Last),
iteration_(0),
top(nullptr)
{ }
@@ -195,22 +204,22 @@ class TraceLoggerThread
bool enable(JSContext* cx);
bool disable();
- // Given the previous iteration and lastEntryId, return an array of events
+ // Given the previous iteration and size, return an array of events
// (there could be lost events). At the same time update the iteration and
- // lastEntry and gives back how many events there are.
- EventEntry* getEventsStartingAt(uint32_t* lastIteration, uint32_t* lastEntryId, size_t* num) {
+ // size and gives back how many events there are.
+ EventEntry* getEventsStartingAt(uint32_t* lastIteration, uint32_t* lastSize, size_t* num) {
EventEntry* start;
if (iteration_ == *lastIteration) {
- MOZ_ASSERT(events.lastEntryId() >= *lastEntryId);
- *num = events.lastEntryId() - *lastEntryId;
- start = events.data() + *lastEntryId + 1;
+ MOZ_ASSERT(*lastSize <= events.size());
+ *num = events.size() - *lastSize;
+ start = events.data() + *lastSize;
} else {
- *num = events.lastEntryId() + 1;
+ *num = events.size();
start = events.data();
}
*lastIteration = iteration_;
- *lastEntryId = events.lastEntryId();
+ *lastSize = events.size();
return start;
}
@@ -220,16 +229,16 @@ class TraceLoggerThread
const char** lineno, size_t* lineno_len, const char** colno,
size_t* colno_len);
- bool lostEvents(uint32_t lastIteration, uint32_t lastEntryId) {
+ bool lostEvents(uint32_t lastIteration, uint32_t lastSize) {
// If still logging in the same iteration, there are no lost events.
if (lastIteration == iteration_) {
- MOZ_ASSERT(lastEntryId <= events.lastEntryId());
+ MOZ_ASSERT(lastSize <= events.size());
return false;
}
- // When proceeded to the next iteration and lastEntryId points to
- // the maximum capacity there are no logs that are lost.
- if (lastIteration + 1 == iteration_ && lastEntryId == events.capacity())
+ // If we are in a consecutive iteration we are only sure we didn't lose any events,
+ // when the lastSize equals the maximum size 'events' can get.
+ if (lastIteration == iteration_ - 1 && lastSize == events.maxSize())
return false;
return true;
@@ -268,6 +277,7 @@ class TraceLoggerThread
void stopEvent(uint32_t id);
private:
void stopEvent();
+ void log(uint32_t id);
public:
static unsigned offsetOfEnabled() {
diff --git a/js/src/vm/TraceLoggingGraph.cpp b/js/src/vm/TraceLoggingGraph.cpp
index d1b7f2e..a4eb273 100644
--- a/js/src/vm/TraceLoggingGraph.cpp
+++ b/js/src/vm/TraceLoggingGraph.cpp
@@ -276,7 +276,7 @@ TraceLoggerGraph::flush()
if (bytesWritten < tree.size())
return false;
- treeOffset += tree.lastEntryId();
+ treeOffset += tree.size();
tree.clear();
}
@@ -359,7 +359,7 @@ TraceLoggerGraph::startEventInternal(uint32_t id, uint64_t timestamp)
if (parent.lastChildId() == 0) {
MOZ_ASSERT(!entry.hasChildren());
- MOZ_ASSERT(parent.treeId() == tree.lastEntryId() + treeOffset);
+ MOZ_ASSERT(parent.treeId() == treeOffset + tree.size() - 1);
if (!updateHasChildren(parent.treeId()))
return false;
diff --git a/js/src/vm/TraceLoggingTypes.h b/js/src/vm/TraceLoggingTypes.h
index f1c9d0c..10b76d6 100644
--- a/js/src/vm/TraceLoggingTypes.h
+++ b/js/src/vm/TraceLoggingTypes.h
@@ -21,7 +21,6 @@
_(Internal) \
_(Interpreter) \
_(InlinedScripts) \
- _(Invalidation) \
_(IonCompilation) \
_(IonCompilationPaused) \
_(IonLinking) \
@@ -60,6 +59,7 @@
#define TRACELOGGER_LOG_ITEMS(_) \
_(Bailout) \
+ _(Invalidation) \
_(Disable) \
_(Enable) \
_(Stop)
@@ -130,6 +130,9 @@ class ContinuousSpace {
uint32_t size_;
uint32_t capacity_;
+ // The maximum amount of ram memory a continuous space structure can take (in bytes).
+ static const uint32_t LIMIT = 200 * 1024 * 1024;
+
public:
ContinuousSpace ()
: data_(nullptr)
@@ -151,6 +154,10 @@ class ContinuousSpace {
data_ = nullptr;
}
+ static uint32_t maxSize() {
+ return LIMIT / sizeof(T);
+ }
+
T* data() {
return data_;
}
@@ -187,11 +194,14 @@ class ContinuousSpace {
if (hasSpaceForAdd(count))
return true;
+ // Limit the size of a continuous buffer.
+ if (size_ + count > maxSize())
+ return false;
+
uint32_t nCapacity = capacity_ * 2;
- if (size_ + count > nCapacity)
- nCapacity = size_ + count;
- T* entries = (T*) js_realloc(data_, nCapacity * sizeof(T));
+ nCapacity = (nCapacity < maxSize()) ? nCapacity : maxSize();
+ T* entries = (T*) js_realloc(data_, nCapacity * sizeof(T));
if (!entries)
return false;

@ -1,22 +0,0 @@
Add major version to pkg-config filename.
Author: Rico Tzschichholz <ricotz@ubuntu.com>
Forwarded: no
Last-Update: 2015-05-04
Index: b/js/src/Makefile.in
===================================================================
--- a/js/src/Makefile.in
+++ b/js/src/Makefile.in
@@ -214,10 +214,10 @@
$(JS_CONFIG_NAME): js-config
cp $^ $@
-$(LIBRARY_NAME).pc: js.pc
+$(JS_LIBRARY_NAME).pc: js.pc
cp $^ $@
-install:: $(LIBRARY_NAME).pc
+install:: $(JS_LIBRARY_NAME).pc
$(SYSINSTALL) $^ $(DESTDIR)$(libdir)/pkgconfig
install:: js-config.h

@ -1,29 +0,0 @@
# HG changeset patch
# User Nicolas B. Pierron <nicolas.b.pierron@mozilla.com>
Bug 1266366 - Add branch64 functions to the none-backend MacroAssembler. r=
diff --git a/js/src/jit/none/MacroAssembler-none.h b/js/src/jit/none/MacroAssembler-none.h
index 512ae81..4441d8d 100644
--- a/js/src/jit/none/MacroAssembler-none.h
+++ b/js/src/jit/none/MacroAssembler-none.h
@@ -254,16 +254,18 @@ class MacroAssemblerNone : public Assembler
template <typename T, typename S> void branchSub32(Condition, T, S, Label*) { MOZ_CRASH(); }
template <typename T, typename S> void branchPtr(Condition, T, S, Label*) { MOZ_CRASH(); }
template <typename T, typename S> void branchTestPtr(Condition, T, S, Label*) { MOZ_CRASH(); }
template <typename T, typename S> void branchDouble(DoubleCondition, T, S, Label*) { MOZ_CRASH(); }
template <typename T, typename S> void branchFloat(DoubleCondition, T, S, Label*) { MOZ_CRASH(); }
template <typename T, typename S> void branchPrivatePtr(Condition, T, S, Label*) { MOZ_CRASH(); }
template <typename T, typename S> void decBranchPtr(Condition, T, S, Label*) { MOZ_CRASH(); }
template <typename T, typename S> void branchTest64(Condition, T, T, S, Label*) { MOZ_CRASH(); }
+ template <typename T, typename S> void branch64(Condition, T, S, Label*) { MOZ_CRASH(); }
+ template <typename T, typename S> void branch64(Condition, T, T, S, Label*) { MOZ_CRASH(); }
template <typename T, typename S> void mov(T, S) { MOZ_CRASH(); }
template <typename T, typename S> void movq(T, S) { MOZ_CRASH(); }
template <typename T, typename S> void movePtr(T, S) { MOZ_CRASH(); }
template <typename T, typename S> void move32(T, S) { MOZ_CRASH(); }
template <typename T, typename S> void moveFloat32(T, S) { MOZ_CRASH(); }
template <typename T, typename S> void moveDouble(T, S) { MOZ_CRASH(); }
template <typename T, typename S> void move64(T, S) { MOZ_CRASH(); }
template <typename T> CodeOffset movWithPatch(T, Register) { MOZ_CRASH(); }

@ -1,138 +0,0 @@
--- js/src/Makefile.ref
+++ js/src/Makefile.ref
@@ -127,7 +127,7 @@ endif
ifdef JS_READLINE
# For those platforms with the readline library installed.
DEFINES += -DEDITLINE
-PROG_LIBS += -lreadline -ltermcap
+PROG_LIBS += -lreadline
else
ifdef JS_EDITLINE
# Use the editline library, built locally.
@@ -370,3 +370,16 @@ TARFILES = files `cat files`
SUFFIXES: .i
%.i: %.c
$(CC) -C -E $(CFLAGS) $< > $*.i
+
+DESTDIR :=
+PREFIX := /usr
+BINDIR := $(PREFIX)/bin
+MY_LIBDIR := $(PREFIX)/$(LIBDIR)
+INCLUDEDIR := $(PREFIX)/include/js
+INSTALL := install -g 0 -o root
+install:
+ $(INSTALL) -m 755 -d $(DESTDIR)$(INCLUDEDIR) $(DESTDIR)$(MY_LIBDIR) $(DESTDIR)$(BINDIR)
+ $(INSTALL) -m 755 $(SHARED_LIBRARY) $(DESTDIR)$(MY_LIBDIR)
+ $(INSTALL) -m 644 $(LIBRARY) $(DESTDIR)$(MY_LIBDIR)
+ $(INSTALL) -m 755 $(OBJDIR)/js $(OBJDIR)/jscpucfg $(DESTDIR)$(BINDIR)
+ $(INSTALL) -m 644 $(HFILES) $(DESTDIR)$(INCLUDEDIR)
--- js/src/config/Linux_All.mk
+++ js/src/config/Linux_All.mk
@@ -41,37 +41,15 @@
# Config for all versions of Linux
#
-CC = gcc
-CCC = g++
CFLAGS += -Wall -Wno-format
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DHAVE_LOCALTIME_R
RANLIB = echo
-MKSHLIB = $(LD) -shared $(XMKSHLIBOPTS)
+MKSHLIB = $(LD) -shared $(XMKSHLIBOPTS) -soname $(notdir $@)
#.c.o:
# $(CC) -c -MD $*.d $(CFLAGS) $<
-CPU_ARCH = $(shell uname -m)
-# don't filter in x86-64 architecture
-ifneq (x86_64,$(CPU_ARCH))
-ifeq (86,$(findstring 86,$(CPU_ARCH)))
-CPU_ARCH = x86
-OS_CFLAGS+= -DX86_LINUX
-
-ifeq (gcc, $(CC))
-# if using gcc on x86, check version for opt bug
-# (http://bugzilla.mozilla.org/show_bug.cgi?id=24892)
-GCC_VERSION := $(shell gcc -v 2>&1 | grep version | awk '{ print $$3 }')
-GCC_LIST:=$(sort 2.91.66 $(GCC_VERSION) )
-
-ifeq (2.91.66, $(firstword $(GCC_LIST)))
-CFLAGS+= -DGCC_OPT_BUG
-endif
-endif
-endif
-endif
-
GFX_ARCH = x
OS_LIBS = -lm -lc
@@ -88,16 +66,6 @@
endif
# Use the editline library to provide line-editing support.
-JS_EDITLINE = 1
+JS_READLINE = 1
-ifeq ($(CPU_ARCH),x86_64)
-# Use VA_COPY() standard macro on x86-64
-# FIXME: better use it everywhere
OS_CFLAGS += -DHAVE_VA_COPY -DVA_COPY=va_copy
-endif
-
-ifeq ($(CPU_ARCH),x86_64)
-# We need PIC code for shared libraries
-# FIXME: better patch rules.mk & fdlibm/Makefile*
-OS_CFLAGS += -DPIC -fPIC
-endif
--- js/src/rules.mk
+++ js/src/rules.mk
@@ -82,6 +82,10 @@ $(OBJDIR)/%.o: %.c
@$(MAKE_OBJDIR)
$(CC) -o $@ -c $(CFLAGS) $*.c
+$(OBJDIR)/%.lo: %.c
+ @$(MAKE_OBJDIR)
+ $(CC) -o $@ -c $(CFLAGS) $*.c -fPIC
+
$(OBJDIR)/%.o: %.s
@$(MAKE_OBJDIR)
$(AS) -o $@ $(ASFLAGS) $*.s
@@ -111,11 +115,12 @@ $(SHARED_LIBRARY): $(LIB_OBJS)
/implib:"$(OBJDIR)/$(@F:.dll=.lib)" $^
else
$(LIBRARY): $(LIB_OBJS)
- $(AR) rv $@ $?
+ $(AR) cr $@ $?
$(RANLIB) $@
-$(SHARED_LIBRARY): $(LIB_OBJS)
- $(MKSHLIB) -o $@ $(LIB_OBJS) $(LDFLAGS) $(OTHER_LIBS)
+SHARED_LIB_OBJS := $(LIB_OBJS:.o=.lo)
+$(SHARED_LIBRARY): $(SHARED_LIB_OBJS)
+ $(MKSHLIB) -o $@ $(SHARED_LIB_OBJS) $(LDFLAGS) $(OTHER_LIBS)
endif
endif
--- js/src/fdlibm/Makefile.ref
+++ js/src/fdlibm/Makefile.ref
@@ -151,7 +151,7 @@
$(OBJDIR)/%.o: %.c
@$(MAKE_OBJDIR)
- $(CC) -o $@ -c $(CFLAGS) $*.c
+ $(CC) -o $@ -c $(CFLAGS) $*.c -fPIC
$(OBJDIR)/%.o: %.s
@$(MAKE_OBJDIR)
--- js/src/config.mk
+++ js/src/config.mk
@@ -112,6 +112,8 @@
CP = cp
endif
+BUILD_OPT := 1
+
ifdef BUILD_OPT
OPTIMIZER = -O
DEFINES += -UDEBUG -DNDEBUG -UDEBUG_$(shell whoami)

@ -1,13 +0,0 @@
Index: src/Makefile.ref
===================================================================
--- src.orig/Makefile.ref
+++ src/Makefile.ref
@@ -185,6 +185,8 @@ JS_HFILES = \
jsstr.h \
jsxdrapi.h \
jsxml.h \
+ jsutil.h \
+ jsprf.h \
$(NULL)
API_HFILES = \

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

Loading…
Cancel
Save