Sync with portage [Fri Oct 25 22:13:23 MSK 2019].

mhiretskiy 1508
root 5 years ago
parent 6ef543e84c
commit 1992732bea

Binary file not shown.

Binary file not shown.

@ -3,4 +3,6 @@ DIST mongo-tools-3.6.14.tar.gz 4990861 BLAKE2B 13394a7222e73c0912e7d9d04205b25e5
DIST mongo-tools-3.6.8.tar.gz 4723878 BLAKE2B a1693024d60f69d25c268eaaa30a478b1e4c0042c5fb7a3fd6252ed00aef2fee3fba94516fe825165a1a57887ed38e4fbce488c48ddd4f45349f0b7a1b244020 SHA512 359e8ce2d847d005d48ff12bc2e8af73213d81cd1521d2b5b5ac94792468218248bebbe808e1bd8fd49234eab8480608f294c1b63f317aed58f456b84ef17dcf
DIST mongo-tools-4.0.10.tar.gz 11134721 BLAKE2B f25e834622db8a2cea1658d9396b747666dee6a0e6471f5fcf351431f716735227b19f854c228ebb9ace8a7c27b8cdf83f8a5009107191aa6dd27c1a4c037505 SHA512 12764b2e2016ae3ab3f0ed1f5b9be9ce10e466c53b408ad2c01b26bdf39ca41a358acd07aea5847db2b40e3e89293f77efcd2b310e4e2bf3071873abf1b20f49
DIST mongo-tools-4.0.12.tar.gz 11134652 BLAKE2B d3c9703046dc577b85cefe1185678e0029411ddd44d0648f9b09fc3ab41e3661891d18afd83bf1a148dc4c9208895f444c115948e515e09dfa3062e89d98fc24 SHA512 068d8c456386caddcce23fa8917ffecdc9b5c39fb6794c5cd1d9099be1f127ecf680b006055581dc3d90507072a87788b46be7410f0dbede42da64c664b77ced
DIST mongo-tools-4.0.13.tar.gz 11134653 BLAKE2B b963f2a4ee598f6716c6c678df029040f57e2ad17b0e025139d3ac5049aacefbf5342a455ac58161c11df734da4fe4f62f021c1544eee3542af3aed77a65e6d2 SHA512 0694c7ac5743b04d927e27eb913df1b9b55c6c7a26d2a4dc52af8d2e0a6934416f416da91c57e1e61804ae855ec4bd8facabacf0754f9f924f21602737f29e3c
DIST mongo-tools-4.2.0.tar.gz 14402906 BLAKE2B 535a9a0e49f4288e63c905f7bd98c1f1b8e38eef562cb5c40a0c09500a18eb7fd401f05df2261c92db3e8a126cc03902fa3c61177b50a3e18f2d33bee7590f52 SHA512 f937a9f2b4ccfe262ca1a09e7bd103ffbdd45eae7c6deed8c1453f4499935f526f513749422e3215071ef465291c3f0544bf1e9510bbaf8dd9fa1edcf22f887a
DIST mongo-tools-4.2.1.tar.gz 14435826 BLAKE2B 8d068cb39957f6773fb6ca186a1eb324e03c21b8472fede407daf7bce091f3d401f0debe6412d70bb8e338101d7ada870e7347782ffb582b58fcafc236ad4932 SHA512 bba754acd9e21f8f832fc2e434720347c2222897b2af08d66f9491110d5491f5475ae2118ff25b263606677da10b0c96b76cc507a01287180096c25c1eab5ced

@ -0,0 +1,71 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
MY_PV=${PV/_rc/-rc}
MY_P=${PN}-r${MY_PV}
DESCRIPTION="A high-performance, open source, schema-free document-oriented database"
HOMEPAGE="https://www.mongodb.com"
SRC_URI="https://github.com/mongodb/mongo-tools/archive/r${MY_PV}.tar.gz -> mongo-tools-${MY_PV}.tar.gz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64"
IUSE="sasl ssl"
DEPEND="dev-lang/go:=
net-libs/libpcap
sasl? ( dev-libs/cyrus-sasl )
ssl? ( dev-libs/openssl:0= )"
# Do not complain about CFLAGS etc since go projects do not use them.
QA_FLAGS_IGNORED='.*'
EGO_PN="github.com/mongodb/mongo-tools"
S="${WORKDIR}/src/${EGO_PN}"
src_unpack() {
mkdir -p "${S%/*}" || die
default
mv ${MY_P} "${S}" || die
}
src_prepare() {
default
# allow building with go 1.12 #678924
sed -i 's/_Ctype_struct_/C.struct_/' vendor/github.com/google/gopacket/pcap/pcap.go || die
}
src_compile() {
local myconf=()
if use sasl; then
myconf+=(sasl)
fi
if use ssl; then
myconf+=(ssl)
fi
# build pie to avoid text relocations wrt #582854
local buildmode="pie"
# skip on ppc64 wrt #610984
if use ppc64; then
buildmode="default"
fi
mkdir -p bin || die
for i in bsondump mongostat mongofiles mongoexport mongoimport mongorestore mongodump mongotop mongoreplay; do
echo "Building $i"
GOROOT="$(go env GOROOT)" GOPATH="${WORKDIR}" go build -buildmode="${buildmode}" -o "bin/$i" \
-ldflags "-X ${EGO_PN}/common/options.VersionStr=${PV}" --tags "${myconf[*]}" "$i/main/$i.go" || die
done
}
src_install() {
dobin bin/*
}

@ -0,0 +1,71 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
MY_PV=${PV/_rc/-rc}
MY_P=${PN}-r${MY_PV}
DESCRIPTION="A high-performance, open source, schema-free document-oriented database"
HOMEPAGE="https://www.mongodb.com"
SRC_URI="https://github.com/mongodb/mongo-tools/archive/r${MY_PV}.tar.gz -> mongo-tools-${MY_PV}.tar.gz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64"
IUSE="sasl ssl"
DEPEND="dev-lang/go:=
net-libs/libpcap
sasl? ( dev-libs/cyrus-sasl )
ssl? ( dev-libs/openssl:0= )"
# Do not complain about CFLAGS etc since go projects do not use them.
QA_FLAGS_IGNORED='.*'
EGO_PN="github.com/mongodb/mongo-tools"
S="${WORKDIR}/src/${EGO_PN}"
src_unpack() {
mkdir -p "${S%/*}" || die
default
mv ${MY_P} "${S}" || die
}
src_prepare() {
default
# allow building with go 1.12 #678924
sed -i 's/_Ctype_struct_/C.struct_/' vendor/github.com/google/gopacket/pcap/pcap.go || die
}
src_compile() {
local myconf=()
if use sasl; then
myconf+=(sasl)
fi
if use ssl; then
myconf+=(ssl)
fi
# build pie to avoid text relocations wrt #582854
local buildmode="pie"
# skip on ppc64 wrt #610984
if use ppc64; then
buildmode="default"
fi
mkdir -p bin || die
for i in bsondump mongostat mongofiles mongoexport mongoimport mongorestore mongodump mongotop mongoreplay; do
echo "Building $i"
GOROOT="$(go env GOROOT)" GOPATH="${WORKDIR}" go build -buildmode="${buildmode}" -o "bin/$i" \
-ldflags "-X ${EGO_PN}/common/options.VersionStr=${PV}" --tags "${myconf[*]}" "$i/main/$i.go" || die
done
}
src_install() {
dobin bin/*
}

@ -2,3 +2,4 @@ DIST r10k-3.2.0.gem 206336 BLAKE2B badc840ec7e6793daf205f1352899fa909e9a922a353a
DIST r10k-3.3.0.gem 206848 BLAKE2B 92fedb9871c6e22df3a3f8c4cf18feac1bf3ef51e2e67b3001c811bc81397eda71bc9da94ef860d6e39b989fd1c1a3b9dae402142496f17c4427ff2de62188fd SHA512 674c5c386885dd1476264d8bc047ddad0411b6344350662021ede8a5352e95fd50a72f62127b00bf6b2bc8e6b3835b017128788707610d510a64eee13b9f4d4f
DIST r10k-3.3.1.gem 208384 BLAKE2B 81e7de3d2fabd038240478ab7ace4fba181a4370544f964b438a6b96de34a741f653aff018ece21453b119ae6b12f06934cc82be8a6b78cd5a72277195a5fe81 SHA512 20f9c92fbabed82521d452f339d9d2fd8cc438cac1cc11385a6e2874a5d55fe6425ddfcd281d8e63ee043adec5fbbfba0c37ef0c6e15d498c64ba550740ccd6e
DIST r10k-3.3.2.gem 208384 BLAKE2B 8d5ce5d7fb2497b701fdf7cd0a742db7b221a2b327464b553b9dbd893ecfbda2498302fb14cda89df7030c6b48dfb048d23d5c271773a3974e75b115ad0e3c49 SHA512 ccc71c856f204aafe9f15b497c3881aaa3beff50c36647e06590cbbaebaed58514eb30a5d57bbee4ba071e3586083c0b07decbd68c859667e6eb6bb57a40aef5
DIST r10k-3.3.3.gem 208384 BLAKE2B 8c20a516c721970e4edb57160972dfa992d79a90794d7428f7083dee48f68ea87fdd6b182acd3df1ec9c8b50a2a72543d2ffb4b5361d6960fb46d021e3c2d592 SHA512 b1a407cd0bcafc9d7d15ff0d40f54d93d19be48032858aeb42955cdf14799fa75445f4ec462dd05a19cda972d155a0fc0be641d1998fd5e02c0ea5f1d971ea08

@ -0,0 +1,43 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
USE_RUBY="ruby24 ruby25 ruby26"
RUBY_FAKEGEM_RECIPE_DOC="none"
RUBY_FAKEGEM_RECIPE_TEST="rspec3"
RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
inherit ruby-fakegem
DESCRIPTION="Puppet environment and module deployment"
HOMEPAGE="https://github.com/puppetlabs/r10k"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64"
IUSE="+git"
ruby_add_rdepend "
~dev-ruby/colored-1.2
~dev-ruby/cri-2.15.6
>=dev-ruby/gettext-setup-0.24:0
~dev-ruby/log4r-1.1.10
>=dev-ruby/multi_json-1.10:0
=dev-ruby/puppet_forge-2.3*
"
ruby_add_bdepend "test? (
dev-ruby/archive-tar-minitar
)"
RDEPEND="${RDEPEND} git? ( >=dev-vcs/git-1.6.6 )"
all_ruby_prepare() {
sed -i -e '/s.files/d' ${RUBY_FAKEGEM_GEMSPEC} || die
# Avoid specs for unpackaged rugget git provider
rm -rf spec/unit/git_spec.rb spec/unit/git/rugged || die
}

@ -2,3 +2,4 @@ DIST salt-2016.11.10.tar.gz 10058200 BLAKE2B 4b6a42f6bf56421bc19458686ec23a1f945
DIST salt-2017.7.8.tar.gz 12060430 BLAKE2B b2dde1b6f43bbb9b9db29b70dfd57591ae0e490e35ec7f4895b68b444ff77f9e997321d73697f791d345756abf451f11891b5f78a97c537c35dfe8bd24c43bbc SHA512 1e5123ee3dc194a33cf5da1e68a0419230b2b4eea26e7f66bf2d64754f0dbef9012abfbd498015f6b675725e580d72abf13c151b106639597337498b1fd42238
DIST salt-2018.3.4.tar.gz 14404085 BLAKE2B 932b30b1ba60aefd3a6874a8ebe4cb6c469d82e31f6acdbe8a5641d09e3316796b5403ef803a355cec6255c1aede8bac3b66af179bd1bbaa5418c7076229cef9 SHA512 f17e06fdbf4741f231d9e769be57de4f6079e9283881b4bafa0d23928d7626a1f9c02b9f49c654b29c3e6ee8ed3d3ddf42c21baecef158ad63a97dc87895b21b
DIST salt-2019.2.0.tar.gz 14952746 BLAKE2B aa3bba4b7d9548a8d333c242fc0265a743f56ff1a259da7c8618d37b3b022e12f09ac594a09f0ceec80fd9d3a6b6b9ec35b33e879b7a124e6612f2ec2a63a01c SHA512 de5a976213d011c230e423a172952effddb87168367958b8657eaaaf8fd2a8bec8471f547b6ff9e896a17064a13d387dbc12e12c605c8a241062e3238bd19eca
DIST salt-2019.2.2.tar.gz 14420887 BLAKE2B 84e8a0aa72b88a66a1020b695849926669728ee02f8cb51a14853b5e9c2ab692fe65810367e5d53268f7b234c10911f16d063ce665b3761432ab1d9c0aa52d16 SHA512 2bbf9765384f1f6c2336a3f421298c8900cf459e6d1ebc7fb89284014ef8db9f5215a68de2bb06dfa3404983160a0c4c589ffa3dc046611dd5409bd502938677

@ -0,0 +1,136 @@
diff --git a/salt/modules/dockercompose.py b/salt/modules/dockercompose.py
index 61e937536c..0f37e0d43a 100644
--- a/salt/modules/dockercompose.py
+++ b/salt/modules/dockercompose.py
@@ -241,7 +241,7 @@ def __load_docker_compose(path):
None, None)
try:
with salt.utils.files.fopen(file_path, 'r') as fl:
- loaded = yaml.load(fl)
+ loaded = yaml.safe_load(fl)
except EnvironmentError:
return None, __standardize_result(False,
'Could not read {0}'.format(file_path),
@@ -371,7 +371,7 @@ def __load_compose_definitions(path, definition):
None, None)
else:
try:
- loaded_definition = yaml.load(definition)
+ loaded_definition = yaml.safe_load(definition)
except yaml.YAMLError as yerr:
msg = 'Could not parse {0} {1}'.format(definition, yerr)
return None, None, __standardize_result(False, msg,
diff --git a/tests/integration/utils/test_win_runas.py b/tests/integration/utils/test_win_runas.py
index 3042a77991..d4057a4d03 100644
--- a/tests/integration/utils/test_win_runas.py
+++ b/tests/integration/utils/test_win_runas.py
@@ -539,7 +539,7 @@ class RunAsTest(ModuleCase):
win32serviceutil.StartService('test service')
wait_for_service('test service')
with salt.utils.files.fopen(RUNAS_OUT, 'r') as fp:
- ret = yaml.load(fp)
+ ret = yaml.safe_load(fp)
assert ret['retcode'] == 1, ret
@with_system_user('test-runas', on_existing='delete', delete=True,
@@ -560,7 +560,7 @@ class RunAsTest(ModuleCase):
win32serviceutil.StartService('test service')
wait_for_service('test service')
with salt.utils.files.fopen(RUNAS_OUT, 'r') as fp:
- ret = yaml.load(fp)
+ ret = yaml.safe_load(fp)
assert ret['retcode'] == 1, ret
@with_system_user('test-runas-admin', on_existing='delete', delete=True,
@@ -581,7 +581,7 @@ class RunAsTest(ModuleCase):
win32serviceutil.StartService('test service')
wait_for_service('test service')
with salt.utils.files.fopen(RUNAS_OUT, 'r') as fp:
- ret = yaml.load(fp)
+ ret = yaml.safe_load(fp)
assert ret['retcode'] == 0, ret
@with_system_user('test-runas-admin', on_existing='delete', delete=True,
@@ -602,7 +602,7 @@ class RunAsTest(ModuleCase):
win32serviceutil.StartService('test service')
wait_for_service('test service')
with salt.utils.files.fopen(RUNAS_OUT, 'r') as fp:
- ret = yaml.load(fp)
+ ret = yaml.safe_load(fp)
assert ret['retcode'] == 0, ret
def test_runas_service_system_user(self):
@@ -621,5 +621,5 @@ class RunAsTest(ModuleCase):
win32serviceutil.StartService('test service')
wait_for_service('test service')
with salt.utils.files.fopen(RUNAS_OUT, 'r') as fp:
- ret = yaml.load(fp)
+ ret = yaml.safe_load(fp)
assert ret['retcode'] == 0, ret
diff --git a/tests/unit/utils/test_schema.py b/tests/unit/utils/test_schema.py
index a07fcbab6b..79072bb89e 100644
--- a/tests/unit/utils/test_schema.py
+++ b/tests/unit/utils/test_schema.py
@@ -5,6 +5,7 @@
# Import python libs
from __future__ import absolute_import, print_function, unicode_literals
+import sys
import copy
# Import Salt Testing Libs
@@ -506,10 +507,7 @@ class ConfigTestCase(TestCase):
{'personal_access_token': 'foo'},
Requirements.serialize()
)
- if JSONSCHEMA_VERSION >= _LooseVersion('3.0.0'):
- self.assertIn('\'ssh_key_file\' is a required property', excinfo.exception.message)
- else:
- self.assertIn('is not valid under any of the given schemas', excinfo.exception.message)
+ self.assertIn('\'ssh_key_file\' is a required property', excinfo.exception.message)
def test_boolean_config(self):
item = schema.BooleanItem(title='Hungry', description='Are you hungry?')
@@ -1733,10 +1731,11 @@ class ConfigTestCase(TestCase):
with self.assertRaises(jsonschema.exceptions.ValidationError) as excinfo:
jsonschema.validate({'item': {'sides': '4', 'color': 'blue'}}, TestConf.serialize())
- if JSONSCHEMA_VERSION >= _LooseVersion('3.0.0'):
- self.assertIn('\'4\' is not of type \'boolean\'', excinfo.exception.message)
+
+ if sys.hexversion >= 0x03000000:
+ self.assertIn("'4' is not of type 'boolean'", excinfo.exception.message)
else:
- self.assertIn('is not valid under any of the given schemas', excinfo.exception.message)
+ self.assertIn("u'4' is not of type u'boolean'", excinfo.exception.message)
class TestConf(schema.Schema):
item = schema.DictItem(
@@ -1839,10 +1838,10 @@ class ConfigTestCase(TestCase):
with self.assertRaises(jsonschema.exceptions.ValidationError) as excinfo:
jsonschema.validate({'item': ['maybe']}, TestConf.serialize())
- if JSONSCHEMA_VERSION >= _LooseVersion('3.0.0'):
- self.assertIn('\'maybe\' is not one of [\'yes\']', excinfo.exception.message)
+ if sys.hexversion >= 0x03000000:
+ self.assertIn("'maybe' is not one of ['yes']", excinfo.exception.message)
else:
- self.assertIn('is not valid under any of the given schemas', excinfo.exception.message)
+ self.assertIn("u'maybe' is not one of [u'yes']", excinfo.exception.message)
with self.assertRaises(jsonschema.exceptions.ValidationError) as excinfo:
jsonschema.validate({'item': 2}, TestConf.serialize())
@@ -1894,10 +1893,10 @@ class ConfigTestCase(TestCase):
with self.assertRaises(jsonschema.exceptions.ValidationError) as excinfo:
jsonschema.validate({'item': ['maybe']}, TestConf.serialize())
- if JSONSCHEMA_VERSION >= _LooseVersion('3.0.0'):
- self.assertIn('\'maybe\' is not one of [\'yes\']', excinfo.exception.message)
+ if sys.hexversion >= 0x03000000:
+ self.assertIn("'maybe' is not one of ['yes']", excinfo.exception.message)
else:
- self.assertIn('is not valid under any of the given schemas', excinfo.exception.message)
+ self.assertIn("u'maybe' is not one of [u'yes']", excinfo.exception.message)
with self.assertRaises(jsonschema.exceptions.ValidationError) as excinfo:
jsonschema.validate({'item': 2}, TestConf.serialize())

@ -0,0 +1,28 @@
diff --git a/tests/unit/utils/test_network.py b/tests/unit/utils/test_network.py
index af5cbbab2b..15236c127a 100644
--- a/tests/unit/utils/test_network.py
+++ b/tests/unit/utils/test_network.py
@@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-
# Import Python libs
from __future__ import absolute_import, unicode_literals, print_function
+import sys
import logging
import socket
import textwrap
@@ -249,6 +250,7 @@ class NetworkTestCase(TestCase):
log.error('bad host_port value: "%s" failed to trigger ValueError exception', host_port)
raise _e_
+ @skipIf(sys.hexversion < 0x03000000, "https://github.com/testing-cabal/mock/issues/323")
def test_dns_check(self):
hosts = [
{'host': '10.10.0.3',
@@ -302,6 +304,7 @@ class NetworkTestCase(TestCase):
"Invalid or unresolveable address"):
network.dns_check('foo', '1')
+ @skipIf(sys.hexversion < 0x03000000, "https://github.com/testing-cabal/mock/issues/323")
def test_test_addrs(self):
# subset of real data from getaddrinfo against saltstack.com
addrinfo = [(30, 2, 17, '', ('2600:9000:21eb:a800:8:1031:abc0:93a1', 0, 0, 0)),

@ -0,0 +1,154 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python2_7 python3_6 )
inherit eutils 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=""
KEYWORDS=""
else
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
KEYWORDS="~amd64 ~x86"
fi
LICENSE="Apache-2.0"
SLOT="0"
IUSE="cherrypy ldap libcloud libvirt gnupg keyring mako mongodb mysql neutron nova"
IUSE+=" openssl portage profile redis selinux test timelib raet +zeromq vim-syntax"
RDEPEND="sys-apps/pciutils
dev-python/jinja[${PYTHON_USEDEP}]
dev-python/libnacl[${PYTHON_USEDEP}]
>=dev-python/msgpack-0.3[${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}]
>=www-servers/tornado-4.2.1[${PYTHON_USEDEP}]
<www-servers/tornado-5.0[${PYTHON_USEDEP}]
virtual/python-futures[${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? ( dev-python/libvirt-python[${PYTHON_USEDEP}] )
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}]
)
zeromq? (
>=dev-python/pyzmq-2.2.0[${PYTHON_USEDEP}]
dev-python/pycryptodome[${PYTHON_USEDEP}]
)
cherrypy? ( >=dev-python/cherrypy-3.2.2[${PYTHON_USEDEP}] )
mongodb? ( dev-python/pymongo[${PYTHON_USEDEP}] )
portage? ( sys-apps/portage[${PYTHON_USEDEP}] )
keyring? ( dev-python/keyring[${PYTHON_USEDEP}] )
mysql? ( dev-python/mysql-python[$(python_gen_usedep 'python2*')] )
redis? ( dev-python/redis-py[${PYTHON_USEDEP}] )
selinux? ( sec-policy/selinux-salt )
timelib? ( dev-python/timelib[$(python_gen_usedep 'python2*')] )
nova? ( >=dev-python/python-novaclient-2.17.0[${PYTHON_USEDEP}] )
neutron? ( >=dev-python/python-neutronclient-2.3.6[${PYTHON_USEDEP}] )
gnupg? ( dev-python/python-gnupg[${PYTHON_USEDEP}] )
profile? ( dev-python/yappi[${PYTHON_USEDEP}] )
vim-syntax? ( app-vim/salt-vim )"
DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
test? (
>=dev-python/pytest-salt-2018.12.8[${PYTHON_USEDEP}]
>=dev-python/jsonschema-3.0[${PYTHON_USEDEP}]
dev-python/pytest-helpers-namespace[${PYTHON_USEDEP}]
dev-python/psutil[${PYTHON_USEDEP}]
dev-python/pytest[${PYTHON_USEDEP}]
dev-python/pytest-catchlog[${PYTHON_USEDEP}]
dev-python/pip[${PYTHON_USEDEP}]
dev-python/virtualenv[${PYTHON_USEDEP}]
>=dev-python/mock-2.0.0[${PYTHON_USEDEP}]
dev-python/timelib[$(python_gen_usedep 'python2*')]
>=dev-python/boto-2.32.1[${PYTHON_USEDEP}]
!x86? ( >=dev-python/boto3-1.2.1[${PYTHON_USEDEP}] )
>=dev-python/moto-0.3.6[${PYTHON_USEDEP}]
>=dev-python/SaltTesting-2016.5.11[${PYTHON_USEDEP}]
>=dev-python/libcloud-0.14.0[${PYTHON_USEDEP}]
${RDEPEND}
)"
DOCS=( README.rst AUTHORS )
REQUIRED_USE="|| ( raet zeromq )"
RESTRICT="x86? ( test )"
PATCHES=(
"${FILESDIR}/salt-2017.7.0-dont-realpath-tmpdir.patch"
"${FILESDIR}/salt-2019.2.0-tests.patch"
"${FILESDIR}/salt-2019.2.0-skip-tests-that-oom-machine.patch"
"${FILESDIR}/salt-2019.2.2-newer-deps.patch"
"${FILESDIR}/salt-2019.2.2-workaround-broken-mock-on-py2.patch"
)
python_prepare() {
# 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
# allow the use of the renamed msgpack
sed -i '/^msgpack/d' requirements/base.txt || 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}")"
mkdir "${BUILD_DIR}"/../{templates,conf/cloud.{providers,profiles,maps}.d} || die
(
cleanup() {
rm -f "${tempdir}"
rmdir "${BUILD_DIR}"/../{templates,conf/cloud.{providers,profiles,maps}.d} || die
}
trap cleanup EXIT
addwrite "${tempdir}"
ln -s "$(realpath --relative-to=/tmp "${T}/$(basename "${tempdir}")")" "${tempdir}"
USE_SETUPTOOLS=1 SHELL="/bin/bash" \
TMPDIR="${tempdir}" \
${EPYTHON} tests/runtests.py \
--unit-tests --no-report --verbose
) || die "testing failed"
}

@ -1,2 +1,3 @@
DIST sudo-1.8.27.tar.gz 3293178 BLAKE2B 174d63ece5c24309dc0d237fadfc4131243aca333491ffa6dcdb3c44b53cb8149d3bf2f3aea2aa49529ea811d4727a11ac1909305e342b858a4c14f923f12956 SHA512 0480def650ab880ab9e6c51c606a06897fd638f0381e99c038f5aa47d064aaa2fb35b73eee7f86e73185e18d5dbb8b6ba49c616b1785a1edb2dd6d7b2fa4fcac
DIST sudo-1.8.28p1.tar.gz 3310254 BLAKE2B a1810af7a42d05cce49bb9d0acf6f3731a5193e9e9c3b458691379131eb86d36995854d11c09525e8d999ed1da7e99cf170634667c5a444aa522b8f23db7d1aa SHA512 bda3de34c15fbb68fc29759542295560ccc1562b419d03709cea51613937e9b92ba689c79c3ef4858aeea90d3d1a4dc0148225b11b22cf82395ae1bad8cb1734
DIST sudo-1.8.29rc1.tar.gz 3317549 BLAKE2B a4b124b8134328dacc6082baecfcc6640d745073d72bca1cc7d8d898daf9a58f42c0f1eb378e6b1b47ff360bc71146a8e7cdef6e72c263fd95af06dc56b2ecab SHA512 38babb065f0d894e3531fb8d25c820ddde501c6392b90dad74f3627ee31e02a98ad6366e282e508cde692c69495dbf5f3c249b7499fbaeabcfdf8623097da21f

@ -0,0 +1,253 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit pam multilib libtool tmpfiles
MY_P="${P/_/}"
MY_P="${MY_P/beta/b}"
DESCRIPTION="Allows users or groups to run commands as other users"
HOMEPAGE="https://www.sudo.ws/"
if [[ ${PV} == "9999" ]] ; then
inherit mercurial
EHG_REPO_URI="https://www.sudo.ws/repos/sudo"
else
uri_prefix=
case ${P} in
*_beta*|*_rc*) uri_prefix=beta/ ;;
esac
SRC_URI="https://www.sudo.ws/sudo/dist/${uri_prefix}${MY_P}.tar.gz
ftp://ftp.sudo.ws/pub/sudo/${uri_prefix}${MY_P}.tar.gz"
if [[ ${PV} != *_beta* ]] && [[ ${PV} != *_rc* ]] ; then
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-solaris"
fi
fi
# Basic license is ISC-style as-is, some files are released under
# 3-clause BSD license
LICENSE="ISC BSD"
SLOT="0"
IUSE="gcrypt ldap libressl nls offensive pam sasl +secure-path selinux +sendmail skey sssd system-digest"
DEPEND="
sys-libs/zlib:=
ldap? (
>=net-nds/openldap-2.1.30-r1
dev-libs/cyrus-sasl
)
pam? ( sys-libs/pam )
sasl? ( dev-libs/cyrus-sasl )
skey? ( >=sys-auth/skey-1.1.5-r1 )
sssd? ( sys-auth/sssd[sudo] )
system-digest? (
gcrypt? ( dev-libs/libgcrypt:= )
!gcrypt? (
!libressl? ( dev-libs/openssl:0= )
libressl? ( dev-libs/libressl:0= )
)
)
"
RDEPEND="
${DEPEND}
>=app-misc/editor-wrapper-3
virtual/editor
ldap? ( dev-lang/perl )
pam? ( sys-auth/pambase )
selinux? ( sec-policy/selinux-sudo )
sendmail? ( virtual/mta )
"
BDEPEND="
sys-devel/bison
"
S="${WORKDIR}/${MY_P}"
REQUIRED_USE="
pam? ( !skey )
skey? ( !pam )
"
MAKEOPTS+=" SAMPLES="
src_prepare() {
default
elibtoolize
}
set_secure_path() {
# FIXME: secure_path is a compile time setting. using PATH or
# ROOTPATH is not perfect, env-update may invalidate this, but until it
# is available as a sudoers setting this will have to do.
einfo "Setting secure_path ..."
# first extract the default ROOTPATH from build env
SECURE_PATH=$(unset ROOTPATH; . "${EPREFIX}"/etc/profile.env;
echo "${ROOTPATH}")
case "${SECURE_PATH}" in
*/usr/sbin*) ;;
*) SECURE_PATH=$(unset PATH;
. "${EPREFIX}"/etc/profile.env; echo "${PATH}")
;;
esac
if [[ -z ${SECURE_PATH} ]] ; then
ewarn " Failed to detect SECURE_PATH, please report this"
fi
# then remove duplicate path entries
cleanpath() {
local newpath thisp IFS=:
for thisp in $1 ; do
if [[ :${newpath}: != *:${thisp}:* ]] ; then
newpath+=:${thisp}
else
einfo " Duplicate entry ${thisp} removed..."
fi
done
SECURE_PATH=${newpath#:}
}
cleanpath /bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/opt/bin${SECURE_PATH:+:${SECURE_PATH}}
# finally, strip gcc paths #136027
rmpath() {
local e newpath thisp IFS=:
for thisp in ${SECURE_PATH} ; do
for e ; do [[ ${thisp} == ${e} ]] && continue 2 ; done
newpath+=:${thisp}
done
SECURE_PATH=${newpath#:}
}
rmpath '*/gcc-bin/*' '*/gnat-gcc-bin/*' '*/gnat-gcc/*'
einfo "... done"
}
src_configure() {
local SECURE_PATH
set_secure_path
# audit: somebody got to explain me how I can test this before I
# enable it.. - Diego
# plugindir: autoconf code is crappy and does not delay evaluation
# until `make` time, so we have to use a full path here rather than
# basing off other values.
myeconfargs=(
--enable-zlib=system
--enable-tmpfiles.d="${EPREFIX}"/usr/lib/tmpfiles.d
--with-editor="${EPREFIX}"/usr/libexec/editor
--with-env-editor
--with-plugindir="${EPREFIX}"/usr/$(get_libdir)/sudo
--with-rundir="${EPREFIX}"/run/sudo
$(use_with secure-path secure-path ${SECURE_PATH})
--with-secure-path="${SECURE_PATH}"
--with-vardir="${EPREFIX}"/var/db/sudo
--without-linux-audit
--without-opie
$(use_enable gcrypt)
$(use_enable nls)
$(use_enable sasl)
$(use_with offensive insults)
$(use_with offensive all-insults)
$(use_with ldap ldap_conf_file /etc/ldap.conf.sudo)
$(use_with ldap)
$(use_with pam)
$(use_with skey)
$(use_with sssd)
$(use_with selinux)
$(use_with sendmail)
)
if use system-digest && ! use gcrypt; then
myeconfargs+=("--enable-openssl")
else
myeconfargs+=("--disable-openssl")
fi
econf "${myeconfargs[@]}"
}
src_install() {
default
if use ldap ; then
dodoc README.LDAP
cat <<-EOF > "${T}"/ldap.conf.sudo
# See ldap.conf(5) and README.LDAP for details
# This file should only be readable by root
# supported directives: host, port, ssl, ldap_version
# uri, binddn, bindpw, sudoers_base, sudoers_debug
# tls_{checkpeer,cacertfile,cacertdir,randfile,ciphers,cert,key}
EOF
insinto /etc
doins "${T}"/ldap.conf.sudo
fperms 0440 /etc/ldap.conf.sudo
insinto /etc/openldap/schema
newins doc/schema.OpenLDAP sudo.schema
fi
pamd_mimic system-auth sudo auth account session
keepdir /var/db/sudo/lectured
fperms 0700 /var/db/sudo/lectured
fperms 0711 /var/db/sudo #652958
# Don't install into /run as that is a tmpfs most of the time
# (bug #504854)
rm -rf "${ED}"/run
find "${ED}" -type f -name "*.la" -delete || die #697812
}
pkg_postinst() {
tmpfiles_process sudo.conf
#652958
local sudo_db="${EROOT}/var/db/sudo"
if [[ "$(stat -c %a "${sudo_db}")" -ne 711 ]] ; then
chmod 711 "${sudo_db}" || die
fi
if use ldap ; then
ewarn
ewarn "sudo uses the /etc/ldap.conf.sudo file for ldap configuration."
ewarn
if grep -qs '^[[:space:]]*sudoers:' "${ROOT}"/etc/nsswitch.conf ; then
ewarn "In 1.7 series, LDAP is no more consulted, unless explicitly"
ewarn "configured in /etc/nsswitch.conf."
ewarn
ewarn "To make use of LDAP, add this line to your /etc/nsswitch.conf:"
ewarn " sudoers: ldap files"
ewarn
fi
fi
if use prefix ; then
ewarn
ewarn "To use sudo, you need to change file ownership and permissions"
ewarn "with root privileges, as follows:"
ewarn
ewarn " # chown root:root ${EPREFIX}/usr/bin/sudo"
ewarn " # chown root:root ${EPREFIX}/usr/lib/sudo/sudoers.so"
ewarn " # chown root:root ${EPREFIX}/etc/sudoers"
ewarn " # chown root:root ${EPREFIX}/etc/sudoers.d"
ewarn " # chown root:root ${EPREFIX}/var/db/sudo"
ewarn " # chmod 4111 ${EPREFIX}/usr/bin/sudo"
ewarn
fi
elog "To use the -A (askpass) option, you need to install a compatible"
elog "password program from the following list. Starred packages will"
elog "automatically register for the use with sudo (but will not force"
elog "the -A option):"
elog ""
elog " [*] net-misc/ssh-askpass-fullscreen"
elog " net-misc/x11-ssh-askpass"
elog ""
elog "You can override the choice by setting the SUDO_ASKPASS environmnent"
elog "variable to the program you want to use."
}

Binary file not shown.

@ -1 +1,2 @@
DIST signing-party_2.10.orig.tar.gz 222778 BLAKE2B b2225ba3038037a8f841e5f2ee8c5f08f3fe294e617c42396269aadf348965a17151bb31b11a76b2d84806e060cb0eb1093963f72e17bb5549ac6fbec0e332fb SHA512 82e51b91c282a72e9d16d920b87560c66aeafc0219e91615ea47d2f1a5df903fb459201f34368e6fa7ea1e2d2ca46a73096f30a068c8c35322af2f3ea256b269
DIST signing-party_2.9.orig.tar.gz 222606 BLAKE2B 5c7fd8fdb4945f3155d5dc146716ae402c72ec3cc728feb5b3d009878d88313ed26dbf4461820346bd3340ec84d9a439dfd52950452ad796bf1fbc98a342ff6a SHA512 31a0f15f679c0339753bafbac645609e9e16f3da2c5105c33e87e0f258453b3101f188398a7c1509fe5c005339289ac5465ccb18631a526d231c714f9ed61d96

@ -1,6 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>zlogene@gentoo.org</email>
<name>Mikle Kolyada</name>
</maintainer>
<maintainer type="project">
<email>crypto@gentoo.org</email>
<name>Crypto</name>

@ -0,0 +1,113 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit toolchain-funcs autotools
DESCRIPTION="A collection of several tools related to OpenPGP"
HOMEPAGE="https://salsa.debian.org/signing-party-team/signing-party"
SRC_URI="mirror://debian/pool/main/s/signing-party/${PN}_${PV}.orig.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~x86"
DEPEND="dev-lang/perl
app-crypt/libmd"
RDEPEND="${DEPEND}
>=app-crypt/gnupg-1.3.92
dev-perl/GnuPG-Interface
dev-perl/Text-Template
dev-perl/MIME-tools
net-mail/qprint
>=dev-perl/MailTools-1.62
dev-perl/Net-IDN-Encode
virtual/mailx
virtual/mta
|| (
dev-perl/libintl-perl
dev-perl/Text-Iconv
app-text/recode
)"
src_prepare() {
default
# app-crypt/keylookup
rm -r keylookup || die
sed -i -e 's#keylookup/keylookup##' Makefile || die
# media-gfx/springgraph
rm -r springgraph || die
find . -name Makefile | xargs sed -i -e 's/CFLAGS:=/CFLAGS=/' -e 's/CPPFLAGS:=/CPPFLAGS=/' -e 's/LDFLAGS:=/LDFLAGS=/'
sed -i -e 's/autoreconf/true/g' keyanalyze/Makefile || die
pushd keyanalyze/pgpring || die
eautoreconf
popd || die
}
src_compile() {
emake \
CC="$(tc-getCC)" \
CPPFLAGS="${CPPFLAGS}" \
CFLAGS="${CFLAGS}" \
LDFLAGS="${LDFLAGS}" \
STRIP=true
}
src_install() {
einstalldocs
# Check Makefile when a new tool is introduced to this package.
# caff
dobin caff/caff caff/pgp-clean caff/pgp-fixkey
docinto caff
dodoc caff/{README*,THANKS,TODO,caffrc.sample}
# gpgdir
dobin gpgdir/gpgdir
docinto gpgdir
dodoc gpgdir/{VERSION,LICENSE,README,INSTALL,CREDITS,ChangeLog*}
# gpg-key2ps
dobin gpg-key2ps/gpg-key2ps
docinto gpg-key2ps
dodoc gpg-key2ps/README
# gpglist
dobin gpglist/gpglist
# gpg-mailkeys
dobin gpg-mailkeys/gpg-mailkeys
docinto gpg-mailkeys
dodoc gpg-mailkeys/{example.gpg-mailkeysrc,README}
# gpgparticipants
dobin gpgparticipants/gpgparticipants
# gpgwrap
dobin gpgwrap/bin/gpgwrap
docinto gpgwrap
dodoc gpgwrap/{LICENSE,NEWS,README}
doman gpgwrap/doc/gpgwrap.1
# gpgsigs
dobin gpgsigs/gpgsigs
insinto /usr/share/signing-party
# keyanalyze
# TODO: some of the scripts are intended for webpages, and not really
# packaging, so they are NOT installed yet.
newbin keyanalyze/pgpring/pgpring pgpring-keyanalyze
dobin keyanalyze/{keyanalyze,process_keys}
docinto keyanalyze
dodoc keyanalyze/{README,Changelog}
# See app-crypt/keylookup instead
#dobin keylookup/keylookup
#docinto keylookup
#dodoc keylookup/NEWS
# sig2dot
dobin sig2dot/sig2dot
dodoc sig2dot/README.sig2dot
# See media-gfx/springgraph instead
#dobin springgraph/springgraph
#dodoc springgraph/README.springgraph
# all other manpages, and the root doc
doman */*.1
dodoc README
}

Binary file not shown.

@ -4,5 +4,6 @@ DIST newlib-1.16.0.tar.gz 12024353 BLAKE2B 26d3308148fb99baf8ad02eee4cc699cfac69
DIST pciutils-2.2.9.tar.bz2 212265 BLAKE2B 014b664e90c64e7255c9e21fc25a2cc60d57f47ce282fc0331a0481a460b237783bd3774dd0689e1596d4a0be0d2889faad904da01a6f02147464bce1d1b1bc0 SHA512 2b3d98d027e46d8c08037366dde6f0781ca03c610ef2b380984639e4ef39899ed8d8b8e4cd9c9dc54df101279b95879bd66bfd4d04ad07fef41e847ea7ae32b5
DIST polarssl-1.1.4-gpl.tgz 611340 BLAKE2B 613da06dda9e4b86db5a4d616a0a0afee98c907c3c6b352eed3d9e500fc5739e62eb4f6fc32ff02579c6a6de9bd49fcd2c8bd8b2d158a5050cbaa82118d61ef0 SHA512 88da614e4d3f4409c4fd3bb3e44c7587ba051e3fed4e33d526069a67e8180212e1ea22da984656f50e290049f60ddca65383e5983c0f8884f648d71f698303ad
DIST xen-4.11.2.tar.gz 25164925 BLAKE2B 11adea16d93235af5807e6e3784e0fc36ce34f274a85d1976a5c8ad36a323437216b0cf6bb6cb13b00e1e838e319a9f8f4b9c417870eef9ed660f22274d81310 SHA512 48d3d926d35eb56c79c06d0abc6e6be2564fadb43367cc7f46881c669a75016707672179c2cca1c4cfb14af2cefd46e2e7f99470cddf7df2886d8435a2de814e
DIST xen-4.12.0.tar.gz 26949697 BLAKE2B 9175cc9054e4a2b5c34df89a4efd667f86b4861bef9c3310bf431d041f710a7cb265b4d34a76ab18a17a3121392942d2e5d76c5044eb9b957d4255af889fe69a SHA512 0ce366dcac607c9b592c5e9c0f40652eef743913b246bed4b0c380b8d59ac23a6adcd05befec37fc799a61476f47df76d4911cbf1da6ceb51441c546bf2464de
DIST xen-4.12.1.tar.gz 26970584 BLAKE2B ceab2af3d36b72d838d7b4f58f6855c97cf05282a4ea3c82eda29b8945ee20563845b7be02884bf0a061a633fb2b3016a2f7396ce34d9b3d93f90d6ee6d449ed SHA512 be15d3af6b109771aaf59b3621e4e1560b7d9a963d9b7f6a1f6f4a1c907fd97434b060c15f75849b44fbda33f26eb51b030d14d068c6ad5103ad240fe7a98f40
DIST xen-4.13.0-rc1.tar.gz 38984903 BLAKE2B c8fa19a2cff2de67712e5976670ecbbeff1528b987cdd7523a7f8c8952b889255af4e21c50c68537ffff9273153dfc619582f8072f6f356e20f38dae1e331fb6 SHA512 392d1f77faec4d9868aff928a2eb2918e8cef576a92f7a853d3bbd1ba609bad6abcd4d675f7c618e7bf630feea4c8da081c31926c281a17c8f6b41c3ea9fd607
DIST zlib-1.2.3.tar.gz 496597 BLAKE2B 603020b70cd52b83e48bde420b86e2acfd29d69bf7476eecbeeb07d1b8bcab703d2cbd3eab77772990bddb8c268f13594592ce985798d49e2d6ba25104d49f22 SHA512 021b958fcd0d346c4ba761bcf0cc40f3522de6186cf5a0a6ea34a70504ce9622b1c2626fce40675bc8282cf5f5ade18473656abc38050f72f5d6480507a2106e

@ -34,7 +34,7 @@ HOMEPAGE="https://www.xenproject.org"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="custom-cflags"
IUSE=""
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
@ -82,19 +82,6 @@ src_prepare() {
eapply "${WORKDIR}"/patches-upstream
fi
# if the user *really* wants to use their own custom-cflags, let them
if use custom-cflags; then
einfo "User wants their own CFLAGS - removing defaults"
# try and remove all the default custom-cflags
find "${S}" -name Makefile -o -name Rules.mk -o -name Config.mk -exec sed \
-e 's/CFLAGS\(.*\)=\(.*\)-O3\(.*\)/CFLAGS\1=\2\3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-march=i686\(.*\)/CFLAGS\1=\2\3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-fomit-frame-pointer\(.*\)/CFLAGS\1=\2\3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-g3*\s\(.*\)/CFLAGS\1=\2 \3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-O2\(.*\)/CFLAGS\1=\2\3/' \
-i {} \;
fi
# Patch the unmergeable newlib, fix most of the leftover gcc QA issues
cp "${FILESDIR}"/newlib-implicits.patch stubdom || die
@ -122,7 +109,7 @@ src_configure() {
}
src_compile() {
use custom-cflags || unset CFLAGS
unset CFLAGS
if test-flag-CC -fno-strict-overflow; then
append-flags -fno-strict-overflow
fi

@ -0,0 +1,152 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python2_7 )
PYTHON_REQ_USE='xml,threads'
inherit flag-o-matic multilib python-single-r1 toolchain-funcs
MY_PV=${PV/_/-}
XEN_EXTFILES_URL="http://xenbits.xensource.com/xen-extfiles"
LIBPCI_URL=ftp://atrey.karlin.mff.cuni.cz/pub/linux/pci
GRUB_URL=mirror://gnu-alpha/grub
UPSTREAM_VER=
[[ -n ${UPSTREAM_VER} ]] && \
UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P/-pvgrub/}-upstream-patches-${UPSTREAM_VER}.tar.xz
https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${P/-pvgrub/}-upstream-patches-${UPSTREAM_VER}.tar.xz"
SRC_URI="
https://downloads.xenproject.org/release/xen/${MY_PV}/xen-${MY_PV}.tar.gz
$GRUB_URL/grub-0.97.tar.gz
$XEN_EXTFILES_URL/zlib-1.2.3.tar.gz
$LIBPCI_URL/pciutils-2.2.9.tar.bz2
$XEN_EXTFILES_URL/lwip-1.3.0.tar.gz
$XEN_EXTFILES_URL/newlib/newlib-1.16.0.tar.gz
$XEN_EXTFILES_URL/polarssl-1.1.4-gpl.tgz
${UPSTREAM_PATCHSET_URI}"
S="${WORKDIR}/xen-${MY_PV}"
DESCRIPTION="allows to boot Xen domU kernels from a menu.lst laying inside guest filesystem"
HOMEPAGE="https://www.xenproject.org"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
DEPEND="sys-devel/gettext
sys-devel/bin86
sys-apps/texinfo
x11-libs/pixman"
RDEPEND="${PYTHON_DEPS}
>=app-emulation/xen-tools-${PV}"
pkg_setup() {
python-single-r1_pkg_setup
}
retar-externals() {
# Purely to unclutter src_prepare
local set="grub-0.97.tar.gz lwip-1.3.0.tar.gz newlib-1.16.0.tar.gz polarssl-1.1.4-gpl.tgz zlib-1.2.3.tar.gz"
# eapply can't patch in $WORKDIR, requires a sed; Bug #455194. Patchable, but sed informative
sed -e s':AR=${AR-"ar rc"}:AR=${AR-"ar"}:' \
-i "${WORKDIR}"/zlib-1.2.3/configure || die
sed -e 's:^AR=ar rc:AR=ar:' \
-e s':$(AR) $@:$(AR) rc $@:' \
-i "${WORKDIR}"/zlib-1.2.3/{Makefile,Makefile.in} || die
einfo "zlib Makefile edited"
cd "${WORKDIR}" || die
tar czp zlib-1.2.3 -f zlib-1.2.3.tar.gz || die
tar czp grub-0.97 -f grub-0.97.tar.gz || die
tar czp lwip -f lwip-1.3.0.tar.gz || die
tar czp newlib-1.16.0 -f newlib-1.16.0.tar.gz || die
tar czp polarssl-1.1.4 -f polarssl-1.1.4-gpl.tgz || die
mv $set "${S}"/stubdom/ || die
einfo "tarballs moved to source"
}
src_prepare() {
# Upstream's patchset
if [[ -n ${UPSTREAM_VER} ]]; then
einfo "Try to apply Xen Upstream patch set"
EPATCH_SUFFIX="patch" \
EPATCH_FORCE="yes" \
EPATCH_OPTS="-p1" \
eapply "${WORKDIR}"/patches-upstream
fi
# Patch the unmergeable newlib, fix most of the leftover gcc QA issues
cp "${FILESDIR}"/newlib-implicits.patch stubdom || die
# Patch stubdom/Makefile to patch insource newlib & prevent internal downloading
eapply "${FILESDIR}"/${PN/-pvgrub/}-4.10-externals.patch
# fix jobserver in Makefile
eapply "${FILESDIR}"/${PN}-4.8-jserver.patch
#Substitute for internal downloading. pciutils copied only due to the only .bz2
cp "${DISTDIR}"/pciutils-2.2.9.tar.bz2 ./stubdom/ || die "pciutils not copied to stubdom"
retar-externals || die "re-tar procedure failed"
default
}
src_configure() {
local myconf="--prefix=${PREFIX}/usr \
--libdir=${PREFIX}/usr/$(get_libdir) \
--libexecdir=${PREFIX}/usr/libexec \
--disable-werror \
--disable-xen"
econf ${myconf}
}
src_compile() {
unset CFLAGS
if test-flag-CC -fno-strict-overflow; then
append-flags -fno-strict-overflow
fi
emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" -C tools/include
emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" -C tools/libs
if use x86; then
emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" \
XEN_TARGET_ARCH="x86_32" -C stubdom pv-grub
elif use amd64; then
emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" \
XEN_TARGET_ARCH="x86_64" -C stubdom pv-grub
if has_multilib_profile; then
multilib_toolchain_setup x86
emake CC="$(tc-getCC)" AR="$(tc-getAR)" \
XEN_TARGET_ARCH="x86_32" -C stubdom pv-grub
fi
fi
}
src_install() {
if use x86; then
emake XEN_TARGET_ARCH="x86_32" DESTDIR="${D}" -C stubdom install-grub
fi
if use amd64; then
emake XEN_TARGET_ARCH="x86_64" DESTDIR="${D}" -C stubdom install-grub
if has_multilib_profile; then
emake XEN_TARGET_ARCH="x86_32" DESTDIR="${D}" -C stubdom install-grub
fi
fi
}
pkg_postinst() {
elog "Official Xen Guide and the offical wiki page:"
elog "https://wiki.gentoo.org/wiki/Xen"
elog "https://wiki.xen.org/wiki/Main_Page"
}

@ -1,10 +1,12 @@
DIST edk2-ef529e6ab7c31290a33045bb1f1837447cc0eb56.tar.gz 38714813 BLAKE2B 1c0670c6447aa7d2610e59481324eafe3dbf54cc0480c855380372cf5b95469de4182b569d1c4429df71ceb9be014cb414e070a808609d185b488519955b8677 SHA512 8eb88006500d9d6982e5565bdb71bf47dfe2b9669e107f48b6b237d7efbbfb54b9fd81841421c347e5c0ca45ef9c08f0b95983c8b922c2e1072b0e42b8ede92c
DIST ipxe-git-1dd56dbd11082fb622c2ed21cfaced4f47d798a6.tar.gz 3810726 BLAKE2B b95266ec7fcee5c27065ba999b023ded9eb42a3690555e626911493f1dc995927fa67071bdc6432b3995df82134f8c49ea0d72eaf407f455dd1e2675d5b8d844 SHA512 8120696ba6d79fd9189664deed9b0489825d8d1edf7b931023b3979b7b9f82248e5b808c4517036cd40a85442ddf51a8dcad3b05d7f3c3cc6650654d53da4050
DIST ipxe-git-d2063b7693e0e35db97b2264aa987eb6341ae779.tar.gz 3792227 BLAKE2B 720ac29ab3187d7abaec33823dda967caab7eea9631123a7619d2f83d3ad6c7bb47db01665a4c54548fe367866606936d36690a06ecf42323b9bd0ef00e41569 SHA512 2b4ae8e65cd678dbb376f24001294eb54aead8d66456e06fc270dec178d90b282c1eb19731234d8b458054e49c5b8b8c4a89345c63ed0a4dafaf205e642b00b7
DIST seabios-1.12.0.tar.gz 613542 BLAKE2B f145c2db716996bfa9e5c014086ccfaa8ae96ebc158f34303b122b7bf209408c567665d8691364df8d8e886f63e0e72a3f3cd319dfa86ef581023201b5d94e53 SHA512 e52c5363e5bb37b5286e55545aa06bd126218f9d0e3a06ac2e189de68fe3de3256c11ca1bb13357a9c384d7e3af6284083ff3aa587688b5de04ef11b97bdfa27
DIST seabios-rel-1.11.1.tar.gz 604125 BLAKE2B df2b7322f5169fb74e7f5dd3f680e7d8ad3e6f93e8b1376d15bbda8865458648a0d6086011a8a6549e7ad1794844878736441e70067580c0eb416e20ee038d95 SHA512 69622460475b54ba77a10509dae0ef46d9c733c6c8527ab56a4f2298534dcf1f7722eb501df873ab612222e5867e334c2831cc4c95dd23771aee10740acf0273
DIST xen-4.11.2-upstream-patches-0.tar.xz 11532 BLAKE2B e36509d6256ac4018f20711baba77619a7c3a684d81e25a94cffba9c9f53ec9e0efdcefcd6a7ffa26b49fd3d4e0dfc2126f1ea620f0bd35ea83188b4587e5b38 SHA512 4a97d1e56cb3e5152372f0c0b99f8838194b2e03ed1255e87611d8bb28af9c9199fe123d3542f5ba9b3f652c29a519b5e4255b8925c0c8dfbd588f83ed8806d9
DIST xen-4.11.2.tar.gz 25164925 BLAKE2B 11adea16d93235af5807e6e3784e0fc36ce34f274a85d1976a5c8ad36a323437216b0cf6bb6cb13b00e1e838e319a9f8f4b9c417870eef9ed660f22274d81310 SHA512 48d3d926d35eb56c79c06d0abc6e6be2564fadb43367cc7f46881c669a75016707672179c2cca1c4cfb14af2cefd46e2e7f99470cddf7df2886d8435a2de814e
DIST xen-4.12.0-upstream-patches-0.tar.xz 32864 BLAKE2B 994ca1f9fdd89f25e225348870ec97257795644f0314437f8d2927b77ce5b53de6b9e043636cc2c9e4f8fda4ff7b7c26917f2912f2a287c57bc00606846fb617 SHA512 6f7ab80cac0afd8bcd88109cd052e29f9b028b0c363a4e1f1e845f4fdbb3d7782dffd1f20dd80f2923c507625abe9648d7fbe7d52c6fd565ab550c9c5a416eeb
DIST xen-4.12.0.tar.gz 26949697 BLAKE2B 9175cc9054e4a2b5c34df89a4efd667f86b4861bef9c3310bf431d041f710a7cb265b4d34a76ab18a17a3121392942d2e5d76c5044eb9b957d4255af889fe69a SHA512 0ce366dcac607c9b592c5e9c0f40652eef743913b246bed4b0c380b8d59ac23a6adcd05befec37fc799a61476f47df76d4911cbf1da6ceb51441c546bf2464de
DIST xen-4.12.1-upstream-patches-0.tar.xz 18520 BLAKE2B b7a3f51e7629d2cabf9a8363291a7178b4f9a3eed7907271939a21e8058900d4497405c7d06df4ec71a558d68998456ca3c79d431dee2ec39fe21a9280fc2d4b SHA512 f15192505803de6cc1f1eb04b653f186ac7b08afa9575ee0b57f793f77cc08b10945c1b849183763a5b40d6ee6a80eab37d97219f3fff7a76397088cb6854b08
DIST xen-4.12.1.tar.gz 26970584 BLAKE2B ceab2af3d36b72d838d7b4f58f6855c97cf05282a4ea3c82eda29b8945ee20563845b7be02884bf0a061a633fb2b3016a2f7396ce34d9b3d93f90d6ee6d449ed SHA512 be15d3af6b109771aaf59b3621e4e1560b7d9a963d9b7f6a1f6f4a1c907fd97434b060c15f75849b44fbda33f26eb51b030d14d068c6ad5103ad240fe7a98f40
DIST xen-4.13.0-rc1.tar.gz 38984903 BLAKE2B c8fa19a2cff2de67712e5976670ecbbeff1528b987cdd7523a7f8c8952b889255af4e21c50c68537ffff9273153dfc619582f8072f6f356e20f38dae1e331fb6 SHA512 392d1f77faec4d9868aff928a2eb2918e8cef576a92f7a853d3bbd1ba609bad6abcd4d675f7c618e7bf630feea4c8da081c31926c281a17c8f6b41c3ea9fd607
DIST xen-gentoo-patches-18.tar.xz 16840 BLAKE2B 7243b363c78250ae1928d75813cfd6035a87ca03f1605cbe02233e009a19105a0712711d622eef8606f3e7e1a5db5203342e56a1b00496d5ce37ddc4ffb9e4ea SHA512 328d7b1a57ab6bf9c7200b934aeb241f6d4fecccc600130d1c80460540212eb658cb74ae0502c008e040fdb2d95db20c2a3d71a8e73fd1361070d70adeab6e30
DIST xen-gentoo-patches-19.tar.xz 17460 BLAKE2B 6f25c4c9bb438ba0ceded75d04ba6c05ca74e6319d14cf744ea23ecbed2e8283c3c00275a4609b583402d352216520a10197fd4ab9e056eac1c841b0f79bc6b8 SHA512 586e88eea0f2dcc5bae0eb4691cc1d722a8b1a7ca849fd8992d72c0990b2832b3e78738c936e8e46bc9623aa1c8e8afa341a22608479629ea012474d5ff6b69a

@ -34,9 +34,7 @@ _gx046=" xen-tools-4.10.1-shim.patch"
_gx050=" xen-tools-4.12.0-shim.patch"
# Fix building with gcc 8, bug #657388
_gx047=" xen-tools-4.10.1-gcc8.patch"
_gx048=" xen-tools-4.11.1-gcc8.patch"
_gx052=" xen-tools-4.10.3-gcc8.patch"
_gx053=" xen-tools-4.12.0-gcc8.patch"
# Fix building with gcc 9, bug #689082
@ -45,52 +43,32 @@ _gx055=" xen-tools-4.11.2-gcc9.patch"
# Fix pdf document generation, bug #650396
_gx049=" xen-tools-4.10.1-pdfdoc.patch"
# xen-tools-4.10.3 patches set
_gpv_xen_tools_4103_0="
${_gx038} ${_gx017} ${_gx043}
${_gx027}
${_gx028} ${_gx029}
${_gx037} ${_gx042}
${_gx045} ${_gx046} ${_gx047}
${_gx049}
"
# xen-tools-4.10.3 patches set r1
_gpv_xen_tools_4103_1="
${_gx038} ${_gx017} ${_gx043}
${_gx027}
${_gx028} ${_gx029}
${_gx037} ${_gx042}
${_gx045} ${_gx046} ${_gx052}
${_gx049}
"
# xen-tools-4.11.1 patches set
_gpv_xen_tools_4111_0="
# xen-tools-4.11.2 patches set
_gpv_xen_tools_4112_0="
${_gx038} ${_gx017} ${_gx043}
${_gx027}
${_gx028} ${_gx029}
${_gx037} ${_gx042}
${_gx045} ${_gx046} ${_gx048}
${_gx049}
${_gx049} ${_gx055}
"
# xen-tools-4.11.2 patches set
_gpv_xen_tools_4112_0="
${_gx038} ${_gx017} ${_gx043}
# xen-tools-4.12.1 patches set
_gpv_xen_tools_4121_0="
${_gx038}
${_gx027}
${_gx028} ${_gx029}
${_gx037} ${_gx042}
${_gx045} ${_gx046} ${_gx048}
${_gx049} ${_gx055}
${_gx053} ${_gx050} ${_gx051}
${_gx054}
"
# xen-tools-4.12.0 patches set
_gpv_xen_tools_4120_0="
# xen-tools-4.13.0 patches set
_gpv_xen_tools_4130_rc1_0="
${_gx038}
${_gx027}
${_gx028} ${_gx029}
${_gx037} ${_gx042}
${_gx037}
${_gx053} ${_gx050} ${_gx051}
${_gx054}
"

@ -62,7 +62,7 @@ SLOT="0/$(ver_cut 1-2)"
# Inclusion of IUSE ocaml on stabalizing requires maintainer of ocaml to (get off his hands and) make
# >=dev-lang/ocaml-4 stable
# Masked in profiles/eapi-5-files instead
IUSE="api custom-cflags debug doc flask +hvm +ipxe ocaml ovmf +pam pygrub python +qemu +qemu-traditional +rombios screen sdl static-libs system-ipxe system-qemu system-seabios"
IUSE="api debug doc flask +hvm +ipxe ocaml ovmf +pam pygrub python +qemu +qemu-traditional +rombios screen sdl static-libs system-ipxe system-qemu system-seabios"
REQUIRED_USE="
${PYTHON_REQUIRED_USE}
@ -268,25 +268,11 @@ src_prepare() {
# Drop .config, fixes to gcc-4.6
sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
# if the user *really* wants to use their own custom-cflags, let them
if use custom-cflags; then
einfo "User wants their own CFLAGS - removing defaults"
# try and remove all the default cflags
find "${S}" \( -name Makefile -o -name Rules.mk -o -name Config.mk \) \
-exec sed \
-e 's/CFLAGS\(.*\)=\(.*\)-O3\(.*\)/CFLAGS\1=\2\3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-march=i686\(.*\)/CFLAGS\1=\2\3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-fomit-frame-pointer\(.*\)/CFLAGS\1=\2\3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-g3*\s\(.*\)/CFLAGS\1=\2 \3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-O2\(.*\)/CFLAGS\1=\2\3/' \
-i {} + || die "failed to re-set custom-cflags"
else
unset CFLAGS
unset LDFLAGS
unset ASFLAGS
unset CPPFLAGS
fi
# drop flags
unset CFLAGS
unset LDFLAGS
unset ASFLAGS
unset CPPFLAGS
if ! use pygrub; then
sed -e '/^SUBDIRS-y += pygrub/d' -i tools/Makefile || die

@ -0,0 +1,474 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python2_7 )
PYTHON_REQ_USE='ncurses,xml,threads'
inherit bash-completion-r1 flag-o-matic multilib python-single-r1 toolchain-funcs
MY_PV=${PV/_/-}
if [[ $PV == *9999 ]]; then
inherit git-r3
REPO="xen.git"
EGIT_REPO_URI="git://xenbits.xen.org/${REPO}"
S="${WORKDIR}/${REPO}"
else
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
UPSTREAM_VER=
SECURITY_VER=
# xen-tools's gentoo patches tarball
GENTOO_VER=18
# xen-tools's gentoo patches version which apply to this specific ebuild
GENTOO_GPV=0
# xen-tools ovmf's patches
OVMF_VER=
SEABIOS_VER=1.12.0
EDK2_COMMIT=ef529e6ab7c31290a33045bb1f1837447cc0eb56
IPXE_COMMIT=1dd56dbd11082fb622c2ed21cfaced4f47d798a6
[[ -n ${UPSTREAM_VER} ]] && \
UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P/-tools/}-upstream-patches-${UPSTREAM_VER}.tar.xz
https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${P/-tools/}-upstream-patches-${UPSTREAM_VER}.tar.xz"
[[ -n ${SECURITY_VER} ]] && \
SECURITY_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN/-tools}-security-patches-${SECURITY_VER}.tar.xz"
[[ -n ${GENTOO_VER} ]] && \
GENTOO_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN/-tools}-gentoo-patches-${GENTOO_VER}.tar.xz
https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${PN/-tools/}-gentoo-patches-${GENTOO_VER}.tar.xz"
[[ -n ${OVMF_VER} ]] && \
OVMF_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN/-tools}-ovmf-patches-${OVMF_VER}.tar.xz"
SRC_URI="https://downloads.xenproject.org/release/xen/${MY_PV}/xen-${MY_PV}.tar.gz
https://www.seabios.org/downloads/seabios-${SEABIOS_VER}.tar.gz
ipxe? ( http://xenbits.xen.org/xen-extfiles/ipxe-git-${IPXE_COMMIT}.tar.gz )
ovmf? ( https://github.com/tianocore/edk2/archive/${EDK2_COMMIT}.tar.gz -> edk2-${EDK2_COMMIT}.tar.gz
${OVMF_PATCHSET_URI} )
${UPSTREAM_PATCHSET_URI}
${SECURITY_PATCHSET_URI}
${GENTOO_PATCHSET_URI}"
S="${WORKDIR}/xen-${MY_PV}"
fi
DESCRIPTION="Xen tools including QEMU and xl"
HOMEPAGE="https://www.xenproject.org"
DOCS=( README )
LICENSE="GPL-2"
SLOT="0/$(ver_cut 1-2)"
# Inclusion of IUSE ocaml on stabalizing requires maintainer of ocaml to (get off his hands and) make
# >=dev-lang/ocaml-4 stable
# Masked in profiles/eapi-5-files instead
IUSE="api debug doc flask +hvm +ipxe ocaml ovmf +pam pygrub python +qemu +qemu-traditional +rombios screen sdl static-libs system-ipxe system-qemu system-seabios"
REQUIRED_USE="
${PYTHON_REQUIRED_USE}
ipxe? ( rombios )
ovmf? ( hvm )
pygrub? ( python )
rombios? ( hvm )
system-ipxe? ( rombios )
?? ( ipxe system-ipxe )
?? ( qemu system-qemu )"
COMMON_DEPEND="
sys-apps/pciutils
dev-libs/lzo:2
dev-libs/glib:2
dev-libs/yajl
dev-libs/libaio
dev-libs/libgcrypt:0
sys-libs/zlib
${PYTHON_DEPS}
"
DEPEND="${COMMON_DEPEND}
>=sys-kernel/linux-headers-4.11
dev-python/lxml[${PYTHON_USEDEP}]
x86? ( sys-devel/dev86
system-ipxe? ( sys-firmware/ipxe[qemu] )
sys-power/iasl )
pam? ( dev-python/pypam[${PYTHON_USEDEP}] )
api? ( dev-libs/libxml2
net-misc/curl )
ovmf? (
!arm? ( !arm64? ( dev-lang/nasm ) )
$(python_gen_impl_dep sqlite)
)
!amd64? ( >=sys-apps/dtc-1.4.0 )
amd64? ( sys-power/iasl
system-seabios? ( sys-firmware/seabios )
system-ipxe? ( sys-firmware/ipxe[qemu] )
rombios? ( sys-devel/bin86 sys-devel/dev86 ) )
dev-lang/perl
app-misc/pax-utils
doc? (
app-text/ghostscript-gpl
app-text/pandoc
dev-python/markdown[${PYTHON_USEDEP}]
dev-texlive/texlive-latexextra
media-gfx/transfig
)
hvm? ( x11-base/xorg-proto )
qemu? (
app-arch/snappy:=
x11-libs/pixman
sdl? ( media-libs/libsdl[X] )
)
system-qemu? ( app-emulation/qemu[xen] )
ocaml? ( dev-ml/findlib
>=dev-lang/ocaml-4 )"
RDEPEND="${COMMON_DEPEND}
sys-apps/iproute2[-minimal]
net-misc/bridge-utils
screen? (
app-misc/screen
app-admin/logrotate
)"
# hvmloader is used to bootstrap a fully virtualized kernel
# Approved by QA team in bug #144032
QA_WX_LOAD="
usr/libexec/xen/boot/hvmloader
usr/share/qemu-xen/qemu/hppa-firmware.img
usr/share/qemu-xen/qemu/s390-ccw.img
usr/share/qemu-xen/qemu/u-boot.e500
"
QA_PREBUILT="
usr/libexec/xen/bin/ivshmem-client
usr/libexec/xen/bin/ivshmem-server
usr/libexec/xen/bin/qemu-img
usr/libexec/xen/bin/qemu-io
usr/libexec/xen/bin/qemu-keymap
usr/libexec/xen/bin/qemu-nbd
usr/libexec/xen/bin/qemu-pr-helper
usr/libexec/xen/bin/qemu-system-i386
usr/libexec/xen/bin/virtfs-proxy-helper
usr/libexec/xen/libexec/xen-bridge-helper
usr/share/qemu-xen/qemu/s390-ccw.img
usr/share/qemu-xen/qemu/s390-netboot.img
usr/share/qemu-xen/qemu/u-boot.e500
"
RESTRICT="test"
pkg_setup() {
python_setup
export "CONFIG_LOMOUNT=y"
#bug 522642, disable compile tools/tests
export "CONFIG_TESTS=n"
if [[ -z ${XEN_TARGET_ARCH} ]] ; then
if use x86 && use amd64; then
die "Confusion! Both x86 and amd64 are set in your use flags!"
elif use x86; then
export XEN_TARGET_ARCH="x86_32"
elif use amd64 ; then
export XEN_TARGET_ARCH="x86_64"
elif use arm; then
export XEN_TARGET_ARCH="arm32"
elif use arm64; then
export XEN_TARGET_ARCH="arm64"
else
die "Unsupported architecture!"
fi
fi
}
src_prepare() {
local i
# Upstream's patchset
if [[ -n ${UPSTREAM_VER} ]]; then
einfo "Try to apply Xen Upstream patch set"
eapply "${WORKDIR}"/patches-upstream
fi
# Security patchset
if [[ -n ${SECURITY_VER} ]]; then
einfo "Try to apply Xen Security patch set"
# apply main xen patches
# Two parallel systems, both work side by side
# Over time they may concdense into one. This will suffice for now
EPATCH_SUFFIX="patch"
EPATCH_FORCE="yes"
source "${WORKDIR}"/patches-security/${PV}.conf || die
for i in ${XEN_SECURITY_MAIN}; do
eapply "${WORKDIR}"/patches-security/xen/$i
done
# apply qemu-xen/upstream patches
pushd "${S}"/tools/qemu-xen/ > /dev/null
for i in ${XEN_SECURITY_QEMUU}; do
eapply "${WORKDIR}"/patches-security/qemuu/$i
done
popd > /dev/null
# apply qemu-traditional patches
pushd "${S}"/tools/qemu-xen-traditional/ > /dev/null
for i in ${XEN_SECURITY_QEMUT}; do
eapply "${WORKDIR}"/patches-security/qemut/$i
done
popd > /dev/null
fi
# move before Gentoo patch, one patch should apply to seabios, to fix gcc-4.5.x build err
mv ../seabios-${SEABIOS_VER} tools/firmware/seabios-dir-remote || die
pushd tools/firmware/ > /dev/null
ln -s seabios-dir-remote seabios-dir || die
popd > /dev/null
# Gentoo's patchset
if [[ -n ${GENTOO_VER} && -n ${GENTOO_GPV} ]]; then
einfo "Try to apply Gentoo specific patch set"
source "${FILESDIR}"/gentoo-patches.conf || die
_gpv=_gpv_${PN/-/_}_${PV//./}_${GENTOO_GPV}
for i in ${!_gpv}; do
eapply "${WORKDIR}"/patches-gentoo/$i
done
fi
# Ovmf's patchset
if use ovmf; then
if [[ -n ${OVMF_VER} ]];then
einfo "Try to apply Ovmf patch set"
pushd "${WORKDIR}"/edk2-*/ > /dev/null
eapply "${WORKDIR}"/patches-ovmf
popd > /dev/null
fi
mv ../edk2-${EDK2_COMMIT} tools/firmware/ovmf-dir-remote || die
cp tools/firmware/ovmf-makefile tools/firmware/ovmf-dir-remote/Makefile || die
fi
# ipxe
if use ipxe; then
cp "${DISTDIR}/ipxe-git-${IPXE_COMMIT}.tar.gz" tools/firmware/etherboot/_ipxe.tar.gz || die
fi
mv tools/qemu-xen/qemu-bridge-helper.c tools/qemu-xen/xen-bridge-helper.c || die
# Fix texi2html build error with new texi2html, qemu.doc.html
sed -i -e "/texi2html -monolithic/s/-number//" tools/qemu-xen-traditional/Makefile || die
use api || sed -e "/SUBDIRS-\$(LIBXENAPI_BINDINGS) += libxen/d" -i tools/Makefile || die
sed -e 's:$(MAKE) PYTHON=$(PYTHON) subdirs-$@:LC_ALL=C "$(MAKE)" PYTHON=$(PYTHON) subdirs-$@:' \
-i tools/firmware/Makefile || die
# Drop .config, fixes to gcc-4.6
sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
# drop flags
unset CFLAGS
unset LDFLAGS
unset ASFLAGS
unset CPPFLAGS
if ! use pygrub; then
sed -e '/^SUBDIRS-y += pygrub/d' -i tools/Makefile || die
fi
if ! use python; then
sed -e '/^SUBDIRS-y += python$/d' -i tools/Makefile || die
fi
if ! use hvm; then
sed -e '/SUBDIRS-$(CONFIG_X86) += firmware/d' -i tools/Makefile || die
# Bug 351648
elif ! use x86 && ! has x86 $(get_all_abis); then
mkdir -p "${WORKDIR}"/extra-headers/gnu || die
touch "${WORKDIR}"/extra-headers/gnu/stubs-32.h || die
export CPATH="${WORKDIR}"/extra-headers
fi
if use qemu; then
if use sdl; then
sed -i -e "s:\$\$source/configure:\0 --enable-sdl:" \
tools/Makefile || die
else
sed -i -e "s:\${QEMU_ROOT\:\-\.}/configure:\0 --disable-sdl:" \
tools/qemu-xen-traditional/xen-setup || die
sed -i -e "s:\$\$source/configure:\0 --disable-sdl:" \
tools/Makefile || die
fi
else
# Don't bother with qemu, only needed for fully virtualised guests
sed -e "s:install-tools\: tools/qemu-xen-traditional-dir:install-tools\: :g" -i Makefile || die
fi
# Reset bash completion dir; Bug 472438
sed -e "s:^BASH_COMPLETION_DIR ?= \$(CONFIG_DIR)/bash_completion.d:BASH_COMPLETION_DIR ?= $(get_bashcompdir):" \
-i Config.mk || die
sed -i -e "/bash-completion/s/xl\.sh/xl/g" tools/libxl/Makefile || die
# xencommons, Bug #492332, sed lighter weight than patching
sed -e 's:\$QEMU_XEN -xen-domid:test -e "\$QEMU_XEN" \&\& &:' \
-i tools/hotplug/Linux/init.d/xencommons.in || die
# fix bashishm
sed -e '/Usage/s/\$//g' \
-i tools/hotplug/Linux/init.d/xendriverdomain.in || die
# respect multilib, usr/lib/libcacard.so.0.0.0
sed -e "/^libdir=/s/\/lib/\/$(get_libdir)/" \
-i tools/qemu-xen/configure || die
#bug 518136, don't build 32bit exactuable for nomultilib profile
if [[ "${ARCH}" == 'amd64' ]] && ! has_multilib_profile; then
sed -i -e "/x86_emulator/d" tools/tests/Makefile || die
fi
# uncomment lines in xl.conf
sed -e 's:^#autoballoon=:autoballoon=:' \
-e 's:^#lockfile=:lockfile=:' \
-e 's:^#vif.default.script=:vif.default.script=:' \
-i tools/examples/xl.conf || die
# disable capstone (Bug #673474)
sed -e "s:\$\$source/configure:\0 --disable-capstone:" \
-i tools/Makefile || die
# disable glusterfs
sed -e "s:\$\$source/configure:\0 --disable-glusterfs:" \
-i tools/Makefile || die
default
}
src_configure() {
local myconf="--prefix=${PREFIX}/usr \
--libdir=${PREFIX}/usr/$(get_libdir) \
--libexecdir=${PREFIX}/usr/libexec \
--localstatedir=${EPREFIX}/var \
--disable-werror \
--disable-xen \
--enable-tools \
--enable-docs \
$(use_enable api xenapi) \
$(use_enable ipxe) \
$(usex system-ipxe '--with-system-ipxe=/usr/share/ipxe' '') \
$(use_enable ocaml ocamltools) \
$(use_enable ovmf) \
$(use_enable pam) \
$(use_enable rombios) \
--with-xenstored=$(usex ocaml 'oxenstored' 'xenstored') \
"
use system-seabios && myconf+=" --with-system-seabios=/usr/share/seabios/bios.bin"
use system-qemu && myconf+=" --with-system-qemu=/usr/bin/qemu-system-x86_64"
use amd64 && myconf+=" $(use_enable qemu-traditional)"
tc-ld-disable-gold # Bug 669570
econf ${myconf}
}
src_compile() {
local myopt
use debug && myopt="${myopt} debug=y"
if test-flag-CC -fno-strict-overflow; then
append-flags -fno-strict-overflow
fi
emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" build-tools ${myopt}
if use doc; then
emake -C docs build
else
emake -C docs man-pages
fi
}
src_install() {
# Override auto-detection in the build system, bug #382573
export INITD_DIR=/tmp/init.d
export CONFIG_LEAF_DIR=../tmp/default
# Let the build system compile installed Python modules.
local PYTHONDONTWRITEBYTECODE
export PYTHONDONTWRITEBYTECODE
emake DESTDIR="${ED}" DOCDIR="/usr/share/doc/${PF}" \
XEN_PYTHON_NATIVE_INSTALL=y install-tools
# Created at runtime
rm -rv "${ED}/var/run" || die
# Fix the remaining Python shebangs.
python_fix_shebang "${D}"
# Remove RedHat-specific stuff
rm -rf "${D}"/tmp || die
if use doc; then
emake DESTDIR="${D}" DOCDIR="/usr/share/doc/${PF}" install-docs
dodoc -r docs/{pdf,txt}
else
emake -C docs DESTDIR="${D}" DOCDIR="/usr/share/doc/${PF}" install-man-pages # Bug 668032
fi
dodoc ${DOCS[@]}
newconfd "${FILESDIR}"/xendomains.confd xendomains
newconfd "${FILESDIR}"/xenstored.confd xenstored
newconfd "${FILESDIR}"/xenconsoled.confd xenconsoled
newinitd "${FILESDIR}"/xendomains.initd-r2 xendomains
newinitd "${FILESDIR}"/xenstored.initd-r1 xenstored
newinitd "${FILESDIR}"/xenconsoled.initd xenconsoled
newinitd "${FILESDIR}"/xencommons.initd xencommons
newconfd "${FILESDIR}"/xencommons.confd xencommons
newinitd "${FILESDIR}"/xenqemudev.initd xenqemudev
newconfd "${FILESDIR}"/xenqemudev.confd xenqemudev
newinitd "${FILESDIR}"/xen-watchdog.initd xen-watchdog
if use screen; then
cat "${FILESDIR}"/xendomains-screen.confd >> "${D}"/etc/conf.d/xendomains || die
cp "${FILESDIR}"/xen-consoles.logrotate "${D}"/etc/xen/ || die
keepdir /var/log/xen-consoles
fi
# For -static-libs wrt Bug 384355
if ! use static-libs; then
rm -f "${D}"/usr/$(get_libdir)/*.a "${D}"/usr/$(get_libdir)/ocaml/*/*.a
fi
# for xendomains
keepdir /etc/xen/auto
# Remove files failing QA AFTER emake installs them, avoiding seeking absent files
find "${D}" \( -name openbios-sparc32 -o -name openbios-sparc64 \
-o -name openbios-ppc -o -name palcode-clipper \) -delete || die
keepdir /var/lib/xen/dump
keepdir /var/lib/xen/xenpaging
keepdir /var/lib/xenstored
keepdir /var/log/xen
}
pkg_postinst() {
elog "Official Xen Guide and the offical wiki page:"
elog "https://wiki.gentoo.org/wiki/Xen"
elog "https://wiki.xen.org/wiki/Main_Page"
elog ""
elog "Recommended to utilise the xencommons script to config system at boot"
elog "Add by use of rc-update on completion of the install"
if ! use hvm; then
echo
elog "HVM (VT-x and AMD-V) support has been disabled. If you need hvm"
elog "support enable the hvm use flag."
elog "An x86 or amd64 system is required to build HVM support."
fi
if use qemu; then
elog "The qemu-bridge-helper is renamed to the xen-bridge-helper in the in source"
elog "build of qemu. This allows for app-emulation/qemu to be emerged concurrently"
elog "with the qemu capable xen. It is up to the user to distinguish between and utilise"
elog "the qemu-bridge-helper and the xen-bridge-helper. File bugs of any issues that arise"
fi
}

@ -1,4 +1,5 @@
DIST xen-4.11.2-upstream-patches-0.tar.xz 11532 BLAKE2B e36509d6256ac4018f20711baba77619a7c3a684d81e25a94cffba9c9f53ec9e0efdcefcd6a7ffa26b49fd3d4e0dfc2126f1ea620f0bd35ea83188b4587e5b38 SHA512 4a97d1e56cb3e5152372f0c0b99f8838194b2e03ed1255e87611d8bb28af9c9199fe123d3542f5ba9b3f652c29a519b5e4255b8925c0c8dfbd588f83ed8806d9
DIST xen-4.11.2.tar.gz 25164925 BLAKE2B 11adea16d93235af5807e6e3784e0fc36ce34f274a85d1976a5c8ad36a323437216b0cf6bb6cb13b00e1e838e319a9f8f4b9c417870eef9ed660f22274d81310 SHA512 48d3d926d35eb56c79c06d0abc6e6be2564fadb43367cc7f46881c669a75016707672179c2cca1c4cfb14af2cefd46e2e7f99470cddf7df2886d8435a2de814e
DIST xen-4.12.0-upstream-patches-0.tar.xz 32864 BLAKE2B 994ca1f9fdd89f25e225348870ec97257795644f0314437f8d2927b77ce5b53de6b9e043636cc2c9e4f8fda4ff7b7c26917f2912f2a287c57bc00606846fb617 SHA512 6f7ab80cac0afd8bcd88109cd052e29f9b028b0c363a4e1f1e845f4fdbb3d7782dffd1f20dd80f2923c507625abe9648d7fbe7d52c6fd565ab550c9c5a416eeb
DIST xen-4.12.0.tar.gz 26949697 BLAKE2B 9175cc9054e4a2b5c34df89a4efd667f86b4861bef9c3310bf431d041f710a7cb265b4d34a76ab18a17a3121392942d2e5d76c5044eb9b957d4255af889fe69a SHA512 0ce366dcac607c9b592c5e9c0f40652eef743913b246bed4b0c380b8d59ac23a6adcd05befec37fc799a61476f47df76d4911cbf1da6ceb51441c546bf2464de
DIST xen-4.12.1-upstream-patches-0.tar.xz 18520 BLAKE2B b7a3f51e7629d2cabf9a8363291a7178b4f9a3eed7907271939a21e8058900d4497405c7d06df4ec71a558d68998456ca3c79d431dee2ec39fe21a9280fc2d4b SHA512 f15192505803de6cc1f1eb04b653f186ac7b08afa9575ee0b57f793f77cc08b10945c1b849183763a5b40d6ee6a80eab37d97219f3fff7a76397088cb6854b08
DIST xen-4.12.1.tar.gz 26970584 BLAKE2B ceab2af3d36b72d838d7b4f58f6855c97cf05282a4ea3c82eda29b8945ee20563845b7be02884bf0a061a633fb2b3016a2f7396ce34d9b3d93f90d6ee6d449ed SHA512 be15d3af6b109771aaf59b3621e4e1560b7d9a963d9b7f6a1f6f4a1c907fd97434b060c15f75849b44fbda33f26eb51b030d14d068c6ad5103ad240fe7a98f40
DIST xen-4.13.0-rc1.tar.gz 38984903 BLAKE2B c8fa19a2cff2de67712e5976670ecbbeff1528b987cdd7523a7f8c8952b889255af4e21c50c68537ffff9273153dfc619582f8072f6f356e20f38dae1e331fb6 SHA512 392d1f77faec4d9868aff928a2eb2918e8cef576a92f7a853d3bbd1ba609bad6abcd4d675f7c618e7bf630feea4c8da081c31926c281a17c8f6b41c3ea9fd607

@ -1,34 +0,0 @@
--- xen-4.11.1/xen/drivers/passthrough/vtd/vtd.h.orig 2018-11-29 14:04:11.000000000 +0000
+++ xen-4.11.1/xen/drivers/passthrough/vtd/vtd.h 2019-02-05 21:32:50.056774501 +0000
@@ -28,7 +28,7 @@
/* Allow for both IOAPIC and IOSAPIC. */
#define IO_xAPIC_route_entry IO_APIC_route_entry
-struct IO_APIC_route_remap_entry {
+struct __packed IO_APIC_route_remap_entry {
union {
u64 val;
struct {
--- xen-4.11.1/xen/common/trace.c.orig 2018-11-29 14:04:11.000000000 +0000
+++ xen-4.11.1/xen/common/trace.c 2019-02-06 20:31:27.370256971 +0000
@@ -819,7 +819,7 @@
void __trace_hypercall(uint32_t event, unsigned long op,
const xen_ulong_t *args)
{
- struct __packed {
+ struct {
uint32_t op;
uint32_t args[6];
} d;
--- xen-4.11.1/xen/arch/x86/cpu/mtrr/generic.c.orig 2018-11-29 14:04:11.000000000 +0000
+++ xen-4.11.1/xen/arch/x86/cpu/mtrr/generic.c 2019-02-10 19:24:09.378805103 +0000
@@ -171,6 +171,9 @@
printk("%sMTRR variable ranges %sabled:\n", level,
mtrr_state.enabled ? "en" : "dis");
width = (paddr_bits - PAGE_SHIFT + 3) / 4;
+ if ( width > 64 ) {
+ width=64;
+ }
for (i = 0; i < num_var_ranges; ++i) {
if (mtrr_state.var_ranges[i].mask & MTRR_PHYSMASK_VALID)

@ -37,7 +37,7 @@ DESCRIPTION="The Xen virtual machine monitor"
HOMEPAGE="https://www.xenproject.org"
LICENSE="GPL-2"
SLOT="0"
IUSE="custom-cflags debug efi flask"
IUSE="debug efi flask"
DEPEND="${PYTHON_DEPS}
efi? ( >=sys-devel/binutils-2.22[multitarget] )
@ -100,9 +100,6 @@ src_prepare() {
eapply "${FILESDIR}"/${PN}-4.6-efi.patch
# https://src.fedoraproject.org/rpms/xen/blob/master/f/xen.gcc9.fixes.patch
eapply "${FILESDIR}"/${PN}.gcc9.fixes.patch
# Drop .config
sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
@ -111,19 +108,6 @@ src_prepare() {
export EFI_MOUNTPOINT="boot"
fi
# if the user *really* wants to use their own custom-cflags, let them
if use custom-cflags; then
einfo "User wants their own CFLAGS - removing defaults"
# try and remove all the default custom-cflags
find "${S}" -name Makefile -o -name Rules.mk -o -name Config.mk -exec sed \
-e 's/CFLAGS\(.*\)=\(.*\)-O3\(.*\)/CFLAGS\1=\2\3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-march=i686\(.*\)/CFLAGS\1=\2\3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-fomit-frame-pointer\(.*\)/CFLAGS\1=\2\3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-g3*\s\(.*\)/CFLAGS\1=\2 \3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-O2\(.*\)/CFLAGS\1=\2\3/' \
-i {} \; || die "failed to re-set custom-cflags"
fi
default
}
@ -132,14 +116,10 @@ src_configure() {
use debug && myopt="${myopt} debug=y"
if use custom-cflags; then
filter-flags -fPIE -fstack-protector
replace-flags -O3 -O2
else
unset CFLAGS
unset LDFLAGS
unset ASFLAGS
fi
# remove flags
unset CFLAGS
unset LDFLAGS
unset ASFLAGS
}
src_compile() {

@ -0,0 +1,154 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python2_7 )
inherit flag-o-matic mount-boot multilib python-any-r1 toolchain-funcs
MY_PV=${PV/_/-}
MY_P=${PN}-${MY_PV}
if [[ $PV == *9999 ]]; then
inherit git-r3
EGIT_REPO_URI="git://xenbits.xen.org/xen.git"
SRC_URI=""
else
KEYWORDS="~amd64 ~arm -x86"
UPSTREAM_VER=
SECURITY_VER=
GENTOO_VER=
[[ -n ${UPSTREAM_VER} ]] && \
UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P}-upstream-patches-${UPSTREAM_VER}.tar.xz
https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${P}-upstream-patches-${UPSTREAM_VER}.tar.xz"
[[ -n ${SECURITY_VER} ]] && \
SECURITY_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN}-security-patches-${SECURITY_VER}.tar.xz"
[[ -n ${GENTOO_VER} ]] && \
GENTOO_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN}-gentoo-patches-${GENTOO_VER}.tar.xz"
SRC_URI="https://downloads.xenproject.org/release/xen/${MY_PV}/${MY_P}.tar.gz
${UPSTREAM_PATCHSET_URI}
${SECURITY_PATCHSET_URI}
${GENTOO_PATCHSET_URI}"
fi
DESCRIPTION="The Xen virtual machine monitor"
HOMEPAGE="https://www.xenproject.org"
LICENSE="GPL-2"
SLOT="0"
IUSE="debug efi flask"
DEPEND="${PYTHON_DEPS}
efi? ( >=sys-devel/binutils-2.22[multitarget] )
!efi? ( >=sys-devel/binutils-2.22 )"
RDEPEND=""
PDEPEND="~app-emulation/xen-tools-${PV}"
# no tests are available for the hypervisor
# prevent the silliness of /usr/lib/debug/usr/lib/debug files
# prevent stripping of the debug info from the /usr/lib/debug/xen-syms
RESTRICT="test splitdebug strip"
# Approved by QA team in bug #144032
QA_WX_LOAD="boot/xen-syms-${PV}"
REQUIRED_USE="arm? ( debug )"
S="${WORKDIR}/${MY_P}"
pkg_setup() {
python-any-r1_pkg_setup
if [[ -z ${XEN_TARGET_ARCH} ]]; then
if use amd64; then
export XEN_TARGET_ARCH="x86_64"
elif use arm; then
export XEN_TARGET_ARCH="arm32"
elif use arm64; then
export XEN_TARGET_ARCH="arm64"
else
die "Unsupported architecture!"
fi
fi
if use flask ; then
export "XSM_ENABLE=y"
export "FLASK_ENABLE=y"
fi
}
src_prepare() {
# Upstream's patchset
[[ -n ${UPSTREAM_VER} ]] && eapply "${WORKDIR}"/patches-upstream
# Security patchset
if [[ -n ${SECURITY_VER} ]]; then
einfo "Try to apply Xen Security patch set"
# apply main xen patches
# Two parallel systems, both work side by side
# Over time they may concdense into one. This will suffice for now
source "${WORKDIR}"/patches-security/${PV}.conf
local i
for i in ${XEN_SECURITY_MAIN}; do
eapply "${WORKDIR}"/patches-security/xen/$i
done
fi
# Gentoo's patchset
[[ -n ${GENTOO_VER} ]] && eapply "${WORKDIR}"/patches-gentoo
eapply "${FILESDIR}"/${PN}-4.6-efi.patch
# Drop .config
sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
if use efi; then
export EFI_VENDOR="gentoo"
export EFI_MOUNTPOINT="boot"
fi
default
}
src_configure() {
use arm && myopt="${myopt} CONFIG_EARLY_PRINTK=sun7i"
use debug && myopt="${myopt} debug=y"
# remove flags
unset CFLAGS
unset LDFLAGS
unset ASFLAGS
}
src_compile() {
# Send raw LDFLAGS so that --as-needed works
emake V=1 CC="$(tc-getCC)" LDFLAGS="$(raw-ldflags)" LD="$(tc-getLD)" -C xen ${myopt}
}
src_install() {
local myopt
use debug && myopt="${myopt} debug=y"
# The 'make install' doesn't 'mkdir -p' the subdirs
if use efi; then
mkdir -p "${D}"${EFI_MOUNTPOINT}/efi/${EFI_VENDOR} || die
fi
emake LDFLAGS="$(raw-ldflags)" DESTDIR="${D}" -C xen ${myopt} install
# make install likes to throw in some extra EFI bits if it built
use efi || rm -rf "${D}/usr/$(get_libdir)/efi"
}
pkg_postinst() {
elog "Official Xen Guide:"
elog " https://wiki.gentoo.org/wiki/Xen"
use efi && einfo "The efi executable is installed in boot/efi/gentoo"
elog "You can optionally block the installation of /boot/xen-syms by an entry"
elog "in folder /etc/portage/env using the portage's feature INSTALL_MASK"
elog "e.g. echo ${msg} > /etc/portage/env/xen.conf"
}

Binary file not shown.

@ -9,7 +9,7 @@ SRC_URI=""
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ppc ppc64 s390 sparc x86"
KEYWORDS="alpha amd64 ~arm ~arm64 hppa ~ia64 ~mips ppc ppc64 s390 sparc x86"
IUSE=""
# Need skel.bash lib

@ -1,12 +1,10 @@
# Copyright 1999-2018 Gentoo Foundation
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=0
inherit eutils
EAPI=7
DESCRIPTION="mpost module for eselect"
HOMEPAGE="https://www.gentoo.org/proj/en/eselect/"
HOMEPAGE="https://wiki.gentoo.org/wiki/Project:TeX"
SRC_URI=""
LICENSE="GPL-2"
@ -20,11 +18,12 @@ DEPEND=""
RDEPEND=">=app-admin/eselect-1.2.3
>=app-text/texlive-core-2008"
S="${WORKDIR}"
src_install() {
local MODULEDIR="/usr/share/eselect/modules"
local MODULE="mpost"
dodir ${MODULEDIR}
insinto ${MODULEDIR}
newins "${FILESDIR}/${MODULE}.eselect-${PVR}" ${MODULE}.eselect \
|| die "failed to install"
newins "${FILESDIR}/${MODULE}.eselect-${PVR}" ${MODULE}.eselect
}

@ -1,9 +1,7 @@
# Copyright 1999-2018 Gentoo Foundation
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=0
inherit eutils
EAPI=7
DESCRIPTION="pdftex module for eselect"
HOMEPAGE="https://www.gentoo.org/proj/en/eselect/"
@ -12,7 +10,6 @@ SRC_URI=""
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="alpha amd64 arm hppa ia64 ~ppc ~ppc64 s390 sh sparc x86"
IUSE=""
DEPEND=""
# Depend on texlive-core-2008 that allows usage of this module, otherwise it
@ -20,11 +17,12 @@ DEPEND=""
RDEPEND=">=app-admin/eselect-1.2.3
>=app-text/texlive-core-2008"
S="${WORKDIR}"
src_install() {
local MODULEDIR="/usr/share/eselect/modules"
local MODULE="pdftex"
dodir ${MODULEDIR}
insinto ${MODULEDIR}
newins "${FILESDIR}/${MODULE}.eselect-${PVR}" ${MODULE}.eselect \
|| die "failed to install"
newins "${FILESDIR}/${MODULE}.eselect-${PVR}" ${MODULE}.eselect
}

Binary file not shown.

@ -0,0 +1,2 @@
DIST qcma-0.4.1.tar.gz 239952 BLAKE2B 342272cc1bab74e34f545ed7c54b7f12732723e55f53224b16a2525bea161f49d4ec799e1e1f868af63067f3021a73389eac581299582a9410aa372e55ea265a SHA512 d061c43528dcb5b361f5e3f7cb303926df29f86f22603a9bc25326c1056344478dae6335d5f82d3f2e56ce98154cb5b1b3e94a3ab1128d7c79d42f8bf92fc7ec
DIST qcma-0.4.2_pre20181227.tar.gz 244336 BLAKE2B 5a7a33384d4c73050954901e8e8f31ac72d4a2e1ae285389197eedcafe2c9f5d035588bbd330ba72c20048bd889b483259ab5824ad1ba7bdee7351b848ab2e12 SHA512 3379b5b804c169f3dcc1bd3079cffbaa016248631e69563d3e509dcc4de198f259edc5a69bcea4f65cfa16c366d1a2919bdf7aa6703b6648a6f218e9d58f806c

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>mva@gentoo.org</email>
<name>Vadim Misbakh-Soloviov</name>
</maintainer>
<longdescription lang="en">
Cross-platform content manager assistant for the PS Vita.
</longdescription>
<upstream>
<remote-id type="github">codestation/qcma</remote-id>
</upstream>
</pkgmetadata>

@ -0,0 +1,41 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit qmake-utils
DESCRIPTION="Cross-platform content manager assistant for the PS Vita"
HOMEPAGE="https://github.com/codestation/qcma"
SRC_URI="https://github.com/codestation/qcma/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
IUSE="+ffmpeg"
DEPEND="
dev-libs/glib:2
dev-qt/qtcore:5
dev-qt/qtgui:5
dev-qt/qtnetwork:5
dev-qt/qtsql:5
dev-qt/qtwidgets:5
media-libs/vitamtp:0
ffmpeg? ( media-video/ffmpeg:0 )
x11-libs/libnotify:0
"
RDEPEND="${DEPEND}"
BDEPEND="
dev-qt/linguist-tools
"
src_prepare() {
rm ChangeLog || die "Failed to rm changelog" # Triggers QA warn (symlink to nowhere)
default
}
src_configure() {
lrelease common/resources/translations/*.ts
eqmake5 PREFIX="${D}"/usr qcma.pro CONFIG+="QT5_SUFFIX" $(usex ffmpeg "" CONFIG+="DISABLE_FFMPEG")
}

@ -0,0 +1,43 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit qmake-utils vcs-snapshot
GIT_COMMIT="65f0eab8ca0640447d2e84cdc5fadc66d2c07efb"
DESCRIPTION="Cross-platform content manager assistant for the PS Vita"
HOMEPAGE="https://github.com/codestation/qcma"
SRC_URI="https://github.com/codestation/qcma/archive/${GIT_COMMIT}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
IUSE="+ffmpeg"
DEPEND="
dev-libs/glib:2
dev-qt/qtcore:5
dev-qt/qtgui:5
dev-qt/qtnetwork:5
dev-qt/qtsql:5
dev-qt/qtwidgets:5
media-libs/vitamtp:0
ffmpeg? ( media-video/ffmpeg:0 )
x11-libs/libnotify:0
"
RDEPEND="${DEPEND}"
BDEPEND="
dev-qt/linguist-tools
"
src_prepare() {
rm ChangeLog || die "Failed to rm changelog" # Triggers QA warn (symlink to nowhere)
default
}
src_configure() {
lrelease common/resources/translations/*.ts
eqmake5 PREFIX="${D}"/usr qcma.pro CONFIG+="QT5_SUFFIX" $(usex ffmpeg "" CONFIG+="DISABLE_FFMPEG")
}

@ -0,0 +1,41 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit qmake-utils git-r3
DESCRIPTION="Cross-platform content manager assistant for the PS Vita"
HOMEPAGE="https://github.com/codestation/qcma"
EGIT_REPO_URI="https://github.com/codestation/qcma.git"
LICENSE="GPL-3"
SLOT="0"
IUSE="+ffmpeg"
DEPEND="
dev-libs/glib:2
dev-qt/qtcore:5
dev-qt/qtgui:5
dev-qt/qtnetwork:5
dev-qt/qtsql:5
dev-qt/qtwidgets:5
media-libs/vitamtp:0
ffmpeg? ( media-video/ffmpeg:0 )
x11-libs/libnotify:0
"
RDEPEND="${DEPEND}"
BDEPEND="
dev-qt/linguist-tools
"
src_prepare() {
rm ChangeLog || die "Failed to rm changelog" # Triggers QA warn (symlink to nowhere)
default
}
src_configure() {
lrelease common/resources/translations/*.ts
eqmake5 PREFIX="${D}"/usr qcma.pro CONFIG+="QT5_SUFFIX" $(usex ffmpeg "" CONFIG+="DISABLE_FFMPEG")
}

Binary file not shown.

@ -1,3 +1,4 @@
DIST gemato-14.1-multiprocessing.tar.gz 71707 BLAKE2B d7d22615a65bd598160b23e01a938c20ecadfb1a1332db3842b14bfac69006269efd0f1da6d6bf0f10f3aafb07ebe01af09e64f9612c50b8e98a0bd6aff27651 SHA512 fd4722dd2f632bda4abac59b7e62f531edbdc455be1f1ec94d8bf99194956de15b6cfa4d623713bf3c25e55a6cc6adcdf8039cb7d20a556924bed0ddefd95daf
DIST gemato-14.1.tar.gz 71142 BLAKE2B a7c8f814f9c6875e977aa178d4a49e3454ea8d6e19750786452aa2f34f0904f0ccc0a9a58411a0214a68cecd571320769c6374b265e2aa7f52fbead53ba6b284 SHA512 de57f3b7aa17e650894876bc2423c4fa9809f2de25aa2fb8ef070e943faa182c80f7ea8a519ecdf6edec8098d11f786344ee872b9e98c69bd6739760652baa2e
DIST gemato-14.2.tar.gz 71315 BLAKE2B e94284512bc42d129ef29b686a007dfaf74e8d325a5596f44ddae0e6ce76bf86cf24fa94ea72476fc17eb575a472ee39b02b987c1f97d987eb03ffe6901d472f SHA512 de4e2764bf5778cb5c5fe23c912d9d8c89c4201256305ce5820555fcb5eea4236b8d64ccac9b1a72fc497ec9a4a4e64446835850a8f9be7a8271cddde52eb561
DIST gemato-14.3.tar.gz 71325 BLAKE2B d42a5182c12bcc0281df47ddb6b933bb332b9b842b2a5c874c3fa4030ab5a8a16759ee289609d428a3fc1338078cd73d234060354513be88c184d5a6bbec545d SHA512 99904b1a38b8a05ff7bf7c265aa463a56ea3aa6c77dd844dc2d154faae5460e3535f4e9799e8863fda256ee6cd374e051ed98193c9b1fc52dc30c9c2655010cd

@ -0,0 +1,44 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
# pysha3 is broken with pypy3
PYTHON_COMPAT=( python{2_7,3_5,3_6,3_7} pypy{,3} )
PYTHON_REQ_USE='threads(+)'
inherit distutils-r1
DESCRIPTION="Stand-alone Manifest generation & verification tool"
HOMEPAGE="https://github.com/mgorny/gemato"
SRC_URI="mirror://pypi/${PN::1}/${PN}/${P}.tar.gz"
LICENSE="BSD-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux"
IUSE="+blake2 bzip2 +gpg lzma sha3 test tools"
RESTRICT="!test? ( test )"
MODULE_RDEPEND="
blake2? ( $(python_gen_cond_dep 'dev-python/pyblake2[${PYTHON_USEDEP}]' python{2_7,3_5} pypy{,3}) )
bzip2? ( $(python_gen_cond_dep 'dev-python/bz2file[${PYTHON_USEDEP}]' python2_7 pypy) )
gpg? ( app-crypt/gnupg )
lzma? ( $(python_gen_cond_dep 'dev-python/backports-lzma[${PYTHON_USEDEP}]' python2_7 pypy) )
sha3? ( $(python_gen_cond_dep 'dev-python/pysha3[${PYTHON_USEDEP}]' python{2_7,3_5} pypy) )"
RDEPEND="${MODULE_RDEPEND}
dev-python/setuptools[${PYTHON_USEDEP}]"
DEPEND=">=dev-python/setuptools-34[${PYTHON_USEDEP}]
test? ( ${MODULE_RDEPEND} )"
python_test() {
esetup.py test
}
python_install_all() {
distutils-r1_python_install_all
if use tools; then
exeinto /usr/share/gemato
doexe utils/*.{bash,py}
fi
}

@ -1,5 +1,4 @@
DIST mirrorselect-2.2.3.tar.gz 15230 BLAKE2B 7234ab8a681713c63b201e1ae362ea9a28d5e76b5640c6128d79c66d9967660474d0597822604defd3f562cd155524835c5ae20cbf21c5526595775b3be39dc4 SHA512 af1d3657b9ff5a6184ebfd89579a1bdbf11f7389ca12d4cd7a41cd136a553732cbbfb7675e25f7d79756b0b9e74b496d28ee5fdc8872173825262fae0052e8e2
DIST mirrorselect-2.2.4.tar.gz 16085 BLAKE2B 67d3de3e25a993a4bfc546ae7d188b2a7e61da1cfbc85ac50119c88a81c4966959e31f88101880ba86ef27f0b0674a3d279b11135d2475d0b2fed1ea899021f5 SHA512 8749a916911088d128f9064d5aa78c3bf8b529d583db86eb6f7190959008257e231f7b0bae9a2f2fd6edc45f6d0ffb07364c16a3f190f8c97b88472c2d082037
DIST mirrorselect-2.2.5.tar.gz 16638 BLAKE2B b306f146936344309e79469281830bdbd088bae3686de777bf24bce5bd4e915c951b1f01612c9600cadcbc90139c74a9a5774ca5779bae339d1d5f33d17f70f1 SHA512 845df4073f5dc7544d7c1ae410f154e27ef9a9848c2fa182f4d0acd287f17792d11065b1b3394856bd760589d6b24e30e031d10e4ef6c987ac4321dc7e044e4e
DIST mirrorselect-2.2.6.tar.gz 16727 BLAKE2B 8875bf61e26ac474338d81a602297fa4fdf3fab3dbd478b02129dbe71f2d09445efa9b82792e3e654725c5e87a4ca00d37a3d924f8bd6f2decdf74148d1069c8 SHA512 ff2b88bf568f79182275e2c85cafbeee7cbeb0226225a7c3289f0a1d7a8b5eae9d41c69b099bb7e0cc9b0300b23afea43c3ac1baa13f37c696159bb1b3ac05f8
DIST mirrorselect-test 102403 BLAKE2B 8f23cebf111912ea6fcdea5f4a50a84751a4dd0c62956555a5c0b4fbe15d2329424a65b18c3608440bc0fedd4b2d25fc74cfe91e6e434eb90b7090b36e17b65f SHA512 f43d92e9bf7e77c8f04449a786cb659bdfc07257892caca842ab4a63eb9c5351fa48130c2e163857f3233a595cea7b83f5ea9fa879b782e15b73beb62f0e5e27

@ -1,39 +0,0 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
PYTHON_COMPAT=( python3_{5,6,7} )
PYTHON_REQ_USE="xml"
inherit eutils distutils-r1 prefix
DESCRIPTION="Tool to help select distfiles mirrors for Gentoo"
HOMEPAGE="https://wiki.gentoo.org/wiki/Mirrorselect"
SRC_URI="https://dev.gentoo.org/~zmedico/dist/${P}.tar.gz
https://dev.gentoo.org/~dolsen/releases/mirrorselect/mirrorselect-test
"
LICENSE="GPL-2"
SLOT="0"
IUSE=""
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
RDEPEND="
dev-util/dialog
>=net-analyzer/netselect-0.4[ipv6(+)]
>=dev-python/ssl-fetch-0.3[${PYTHON_USEDEP}]
"
python_prepare_all() {
python_setup
eprefixify setup.py mirrorselect/main.py
echo Now setting version... VERSION="${PVR}" "${PYTHON}" setup.py set_version
VERSION="${PVR}" "${PYTHON}" setup.py set_version || die "setup.py set_version failed"
distutils-r1_python_prepare_all
}
python_test() {
esetup.py test || die "tests failed under ${EPYTHON}"
}

@ -37,6 +37,10 @@ python_prepare_all() {
sed -e '/^NETSELECT_SUPPORTS_IPV4_IPV6 =/s|False|True|' \
-i mirrorselect/selectors.py || die
fi
# Apply e69ec2d046626fa2079d460aab469d04256182cd for bug 698470.
sed -e 's|key = lex.get_token()|\0\n\t\t\tif key is None:\n\t\t\t\tbreak|' -i mirrorselect/configs.py || die
distutils-r1_python_prepare_all
}

Binary file not shown.

@ -1,9 +1,9 @@
# Copyright 1999-2017 Gentoo Foundation
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=4
EAPI=7
inherit texlive-common eutils
inherit desktop texlive-common
DESCRIPTION="GUI and command-line converter for [e]ps and pdf"
HOMEPAGE="http://tex.aanhet.net/epspdf/"
@ -14,7 +14,6 @@ SLOT="0"
KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 s390 sh sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="doc tk"
DEPEND=""
RDEPEND="!<dev-texlive/texlive-pictures-2011-r1
>=dev-texlive/texlive-basic-2011
app-text/ghostscript-gpl
@ -38,7 +37,7 @@ src_install() {
dodoc doc/Changelog
if use doc ; then
dodoc doc/epspdf.pdf
dohtml -r doc
dodoc -r doc
fi
# give it a .desktop

@ -1,9 +1,9 @@
# Copyright 1999-2017 Gentoo Foundation
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=4
EAPI=7
inherit texlive-common eutils
inherit desktop texlive-common
DESCRIPTION="GUI and command-line converter for [e]ps and pdf"
HOMEPAGE="http://tex.aanhet.net/epspdf/"
@ -43,7 +43,7 @@ src_install() {
dodoc doc/Changelog
if use doc ; then
dodoc doc/epspdf.pdf
dohtml -r doc
dodoc -r doc
fi
# give it a .desktop

@ -1,4 +1,4 @@
DIST ghostscript-9.26.tar.xz 33059724 BLAKE2B 7ccb9730db8ae056e67bf8d7fa097a4cb529605e12214ab81253d2d354d26c24e393c8bec2ecdb51a1fefe8443b8af47758705c2fb6b1dab59932140c5de07ca SHA512 3ddb83029edf32282357bf606f4045a9ac73df6543cd423cfad09158ec12ada083a0dbb5aac3b73ae24cbc6c1e9d7574257a5c1fae63ba8776fbb00150ef2a3e
DIST ghostscript-9.28rc4.tar.xz 34608244 BLAKE2B f659b73d88b14f07e2c5b0ece7bc8dff5f9daf831a6da3f37e9613b00799929fb505c5ce7b98f181f617f2a2744b7abcf8be770b2ca0bb8389c439934541432b SHA512 a73dda81de96d93c1cdcc712356b1e06349d0e35af3db726b3581e5e1289cb656db52426f2aefa699c8fb137d0058e7a1238f54f0d2165f0c7ca86c96eb42fbc
DIST ghostscript-9.50.tar.xz 34613344 BLAKE2B 999af7525ec84448256bac233a81ea3b8d4dcb8cd22fd67dc26dd542840259cef0c1438b85274f1d9c192784ecc5d36cb47a3d4482ebbe19ea8843404f9d0ad2 SHA512 3c1e5db519a427f4b6bfb8d93f3c3dfb67d5ec9ccd19c7afa7670deb768515f3fc617c5588e54934bbfbedfdf8609ce2ffa36dd7da3cb618937fe034f64f43ee
DIST ghostscript-gpl-9.26-patchset-1.tar.xz 3716 BLAKE2B 0a4c32b3d0c0152b0dc7c62bf2b0bc8e30a369c2aed7c7be4a231948123c2242ce96ae5b1fd485bdae84d7cde1be9f3b3a16831fe77dfbc7ac6cd28bb5e14442 SHA512 7ad9558b00cc11d0872b32d2f1430d2e47730a2360c79d88299c87f8d6d4c15adb5c679ebdcaf50c58d9051c6a1d6f6873e4d81aadfbf3ce202ad94b6dc8981f
DIST ghostscript-gpl-9.28-patchset-2.tar.xz 2560 BLAKE2B 137b6a817c9773f723e3533635866cdb0aef53fe957d432cc86ad314b0e972cba8aab4eec27fcb2e16972158f9b5692288d7e783398b5a5900a9f835a1d62eba SHA512 52c14d15a3cdda9c19102e25a10c5c5f57352414124bb4fb2b803e89b34bddf9ab6fc83e343619e4ff98f707f0b4acea6806419882ebe1d18e3486a8ff975526
DIST ghostscript-gpl-9.50-patchset-1.tar.xz 3840 BLAKE2B 12bda8633b5657b1b480b69d5a039be724c1af9a1a67e3509112fb607565e087500d2a6efaacd5e774e0f24b01fa6e8887a56fa0207cfc6fcdc3768b0156f86f SHA512 dc638ffb48425980202e7064ee40f65b0f78041c82601f87035100a50d5e18455aa1b852c8c1d852fa582b8be52276d078d80463e3b25ab73863a8544d0e08c1

@ -13,7 +13,7 @@ MY_P="${MY_PN}-${PV/_}"
PVM=$(ver_cut 1-2)
PVM_S=$(ver_rs 1-2 "")
MY_PATCHSET="ghostscript-gpl-9.28-patchset-2.tar.xz"
MY_PATCHSET="ghostscript-gpl-9.50-patchset-1.tar.xz"
SRC_URI="https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs${PVM_S}/${MY_P}.tar.xz"
if [[ -n "${MY_PATCHSET}" ]] ; then
@ -22,7 +22,7 @@ fi
LICENSE="AGPL-3 CPL-1.0"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ppc ~ppc64 ~s390 ~sh sparc x86"
IUSE="cups dbus gtk l10n_de static-libs tiff unicode X"
LANGS="ja ko zh-CN zh-TW"
@ -34,7 +34,7 @@ DEPEND="
app-text/libpaper
media-libs/fontconfig
>=media-libs/freetype-2.4.9:2=
>=media-libs/jbig2dec-0.16
>=media-libs/jbig2dec-0.16:=
>=media-libs/lcms-2.6:2
>=media-libs/libpng-1.6.2:0=
>=media-libs/openjpeg-2.1.0:2=
@ -62,7 +62,9 @@ S="${WORKDIR}/${MY_P}"
src_prepare() {
if [[ -n "${MY_PATCHSET}" ]] ; then
# apply various patches, many borrowed from Fedora
# http://pkgs.fedoraproject.org/cgit/ghostscript.git
# https://src.fedoraproject.org/rpms/ghostscript
# and Debian
# https://salsa.debian.org/printing-team/ghostscript/tree/debian/master/debian/patches
eapply "${WORKDIR}/patches/"*.patch
fi

@ -1,7 +1,7 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=5
EAPI=7
inherit latex-package texlive-common
@ -12,7 +12,6 @@ SRC_URI="mirror://sourceforge/jadetex/${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
IUSE=""
RESTRICT="test"
DEPEND=">=app-text/openjade-1.3.1
@ -34,14 +33,14 @@ src_install() {
doins dsssl.def jadetex.ltx jadetex.cfg {pdf,}jadetex.ini *.sty
insinto /var/lib/texmf
doins -r texmf-var/*
doins -r texmf-var
etexlinks "${FILESDIR}/format.jadetex.cnf"
# Doc/manpages
dodoc ChangeLog*
doman *.1
dohtml -r .
dodoc -r .
# Support for our latex setup
insinto /etc/texmf/texmf.d

@ -18,7 +18,7 @@ LIB_DEPEND=">=app-text/mupdf-1.12.0:0=[static-libs]
media-libs/openjpeg:2[static-libs]
media-libs/fontconfig:1.0[static-libs]
media-libs/freetype:2[static-libs]
media-libs/jbig2dec[static-libs]
media-libs/jbig2dec:=[static-libs]
sys-libs/zlib[static-libs]
virtual/jpeg:0[static-libs]
x11-libs/libX11[static-libs]"

@ -12,7 +12,7 @@ LICENSE="|| ( Apache-2.0 Artistic-2 )"
# subslot = libqpdf soname version
SLOT="0/26"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~m68k-mint ~sparc-solaris"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ppc ~ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~m68k-mint ~sparc-solaris"
IUSE="doc examples perl static-libs test"
CDEPEND="

Binary file not shown.

@ -3,4 +3,6 @@ DIST mongodb-src-r3.6.14.tar.gz 40895581 BLAKE2B 3cfe2aedd11a67a01ddee9eba36d99b
DIST mongodb-src-r3.6.8.tar.gz 40428295 BLAKE2B cc02f73cfb49fb38ccabaad5a02610ce73fc41895ce944e48669e254bcbc70c8872a1bd7f8e04371fae4fcd9af2466fd8550367dd1d1da5cee50b86fc5023bf2 SHA512 c981f3269be3bafb59aa89d36c39a801fd7007b60db6c09b4616a559aaf8e50b34cabbdac2b59f23552c0a5112913fba468f7e2ed9a5f4daa3702dcffdf34999
DIST mongodb-src-r4.0.10.tar.gz 49870574 BLAKE2B 1babbfa1a6d8fae390ec37042feff896c402772e832cc5b0b82fc4d531a6487ac2bd8d407c37ca75a76d78bc91cc665bfc3b7b223e6ceaaea2d921b337ef4d19 SHA512 891bfdc0d415515d7aa36aeb0618055ac6815c7d704537b88293226cecc1b677134db621fd90dee3913f4ff8174a888bcf68adee0a243d0f55ef6c0033a4f4b9
DIST mongodb-src-r4.0.12.tar.gz 49937644 BLAKE2B 81044a6d68be6420d30fb2d7386ff29871a696cad94ce5977c1aba60c2ce80e18ccb86492c1947a359ef124332ea82ac3cb0fb73a68f51904a008fdf911aa055 SHA512 802eaf57d56c5e8e217344f10104a201acb6f5abef0065fc1bb8e6ceef13fe489b7ae46ed0d55b5bad50fe3579860b1c1471d224b51b0f15f968278cb5f6a47a
DIST mongodb-src-r4.0.13.tar.gz 50006727 BLAKE2B bf47bd32cf50c24084091a1baa811690c50586352307deb80876bb1bad539e90de77f85fc591960d6ae871e0a6f22d5d2f05bb340218784b642e3529d0c64bb6 SHA512 2a74ac8648cde6d9b5aa33da195b22eca926ef5ff85d4140e0a1ba978e3d13d410f4d7d7e102e35f994ef3b848333a4ef4bacfec9e2ac1b1288cbee885875ef7
DIST mongodb-src-r4.2.0.tar.gz 60781115 BLAKE2B 75531f69647c84f71127d4cdccf13bc21e50586240c767b4c1aa1efbf56cf008bf4f32b3a2011120ad9099da0f97be934375b8dd3d012670034327175c454f0e SHA512 be2f4e00364ac49b1a0490fa859640680a4d10d861252d200bd3db535c770a3b97cee9de6d2b0b6b3622502d055ba92b6c1d88cb1134d251aa2cf50a8951b64c
DIST mongodb-src-r4.2.1.tar.gz 60922510 BLAKE2B b06141cf0a8d256fc24e64c7115093009f42a97c74d270997ad4a70fb040199db05c5083cf1639283cc253264fbeb975d7efe3a41227d75146d7aa2e2fb9fa12 SHA512 6057f68ebeb2d5f74e70639fcc08aecfb112d386e3d016e18dfb2413319abf46249a0f5ffcfb74be9264a2ef34f45dd96f9774d86b1ec7e7213276f1c84f3106

@ -0,0 +1,166 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python2_7 )
SCONS_MIN_VERSION="2.5.0"
CHECKREQS_DISK_BUILD="2400M"
CHECKREQS_DISK_USR="512M"
CHECKREQS_MEMORY="1024M"
inherit check-reqs flag-o-matic multiprocessing pax-utils python-any-r1 scons-utils systemd toolchain-funcs user
MY_P=${PN}-src-r${PV/_rc/-rc}
DESCRIPTION="A high-performance, open source, schema-free document-oriented database"
HOMEPAGE="https://www.mongodb.com"
SRC_URI="https://fastdl.mongodb.org/src/${MY_P}.tar.gz"
LICENSE="Apache-2.0 SSPL-1"
SLOT="0"
KEYWORDS="~amd64"
IUSE="debug kerberos libressl lto mms-agent ssl test +tools"
RDEPEND=">=app-arch/snappy-1.1.3
>=dev-cpp/yaml-cpp-0.5.3:=
>=dev-libs/boost-1.60:=[threads(+)]
>=dev-libs/libpcre-8.41[cxx]
dev-libs/snowball-stemmer
net-libs/libpcap
>=sys-libs/zlib-1.2.11:=
kerberos? ( dev-libs/cyrus-sasl[kerberos] )
mms-agent? ( app-admin/mms-agent )
ssl? (
!libressl? ( >=dev-libs/openssl-1.0.1g:0= )
libressl? ( dev-libs/libressl:0= )
)"
DEPEND="${RDEPEND}
${PYTHON_DEPS}
$(python_gen_any_dep '
dev-python/cheetah[${PYTHON_USEDEP}]
dev-python/pyyaml[${PYTHON_USEDEP}]
virtual/python-typing[${PYTHON_USEDEP}]
')
sys-libs/ncurses:0=
sys-libs/readline:0=
debug? ( dev-util/valgrind )
test? (
$(python_gen_any_dep 'dev-python/pymongo[${PYTHON_USEDEP}]')
)"
PDEPEND="tools? ( >=app-admin/mongo-tools-${PV} )"
PATCHES=(
"${FILESDIR}/${PN}-3.6.1-fix-scons.patch"
"${FILESDIR}/${PN}-4.0.0-no-compass.patch"
"${FILESDIR}/${PN}-4.0.12-boost-1.71-cxxabi-include.patch"
)
S="${WORKDIR}/${MY_P}"
pkg_pretend() {
if [[ -n ${REPLACING_VERSIONS} ]]; then
if ver_test "$REPLACING_VERSIONS" -lt 3.6; then
ewarn "To upgrade from a version earlier than the 3.6-series, you must"
ewarn "successively upgrade major releases until you have upgraded"
ewarn "to 3.6-series. Then upgrade to 4.0 series."
else
ewarn "Be sure to set featureCompatibilityVersion to 3.6 before upgrading."
fi
fi
}
pkg_setup() {
enewgroup mongodb
enewuser mongodb -1 -1 /var/lib/${PN} mongodb
python-any-r1_pkg_setup
}
src_prepare() {
default
# remove bundled libs
rm -r src/third_party/{boost-*,pcre-*,scons-*,snappy-*,yaml-cpp-*,zlib-*} || die
# remove compass
rm -r src/mongo/installer/compass || die
}
src_configure() {
# https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source
# --use-system-icu fails tests
# --use-system-tcmalloc is strongly NOT recommended:
scons_opts=(
CC="$(tc-getCC)"
CXX="$(tc-getCXX)"
--disable-warnings-as-errors
--use-system-boost
--use-system-pcre
--use-system-snappy
--use-system-stemmer
--use-system-yaml
--use-system-zlib
)
use debug && scons_opts+=( --dbg=on )
use kerberos && scons_opts+=( --use-sasl-client )
use lto && scons_opts+=( --lto=on )
use ssl && scons_opts+=( --ssl )
# respect mongoDB upstream's basic recommendations
# see bug #536688 and #526114
if ! use debug; then
filter-flags '-m*'
filter-flags '-O?'
fi
default
}
src_compile() {
escons "${scons_opts[@]}" core tools
}
# FEATURES="test -usersandbox" emerge dev-db/mongodb
src_test() {
"${EPYTHON}" ./buildscripts/resmoke.py --dbpathPrefix=test --suites core --jobs=$(makeopts_jobs) || die "Tests failed"
}
src_install() {
escons "${scons_opts[@]}" --nostrip install --prefix="${ED}"/usr
doman debian/mongo*.1
dodoc README docs/building.md
newinitd "${FILESDIR}/${PN}.initd-r3" ${PN}
newconfd "${FILESDIR}/${PN}.confd-r3" ${PN}
newinitd "${FILESDIR}/mongos.initd-r3" mongos
newconfd "${FILESDIR}/mongos.confd-r3" mongos
insinto /etc
newins "${FILESDIR}/${PN}.conf-r3" ${PN}.conf
newins "${FILESDIR}/mongos.conf-r2" mongos.conf
systemd_dounit "${FILESDIR}/${PN}.service"
insinto /etc/logrotate.d/
newins "${FILESDIR}/${PN}.logrotate" ${PN}
# see bug #526114
pax-mark emr "${ED}"/usr/bin/{mongo,mongod,mongos}
local x
for x in /var/{lib,log}/${PN}; do
diropts -m0750 -o mongodb -g mongodb
keepdir "${x}"
done
}
pkg_postinst() {
ewarn "Make sure to read the release notes and follow the upgrade process:"
ewarn " https://docs.mongodb.com/manual/release-notes/$(ver_cut 1-2)/"
ewarn " https://docs.mongodb.com/manual/release-notes/$(ver_cut 1-2)/#upgrade-procedures"
}

@ -0,0 +1,167 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{5,6,7} )
SCONS_MIN_VERSION="2.5.0"
CHECKREQS_DISK_BUILD="2400M"
CHECKREQS_DISK_USR="512M"
CHECKREQS_MEMORY="1024M"
inherit check-reqs flag-o-matic multiprocessing pax-utils python-any-r1 scons-utils systemd toolchain-funcs user
MY_P=${PN}-src-r${PV/_rc/-rc}
DESCRIPTION="A high-performance, open source, schema-free document-oriented database"
HOMEPAGE="https://www.mongodb.com"
SRC_URI="https://fastdl.mongodb.org/src/${MY_P}.tar.gz"
LICENSE="Apache-2.0 SSPL-1"
SLOT="0"
KEYWORDS="~amd64"
IUSE="debug kerberos libressl lto ssl test +tools"
RDEPEND=">=app-arch/snappy-1.1.3
>=dev-cpp/yaml-cpp-0.6.2:=
>=dev-libs/boost-1.70:=[threads(+)]
>=dev-libs/libpcre-8.42[cxx]
app-arch/zstd
dev-libs/snowball-stemmer
net-libs/libpcap
>=sys-libs/zlib-1.2.11:=
kerberos? ( dev-libs/cyrus-sasl[kerberos] )
ssl? (
!libressl? ( >=dev-libs/openssl-1.0.1g:0= )
libressl? ( dev-libs/libressl:0= )
)"
DEPEND="${RDEPEND}
${PYTHON_DEPS}
$(python_gen_any_dep '
dev-python/cheetah3[${PYTHON_USEDEP}]
dev-python/psutil[${PYTHON_USEDEP}]
dev-python/pyyaml[${PYTHON_USEDEP}]
virtual/python-typing[${PYTHON_USEDEP}]
')
sys-libs/ncurses:0=
sys-libs/readline:0=
debug? ( dev-util/valgrind )
test? (
$(python_gen_any_dep 'dev-python/pymongo[${PYTHON_USEDEP}]')
)"
PDEPEND="tools? ( >=app-admin/mongo-tools-${PV} )"
PATCHES=(
"${FILESDIR}/${PN}-4.2.0-fix-scons.patch"
"${FILESDIR}/${PN}-4.0.0-no-compass.patch"
)
S="${WORKDIR}/${MY_P}"
pkg_pretend() {
if [[ -n ${REPLACING_VERSIONS} ]]; then
if ver_test "$REPLACING_VERSIONS" -lt 4.0; then
ewarn "To upgrade from a version earlier than the 4.0-series, you must"
ewarn "successively upgrade major releases until you have upgraded"
ewarn "to 4.0-series. Then upgrade to 4.2 series."
else
ewarn "Be sure to set featureCompatibilityVersion to 4.0 before upgrading."
fi
fi
}
pkg_setup() {
enewgroup mongodb
enewuser mongodb -1 -1 /var/lib/${PN} mongodb
python-any-r1_pkg_setup
}
src_prepare() {
default
# remove bundled libs
rm -r src/third_party/{boost-*,pcre-*,scons-*,snappy-*,yaml-cpp-*,zlib-*,zstandard-*} || die
# remove compass
rm -r src/mongo/installer/compass || die
}
src_configure() {
# https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source
# --use-system-icu fails tests
# --use-system-tcmalloc is strongly NOT recommended:
scons_opts=(
CC="$(tc-getCC)"
CXX="$(tc-getCXX)"
--disable-warnings-as-errors
--use-system-boost
--use-system-pcre
--use-system-snappy
--use-system-stemmer
--use-system-yaml
--use-system-zlib
--use-system-zstd
)
use debug && scons_opts+=( --dbg=on )
use kerberos && scons_opts+=( --use-sasl-client )
use lto && scons_opts+=( --lto=on )
use ssl && scons_opts+=( --ssl )
# respect mongoDB upstream's basic recommendations
# see bug #536688 and #526114
if ! use debug; then
filter-flags '-m*'
filter-flags '-O?'
fi
default
}
src_compile() {
escons "${scons_opts[@]}" core tools
}
# FEATURES="test -usersandbox" emerge dev-db/mongodb
src_test() {
"${EPYTHON}" ./buildscripts/resmoke.py --dbpathPrefix=test --suites core --jobs=$(makeopts_jobs) || die "Tests failed"
}
src_install() {
escons "${scons_opts[@]}" --nostrip install --prefix="${ED}"/usr
doman debian/mongo*.1
dodoc README docs/building.md
newinitd "${FILESDIR}/${PN}.initd-r3" ${PN}
newconfd "${FILESDIR}/${PN}.confd-r3" ${PN}
newinitd "${FILESDIR}/mongos.initd-r3" mongos
newconfd "${FILESDIR}/mongos.confd-r3" mongos
insinto /etc
newins "${FILESDIR}/${PN}.conf-r3" ${PN}.conf
newins "${FILESDIR}/mongos.conf-r2" mongos.conf
systemd_dounit "${FILESDIR}/${PN}.service"
insinto /etc/logrotate.d/
newins "${FILESDIR}/${PN}.logrotate" ${PN}
# see bug #526114
pax-mark emr "${ED}"/usr/bin/{mongo,mongod,mongos}
local x
for x in /var/{lib,log}/${PN}; do
diropts -m0750 -o mongodb -g mongodb
keepdir "${x}"
done
}
pkg_postinst() {
ewarn "Make sure to read the release notes and follow the upgrade process:"
ewarn " https://docs.mongodb.com/manual/release-notes/$(ver_cut 1-2)/"
ewarn " https://docs.mongodb.com/manual/release-notes/$(ver_cut 1-2)/#upgrade-procedures"
}

Binary file not shown.

@ -1,3 +1,3 @@
DIST jdk-11.0.2_doc-all.zip 51570202 BLAKE2B 6e1ced82751eeb04740d146677da3a4f7644a51a227caf0b47cae28a218bd7851cb4e6f908793cf9358f64c5c2b6d52be4d5bf6a06d22815d3f0b866ba493ed7 SHA512 511ad7ebed88055c6f2800a16051c17e89a2fcb8de49979f32d920fa0e7c6328646f20f2809a133116e763ad464640826a50fd7fce3ed10b9b7cb0e46f2aa8d5
DIST jdk-11.0.5_doc-all.zip 51476228 BLAKE2B 4515b7aaba27446971047b4c95a8684951b5816db6d5220333377120461ae975994890442811789ed11377715466974645af2318f7daa636e092f2949a824eba SHA512 2e0a183e38f4ae5a95c1195b48be16489fde5f63a14a0566170f7fb2d4e10964b8d733fcfeca078304cd10ad98834992d7b86320ebf29000c9474b39d709a9ff
DIST jdk-8u202-docs-all.zip 93792495 BLAKE2B c1e3f6f5a713d55a62dc6ef0fd2bba5d30b094030e8438b73bd6bf9f27a7ec3bdb924d8251f99182eb62b470f177fdf84db23f57550bc9467a4a7c305190ad50 SHA512 ad8b51bbc705d46d47164918ce2d620cbadaf92a3fe56d72528f9cbc05da900309ecfef7ebf711e9474f292f744e2e33877cb7377e2e21a5a58e1922198be907
DIST jdk-9.0.4_doc-all.zip 70500089 BLAKE2B 549da2c6baf1b39082f05d42d0fd02f7682a765c1d43a605063b155b3b3e2e20053b4044a238afb41c758700efa5de9ec53c29e2e8be1d682c2e9e7b221c0875 SHA512 7d8b40499a0ea91ac922c6916b19a061b39e73e54e123a943fcaa75fcfe66672ad445dbd789c2c9448c8cee0e7f72974ca6ad53bcaa5667547feca5791dab92b

Binary file not shown.

@ -3,6 +3,7 @@ DIST erlang-22.0.2.tar.gz 54805264 BLAKE2B d30fd8a7a4ada892f4b8e14c82ab7e20f77ca
DIST erlang-22.0.7.tar.gz 54814307 BLAKE2B 0f44c225bd4d762a529b5c154a086636a3677d0ff44df619ce4cc17eb168b5fdc0d33e1a82c85e9f3daafa1313fede22d702021323252380c76dacde91a3f204 SHA512 cf84cc20b97ed46f9ab3c7f1d77bcf6254ac3ebbb5c1e4e5202f4d5ba3d9c3bf5542567b047edaa68c204bc67ca667b1d96eb8153ac660e628c78fe271b6a8d9
DIST erlang-22.1.1.tar.gz 54951145 BLAKE2B 917813f750eacd3dc7da25f1fa9e1f9c55e6cf1b88ba4e5576caae8554bbac667c87830935c7ddd58723f61e54f3c99ae4ef08660344035dea460e92a40832cc SHA512 ee1a3bb355ffd083c3355caf60189799d322cff2a01314ba5df141ccdc4de45dbfe3967e661e3dfbcf14fc04dc1f855d7a3660f9b2daa2451a83422eda7cba39
DIST erlang-22.1.3.tar.gz 54957002 BLAKE2B 4ae843b871dec2c365b55380484fd434eac7d97189b94568985154fb524bb99bf4240925b64cccb7ac7dfc9168e731a29db69d90278162f7dda51077ee6441fc SHA512 72e71d7a78a4881d85ebb13a4443385efbf0233f5221c6322a0a28be363f511037aa657ae021f642eafb3983192d3a23c4bf8b6bc3545aa1cc2b27285e9974c7
DIST erlang-22.1.4.tar.gz 54957524 BLAKE2B 8960dd63eb7ae18544d8b6809760543b276ec230d5a9051d1888269770f6c44b379b6ba85ce9106f7d37b76c41b7683a545ba80569e33195e3e9211f6ced4ee3 SHA512 271a188d46a79cd1c43c3b8059b77c0802af624ff88c6916e0b84994040750d9792f0416937ed98e874256562f27d858916239d79f93b545c98b9703e5018f7b
DIST erlang_doc_html_21.1.tar.gz 32692731 BLAKE2B a7fa8ebe1c876ab7eecd2dd46ffd4d288db6d308e0f131d53c26ee4b67a92cb6fcb89b6c880ef34df395c7ad61fcdc81eac32e0fcf7336be7d517263218146bc SHA512 0d659f55bfb01eecf140a310154724489ef56b6ccbe9ac30f6b053f598276721b80de7b5b3200707cf8a6e77b8854eae5453f655225f431fcc982550539f767f
DIST erlang_doc_html_22.0.tar.gz 33737075 BLAKE2B f49aba36e9b84e5bc4422052e33aab5cb407dfcf2086ddb8a2370003dc63842acc79a67d9d453ee9e59d7b69416b23527e2d9f564b2d8a58d4c46bc3a93881c4 SHA512 89229a97fb5c78246ce9fa6a2d23446c6c3c2de15617911739e133b7e58714a91b1360af64bf61659d96808a816d84e4c410f8c8efe1e544930f88d73242b6e7
DIST erlang_doc_html_22.1.tar.gz 33824830 BLAKE2B 2d50802fff81eba8bcf5f630da49d68d7cb2098175012e12f13941e69949a109c9f601c3cfaa2700b669415cd0c6c15961d8e4dd94b9b228cee17b661fe5400a SHA512 cc24927a4ff98b04d8f93fbc46bb36ffb34570521e4f31154b778dc17cf1cff60869239c26c327d7a9360c06528f9b380a302b39fa47285e50dfd4656b508202

@ -19,7 +19,7 @@ SRC_URI="https://github.com/erlang/otp/archive/OTP-${PV}.tar.gz -> ${P}.tar.gz
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris"
KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris"
IUSE="doc emacs +hipe java +kpoll libressl odbc sctp ssl systemd tk wxwidgets"
RDEPEND="

@ -0,0 +1,150 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
WX_GTK_VER="3.0"
inherit elisp-common java-pkg-opt-2 systemd wxwidgets
# NOTE: If you need symlinks for binaries please tell maintainers or
# open up a bug to let it be created.
UPSTREAM_V="$(ver_cut 1-2)"
DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)"
HOMEPAGE="https://www.erlang.org/"
SRC_URI="https://github.com/erlang/otp/archive/OTP-${PV}.tar.gz -> ${P}.tar.gz
http://erlang.org/download/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz
doc? ( http://erlang.org/download/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris"
IUSE="doc emacs +hipe java +kpoll libressl odbc sctp ssl systemd tk wxwidgets"
RDEPEND="
acct-group/epmd
acct-user/epmd
sys-libs/ncurses:0
sys-libs/zlib
emacs? ( virtual/emacs )
java? ( >=virtual/jdk-1.8:* )
odbc? ( dev-db/unixODBC )
sctp? ( net-misc/lksctp-tools )
ssl? (
!libressl? ( >=dev-libs/openssl-0.9.7d:0= )
libressl? ( dev-libs/libressl:0= )
)
systemd? ( sys-apps/systemd )
tk? ( dev-lang/tk:0 )
wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X,opengl] )
"
DEPEND="${RDEPEND}
dev-lang/perl
"
S="${WORKDIR}/otp-OTP-${PV}"
PATCHES=(
"${FILESDIR}/18.2.1-wx3.0.patch"
"${FILESDIR}/${PN}-22.0-dont-ignore-LDFLAGS.patch"
)
SITEFILE=50"${PN}"-gentoo.el
src_prepare() {
default
./otp_build autoconf || die
}
src_configure() {
use wxwidgets && setup-wxwidgets
local myconf=(
--disable-builtin-zlib
$(use_enable hipe)
$(use_enable kpoll kernel-poll)
$(use_with java javac)
$(use_enable sctp)
$(use_with ssl ssl "${EPREFIX}"/usr)
$(use_enable ssl dynamic-ssl-lib)
$(use_enable systemd)
$(usex wxwidgets "--with-wx-config=${WX_CONFIG}" "--with-wxdir=/dev/null")
)
econf "${myconf[@]}"
}
src_compile() {
emake
if use emacs ; then
pushd lib/tools/emacs &>/dev/null || die
elisp-compile *.el
popd &>/dev/null || die
fi
}
extract_version() {
local path="$1"
local var_name="$2"
sed -n -e "/^${var_name} = \(.*\)$/s::\1:p" "${S}/${path}/vsn.mk" || die "extract_version() failed"
}
src_install() {
local erl_libdir_rel="$(get_libdir)/erlang"
local erl_libdir="/usr/${erl_libdir_rel}"
local erl_interface_ver="$(extract_version lib/erl_interface EI_VSN)"
local erl_erts_ver="$(extract_version erts VSN)"
local my_manpath="/usr/share/${PN}/man"
[[ -z "${erl_erts_ver}" ]] && die "Couldn't determine erts version"
[[ -z "${erl_interface_ver}" ]] && die "Couldn't determine interface version"
emake INSTALL_PREFIX="${D}" install
if use doc ; then
local DOCS=( "AUTHORS" "HOWTO"/* "README.md" "CONTRIBUTING.md" "${WORKDIR}"/doc/. "${WORKDIR}"/lib/. "${WORKDIR}"/erts-* )
docompress -x /usr/share/doc/${PF}
else
local DOCS=("README.md")
fi
einstalldocs
dosym "../${erl_libdir_rel}/bin/erl" /usr/bin/erl
dosym "../${erl_libdir_rel}/bin/erlc" /usr/bin/erlc
dosym "../${erl_libdir_rel}/bin/escript" /usr/bin/escript
dosym "../${erl_libdir_rel}/lib/erl_interface-${erl_interface_ver}/bin/erl_call" /usr/bin/erl_call
dosym "../${erl_libdir_rel}/erts-${erl_erts_ver}/bin/beam.smp" /usr/bin/beam.smp
## Clean up the no longer needed files
rm "${ED}/${erl_libdir}/Install" || die
insinto "${my_manpath}"
doins -r "${WORKDIR}"/man/*
# extend MANPATH, so the normal man command can find it
# see bug 189639
newenvd - "90erlang" <<-_EOF_
MANPATH="${my_manpath}"
_EOF_
if use emacs ; then
elisp-install erlang lib/tools/emacs/*.{el,elc}
sed -e "s:/usr/share:${EPREFIX}/usr/share:g" \
"${FILESDIR}/${SITEFILE}" > "${T}/${SITEFILE}" || die
elisp-site-file-install "${T}/${SITEFILE}"
fi
newinitd "${FILESDIR}"/epmd.init-r2 epmd
newconfd "${FILESDIR}"/epmd.confd-r1 epmd
use systemd && systemd_newunit "${FILESDIR}"/epmd.service-r1 epmd.service
}
pkg_postinst() {
use emacs && elisp-site-regen
}
pkg_postrm() {
use emacs && elisp-site-regen
}

@ -1,3 +1,3 @@
DIST nim-0.20.0.tar.xz 4997088 BLAKE2B fd03837c1674052145cbed631be4d4028a31fdd46d8b730734781b65d5bbcd9cb118ef7ac14c1bc16f7e056365b5bddf32160bf84566ac4815cb12e330f8e712 SHA512 e41fc9f9337535d07ebdd14ae8195bf9c666a0a242516f24d50241e69d50e89fcb9ac1a0b1fbeee0bc75b0218aeb18698ff2ac87447005dad52dc18da80bb02d
DIST nim-0.20.2.tar.xz 5032768 BLAKE2B 583e0b5cede279a0c0a60d4209f9be6237ff5ac070c0e82a075a242d08086e59c88c2ab29cbf3d2c6d7a455709b64086afd11e4928fcc9e81979d5296ef38b64 SHA512 231d95950ca5a7abe86175f93085ea27fae493e4f8dde3c9e086993431f9517781ceffeb4f9e761eb524523df3703d0a315fe53e32bc6daea6a684bf90589282
DIST nim-1.0.0.tar.xz 5136624 BLAKE2B 6c87755f66ace6de44aa80d78840572d3ff96c07c97c7af73cdfe395cdbbfb614ad816b7e2c6b91519dcd341694ab48390d80ac97d82db3c1c9a111e0cbadaa4 SHA512 951bbec06a6a1059214b485c5eddfa3c1be0a4ccf6ba98ac3ee624f57d36e86ae1212ffcb6d1bb7ea0938aabbe95a8a6587b140f3219ddb24ec7c93f5672266f
DIST nim-1.0.2.tar.xz 5139712 BLAKE2B bcb0f0fa2ed6069021a6359e453def7beccb6e767e3e1111ff27d8fb2adb7351336f219a88e2450df3d4aece1dd7f6e1a8fb891aa31581c32bb2535d2cf604a7 SHA512 5d7a45efcf656d5467554c3bbf42d0c62a760ccd107cec439d8375839d2e80baadfb3f598598748ef8e1b32d3eb931caaa273f8e41bbf6f4e16c7afbef745349

@ -10,5 +10,5 @@ DIST perl-5.30.0-patches-1.tar.xz 17352 BLAKE2B 67eb1c4ce6ada27e05962d06fa9c5675
DIST perl-5.30.0.tar.xz 12419868 BLAKE2B dbf64d4cb1995475ca5a84e487ecc81a422f835180fe96d88b5095e9bc6eff62863b0789d98f0f3d1265c8683b812839bff1622cfb90470f02a1863b0f827c7e SHA512 68a295eccd64debd9d6a10f0d5577f872a19ad8c2d702798f6b0f45b8c3af6ab3230768056e2131e9e2e2506d1035b27cfd627c845e32263fe448649c4b98ae9
DIST perl-cross-1.1.7.tar.gz 97622 BLAKE2B c58dd51492cfbda6fc58b43d9de45c35dd5ed5768ca8db61b5ac092ad6c0067386597875d6613c75671f026387ba474ce8c28789d6d77b9dcfc4cf4bf7227126 SHA512 b64d487129b295ec6d996606b8b8559de681e1cf7c3e3167d6d646d5d7a848d7929b1ab698d1f950e265213749772fc74d209cea5020b61e133c8f8851b7cfa0
DIST perl-cross-1.1.9.tar.gz 102939 BLAKE2B 438ea75a14c4d60fdf3cb2f3671c736d229a83af210ba4fe6e79b989c6c4b45500d0221ec65bc71e1d43d234ec1daa20b3a19be6ceb01e638810900dbe3664a7 SHA512 002441012bd31f1ea71341707d91f89b76266c187c9d28f947ed5eddbcc6e3155e8dfd4b1814331561c3557764fea25bf6a938f08bcd4adfb5895361ad5a269a
DIST perl-cross-1.2.2.tar.gz 106073 BLAKE2B c4eaf5d60dd0ac88a9653cea399f5583a699d35f94a69a36ef9d3cde0017901ff68029f12a3af6e0fd34d46accbb6be009167fadb790da8065f6b85115f1c9b8 SHA512 49dc190018b891daac68a954e2a9bab6294920f02b585c530dcc47af03e8ab51d402455202d45121fa206ee743986ddd50323658c179d2c15cb6af7a2eb0958c
DIST perl-cross-1.2.3.tar.gz 106861 BLAKE2B 1fd23ecafd1450010c6703e43fb84da68f73a78d89309e2469fe2b07543002c27cfef463941f517cc0c690ce3a737781e9e2a8bf5ae8c6938e07be7bead2d704 SHA512 bd4fb3fa835b807c3ffb613a7fe935f92df5d89f603bf3f92fb3d249928f3ba69f078cdd46de5749d53e47bc437756f8e3530d7adc40b6eaa21265295af85616
DIST perl-cross-1.3.tar.gz 105500 BLAKE2B b4f55401528c49ecd1e456e7e06a5aef1732bd78434543aebd51825f7410d9ce928b31e70f816991c0817df8454c7b6c25a5a4ee0cab044be851cb6dabfa9163 SHA512 06baf02338811ac1d117cdab22480255b01a384f0f74480a87f0cd6a9e282ddda74004353f6f08b314007f0e08e9d62b664c072530d8af53f1485adc5ab680c4

@ -6,7 +6,7 @@ EAPI=6
inherit eutils alternatives flag-o-matic toolchain-funcs multilib multiprocessing
PATCH_VER=1
CROSS_VER=1.2.2
CROSS_VER=1.3
PATCH_BASE="perl-5.30.0-patches-${PATCH_VER}"
PATCH_DEV=dilfridge

@ -1,10 +1,13 @@
DIST php-5.6.40.tar.xz 12472236 BLAKE2B f41147eaec9b15e965540f9e871691cc88848dd619bae6af85e7bba0130b71ce91bad5cdbbadbb537c42df83369f5c731007339a9d9e21e689e913c135201afc SHA512 997b5a952a60cf9166671cc91fcc34c674dd62bfd5cb0a9cdf3fdf2d088b5d19943d94c1cf193f8ab71fc4957d9a9a4c7c2fb8826f937501c1c0a0858f10e329
DIST php-7.1.31.tar.xz 12370928 BLAKE2B 18b7d5398380324243321a39d337bd10a7eb82812f3dbb9b2ea9eb4808ef585d6452cc5953b56d24bcf817994e249b8b20cd9b4658e1df6c77de78eecb48a3a7 SHA512 989cd157e0d67c6f03192ce9e1afaa01ff72ccc83f3e6b94ac8dc3d4c2717258a46bd64fb20e4649baec1fe2545805013eedc1de78e556d09c2b0ae64d4272d8
DIST php-7.1.32.tar.xz 12369916 BLAKE2B 26f3756bfa15d8caa9f99f48526eabe66cb389d0ecf534700dcf9e2514de12c1b9d45c634b8e5ce07d1e28cce4c5b5a9cda7780013a7af070fd5e3d250a92616 SHA512 090dd6d79514f97be125e86d741094c149250a11a4f7d5f8dd08e028ae5f0b347afc58787b2002cc7b183d08a56562042e33ef7f1eeb060aafaf6fef67646ab1
DIST php-7.1.33.tar.xz 12370228 BLAKE2B 610f501c1729ca3f5fa6f104b9f229046cf1e497f2fdc1194b80b4a5f9ca7f799dc6a458de34dd7a87976b7252ba2f548a8d689e4b2a45c025f1807ab8489f12 SHA512 ed37a79e3402c767f20e55c1cbe27957cc78240eafc719fffccd7d29ae10a45112aa0f29082f56133cd9c25f2750e9e57246d95b4f38d766f49bd29d1397eb1d
DIST php-7.2.21.tar.xz 12298448 BLAKE2B f82b35fd3cdf45d8c84639d044729602340c2d34695b5603a194e2d504627c0e041ab156c3720d218d8d6ca51c9ef71d8d0ee37585142aa30ed0cce51fbcb91e SHA512 c7fe01626c1e25e8882d8f2b69d77a5479567d2daa3bf25d1ce3f45314a882f79ce9914a2aa1b3052b6289b46873f466e457049ce1db6e31b60ba4995187507c
DIST php-7.2.22.tar.xz 12271632 BLAKE2B be3089066ba1c25c479eedaf3e6dd8f7773a6d87a16ce49d8c5379bc9b25d073b497004ccb219795bcfdc3af1310570f94f109754120c254ea5bbaaf1a5e953f SHA512 526dbcc03726d6e2f146adbdf8d89f0c8acb2575a3c21e5ef14ae256f29447d82154e0b1869c0143d831f81c2da0d943957c51144fb458457d3681cdfbc6d49b
DIST php-7.2.23.tar.xz 12273340 BLAKE2B a3cad87bc23534953a71834347b4e2ff44512c2a0a5ef3ee9fcf8df6dde5c59033963333cb746303131078ff8129e98e6515cd55f80a8f70faa34bcd43e93495 SHA512 8ba928ae8b5f5b698400fc2a10170c06763b3c300889e9b79618c58d40db05997def9eff715b276495172b50aadb46f43719a0635545b476c04cd3abea363b0b
DIST php-7.2.24.tar.xz 12302284 BLAKE2B 3c864e72d9fce1f13295385e20708a632087b2e4ffdc9e0012191cb2e17a3530f26797ad03c595bea60cccf850fe17028f2a379e50f32bd4db82530e0fcd727f SHA512 39597b8328cb4d5284288bdce8dd9c7ef8446e46914de93203700efaf67f85ad5b69df777bea14eef9160b233fb79bcb60f6750c0df011bbf610b62a524689e3
DIST php-7.3.10.tar.xz 12086948 BLAKE2B 0dec94952fde19619d2f27ec9e4076a41d51ba704a0d4ec818d33ecedab1b2fae445e5b6437e4a1a4f689db8b9e4b93ceaec55174f0b1c89670083f9b62522d3 SHA512 b6c5d439db015cf902cd1823a2cbd509221866a416fc02e0382322a15165fcd04d3fe5d6fa2a9efc37a69f2becf4453d5f1ccecf4b1f035b5be7a550f3f97fc9
DIST php-7.3.11.tar.xz 12092412 BLAKE2B 0f326b85756cfb5ca96a43d7bfbe8aebd3bb9e9ede06734fb00dc3551372d53befba9e87f5f6a0b0b9e62d35a2eedacd1fa500e1eeff908e05ff52be730c61b4 SHA512 150cb202efc4cc1df042a2cbb9368a2d29aefd1d0cf1a0b0bd7238ba5cb6c4b828e23f2d42b4ecd77dd54f73141a33fc3b36ca0764320e9ba470c9549a7f0291
DIST php-7.3.8.tar.xz 12064620 BLAKE2B cfe2fde5e48080e13bd21cb2e2ca0c0ae38da03c94d0692e11bfe6722e50bd0b864d629a0ef6aed4ac5d9830ec4b4b214b9abdf917519a0c0cb70a4362fc8390 SHA512 9e9e13845350f3d4a8a80c3e2fe8291996e2749b2c862261b96346c01e5e24640cb81adad5e3b7668b56b2266c1fcbb713e8c38da4f9aa474f5f632f91378a8d
DIST php-7.3.9.tar.xz 12064244 BLAKE2B 2837463a74a0ccffc1a2193f9fbce78c98c15dd60214cb5d5d704aed7d74449696c3a516e86f440aed9ff3dc2ed8e7bbebcaf0a1268afa55aca2b642e958abf1 SHA512 017d2ae3cd499a7f6ee30111baf0a119e2f404919575acc5ae91fa6e53a303c9d1b5d165205eec3943c3547ff8759e21fbccc62845e3269176f6fc0f2ba88490
DIST php-7.4.0RC3.tar.xz 10220844 BLAKE2B dc3912533dc52234c5733c89e9353391ddffebe0f08e0de4b9155707d49db43700bfffb91d27391f56fbb2663752742346d7b2947ea77c4175322003b53d1bb4 SHA512 433f5bdafe753948f9ea837205988ae3c779a03c23505795f4c7c71a6cc62354cf61a2f30aa3480a588b9b44faa184664322616025af74627784d5b64b1e8dfb

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

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

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

Binary file not shown.

@ -3,4 +3,5 @@ DIST ell-0.21.tar.xz 448612 BLAKE2B a20e177bb2ef7620c79cecdb84e47db662d97904189c
DIST ell-0.22.tar.xz 452692 BLAKE2B 6e8add0e439bfae287be5522ccdb0b9a7f1cc0c378f0498f8b2193bd4e8b10cac71df2b21cf0df202a16182bd188cb56efecf0cc7e8b027c2d00b2579f2c155f SHA512 6977f0fe2d7e2c86317163d45ee92750d9f42a2d04cd28e8fcb48e0ef680d98f586e983cc1821eb19430ea951bfe408d821da3a58244626f97244ed2b4a9e539
DIST ell-0.23.tar.xz 453040 BLAKE2B 027adbaf786bd83070acfcbb1435c36adb70e6d798c6664cdb4d6f9ea0b7aaee2b45b2738210889125c565da06360fe1337b3847913195533be2f87ef1f9d48b SHA512 0a55316816f44482e6958c9745ebf2beca64b8a0d81db9367dfdeb05e36012a14d7b645f3077eab01ea743df129ab8dad0b8d72f21e8ccb2741863eb5f4bc948
DIST ell-0.24.tar.xz 473332 BLAKE2B 97b5f5de1a4680f5b8da5db8d151df56d2eadb511c5440a780959cb832f9414030040abf91072a751b19028713cc8527f5dbb24450b07c69dcebcc9d8f62366b SHA512 14e9b31ab0f08761c7672798a23ee91b7d2fe8fd509df35c40e413e26b90f86a192f48283b3798402d9d23acdf1fbcd1d506e5fa9331a32279f03f4cf462205b
DIST ell-0.25.tar.xz 473392 BLAKE2B cefb71c0bd1c30a1c2e85baf19097f9028b3d2d1e8df14beb231f3c52f39e2ec98fbafdfbba4c05e94328c0c5747eb49111e1c76b3cb02fe22c09b51a5016f17 SHA512 7f12e2dfae16a38750166787ede7e3bf6def1e15a8bcb33bdba80ff84c2930d1857437f4ab871c408a52b18fec2212856ae9190ddf5eb542e90ebc76edd1f693
DIST ell-0.9.tar.xz 396968 BLAKE2B 566735cedd3525c4fd3fec9cec0e9b089dd60c6b79416a9c254c771729b6db9137af050f4c7f9c4c6dfa1ce33b8c7d41b877c9e3caa582c6ab9be716bd986a8b SHA512 e1208066012b9ff927baae271f94116376ccd2577d7f6510cc1444eee912988aa1c25e8e8c9195cccfa39ed48fc8c2f07bd7a414719e6ce76ee1e5bd2a64b8c3

@ -0,0 +1,46 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit flag-o-matic multilib-minimal
DESCRIPTION="Embedded Linux Library provides core, low-level functionality for system daemons"
HOMEPAGE="https://01.org/ell"
if [[ "${PV}" == *9999 ]] ; then
inherit autotools git-r3
EGIT_REPO_URI="https://git.kernel.org/pub/scm/libs/ell/ell.git"
else
SRC_URI="https://mirrors.edge.kernel.org/pub/linux/libs/${PN}/${P}.tar.xz"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
fi
LICENSE="LGPL-2.1"
SLOT="0"
IUSE="glib pie"
RDEPEND="
glib? ( dev-libs/glib:2[${MULTILIB_USEDEP}] )
"
DEPEND="${RDEPEND}"
src_prepare() {
default
[[ "${PV}" == *9999 ]] && eautoreconf
}
multilib_src_configure() {
append-cflags "-fsigned-char" #662694
local myeconfargs=(
$(use_enable glib)
$(use_enable pie)
)
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
}
multilib_src_install_all() {
local DOCS=( ChangeLog README )
einstalldocs
find "${ED}" -name "*.la" -delete || die
}

@ -12,7 +12,7 @@ SRC_URI="http://dist.schmorp.de/libev/${P}.tar.gz
LICENSE="|| ( BSD GPL-2 )"
SLOT="0"
KEYWORDS="alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 ~sh sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
KEYWORDS="alpha amd64 ~arm ~arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 ~sh sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
IUSE="elibc_glibc static-libs"
# Bug #283558

@ -10,7 +10,7 @@ SRC_URI="ftp://sourceware.org/pub/libffi/libffi-${PV}.tar.gz"
LICENSE="MIT"
SLOT="6" # libffi.so.6
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~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 ~s390 ~sh ~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="debug pax_kernel test"
RDEPEND="!dev-libs/libffi:0/0" # conflicts on libffi.so.6

@ -1,2 +1,3 @@
DIST libffi-3.2.1.tar.gz 940837 BLAKE2B d202ccaa185acfd2476ed2a9b011891507cd8efbbda60f67c583268d1563853442ed829acecbf81c9b6b9a930345780bb7a4bd80e71e50ef544c7f4eab8cb01f SHA512 980ca30a8d76f963fca722432b1fe5af77d7a4e4d2eac5144fbc5374d4c596609a293440573f4294207e1bdd9fda80ad1e1cafb2ffb543df5a275bc3bd546483
DIST libffi-3.3-rc0.tar.gz 1084854 BLAKE2B 2c38d60f17ef52bcf270178c13c218f6ee320c9785091621d4689bcf6cee31d07eaaca12790965e1ae3ad71ad2c408342743968bf1d23f81a07fbdf6cfd55b90 SHA512 e6e695d32cd6eb7d65983f32986fccdfc786a593d2ea18af30ce741f58cfa1eb264b1a8d09df5084cb916001aea15187b005c2149a0620a44397a4453b6137d4
DIST libffi-3.3-rc1.tar.gz 1122483 BLAKE2B c849f3c20bfb899f6659303bc739e894b842a3e0d85138a73915eafb8b2fe25b8d491f7eb023c735a9acd83933a9aa6cec562ca035513d774f5754c22a786fea SHA512 e1421d1bff8b71433dc06f6397f2f47894180b4f85e0a80b465b3a3edb904921e74be19d8ea15ef40f13275050e4b2c1432b6059372127c74560a4c73f18e18f

@ -13,7 +13,7 @@ SRC_URI="https://github.com/libffi/libffi/releases/download/v${MY_PV}/${MY_P}.ta
LICENSE="MIT"
SLOT="0/7" # SONAME=libffi.so.7
KEYWORDS="alpha amd64 arm ~arm64 ~hppa ia64 ~m68k ~mips ppc ppc64 ~riscv s390 ~sh 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 ~sh 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="debug pax_kernel static-libs test"
RDEPEND=""

@ -0,0 +1,61 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit multilib multilib-minimal toolchain-funcs
MY_PV=${PV/_rc/-rc}
MY_P=${PN}-${MY_PV}
DESCRIPTION="a portable, high level programming interface to various calling conventions"
HOMEPAGE="https://sourceware.org/libffi/"
SRC_URI="https://github.com/libffi/libffi/releases/download/v${MY_PV}/${MY_P}.tar.gz"
LICENSE="MIT"
SLOT="0/7" # SONAME=libffi.so.7
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~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="debug pax_kernel static-libs test"
RDEPEND=""
DEPEND=""
BDEPEND="test? ( dev-util/dejagnu )"
DOCS="ChangeLog* README.md"
PATCHES=(
"${FILESDIR}"/${PN}-3.2.1-o-tmpfile-eacces.patch #529044
"${FILESDIR}"/${PN}-3.3_rc0-ppc-macos-go.patch
)
S=${WORKDIR}/${MY_P}
ECONF_SOURCE=${S}
pkg_setup() {
# Check for orphaned libffi, see https://bugs.gentoo.org/354903 for example
if [[ ${ROOT} == "/" && ${EPREFIX} == "" ]] && ! has_version ${CATEGORY}/${PN}; then
local base="${T}"/conftest
echo 'int main() { }' > "${base}".c
$(tc-getCC) -o "${base}" "${base}".c -lffi >&/dev/null
if [ $? -eq 0 ]; then
eerror "The linker reported linking against -lffi to be working while it shouldn't have."
eerror "This is wrong and you should find and delete the old copy of libffi before continuing."
die "The system is in inconsistent state with unknown libffi installed."
fi
fi
}
multilib_src_configure() {
use userland_BSD && export HOST="${CHOST}"
econf \
--includedir="${EPREFIX}"/usr/$(get_libdir)/${P}/include \
--disable-multi-os-directory \
$(use_enable static-libs static) \
$(use_enable pax_kernel pax_emutramp) \
$(use_enable debug)
}
multilib_src_install_all() {
find "${ED}" -name "*.la" -delete || die
einstalldocs
}

@ -11,7 +11,7 @@ SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2"
LICENSE="LGPL-2.1 MIT"
SLOT="0/20" # subslot = soname major version
KEYWORDS="alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 ~sh sparc x86 ~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
KEYWORDS="alpha amd64 ~arm ~arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 ~sh sparc x86 ~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="doc o-flag-munging static-libs"
RDEPEND=">=dev-libs/libgpg-error-1.25[${MULTILIB_USEDEP}]"

@ -1,2 +1 @@
DIST libofx-0.9.14.tar.gz 210155 BLAKE2B 1b5ee8503dd9d4837415e53ae79889c32c50146b2b508aab052e8074a277f8181c6866470220758ed7997b0b6e3e524ac6f9e1cac9a673f60c30ce3093e5a3ee SHA512 785c5130fc6f6cfc019d4aee2bf6de6311835e5dc7f2bd56a83f1ecf5e62ecb320a95bf4a5ff8f9e14dcaf5ff1eabc833cd7974927e571a8469c9a02fb8362d2
DIST libofx-0.9.15.tar.gz 207361 BLAKE2B c84fd4593a9888268c691653dc1b5fff5c38013f12ccc4a8454f9a5026ba190388e5747074aa800266efcfd49a0fdb391a605d5837f664bdcb8fe1dc5c064839 SHA512 6014bf9c457adbe9053a47718064e6246c911c3bf081c690bf761650220208aabe94824aaa38794c1834462894b7948a06b3ff6b517a9a84b9f881ba51aee3a1

@ -1,63 +0,0 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit autotools flag-o-matic
DESCRIPTION="A library to support the Open Financial eXchange XML format"
HOMEPAGE="https://github.com/libofx/libofx"
SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0/7"
KEYWORDS="amd64 ppc ppc64 x86"
IUSE="static-libs test"
RDEPEND="
>=dev-cpp/libxmlpp-2.40.1:2.6
>=net-misc/curl-7.9.7
virtual/libiconv
"
DEPEND="
${RDEPEND}
>app-text/opensp-1.5
"
BDEPEND="
dev-util/gengetopt
sys-apps/help2man
virtual/pkgconfig
test? ( app-crypt/gnupg )
"
PATCHES=(
"${FILESDIR}/${P}-0001-Makefile.am-remove-INSTALL-from-docs.patch"
)
# workaround needed for ofxconnect to compile
MAKEOPTS="-j1"
src_prepare() {
default
eautoreconf
# we will tell you where we wants the docs!
sed -i -e 's:docdir.*::' Makefile.am || die
# configure arguments alone don't disable everything
sed -e "/^SUBDIRS/s/doc//" -i Makefile.am || die
append-cxxflags -std=c++14
}
src_configure() {
econf --docdir=/usr/share/doc/${PF}
}
src_install() {
default
find "${D}" -name '*.la' -delete || die
if ! use static-libs; then
find "${D}" -type f -name '*.a' -delete || die
fi
}

@ -11,7 +11,7 @@ SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0/7"
KEYWORDS="amd64 ~ppc ~ppc64 x86"
KEYWORDS="amd64 ppc ppc64 x86"
IUSE="static-libs test"
BDEPEND="

@ -4,3 +4,4 @@ DIST libressl-2.9.1.tar.gz 3607116 BLAKE2B a4542d7fc97bfd213162fe908e28b27d52329
DIST libressl-2.9.2.tar.gz 3607549 BLAKE2B 496e993e4f1c85167e0344afab61259d4e3f094a7e5dfac85878191070e2c196753162532efb921fab582481aeda3705fca9a2b48921cba82465192f2c1eef95 SHA512 b43e73e47c1f14da3c702ab42f29f1d67645a4fa425441337bd6c125b481ef78a40fd13e6b34dadb2af337e1c0c190cfb616186d4db9c9a743a37e594b9b8033
DIST libressl-3.0.0.tar.gz 3620475 BLAKE2B c1dc1709e60cfbfa9907c206340262b78e1bfb991d3956dfc0a5d8d80f80b61df41059e645f9f096185724470e8466a5b7a444a575f5f09d5a0f9eb35ff3ae7e SHA512 460fa390012218262b7c148a28e6ddfc0dc3d669c4bdd37b68bfa6f50a0cb2fb81a277fb46ae0ac22673aae5b5cc4476fe96e56471a6812176bf76e9c5e10838
DIST libressl-3.0.1.tar.gz 3668819 BLAKE2B 0e0e9db5018f7fd6c5d3f15dd911e375ae51885321fda2a6bef8f56620ca9d8b63d587f5acdf78afafabdd7ee1243c79bdf9b68a890dfc5f76fa45bbaf060563 SHA512 d2d665734d8aab2b998769492cbb1e7fddead52430ef503650c14786196241a6d1137f47b33ddf2037cc1ff13c240283f591dce83ec0da475619679a051d725f
DIST libressl-3.0.2.tar.gz 3669468 BLAKE2B 84ad2c1fea8d2119f191ec8ab3f999fb0354636d48aabb76fa1786139c669c9d8ca105d79cc8416dd20683818eccc84490cdadc9ca94cb2b0e411644e923a3d6 SHA512 19226da3bc9776e1da40b8e94dfa53564d5e6acc80edee539ba12d7a75c1bb8c0603e7633f26a6ef8b12adc56bb677ccda448575aa6be2ad3df5447465a4b080

@ -0,0 +1,62 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit multilib-minimal libtool
DESCRIPTION="Free version of the SSL/TLS protocol forked from OpenSSL"
HOMEPAGE="https://www.libressl.org/"
SRC_URI="https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/${P}.tar.gz"
LICENSE="ISC openssl"
# Reflects ABI of libcrypto.so and libssl.so. Since these can differ,
# we'll try to use the max of either. However, if either change between
# versions, we have to change the subslot to trigger rebuild of consumers.
SLOT="0/47"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="+asm static-libs test"
REQUIRED_USE="test? ( static-libs )"
RDEPEND="!dev-libs/openssl:0"
DEPEND="${RDEPEND}"
PDEPEND="app-misc/ca-certificates"
src_prepare() {
touch crypto/Makefile.in
sed -i \
-e '/^[ \t]*CFLAGS=/s#-g ##' \
-e '/^[ \t]*CFLAGS=/s#-g"#"#' \
-e '/^[ \t]*CFLAGS=/s#-O2 ##' \
-e '/^[ \t]*CFLAGS=/s#-O2"#"#' \
-e '/^[ \t]*USER_CFLAGS=/s#-O2 ##' \
-e '/^[ \t]*USER_CFLAGS=/s#-O2"#"#' \
configure || die "fixing CFLAGS failed"
if ! use test ; then
sed -i \
-e '/^[ \t]*SUBDIRS =/s#tests##' \
Makefile.in || die "Removing tests failed"
fi
eapply "${FILESDIR}"/${PN}-2.8.3-solaris10.patch
eapply_user
elibtoolize # for Solaris
}
multilib_src_configure() {
ECONF_SOURCE="${S}" econf \
$(use_enable asm) \
$(use_enable static-libs static)
}
multilib_src_test() {
emake check
}
multilib_src_install_all() {
einstalldocs
find "${D}" -name '*.la' -exec rm -f {} + || die
}

@ -1 +1,2 @@
DIST libtsm-3.tar.xz 293264 BLAKE2B 51044f5e7be2269e1b3f40b04aa486f30a3a496d57d3aa64f25b148edb04d8e039dafbe0df32d0557f4c3a21da52bb53be146fe57d84d4e8201289c3bd347d95 SHA512 119834fd6a84489cc7904bf01905c29004901ddf73d6dc4a1f47f6b402ad76f65cb4226eaa718a73dc06694b1524647eff6046894fd9526a8588eed97f6f68b6
DIST libtsm-4.0.1.tar.gz 157161 BLAKE2B cba597870d58907e647b9929cf9b97db76b6b38655d56dc3fe0ad0f534db8446cbc82d69a0ec10e58506e001aaf610dee4ab3ecb785b79b2f0571805c04d726e SHA512 28a5ac3d9cf12c4655b3e69ce90b814829ab517f69b88e6339e26dfab6957321a292e96fff687308a39cd16b499e8b29aa133216eb531750e4502a691a907752

@ -0,0 +1,16 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
CMAKE_BUILD_TYPE=Release
inherit cmake-utils
DESCRIPTION="Terminal Emulator State Machine"
HOMEPAGE="https://github.com/Aetf/libtsm"
SRC_URI="https://github.com/Aetf/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="LGPL-2.1 MIT"
SLOT="0/4"
KEYWORDS="~amd64 ~x86"
IUSE=""

@ -0,0 +1,25 @@
https://bugs.php.net/bug.php?id=78633
https://github.com/kkos/oniguruma/commit/15c4228aa2ffa02140a99912dd3177df0b1841c6
--- a/src/regcomp.c
+++ b/src/regcomp.c
@@ -734,8 +734,8 @@ add_compile_string(UChar* s, int mb_len, int str_len,
COP(reg)->exact_n.s = p;
}
else {
+ xmemset(COP(reg)->exact.s, 0, sizeof(COP(reg)->exact.s));
xmemcpy(COP(reg)->exact.s, s, (size_t )byte_len);
- COP(reg)->exact.s[byte_len] = '\0';
}
return 0;
--- a/src/regexec.c
+++ b/src/regexec.c
@@ -2889,6 +2889,7 @@ match_at(regex_t* reg, const UChar* str, const UChar* end,
DATA_ENSURE(0);
q = lowbuf;
while (len-- > 0) {
+ if (ps >= endp) goto fail;
if (*ps != *q) goto fail;
ps++; q++;
}

@ -16,7 +16,10 @@ SLOT="0/5"
KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 ~sh sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x86-solaris"
IUSE="crnl-as-line-terminator static-libs"
PATCHES=( "${FILESDIR}"/${PN}-6.9.3-fix-heap-buffer-overflow-php78559.patch )
PATCHES=(
"${FILESDIR}"/${PN}-6.9.3-fix-heap-buffer-overflow-php78559.patch
"${FILESDIR}"/${PN}-6.9.3-fix-heap-buffer-overflow-php78633.patch
)
S="${WORKDIR}/${MY_P}"

@ -1 +1,2 @@
DIST redland-bindings-1.0.14.1.tar.gz 792557 BLAKE2B fac20e9e2fbf9a4ea7299ef0b4a656ea3e5f1cbf436cd31c80e81be40dc95e074e557925b32ecf24091ce3cfe882d681318ae8402e14baf1e0966ec8a0a892ed SHA512 5e037a96f857c95bf4b9277d98c7de1fa41c4ba7e49e199eeb516458343587c796a10e857679c889406b22bca8617828a2bccd07c31b73f2366cdea39cefad15
DIST redland-bindings-1.0.17.1.tar.gz 933290 BLAKE2B f58524c30958200af1fb3ec0f63b8aa9f3fd2120297321299cdd225ff9eb331f385c4418ed25987b955857e5046b5c6f0589210b807aae0dc6abe0b758d48cfc SHA512 c105d1232555d226d98efdc1e4edc1b6c953fdd004804e40926452b8f91d30159319a50af68fc3cfe242cf180d85383ef3ff925cc65ed5d0652096cc51f4d7c0

@ -0,0 +1,22 @@
From: =?utf-8?q?Ond=C5=99ej_Sur=C3=BD?= <ondrej@sury.org>
Date: Wed, 22 Jun 2016 10:28:48 +0200
Subject: Don't undef bool, it's needed
---
perl/CORE_wrap.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/perl/CORE_wrap.c b/perl/CORE_wrap.c
index 46c2a46..4eb3785 100644
--- a/perl/CORE_wrap.c
+++ b/perl/CORE_wrap.c
@@ -1432,9 +1432,6 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#ifdef eof
#undef eof
#endif
-#ifdef bool
- #undef bool
-#endif
#ifdef close
#undef close
#endif

@ -0,0 +1,34 @@
diff -aurN a/configure.ac b/configure.ac
--- a/configure.ac 2014-05-10 18:38:09.000000000 -0400
+++ b/configure.ac 2016-10-12 14:27:04.635849601 -0400
@@ -153,13 +153,17 @@
fi
fi
+AC_ARG_WITH([php-config],
+ AS_HELP_STRING([--with-php-config=path], [Custom path to php-config]))
+AS_IF([test "x$with_php_config" != "x"],
+ [AC_CHECK_PROG(PHP_CONFIG, php-config, ["$with_php_config/php-config"], [], [$with_php_config])],
+ [AC_CHECK_PROG(PHP_CONFIG, php-config, php-config)])
-AC_CHECK_PROG(PHP_CONFIG, php-config, php-config)
if test "X$PHP_CONFIG" != X ; then
- PHP_VERSION=`$PHP_CONFIG --version`
- PHP_INCLUDES=`$PHP_CONFIG --includes`
- PHP_EXTENSION_DIR=`$PHP_CONFIG --extension-dir`
+ PHP_VERSION=`${PHP_CONFIG} --version`
+ PHP_INCLUDES=`${PHP_CONFIG} --includes`
+ PHP_EXTENSION_DIR=`${PHP_CONFIG} --extension-dir`
if test $PHP_VERSION '>' 5.0.0; then
PHP_SWIG="-php5"
@@ -445,7 +449,7 @@
with_php=yes
fi
-PHP_VERSION=`php-config --version 2>/dev/null`
+PHP_VERSION=`${PHP_CONFIG} --version 2>/dev/null`
if test "X$PHP_VERSION" != X; then
languages_available="$languages_available php($PHP_VERSION)"
if test $with_php = yes; then

@ -0,0 +1,107 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
PYTHON_COMPAT=( python2_7 )
USE_PHP="php7-2"
PHP_EXT_NAME="redland"
PHP_EXT_OPTIONAL_USE="php"
PHP_EXT_SKIP_PHPIZE="yes"
inherit php-ext-source-r3 python-single-r1 autotools
DESCRIPTION="Language bindings for Redland"
HOMEPAGE="http://librdf.org/bindings/"
SRC_URI="http://download.librdf.org/source/${P}.tar.gz"
LICENSE="Apache-2.0 GPL-2 LGPL-2.1"
SLOT="0"
#KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-linux ~ppc-macos"
IUSE="lua perl python php ruby"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
RDEPEND=">=dev-libs/redland-1.0.14
lua? ( >=dev-lang/lua-5.1 )
perl? ( dev-lang/perl:= )
python? ( ${PYTHON_DEPS} )
ruby? ( dev-lang/ruby dev-ruby/log4r )
"
# php? ( php_targets_php5-6? ( dev-lang/php:5.6[-threads] ) )
DEPEND="${RDEPEND}
virtual/pkgconfig
>=dev-lang/swig-2
sys-apps/sed"
PATCHES=( "${FILESDIR}/${P}-bool.patch" )
pkg_setup() {
use python && python-single-r1_pkg_setup
}
src_prepare(){
default
if use php ; then
local slot
for slot in $(php_get_slots); do
php_init_slot_env "${slot}"
eapply "${FILESDIR}/${P}-php-config.patch"
eautoreconf
done
fi
}
src_configure() {
if use lua || use perl || use python || use ruby ; then
econf \
$(use_with lua) \
$(use_with perl) \
$(use_with python) \
--without-php \
$(use_with ruby)
fi
if use php ; then
local slot
for slot in $(php_get_slots); do
php_init_slot_env "${slot}"
econf --with-php="${PHP_CURRENTSLOT}" \
--with-php-config="${PHPPREFIX}/bin" \
--without-lua --without-perl \
--without-python --without-ruby
done
fi
}
src_compile() {
if use lua || use perl || use python || use ruby ; then
default
fi
use php && php-ext-source-r3_src_compile
}
src_install() {
if use lua || use perl || use python || use ruby ; then
emake DESTDIR="${D}" INSTALLDIRS=vendor luadir=/usr/$(get_libdir)/lua/5.1 install
fi
if use perl; then
find "${ED}" -type f -name perllocal.pod -delete
find "${ED}" -depth -mindepth 1 -type d -empty -delete
fi
use python && python_optimize
if use php ; then
local slot
for slot in $(php_get_slots); do
php_init_slot_env "${slot}"
exeinto "${EXT_DIR#$EPREFIX}"
doexe "php/${PHP_EXT_NAME}.so"
done
php-ext-source-r3_createinifiles
fi
local DOCS=( AUTHORS ChangeLog NEWS README TODO )
local HTML_DOCS=( {NEWS,README,RELEASE,TODO}.html )
einstalldocs
}

@ -16,7 +16,7 @@ fi
DESCRIPTION="Radeon Open Compute Thunk Interface"
HOMEPAGE="https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface"
CONFIG_CHECK="~NUMA ~HSA_AMD ~HMM_MIRROR ~ZONE_DEVICE"
CONFIG_CHECK="~NUMA ~HSA_AMD ~HMM_MIRROR ~ZONE_DEVICE ~DRM_AMDGPU ~DRM_AMDGPU_USERPTR"
LICENSE="MIT"
SLOT="0/$(ver_cut 1-2)"

@ -16,7 +16,7 @@ fi
DESCRIPTION="Radeon Open Compute Thunk Interface"
HOMEPAGE="https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface"
CONFIG_CHECK="~NUMA ~HSA_AMD ~HMM_MIRROR ~ZONE_DEVICE"
CONFIG_CHECK="~NUMA ~HSA_AMD ~HMM_MIRROR ~ZONE_DEVICE ~DRM_AMDGPU ~DRM_AMDGPU_USERPTR"
LICENSE="MIT"
SLOT="0/$(ver_cut 1-2)"

@ -1,4 +1,4 @@
# Copyright 1999-2017 Gentoo Foundation
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@ -20,3 +20,7 @@ RDEPEND="
DEPEND="${RDEPEND}
virtual/perl-ExtUtils-MakeMaker
"
PATCHES=(
"${FILESDIR}/${P}-0002-Port-to-OpenSSL-1.1.0.patch"
)

@ -0,0 +1,252 @@
From b110ec2277ba33e0935f3d465a5413f669d8aefc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
Date: Tue, 11 Oct 2016 16:15:43 +0200
Subject: [PATCH] Port to OpenSSL 1.1.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
OpenSSL 1.1.0 hid ECDSA structure internals and provided methods
instead.
This patch uses the methods and provides their copies in the case of
older OpenSSL. Because the new OpenSSL API, ECDSA_SIG_set0(), cannot
set curve parameters individually and ECDSA_SIG_get0() returns yet
another reference, it's necessary to duplicate the other unchanged
paramater when calling set_r() or set_s().
This patch also stops exporting ECDSA_METHOD functions that were
removed from the new OpenSSL.
CPAN RT#118330
Signed-off-by: Petr Písař <ppisar@redhat.com>
---
ECDSA.xs | 105 ++++++++++++++++++++++++++++++++++++++++--------
t/Crypt-OpenSSL-ECDSA.t | 13 +++++-
2 files changed, 100 insertions(+), 18 deletions(-)
diff --git a/ECDSA.xs b/ECDSA.xs
index 4016368..3d6e2d1 100644
--- a/ECDSA.xs
+++ b/ECDSA.xs
@@ -7,9 +7,35 @@
#include <openssl/ecdsa.h>
#include <openssl/err.h>
+#include <openssl/bn.h>
#include "const-c.inc"
+
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+#include <openssl/ec.h>
+#else
+/* ECDSA_SIG_get0() and ECDSA_SIG_set0() copied from OpenSSL 1.1.0b. */
+static void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr,
+ const BIGNUM **ps) {
+ if (pr != NULL)
+ *pr = sig->r;
+ if (ps != NULL)
+ *ps = sig->s;
+}
+
+static int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s)
+{
+ if (r == NULL || s == NULL)
+ return 0;
+ BN_clear_free(sig->r);
+ BN_clear_free(sig->s);
+ sig->r = r;
+ sig->s = s;
+ return 1;
+}
+#endif
+
MODULE = Crypt::OpenSSL::ECDSA PACKAGE = Crypt::OpenSSL::ECDSA
PROTOTYPES: ENABLE
@@ -17,7 +43,9 @@ INCLUDE: const-xs.inc
BOOT:
ERR_load_crypto_strings();
+#if OPENSSL_VERSION_NUMBER >= 0x10002000L && OPENSSL_VERSION_NUMBER < 0x10100000L
ERR_load_ECDSA_strings();
+#endif
#ECDSA_SIG *
#ECDSA_SIG_new()
@@ -61,10 +89,16 @@ ECDSA_do_verify(const unsigned char *dgst, const ECDSA_SIG *sig, EC_KEY* eckey);
OUTPUT:
RETVAL
-# These ECDSA_METHOD functions only became available in 1.0.2
+# These ECDSA_METHOD functions only became available in 1.0.2,
+# but some of them removed again in 1.1.0.
#if OPENSSL_VERSION_NUMBER >= 0x10002000L
+int
+ECDSA_size(const EC_KEY *eckey)
+
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+
const ECDSA_METHOD *
ECDSA_OpenSSL()
@@ -77,9 +111,6 @@ ECDSA_get_default_method()
int
ECDSA_set_method(EC_KEY *eckey, const ECDSA_METHOD *meth)
-int
-ECDSA_size(const EC_KEY *eckey)
-
ECDSA_METHOD *
ECDSA_METHOD_new(ECDSA_METHOD *ecdsa_method=0)
@@ -95,7 +126,7 @@ ECDSA_METHOD_set_name(ECDSA_METHOD *ecdsa_method, char *name)
void
ERR_load_ECDSA_strings()
-
+#endif
#endif
@@ -135,11 +166,13 @@ SV *
get_r(ecdsa_sig)
ECDSA_SIG *ecdsa_sig
PREINIT:
+ const BIGNUM *r;
unsigned char *to;
STRLEN len;
CODE:
to = malloc(sizeof(char) * 128);
- len = BN_bn2bin(ecdsa_sig->r, to);
+ ECDSA_SIG_get0(ecdsa_sig, &r, NULL);
+ len = BN_bn2bin(r, to);
RETVAL = newSVpvn((const char*)to, len);
free(to);
OUTPUT:
@@ -149,11 +182,13 @@ SV *
get_s(ecdsa_sig)
ECDSA_SIG *ecdsa_sig
PREINIT:
+ const BIGNUM *s;
unsigned char *to;
STRLEN len;
CODE:
to = malloc(sizeof(char) * 128);
- len = BN_bn2bin(ecdsa_sig->s, to);
+ ECDSA_SIG_get0(ecdsa_sig, NULL, &s);
+ len = BN_bn2bin(s, to);
RETVAL = newSVpvn((const char*)to, len);
free(to);
OUTPUT:
@@ -164,26 +199,62 @@ set_r(ecdsa_sig, r_SV)
ECDSA_SIG *ecdsa_sig
SV * r_SV
PREINIT:
- char *s;
+ char *string;
STRLEN len;
+ BIGNUM *r;
+ BIGNUM *s;
+ const BIGNUM *old_s;
CODE:
- s = SvPV(r_SV, len);
- if (ecdsa_sig->r)
- BN_free(ecdsa_sig->r);
- ecdsa_sig->r = BN_bin2bn((const unsigned char *)s, len, NULL);
+ string = SvPV(r_SV, len);
+ r = BN_bin2bn((const unsigned char *)string, len, NULL);
+ if (NULL == r)
+ croak("Could not convert ECDSA parameter string to big number");
+ ECDSA_SIG_get0(ecdsa_sig, NULL, &old_s);
+ if (NULL == old_s) {
+ s = BN_new();
+ } else {
+ s = BN_dup(old_s);
+ }
+ if (NULL == s) {
+ BN_free(r);
+ croak("Could not duplicate unchanged ECDSA parameter");
+ }
+ if (!ECDSA_SIG_set0(ecdsa_sig, r, s)) {
+ BN_free(r);
+ BN_free(s);
+ croak("Could not store ECDSA parameters");
+ }
void
set_s(ecdsa_sig, s_SV)
ECDSA_SIG *ecdsa_sig
SV * s_SV
PREINIT:
- char *s;
+ char *string;
STRLEN len;
+ BIGNUM *r;
+ BIGNUM *s;
+ const BIGNUM *old_r;
CODE:
- s = SvPV(s_SV, len);
- if (ecdsa_sig->s)
- BN_free(ecdsa_sig->s);
- ecdsa_sig->s = BN_bin2bn((const unsigned char *)s, len, NULL);
+ string = SvPV(s_SV, len);
+ s = BN_bin2bn((const unsigned char *)string, len, NULL);
+ if (NULL == s)
+ croak("Could not convert ECDSA parameter string to big number");
+ ECDSA_SIG_get0(ecdsa_sig, &old_r, NULL);
+ if (NULL == old_r) {
+ r = BN_new();
+ } else {
+ r = BN_dup(old_r);
+ }
+ if (NULL == r) {
+ BN_free(s);
+ croak("Could not duplicate unchanged ECDSA parameter");
+ }
+ if (!ECDSA_SIG_set0(ecdsa_sig, r, s)) {
+ BN_free(r);
+ BN_free(s);
+ croak("Could not store ECDSA parameters");
+ }
diff --git a/t/Crypt-OpenSSL-ECDSA.t b/t/Crypt-OpenSSL-ECDSA.t
index 7ab584f..3c02025 100644
--- a/t/Crypt-OpenSSL-ECDSA.t
+++ b/t/Crypt-OpenSSL-ECDSA.t
@@ -6,7 +6,7 @@
use strict;
use warnings;
-use Test::More tests => 21;
+use Test::More tests => 25;
BEGIN { use_ok('Crypt::OpenSSL::ECDSA'); use_ok('Crypt::OpenSSL::EC'); };
@@ -77,6 +77,17 @@ $ret = Crypt::OpenSSL::ECDSA::ECDSA_do_verify($digest, $sig, $key);
ok($ret);
undef $sig;
+# Test a signature can be built from scratch
+$sig = Crypt::OpenSSL::ECDSA::ECDSA_SIG->new();
+ok($sig, 'Empty Crypt::OpenSSL::ECDSA::ECDSA_SIG object created');
+eval { $sig->set_r($r); };
+ok(!$@, 'R parameter set');
+eval { $sig->set_s($s); };
+ok(!$@, 'S parameter set');
+$ret = Crypt::OpenSSL::ECDSA::ECDSA_do_verify($digest, $sig, $key);
+ok($ret, 'built-from-scratch signature matches');
+undef $sig;
+
# Testing signing and verifying with the _ex version
my $dummy = 0;
$sig = Crypt::OpenSSL::ECDSA::ECDSA_do_sign_ex($digest, \$dummy, \$dummy, $key);
--
2.7.4

@ -0,0 +1,40 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
DIST_AUTHOR=MIKAGE
DIST_VERSION=0.25
inherit perl-module
DESCRIPTION="S/MIME message signing, verification, encryption and decryption"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="libressl test minimal"
RDEPEND="
!libressl? ( >=dev-libs/openssl-0.9.9:0 )
libressl? ( dev-libs/libressl )
virtual/perl-XSLoader
"
DEPEND="${RDEPEND}
virtual/perl-ExtUtils-MakeMaker
dev-perl/ExtUtils-PkgConfig
dev-perl/ExtUtils-CChecker
>=virtual/perl-ExtUtils-Constant-0.230.0
test? (
dev-perl/Test-Exception
virtual/perl-Test-Simple
!minimal? (
>=dev-perl/Test-Taint-1.60.0
>=dev-perl/Taint-Util-0.80.0
)
)
"
src_test() {
perl_rm_files t/boilerplate.t t/manifest.t t/dependencies.t \
t/pod-coverage.t t/pod.t
perl-module_src_test
}

@ -1 +1,2 @@
DIST Crypt-SMIME-0.19.tar.gz 26057 BLAKE2B 0d0e2bbec80ab722a492769b4a96c3fcd7dba0056e3f7287acd16394b09143e56c417551ef819c92fae9f0f0890cb6338f6ef8ce8263d0b3e06da3d51f7dc32b SHA512 fcf7cbbf00127ddc618acd8959763d92eb14ec4e7ade76ffa1020ce60ae1d575d320e4aa89a4d43cf2422170b6bc924ebcf20a42135361e97fb72e8b9abf2c5b
DIST Crypt-SMIME-0.25.tar.gz 28029 BLAKE2B d1f2e3d016b3e0e997de0df5082082e3332201c409c6a7b429ba99d2feb19a15ea79a3f22c6c3f9b2d057a1a9d5ae6d06b78d2e92d3e898987114eb5450955f6 SHA512 84f61c247d095ad345a6c736120d11c516e776c5f4a599a4c275481c4bd4597fcb2e0a17da5dc3e111310d3f99f9f39fb0876477098d9e6d9eabd777d145176f

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

Loading…
Cancel
Save