Sync with portage [Wed Dec 23 08:30:37 MSK 2020].

akrasnyh 1833
Calculate Linux 3 years ago
parent 98470bf4c1
commit bb42a6bdeb

Binary file not shown.

Binary file not shown.

@ -1 +1,2 @@
DIST ansible-cmdb-1.28.tar.gz 177437 BLAKE2B d3faa6cccdaa0825318bc9df09ad28b15d1a70ac25281f283e65ed760698c06db582d6954f19efe6cdde8e7ab103a915e663659cc64d72851ed830c817a700b7 SHA512 d8f87b7e2c664aec20585c34a83271ea4ec397c70ff1114e2b3669ba17903ed8f57ddf774b74d3d267a423bb71bf6d9fd6e59aa497f4b17449104db6ac71b38a
DIST ansible-cmdb-1.30.tar.gz 179165 BLAKE2B 377b182ffd0f7cf6630011f7df82fe1155c0f00a482e91e0d8206eee5aab167eb96dc936b2fbd02c6c80e725b9767f25a02422d538ee7ecf95ad1e9be51fe81a SHA512 e4561976588d6268c6849a4b1656c57d9a0f2db9256b2d2821f9c1a8c23fdb92b843b06bb94b44db565966c209b62da4bb11dfa41319a3b01ea4c7a53dde930f

@ -0,0 +1,24 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{7,8} )
inherit distutils-r1
DESCRIPTION="Ansible Configuration Management Database"
HOMEPAGE="https://github.com/fboender/ansible-cmdb"
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~x86"
DEPEND="
dev-python/setuptools[${PYTHON_USEDEP}]"
RDEPEND="
dev-python/mako[${PYTHON_USEDEP}]
dev-python/jsonxs[${PYTHON_USEDEP}]
dev-python/pyyaml[${PYTHON_USEDEP}]"

@ -1,2 +1 @@
DIST entr-4.5.tar.gz 24674 BLAKE2B ee9ce841c5b3adb2bddb5742c73311b6924e914b896297d56ca3397812e8d528a25276b2b6882e2391f649106e4bf1ebc81bc1cec837b8ce1056e2575eae20da SHA512 db9499d78385df5056a30a4e3262fb436090acc5410ddfc529a7cfe4e10e304e13787abfc31dd38dbf8b9f01fa3369ef32d20c9fb903fa35763f41791bdda9c7
DIST entr-4.6.tar.gz 24909 BLAKE2B e6c1eb5da1a3b94d593297f9975c36ea98d88c5b6ac17c34934c8d4678fb1c247699b8ff3d481a3972a67fd0abba75687b11489258be98990713e2041a12c2d0 SHA512 41e8c2311c7833a778193b13d1e0b1bb18ece54f5e20b8b5b0b4a2308ba1cc1a8b8378700dbac83ee68822b5f847a3fa9c47822d22a22d45da792d2408f48378

@ -1,31 +0,0 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit toolchain-funcs
DESCRIPTION="Run arbitrary commands when files change"
HOMEPAGE="http://entrproject.org"
SRC_URI="http://entrproject.org/code/${P}.tar.gz"
LICENSE="ISC"
SLOT="0"
KEYWORDS="amd64 ppc ppc64 x86"
IUSE="test"
RESTRICT="!test? ( test )"
src_configure() {
sh configure || die
sed -i -e 's#\(^PREFIX \).*#\1\?= /usr#' Makefile.bsd || die
}
src_compile() {
export CC=$(tc-getCC)
default
}
src_test() {
export CC=$(tc-getCC)
default
}

@ -1 +1 @@
DIST exo-1.22.0.tar.gz 4684873 BLAKE2B a143517a99fde17c237c25dcdd4b54570d6ce9760157d24c8f09c26851b5fb65c6ac56506179a008f32cc657cf40fb781eb304375e3f3422a5166e6b1c194164 SHA512 f68d1524c8a1dc44aca4ab1999ebbc93a980a58344c1b39c68eb54b4651d9471b310541c2d34a43e67ad956ed93e2d3ce89c3ebeb450b620c641907684572799
DIST exo-1.22.2.tar.gz 4684092 BLAKE2B ee5ddab06438cbc7d177796917c97649fefa35630a0d8012da53042098b639f5bd580a676e30567981f55e7fc9a512069804b7c45fddb739ca54c4702cc09955 SHA512 325f9a902de424d197583bf921528bc08fc8336030f7d3d5fe4571ab26ffbdf42bf602331302124c3be1103bf3b645f05e6729752295d5ceaa3cf88f802cde99

@ -0,0 +1,44 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DESCRIPTION="a highly configurable program for managing and archiving log files"
HOMEPAGE="http://www.weird.com/~woods/projects/newsyslog.html"
SRC_URI="http://download.openpkg.org/components/cache/${PN}/${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~hppa ~mips ~ppc ~ppc64 ~sparc ~x86"
DEPEND="
sys-apps/groff"
RDEPEND="
virtual/cron
app-arch/gzip"
PATCHES=( "${FILESDIR}/${P}-html.patch" )
DOCS=( newsyslog.conf AUTHORS ChangeLog INSTALL NEWS ToDo )
src_configure() {
local myconf="--with-syslogd_pid=/var/run/syslog.pid"
if has_version 'app-admin/syslog-ng'; then
myconf="--with-syslogd_pid=/var/run/syslog-ng.pid"
fi
econf \
--with-gzip \
--with-newsyslog_conf=/etc/newsyslog.conf \
${myconf}
}
src_install() {
emake \
DESTDIR="${D}" \
catmandir="${T}"/dont-install \
install
einstalldocs
}

@ -0,0 +1,34 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{7..9} )
inherit python-r1
DESCRIPTION="Enhanced df with colors"
HOMEPAGE="http://kassiopeia.juls.savba.sk/~garabik/software/pydf/"
SRC_URI="http://kassiopeia.juls.savba.sk/~garabik/software/pydf/${PN}_${PV}.tar.gz"
LICENSE="public-domain"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
DEPEND="${PYTHON_DEPS}"
RDEPEND="${DEPEND}"
src_prepare() {
default
sed -i -e "s#/etc/pydfrc#${EPREFIX}/etc/pydfrc#" "${PN}" || die
}
src_install() {
python_foreach_impl python_doscript "${PN}"
insinto /etc
doins "${PN}rc"
doman "${PN}.1"
einstalldocs
}

@ -4,5 +4,4 @@ DIST salt-3000.2-py38-misc.patch.gz 6250 BLAKE2B 68fff80a042e6bf208ea2d9692da7a7
DIST salt-3000.5.tar.gz 15229450 BLAKE2B 135e9b9dcc461ac898231ce46e6a1359e6d60a43822320950bc0b83057f768dadf55320dd73df72d5bc917f324eef4661e6f75d8eb8e84aef958bd2df8924cfc SHA512 2579f65c24d22d77132057bd8cf37040d7d149624745dd68b4c44318be786580dcc34bf563f90d7de9ef5b726b2453bef4d8639bc8fbd9c5e691500520335317
DIST salt-3000.6.tar.gz 15236781 BLAKE2B 5a532a6915b331fb532dc6e1651cf8fca3e1a5e9f29f6d75260fdb1162dbfeec755c65f7c6fc28b1cc7dc3ace978547830af31aafc1eee8419bbc7e695725787 SHA512 739e3671766c45a0ef1eb45933c7f00f14586e91f4c4a79cbed913a48961a48baee853206ba569491756e8a872d22f3635eb6bc1a366020e551c567b2334c508
DIST salt-3001.4.tar.gz 15716372 BLAKE2B cc33b29b0da9cfaae22726b2b471245880aafa106187b531872a9ae5ee773a94e0d550a68b11b74826bc0b35197a311f690535f2280931ccb5050275ad967c2d SHA512 b7f343c65917280a96d8a3eaa6b508121b11b9f9b0bfffa5b4c79af0023bdecf4581f76014847d97f48d9677edb6f632adec3850153c3048c3114128a250b84b
DIST salt-3002.1.tar.gz 15753988 BLAKE2B d084dc650b8bc92b4ebdb145a41a39bfbd034064fad65e364260eca84d7105fb645ad8f6cea2cc1b6affb1abf21a9858ab6fb526eaf4ecd8f76c70d1384c7edc SHA512 8fc02d0b47dad60f96eb4442b0e8a31f04d796f12b845c8142135593af4c7ea9c2d9335a3f520f8858951f87b0e8cc6be70d383fde2d93a6d529e077bcc87114
DIST salt-3002.2.tar.gz 15765855 BLAKE2B b26895ababc8551e01baa806c5a0e41dab9a379e47d2289b5c3c529ef762c69631d7ed8b32339ec66c3929c5883782131eb56d1bfbcc743829c4f0199a900ca1 SHA512 0f617a07475347b1bb0d1c6059de541e102103182820dfd6f64f4c281d660e68358eb1ab7171a637e16cef9fea2517c8356df9c449f9bbc92538aa86c316f652

@ -33,7 +33,6 @@ RDEPEND="
dev-python/libnacl[${PYTHON_USEDEP}]
>=dev-python/msgpack-1.0.0[${PYTHON_USEDEP}]
>=dev-python/pycryptodome-3.9.7[${PYTHON_USEDEP}]
dev-python/pycryptodomex[${PYTHON_USEDEP}]
dev-python/pyyaml[${PYTHON_USEDEP}]
dev-python/markupsafe[${PYTHON_USEDEP}]
>=dev-python/requests-1.0.0[${PYTHON_USEDEP}]
@ -115,7 +114,9 @@ python_prepare_all() {
rm tests/unit/{states,modules}/test_zcbuildout.py || die
# make sure pkg_resources doesn't bomb because pycrypto isn't installed
find . -name '*.txt' -print0 | xargs -0 sed -e '/pycrypto>/ d' -i || die
find "${S}" -name '*.txt' -print0 | xargs -0 sed -e '/pycrypto>/ d ; /pycryptodomex/ d' -i || die
# pycryptodome rather than pycryptodomex
find "${S}" -name '*.py' -print0 | xargs -0 -- sed -i -e 's:Cryptodome:Crypto:g' -- || die
distutils-r1_python_prepare_all
}

@ -33,7 +33,6 @@ RDEPEND="
dev-python/libnacl[${PYTHON_USEDEP}]
>=dev-python/msgpack-1.0.0[${PYTHON_USEDEP}]
>=dev-python/pycryptodome-3.9.8[${PYTHON_USEDEP}]
dev-python/pycryptodomex[${PYTHON_USEDEP}]
dev-python/pyyaml[${PYTHON_USEDEP}]
dev-python/markupsafe[${PYTHON_USEDEP}]
>=dev-python/requests-1.0.0[${PYTHON_USEDEP}]
@ -114,7 +113,10 @@ python_prepare_all() {
rm tests/unit/{states,modules}/test_zcbuildout.py || die
# make sure pkg_resources doesn't bomb because pycrypto isn't installed
find . -name '*.txt' -print0 | xargs -0 sed -e '/pycrypto>/ d' -i || die
# make sure pkg_resources doesn't bomb because pycrypto isn't installed
find "${S}" -name '*.txt' -print0 | xargs -0 sed -e '/pycrypto>/ d ; /pycryptodomex/ d' -i || die
# pycryptodome rather than pycryptodomex
find "${S}" -name '*.py' -print0 | xargs -0 -- sed -i -e 's:Cryptodome:Crypto:g' -- || die
distutils-r1_python_prepare_all
}

@ -1,183 +0,0 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{7..8} )
DISTUTILS_USE_SETUPTOOLS=rdepend
inherit systemd distutils-r1
DESCRIPTION="Salt is a remote execution and configuration manager"
HOMEPAGE="https://www.saltstack.com/resources/community/
https://github.com/saltstack"
if [[ ${PV} == 9999* ]]; then
inherit git-r3
EGIT_REPO_URI="git://github.com/${PN}stack/${PN}.git"
EGIT_BRANCH="develop"
SRC_URI=""
else
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
KEYWORDS="~amd64 ~x86"
fi
LICENSE="Apache-2.0"
SLOT="0"
IUSE="cheetah cherrypy ldap libcloud libvirt genshi gnupg keyring mako
mongodb neutron nova openssl portage profile redis selinux test raet
+zeromq vim-syntax"
RDEPEND="
sys-apps/pciutils
>=dev-python/distro-1.5[${PYTHON_USEDEP}]
dev-python/jinja[${PYTHON_USEDEP}]
dev-python/libnacl[${PYTHON_USEDEP}]
>=dev-python/msgpack-1.0.0[${PYTHON_USEDEP}]
>=dev-python/pycryptodome-3.9.8[${PYTHON_USEDEP}]
dev-python/pycryptodomex[${PYTHON_USEDEP}]
dev-python/pyyaml[${PYTHON_USEDEP}]
dev-python/markupsafe[${PYTHON_USEDEP}]
>=dev-python/requests-1.0.0[${PYTHON_USEDEP}]
dev-python/setuptools[${PYTHON_USEDEP}]
dev-python/toml[${PYTHON_USEDEP}]
dev-python/watchdog[${PYTHON_USEDEP}]
libcloud? ( >=dev-python/libcloud-0.14.0[${PYTHON_USEDEP}] )
mako? ( dev-python/mako[${PYTHON_USEDEP}] )
ldap? ( dev-python/python-ldap[${PYTHON_USEDEP}] )
libvirt? (
$(python_gen_cond_dep 'dev-python/libvirt-python[${PYTHON_USEDEP}]' python3_7)
)
openssl? (
dev-libs/openssl:0=[-bindist]
dev-python/pyopenssl[${PYTHON_USEDEP}]
)
raet? (
>=dev-python/libnacl-1.0.0[${PYTHON_USEDEP}]
>=dev-python/ioflo-1.1.7[${PYTHON_USEDEP}]
>=dev-python/raet-0.6.0[${PYTHON_USEDEP}]
)
cherrypy? ( >=dev-python/cherrypy-3.2.2[${PYTHON_USEDEP}] )
cheetah? ( dev-python/cheetah3[${PYTHON_USEDEP}] )
mongodb? ( dev-python/pymongo[${PYTHON_USEDEP}] )
portage? ( sys-apps/portage[${PYTHON_USEDEP}] )
keyring? ( dev-python/keyring[${PYTHON_USEDEP}] )
redis? ( dev-python/redis-py[${PYTHON_USEDEP}] )
selinux? ( sec-policy/selinux-salt )
nova? (
$(python_gen_cond_dep '>=dev-python/python-novaclient-2.17.0[${PYTHON_USEDEP}]' python3_7)
)
neutron? (
$(python_gen_cond_dep '>=dev-python/python-neutronclient-2.3.6[${PYTHON_USEDEP}]' python3_7)
)
gnupg? ( dev-python/python-gnupg[${PYTHON_USEDEP}] )
profile? ( dev-python/yappi[${PYTHON_USEDEP}] )
vim-syntax? ( app-vim/salt-vim )
zeromq? ( >=dev-python/pyzmq-2.2.0[${PYTHON_USEDEP}] )
"
BDEPEND="
test? (
${RDEPEND}
>=dev-python/boto-2.32.1[${PYTHON_USEDEP}]
>=dev-python/jsonschema-3.0[${PYTHON_USEDEP}]
>=dev-python/libcloud-0.14.0[${PYTHON_USEDEP}]
>=dev-python/mock-2.0.0[${PYTHON_USEDEP}]
>=dev-python/moto-0.3.6[${PYTHON_USEDEP}]
dev-python/pip[${PYTHON_USEDEP}]
dev-python/psutil[${PYTHON_USEDEP}]
dev-python/pytest[${PYTHON_USEDEP}]
dev-python/pytest-helpers-namespace[${PYTHON_USEDEP}]
>=dev-python/pytest-salt-factories-0.93.0[${PYTHON_USEDEP}]
dev-python/pytest-tempdir[${PYTHON_USEDEP}]
>=dev-python/virtualenv-20.0.20[${PYTHON_USEDEP}]
!x86? ( >=dev-python/boto3-1.3.15[${PYTHON_USEDEP}] )
)"
DOCS=( README.rst AUTHORS )
REQUIRED_USE="|| ( raet zeromq )
test? ( cheetah genshi )"
RESTRICT="!test? ( test ) x86? ( test )"
PATCHES=(
"${FILESDIR}/salt-2019.2.0-skip-tests-that-oom-machine.patch"
"${FILESDIR}/salt-3002-dont-realpath-on-tmpdir.patch"
"${FILESDIR}/salt-3002-tests.patch"
)
python_prepare_all() {
# remove tests with external dependencies that may not be available
rm tests/unit/{test_zypp_plugins.py,utils/test_extend.py} || die
rm tests/unit/modules/test_{file,boto_{vpc,secgroup,elb}}.py || die
rm tests/unit/states/test_boto_vpc.py || die
rm tests/support/gitfs.py tests/unit/runners/test_git_pillar.py || die
# tests that require network access
rm tests/unit/{states,modules}/test_zcbuildout.py || die
# make sure pkg_resources doesn't bomb because pycrypto isn't installed
find . -name '*.txt' -print0 | xargs -0 sed -e '/pycrypto>/ d' -i || die
distutils-r1_python_prepare_all
}
python_prepare() {
einfo "Fixing collections.abc warnings for ${EPYTHON}"
local abc
abc="$("${EPYTHON}" -c 'import collections.abc; print("|".join((c for c in dir(collections.abc) if not c.startswith("_"))))')" || die
find -name '*.py' -type f -print0 | xargs -0 sed -r -e "s:collections\\.(${abc}):collections.abc.\\1:g" -i || die
}
python_install_all() {
local svc
USE_SETUPTOOLS=1 distutils-r1_python_install_all
for svc in minion master syndic api; do
newinitd "${FILESDIR}"/${svc}-initd-4 salt-${svc}
newconfd "${FILESDIR}"/${svc}-confd-1 salt-${svc}
systemd_dounit "${FILESDIR}"/salt-${svc}.service
done
insinto /etc/${PN}
doins -r conf/*
}
python_test() {
local tempdir
# testsuite likes lots of files
ulimit -n 3072 || die
# ${T} is too long a path for the tests to work
tempdir="$(mktemp -du --tmpdir=/tmp salt-XXX)"
mkdir "${T}/$(basename "${tempdir}")"
(
cleanup() { rm -f "${tempdir}" || die; }
trap cleanup EXIT
addwrite "${tempdir}"
ln -s "$(realpath --relative-to=/tmp "${T}/$(basename "${tempdir}")")" "${tempdir}" || die
USE_SETUPTOOLS=1 SHELL="/bin/bash" \
TMPDIR="${tempdir}" \
${EPYTHON} tests/runtests.py \
--unit-tests --no-report --verbose \
|| die "testing failed with ${EPYTHON}"
)
}
pkg_postinst() {
if use python_targets_python3_8; then
if use nova; then
ewarn "Salt's nova functionality will not work with python3.8 since"
ewarn "dev-python/python-novaclient does not support it yet"
fi
if use neutron; then
ewarn "Salt's neutron functionality will not work with python3.8 since"
ewarn "dev-python/python-neutronclient does not support it yet"
fi
if use libvirt; then
ewarn "Salt's libvirt functionality will not work with python3.8 since"
ewarn "dev-python/libvirt-python does not support it yet"
fi
fi
}

Binary file not shown.

@ -11,7 +11,7 @@ SRC_URI="https://github.com/facebook/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="|| ( BSD GPL-2 )"
SLOT="0/1"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 ~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 ~riscv s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="lz4 static-libs +threads"
RDEPEND="app-arch/xz-utils

@ -18,10 +18,6 @@ RDEPEND="app-arch/xz-utils
lz4? ( app-arch/lz4 )"
DEPEND="${RDEPEND}"
PATCHES=(
"${FILESDIR}/${PN}-1.4.5-fix-uclibc-ng.patch" #741972
)
src_prepare() {
default
multilib_copy_sources

Binary file not shown.

@ -0,0 +1,14 @@
https://bugs.gentoo.org/721914
--- a/Makefile.in
+++ b/Makefile.in
@@ -124,7 +124,7 @@ CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
LIBRARIES = $(noinst_LIBRARIES)
-AR = ar
+AR := ar
ARFLAGS = cru
AM_V_AR = $(am__v_AR_@AM_V@)
am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)

@ -1,9 +1,9 @@
# Copyright 1999-2018 Gentoo Authors
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
inherit bash-completion-r1
inherit bash-completion-r1 toolchain-funcs
DESCRIPTION="Online backups for the truly paranoid"
HOMEPAGE="https://www.tarsnap.com/"
@ -26,6 +26,8 @@ RDEPEND="
DEPEND="${RDEPEND}
virtual/os-headers" # Required for "magic.h"
PATCHES=( "${FILESDIR}"/${PN}-1.0.39-respect-AR.patch )
S=${WORKDIR}/${PN}-autoconf-${PV}
src_configure() {
@ -37,6 +39,10 @@ src_configure() {
$(use_with lzma)
}
src_compile() {
emake AR=$(tc-getAR)
}
src_install() {
default
dobashcomp misc/bash_completion.d/*

Binary file not shown.

@ -1,4 +1,4 @@
DIST gnupg-2.2.16-scdaemon_shared-access.patch 2586 BLAKE2B 42fd5482c4e86751ce62836125997c2295c44bc5db0671a06460fd306b2ed93f290fb898fc1b1e463a863eddf9ab5f99ea3c90a55499ef45ca1ed6edf2854663 SHA512 38abaa4200114ae6b6f220fabc0a84a056761949c97bd0564557f4411a299b9a1939893555c27e26da2d8e8da4bc97a298fa7e68f1e80fe99c3f88cc329eaa84
DIST gnupg-2.2.20.tar.bz2 6786913 BLAKE2B 43cf9402a26e67d6c7c2444eb2faaee3f06ea0bf6c07708a50834c5d7424db2f9c38e1f0046dd3a35082abc08d401b2951655e7e068f0873db297560b87d2667 SHA512 3e69f102366ec3415f439ab81aae2458182fa1a18dfb86565b1d9dc638f3fc4c179a5947f0042b7c5a813345676285a662793664a1803ea9ad8328f0548e0edc
DIST gnupg-2.2.24.tar.bz2 7196489 BLAKE2B 0e6fd3df2a12910d43e290f86839f2ea56dddc2598e3687c356522727b082e3b266c00b7e5184aecac3103c9638e776463adc7b807b6b294180f227877861b1d SHA512 b72fb12da95c1c62f013e1ffdbf2983b4185f0de59edba6061209904e5f63525e23a406529fafcd1b0b50ccbad45980c1db293601e8db84d5cbf65a7228834fb
DIST gnupg-2.2.25.tar.bz2 7195857 BLAKE2B c930edf9259a0e1c508af8d76a86f979860adfe2c525020b37d3741679200f96483f0ad8bc1f72e2dbf7fe77696cd04d4272a2ee23e4c4abe1ed6ba88b95f365 SHA512 ab1d7cc9d8be3e7189bc4bea431b9d5db313cbd1739823950f32fbb611b2f4374889f444efbf43ce1fbf498b9865d7e6e953cd4c86d58fd688f63923c434ea2c
DIST gnupg-2.2.26.tar.bz2 7189254 BLAKE2B f51dd18f6fe327573769d1581ab49bfbca6a56973f6115a68d11e79f52f4b9bdd717ff027800cd1d52fca56abcffa80ee025b49a6af3914f60decdad1e1585ba SHA512 5e9482e126c32c836064b125a18b109f0d3c96892474d3fb47dd791350cccefc56f9a5dfbd54504716487a93d9f71de2493bdfef92e29964b5bfe28b0053c265

@ -104,12 +104,6 @@ src_configure() {
append-cppflags -I"${EPREFIX}/usr/include/libusb-1.0"
fi
if use elibc_SunOS || use elibc_AIX; then
myconf+=( --disable-symcryptrun )
else
myconf+=( --enable-symcryptrun )
fi
#bug 663142
if use user-socket; then
myconf+=( --enable-run-gnupg-user-socket )

Binary file not shown.

@ -1,11 +0,0 @@
--- a/cmake/FindLibLUV.cmake
+++ b/cmake/FindLibLUV.cmake
@@ -6,7 +6,7 @@
find_package(PkgConfig)
if (PKG_CONFIG_FOUND)
- pkg_check_modules(PC_LIBLUV QUIET luv)
+ pkg_check_modules(PC_LIBLUV QUIET "libluv-${LUA_PRG}")
endif()
set(LIBLUV_DEFINITIONS ${PC_LIBLUV_CFLAGS_OTHER})

@ -38,9 +38,9 @@ BDEPEND="${LUA_DEPS}
# TODO: add tests, dev-lua/busted has now got luajit support.
# bug #584694
DEPEND="${LUA_DEPS}
dev-lua/luv[${LUA_SINGLE_USEDEP}]
$(lua_gen_cond_dep '
dev-lua/lpeg[${LUA_USEDEP}]
dev-lua/luv[${LUA_USEDEP}]
dev-lua/mpack[${LUA_USEDEP}]
')
$(lua_gen_cond_dep '
@ -62,7 +62,6 @@ RDEPEND="
PATCHES=(
"${FILESDIR}"/${PN}-0.4.4-cmake_lua_version.patch
"${FILESDIR}"/${PN}-0.4.4-cmake_multiimpl_luv.patch
)
src_prepare() {

@ -38,9 +38,9 @@ BDEPEND="${LUA_DEPS}
# TODO: add tests, dev-lua/busted has now got luajit support.
# bug #584694
DEPEND="${LUA_DEPS}
dev-lua/luv[${LUA_SINGLE_USEDEP}]
$(lua_gen_cond_dep '
dev-lua/lpeg[${LUA_USEDEP}]
dev-lua/luv[${LUA_USEDEP}]
dev-lua/mpack[${LUA_USEDEP}]
')
$(lua_gen_cond_dep '
@ -64,7 +64,6 @@ RDEPEND="
PATCHES=(
"${FILESDIR}"/${PN}-0.4.4-cmake_lua_version.patch
"${FILESDIR}"/${PN}-0.4.4-cmake_multiimpl_luv.patch
)
src_prepare() {

Binary file not shown.

@ -81,6 +81,7 @@ RDEPEND="
iscsi-direct? ( >=net-libs/libiscsi-1.18.0 )
libssh? ( net-libs/libssh )
lvm? ( >=sys-fs/lvm2-2.02.48-r2[-device-mapper-only(-)] )
lxc? ( !sys-apps/systemd[cgroup-hybrid(-)] )
nfs? ( net-fs/nfs-utils )
numa? (
>sys-process/numactl-2.0.2

@ -83,6 +83,7 @@ RDEPEND="
iscsi-direct? ( >=net-libs/libiscsi-1.18.0 )
libssh? ( net-libs/libssh )
lvm? ( >=sys-fs/lvm2-2.02.48-r2[-device-mapper-only(-)] )
lxc? ( !sys-apps/systemd[cgroup-hybrid(-)] )
nfs? ( net-fs/nfs-utils )
numa? (
>sys-process/numactl-2.0.2

Binary file not shown.

@ -18,7 +18,7 @@ remove_symlinks() {
for f in $HEADER_FILES ; do
rm -f "${EROOT}"/usr/include/${f}
done
rm -f "${EROOT}"/usr/share/man/man1/{lua,luac}.1{,.gz,.bz2,.lzma} &>/dev/null
rm -f "${EROOT}"/usr/share/man/man1/lua{,c}.1{,.*} &>/dev/null
}
_dup() {
@ -26,9 +26,12 @@ _dup() {
}
set_symlinks() {
local ver=$1
ln -s lua${ver} $(_dup "${EROOT}"/usr/bin/lua)
ln -s luac${ver} $(_dup "${EROOT}"/usr/bin/luac)
local ver=${1#lua}
local bin_prefix="${EROOT}/usr/bin"
ln -s lua${ver} $(_dup "${bin_prefix}"/lua)
if [[ -f "${bin_prefix}"/luac${ver} ]]; then
ln -s luac${ver} $(_dup "${bin_prefix}"/luac)
fi
for dir in $(get_libdirs) ; do
if has 'jit*' ${ver}; then
type -p lua${ver} &>/dev/null || die -q "It's something wrong with your lua${ver} installation: it's binary leads to broken symlink"
@ -41,7 +44,7 @@ set_symlinks() {
fi
ln -s lua${ver}.pc $(_dup "${EROOT}/${dir}"/pkgconfig/lua.pc)
done
for manpage in "${EROOT}"/usr/share/man/man1/lua*${ver}.1* ; do
for manpage in "${EROOT}"/usr/share/man/man1/lua{,c}${ver}.1.* ; do
test -f ${manpage} &&
ln -s $(basename "${manpage}") $(_dup "${manpage//${ver}}")
done
@ -72,14 +75,14 @@ get_libdirs() {
find_targets() {
local dirs
local prefix="${EROOT}/usr/bin/lua"
for f in ${prefix}{5,jit-2}.* ; do
local prefix="${EROOT}/usr/bin/"
for f in ${prefix}lua{5,jit-2}.* ; do
[[ -f "${f}" ]] && dirs="${dirs} ${f##$prefix}"
done
echo $dirs
}
resolv_target() {
resolve_target() {
local targets=( $(find_targets) )
if is_number $1; then
[[ $1 -le ${#targets[@]} && $1 -gt 0 ]] && echo "${targets[ $(( $1 - 1 )) ]}"
@ -89,7 +92,7 @@ resolv_target() {
}
get_active_version() {
readlink -e "${EROOT}"/usr/bin/lua | sed -ne "s:.*/usr/bin/lua\([\w.-]*\):\1:p"
readlink -e "${EROOT}"/usr/bin/lua | sed -ne "s:.*/usr/bin/\([\w.-]*\):\1:p"
}
## Actual actions
@ -101,16 +104,23 @@ describe_set() {
}
describe_set_parameters() {
echo '<target>'
echo '[--if-unset] <target>'
}
describe_set_options() {
echo '--if-unset: Do not replace currently selected implementation'
echo 'target: Target name or number (from "list" action)'
}
do_set() {
local target=$(resolv_target $1)
if [ "${1}" == "--if-unset" ]; then
if [[ -n "$(get_active_version)" ]]; then
return
fi
shift
fi
local target=$(resolve_target $1)
if [[ -z "${target}" ]]; then
die -q "You need to specify a version"
fi
@ -144,29 +154,3 @@ describe_show() {
do_show() {
get_active_version
}
## update action
describe_update() {
echo 'Automatically update the lua version'
}
describe_update_options() {
echo 'ifunset : Do not override existing implementation'
}
do_update() {
[[ -n ${1} && ! ( ${1} == ifunset || ${1} == '--if-unset' ) ]] && \
die -q 'Usage error'
[[ ( ${1} == ifunset || ${1} == '--if-unset' ) && -n $(get_active_version) ]] && \
return
remove_symlinks
local targets=( $(find_targets) )
if [[ -n ${#targets[@]} ]] ; then
local target=${targets[${#targets[@]} - 1]}
set_symlinks $target || echo 'Nothing to update'
fi
}

Binary file not shown.

@ -1 +1,2 @@
DIST kmymoney-5.1.0.tar.xz 12005824 BLAKE2B 4eaeefba29d4df85c485d8d94db80b418c0086f6cac81295f1251e3d4883a78c71d0401286a918831ee2a39571a70583675ee303775bffdb3333e11d5624bbf6 SHA512 143161efd708ae05923d68510945c24f08d85cd6482b3e6015c6061bc28c80e095ca56b768e595bfae50ea3340855e021dde5c715546c0641f94adcd91639334
DIST kmymoney-5.1.1.tar.xz 12059768 BLAKE2B 8b41bce8804d757ba9c801c7b1eeb214a8983c4686a9663a4b5255460139593b7f70e29f08294df810a02eab4190dc6de852be091760981fd84ff8191fda82a3 SHA512 2ed3e47b2e65c9d9e5a11b55f0d425192331b21d64f8a4a4f8921fdd67eac219bf3ae1418026071218d823acc9a36905dc5c499cb0ae2af4ced0e32d1720bf59

@ -0,0 +1,133 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
EGIT_BRANCH="5.1"
ECM_HANDBOOK="optional"
ECM_TEST="forceoptional"
KFMIN=5.74.0
QTMIN=5.15.1
VIRTUALX_REQUIRED="test"
VIRTUALDBUS_TEST="true"
inherit ecm kde.org optfeature
DESCRIPTION="Personal finance manager based on KDE Frameworks"
HOMEPAGE="https://kmymoney.org/"
if [[ ${KDE_BUILD_TYPE} = release ]]; then
SRC_URI="mirror://kde/stable/${PN}/${PV}/src/${P}.tar.xz"
KEYWORDS="~amd64 ~x86"
fi
LICENSE="GPL-2"
SLOT="5"
IUSE="activities addressbook calendar hbci holidays"
[[ ${KDE_BUILD_TYPE} = live ]] && IUSE+=" experimental"
BDEPEND="virtual/pkgconfig"
RDEPEND="
>=app-crypt/gpgme-1.7.1-r1[cxx]
>=app-office/libalkimia-7.0.0:=
dev-db/sqlcipher
dev-libs/gmp:0=[cxx]
dev-libs/kdiagram:5
dev-libs/libgpg-error
dev-libs/libofx:=
>=dev-qt/qtdbus-${QTMIN}:5
>=dev-qt/qtgui-${QTMIN}:5
>=dev-qt/qtnetwork-${QTMIN}:5
>=dev-qt/qtprintsupport-${QTMIN}:5
>=dev-qt/qtsql-${QTMIN}:5
>=dev-qt/qtsvg-${QTMIN}:5
>=dev-qt/qtwebengine-${QTMIN}:5[widgets]
>=dev-qt/qtwidgets-${QTMIN}:5
>=dev-qt/qtxml-${QTMIN}:5
>=kde-frameworks/karchive-${KFMIN}:5
>=kde-frameworks/kcmutils-${KFMIN}:5
>=kde-frameworks/kcodecs-${KFMIN}:5
>=kde-frameworks/kcompletion-${KFMIN}:5
>=kde-frameworks/kconfig-${KFMIN}:5
>=kde-frameworks/kconfigwidgets-${KFMIN}:5
>=kde-frameworks/kcoreaddons-${KFMIN}:5
>=kde-frameworks/ki18n-${KFMIN}:5
>=kde-frameworks/kiconthemes-${KFMIN}:5
>=kde-frameworks/kio-${KFMIN}:5
>=kde-frameworks/kitemmodels-${KFMIN}:5
>=kde-frameworks/kitemviews-${KFMIN}:5
>=kde-frameworks/kjobwidgets-${KFMIN}:5
>=kde-frameworks/knotifications-${KFMIN}:5
>=kde-frameworks/kservice-${KFMIN}:5
>=kde-frameworks/ktextwidgets-${KFMIN}:5
>=kde-frameworks/kwallet-${KFMIN}:5
>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
>=kde-frameworks/kxmlgui-${KFMIN}:5
>=kde-frameworks/sonnet-${KFMIN}:5
activities? ( >=kde-frameworks/kactivities-${KFMIN}:5 )
addressbook? (
kde-apps/akonadi:5
kde-apps/kidentitymanagement:5
>=kde-frameworks/kcontacts-${KFMIN}:5
)
calendar? ( dev-libs/libical:= )
hbci? (
>=net-libs/aqbanking-6.0.1
>=sys-libs/gwenhywfar-5.1.2:=[qt5]
)
holidays? ( >=kde-frameworks/kholidays-${KFMIN}:5 )
"
DEPEND="${RDEPEND}
dev-libs/boost
"
pkg_setup() {
ecm_pkg_setup
if [[ ${KDE_BUILD_TYPE} = live ]] && use experimental; then
ewarn "USE experimental set: Building unfinished features."
ewarn "This *will* chew up your data. You have been warned."
fi
}
src_configure() {
local mycmakeargs=(
-DENABLE_OFXIMPORTER=ON
-DENABLE_WEBENGINE=ON
-DENABLE_WEBOOB=OFF
-DUSE_QT_DESIGNER=OFF
$(cmake_use_find_package activities KF5Activities)
$(cmake_use_find_package addressbook KF5Akonadi)
$(cmake_use_find_package addressbook KF5Contacts)
$(cmake_use_find_package addressbook KF5IdentityManagement)
-DENABLE_LIBICAL=$(usex calendar)
-DENABLE_KBANKING=$(usex hbci)
$(cmake_use_find_package holidays KF5Holidays)
)
[[ ${KDE_BUILD_TYPE} = live ]] &&
mycmakeargs+=( -DENABLE_UNFINISHEDFEATURES=$(usex experimental) )
ecm_src_configure
}
src_test() {
# bug 652636; bug 673052: needs kmymoney installed to succeed
local myctestargs=(
-E "(reports-chart-test|qsqlcipher-test)"
)
ecm_src_test
}
pkg_postinst() {
if [[ -z "${REPLACING_VERSIONS}" ]]; then
elog "Optional dependencies:"
optfeature "More options for online stock quote retrieval" dev-perl/Finance-Quote
fi
if has_version "app-office/kmymoney[quotes]"; then
elog "Please note: IUSE=quotes flag is gone in ${PN}-5.1.1. ${PN} still"
elog "does online stock quote retrieval without it, but dev-perl/Finance-Quote"
elog "may provide additional sources. To keep the functionality, run:"
elog " emerge --noreplace dev-perl/Finance-Quote"
fi
ecm_pkg_postinst
}

@ -1,2 +1 @@
DIST scribus-1.5.5_p20200626.tar.gz 87557791 BLAKE2B 183b035901f5a19ffbf5890acc6037eb5483a0b5837b244b39838ca03d13bd4afc76c3c41345123aec402c602177c5fff7183deba10f8e33e980659c4ef7881e SHA512 ff6cf0d86c874b7f03c8be9675f92c6cc7797e3a344326824e4f01f0b02ec02d6fdf5b52924e51b3436d9a6d78eda47a5e9987507721d18985768cc5a3c77245
DIST scribus-1.5.6.1.tar.gz 87557791 BLAKE2B 183b035901f5a19ffbf5890acc6037eb5483a0b5837b244b39838ca03d13bd4afc76c3c41345123aec402c602177c5fff7183deba10f8e33e980659c4ef7881e SHA512 ff6cf0d86c874b7f03c8be9675f92c6cc7797e3a344326824e4f01f0b02ec02d6fdf5b52924e51b3436d9a6d78eda47a5e9987507721d18985768cc5a3c77245

@ -1,159 +0,0 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{6,7,8,9} )
PYTHON_REQ_USE="tk?"
COMMIT=aa84120d97003a03d883db33ea9a6ad28550e59a
inherit cmake desktop flag-o-matic python-single-r1 xdg
DESCRIPTION="Desktop publishing (DTP) and layout program"
HOMEPAGE="https://www.scribus.net/"
SRC_URI="https://github.com/${PN}project/${PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 ppc ppc64 x86"
IUSE="+boost debug examples graphicsmagick hunspell +minimal osg +pdf scripts +templates tk"
REQUIRED_USE="${PYTHON_REQUIRED_USE}
tk? ( scripts )"
# osg
# couple of third_party libs bundled
BDEPEND="
dev-qt/linguist-tools:5
virtual/pkgconfig
"
DEPEND="${PYTHON_DEPS}
app-text/libmspub
app-text/libqxp
app-text/poppler:=
dev-libs/hyphen
>=dev-libs/icu-58.2:0=
dev-libs/librevenge
dev-libs/libxml2
dev-qt/qtcore:5
dev-qt/qtgui:5[-gles2-only]
dev-qt/qtnetwork:5
dev-qt/qtopengl:5
dev-qt/qtprintsupport:5
dev-qt/qtwidgets:5
dev-qt/qtxml:5
media-libs/fontconfig
media-libs/freetype:2
>=media-libs/harfbuzz-0.9.42:0=[icu]
media-libs/lcms:2
media-libs/libcdr
media-libs/libfreehand
media-libs/libpagemaker
media-libs/libpng:0=
media-libs/libvisio
media-libs/libzmf
media-libs/tiff:0
net-print/cups
sys-libs/zlib[minizip]
virtual/jpeg:0=
>=x11-libs/cairo-1.10.0[X,svg]
boost? ( >=dev-libs/boost-1.67:= )
graphicsmagick? ( media-gfx/graphicsmagick:= )
hunspell? ( app-text/hunspell:= )
osg? ( dev-games/openscenegraph:= )
pdf? ( app-text/podofo:0= )
scripts? (
$(python_gen_cond_dep '
dev-python/pillow[tk?,${PYTHON_MULTI_USEDEP}]
')
)
"
RDEPEND="${DEPEND}
app-text/ghostscript-gpl
"
PATCHES=(
# non(?)-upstreamable
"${FILESDIR}"/${PN}-1.5.3-fpic.patch
"${FILESDIR}"/${PN}-1.5.6-docdir.patch
"${FILESDIR}"/${PN}-1.5.5-findhyphen-1.patch
"${FILESDIR}"/${PN}-1.5.6-findhyphen.patch
)
CMAKE_BUILD_TYPE="Release"
S="${WORKDIR}"/${PN}-${COMMIT}
src_prepare() {
cmake_src_prepare
rm -r codegen/cheetah scribus/third_party/hyphen || die
sed \
-e "/^\s*unzip\.[ch]/d" \
-e "/^\s*ioapi\.[ch]/d" \
-i scribus/CMakeLists.txt Scribus.pro || die
rm scribus/ioapi.[ch] || die
sed \
-e 's:\(${CMAKE_INSTALL_PREFIX}\):./\1:g' \
-i resources/templates/CMakeLists.txt || die
sed \
-e "/^add_subdirectory(ui\/qml)/s/^/#DONT/" \
-i scribus/CMakeLists.txt || die # nothing but a bogus Hello World test
}
src_configure() {
# bug #550818
append-cppflags -DHAVE_MEMRCHR
local mycmakeargs=(
-DHAVE_PYTHON=ON
-DWANT_DISTROBUILD=ON
-DDOCDIR="${EPREFIX}"/usr/share/doc/${PF}/
-DPython3_EXECUTABLE="${PYTHON}"
-DWITH_BOOST=$(usex boost)
-DWANT_DEBUG=$(usex debug)
-DWANT_NOEXAMPLES=$(usex !examples)
-DWANT_GRAPHICSMAGICK=$(usex graphicsmagick)
-DWANT_HUNSPELL=$(usex hunspell)
-DWANT_HEADERINSTALL=$(usex !minimal)
-DWANT_NOOSG=$(usex !osg)
-DWITH_PODOFO=$(usex pdf)
-DWANT_NOTEMPLATES=$(usex !templates)
)
cmake_src_configure
}
src_install() {
cmake_src_install
if ! use tk; then
rm "${ED}"/usr/share/scribus/scripts/{FontSample,CalendarWizard}.py || die
fi
if use scripts; then
python_fix_shebang "${ED}"/usr/share/scribus/scripts
python_optimize "${ED}"/usr/share/scribus/scripts
else
rm "${ED}"/usr/share/scribus/scripts/*.py || die
fi
mv "${ED}"/usr/share/doc/${PF}/{en,html} || die
ln -sf html "${ED}"/usr/share/doc/${PF}/en || die
# These files are parsed to populate the help/about window.
cat >> "${T}"/COPYING <<- EOF || die
${PN} is licensed under the "${LICENSE}".
Please visit https://www.gnu.org/licenses/gpl-2.0.html for the complete license text.
EOF
dodoc "${T}"/COPYING
docompress -x /usr/share/doc/${PF}/en /usr/share/doc/${PF}/{AUTHORS,TRANSLATION,LINKS,COPYING}
local size
for size in 16 32 128 256 512; do
newicon -s $size resources/iconsets/artwork/icon_${size}x${size}.png scribus.png
done
newicon -s 64 resources/iconsets/artwork/icon_32x32@2x.png scribus.png
doicon resources/iconsets/*/scribus.png
domenu scribus.desktop
}

Binary file not shown.

@ -1 +1,2 @@
DIST LanguageTool-5.0.oxt 141552168 BLAKE2B 040cb817150dd1cf137feadf28ca00ce6316a529709c1255438d0fa2faac3b5a516d9a48e3e3ba6bf2fedc3650050970eae6179578c5fcf005c6484c30cf408e SHA512 8493100684598aaa7c422360e0f00b5cff0c1be22aca4bee6c7e0e12d509916bc3c7f8df052b86702f6177ffffc227d1a5dbe6b2592fa1cbdb79f4666dc22c16
DIST LanguageTool-5.1.3.oxt 142774437 BLAKE2B 45d6ffc3aa6a3d9891d0e3e5fc6462f4d8ec76736a47cbb3b235721fcc708d0f0b17d3f069fdcb85843c9b96dca6a70176c3dcba6832f9855c8d5eeb4a257dd1 SHA512 7a36e3b028b757c073d879ddd837ca12dc288178430bbf445080c892efe9f28d13565efd546e34244bcd8798ee0ef65433d08c8e3ee993b96efa4e5bbc103882

@ -0,0 +1,23 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
MY_P="LanguageTool-${PV}"
OFFICE_REQ_USE="java"
OFFICE_EXTENSIONS=(
"${MY_P}.oxt"
)
inherit office-ext-r1
DESCRIPTION="Style and Grammar Checker for libreoffice"
HOMEPAGE="https://www.languagetool.org/"
SRC_URI="https://www.languagetool.org/download/${MY_P}.oxt"
LICENSE="LGPL-2.1+"
SLOT="0"
KEYWORDS="~amd64 ~x86"
RDEPEND=">=virtual/jre-1.8"

Binary file not shown.

@ -23,7 +23,7 @@ fi
LICENSE="AGPL-3 CPL-1.0"
SLOT="0"
KEYWORDS="~alpha amd64 ~arm ~arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 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 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="cups dbus gtk l10n_de static-libs unicode X"
LANGS="ja ko zh-CN zh-TW"

@ -0,0 +1,101 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
LUA_COMPAT=( lua5-{1..3} )
inherit lua-single qmake-utils toolchain-funcs
DESCRIPTION="Converts source code to formatted text (HTML, LaTeX, etc.) with syntax highlight"
HOMEPAGE="http://www.andre-simon.de/"
SRC_URI="http://www.andre-simon.de/zip/${P}.tar.bz2"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
IUSE="examples qt5"
REQUIRED_USE="${LUA_REQUIRED_USE}"
RDEPEND="
${LUA_DEPS}
qt5? (
dev-qt/qtcore:5
dev-qt/qtgui:5
dev-qt/qtwidgets:5
)
"
DEPEND="${RDEPEND}
dev-libs/boost
"
BDEPEND="
virtual/pkgconfig
qt5? ( dev-qt/linguist-tools:5 )
"
myhlopts=(
"CXX=$(tc-getCXX)"
"AR=$(tc-getAR)"
"LDFLAGS=${LDFLAGS}"
"CFLAGS=${CXXFLAGS} -DNDEBUG -std=c++11"
"DESTDIR=${D}"
"PREFIX=${EPREFIX}/usr"
"HL_CONFIG_DIR=${EPREFIX}/etc/highlight/"
"HL_DATA_DIR=${EPREFIX}/usr/share/highlight/"
"doc_dir=${EPREFIX}/usr/share/doc/${PF}/"
"conf_dir=${EPREFIX}/etc/highlight/"
)
src_prepare() {
default
# disable man page compression
sed -e "/GZIP/d" -i makefile || die
sed -e "/LSB_DOC_DIR/s:doc/${PN}:doc/${PF}:" \
-i src/core/datadir.cpp || die
sed -r -i \
-e "/^LUA_.*pkg-config/s,\<lua\>,${ELUA},g" \
"${S}"/extras/tcl/makefile \
"${S}"/extras/swig/makefile \
"${S}"/makefile \
"${S}"/src/makefile \
|| die "Failed to set Lua implementation"
# We set it via eqmake5, otherwise it forces clang...
sed -e "s/QMAKE_CC/#QMAKE_CC/g" \
-e "s/QMAKE_CXX /#QMAKE_CXX /g" \
-i src/gui-qt/highlight.pro || die
}
src_configure() {
if use qt5 ; then
pushd src/gui-qt > /dev/null || die
eqmake5 \
'DEFINES+=DATA_DIR=\\\"'"${EPREFIX}"'/usr/share/${PN}/\\\" CONFIG_DIR=\\\"'"${EPREFIX}"'/etc/${PN}/\\\" DOC_DIR=\\\"'"${EPREFIX}"'/usr/share/doc/${PF}/\\\"'
popd > /dev/null || die
fi
}
src_compile() {
emake -f makefile LUA_PKG_NAME="${ELUA}" "${myhlopts[@]}"
if use qt5 ; then
pushd src/gui-qt > /dev/null || die
emake
popd > /dev/null || die
fi
}
src_install() {
emake -f makefile "${myhlopts[@]}" install
if use qt5; then
emake -f makefile "${myhlopts[@]}" install-gui
docompress -x /usr/share/doc/${PF}/{ChangeLog,COPYING,README,README_PLUGINS}
fi
if ! use examples ; then
rm -r "${ED}"/usr/share/doc/${PF}/extras || die
fi
}

@ -0,0 +1,26 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DESCRIPTION="A simple thesaurus for Libreoffice"
HOMEPAGE="http://hunspell.sourceforge.net/"
SRC_URI="mirror://sourceforge/hunspell/MyThes/${PV}/${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
IUSE=""
RDEPEND="app-text/hunspell"
DEPEND="${DEPEND}
virtual/pkgconfig"
src_configure() {
econf --disable-static
}
src_install() {
default
find "${ED}" -name '*.la' -exec rm -f {} +
}

@ -0,0 +1,15 @@
Switch from the non-standard upstream CMake Lua module to the one bundled
with CMake, use only the Lua version requested by the ebuild, and do not
semi-quietly ignore the absence of Lua.
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -433,7 +433,7 @@
ENDIF(WANT_FONTCONFIG)
IF(NOT PODOFO_BUILD_LIB_ONLY)
-FIND_PACKAGE(LUA)
+FIND_PACKAGE(Lua ${LUA_VERSION} EXACT REQUIRED)
IF(LUA_FOUND)
# If we have lua, we can build podofoimpose.
MESSAGE("Lua found - PoDoFoImpose and PoDoFoColor will be built with Lua support")

@ -0,0 +1,159 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
LUA_COMPAT=( lua5-{1..4} )
inherit cmake flag-o-matic lua-single toolchain-funcs
DESCRIPTION="PoDoFo is a C++ library to work with the PDF file format"
HOMEPAGE="https://sourceforge.net/projects/podofo/"
SRC_URI="https://dev.gentoo.org/~zmedico/dist/${P}.tar.xz"
LICENSE="GPL-2 LGPL-2.1"
SLOT="0/${PV%_*}"
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
IUSE="+boost idn libressl debug test +tools"
RESTRICT="!test? ( test )"
REQUIRED_USE="${LUA_REQUIRED_USE}
test? ( tools )"
RDEPEND="${LUA_DEPS}
idn? ( net-dns/libidn:= )
!libressl? ( dev-libs/openssl:0= )
libressl? ( dev-libs/libressl:0= )
media-libs/fontconfig:=
media-libs/freetype:2=
virtual/jpeg:0=
media-libs/libpng:0=
media-libs/tiff:0=
sys-libs/zlib:="
DEPEND="${RDEPEND}
virtual/pkgconfig
boost? ( dev-util/boost-build )
test? ( dev-util/cppunit )"
PATCHES=(
"${FILESDIR}"/${PN}-0.9.6_p20190928-cmake_lua_version.patch
)
DOCS="AUTHORS ChangeLog TODO"
src_prepare() {
cmake_src_prepare
local x sed_args
if use libressl; then
sed -e 's:^#ifdef PODOFO_HAVE_OPENSSL_1_1$:#ifndef PODOFO_HAVE_OPENSSL_1_1:' \
-i tools/podofosign/podofosign.cpp || die #663602
fi
# bug 620934 - Disable linking with cppunit when possible, since it
# triggers errors with some older compilers.
use test || sed -e 's:^FIND_PACKAGE(CppUnit):#\0:' -i CMakeLists.txt || die
# bug 556962
sed -i -e 's|Decrypt( pEncryptedBuffer, nOutputLen, pDecryptedBuffer, m_lLen );|Decrypt( pEncryptedBuffer, (pdf_long)nOutputLen, pDecryptedBuffer, (pdf_long\&)m_lLen );|' \
test/unit/EncryptTest.cpp || die
sed -i \
-e "s:LIBDIRNAME \"lib\":LIBDIRNAME \"$(get_libdir)\":" \
-e "s:LIBIDN_FOUND:HAVE_LIBIDN:g" \
CMakeLists.txt || die
# Use pkg-config to find headers for bug #459404.
sed_args=
for x in $($(tc-getPKG_CONFIG) --cflags freetype2) ; do
[[ ${x} == -I* ]] || continue
x=${x#-I}
if [[ -f ${x}/ft2build.h ]] ; then
sed_args+=" -e s:/usr/include/\\r\$:${x}:"
elif [[ -f ${x}/freetype/config/ftheader.h ]] ; then
sed_args+=" -e s:/usr/include/freetype2\\r\$:${x}:"
fi
done
[[ -n ${sed_args} ]] && \
{ sed -i ${sed_args} cmake/modules/FindFREETYPE.cmake || die; }
# Bug #439784: Add missing unistd include for close() and unlink().
sed -i 's:^#include <stdio.h>$:#include <unistd.h>\n\0:' -i \
test/unit/TestUtils.cpp || die
# TODO: fix these test cases
# ColorTest.cpp:62:Assertion
# Test name: ColorTest::testDefaultConstructor
# expected exception not thrown
# - Expected: PdfError
sed -e 's:CPPUNIT_TEST( testDefaultConstructor ://\0:' \
-e 's:CPPUNIT_TEST( testGreyConstructor ://\0:' \
-e 's:CPPUNIT_TEST( testRGBConstructor ://\0:' \
-e 's:CPPUNIT_TEST( testCMYKConstructor ://\0:' \
-e 's:CPPUNIT_TEST( testColorSeparationAllConstructor ://\0:' \
-e 's:CPPUNIT_TEST( testColorSeparationNoneConstructor ://\0:' \
-e 's:CPPUNIT_TEST( testColorSeparationConstructor ://\0:' \
-e 's:CPPUNIT_TEST( testColorCieLabConstructor ://\0:' \
-i test/unit/ColorTest.h || die
# ColorTest.cpp:42:Assertion
# Test name: ColorTest::testHexNames
# assertion failed
# - Expression: static_cast<int>(rgb.GetGreen() * 255.0) == 0x0A
sed -e 's:CPPUNIT_TEST( testHexNames ://\0:' \
-i test/unit/ColorTest.h || die
# Bug #352125: test failure, depending on installed fonts
# ##Failure Location unknown## : Error
# Test name: FontTest::testFonts
# uncaught exception of type PoDoFo::PdfError
# - ePdfError_UnsupportedFontFormat
sed -e 's:CPPUNIT_TEST( testFonts ://\0:' \
-i test/unit/FontTest.h || die
# Test name: EncodingTest::testDifferencesEncoding
# equality assertion failed
# - Expected: 1
# - Actual : 0
sed -e 's:CPPUNIT_TEST( testDifferencesEncoding ://\0:' \
-i test/unit/EncodingTest.h || die
# Bug #407015: fix to compile with Lua 5.2+
case "${ELUA}" in
lua5-1|luajit)
;;
*)
sed -e 's: lua_open(: luaL_newstate(:' \
-e 's: luaL_getn(: lua_rawlen(:' -i \
tools/podofocolor/luaconverter.cpp \
tools/podofoimpose/planreader_lua.cpp || die
;;
esac
}
src_configure() {
# Bug #381359: undefined reference to `PoDoFo::PdfVariant::DelayedLoadImpl()'
filter-flags -fvisibility-inlines-hidden
mycmakeargs+=(
"-DPODOFO_BUILD_SHARED=1"
"-DPODOFO_HAVE_JPEG_LIB=1"
"-DPODOFO_HAVE_PNG_LIB=1"
"-DPODOFO_HAVE_TIFF_LIB=1"
"-DWANT_FONTCONFIG=1"
"-DUSE_STLPORT=0"
-DLUA_VERSION="$(lua_get_version)"
-DWANT_BOOST=$(usex boost ON OFF)
-DHAVE_LIBIDN=$(usex idn ON OFF)
-DPODOFO_HAVE_CPPUNIT=$(usex test ON OFF)
-DPODOFO_BUILD_LIB_ONLY=$(usex tools OFF ON)
)
cmake_src_configure
mkdir -p "${S}/test/TokenizerTest/objects" || die
}
src_test() {
cd "${BUILD_DIR}"/test/unit || die
./podofo-test --selftest || die "self test failed"
}

Binary file not shown.

@ -10,7 +10,7 @@ HOMEPAGE="https://www.pgbouncer.org/"
SRC_URI="https://www.pgbouncer.org/downloads/files/${PV}/pgbouncer-${PV}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="amd64 ~x86"
KEYWORDS="amd64 x86"
IUSE="+c-ares debug doc pam ssl systemd -udns"
# At-most-one-of, one can be enabled but not both

@ -9,7 +9,7 @@ SRC_URI="https://github.com/okbob/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD-2"
SLOT="0"
KEYWORDS="amd64 ~x86"
KEYWORDS="amd64 x86"
DEPEND="sys-libs/ncurses:*
dev-db/postgresql:=

Binary file not shown.

@ -24,7 +24,7 @@ IUSE=""
# break cyclic dependencies, test suite requires porting to >=QC-2.11
RESTRICT=test
RDEPEND=">=dev-lang/ghc-8.8.1:="
RDEPEND=">=dev-lang/ghc-8.8.1:= <dev-lang/ghc-8.10:="
DEPEND="${RDEPEND}
"

Binary file not shown.

@ -15,7 +15,7 @@ SRC_URI="https://gitweb.gentoo.org/proj/${PN}.git/snapshot/${P}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ppc64 sparc x86 ~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
KEYWORDS="amd64 ~arm arm64 ppc64 sparc x86 ~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
python_prepare_all() {
hprefixify src/py/buildparser src/py/findclass setup.py

@ -5,4 +5,5 @@
<email>java@gentoo.org</email>
<name>Java</name>
</maintainer>
<stabilize-allarches/>
</pkgmetadata>

@ -3,9 +3,7 @@ DIST apache-tomcat-5.5.36-src.tar.gz 3743113 BLAKE2B dbfcfd123a23b0ceb9f1fdd936e
DIST apache-tomcat-6.0.53-src.tar.gz 3522914 BLAKE2B 054b097c16861abaa8bdbeba713b49bc1dfcff573bb3f4bd0ff5807c33a2a0fb991af618f6e11e5b3ce3fa55c589fc6569342cab5d5a00349c79bc7061d81e40 SHA512 915a0a18f5c2883625c9441eed6465973eff4f6bf41e08e925c7edaea89ef8f6ee9476d3e06fa38228d4bcb4decaf53e3a7bdb7ec7e899e6250db3e12a9f5f2c
DIST apache-tomcat-7.0.106-src.tar.gz 5302091 BLAKE2B f60975ef5570501b03e71645969170c44450f2b56f37688001ad1b4dce3a394f6800e9b28a8fabf59241116345fb7e2a287441f3eace020bc5c0203d57630c91 SHA512 5ce5a5af93c58e69c4758c2c0dedeadeceb6be920421b9d3b3d071d32fc8eb59ba8312c98d037b8434fe43d57a9f720ad8790de29a26ed2959f6c761fe1fd573
DIST apache-tomcat-7.0.107-src.tar.gz 5312698 BLAKE2B 1f2712ddce6aa604692aaf6a6c706469d3dbcb2266a99e62346c15b8347fff573608440473be8e20b8632a431f8838dd29f24f6bf630a13d262c444be68e0d2c SHA512 820923697c487367786c595d3aeaa58981d25b56529c6739b9388ad771f3264e6995f7659805cc5b2ef9456dbd42bad92ad2cfa3c7f741920a5b7bff2cc1bb1b
DIST apache-tomcat-8.5.59-src.tar.gz 5787634 BLAKE2B 8ca1aa8b4d12d0e73c0d7937e906530037168ac349b196e172935332e632b1e9ab15379f532cb8fb1b2f853d01567332af9c031393882c833dcea65f9e626b09 SHA512 bed80e86c4dc972fd6ad414a804ed2bffc797e22b0a5e0e6e93c8540fb87cffb2fd2f1f8d97873a3ee24397f7961a8fdeb6756c542a532e4b73468bccec6e626
DIST apache-tomcat-8.5.60-src.tar.gz 5837412 BLAKE2B 0c2200412900f7f6d318051333b15b8c6236e00f6194c21fc45bb95b565c4146e2682b879f3a293de3ab65524013f786a7f69dd7e91f1c4cc903179075253cc4 SHA512 43222e5d04b3de400429d6f1792d418172b6ff15dcc17e392cd66a5444d740a323b9c426a9f39678b3460452545fda4d784f56961d5ea56b9c0e1ca466d49040
DIST apache-tomcat-8.5.61-src.tar.gz 5840559 BLAKE2B 18e1505b6b7d8e1a024d9f834d33ef105a16e6fc1f9e80abd3e6e88b2326597b9973e13c2ebc030a1db4a2d4dc5572d195b9f61db6cb7bf51e97cbfaa121678a SHA512 fd6bb5926b5e7cf44f359c93dadc4edd87fa5f2e26fb0fb3a9bc0a5c89ae4d844d66872055e1b441392cf03d7690aca3429b66afd8334319784f089f821d8c22
DIST apache-tomcat-9.0.38-src.tar.gz 5948083 BLAKE2B ac076684f10a51bf0e0b5b0dbf18ee476ec900bead0089010de7b4a7d380a1e18035eaa0d0f661c863aa53491e51f719c2a5985e4791bcc9dada4c421db39fe7 SHA512 13c79abed71ead564b108ec8a046e78374611acd906f4b6e775ac0427446117192be6b25f29894e625e2dc13f79abbc97bc52b32120ce5701cbe0f5ae05bc57b
DIST apache-tomcat-9.0.40-src.tar.gz 6017562 BLAKE2B 1c90511911363bb3b154124382f6401851c3a0e7925e06cc8f2b4f02a7b4c1c59bc75007a8b387f06742cbeca7f840b6860d84dc7c6fdb1e7774b22dbca6082f SHA512 61b8e191315cee2bc0437013dbe7d1fb3451182e0b316fb377581c7d47a59cefb7f2ff30d96a2d6326a99c86f4151b26d1ef76bda5029b30d81c8297a0b362fb
DIST apache-tomcat-9.0.41-src.tar.gz 6022059 BLAKE2B 6e97390aec956c16f271e57a2fa8805b6f49f593434f0dff8d82e14bc9abc199b00a7523dbb8da335a7ffa9dfee6790430c30f8b0ee90bcd133694c8da42197f SHA512 094e7cbd2519a4b812a2ca865f92802ece3385a20826c5e29b5f7cda8b9265d01ede6f598999f8aa2f1b04bcaca2e67e3f0132781b3f22007356df49ab6b1838

@ -1,39 +0,0 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
JAVA_PKG_IUSE="source"
inherit eutils java-pkg-2 java-ant-2
MY_A="apache-${P}-src"
MY_P="${MY_A/-servlet-api/}"
DESCRIPTION="Tomcat's Servlet API 3.1/JSP API 2.3/EL API 3.0 implementation"
HOMEPAGE="https://tomcat.apache.org/"
SRC_URI="mirror://apache/tomcat/tomcat-8/v${PV}/src/${MY_P}.tar.gz"
LICENSE="Apache-2.0"
SLOT="3.1"
KEYWORDS="amd64 ~arm ~arm64 ppc64 x86 ~amd64-linux ~x86-linux ~x64-solaris ~x86-solaris"
IUSE=""
DEPEND=">=virtual/jdk-1.8"
RDEPEND=">=virtual/jre-1.8"
S="${WORKDIR}/${MY_P}/"
src_prepare() {
default
cp "${FILESDIR}/${SLOT}-build.xml" build.xml || die "Could not replace build.xml"
rm -fR */*/build.xml
einfo "Removing bundled jars and classes"
find "${S}" '(' -name '*.class' -o -name '*.jar' ')' -exec rm -frv {} +
java-pkg-2_src_prepare
}
src_install() {
java-pkg_dojar "${S}"/output/build/lib/*.jar
use source && java-pkg_dosrc java/javax/servlet/
}

@ -1,39 +0,0 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
JAVA_PKG_IUSE="source"
inherit eutils java-pkg-2 java-ant-2
MY_A="apache-${PN}-${PV}-src"
MY_P="${MY_A/-servlet-api/}"
DESCRIPTION="Tomcat's Servlet API 4.0/JSP API 2.3/EL API 3.0 implementation"
HOMEPAGE="https://tomcat.apache.org/"
SRC_URI="mirror://apache/tomcat/tomcat-9/v${PV}/src/${MY_P}.tar.gz"
LICENSE="Apache-2.0"
SLOT="4.0"
KEYWORDS="amd64 ~arm ~arm64 x86 ~amd64-linux ~x86-linux ~x64-solaris ~x86-solaris"
IUSE=""
DEPEND=">=virtual/jdk-1.8"
RDEPEND=">=virtual/jre-1.8"
S="${WORKDIR}/${MY_P}/"
src_prepare() {
default
cp "${FILESDIR}/${SLOT}-build.xml" build.xml || die "Could not replace build.xml"
rm -fR */*/build.xml
einfo "Removing bundled jars and classes"
find "${S}" '(' -name '*.class' -o -name '*.jar' ')' -exec rm -frv {} +
java-pkg-2_src_prepare
}
src_install() {
java-pkg_dojar "${S}"/output/build/lib/*.jar
use source && java-pkg_dosrc java/javax/servlet/
}

Binary file not shown.

@ -15,7 +15,7 @@ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~
IUSE="+deprecated readline static"
RDEPEND="readline? ( >=sys-libs/readline-6.2_p5-r1:0=[${MULTILIB_USEDEP}] )
app-eselect/eselect-lua
>=app-eselect/eselect-lua-3
!dev-lang/lua:0"
DEPEND="${RDEPEND}
sys-devel/libtool"
@ -140,6 +140,8 @@ multilib_src_test() {
}
pkg_postinst() {
eselect lua set --if-unset "${PN}${SLOT}"
if has_version "app-editor/emacs"; then
if ! has_version "app-emacs/lua-mode"; then
einfo "Install app-emacs/lua-mode for lua support for emacs"

@ -21,7 +21,7 @@ IUSE="+deprecated readline static test test-complete"
RESTRICT="!test? ( test )"
RDEPEND="readline? ( sys-libs/readline:0= )
app-eselect/eselect-lua
>=app-eselect/eselect-lua-3
!dev-lang/lua:0"
DEPEND="${RDEPEND}
sys-devel/libtool"
@ -192,6 +192,8 @@ src_test() {
}
pkg_postinst() {
eselect lua set --if-unset "${PN}${SLOT}"
if has_version "app-editor/emacs"; then
if ! has_version "app-emacs/lua-mode"; then
einfo "Install app-emacs/lua-mode for lua support for emacs"

@ -21,7 +21,7 @@ IUSE="+deprecated readline static test test-complete"
RESTRICT="!test? ( test )"
RDEPEND="readline? ( sys-libs/readline:0= )
app-eselect/eselect-lua
>=app-eselect/eselect-lua-3
!dev-lang/lua:0"
DEPEND="${RDEPEND}
sys-devel/libtool"
@ -192,6 +192,8 @@ src_test() {
}
pkg_postinst() {
eselect lua set --if-unset "${PN}${SLOT}"
if has_version "app-editor/emacs"; then
if ! has_version "app-emacs/lua-mode"; then
einfo "Install app-emacs/lua-mode for lua support for emacs"

@ -18,7 +18,7 @@ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~
IUSE="+deprecated readline static test test-complete"
COMMON_DEPEND="
app-eselect/eselect-lua
>=app-eselect/eselect-lua-3
readline? ( sys-libs/readline:0= )
!dev-lang/lua:0"
DEPEND="${COMMON_DEPEND}"
@ -189,6 +189,8 @@ src_test() {
}
pkg_postinst() {
eselect lua set --if-unset "${PN}${SLOT}"
if has_version "app-editor/emacs"; then
if ! has_version "app-emacs/lua-mode"; then
einfo "Install app-emacs/lua-mode for lua support for emacs"

@ -0,0 +1,174 @@
Backport of https://git.php.net/?p=php-src.git;a=commit;h=ef1e4891b47949c8dc0f9482eef9454a0ecdfa1d
--- a/Zend/tests/bug52361.phpt
+++ b/Zend/tests/bug52361.phpt
@@ -25,9 +25,8 @@ try {
--EXPECTF--
1. Exception: aaa in %sbug52361.php:5
Stack trace:
-#0 %sbug52361.php(13): aaa->__destruct()
-#1 %sbug52361.php(16): bbb()
-#2 {main}
+#0 %sbug52361.php(16): aaa->__destruct()
+#1 {main}
2. Exception: bbb in %sbug52361.php:13
Stack trace:
#0 %sbug52361.php(16): bbb()
--- /dev/null
+++ b/Zend/tests/bug76047.phpt
@@ -0,0 +1,68 @@
+--TEST--
+Bug #76047: Use-after-free when accessing already destructed backtrace arguments
+--FILE--
+<?php
+
+class Vuln {
+ public $a;
+ public function __destruct() {
+ unset($this->a);
+ $backtrace = (new Exception)->getTrace();
+ var_dump($backtrace);
+ }
+}
+
+function test($arg) {
+ $arg = str_shuffle(str_repeat('A', 79));
+ $vuln = new Vuln();
+ $vuln->a = $arg;
+}
+
+function test2($arg) {
+ $$arg = 1; // Trigger symbol table
+ $arg = str_shuffle(str_repeat('A', 79));
+ $vuln = new Vuln();
+ $vuln->a = $arg;
+}
+
+test('x');
+test2('x');
+
+?>
+--EXPECTF--
+array(1) {
+ [0]=>
+ array(6) {
+ ["file"]=>
+ string(%d) "%s"
+ ["line"]=>
+ int(%d)
+ ["function"]=>
+ string(10) "__destruct"
+ ["class"]=>
+ string(4) "Vuln"
+ ["type"]=>
+ string(2) "->"
+ ["args"]=>
+ array(0) {
+ }
+ }
+}
+array(1) {
+ [0]=>
+ array(6) {
+ ["file"]=>
+ string(%d) "%s"
+ ["line"]=>
+ int(%d)
+ ["function"]=>
+ string(10) "__destruct"
+ ["class"]=>
+ string(4) "Vuln"
+ ["type"]=>
+ string(2) "->"
+ ["args"]=>
+ array(0) {
+ }
+ }
+}
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -2366,9 +2366,9 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY)
uint32_t call_info = EX_CALL_INFO();
if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP|ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS|ZEND_CALL_ALLOCATED)) == 0)) {
+ EG(current_execute_data) = EX(prev_execute_data);
i_free_compiled_variables(execute_data);
- EG(current_execute_data) = EX(prev_execute_data);
if (UNEXPECTED(call_info & ZEND_CALL_RELEASE_THIS)) {
zend_object *object = Z_OBJ(execute_data->This);
#if 0
@@ -2394,12 +2394,12 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY)
LOAD_NEXT_OPLINE();
ZEND_VM_LEAVE();
} else if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP)) == 0)) {
+ EG(current_execute_data) = EX(prev_execute_data);
i_free_compiled_variables(execute_data);
if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) {
zend_clean_and_cache_symbol_table(EX(symbol_table));
}
- EG(current_execute_data) = EX(prev_execute_data);
/* Free extra args before releasing the closure,
* as that may free the op_array. */
@@ -2449,6 +2449,7 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY)
ZEND_VM_LEAVE();
} else {
if (EXPECTED((call_info & ZEND_CALL_CODE) == 0)) {
+ EG(current_execute_data) = EX(prev_execute_data);
i_free_compiled_variables(execute_data);
if (UNEXPECTED(call_info & (ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS))) {
if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) {
@@ -2456,7 +2457,6 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY)
}
zend_vm_stack_free_extra_args_ex(call_info, execute_data);
}
- EG(current_execute_data) = EX(prev_execute_data);
if (UNEXPECTED(call_info & ZEND_CALL_CLOSURE)) {
OBJ_RELEASE((zend_object*)EX(func)->op_array.prototype);
}
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -434,9 +434,9 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_
uint32_t call_info = EX_CALL_INFO();
if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP|ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS|ZEND_CALL_ALLOCATED)) == 0)) {
+ EG(current_execute_data) = EX(prev_execute_data);
i_free_compiled_variables(execute_data);
- EG(current_execute_data) = EX(prev_execute_data);
if (UNEXPECTED(call_info & ZEND_CALL_RELEASE_THIS)) {
zend_object *object = Z_OBJ(execute_data->This);
#if 0
@@ -462,12 +462,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_
LOAD_NEXT_OPLINE();
ZEND_VM_LEAVE();
} else if (EXPECTED((call_info & (ZEND_CALL_CODE|ZEND_CALL_TOP)) == 0)) {
+ EG(current_execute_data) = EX(prev_execute_data);
i_free_compiled_variables(execute_data);
if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) {
zend_clean_and_cache_symbol_table(EX(symbol_table));
}
- EG(current_execute_data) = EX(prev_execute_data);
/* Free extra args before releasing the closure,
* as that may free the op_array. */
@@ -517,6 +517,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_
ZEND_VM_LEAVE();
} else {
if (EXPECTED((call_info & ZEND_CALL_CODE) == 0)) {
+ EG(current_execute_data) = EX(prev_execute_data);
i_free_compiled_variables(execute_data);
if (UNEXPECTED(call_info & (ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS))) {
if (UNEXPECTED(call_info & ZEND_CALL_HAS_SYMBOL_TABLE)) {
@@ -524,7 +525,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_
}
zend_vm_stack_free_extra_args_ex(call_info, execute_data);
}
- EG(current_execute_data) = EX(prev_execute_data);
if (UNEXPECTED(call_info & ZEND_CALL_CLOSURE)) {
OBJ_RELEASE((zend_object*)EX(func)->op_array.prototype);
}

@ -157,6 +157,7 @@ RESTRICT="!test? ( test )"
PATCHES=(
"${FILESDIR}/php-freetype-2.9.1.patch"
"${FILESDIR}/php-7.2.13-intl-use-icu-namespace.patch"
"${FILESDIR}/php-7.2.34-use-after-free-bug76047.patch"
)
PHP_MV="$(ver_cut 1)"

@ -8,6 +8,7 @@ DIST Python-3.7.9.tar.xz 17389636 BLAKE2B 484833aa2aa4e29051a02969294f72099ff6f1
DIST Python-3.8.4.tar.xz 18020412 BLAKE2B cfcfb293c413b25fc3ca48116cf8ffaba7bee18e9af9accf26be9b4373a0c62dd8e9da70e5a8a38ba6da4d1afbdbd589ae5ea4b618b65130ae061698b445908c SHA512 37a36d014a8372742be9d0bd9dd3a275e100dc21b1515c145bc62425d4d157327b6e63ad99bc888c0b36c1da4c05676c40eb086e75072d1906e3210ec3043dcb
DIST Python-3.8.5.tar.xz 18019640 BLAKE2B bb3e0566afe28759e4ab129ad0986a0fc5103514f2e2b22ff4aa3973c3173ebdd24d4267fbaf903841814a611fd9ea122673e5a1918934366e5c0efaef9d7517 SHA512 460cee65d7df7150694590575502d7f22e548ebfc99c8f8b363eef8bf30ee72e58d8ffacb1d607824f877f880eb9fd6775a508388029583e1e1df3380f3f9587
DIST Python-3.8.6.tar.xz 18233864 BLAKE2B c8a8ef6055e344dda30eb808804cfa62016b4f840257cffd5a495e5932f5696e50579d49b8181a487c9cd4a89bdb95656e80981039783a21d20f7980aa2c9883 SHA512 22faec84f6e172e1ac7c6bd6fd37e9b6ae4afc91cf5136aa8cac8ebbed8d18793f9196e8749b8ccc43447cb6c41cb450f65ea72dd363c06dfaeb14e0455f5560
DIST Python-3.8.7.tar.xz 18261096 BLAKE2B 6ac20efef41e828cb796aabcb7808400d494b9b48759950c8c15ee90762394f6763163d8e37ab407c1c79ebb9cda09189eaa969a75f96c86a96ccee962443924 SHA512 6a27d8eab3076930df46b0cf127f9b664f8d4147349b2b98132f464deb7f69d87e0167e8ee8e6c64249125ad73760d965ecbc81c252b63a1e7aac95594c62b74
DIST Python-3.8.7rc1.tar.xz 18258688 BLAKE2B cd18abf3a2f97856581735fc6ab98882c3839edd84f736b2f681a227694319f410154201e5e09938ec45ba00b69a593737da22263560080da72625f8611f14c6 SHA512 0c42622433b968dc0943894bff6e90603bdfc4e49ab4373e2686a158e1d4b3450e60aa16d8203ce3d0e0e8bb0ebcaad281ccd7eb03b355eeeb7c811a4cd799ec
DIST Python-3.9.0.tar.xz 18866140 BLAKE2B 8e12b64e187a65461473ac3b281dc489f0abac586e0755f6dbeceb236b34bdc008085eeac9ee1a19d76f5ec6a2fbda623985454c9d0164c4888a97b8cd940034 SHA512 b141039c9701a8cb0d15cd11a279153077524af4d0599e7d2c7279d4c18d05fda06b33ef82342d875de996c7117b7dc6eb154dc3669d38a1efa99801aeec6c5e
DIST Python-3.9.1.tar.xz 18897104 BLAKE2B bcbce176510e8e7c6ba6070588bedc52121c21c5271f59b3d629dfb542c51ee62622b2ca53a6e2041f1a51b2d089368cc4de9bb749e8ebad9a2c4eb4de83538e SHA512 b90029d6825751685983e9dcf0e0ec9e46f18e6c7d37b0dd7a245a94316f8c0090308ad7c2b2b49ed2514b0b909177231dd5bcad03031bf4624e37136fcf8019

@ -0,0 +1,355 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
WANT_LIBTOOL="none"
inherit autotools flag-o-matic multiprocessing pax-utils \
python-utils-r1 toolchain-funcs
MY_P="Python-${PV}"
PYVER=$(ver_cut 1-2)
PATCHSET="python-gentoo-patches-3.8.6"
DESCRIPTION="An interpreted, interactive, object-oriented programming language"
HOMEPAGE="https://www.python.org/"
SRC_URI="https://www.python.org/ftp/python/${PV}/${MY_P}.tar.xz
https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz"
S="${WORKDIR}/${MY_P}"
LICENSE="PSF-2"
SLOT="${PYVER}"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="bluetooth build examples gdbm hardened ipv6 libressl +ncurses +readline sqlite +ssl test tk wininst +xml"
RESTRICT="!test? ( test )"
# Do not add a dependency on dev-lang/python to this ebuild.
# If you need to apply a patch which requires python for bootstrapping, please
# run the bootstrap code on your dev box and include the results in the
# patchset. See bug 447752.
RDEPEND="app-arch/bzip2:=
app-arch/xz-utils:=
dev-libs/libffi:=
sys-apps/util-linux:=
>=sys-libs/zlib-1.1.3:=
virtual/libcrypt:=
virtual/libintl
gdbm? ( sys-libs/gdbm:=[berkdb] )
ncurses? ( >=sys-libs/ncurses-5.2:= )
readline? ( >=sys-libs/readline-4.1:= )
sqlite? ( >=dev-db/sqlite-3.3.8:3= )
ssl? (
!libressl? ( dev-libs/openssl:= )
libressl? ( dev-libs/libressl:= )
)
tk? (
>=dev-lang/tcl-8.0:=
>=dev-lang/tk-8.0:=
dev-tcltk/blt:=
dev-tcltk/tix
)
xml? ( >=dev-libs/expat-2.1:= )"
# bluetooth requires headers from bluez
DEPEND="${RDEPEND}
bluetooth? ( net-wireless/bluez )
test? ( app-arch/xz-utils[extra-filters(+)] )
virtual/pkgconfig
!sys-devel/gcc[libffi(-)]"
RDEPEND+=" !build? ( app-misc/mime-types )"
PDEPEND=">=app-eselect/eselect-python-20140125-r1"
src_prepare() {
# Ensure that internal copies of expat, libffi and zlib are not used.
rm -fr Modules/expat || die
rm -fr Modules/_ctypes/libffi* || die
rm -fr Modules/zlib || die
local PATCHES=(
"${WORKDIR}/${PATCHSET}"
)
default
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
# force correct number of jobs
# https://bugs.gentoo.org/737660
local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
eautoreconf
}
src_configure() {
local disable
# disable automagic bluetooth headers detection
use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no
use gdbm || disable+=" gdbm"
use ncurses || disable+=" _curses _curses_panel"
use readline || disable+=" readline"
use sqlite || disable+=" _sqlite3"
use ssl || export PYTHON_DISABLE_SSL="1"
use tk || disable+=" _tkinter"
use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
export PYTHON_DISABLE_MODULES="${disable}"
if ! use xml; then
ewarn "You have configured Python without XML support."
ewarn "This is NOT a recommended configuration as you"
ewarn "may face problems parsing any XML documents."
fi
if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
fi
if [[ "$(gcc-major-version)" -ge 4 ]]; then
append-flags -fwrapv
fi
filter-flags -malign-double
# https://bugs.gentoo.org/show_bug.cgi?id=50309
if is-flagq -O3; then
is-flagq -fstack-protector-all && replace-flags -O3 -O2
use hardened && replace-flags -O3 -O2
fi
# https://bugs.gentoo.org/700012
if is-flagq -flto || is-flagq '-flto=*'; then
append-cflags $(test-flags-CC -ffat-lto-objects)
fi
# Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
tc-export CXX
# Set LDFLAGS so we link modules with -lpython3.2 correctly.
# Needed on FreeBSD unless Python 3.2 is already installed.
# Please query BSD team before removing this!
append-ldflags "-L."
# Fix implicit declarations on cross and prefix builds. Bug #674070.
use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
local dbmliborder
if use gdbm; then
dbmliborder+="${dbmliborder:+:}gdbm"
fi
local myeconfargs=(
# glibc-2.30 removes it; since we can't cleanly force-rebuild
# Python on glibc upgrade, remove it proactively to give
# a chance for users rebuilding python before glibc
ac_cv_header_stropts_h=no
--enable-shared
$(use_enable ipv6)
--infodir='${prefix}/share/info'
--mandir='${prefix}/share/man'
--with-computed-gotos
--with-dbmliborder="${dbmliborder}"
--with-libc=
--enable-loadable-sqlite-extensions
--without-ensurepip
--with-system-expat
--with-system-ffi
)
OPT="" econf "${myeconfargs[@]}"
}
src_compile() {
# Ensure sed works as expected
# https://bugs.gentoo.org/594768
local -x LC_ALL=C
emake CPPFLAGS= CFLAGS= LDFLAGS=
# Work around bug 329499. See also bug 413751 and 457194.
if has_version dev-libs/libffi[pax_kernel]; then
pax-mark E python
else
pax-mark m python
fi
}
src_test() {
# Tests will not work when cross compiling.
if tc-is-cross-compiler; then
elog "Disabling tests due to crosscompiling."
return
fi
# Skip failing tests.
local skipped_tests="gdb"
for test in ${skipped_tests}; do
mv "${S}"/Lib/test/test_${test}.py "${T}"
done
# bug 660358
local -x COLUMNS=80
local -x PYTHONDONTWRITEBYTECODE=
local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
emake test EXTRATESTOPTS="-u-network -j${jobs}" \
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
local result=$?
for test in ${skipped_tests}; do
mv "${T}/test_${test}.py" "${S}"/Lib/test
done
elog "The following tests have been skipped:"
for test in ${skipped_tests}; do
elog "test_${test}.py"
done
elog "If you would like to run them, you may:"
elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'"
elog "and run the tests separately."
if [[ ${result} -ne 0 ]]; then
die "emake test failed"
fi
}
src_install() {
local libdir=${ED}/usr/lib/python${PYVER}
emake DESTDIR="${D}" altinstall
# Remove static library
rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
sed \
-e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
-e "s/\(PY_LDFLAGS=\).*/\1/" \
-i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed"
# Fix collisions between different slots of Python.
rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
# Cheap hack to get version with ABIFLAGS
local abiver=$(cd "${ED}/usr/include"; echo python*)
if [[ ${abiver} != python${PYVER} ]]; then
# Replace python3.X with a symlink to python3.Xm
rm "${ED}/usr/bin/python${PYVER}" || die
dosym "${abiver}" "/usr/bin/python${PYVER}"
# Create python3.X-config symlink
dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
# Create python-3.5m.pc symlink
dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
fi
# python seems to get rebuilt in src_install (bug 569908)
# Work around it for now.
if has_version dev-libs/libffi[pax_kernel]; then
pax-mark E "${ED}/usr/bin/${abiver}"
else
pax-mark m "${ED}/usr/bin/${abiver}"
fi
use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || die
dodoc Misc/{ACKS,HISTORY,NEWS}
if use examples; then
docinto examples
find Tools -name __pycache__ -exec rm -fr {} + || die
dodoc -r Tools
fi
insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
local libname=$(printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | \
emake --no-print-directory -s -f - 2>/dev/null)
newins "${S}"/Tools/gdb/libpython.py "${libname}"-gdb.py
newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
sed \
-e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
-e "s:@PYDOC@:pydoc${PYVER}:" \
-i "${ED}/etc/conf.d/pydoc-${PYVER}" \
"${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
local -x EPYTHON=python${PYVER}
# if not using a cross-compiler, use the fresh binary
if ! tc-is-cross-compiler; then
local -x PYTHON=./python
local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
else
local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
fi
echo "EPYTHON='${EPYTHON}'" > epython.py || die
python_domodule epython.py
# python-exec wrapping support
local pymajor=${PYVER%.*}
local scriptdir=${D}$(python_get_scriptdir)
mkdir -p "${scriptdir}" || die
# python and pythonX
ln -s "../../../bin/${abiver}" \
"${scriptdir}/python${pymajor}" || die
ln -s "python${pymajor}" "${scriptdir}/python" || die
# python-config and pythonX-config
# note: we need to create a wrapper rather than symlinking it due
# to some random dirname(argv[0]) magic performed by python-config
cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
#!/bin/sh
exec "${abiver}-config" "\${@}"
EOF
chmod +x "${scriptdir}/python${pymajor}-config" || die
ln -s "python${pymajor}-config" \
"${scriptdir}/python-config" || die
# 2to3, pydoc
ln -s "../../../bin/2to3-${PYVER}" \
"${scriptdir}/2to3" || die
ln -s "../../../bin/pydoc${PYVER}" \
"${scriptdir}/pydoc" || die
# idle
if use tk; then
ln -s "../../../bin/idle${PYVER}" \
"${scriptdir}/idle" || die
fi
}
pkg_preinst() {
if has_version "<${CATEGORY}/${PN}-${PYVER}" && ! has_version ">=${CATEGORY}/${PN}-${PYVER}_alpha"; then
python_updater_warning="1"
fi
}
eselect_python_update() {
if [[ -z "$(eselect python show)" || \
! -f "${EROOT}/usr/bin/$(eselect python show)" ]]; then
eselect python update
fi
if [[ -z "$(eselect python show --python${PV%%.*})" || \
! -f "${EROOT}/usr/bin/$(eselect python show --python${PV%%.*})" ]]
then
eselect python update --python${PV%%.*}
fi
}
pkg_postinst() {
eselect_python_update
if [[ "${python_updater_warning}" == "1" ]]; then
ewarn "You have just upgraded from an older version of Python."
ewarn
ewarn "Please adjust PYTHON_TARGETS (if so desired), and run emerge with the --newuse or --changed-use option to rebuild packages installing python modules."
fi
}
pkg_postrm() {
eselect_python_update
}

@ -1,9 +1,6 @@
DIST firefox-68.0-patches-15.tar.xz 16060 BLAKE2B f9e6cd58ea51bed1af90a9d30fd551dc7e939afcd1b4d00de1271bd4bda94021c6f1799fd9945962c14ffa1fd0b6a6429369c4e45efc2000f179b9b2e46971e7 SHA512 9cb2479637dd8b84e0ab68dc0fe144acd2dc74feca282fd3c4b485ca6f0de8190244587622713a5421b243ccda153f738e9a8f463e87e15e93e9b725d943e128
DIST firefox-68.12.0esr.source.tar.xz 313856956 BLAKE2B eeaa4acc9fabf15ec1b313170a30cee8e1fc10a8b08512b915b83b7d6a81c09b365733ed94638bd434864fd7b0cb8cbf1bc2e43441be69e31117e8e6a099234c SHA512 839b02422e4c87bdb12e0995cd35ca8c1996f3fba00bbb46b419e46b67df5ec48a264cb14632db777ce29166ee4fdcb06e2ee3ce847e64328c58c9a2f9129f4c
DIST firefox-78.4.1esr.source.tar.xz 334673424 BLAKE2B 3ba8bf545c4c2b92914bf7f63b539ba61dc2ee6c14fb8995a6d75adb4bd11988f1d47d2c64639cbecf7a4b01b99085e63af4eb3afc7a27047f03048ffa9c2c2d SHA512 287096ad67e86b307554475c3b5d1003a325d6d13987bfbec2ec79aa0f8004dce1614ab62585ba5cf153545618906ab640cd4657d5a910085afb3d8ceb46e8de
DIST firefox-78.5.0esr.source.tar.xz 333995288 BLAKE2B 35140afb6b4d15052858e7864753ca74099edb24ed5e459f1f48114f0946f5e007486b5561ba9a545566033d71a69f0e6163dd17204cab717c441323972f089e SHA512 0d16013342b6e8d67adb5c111177ea4796db4fb593da8aa254d0d95bdf33fad798c2dbb235d44db4177c32dd2d7b3ac26b938b476342753ee8d6c83d968d0281
DIST firefox-78.6.0esr.source.tar.xz 338098664 BLAKE2B 9d082b6104bffbd0d918dc1adf2a01ac32613d8048faf399177834c4949714a00c1f4383b778a21d6b6684296d8f9bd44fa547ee2507a8631d206e3764d2ceeb SHA512 a1e2d6af0020784d00ed3cb4d778c136685e7c2f6ae536cc270fbd331d51d483d17dff9acd7ad8e6b3b231b9df894c146092889357b23715814a080c6f08d11a
DIST firefox-78esr-patches-04.tar.xz 171504 BLAKE2B d51e55c255d1f5cfa0c7c030b1ea50cb54951bed3bc21b21f5cb3b1e4b8b2ad406b3d12db2baabd4a90e3c88a38f187f277e7a4afe441ea6cf82c48f84bb0ac5 SHA512 6f00ec898fafb34d7c7e0ff2a6fb5c1cbf1205458845e14eb39c131125c5bf6b2418fea1050bb72449ec40e18fd775fc844437ce0290281d66961de40a53235a
DIST firefox-78esr-patches-07.tar.xz 66156 BLAKE2B 8f69883432dcbd484b1fb15e3fde1630b1424e502ba78d9ec3cbe70cb2676a6876853d3477c8bfe35e92bca91b200e2d14543de1778d895676a52d2608109af2 SHA512 b4a01d3499002bd33a7fb45a1a80e9e73ba27a0986b6bfa43b3482dd8d82a686a14ae0c5e013402c8c8f359a642632a40bf4c362a0e83a1f53b453914f42e3a7
DIST js185-1.0.0.tar.gz 6164605 BLAKE2B 76a37f0ceae05d3475853875bd0ce4be6e525e4114816f8f281ea6fc6b60a71060975a0fa1cb843f57ad1e2f842dfb26b24244fa0fd6c20f6ae2ebbe430f70be SHA512 2af7122a7c7007fd7b6668776fe1222515a810b3e43bbf0f76b8f94e1ef406ffd3fb5ccec393021b00274c05b38a77235bc8d6886994c56762fcaf0aa7cf6718
DIST mozjs-52.9.1pre1.tar.bz2 30178574 BLAKE2B 0920432b5140e78297a9bcbccb54268d75a223d5e75e4ff90b3b01aab4f7736b4a4e05c47b3a925ff0a74607a0abad3b6583c75d070ef5142009b20ebaf6e4bf SHA512 187b231b246a5ae09e55c0fef77866b316d75f38f4c2e066d5d4325d8da63433027020c929439cab46af3253ac63ab2f780223a8fd2c6ff535b3409bb6c4aa0f
@ -11,6 +8,5 @@ DIST mozjs-60.5.2.tar.bz2 32816585 BLAKE2B 45ac4c9646e1275faf60eeedbf486f802cd10
DIST spidermonkey-52.0-patches-1.tar.xz 3112 BLAKE2B d8f4c44cb2ae290fa51efc4725a2c1b3cd85dd9f04f4ccfa5681ba6df5f37f5d8d4ad6859316a70d0f7647ac2cee014d126f88b7d4ca74a82796f35b141200ef SHA512 5328403e3b9ecd1c456037e7cca374c2453d9331752c48b9466e498e22fd8d4ca6e1804e51140ee0be027fcef7d0c3f26822b1f569305a3b2f03209b7fb15499
DIST spidermonkey-60.0-patches-04.tar.xz 4428 BLAKE2B af78049cd9b3ee6a9b689e6253486c4670fd3b506faade7d745dafaa7af329c0bd15cd35e95528a4c96688230f4803130967fb09b97aae2bda0ce0f73acaaf3e SHA512 fb1326a81512146ba98773d4f7e0c4bc1bff0f076897c13f576fcf63b56f6965efeff633eea9160bca9f9bc4546505901084eabc33bc955de0b7ab3d6334387a
DIST spidermonkey-68.6.0-patches-04.tar.xz 5956 BLAKE2B b1250391a5173e676272d5926b710c06b0e9de1ff03b130a57fdac30f2deefbee3fa92250b37e28087572fe5cce73eb112ef4e1fb0c0401d6ecdb22ab9868998 SHA512 94575b11b4f006c6ee0c8d64b315734a173cecb68e9128ca61ba1a28177e3c149b8cf1f3b3c47a7a263fad8da6196fc0101df87392f016686a827e0cd24fdc74
DIST spidermonkey-78-patches-02.tar.xz 3432 BLAKE2B 3ac46306f1740e704ed1aa8cb0f2a963d0b94bee60349ce31bc0ac477942781c9cdfa1d791a22e31c9258ade5d955cf6d32696ced73247777a908cb3e5c464c2 SHA512 d94c33d327d07072aa5ca66135ab2100e86acf38e091bf5b9644c537f77fb734433246a2f4bf58bf76d884510bce565b6ab75c23472be7e9d1f566dc4e812b5c
DIST spidermonkey-78-patches-03.tar.xz 3732 BLAKE2B 5dc47527581c010994a102e6458119c762ec3836f57e403cbaac88c457f5f119bd75ae1a067307b20d229536f75db4b2b797408874d28156667ac63b61de8501 SHA512 f0921562dcd0ea519bf3f5ef2da43f87565e92493781d56e6e0b73d4124f41e7aadd34d8285bbb181f4286160dde0c9684920e98058f0683143a2687eb93cc1a
DIST spidermonkey-slot0-patches-02.tar.xz 10952 BLAKE2B fb7bf5cdac6c821a48d407ff172fe0ec7297e047d3b3bab952f226f413b83ea70325175b41c1680725ff588111b424efc97a0c66e392989da510c43d38528ff1 SHA512 cd62890c4b58658d99fc1b52f05ccb35c07da835b168bb9d5e6b219de5021122c199cc2255c5b0be01ef582f53dd51c9975921e6bde9f14e9b43536e2bee85f2

@ -1,303 +0,0 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
# Patch version
FIREFOX_PATCHSET="firefox-78esr-patches-04.tar.xz"
SPIDERMONKEY_PATCHSET="spidermonkey-78-patches-02.tar.xz"
PYTHON_COMPAT=( python3_{6..9} )
WANT_AUTOCONF="2.1"
inherit autotools check-reqs flag-o-matic multiprocessing python-any-r1 toolchain-funcs
MY_PN="mozjs"
MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
MY_MAJOR=$(ver_cut 1)
MOZ_ESR=yes
MOZ_PV=${PV}
MOZ_PV_SUFFIX=
if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
# Convert the ebuild version to the upstream Mozilla version
MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
fi
if [[ -n ${MOZ_ESR} ]] ; then
# ESR releases have slightly different version numbers
MOZ_PV="${MOZ_PV}esr"
fi
MOZ_PN="firefox"
MOZ_P="${MOZ_PN}-${MOZ_PV}"
MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
if [[ ${PV} == *_rc* ]] ; then
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
fi
PATCH_URIS=(
https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${FIREFOX_PATCHSET}
https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
)
SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
${PATCH_URIS[@]}"
DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
KEYWORDS="amd64 arm arm64 ~mips ppc64 ~s390 x86"
SLOT="78"
LICENSE="MPL-2.0"
IUSE="cpu_flags_arm_neon debug +jit lto test"
RESTRICT="!test? ( test )"
BDEPEND="${PYTHON_DEPS}
sys-devel/llvm
>=virtual/rust-1.41.0
virtual/pkgconfig"
CDEPEND=">=dev-libs/icu-67.1:=
>=dev-libs/nspr-4.25
sys-libs/readline:0=
>=sys-libs/zlib-1.2.3"
DEPEND="${CDEPEND}
test? (
$(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
)"
RDEPEND="${CDEPEND}"
S="${WORKDIR}/firefox-${MY_PV}/js/src"
python_check_deps() {
if use test ; then
has_version "dev-python/six[${PYTHON_USEDEP}]"
fi
}
pkg_pretend() {
if use test ; then
CHECKREQS_DISK_BUILD="7600M"
else
CHECKREQS_DISK_BUILD="6400M"
fi
check-reqs_pkg_pretend
}
pkg_setup() {
if use test ; then
CHECKREQS_DISK_BUILD="7600M"
else
CHECKREQS_DISK_BUILD="6400M"
fi
check-reqs_pkg_setup
python-any-r1_pkg_setup
# Build system is using /proc/self/oom_score_adj, bug #604394
addpredict /proc/self/oom_score_adj
if ! mountpoint -q /dev/shm ; then
# If /dev/shm is not available, configure is known to fail with
# a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
ewarn "/dev/shm is not mounted -- expect build failures!"
fi
}
src_prepare() {
pushd ../.. &>/dev/null || die
use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
eapply "${WORKDIR}"/firefox-patches
eapply "${WORKDIR}"/spidermonkey-patches
default
# Make LTO respect MAKEOPTS
sed -i \
-e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
build/moz.configure/lto-pgo.configure \
|| die "sed failed to set num_cores"
# sed-in toolchain prefix
sed -i \
-e "s/objdump/${CHOST}-objdump/" \
python/mozbuild/mozbuild/configure/check_debug_ranges.py \
|| die "sed failed to set toolchain prefix"
einfo "Removing pre-built binaries ..."
find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
MOZJS_BUILDDIR="${WORKDIR}/build"
mkdir "${MOZJS_BUILDDIR}" || die
popd &>/dev/null || die
eautoconf
}
src_configure() {
tc-export CC CXX LD AR RANLIB
cd "${MOZJS_BUILDDIR}" || die
# ../python/mach/mach/mixin/process.py fails to detect SHELL
export SHELL="${EPREFIX}/bin/bash"
local -a myeconfargs=(
--host="${CBUILD:-${CHOST}}"
--target="${CHOST}"
--disable-jemalloc
--disable-optimize
--disable-strip
--enable-readline
--enable-shared-js
--with-intl-api
--with-system-icu
--with-system-nspr
--with-system-zlib
--with-toolchain-prefix="${CHOST}-"
$(use_enable debug)
$(use_enable jit)
$(use_enable test tests)
)
if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
myeconfargs+=( --enable-rust-simd )
fi
# Modifications to better support ARM, bug 717344
if use cpu_flags_arm_neon ; then
myeconfargs+=( --with-fpu=neon )
if ! tc-is-clang ; then
# thumb options aren't supported when using clang, bug 666966
myeconfargs+=( --with-thumb=yes )
myeconfargs+=( --with-thumb-interwork=no )
fi
fi
# Tell build system that we want to use LTO
if use lto ; then
myeconfargs+=( --enable-lto )
fi
# LTO flag was handled via configure
filter-flags '-flto*'
# Forcing system-icu allows us to skip patching bundled ICU for PPC
# and other minor arches
ECONF_SOURCE="${S}" \
econf \
${myeconfargs[@]} \
XARGS="${EPREFIX}/usr/bin/xargs"
}
src_compile() {
cd "${MOZJS_BUILDDIR}" || die
default
}
src_test() {
if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then
einfo "Smoke-test successful, continuing with full test suite"
else
die "Smoke-test failed: did interpreter initialization fail?"
fi
local -a KNOWN_TESTFAILURES
KNOWN_TESTFAILURES+=( non262/Date/reset-time-zone-cache-same-offset.js )
KNOWN_TESTFAILURES+=( non262/Date/time-zone-path.js )
KNOWN_TESTFAILURES+=( non262/Date/time-zones-historic.js )
KNOWN_TESTFAILURES+=( non262/Date/time-zones-imported.js )
KNOWN_TESTFAILURES+=( non262/Date/toString-localized.js )
KNOWN_TESTFAILURES+=( non262/Date/toString-localized-posix.js )
KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/timeZone_backward_links.js )
KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/tz-environment-variable.js )
KNOWN_TESTFAILURES+=( non262/Intl/Locale/likely-subtags.js )
KNOWN_TESTFAILURES+=( test262/intl402/Locale/prototype/minimize/removing-likely-subtags-first-adds-likely-subtags.js )
if use x86 ; then
KNOWN_TESTFAILURES+=( non262/Date/timeclip.js )
KNOWN_TESTFAILURES+=( test262/built-ins/Number/prototype/toPrecision/return-values.js )
KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.1.js )
KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.2.js )
fi
if [[ $(tc-endian) == "big" ]] ; then
KNOWN_TESTFAILURES+=( test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js )
fi
echo "" > "${T}"/known_failures.list || die
local KNOWN_TESTFAILURE
for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do
echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list
done
PYTHONPATH="${S}/tests/lib" \
${PYTHON} \
"${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
--exclude-file="${T}"/known_failures.list \
"${MOZJS_BUILDDIR}"/js/src/js \
|| die
if use jit ; then
KNOWN_TESTFAILURES=()
echo "" > "${T}"/known_failures.list || die
for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do
echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list
done
PYTHONPATH="${S}/tests/lib" \
${PYTHON} \
"${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
--exclude-file="${T}"/known_failures.list \
"${MOZJS_BUILDDIR}"/js/src/js basic \
|| die
fi
}
src_install() {
cd "${MOZJS_BUILDDIR}" || die
default
# fix soname links
pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die
ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
popd &>/dev/null || die
# remove unneeded files
rm \
"${ED}"/usr/bin/js${MY_MAJOR}-config \
"${ED}"/usr/$(get_libdir)/libjs_static.ajs \
|| die
# fix permissions
chmod -x \
"${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
"${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \
|| die
}

@ -1,303 +0,0 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
# Patch version
FIREFOX_PATCHSET="firefox-78esr-patches-07.tar.xz"
SPIDERMONKEY_PATCHSET="spidermonkey-78-patches-02.tar.xz"
PYTHON_COMPAT=( python3_{6..9} )
WANT_AUTOCONF="2.1"
inherit autotools check-reqs flag-o-matic multiprocessing python-any-r1 toolchain-funcs
MY_PN="mozjs"
MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
MY_MAJOR=$(ver_cut 1)
MOZ_ESR=yes
MOZ_PV=${PV}
MOZ_PV_SUFFIX=
if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
# Convert the ebuild version to the upstream Mozilla version
MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
fi
if [[ -n ${MOZ_ESR} ]] ; then
# ESR releases have slightly different version numbers
MOZ_PV="${MOZ_PV}esr"
fi
MOZ_PN="firefox"
MOZ_P="${MOZ_PN}-${MOZ_PV}"
MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
if [[ ${PV} == *_rc* ]] ; then
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
fi
PATCH_URIS=(
https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${FIREFOX_PATCHSET}
https://dev.gentoo.org/~{whissi,polynomial-c,axs}/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
)
SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
${PATCH_URIS[@]}"
DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
KEYWORDS="amd64 arm arm64 ~mips ppc64 ~s390 x86"
SLOT="78"
LICENSE="MPL-2.0"
IUSE="cpu_flags_arm_neon debug +jit lto test"
RESTRICT="!test? ( test )"
BDEPEND="${PYTHON_DEPS}
sys-devel/llvm
>=virtual/rust-1.41.0
virtual/pkgconfig"
CDEPEND=">=dev-libs/icu-67.1:=
>=dev-libs/nspr-4.25
sys-libs/readline:0=
>=sys-libs/zlib-1.2.3"
DEPEND="${CDEPEND}
test? (
$(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
)"
RDEPEND="${CDEPEND}"
S="${WORKDIR}/firefox-${MY_PV}/js/src"
python_check_deps() {
if use test ; then
has_version "dev-python/six[${PYTHON_USEDEP}]"
fi
}
pkg_pretend() {
if use test ; then
CHECKREQS_DISK_BUILD="7600M"
else
CHECKREQS_DISK_BUILD="6400M"
fi
check-reqs_pkg_pretend
}
pkg_setup() {
if use test ; then
CHECKREQS_DISK_BUILD="7600M"
else
CHECKREQS_DISK_BUILD="6400M"
fi
check-reqs_pkg_setup
python-any-r1_pkg_setup
# Build system is using /proc/self/oom_score_adj, bug #604394
addpredict /proc/self/oom_score_adj
if ! mountpoint -q /dev/shm ; then
# If /dev/shm is not available, configure is known to fail with
# a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
ewarn "/dev/shm is not mounted -- expect build failures!"
fi
}
src_prepare() {
pushd ../.. &>/dev/null || die
use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
eapply "${WORKDIR}"/firefox-patches
eapply "${WORKDIR}"/spidermonkey-patches
default
# Make LTO respect MAKEOPTS
sed -i \
-e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \
build/moz.configure/lto-pgo.configure \
|| die "sed failed to set num_cores"
# sed-in toolchain prefix
sed -i \
-e "s/objdump/${CHOST}-objdump/" \
python/mozbuild/mozbuild/configure/check_debug_ranges.py \
|| die "sed failed to set toolchain prefix"
einfo "Removing pre-built binaries ..."
find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
MOZJS_BUILDDIR="${WORKDIR}/build"
mkdir "${MOZJS_BUILDDIR}" || die
popd &>/dev/null || die
eautoconf
}
src_configure() {
tc-export CC CXX LD AR RANLIB
cd "${MOZJS_BUILDDIR}" || die
# ../python/mach/mach/mixin/process.py fails to detect SHELL
export SHELL="${EPREFIX}/bin/bash"
local -a myeconfargs=(
--host="${CBUILD:-${CHOST}}"
--target="${CHOST}"
--disable-jemalloc
--disable-optimize
--disable-strip
--enable-readline
--enable-shared-js
--with-intl-api
--with-system-icu
--with-system-nspr
--with-system-zlib
--with-toolchain-prefix="${CHOST}-"
$(use_enable debug)
$(use_enable jit)
$(use_enable test tests)
)
if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
myeconfargs+=( --enable-rust-simd )
fi
# Modifications to better support ARM, bug 717344
if use cpu_flags_arm_neon ; then
myeconfargs+=( --with-fpu=neon )
if ! tc-is-clang ; then
# thumb options aren't supported when using clang, bug 666966
myeconfargs+=( --with-thumb=yes )
myeconfargs+=( --with-thumb-interwork=no )
fi
fi
# Tell build system that we want to use LTO
if use lto ; then
myeconfargs+=( --enable-lto )
fi
# LTO flag was handled via configure
filter-flags '-flto*'
# Forcing system-icu allows us to skip patching bundled ICU for PPC
# and other minor arches
ECONF_SOURCE="${S}" \
econf \
${myeconfargs[@]} \
XARGS="${EPREFIX}/usr/bin/xargs"
}
src_compile() {
cd "${MOZJS_BUILDDIR}" || die
default
}
src_test() {
if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then
einfo "Smoke-test successful, continuing with full test suite"
else
die "Smoke-test failed: did interpreter initialization fail?"
fi
local -a KNOWN_TESTFAILURES
KNOWN_TESTFAILURES+=( non262/Date/reset-time-zone-cache-same-offset.js )
KNOWN_TESTFAILURES+=( non262/Date/time-zone-path.js )
KNOWN_TESTFAILURES+=( non262/Date/time-zones-historic.js )
KNOWN_TESTFAILURES+=( non262/Date/time-zones-imported.js )
KNOWN_TESTFAILURES+=( non262/Date/toString-localized.js )
KNOWN_TESTFAILURES+=( non262/Date/toString-localized-posix.js )
KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/timeZone_backward_links.js )
KNOWN_TESTFAILURES+=( non262/Intl/DateTimeFormat/tz-environment-variable.js )
KNOWN_TESTFAILURES+=( non262/Intl/Locale/likely-subtags.js )
KNOWN_TESTFAILURES+=( test262/intl402/Locale/prototype/minimize/removing-likely-subtags-first-adds-likely-subtags.js )
if use x86 ; then
KNOWN_TESTFAILURES+=( non262/Date/timeclip.js )
KNOWN_TESTFAILURES+=( test262/built-ins/Number/prototype/toPrecision/return-values.js )
KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.1.js )
KNOWN_TESTFAILURES+=( test262/language/types/number/S8.5_A2.2.js )
fi
if [[ $(tc-endian) == "big" ]] ; then
KNOWN_TESTFAILURES+=( test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js )
fi
echo "" > "${T}"/known_failures.list || die
local KNOWN_TESTFAILURE
for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do
echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list
done
PYTHONPATH="${S}/tests/lib" \
${PYTHON} \
"${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
--exclude-file="${T}"/known_failures.list \
"${MOZJS_BUILDDIR}"/js/src/js \
|| die
if use jit ; then
KNOWN_TESTFAILURES=()
echo "" > "${T}"/known_failures.list || die
for KNOWN_TESTFAILURE in ${KNOWN_TESTFAILURES[@]} ; do
echo "${KNOWN_TESTFAILURE}" >> "${T}"/known_failures.list
done
PYTHONPATH="${S}/tests/lib" \
${PYTHON} \
"${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
--exclude-file="${T}"/known_failures.list \
"${MOZJS_BUILDDIR}"/js/src/js basic \
|| die
fi
}
src_install() {
cd "${MOZJS_BUILDDIR}" || die
default
# fix soname links
pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die
ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
popd &>/dev/null || die
# remove unneeded files
rm \
"${ED}"/usr/bin/js${MY_MAJOR}-config \
"${ED}"/usr/$(get_libdir)/libjs_static.ajs \
|| die
# fix permissions
chmod -x \
"${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
"${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \
|| die
}

@ -60,11 +60,11 @@ SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}
DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
KEYWORDS="amd64 ~arm ~arm64 ~mips ~ppc64 ~s390 x86"
KEYWORDS="amd64 arm arm64 ~mips ppc64 ~s390 x86"
SLOT="78"
LICENSE="MPL-2.0"
IUSE="+clang cpu_flags_arm_neon debug +jit lto test"
IUSE="clang cpu_flags_arm_neon debug +jit lto test"
RESTRICT="!test? ( test )"

Binary file not shown.

@ -0,0 +1,359 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{6,7,8,9} )
inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
MY_PV="$(ver_rs 1- _)"
MAJOR_V="$(ver_cut 1-2)"
DESCRIPTION="Boost Libraries for C++"
HOMEPAGE="https://www.boost.org/"
SRC_URI="https://dl.bintray.com/boostorg/release/${PV}/source/boost_${MY_PV}.tar.bz2"
LICENSE="Boost-1.0"
SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
IUSE="bzip2 context debug doc icu lzma +nls mpi numpy python static-libs +threads tools zlib zstd"
REQUIRED_USE="
mpi? ( threads )
python? ( ${PYTHON_REQUIRED_USE} )"
# the tests will never fail because these are not intended as sanity
# tests at all. They are more a way for upstream to check their own code
# on new compilers. Since they would either be completely unreliable
# (failing for no good reason) or completely useless (never failing)
# there is no point in having them in the ebuild to begin with.
RESTRICT="test"
RDEPEND="
!app-admin/eselect-boost
!dev-libs/boost-numpy
!<dev-libs/leatherman-1.12.0-r1
bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
!icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
python? (
${PYTHON_DEPS}
numpy? ( $(python_gen_cond_dep 'dev-python/numpy[${PYTHON_USEDEP}]' -3) )
)
zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
DEPEND="${RDEPEND}"
BDEPEND="=dev-util/boost-build-${MAJOR_V}*"
S="${WORKDIR}/${PN}_${MY_PV}"
PATCHES=(
"${FILESDIR}"/${PN}-1.71.0-disable_icu_rpath.patch
"${FILESDIR}"/${PN}-1.71.0-context-x32.patch
"${FILESDIR}"/${PN}-1.71.0-build-auto_index-tool.patch
# upstream unresponsive to pull request
# https://github.com/boostorg/python/pull/286
"${FILESDIR}"/${PN}-1.73-boost-python-cleanup.patch
# Boost.MPI's __init__.py doesn't work on Py3
"${FILESDIR}"/${PN}-1.73-boost-mpi-python-PEP-328.patch
# Remove annoying #pragma message
"${FILESDIR}"/${PN}-1.73-property-tree-include.patch
"${FILESDIR}"/${PN}-1.74-CVE-2012-2677.patch
)
python_bindings_needed() {
multilib_is_native_abi && use python
}
tools_needed() {
multilib_is_native_abi && use tools
}
create_user-config.jam() {
local user_config_jam="${BUILD_DIR}"/user-config.jam
if [[ -s ${user_config_jam} ]]; then
einfo "${user_config_jam} already exists, skipping configuration"
return
else
einfo "Creating configuration in ${user_config_jam}"
fi
local compiler compiler_version compiler_executable="$(tc-getCXX)"
if [[ ${CHOST} == *-darwin* ]]; then
compiler="darwin"
compiler_version="$(gcc-fullversion)"
else
compiler="gcc"
compiler_version="$(gcc-version)"
fi
if use mpi; then
local mpi_configuration="using mpi ;"
fi
cat > "${user_config_jam}" <<- __EOF__ || die
using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
${mpi_configuration}
__EOF__
if python_bindings_needed; then
append_to_user_config() {
local py_config
if tc-is-cross-compiler; then
py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;"
else
py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;"
fi
echo "${py_config}" >> "${user_config_jam}" || die
}
python_foreach_impl append_to_user_config
fi
if python_bindings_needed && use numpy; then
einfo "Enabling support for NumPy extensions in Boost.Python"
else
einfo "Disabling support for NumPy extensions in Boost.Python"
# Boost.Build does not allow for disabling of numpy
# extensions, thereby leading to automagic numpy
# https://github.com/boostorg/python/issues/111#issuecomment-280447482
sed \
-e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g' \
-i "${BUILD_DIR}"/libs/python/build/Jamfile || die
fi
}
pkg_setup() {
# Bail out on unsupported build configuration, bug #456792
if [[ -f "${EROOT}"/etc/site-config.jam ]]; then
if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then
eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
eerror "Boost can not be built in such configuration."
eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it."
die "Unsupported target in ${EROOT}/etc/site-config.jam"
fi
fi
}
src_prepare() {
default
multilib_copy_sources
}
ejam() {
create_user-config.jam
local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
if python_bindings_needed; then
append_to_b2_opts() {
b2_opts+=( python="${EPYTHON#python}" )
}
python_foreach_impl append_to_b2_opts
else
b2_opts+=( --without-python )
fi
b2_opts+=( "$@" )
echo b2 "${b2_opts[@]}" >&2
b2 "${b2_opts[@]}"
}
src_configure() {
# Workaround for too many parallel processes requested, bug #506064
[[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
OPTIONS=(
$(usex debug gentoodebug gentoorelease)
"-j$(makeopts_jobs)"
-q
-d+2
pch=off
$(usex icu "-sICU_PATH=${ESYSROOT}/usr" '--disable-icu boost.locale.icu=off')
$(usex mpi '' '--without-mpi')
$(usex nls '' '--without-locale')
$(usex context '' '--without-context --without-coroutine --without-fiber')
$(usex threads '' '--without-thread')
--without-stacktrace
--boost-build="${BROOT}"/usr/share/boost-build
--prefix="${ED}/usr"
--layout=system
# CMake has issues working with multiple python impls,
# disable cmake config generation for the time being
# https://github.com/boostorg/python/issues/262#issuecomment-483069294
--no-cmake-config
# building with threading=single is currently not possible
# https://svn.boost.org/trac/boost/ticket/7105
threading=multi
link=$(usex static-libs shared,static shared)
# this seems to be the only way to disable compression algorithms
# https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build
-sNO_BZIP2=$(usex bzip2 0 1)
-sNO_LZMA=$(usex lzma 0 1)
-sNO_ZLIB=$(usex zlib 0 1)
-sNO_ZSTD=$(usex zstd 0 1)
)
if [[ ${CHOST} == *-darwin* ]]; then
# We need to add the prefix, and in two cases this exceeds, so prepare
# for the largest possible space allocation.
append-ldflags -Wl,-headerpad_max_install_names
fi
# Use C++14 globally as of 1.62
append-cxxflags -std=c++14
}
multilib_src_compile() {
ejam "${OPTIONS[@]}" || die
if tools_needed; then
pushd tools >/dev/null || die
ejam \
"${OPTIONS[@]}" \
|| die "Building of Boost tools failed"
popd >/dev/null || die
fi
}
multilib_src_install_all() {
if ! use numpy; then
rm -r "${ED}"/usr/include/boost/python/numpy* || die
fi
if use python; then
if use mpi; then
move_mpi_py_into_sitedir() {
python_moduleinto boost
python_domodule "${S}"/libs/mpi/build/__init__.py
python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so
rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || die
python_optimize
}
python_foreach_impl move_mpi_py_into_sitedir
else
rm -r "${ED}"/usr/include/boost/mpi/python* || die
fi
else
rm -r "${ED}"/usr/include/boost/{python*,mpi/python*,parameter/aux_/python,parameter/python*} || die
fi
if ! use nls; then
rm -r "${ED}"/usr/include/boost/locale || die
fi
if ! use context; then
rm -r "${ED}"/usr/include/boost/context || die
rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
fi
if use doc; then
# find extraneous files that shouldn't be installed
# as part of the documentation and remove them.
find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
docinto html
dodoc *.{htm,html,png,css}
dodoc -r doc libs more tools
# To avoid broken links
dodoc LICENSE_1_0.txt
dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
fi
}
multilib_src_install() {
ejam \
"${OPTIONS[@]}" \
--includedir="${ED}/usr/include" \
--libdir="${ED}/usr/$(get_libdir)" \
install || die "Installation of Boost libraries failed"
pushd "${ED}/usr/$(get_libdir)" >/dev/null || die
local ext=$(get_libname)
if use threads; then
local f
for f in *${ext}; do
dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
done
fi
popd >/dev/null || die
if tools_needed; then
dobin dist/bin/*
insinto /usr/share
doins -r dist/share/boostbook
fi
# boost's build system truely sucks for not having a destdir. Because for
# this reason we are forced to build with a prefix that includes the
# DESTROOT, dynamic libraries on Darwin end messed up, referencing the
# DESTROOT instread of the actual EPREFIX. There is no way out of here
# but to do it the dirty way of manually setting the right install_names.
if [[ ${CHOST} == *-darwin* ]]; then
einfo "Working around completely broken build-system(tm)"
local d
for d in "${ED}"/usr/lib/*.dylib; do
if [[ -f ${d} ]]; then
# fix the "soname"
ebegin " correcting install_name of ${d#${ED}}"
install_name_tool -id "/${d#${D}}" "${d}"
eend $?
# fix references to other libs
refs=$(otool -XL "${d}" | \
sed -e '1d' -e 's/^\t//' | \
grep "^libboost_" | \
cut -f1 -d' ')
local r
for r in ${refs}; do
ebegin " correcting reference to ${r}"
install_name_tool -change \
"${r}" \
"${EPREFIX}/usr/lib/${r}" \
"${d}"
eend $?
done
fi
done
fi
}
pkg_preinst() {
# Yai for having symlinks that are nigh-impossible to remove without
# resorting to dirty hacks like these. Removes lingering symlinks
# from the slotted versions.
local symlink
for symlink in "${EROOT}"/usr/include/boost "${EROOT}"/usr/share/boostbook; do
if [[ -L ${symlink} ]]; then
rm -f "${symlink}" || die
fi
done
# some ancient installs still have boost cruft lying around
# for unknown reasons, causing havoc for reverse dependencies
# Bug: 607734
rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die
}
pkg_postinst() {
elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as"
elog
elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation"
elog " <char>::transform_primary[abi:cxx11](char const*, char const*) const'"
elog
elog "Then you need to recompile Boost and all its reverse dependencies"
elog "using the same toolchain. In general, *every* change of the C++ toolchain"
elog "requires a complete rebuild of the boost-dependent ecosystem."
elog
elog "See for instance https://bugs.gentoo.org/638138"
}

@ -0,0 +1,125 @@
https://src.fedoraproject.org/rpms/boost/raw/master/f/boost-1.58.0-pool.patch
https://bugzilla.redhat.com/show_bug.cgi?id=828856
https://bugs.gentoo.org/620468
https://svn.boost.org/trac10/ticket/6701
Index: boost/pool/pool.hpp
===================================================================
--- a/boost/pool/pool.hpp (revision 78317)
+++ b/boost/pool/pool.hpp (revision 78326)
@@ -27,4 +27,6 @@
#include <boost/pool/poolfwd.hpp>
+// std::numeric_limits
+#include <boost/limits.hpp>
// boost::integer::static_lcm
#include <boost/integer/common_factor_ct.hpp>
@@ -358,4 +360,11 @@
}
+ size_type max_chunks() const
+ { //! Calculated maximum number of memory chunks that can be allocated in a single call by this Pool.
+ size_type partition_size = alloc_size();
+ size_type POD_size = integer::static_lcm<sizeof(size_type), sizeof(void *)>::value + sizeof(size_type);
+ return (std::numeric_limits<size_type>::max() - POD_size) / alloc_size();
+ }
+
static void * & nextof(void * const ptr)
{ //! \returns Pointer dereferenced.
@@ -377,5 +388,7 @@
//! the first time that object needs to allocate system memory.
//! The default is 32. This parameter may not be 0.
- //! \param nmax_size is the maximum number of chunks to allocate in one block.
+ //! \param nmax_size is the maximum number of chunks to allocate in one block.
+ set_next_size(nnext_size);
+ set_max_size(nmax_size);
}
@@ -400,7 +413,7 @@
}
void set_next_size(const size_type nnext_size)
- { //! Set number of chunks to request from the system the next time that object needs to allocate system memory. This value should never be set to 0.
- //! \returns nnext_size.
- next_size = start_size = nnext_size;
+ { //! Set number of chunks to request from the system the next time that object needs to allocate system memory. This value should never be set to 0.
+ BOOST_USING_STD_MIN();
+ next_size = start_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nnext_size, max_chunks());
}
size_type get_max_size() const
@@ -410,5 +423,6 @@
void set_max_size(const size_type nmax_size)
{ //! Set max_size.
- max_size = nmax_size;
+ BOOST_USING_STD_MIN();
+ max_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nmax_size, max_chunks());
}
size_type get_requested_size() const
@@ -713,7 +727,7 @@
BOOST_USING_STD_MIN();
if(!max_size)
- next_size <<= 1;
+ set_next_size(next_size << 1);
else if( next_size*partition_size/requested_size < max_size)
- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size);
+ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size));
// initialize it,
@@ -753,7 +767,7 @@
BOOST_USING_STD_MIN();
if(!max_size)
- next_size <<= 1;
+ set_next_size(next_size << 1);
else if( next_size*partition_size/requested_size < max_size)
- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size);
+ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size));
// initialize it,
@@ -797,4 +811,6 @@
//! \returns Address of chunk n if allocated ok.
//! \returns 0 if not enough memory for n chunks.
+ if (n > max_chunks())
+ return 0;
const size_type partition_size = alloc_size();
@@ -845,7 +861,7 @@
BOOST_USING_STD_MIN();
if(!max_size)
- next_size <<= 1;
+ set_next_size(next_size << 1);
else if( next_size*partition_size/requested_size < max_size)
- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size);
+ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size));
// insert it into the list,
Index: libs/pool/test/test_bug_6701.cpp
===================================================================
--- a/libs/pool/test/test_bug_6701.cpp (revision 78326)
+++ b/libs/pool/test/test_bug_6701.cpp (revision 78326)
@@ -0,0 +1,27 @@
+/* Copyright (C) 2012 Étienne Dupuis
+*
+* Use, modification and distribution is subject to the
+* Boost Software License, Version 1.0. (See accompanying
+* file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+*/
+
+// Test of bug #6701 (https://svn.boost.org/trac/boost/ticket/6701)
+
+#include <boost/pool/object_pool.hpp>
+#include <boost/limits.hpp>
+
+int main()
+{
+ boost::pool<> p(1024, std::numeric_limits<size_t>::max() / 768);
+
+ void *x = p.malloc();
+ BOOST_ASSERT(!x);
+
+ BOOST_ASSERT(std::numeric_limits<size_t>::max() / 1024 >= p.get_next_size());
+ BOOST_ASSERT(std::numeric_limits<size_t>::max() / 1024 >= p.get_max_size());
+
+ void *y = p.ordered_malloc(std::numeric_limits<size_t>::max() / 768);
+ BOOST_ASSERT(!y);
+
+ return 0;
+}

@ -1 +1,2 @@
DIST c-blosc-1.20.1.tar.gz 878895 BLAKE2B 54f91ffc0b270f8bc8ace8893c01ab6847096397f76b31c5adf0516903cee29d867973317de5d016807837ac098b170542c0b8e702d386bf9166de31863f6eab SHA512 59f83dfb3f0db6530daeae699f0915d6c8a7186cea1fe2face7110f5c94c2e8ccc12eb0078de968552b6ac32163b2ec6fb19b79966d2c85574a2676b454f5475
DIST c-blosc-1.21.0.tar.gz 907199 BLAKE2B 08c52ce5f0d285798aef8720378d1cc3f2d2b0a99cf47f0a49dc82757a0edb4a37c5c0d226a80bae5f9be74b5c2a070906387b9677df71ea6b825662997168a1 SHA512 76758176f91979794dc3b8d46c21294d81e33fda4f2e299b031f2dc059d77e351e3f5f1c984b0263713d6e04c48534984d580244573dd96f0198dd3838b9f376

@ -0,0 +1,47 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit cmake
DESCRIPTION="Blocking, shuffling and lossless compression library"
HOMEPAGE="https://www.blosc.org/"
SRC_URI="https://github.com/Blosc/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="MIT"
SLOT="0/1"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
IUSE="+lz4 +snappy test zlib zstd"
RESTRICT="!test? ( test )"
RDEPEND="
lz4? ( >=app-arch/lz4-1.7.5:= )
snappy? ( app-arch/snappy )
zlib? ( sys-libs/zlib )
zstd? ( app-arch/zstd )"
DEPEND="${RDEPEND}"
src_prepare() {
cmake_src_prepare
# remove bundled libs
rm -rf internal-complibs || die
}
src_configure() {
local mycmakeargs=(
-DBUILD_STATIC=OFF
-DBUILD_TESTS=$(usex test)
-DBUILD_BENCHMARKS=OFF
-DBUILD_FUZZERS=OFF
-DDEACTIVATE_LZ4=$(usex !lz4)
-DDEACTIVATE_SNAPPY=$(usex !snappy)
-DDEACTIVATE_ZLIB=$(usex !zlib)
-DDEACTIVATE_ZSTD=$(usex !zstd)
-DPREFER_EXTERNAL_LZ4=ON
# snappy is always external
-DPREFER_EXTERNAL_ZLIB=ON
-DPREFER_EXTERNAL_ZSTD=ON
)
cmake_src_configure
}

@ -20,7 +20,7 @@ SRC_URI="ftp://ftp.gmplib.org/pub/${MY_P}/${MY_P}.tar.xz
LICENSE="|| ( LGPL-3+ GPL-2+ )"
# The subslot reflects the C & C++ SONAMEs.
SLOT="0/10.4"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="+asm doc +cxx pic static-libs"
BDEPEND="sys-devel/m4

@ -3,7 +3,7 @@
EAPI=7
PYTHON_COMPAT=( python3_{6,7,8} )
PYTHON_COMPAT=( python3_{6..9} )
inherit autotools flag-o-matic multilib-minimal python-any-r1 toolchain-funcs
DESCRIPTION="International Components for Unicode"

@ -12,7 +12,7 @@ SRC_URI="https://github.com/PJK/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="MIT"
SLOT="0/$(ver_cut 1-2)"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ppc ~ppc64 ~s390 ~sparc x86"
KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~ia64 ppc ~ppc64 ~s390 ~sparc x86"
IUSE="+custom-alloc doc test"
BDEPEND="

@ -11,7 +11,7 @@ SRC_URI="https://github.com/Yubico/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD-2"
SLOT="0/1"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ppc ~ppc64 ~s390 ~sparc x86"
KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~ia64 ppc ~ppc64 ~s390 ~sparc x86"
IUSE="libressl +static-libs"
DEPEND="

@ -1,3 +1,4 @@
DIST gen-lock-obj-1.38.sh 2643 BLAKE2B 5040b027a95f10bac4a0ba463c8bb8387514ca9136e019fc647183456593df27473eb79af1d79e803984dd2b93166c286809b376968584cc320679de95fcfbba SHA512 d60999a08f70f5bcf1b66099c5d7b5f715dbd881bd0d75dbdde3a8932e9b064166f0524a45ae88b5b182c620aee526e14095ffdee68403b5d3b087b4dc4c0c2c
DIST libgpg-error-1.38.tar.bz2 957637 BLAKE2B 9532402466748503805366b94c82c9adfe5b448f885c26b33ebf7ba9957161ca046b4057f5ca862224accb9f2af731652a55d20e7a4ab69107190a58c8e11ad6 SHA512 b936a4738c2cee111d855b1ba3ec433da8c77799a87d1f71275f974f871ebfa593c9db06ea53f0490b6cd6b94bef34f6052a587a4d13d839ec0128500c2dd9de
DIST libgpg-error-1.39.tar.bz2 961676 BLAKE2B 8753a9295ca57ba79142ffbc7fa01a986addcdd6a8860cf80c9e1bf9f6f9dfce874f804205a5cdd956e026eb006f2662110c63e7ed52c7a42ee0c45923ae52be SHA512 b28be183ac3d3920363558c4b5b2c24f9074a302799915cc076674bb349dcfb6f09160bec1d3fb62e04047c3ce432d345f36b0905100a88cc730b53d4eb78e42
DIST libgpg-error-1.41.tar.bz2 967117 BLAKE2B 9dc95bc09f55915d904e0f956ecf9281615028b8b8d876dbc786b752068fefea56adfb5dd5db65bad656ab664d567e56541e44a584c7f8672c30537ed05c4db0 SHA512 578d1d8090b9f6e6cbe59d9aeebec7df81aae492f75ec343f8df530950d30866fa0a7903ca050bf7bf721413f7b2708abe34f7467e2b208cc1447ffc9bd5b9a5

@ -0,0 +1,58 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit autotools libtool multilib-minimal toolchain-funcs prefix
DESCRIPTION="Contains error handling functions used by GnuPG software"
HOMEPAGE="http://www.gnupg.org/related_software/libgpg-error"
SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2"
LICENSE="GPL-2 LGPL-2.1"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="common-lisp nls"
RDEPEND="nls? ( >=virtual/libintl-0-r1[${MULTILIB_USEDEP}] )"
DEPEND="${RDEPEND}"
BDEPEND="nls? ( sys-devel/gettext )"
MULTILIB_CHOST_TOOLS=(
/usr/bin/gpg-error-config
)
MULTILIB_WRAPPED_HEADERS=(
/usr/include/gpg-error.h
/usr/include/gpgrt.h
)
PATCHES=(
"${FILESDIR}/${PN}-1.37-remove_broken_check.patch"
)
src_prepare() {
default
# only necessary for as long as we run eautoreconf, configure.ac
# uses ./autogen.sh to generate PACKAGE_VERSION, but autogen.sh is
# not a pure /bin/sh script, so it fails on some hosts
hprefixify -w 1 autogen.sh
eautoreconf
}
multilib_src_configure() {
local myeconfargs=(
$(multilib_is_native_abi || echo --disable-languages)
$(use_enable common-lisp languages)
$(use_enable nls)
--disable-static
--enable-threads
CC_FOR_BUILD="$(tc-getBUILD_CC)"
$("${S}/configure" --help | grep -o -- '--without-.*-prefix')
)
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
}
multilib_src_install_all() {
einstalldocs
find "${ED}" -type f -name '*.la' -delete || die
}

@ -9,7 +9,7 @@ SRC_URI="mirror://nongnu/${PN}/${P}.tar.gz"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ~m68k ~mips ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ppc ~ppc64 ~riscv s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
IUSE="static-libs test"
RESTRICT="!test? ( test )"

@ -36,9 +36,18 @@ mymake() {
local extra_libs=()
# Build support as appropriate for consumers (MPI)
use gmp && enabled_features+=( -DGMP_DESC=1 )
use libtommath && enabled_features+=( -DLTM_DESC=1 )
use tomsfastmath && enabled_features+=( -DTFM_DESC=1 )
if use gmp; then
enabled_features+=( -DGMP_DESC=1 )
extra_libs+=( -lgmp )
fi
if use libtommath; then
enabled_features+=( -DLTM_DESC=1 )
extra_libs+=( -ltommath )
fi
if use tomsfastmath; then
enabled_features+=( -DTFM_DESC=1 )
extra_libs+=( -ltfm )
fi
# For the test and example binaries, we have to choose
# which MPI we want to use.
@ -46,27 +55,14 @@ mymake() {
# gmp > libtommath > tomsfastmath > none
if use gmp ; then
enabled_features+=( -DUSE_GMP=1 )
extra_libs=( -lgmp )
elif use libtommath ; then
enabled_features+=( -DUSE_LTM=1 )
extra_libs=( -ltommath )
elif use tomsfastmath ; then
enabled_features+=( -DUSE_TFM=1 )
extra_libs=( -ltfm )
fi
# If none of the above are being used,
# the tests don't need to link against any extra
# libraries.
# We only need to do this strange logic for tests
# anyway because we're choosing what to build a binary with.
if [[ ${TEST} != 1 ]] ; then
extra_libs=()
fi
# IGNORE_SPEED=1 is needed to respect CFLAGS
EXTRALIBS="${extra_libs}" emake \
EXTRALIBS="${extra_libs[*]}" emake \
CFLAGS="${CFLAGS} ${enabled_features[*]}" \
CC="$(tc-getCC)" \
AR="$(tc-getAR)" \
@ -88,7 +84,7 @@ src_test() {
# 1) https://github.com/libtom/libtomcrypt/commit/a65cfb8dbe4
# 2) https://github.com/libtom/libtomcrypt/commit/fdc6cd20137
# is made, we can run tests for each provider.
TEST=1 mymake test
mymake test
./test || die "Running tests failed"
}

@ -1,4 +1,3 @@
DIST nss-3.56.tar.gz 81706176 BLAKE2B 84c3b9fd649ce38ad843725b180982692dcac34e851734813b959734054f2e9ebfad66496de320f46e861381f6d5f52db0cc4c0953f7504b79f6b529b871f173 SHA512 f2eed8252c13b38a4d80a11203136d22a521205f814b6d954cc119ccf8921fcb8f689d919944bea4739d1575e9bda7e13cf2ad054ac91d51e049abe246efc845
DIST nss-3.58.tar.gz 81846254 BLAKE2B f8e7d0b231916b197ad21706a057d055f8377059d76d4f09aff523cc4cd071a3184f02dc488259df22109b70be7b8a5d5fa7ea2273a830de825cc9a8c95dcca9 SHA512 03d2ab1517ac07620ea3f02dcf680cf019e0129006ff2559b2d0a047036340c20b98c9679b17a594e5502aa30e158caf309f046901b9ec7c7adeeaa13ec50b80
DIST nss-3.59.tar.gz 82141516 BLAKE2B 74959b14ec42b4628dfc3365af00420cdbd41d202541e9379f6a4448c4496b76307af48c9ec405b370f8770327ce56742b4382f8cd49724b42732ce5cc5b0779 SHA512 8963e846f2ff7222457ae59f042672cf4e44f7752807226f46c215a772fd1cbd65d0ce634da4afb698eabd4eb1c1e78146cc2a089339ada11da03d259c609a38
DIST nss-3.60.tar.gz 82035831 BLAKE2B fffc0e26d58d4625be1b8b0123f248a0c7994b18868ece534ba4d60131dd4897d075d7b2dba672c31ccd333e0c18ea384e2aa2f495c23b5430d6d10b91922873 SHA512 6463b2da28b5d9f1f20d45f77a3179e2b93c874af5742c7fc51eb7c44cef93270acacf79174dc63905f227256cbcee23a36f98f1cfed10dd5c56ffc0a76e2695

@ -1,359 +0,0 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit eutils flag-o-matic multilib toolchain-funcs multilib-minimal
NSPR_VER="4.28"
RTM_NAME="NSS_${PV//./_}_RTM"
DESCRIPTION="Mozilla's Network Security Services library that implements PKI support"
HOMEPAGE="http://www.mozilla.org/projects/security/pki/nss/"
SRC_URI="https://archive.mozilla.org/pub/security/nss/releases/${RTM_NAME}/src/${P}.tar.gz
cacert? ( https://dev.gentoo.org/~axs/distfiles/${PN}-cacert-class1-class3.patch )"
LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 s390 sparc x86 ~amd64-linux ~x86-linux ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
IUSE="cacert utils"
# pkg-config called by nss-config -> virtual/pkgconfig in RDEPEND
RDEPEND="
>=dev-libs/nspr-${NSPR_VER}[${MULTILIB_USEDEP}]
>=dev-db/sqlite-3.8.2[${MULTILIB_USEDEP}]
>=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]
virtual/pkgconfig
"
DEPEND="${RDEPEND}"
RESTRICT="test"
S="${WORKDIR}/${P}/${PN}"
MULTILIB_CHOST_TOOLS=(
/usr/bin/nss-config
)
PATCHES=(
# Custom changes for gentoo
"${FILESDIR}/${PN}-3.53-gentoo-fixups.patch"
"${FILESDIR}/${PN}-3.21-gentoo-fixup-warnings.patch"
"${FILESDIR}/${PN}-3.23-hppa-byte_order.patch"
"${FILESDIR}/${PN}-3.53-fix-building-on-ppc.patch"
)
src_prepare() {
if use cacert ; then #521462
PATCHES+=(
"${DISTDIR}/${PN}-cacert-class1-class3.patch"
)
fi
default
pushd coreconf >/dev/null || die
# hack nspr paths
echo 'INCLUDES += -I$(DIST)/include/dbm' \
>> headers.mk || die "failed to append include"
# modify install path
sed -e '/CORE_DEPTH/s:SOURCE_PREFIX.*$:SOURCE_PREFIX = $(CORE_DEPTH)/dist:' \
-i source.mk || die
# Respect LDFLAGS
sed -i -e 's/\$(MKSHLIB) -o/\$(MKSHLIB) \$(LDFLAGS) -o/g' rules.mk
popd >/dev/null || die
# Fix pkgconfig file for Prefix
sed -i -e "/^PREFIX =/s:= /usr:= ${EPREFIX}/usr:" \
config/Makefile || die
# use host shlibsign if need be #436216
if tc-is-cross-compiler ; then
sed -i \
-e 's:"${2}"/shlibsign:shlibsign:' \
cmd/shlibsign/sign.sh || die
fi
# dirty hack
sed -i -e "/CRYPTOLIB/s:\$(SOFTOKEN_LIB_DIR):../freebl/\$(OBJDIR):" \
lib/ssl/config.mk || die
sed -i -e "/CRYPTOLIB/s:\$(SOFTOKEN_LIB_DIR):../../lib/freebl/\$(OBJDIR):" \
cmd/platlibs.mk || die
multilib_copy_sources
strip-flags
}
multilib_src_configure() {
# Ensure we stay multilib aware
sed -i -e "/@libdir@/ s:lib64:$(get_libdir):" config/Makefile || die
}
nssarch() {
# Most of the arches are the same as $ARCH
local t=${1:-${CHOST}}
case ${t} in
aarch64*)echo "aarch64";;
hppa*) echo "parisc";;
i?86*) echo "i686";;
x86_64*) echo "x86_64";;
*) tc-arch ${t};;
esac
}
nssbits() {
local cc cppflags="${1}CPPFLAGS" cflags="${1}CFLAGS"
if [[ ${1} == BUILD_ ]]; then
cc=$(tc-getBUILD_CC)
else
cc=$(tc-getCC)
fi
echo > "${T}"/test.c || die
${cc} ${!cppflags} ${!cflags} -c "${T}"/test.c -o "${T}/${1}test.o" || die
case $(file "${T}/${1}test.o") in
*32-bit*x86-64*) echo USE_X32=1;;
*64-bit*|*ppc64*|*x86_64*) echo USE_64=1;;
*32-bit*|*ppc*|*i386*) ;;
*) die "Failed to detect whether ${cc} builds 64bits or 32bits, disable distcc if you're using it, please";;
esac
}
multilib_src_compile() {
# use ABI to determine bit'ness, or fallback if unset
local buildbits mybits
case "${ABI}" in
n32) mybits="USE_N32=1";;
x32) mybits="USE_X32=1";;
s390x|*64) mybits="USE_64=1";;
${DEFAULT_ABI})
einfo "Running compilation test to determine bit'ness"
mybits=$(nssbits)
;;
esac
# bitness of host may differ from target
if tc-is-cross-compiler; then
buildbits=$(nssbits BUILD_)
fi
local makeargs=(
CC="$(tc-getCC)"
CCC="$(tc-getCXX)"
AR="$(tc-getAR) rc \$@"
RANLIB="$(tc-getRANLIB)"
OPTIMIZER=
${mybits}
)
# Take care of nspr settings #436216
local myCPPFLAGS="${CPPFLAGS} $($(tc-getPKG_CONFIG) nspr --cflags)"
unset NSPR_INCLUDE_DIR
export NSS_ALLOW_SSLKEYLOGFILE=1
export NSS_ENABLE_WERROR=0 #567158
export BUILD_OPT=1
export NSS_USE_SYSTEM_SQLITE=1
export NSDISTMODE=copy
export FREEBL_NO_DEPEND=1
export FREEBL_LOWHASH=1
export NSS_SEED_ONLY_DEV_URANDOM=1
export USE_SYSTEM_ZLIB=1
export ZLIB_LIBS=-lz
export ASFLAGS=""
# Fix build failure on arm64
export NS_USE_GCC=1
# Detect compiler type and set proper environment value
if tc-is-gcc; then
export CC_IS_GCC=1
elif tc-is-clang; then
export CC_IS_CLANG=1
fi
local d
# Build the host tools first.
LDFLAGS="${BUILD_LDFLAGS}" \
XCFLAGS="${BUILD_CFLAGS}" \
NSPR_LIB_DIR="${T}/fakedir" \
emake -j1 -C coreconf \
CC="$(tc-getBUILD_CC)" \
${buildbits-${mybits}}
makeargs+=( NSINSTALL="${PWD}/$(find -type f -name nsinstall)" )
# Then build the target tools.
for d in . lib/dbm ; do
CPPFLAGS="${myCPPFLAGS}" \
XCFLAGS="${CFLAGS} ${CPPFLAGS}" \
NSPR_LIB_DIR="${T}/fakedir" \
emake -j1 "${makeargs[@]}" -C ${d} OS_TEST="$(nssarch)"
done
}
# Altering these 3 libraries breaks the CHK verification.
# All of the following cause it to break:
# - stripping
# - prelink
# - ELF signing
# http://www.mozilla.org/projects/security/pki/nss/tech-notes/tn6.html
# Either we have to NOT strip them, or we have to forcibly resign after
# stripping.
#local_libdir="$(get_libdir)"
#export STRIP_MASK="
# */${local_libdir}/libfreebl3.so*
# */${local_libdir}/libnssdbm3.so*
# */${local_libdir}/libsoftokn3.so*"
export NSS_CHK_SIGN_LIBS="freebl3 nssdbm3 softokn3"
generate_chk() {
local shlibsign="$1"
local libdir="$2"
einfo "Resigning core NSS libraries for FIPS validation"
shift 2
local i
for i in ${NSS_CHK_SIGN_LIBS} ; do
local libname=lib${i}.so
local chkname=lib${i}.chk
"${shlibsign}" \
-i "${libdir}"/${libname} \
-o "${libdir}"/${chkname}.tmp \
&& mv -f \
"${libdir}"/${chkname}.tmp \
"${libdir}"/${chkname} \
|| die "Failed to sign ${libname}"
done
}
cleanup_chk() {
local libdir="$1"
shift 1
local i
for i in ${NSS_CHK_SIGN_LIBS} ; do
local libfname="${libdir}/lib${i}.so"
# If the major version has changed, then we have old chk files.
[ ! -f "${libfname}" -a -f "${libfname}.chk" ] \
&& rm -f "${libfname}.chk"
done
}
multilib_src_install() {
pushd dist >/dev/null || die
dodir /usr/$(get_libdir)
cp -L */lib/*$(get_libname) "${ED}"/usr/$(get_libdir) || die "copying shared libs failed"
local i
for i in crmf freebl nssb nssckfw ; do
cp -L */lib/lib${i}.a "${ED}"/usr/$(get_libdir) || die "copying libs failed"
done
# Install nss-config and pkgconfig file
dodir /usr/bin
cp -L */bin/nss-config "${ED}"/usr/bin || die
dodir /usr/$(get_libdir)/pkgconfig
cp -L */lib/pkgconfig/nss.pc "${ED}"/usr/$(get_libdir)/pkgconfig || die
# create an nss-softokn.pc from nss.pc for libfreebl and some private headers
# bug 517266
sed -e 's#Libs:#Libs: -lfreebl#' \
-e 's#Cflags:#Cflags: -I${includedir}/private#' \
*/lib/pkgconfig/nss.pc >"${ED}"/usr/$(get_libdir)/pkgconfig/nss-softokn.pc \
|| die "could not create nss-softokn.pc"
# all the include files
insinto /usr/include/nss
doins public/nss/*.{h,api}
insinto /usr/include/nss/private
doins private/nss/{blapi,alghmac,cmac}.h
popd >/dev/null || die
local f nssutils
# Always enabled because we need it for chk generation.
nssutils=( shlibsign )
if multilib_is_native_abi ; then
if use utils; then
# The tests we do not need to install.
#nssutils_test="bltest crmftest dbtest dertimetest
#fipstest remtest sdrtest"
# checkcert utils has been removed in nss-3.22:
# https://bugzilla.mozilla.org/show_bug.cgi?id=1187545
# https://hg.mozilla.org/projects/nss/rev/df1729d37870
# certcgi has been removed in nss-3.36:
# https://bugzilla.mozilla.org/show_bug.cgi?id=1426602
nssutils+=(
addbuiltin
atob
baddbdir
btoa
certutil
cmsutil
conflict
crlutil
derdump
digest
makepqg
mangle
modutil
multinit
nonspr10
ocspclnt
oidcalc
p7content
p7env
p7sign
p7verify
pk11mode
pk12util
pp
rsaperf
selfserv
signtool
signver
ssltap
strsclnt
symkeyutil
tstclnt
vfychain
vfyserv
)
# install man-pages for utils (bug #516810)
doman doc/nroff/*.1
fi
pushd dist/*/bin >/dev/null || die
for f in ${nssutils[@]}; do
dobin ${f}
done
popd >/dev/null || die
fi
# Prelink breaks the CHK files. We don't have any reliable way to run
# shlibsign after prelink.
dodir /etc/prelink.conf.d
printf -- "-b ${EPREFIX}/usr/$(get_libdir)/lib%s.so\n" ${NSS_CHK_SIGN_LIBS} \
> "${ED}"/etc/prelink.conf.d/nss.conf
}
pkg_postinst() {
multilib_pkg_postinst() {
# We must re-sign the libraries AFTER they are stripped.
local shlibsign="${EROOT}/usr/bin/shlibsign"
# See if we can execute it (cross-compiling & such). #436216
"${shlibsign}" -h >&/dev/null
if [[ $? -gt 1 ]] ; then
shlibsign="shlibsign"
fi
generate_chk "${shlibsign}" "${EROOT}"/usr/$(get_libdir)
}
multilib_foreach_abi multilib_pkg_postinst
}
pkg_postrm() {
multilib_pkg_postrm() {
cleanup_chk "${EROOT}"/usr/$(get_libdir)
}
multilib_foreach_abi multilib_pkg_postrm
}

@ -1,10 +1,5 @@
DIST openssl-1.0.2-patches-1.5.tar.xz 12404 BLAKE2B 6c1b8c28f339f539b2ab8643379502a24cf62bffde00041dce54d5dd9e8d2620b181362ee5464b0ab32ba4948e209697bfabadbea2944a409a1009100d298f24 SHA512 5725e2d9d1ee8cc074bcef3bed61c71bdab2ff1c114362110c3fb8da11ad5bc8f2ff28e90a293f5f3a5cf96ecda54dffdb7ab3fb3f8b23ef6472250dc3037659
DIST openssl-1.0.2t-bindist-1.0.tar.xz 13872 BLAKE2B b2aade96a6e0ca6209a39e205b1c838de945903fcf959c62cc29ddcd1a0cb360fc5db234df86860a6a4c096f5ecc237611e4c2946b986a5500c24ba93c208ef4 SHA512 a48a7efb9b973b865bcc5009d450b428ed6b4b95e4cefe70c51056e47392c8a7bec58215168d8b07712419dc74646c2bd2fd23bcfbba2031376e292249a6b1b6
DIST openssl-1.0.2u.tar.gz 5355412 BLAKE2B b2ff2a10e5851af5aca4093422a9a072c794e87b997263826c1c35910c040f695fac63decac5856cb49399ed03d410f97701d9fd4e1ebfbcacd8f3a74ce8bf57 SHA512 c455bb309e20e2c2d47fdc5619c734d107d5c8c38c1409903ce979acc120b0d5fa0312917c0aa0d630e402d092a703d4249643f36078e8528a3cafc9dac6ab32
DIST openssl-1.1.0l-bindist-1.0.tar.xz 13184 BLAKE2B c09e023458faff17b10d6f20c28462c0851757a20d59b4b751220ab307324d5778252df112ad74fd319407cc75fdd1cd507d48058dd0234dc8c03020c882ed42 SHA512 39720ecee3ec6080c1416f2fb7c9246b89ee55b21be2baabad51eb6823dbe1559450b1ae92fa61ac1cf5ba04ac8c02438aa469bc65eae6905cf1ea486f270793
DIST openssl-1.1.0l.tar.gz 5294857 BLAKE2B 0e4f30f9e8a22414325bd780dc4e875e962487fbe72967f0392ace959955429192541881a98d097d7bb75ed7238b1817b0c3c2c4da04421512bd538f2b07cdd7 SHA512 81b74149f40ea7d9f7e235820a4f977844653ad1e2b302e65e712c12193f47542fe7e3385fd1e25e3dd074e4e6d04199836cbc492656f5a7692edab5e234f4ad
DIST openssl-1.1.1e-bindist-1.0.tar.xz 16948 BLAKE2B 78e034f1d263cbf5e57c92393f72acd07e86e39a5511a8852bad151371430954e07d787fd82cca55b373d1579bb22b9d29c9d677104ed68291a9d2dffe3ffbbb SHA512 0dbfb378b8f2724db82915e17fd4e43977e3e45030db25cdb9241c0ab842e41ef3d597ef71c4db5103635752dc2059ea6022597511a440f55fb56a5a52d3ccea
DIST openssl-1.1.1g.tar.gz 9801502 BLAKE2B 5e3dd4725ff89b959a5436d64b521317c6ffeb377418cc24c6d1927fab923423cb5f5fce2f9c2cdee597041c7be156d09668a5fd13dc6ff06d235a83db94cf19 SHA512 01e3d0b1bceeed8fb066f542ef5480862001556e0f612e017442330bbd7e5faee228b2de3513d7fc347446b7f217e27de1003dc9d7214d5833b97593f3ec25ab
DIST openssl-1.1.1h.tar.gz 9810045 BLAKE2B ac9ba6fb0c4da0a761e8655b6907634365ddb114216acfcfc981e13c211577b6bd23ea8d2ad0999c0960b039f5d3dead5733e6dc07c5231ab953307a9015cd36 SHA512 da50fd99325841ed7a4367d9251c771ce505a443a73b327d8a46b2c6a7d2ea99e43551a164efc86f8743b22c2bdb0020bf24a9cbd445e9d68868b2dc1d34033a
DIST openssl-1.1.1i-bindist-1.0.tar.xz 18124 BLAKE2B bcbce700676d1d61498ac98281b7ad06f9970d91afa6bfb2c259ab7462b2554be79a1c06759bc7aaeca9948c2f5276bac2c4f42dbc6822669f863444b9913ccd SHA512 1dbb81bcb4cf7e634bb363c7e2bb2590a1fe3fcb6c3b5e377cac3c5241abd116c2a89c516be8e5fd1799ab64375a58052a4df944eeadc87b0b7785da710906d8
DIST openssl-1.1.1i.tar.gz 9808346 BLAKE2B ca98bab08e1874134da113dd0bda0583c133c7dce5b739f9601641ed2cf97894e5e13d901f0db9367aa5d7b78c552ac598aa0a3c2a3f0a438daae044e29f58d6 SHA512 fe12e0ab9e1688f24dd862ac633d0ab703b499c0f34b53c3560aa0d3879d81d647aa0678ed517dda5efb2711f669fcb1a1e0e24f6eac2efc2cf4eae6b62014d8

@ -1,19 +0,0 @@
Test fuzz was forgotten when
Perl: Use our own globbing wrapper rather than File::Glob::glob
was backported to openssl-1.1.0 branch.
Link: https://github.com/openssl/openssl/commit/b81cfa07ada850fd287d0a0c82ba280907f18ce7
--- a/test/recipes/90-test_fuzz.t
+++ b/test/recipes/90-test_fuzz.t
@@ -9,7 +9,7 @@
use strict;
use warnings;
-use if $^O ne "VMS", 'File::Glob' => qw/glob/;
+use OpenSSL::Glob;
use OpenSSL::Test qw/:DEFAULT srctop_file/;
use OpenSSL::Test::Utils;

@ -1,30 +0,0 @@
From bcf6a94c4bc912ad313ea21abdf7e83bbae450e5 Mon Sep 17 00:00:00 2001
From: Nicola Tuveri <nic.tuv@gmail.com>
Date: Thu, 12 Sep 2019 01:57:47 +0300
Subject: [PATCH] Fix no-ec2m in ec_curve.c (1.1.0)
I made a mistake in d4a5dac9f9242c580fb9d0a4389440eccd3494a7 and
inverted the GF2m and GFp calls in ec_point_get_affine_coordinates, this
fixes it.
---
crypto/ec/ec_curve.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/crypto/ec/ec_curve.c b/crypto/ec/ec_curve.c
index 2d28d7f70bb..6a58b3a23e0 100644
--- a/crypto/ec/ec_curve.c
+++ b/crypto/ec/ec_curve.c
@@ -3200,11 +3200,11 @@ int ec_point_get_affine_coordinates(const EC_GROUP *group,
#ifndef OPENSSL_NO_EC2M
if (field_nid == NID_X9_62_characteristic_two_field) {
- return EC_POINT_get_affine_coordinates_GFp(group, point, x, y, ctx);
+ return EC_POINT_get_affine_coordinates_GF2m(group, point, x, y, ctx);
} else
#endif /* !def(OPENSSL_NO_EC2M) */
if (field_nid == NID_X9_62_prime_field) {
- return EC_POINT_get_affine_coordinates_GF2m(group, point, x, y, ctx);
+ return EC_POINT_get_affine_coordinates_GFp(group, point, x, y, ctx);
} else {
/* this should never happen */
return 0;

@ -1,306 +0,0 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
inherit flag-o-matic toolchain-funcs multilib multilib-minimal
MY_P=${P/_/-}
# This patch set is based on the following files from Fedora 28,
# see https://src.fedoraproject.org/rpms/openssl/blob/f28/f/openssl.spec
# for more details:
# - hobble-openssl (SOURCE1)
# - ec_curve.c (SOURCE12) -- MODIFIED
# - ectest.c (SOURCE13)
# - openssl-1.1.0-ec-curves.patch (PATCH37) -- MODIFIED
BINDIST_PATCH_SET="openssl-1.1.0l-bindist-1.0.tar.xz"
DESCRIPTION="full-strength general purpose cryptography library (including SSL and TLS)"
HOMEPAGE="https://www.openssl.org/"
SRC_URI="mirror://openssl/source/${MY_P}.tar.gz
bindist? (
mirror://gentoo/${BINDIST_PATCH_SET}
https://dev.gentoo.org/~whissi/dist/openssl/${BINDIST_PATCH_SET}
)"
LICENSE="openssl"
SLOT="0/1.1" # .so version of libssl/libcrypto
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x86-linux"
IUSE="+asm bindist elibc_musl rfc3779 sctp cpu_flags_x86_sse2 sslv3 static-libs test tls-heartbeat vanilla zlib"
RESTRICT="!bindist? ( bindist )
!test? ( test )"
RDEPEND=">=app-misc/c_rehash-1.7-r1
zlib? ( >=sys-libs/zlib-1.2.8-r1[static-libs(+)?,${MULTILIB_USEDEP}] )"
DEPEND="${RDEPEND}"
BDEPEND="
>=dev-lang/perl-5
sctp? ( >=net-misc/lksctp-tools-1.0.12 )
test? (
sys-apps/diffutils
sys-devel/bc
)"
PDEPEND="app-misc/ca-certificates"
PATCHES=(
"${FILESDIR}"/${PN}-1.0.2a-x32-asm.patch #542618
"${FILESDIR}"/${PN}-1.1.0j-parallel_install_fix.patch #671602
"${FILESDIR}"/${PN}-1.1.0k-fix-test_fuzz.patch
)
S="${WORKDIR}/${MY_P}"
MULTILIB_WRAPPED_HEADERS=(
usr/include/openssl/opensslconf.h
)
src_prepare() {
if use bindist; then
mv "${WORKDIR}"/bindist-patches/hobble-openssl "${WORKDIR}" || die
bash "${WORKDIR}"/hobble-openssl || die
cp -f "${WORKDIR}"/bindist-patches/ec_curve.c "${S}"/crypto/ec/ || die
cp -f "${WORKDIR}"/bindist-patches/ectest.c "${S}"/test/ || die
eapply "${WORKDIR}"/bindist-patches/ec-curves.patch
local known_failing_test
for known_failing_test in \
30-test_evp_extra.t \
80-test_ssl_new.t \
; do
ebegin "Disabling test '${known_failing_test}' which is known to fail with USE=bindist"
rm test/recipes/${known_failing_test} || die
eend $?
done
# Also see the configure parts below:
# enable-ec \
# $(use_ssl !bindist ec2m) \
fi
# keep this in sync with app-misc/c_rehash
SSL_CNF_DIR="/etc/ssl"
# Make sure we only ever touch Makefile.org and avoid patching a file
# that gets blown away anyways by the Configure script in src_configure
rm -f Makefile
if ! use vanilla ; then
if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]] ; then
[[ ${#PATCHES[@]} -gt 0 ]] && eapply "${PATCHES[@]}"
fi
use bindist || eapply "${FILESDIR}"/${PN}-1.1.0l-fix-no-ec2m-in-ec_curve.c.patch
fi
eapply_user #332661
# make sure the man pages are suffixed #302165
# don't bother building man pages if they're disabled
# Make DOCDIR Gentoo compliant
sed -i \
-e '/^MANSUFFIX/s:=.*:=ssl:' \
-e '/^MAKEDEPPROG/s:=.*:=$(CC):' \
-e $(has noman FEATURES \
&& echo '/^install:/s:install_docs::' \
|| echo '/^MANDIR=/s:=.*:='${EPREFIX}'/usr/share/man:') \
-e "/^DOCDIR/s@\$(BASENAME)@&-${PVR}@" \
Configurations/unix-Makefile.tmpl \
|| die
# show the actual commands in the log
sed -i '/^SET_X/s@=.*@=set -x@' Makefile.shared || die
# quiet out unknown driver argument warnings since openssl
# doesn't have well-split CFLAGS and we're making it even worse
# and 'make depend' uses -Werror for added fun (#417795 again)
[[ ${CC} == *clang* ]] && append-flags -Qunused-arguments
# allow openssl to be cross-compiled
cp "${FILESDIR}"/gentoo.config-1.0.2 gentoo.config || die
chmod a+rx gentoo.config || die
append-flags -fno-strict-aliasing
append-flags $(test-flags-CC -Wa,--noexecstack)
append-cppflags -DOPENSSL_NO_BUF_FREELISTS
# Prefixify Configure shebang (#141906)
sed \
-e "1s,/usr/bin/env,${EPREFIX}&," \
-i Configure || die
# Remove test target when FEATURES=test isn't set
if ! use test ; then
sed \
-e '/^$config{dirs}/s@ "test",@@' \
-i Configure || die
fi
# The config script does stupid stuff to prompt the user. Kill it.
sed -i '/stty -icanon min 0 time 50; read waste/d' config || die
./config --test-sanity || die "I AM NOT SANE"
multilib_copy_sources
}
multilib_src_configure() {
unset APPS #197996
unset SCRIPTS #312551
unset CROSS_COMPILE #311473
tc-export CC AR RANLIB RC
# Clean out patent-or-otherwise-encumbered code
# Camellia: Royalty Free https://en.wikipedia.org/wiki/Camellia_(cipher)
# IDEA: Expired https://en.wikipedia.org/wiki/International_Data_Encryption_Algorithm
# EC: ????????? ??/??/2015 https://en.wikipedia.org/wiki/Elliptic_Curve_Cryptography
# MDC2: Expired https://en.wikipedia.org/wiki/MDC-2
# RC5: Expired https://en.wikipedia.org/wiki/RC5
use_ssl() { usex $1 "enable-${2:-$1}" "no-${2:-$1}" " ${*:3}" ; }
echoit() { echo "$@" ; "$@" ; }
local krb5=$(has_version app-crypt/mit-krb5 && echo "MIT" || echo "Heimdal")
# See if our toolchain supports __uint128_t. If so, it's 64bit
# friendly and can use the nicely optimized code paths. #460790
local ec_nistp_64_gcc_128
# Disable it for now though #469976
#if ! use bindist ; then
# echo "__uint128_t i;" > "${T}"/128.c
# if ${CC} ${CFLAGS} -c "${T}"/128.c -o /dev/null >&/dev/null ; then
# ec_nistp_64_gcc_128="enable-ec_nistp_64_gcc_128"
# fi
#fi
local sslout=$(./gentoo.config)
einfo "Use configuration ${sslout:-(openssl knows best)}"
local config="Configure"
[[ -z ${sslout} ]] && config="config"
# Fedora hobbled-EC needs 'no-ec2m'
# 'srp' was restricted until early 2017 as well.
# "disable-deprecated" option breaks too many consumers.
# Don't set it without thorough revdeps testing.
# Make sure user flags don't get added *yet* to avoid duplicated
# flags.
CFLAGS= LDFLAGS= echoit \
./${config} \
${sslout} \
$(use cpu_flags_x86_sse2 || echo "no-sse2") \
enable-camellia \
enable-ec \
$(use_ssl !bindist ec2m) \
enable-srp \
$(use elibc_musl && echo "no-async") \
${ec_nistp_64_gcc_128} \
enable-idea \
enable-mdc2 \
enable-rc5 \
$(use_ssl sslv3 ssl3) \
$(use_ssl sslv3 ssl3-method) \
$(use_ssl asm) \
$(use_ssl rfc3779) \
$(use_ssl sctp) \
$(use_ssl tls-heartbeat heartbeats) \
$(use_ssl zlib) \
--prefix="${EPREFIX}"/usr \
--openssldir="${EPREFIX}"${SSL_CNF_DIR} \
--libdir=$(get_libdir) \
shared threads \
|| die
# Clean out hardcoded flags that openssl uses
local DEFAULT_CFLAGS=$(grep ^CFLAGS= Makefile | LC_ALL=C sed \
-e 's:^CFLAGS=::' \
-e 's:\(^\| \)-fomit-frame-pointer::g' \
-e 's:\(^\| \)-O[^ ]*::g' \
-e 's:\(^\| \)-march=[^ ]*::g' \
-e 's:\(^\| \)-mcpu=[^ ]*::g' \
-e 's:\(^\| \)-m[^ ]*::g' \
-e 's:^ *::' \
-e 's: *$::' \
-e 's: \+: :g' \
-e 's:\\:\\\\:g'
)
# Now insert clean default flags with user flags
sed -i \
-e "/^CFLAGS=/s|=.*|=${DEFAULT_CFLAGS} ${CFLAGS}|" \
-e "/^LDFLAGS=/s|=[[:space:]]*$|=${LDFLAGS}|" \
Makefile || die
}
multilib_src_compile() {
# depend is needed to use $confopts; it also doesn't matter
# that it's -j1 as the code itself serializes subdirs
emake -j1 depend
emake all
}
multilib_src_test() {
emake -j1 test
}
multilib_src_install() {
# We need to create $ED/usr on our own to avoid a race condition #665130
if [[ ! -d "${ED}/usr" ]]; then
# We can only create this directory once
mkdir "${ED}"/usr || die
fi
emake DESTDIR="${D}" install
}
multilib_src_install_all() {
# openssl installs perl version of c_rehash by default, but
# we provide a shell version via app-misc/c_rehash
rm "${ED}"/usr/bin/c_rehash || die
dodoc CHANGES* FAQ NEWS README doc/*.txt doc/${PN}-c-indent.el
# This is crappy in that the static archives are still built even
# when USE=static-libs. But this is due to a failing in the openssl
# build system: the static archives are built as PIC all the time.
# Only way around this would be to manually configure+compile openssl
# twice; once with shared lib support enabled and once without.
use static-libs || rm -f "${ED}"/usr/lib*/lib*.a
# create the certs directory
keepdir ${SSL_CNF_DIR}/certs
# Namespace openssl programs to prevent conflicts with other man pages
cd "${ED}"/usr/share/man || die
local m d s
for m in $(find . -type f | xargs grep -L '#include') ; do
d=${m%/*} ; d=${d#./} ; m=${m##*/}
[[ ${m} == openssl.1* ]] && continue
[[ -n $(find -L ${d} -type l) ]] && die "erp, broken links already!"
mv ${d}/{,ssl-}${m}
# fix up references to renamed man pages
sed -i '/^[.]SH "SEE ALSO"/,/^[.]/s:\([^(, ]*(1)\):ssl-\1:g' ${d}/ssl-${m}
ln -s ssl-${m} ${d}/openssl-${m}
# locate any symlinks that point to this man page ... we assume
# that any broken links are due to the above renaming
for s in $(find -L ${d} -type l) ; do
s=${s##*/}
rm -f ${d}/${s}
# We don't want to "|| die" here
ln -s ssl-${m} ${d}/ssl-${s}
ln -s ssl-${s} ${d}/openssl-${s}
done
done
[[ -n $(find -L ${d} -type l) ]] && die "broken manpage links found :("
dodir /etc/sandbox.d #254521
echo 'SANDBOX_PREDICT="/dev/crypto"' > "${ED}"/etc/sandbox.d/10openssl
diropts -m0700
keepdir ${SSL_CNF_DIR}/private
}
pkg_postinst() {
ebegin "Running 'c_rehash ${EROOT}${SSL_CNF_DIR}/certs/' to rebuild hashes #333069"
c_rehash "${EROOT}${SSL_CNF_DIR}/certs" >/dev/null
eend $?
}

@ -1,324 +0,0 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
inherit flag-o-matic toolchain-funcs multilib multilib-minimal
MY_P=${P/_/-}
# This patch set is based on the following files from Fedora 31,
# see https://src.fedoraproject.org/rpms/openssl/blob/f31/f/openssl.spec
# for more details:
# - hobble-openssl (SOURCE1)
# - ec_curve.c (SOURCE12) -- MODIFIED
# - ectest.c (SOURCE13)
# - openssl-1.1.1-ec-curves.patch (PATCH37) -- MODIFIED
BINDIST_PATCH_SET="openssl-1.1.1e-bindist-1.0.tar.xz"
DESCRIPTION="full-strength general purpose cryptography library (including SSL and TLS)"
HOMEPAGE="https://www.openssl.org/"
SRC_URI="mirror://openssl/source/${MY_P}.tar.gz
bindist? (
mirror://gentoo/${BINDIST_PATCH_SET}
https://dev.gentoo.org/~whissi/dist/openssl/${BINDIST_PATCH_SET}
)"
LICENSE="openssl"
SLOT="0/1.1" # .so version of libssl/libcrypto
[[ "${PV}" = *_pre* ]] || \
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~x86-linux"
IUSE="+asm bindist elibc_musl rfc3779 sctp cpu_flags_x86_sse2 sslv3 static-libs test tls-heartbeat vanilla zlib"
RESTRICT="!bindist? ( bindist )
!test? ( test )"
RDEPEND=">=app-misc/c_rehash-1.7-r1
zlib? ( >=sys-libs/zlib-1.2.8-r1[static-libs(+)?,${MULTILIB_USEDEP}] )"
DEPEND="${RDEPEND}"
BDEPEND="
>=dev-lang/perl-5
sctp? ( >=net-misc/lksctp-tools-1.0.12 )
test? (
sys-apps/diffutils
sys-devel/bc
sys-process/procps
)"
PDEPEND="app-misc/ca-certificates"
PATCHES=(
"${FILESDIR}"/${PN}-1.1.0j-parallel_install_fix.patch #671602
)
S="${WORKDIR}/${MY_P}"
# force upgrade to prevent broken login, bug 696950
RDEPEND+=" !<net-misc/openssh-8.0_p1-r3"
MULTILIB_WRAPPED_HEADERS=(
usr/include/openssl/opensslconf.h
)
pkg_setup() {
[[ ${MERGE_TYPE} == binary ]] && return
# must check in pkg_setup; sysctl don't work with userpriv!
if has test ${FEATURES} && use sctp; then
# test_ssl_new will fail with "Ensure SCTP AUTH chunks are enabled in kernel"
# if sctp.auth_enable is not enabled.
local sctp_auth_status=$(sysctl -n net.sctp.auth_enable 2>/dev/null)
if [[ -z "${sctp_auth_status}" ]] || [[ ${sctp_auth_status} != 1 ]]; then
die "FEATURES=test with USE=sctp requires net.sctp.auth_enable=1!"
fi
fi
}
src_prepare() {
# allow openssl to be cross-compiled
cp "${FILESDIR}"/gentoo.config-1.0.2 gentoo.config || die
chmod a+rx gentoo.config || die
if use bindist; then
mv "${WORKDIR}"/bindist-patches/hobble-openssl "${WORKDIR}" || die
bash "${WORKDIR}"/hobble-openssl || die
cp -f "${WORKDIR}"/bindist-patches/ec_curve.c "${S}"/crypto/ec/ || die
cp -f "${WORKDIR}"/bindist-patches/ectest.c "${S}"/test/ || die
eapply "${WORKDIR}"/bindist-patches/ec-curves.patch
local known_failing_test
for known_failing_test in \
30-test_evp_extra.t \
80-test_ssl_new.t \
; do
ebegin "Disabling test '${known_failing_test}' which is known to fail with USE=bindist"
rm test/recipes/${known_failing_test} || die
eend $?
done
# Also see the configure parts below:
# enable-ec \
# $(use_ssl !bindist ec2m) \
fi
# keep this in sync with app-misc/c_rehash
SSL_CNF_DIR="/etc/ssl"
# Make sure we only ever touch Makefile.org and avoid patching a file
# that gets blown away anyways by the Configure script in src_configure
rm -f Makefile
if ! use vanilla ; then
if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]] ; then
[[ ${#PATCHES[@]} -gt 0 ]] && eapply "${PATCHES[@]}"
fi
fi
eapply_user #332661
if has test ${FEATURES} && use sctp && has network-sandbox ${FEATURES}; then
ebegin "Disabling test '80-test_ssl_new.t' which is known to fail with FEATURES=network-sandbox"
rm test/recipes/80-test_ssl_new.t || die
eend $?
fi
# make sure the man pages are suffixed #302165
# don't bother building man pages if they're disabled
# Make DOCDIR Gentoo compliant
sed -i \
-e '/^MANSUFFIX/s:=.*:=ssl:' \
-e '/^MAKEDEPPROG/s:=.*:=$(CC):' \
-e $(has noman FEATURES \
&& echo '/^install:/s:install_docs::' \
|| echo '/^MANDIR=/s:=.*:='${EPREFIX}'/usr/share/man:') \
-e "/^DOCDIR/s@\$(BASENAME)@&-${PVR}@" \
Configurations/unix-Makefile.tmpl \
|| die
# quiet out unknown driver argument warnings since openssl
# doesn't have well-split CFLAGS and we're making it even worse
# and 'make depend' uses -Werror for added fun (#417795 again)
[[ ${CC} == *clang* ]] && append-flags -Qunused-arguments
append-flags -fno-strict-aliasing
append-flags $(test-flags-CC -Wa,--noexecstack)
append-cppflags -DOPENSSL_NO_BUF_FREELISTS
# Prefixify Configure shebang (#141906)
sed \
-e "1s,/usr/bin/env,${EPREFIX}&," \
-i Configure || die
# Remove test target when FEATURES=test isn't set
if ! use test ; then
sed \
-e '/^$config{dirs}/s@ "test",@@' \
-i Configure || die
fi
# The config script does stupid stuff to prompt the user. Kill it.
sed -i '/stty -icanon min 0 time 50; read waste/d' config || die
./config --test-sanity || die "I AM NOT SANE"
multilib_copy_sources
}
multilib_src_configure() {
unset APPS #197996
unset SCRIPTS #312551
unset CROSS_COMPILE #311473
tc-export CC AR RANLIB RC
# Clean out patent-or-otherwise-encumbered code
# Camellia: Royalty Free https://en.wikipedia.org/wiki/Camellia_(cipher)
# IDEA: Expired https://en.wikipedia.org/wiki/International_Data_Encryption_Algorithm
# EC: ????????? ??/??/2015 https://en.wikipedia.org/wiki/Elliptic_Curve_Cryptography
# MDC2: Expired https://en.wikipedia.org/wiki/MDC-2
# RC5: Expired https://en.wikipedia.org/wiki/RC5
use_ssl() { usex $1 "enable-${2:-$1}" "no-${2:-$1}" " ${*:3}" ; }
echoit() { echo "$@" ; "$@" ; }
local krb5=$(has_version app-crypt/mit-krb5 && echo "MIT" || echo "Heimdal")
# See if our toolchain supports __uint128_t. If so, it's 64bit
# friendly and can use the nicely optimized code paths. #460790
local ec_nistp_64_gcc_128
# Disable it for now though #469976
#if ! use bindist ; then
# echo "__uint128_t i;" > "${T}"/128.c
# if ${CC} ${CFLAGS} -c "${T}"/128.c -o /dev/null >&/dev/null ; then
# ec_nistp_64_gcc_128="enable-ec_nistp_64_gcc_128"
# fi
#fi
local sslout=$(./gentoo.config)
einfo "Use configuration ${sslout:-(openssl knows best)}"
local config="Configure"
[[ -z ${sslout} ]] && config="config"
# Fedora hobbled-EC needs 'no-ec2m'
# 'srp' was restricted until early 2017 as well.
# "disable-deprecated" option breaks too many consumers.
# Don't set it without thorough revdeps testing.
# Make sure user flags don't get added *yet* to avoid duplicated
# flags.
CFLAGS= LDFLAGS= echoit \
./${config} \
${sslout} \
$(use cpu_flags_x86_sse2 || echo "no-sse2") \
enable-camellia \
enable-ec \
$(use_ssl !bindist ec2m) \
enable-srp \
$(use elibc_musl && echo "no-async") \
${ec_nistp_64_gcc_128} \
enable-idea \
enable-mdc2 \
enable-rc5 \
$(use_ssl sslv3 ssl3) \
$(use_ssl sslv3 ssl3-method) \
$(use_ssl asm) \
$(use_ssl rfc3779) \
$(use_ssl sctp) \
$(use_ssl tls-heartbeat heartbeats) \
$(use_ssl zlib) \
--prefix="${EPREFIX}"/usr \
--openssldir="${EPREFIX}"${SSL_CNF_DIR} \
--libdir=$(get_libdir) \
shared threads \
|| die
# Clean out hardcoded flags that openssl uses
local DEFAULT_CFLAGS=$(grep ^CFLAGS= Makefile | LC_ALL=C sed \
-e 's:^CFLAGS=::' \
-e 's:\(^\| \)-fomit-frame-pointer::g' \
-e 's:\(^\| \)-O[^ ]*::g' \
-e 's:\(^\| \)-march=[^ ]*::g' \
-e 's:\(^\| \)-mcpu=[^ ]*::g' \
-e 's:\(^\| \)-m[^ ]*::g' \
-e 's:^ *::' \
-e 's: *$::' \
-e 's: \+: :g' \
-e 's:\\:\\\\:g'
)
# Now insert clean default flags with user flags
sed -i \
-e "/^CFLAGS=/s|=.*|=${DEFAULT_CFLAGS} ${CFLAGS}|" \
-e "/^LDFLAGS=/s|=[[:space:]]*$|=${LDFLAGS}|" \
Makefile || die
}
multilib_src_compile() {
# depend is needed to use $confopts; it also doesn't matter
# that it's -j1 as the code itself serializes subdirs
emake -j1 depend
emake all
}
multilib_src_test() {
emake -j1 test
}
multilib_src_install() {
# We need to create $ED/usr on our own to avoid a race condition #665130
if [[ ! -d "${ED}/usr" ]]; then
# We can only create this directory once
mkdir "${ED}"/usr || die
fi
emake DESTDIR="${D}" install
}
multilib_src_install_all() {
# openssl installs perl version of c_rehash by default, but
# we provide a shell version via app-misc/c_rehash
rm "${ED}"/usr/bin/c_rehash || die
dodoc CHANGES* FAQ NEWS README doc/*.txt doc/${PN}-c-indent.el
# This is crappy in that the static archives are still built even
# when USE=static-libs. But this is due to a failing in the openssl
# build system: the static archives are built as PIC all the time.
# Only way around this would be to manually configure+compile openssl
# twice; once with shared lib support enabled and once without.
use static-libs || rm -f "${ED}"/usr/lib*/lib*.a
# create the certs directory
keepdir ${SSL_CNF_DIR}/certs
# Namespace openssl programs to prevent conflicts with other man pages
cd "${ED}"/usr/share/man || die
local m d s
for m in $(find . -type f | xargs grep -L '#include') ; do
d=${m%/*} ; d=${d#./} ; m=${m##*/}
[[ ${m} == openssl.1* ]] && continue
[[ -n $(find -L ${d} -type l) ]] && die "erp, broken links already!"
mv ${d}/{,ssl-}${m}
# fix up references to renamed man pages
sed -i '/^[.]SH "SEE ALSO"/,/^[.]/s:\([^(, ]*(1)\):ssl-\1:g' ${d}/ssl-${m}
ln -s ssl-${m} ${d}/openssl-${m}
# locate any symlinks that point to this man page ... we assume
# that any broken links are due to the above renaming
for s in $(find -L ${d} -type l) ; do
s=${s##*/}
rm -f ${d}/${s}
# We don't want to "|| die" here
ln -s ssl-${m} ${d}/ssl-${s}
ln -s ssl-${s} ${d}/openssl-${s}
done
done
[[ -n $(find -L ${d} -type l) ]] && die "broken manpage links found :("
dodir /etc/sandbox.d #254521
echo 'SANDBOX_PREDICT="/dev/crypto"' > "${ED}"/etc/sandbox.d/10openssl
diropts -m0700
keepdir ${SSL_CNF_DIR}/private
}
pkg_postinst() {
ebegin "Running 'c_rehash ${EROOT}${SSL_CNF_DIR}/certs/' to rebuild hashes #333069"
c_rehash "${EROOT}${SSL_CNF_DIR}/certs" >/dev/null
eend $?
}

@ -1,324 +0,0 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
inherit flag-o-matic toolchain-funcs multilib multilib-minimal
MY_P=${P/_/-}
# This patch set is based on the following files from Fedora 31,
# see https://src.fedoraproject.org/rpms/openssl/blob/f31/f/openssl.spec
# for more details:
# - hobble-openssl (SOURCE1)
# - ec_curve.c (SOURCE12) -- MODIFIED
# - ectest.c (SOURCE13)
# - openssl-1.1.1-ec-curves.patch (PATCH37) -- MODIFIED
BINDIST_PATCH_SET="openssl-1.1.1e-bindist-1.0.tar.xz"
DESCRIPTION="full-strength general purpose cryptography library (including SSL and TLS)"
HOMEPAGE="https://www.openssl.org/"
SRC_URI="mirror://openssl/source/${MY_P}.tar.gz
bindist? (
mirror://gentoo/${BINDIST_PATCH_SET}
https://dev.gentoo.org/~whissi/dist/openssl/${BINDIST_PATCH_SET}
)"
LICENSE="openssl"
SLOT="0/1.1" # .so version of libssl/libcrypto
[[ "${PV}" = *_pre* ]] || \
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x86-linux"
IUSE="+asm bindist elibc_musl rfc3779 sctp cpu_flags_x86_sse2 sslv3 static-libs test tls-heartbeat vanilla zlib"
RESTRICT="!bindist? ( bindist )
!test? ( test )"
RDEPEND=">=app-misc/c_rehash-1.7-r1
zlib? ( >=sys-libs/zlib-1.2.8-r1[static-libs(+)?,${MULTILIB_USEDEP}] )"
DEPEND="${RDEPEND}"
BDEPEND="
>=dev-lang/perl-5
sctp? ( >=net-misc/lksctp-tools-1.0.12 )
test? (
sys-apps/diffutils
sys-devel/bc
sys-process/procps
)"
PDEPEND="app-misc/ca-certificates"
PATCHES=(
"${FILESDIR}"/${PN}-1.1.0j-parallel_install_fix.patch #671602
)
S="${WORKDIR}/${MY_P}"
# force upgrade to prevent broken login, bug 696950
RDEPEND+=" !<net-misc/openssh-8.0_p1-r3"
MULTILIB_WRAPPED_HEADERS=(
usr/include/openssl/opensslconf.h
)
pkg_setup() {
[[ ${MERGE_TYPE} == binary ]] && return
# must check in pkg_setup; sysctl don't work with userpriv!
if has test ${FEATURES} && use sctp; then
# test_ssl_new will fail with "Ensure SCTP AUTH chunks are enabled in kernel"
# if sctp.auth_enable is not enabled.
local sctp_auth_status=$(sysctl -n net.sctp.auth_enable 2>/dev/null)
if [[ -z "${sctp_auth_status}" ]] || [[ ${sctp_auth_status} != 1 ]]; then
die "FEATURES=test with USE=sctp requires net.sctp.auth_enable=1!"
fi
fi
}
src_prepare() {
# allow openssl to be cross-compiled
cp "${FILESDIR}"/gentoo.config-1.0.2 gentoo.config || die
chmod a+rx gentoo.config || die
if use bindist; then
mv "${WORKDIR}"/bindist-patches/hobble-openssl "${WORKDIR}" || die
bash "${WORKDIR}"/hobble-openssl || die
cp -f "${WORKDIR}"/bindist-patches/ec_curve.c "${S}"/crypto/ec/ || die
cp -f "${WORKDIR}"/bindist-patches/ectest.c "${S}"/test/ || die
eapply "${WORKDIR}"/bindist-patches/ec-curves.patch
local known_failing_test
for known_failing_test in \
30-test_evp_extra.t \
80-test_ssl_new.t \
; do
ebegin "Disabling test '${known_failing_test}' which is known to fail with USE=bindist"
rm test/recipes/${known_failing_test} || die
eend $?
done
# Also see the configure parts below:
# enable-ec \
# $(use_ssl !bindist ec2m) \
fi
# keep this in sync with app-misc/c_rehash
SSL_CNF_DIR="/etc/ssl"
# Make sure we only ever touch Makefile.org and avoid patching a file
# that gets blown away anyways by the Configure script in src_configure
rm -f Makefile
if ! use vanilla ; then
if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]] ; then
[[ ${#PATCHES[@]} -gt 0 ]] && eapply "${PATCHES[@]}"
fi
fi
eapply_user #332661
if has test ${FEATURES} && use sctp && has network-sandbox ${FEATURES}; then
ebegin "Disabling test '80-test_ssl_new.t' which is known to fail with FEATURES=network-sandbox"
rm test/recipes/80-test_ssl_new.t || die
eend $?
fi
# make sure the man pages are suffixed #302165
# don't bother building man pages if they're disabled
# Make DOCDIR Gentoo compliant
sed -i \
-e '/^MANSUFFIX/s:=.*:=ssl:' \
-e '/^MAKEDEPPROG/s:=.*:=$(CC):' \
-e $(has noman FEATURES \
&& echo '/^install:/s:install_docs::' \
|| echo '/^MANDIR=/s:=.*:='${EPREFIX}'/usr/share/man:') \
-e "/^DOCDIR/s@\$(BASENAME)@&-${PVR}@" \
Configurations/unix-Makefile.tmpl \
|| die
# quiet out unknown driver argument warnings since openssl
# doesn't have well-split CFLAGS and we're making it even worse
# and 'make depend' uses -Werror for added fun (#417795 again)
[[ ${CC} == *clang* ]] && append-flags -Qunused-arguments
append-flags -fno-strict-aliasing
append-flags $(test-flags-CC -Wa,--noexecstack)
append-cppflags -DOPENSSL_NO_BUF_FREELISTS
# Prefixify Configure shebang (#141906)
sed \
-e "1s,/usr/bin/env,${EPREFIX}&," \
-i Configure || die
# Remove test target when FEATURES=test isn't set
if ! use test ; then
sed \
-e '/^$config{dirs}/s@ "test",@@' \
-i Configure || die
fi
# The config script does stupid stuff to prompt the user. Kill it.
sed -i '/stty -icanon min 0 time 50; read waste/d' config || die
./config --test-sanity || die "I AM NOT SANE"
multilib_copy_sources
}
multilib_src_configure() {
unset APPS #197996
unset SCRIPTS #312551
unset CROSS_COMPILE #311473
tc-export CC AR RANLIB RC
# Clean out patent-or-otherwise-encumbered code
# Camellia: Royalty Free https://en.wikipedia.org/wiki/Camellia_(cipher)
# IDEA: Expired https://en.wikipedia.org/wiki/International_Data_Encryption_Algorithm
# EC: ????????? ??/??/2015 https://en.wikipedia.org/wiki/Elliptic_Curve_Cryptography
# MDC2: Expired https://en.wikipedia.org/wiki/MDC-2
# RC5: Expired https://en.wikipedia.org/wiki/RC5
use_ssl() { usex $1 "enable-${2:-$1}" "no-${2:-$1}" " ${*:3}" ; }
echoit() { echo "$@" ; "$@" ; }
local krb5=$(has_version app-crypt/mit-krb5 && echo "MIT" || echo "Heimdal")
# See if our toolchain supports __uint128_t. If so, it's 64bit
# friendly and can use the nicely optimized code paths. #460790
local ec_nistp_64_gcc_128
# Disable it for now though #469976
#if ! use bindist ; then
# echo "__uint128_t i;" > "${T}"/128.c
# if ${CC} ${CFLAGS} -c "${T}"/128.c -o /dev/null >&/dev/null ; then
# ec_nistp_64_gcc_128="enable-ec_nistp_64_gcc_128"
# fi
#fi
local sslout=$(./gentoo.config)
einfo "Use configuration ${sslout:-(openssl knows best)}"
local config="Configure"
[[ -z ${sslout} ]] && config="config"
# Fedora hobbled-EC needs 'no-ec2m'
# 'srp' was restricted until early 2017 as well.
# "disable-deprecated" option breaks too many consumers.
# Don't set it without thorough revdeps testing.
# Make sure user flags don't get added *yet* to avoid duplicated
# flags.
CFLAGS= LDFLAGS= echoit \
./${config} \
${sslout} \
$(use cpu_flags_x86_sse2 || echo "no-sse2") \
enable-camellia \
enable-ec \
$(use_ssl !bindist ec2m) \
enable-srp \
$(use elibc_musl && echo "no-async") \
${ec_nistp_64_gcc_128} \
enable-idea \
enable-mdc2 \
enable-rc5 \
$(use_ssl sslv3 ssl3) \
$(use_ssl sslv3 ssl3-method) \
$(use_ssl asm) \
$(use_ssl rfc3779) \
$(use_ssl sctp) \
$(use_ssl tls-heartbeat heartbeats) \
$(use_ssl zlib) \
--prefix="${EPREFIX}"/usr \
--openssldir="${EPREFIX}"${SSL_CNF_DIR} \
--libdir=$(get_libdir) \
shared threads \
|| die
# Clean out hardcoded flags that openssl uses
local DEFAULT_CFLAGS=$(grep ^CFLAGS= Makefile | LC_ALL=C sed \
-e 's:^CFLAGS=::' \
-e 's:\(^\| \)-fomit-frame-pointer::g' \
-e 's:\(^\| \)-O[^ ]*::g' \
-e 's:\(^\| \)-march=[^ ]*::g' \
-e 's:\(^\| \)-mcpu=[^ ]*::g' \
-e 's:\(^\| \)-m[^ ]*::g' \
-e 's:^ *::' \
-e 's: *$::' \
-e 's: \+: :g' \
-e 's:\\:\\\\:g'
)
# Now insert clean default flags with user flags
sed -i \
-e "/^CFLAGS=/s|=.*|=${DEFAULT_CFLAGS} ${CFLAGS}|" \
-e "/^LDFLAGS=/s|=[[:space:]]*$|=${LDFLAGS}|" \
Makefile || die
}
multilib_src_compile() {
# depend is needed to use $confopts; it also doesn't matter
# that it's -j1 as the code itself serializes subdirs
emake -j1 depend
emake all
}
multilib_src_test() {
emake -j1 test
}
multilib_src_install() {
# We need to create $ED/usr on our own to avoid a race condition #665130
if [[ ! -d "${ED}/usr" ]]; then
# We can only create this directory once
mkdir "${ED}"/usr || die
fi
emake DESTDIR="${D}" install
}
multilib_src_install_all() {
# openssl installs perl version of c_rehash by default, but
# we provide a shell version via app-misc/c_rehash
rm "${ED}"/usr/bin/c_rehash || die
dodoc CHANGES* FAQ NEWS README doc/*.txt doc/${PN}-c-indent.el
# This is crappy in that the static archives are still built even
# when USE=static-libs. But this is due to a failing in the openssl
# build system: the static archives are built as PIC all the time.
# Only way around this would be to manually configure+compile openssl
# twice; once with shared lib support enabled and once without.
use static-libs || rm -f "${ED}"/usr/lib*/lib*.a
# create the certs directory
keepdir ${SSL_CNF_DIR}/certs
# Namespace openssl programs to prevent conflicts with other man pages
cd "${ED}"/usr/share/man || die
local m d s
for m in $(find . -type f | xargs grep -L '#include') ; do
d=${m%/*} ; d=${d#./} ; m=${m##*/}
[[ ${m} == openssl.1* ]] && continue
[[ -n $(find -L ${d} -type l) ]] && die "erp, broken links already!"
mv ${d}/{,ssl-}${m}
# fix up references to renamed man pages
sed -i '/^[.]SH "SEE ALSO"/,/^[.]/s:\([^(, ]*(1)\):ssl-\1:g' ${d}/ssl-${m}
ln -s ssl-${m} ${d}/openssl-${m}
# locate any symlinks that point to this man page ... we assume
# that any broken links are due to the above renaming
for s in $(find -L ${d} -type l) ; do
s=${s##*/}
rm -f ${d}/${s}
# We don't want to "|| die" here
ln -s ssl-${m} ${d}/ssl-${s}
ln -s ssl-${s} ${d}/openssl-${s}
done
done
[[ -n $(find -L ${d} -type l) ]] && die "broken manpage links found :("
dodir /etc/sandbox.d #254521
echo 'SANDBOX_PREDICT="/dev/crypto"' > "${ED}"/etc/sandbox.d/10openssl
diropts -m0700
keepdir ${SSL_CNF_DIR}/private
}
pkg_postinst() {
ebegin "Running 'c_rehash ${EROOT}${SSL_CNF_DIR}/certs/' to rebuild hashes #333069"
c_rehash "${EROOT}${SSL_CNF_DIR}/certs" >/dev/null
eend $?
}

@ -1,2 +1,3 @@
DIST pugixml-1.10.tar.gz 381990 BLAKE2B ea446d11fe5213a5250b7e737a9e80a3976454724e1a1c326b689214ad4d3e183abd417a7782b3d5c68a0aabce42228e121352e4d2dd33f5f2bb2334f6c72c27 SHA512 bfc80661005d0a0fb82ca6d5299e5efdd1bb468e11ee52d7ee9367e15776d28efb60266ce03842715cd43aae023afc2b369797bb3cbecd6d6a65c3ae3903e469
DIST pugixml-1.11.3.tar.gz 386244 BLAKE2B 1c83b0e0c1f464d3ef2efc19decc425bac14b5f92face3ea3bbd9f970e442043d3c4d4c471178c8891d7b3245aa6193d89fe3bfea122886ec0261418a69cc2c6 SHA512 4af70f11bbbb8a33240bf12c6ea14973963303a8cf7fa6ce56376726a6c4764c2f6c87a4e6d7672961850a84d8f430712686d744da8bc12d5fe0a711dad6e90b
DIST pugixml-1.11.4.tar.gz 386229 BLAKE2B 93d9c537f10e3a12297e4d6a39f2866bd5c9678c6aff83e20fb79b6587191b6586b1fe4d9dd995a7be05cc9281cd9910fae3eddf6b2eac216873e918a5cf3231 SHA512 c83f57ef2492eee359d979597fb5089b8eca547bb9d41cfbb6bcf43d59fe75e6780b0f31dd593145ec9888c065153aba52702667e2de213fa080cd51e9e13a38

@ -0,0 +1,20 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit cmake
if [[ ${PV} == *9999 ]] ; then
EGIT_REPO_URI="https://github.com/zeux/${PN}.git"
inherit git-r3
else
SRC_URI="https://github.com/zeux/${PN}/releases/download/v${PV}/${P}.tar.gz"
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
fi
DESCRIPTION="Light-weight, simple, and fast XML parser for C++ with XPath support"
HOMEPAGE="https://pugixml.org/ https://github.com/zeux/pugixml/"
LICENSE="MIT"
SLOT="0"

Binary file not shown.

@ -5,7 +5,7 @@ EAPI=7
LUA_COMPAT=( lua5-{1..4} luajit )
inherit cmake lua unpacker
inherit cmake lua-single unpacker
# e.g. MY_PV = a.b.c-d
MY_PV="$(ver_rs 3 -)"
@ -46,11 +46,16 @@ src_prepare() {
cmake_src_prepare
}
lua_src_configure() {
# This could in theory be multi-impl (and we have an ebuild in git history,
# 1.32.0.0-r101, which implements it) - the only revdep currently in the tree,
# app-editors/neovim, actually links against luv instead of trying to load it
# as a module. We could probably implement some sort of a hack for this
# - but given how messy it would be, don't bother unless someone actually requests
# luv multi-impl support.
src_configure() {
lua_compat_dir="${WORKDIR}/lua-compat-5.3-${LUA_COMPAT_PV}"
local mycmakeargs=(
-DINSTALL_LIB_DIR="$(lua_get_cmod_dir)"
-DBUILD_MODULE=OFF
-DLUA_BUILD_TYPE=System
-DLUA_COMPAT53_DIR="${lua_compat_dir}"
@ -70,44 +75,8 @@ lua_src_configure() {
cmake_src_configure
}
lua_src_test() {
# We need to copy the implementation-specific library back so that the tests see it
rm -f ./luv.so
src_test() {
# We need to copy the library back so that the tests see it
ln -s "${BUILD_DIR}/libluv.so" "./luv.so" || die "Failed to symlink library for tests"
${ELUA} "tests/run.lua" || die "Tests failed"
}
lua_src_install() {
cmake_src_install
mkdir -p "${ED}"/usr/$(get_libdir)/pkgconfig && \
mv "${ED}$(lua_get_cmod_dir)"/pkgconfig/libluv.pc \
"${ED}"/usr/$(get_libdir)/pkgconfig/libluv-${ELUA}.pc || \
die "Failed make pkgconfig file for ${ELUA} implementation-specific"
rmdir "${ED}$(lua_get_cmod_dir)"/pkgconfig || die
}
src_configure() {
lua_foreach_impl lua_src_configure
}
src_compile() {
lua_foreach_impl cmake_src_compile
}
src_test() {
lua_foreach_impl lua_src_test
}
src_install() {
lua_foreach_impl lua_src_install
}
pkg_postinst() {
ewarn "Please note that in order to properly support multiple Lua implementations,"
ewarn "this ebuild of ${PN} installs its library files into implementation-specific"
ewarn "module directories, as well as multiple .pc files named after implementations"
ewarn "(e.g. 'libluv-lua5.3.pc'). Since upstream by default only supports a single"
ewarn "Lua implementation at a time and thus only provides a single, unversioned"
ewarn ".pc file, projects depending on ${PN} might require changes in order to"
ewarn "support the multi-implementation approach."
}

Binary file not shown.

@ -13,7 +13,7 @@ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~x86"
KEYWORDS="~amd64 x86"
RDEPEND="dev-libs/icu:="
DEPEND="${RDEPEND}"

@ -1 +1,2 @@
DIST aiorpcX-0.18.4.gh.tar.gz 65500 BLAKE2B 8c84ace1e2bc974e68702e25efe126f7f69dd7451f438ccd924ee8be3c0cccc5c9b3d116bf2d0a755b013bdfe61a398d856031970e5ae82b571af09551231bed SHA512 d4df1343f575af72dff31f1794485c0cbb5b6c31d6d933b07cc8375a1418ad4fb81b2649b3c60adaaeab75b7a5d959838accc38269373310eb07895acf4c9496
DIST aiorpcX-0.18.5.gh.tar.gz 65622 BLAKE2B 68b91e2cfb869c6971efb525fd35132c38ab9092362944fa77476bdb33f076f8415a079d97238e2c4ffbc6c9df596b468c2b6640389a11d1607b1a99aa8dc68d SHA512 5eb8417ce2ffb70208aec79e44ee0d8671c4cf86745f2d8061cf013c4ad17f83db68ed3ed43ef61df196e4ef073a21f9a4e22df46b00ce3054babf98dfcd1eaf

@ -0,0 +1,28 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{7..8} )
inherit distutils-r1
DESCRIPTION="Generic async RPC implementation, including JSON-RPC"
HOMEPAGE="https://pypi.org/project/aiorpcX/
https://github.com/kyuupichan/aiorpcX/"
SRC_URI="https://github.com/kyuupichan/aiorpcX/archive/${PV}.tar.gz
-> ${P}.gh.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""
BDEPEND="
test? (
dev-python/pytest-asyncio[${PYTHON_USEDEP}]
dev-python/uvloop[${PYTHON_USEDEP}]
dev-python/websockets[${PYTHON_USEDEP}]
)"
distutils_enable_tests pytest

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

Loading…
Cancel
Save