parent
191925076c
commit
ae6942e4a5
Binary file not shown.
Binary file not shown.
@ -1,3 +1,4 @@
|
|||||||
DIST borgbackup-1.1.6.tar.gz 3441523 BLAKE2B 13b1892774e857432a77d1f67d981046a0670b4ba2f3665502f7b729a211fc47e10a87feca308d5089c984cfe4665e7e70ca68bb9aa6e188893a0d088e84df93 SHA512 5741c48bdb70a26d40bd583f207460e35bb7dd560424889d37eb4d90ee96947457faf09bae0fa2b26b42ec71ef6eeaec1b770ba3257223a2637fcb55266e4a17
|
DIST borgbackup-1.1.6.tar.gz 3441523 BLAKE2B 13b1892774e857432a77d1f67d981046a0670b4ba2f3665502f7b729a211fc47e10a87feca308d5089c984cfe4665e7e70ca68bb9aa6e188893a0d088e84df93 SHA512 5741c48bdb70a26d40bd583f207460e35bb7dd560424889d37eb4d90ee96947457faf09bae0fa2b26b42ec71ef6eeaec1b770ba3257223a2637fcb55266e4a17
|
||||||
DIST borgbackup-1.1.7.tar.gz 3446832 BLAKE2B c4e2ce7c08f0df479d3333e5766ea070d0c1e18abc88fc8787e4212eff27e8e4505759f80f3bdda80d2b9a737241b907a41749edca9a6138eae2a5620913908d SHA512 586420b9cad7e731f2f1b8b05f3cd3dc606691c5a5ec307e887035d941ac5ac6d4c988783660969960a1221e4d9f2b865ee5558d4007ea7524632d0a50a8a402
|
DIST borgbackup-1.1.7.tar.gz 3446832 BLAKE2B c4e2ce7c08f0df479d3333e5766ea070d0c1e18abc88fc8787e4212eff27e8e4505759f80f3bdda80d2b9a737241b907a41749edca9a6138eae2a5620913908d SHA512 586420b9cad7e731f2f1b8b05f3cd3dc606691c5a5ec307e887035d941ac5ac6d4c988783660969960a1221e4d9f2b865ee5558d4007ea7524632d0a50a8a402
|
||||||
DIST borgbackup-1.1.8.tar.gz 3456058 BLAKE2B cad55216f92025418e1a427f4b578d6b7eafa03f6b3e9c4fccb148dd3856c4f6649928fb4227249c534add125f9b3a2a0b6ed808ae12c5e60a28f9df4fb0031a SHA512 1455e68bcedab8f35f9426dc73958c6a6565ad1f1cc274ce59d34a12e3a7bfa1d12fa2b8e8dd3e71824e1cd0927babf79f4e99d4e516454ed12dbd3970d0e921
|
DIST borgbackup-1.1.8.tar.gz 3456058 BLAKE2B cad55216f92025418e1a427f4b578d6b7eafa03f6b3e9c4fccb148dd3856c4f6649928fb4227249c534add125f9b3a2a0b6ed808ae12c5e60a28f9df4fb0031a SHA512 1455e68bcedab8f35f9426dc73958c6a6565ad1f1cc274ce59d34a12e3a7bfa1d12fa2b8e8dd3e71824e1cd0927babf79f4e99d4e516454ed12dbd3970d0e921
|
||||||
|
DIST borgbackup-1.1.9.tar.gz 3468259 BLAKE2B 91c89304cf22328a0bd74583c22370343915209a204f52c65290dbec0cb688392c2e80b946a55317f8c58ef23099e710c16a34c6bfbbfb547a3e4b38c3c81c37 SHA512 466288258700fb0b3dae936c79fd423d26bea2d721dd70112b3cfd0f8e2bb335144a00de76743c31d336f6c19793775260d154326ec70d6d6d0a4e5ad6a59e59
|
||||||
|
@ -0,0 +1,46 @@
|
|||||||
|
# Copyright 1999-2019 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=7
|
||||||
|
|
||||||
|
PYTHON_COMPAT=( python3_{4,5,6} )
|
||||||
|
|
||||||
|
inherit distutils-r1
|
||||||
|
|
||||||
|
if [[ ${PV} == "9999" ]] ; then
|
||||||
|
EGIT_REPO_URI="https://github.com/${PN}/borg.git"
|
||||||
|
inherit git-r3
|
||||||
|
else
|
||||||
|
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
|
||||||
|
KEYWORDS="~amd64 ~x86"
|
||||||
|
fi
|
||||||
|
|
||||||
|
DESCRIPTION="Deduplicating backup program with compression and authenticated encryption"
|
||||||
|
HOMEPAGE="https://borgbackup.readthedocs.io/"
|
||||||
|
|
||||||
|
LICENSE="BSD"
|
||||||
|
SLOT="0"
|
||||||
|
IUSE="libressl"
|
||||||
|
|
||||||
|
# Unfortunately we have a file conflict with app-office/borg, bug #580402
|
||||||
|
RDEPEND="
|
||||||
|
!!app-office/borg
|
||||||
|
app-arch/lz4
|
||||||
|
dev-python/llfuse[${PYTHON_USEDEP}]
|
||||||
|
dev-python/msgpack[${PYTHON_USEDEP}]
|
||||||
|
dev-python/pyzmq[${PYTHON_USEDEP}]
|
||||||
|
!libressl? ( dev-libs/openssl:0= )
|
||||||
|
libressl? ( dev-libs/libressl:0= )
|
||||||
|
"
|
||||||
|
|
||||||
|
DEPEND="
|
||||||
|
dev-python/setuptools_scm[${PYTHON_USEDEP}]
|
||||||
|
dev-python/cython[${PYTHON_USEDEP}]
|
||||||
|
${RDEPEND}
|
||||||
|
"
|
||||||
|
|
||||||
|
python_prepare_all() {
|
||||||
|
# allow use of new (renamed) msgpack
|
||||||
|
sed -i "s|'msgpack-python.*',||g" setup.py || die
|
||||||
|
distutils-r1_python_prepare_all
|
||||||
|
}
|
@ -1,2 +1,3 @@
|
|||||||
DIST snapper-0.5.6.tar.bz2 580047 BLAKE2B 3b945acbf734db1925dad5515323a64a2c08ee8226a593025f9160e0d1b1140734b2b498d036256946159900b50fec8567147dc0a974c281be747e977bcbd05b SHA512 392427d097cbe221bf7ca0ae20bc065dffaa4d0017ed750c41748d71128fc7ce054bb4425d6dbed7308a530df71815f80f56e60d72aab17ef3e0a16f3b3ba47e
|
DIST snapper-0.5.6.tar.bz2 580047 BLAKE2B 3b945acbf734db1925dad5515323a64a2c08ee8226a593025f9160e0d1b1140734b2b498d036256946159900b50fec8567147dc0a974c281be747e977bcbd05b SHA512 392427d097cbe221bf7ca0ae20bc065dffaa4d0017ed750c41748d71128fc7ce054bb4425d6dbed7308a530df71815f80f56e60d72aab17ef3e0a16f3b3ba47e
|
||||||
DIST snapper-0.8.1.tar.bz2 591061 BLAKE2B 5f9ae50469f43e930de4c4479428c94b24441832bd713847c6792ff583fb79badfa341b53cc63abfedb787367b22b715de9f83f9172dec945f7b3071c06137ba SHA512 9fa20311f346de54c4f5d1cabb42dce5c677eaac03b3fac2a6049f408553911f5a968b1920fd014f3318ebb6911f2e6bce06463e976b468927e250e16fe783a0
|
DIST snapper-0.8.1.tar.bz2 591061 BLAKE2B 5f9ae50469f43e930de4c4479428c94b24441832bd713847c6792ff583fb79badfa341b53cc63abfedb787367b22b715de9f83f9172dec945f7b3071c06137ba SHA512 9fa20311f346de54c4f5d1cabb42dce5c677eaac03b3fac2a6049f408553911f5a968b1920fd014f3318ebb6911f2e6bce06463e976b468927e250e16fe783a0
|
||||||
|
DIST snapper-0.8.2.tar.bz2 591558 BLAKE2B 552c07d1d83e6a8db1e1661b523aeb7164335bb6ebbeb07489325b6d23d8a5def730ac1cf0da06ab65b7a9fc1284d0d05ca0f875bc897504c1bbb45698b40294 SHA512 d968490782a47112f7ba2474555cafe450833cf055734186c79991dd836f9c5d8d669a6c65dd29b05da298e46f65e0ac5c4a1dae3b548a01dbf1b11d7e00c462
|
||||||
|
Binary file not shown.
@ -1,3 +1,3 @@
|
|||||||
DIST docker-18.03.1.tar.gz 12758590 BLAKE2B 98213af07b945fda536e321ef5cc9e272848aab97dcadb7a6b1433b9310fa78015794b5ee4f255448251366a7811e97248b9cc90b0225c528249188768f344ab SHA512 48c4916421cd500ada1bfc2207123a29870939a15a1c7c4a0c082f61c1e3e063381e2345ee9df645dbaca49e002dbfaba70cf6fe233b39a4e1f44fb015807e10
|
DIST docker-18.03.1.tar.gz 12758590 BLAKE2B 98213af07b945fda536e321ef5cc9e272848aab97dcadb7a6b1433b9310fa78015794b5ee4f255448251366a7811e97248b9cc90b0225c528249188768f344ab SHA512 48c4916421cd500ada1bfc2207123a29870939a15a1c7c4a0c082f61c1e3e063381e2345ee9df645dbaca49e002dbfaba70cf6fe233b39a4e1f44fb015807e10
|
||||||
DIST docker-18.06.1.tar.gz 13672693 BLAKE2B 7aed2f409914471b3e0eec4f3d024bf59e6505060c1da9c4bb68f0d6efdb5286a8e9e5ee0de19b3f0165c965db27d409f72fceb3f792fc91b9b8dddc8a2b01f0 SHA512 7375452669bf6576e1f8d193cd7f421cf39a26d575351f2b4e433c7fc89384f441547417dbe8c12a12a0937c9fea3800b5c541f0ba8b58ceffe7445183ceeef1
|
DIST docker-18.06.2.tar.gz 13675733 BLAKE2B 1b0852851a9c0412d7098b114f8ff62a7fc624f1bd77ba72629009c5b2afbbbacd79f93cdb4287bdb5a58c9b09ff76c9fb5b9ea40933686b62c78ebdc61d1a1b SHA512 78ab030555501071eee47964894798847d7a60ac826479215a2d0a74c75bac88ad212b7f5ab0f29444407456a3914c263c04a1398dc895586026440f203b50a4
|
||||||
DIST docker-18.09.1.tar.gz 15247155 BLAKE2B 5c9a6c0d6e383da2b99341812b0cc1d1498e46decc3b3aaa418607d5f4d725a6842a4462c06357685a32312b90978b0349aaceb69907324761589e68cfae7bca SHA512 9813d3bd41eff63a089495a976226b93d5d43544530aea0ebce78b96e6b4b38389fe3ad1117f1ca95c38727047a24211ad2c2b44217935c26ffb5496cf90407e
|
DIST docker-18.09.2.tar.gz 15252871 BLAKE2B f87d3a7e6ccb4750eae231b88c686ad9c0be08aa8e0657343c89593d75374dfaeb063f842b8f5cef58e4b64982d3296a6808f076837243e61d75b93ad495fb44 SHA512 eacbeb754cdf2c111a2b72473b437e64cf176a5e93e1a9a0e5ed092d38db5846777d23c4ad51112d8a21317d471e5f1e93f85ae5c0ad1d5d50aea95e226dfa01
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
DIST runc-1.0.0_rc5.tar.gz 1183902 BLAKE2B 46d0ffd9aa79a6f74b3194fa9e1932390115a43c903ae553acb7749d6be41220874a1ff9bae9706b5fecb9495dd6686c38ee1e9baf6118a14990f142baf6f64d SHA512 714230887ff9706c29b0656c5cdb253698bde6252a23e7f48aa690747fb57abd7884c2da1c4d0e314f9f301c5962417351557d15d986e45fcc336e98069aeac6
|
DIST runc-1.0.0_rc5.tar.gz 1183902 BLAKE2B 46d0ffd9aa79a6f74b3194fa9e1932390115a43c903ae553acb7749d6be41220874a1ff9bae9706b5fecb9495dd6686c38ee1e9baf6118a14990f142baf6f64d SHA512 714230887ff9706c29b0656c5cdb253698bde6252a23e7f48aa690747fb57abd7884c2da1c4d0e314f9f301c5962417351557d15d986e45fcc336e98069aeac6
|
||||||
DIST runc-1.0.0_rc5_p20180509.tar.gz 1185576 BLAKE2B b56f9c185c061f51a1fd81c19d378b06c71d06c6eddcbc1c946b234814eb469ea4af37bf42ef3889e4d37bc430e69d0a563281b13055f855f1bc15935531fe28 SHA512 9a55bdb8e39830f46cceff48970b7688139927552e3d268b9ef4a6e640ffc3d95164b99c5b05d07d295bedc2ea22daf6062fd520df1548d78b1d481fd928f1e3
|
DIST runc-1.0.0_rc5_p20180509.tar.gz 1185576 BLAKE2B b56f9c185c061f51a1fd81c19d378b06c71d06c6eddcbc1c946b234814eb469ea4af37bf42ef3889e4d37bc430e69d0a563281b13055f855f1bc15935531fe28 SHA512 9a55bdb8e39830f46cceff48970b7688139927552e3d268b9ef4a6e640ffc3d95164b99c5b05d07d295bedc2ea22daf6062fd520df1548d78b1d481fd928f1e3
|
||||||
DIST runc-1.0.0_rc6.tar.gz 1202212 BLAKE2B 2795b6e88a9587fac61a50bfea52a9df8524eb87aae66129d7ea83e8c3ca586efc60a46d24af857f7ba50f8e4d7021cbd2845d322a8c0ad08be3e0f19d80ba3b SHA512 2f7ed5e835f000d9810a116a27300336f424ac2c370dd1c7d158e26a4997d1e8398612387be27cc22cc25fdd52cc4cff7963ef88ce9c41d337321b75d9be2334
|
|
||||||
DIST runc-1.0.0_rc6_p20181203.tar.gz 1202869 BLAKE2B 5b5808fc65f3725e5cc22794c5ff6c5eba6016110358b0f60dd3378df2e5b64afb5631e5652f45e9721838dd02745b8c5a88abfcd244de202196ac16bfccd5a7 SHA512 ec3d3fec773f2f9df714b0813efb110e21e328634e0b4ae77f323a892d0327aea5d4b6f9ae2a549aa06fda5b27431f4514fd663c7033dc170ca1a03627931f9d
|
DIST runc-1.0.0_rc6_p20181203.tar.gz 1202869 BLAKE2B 5b5808fc65f3725e5cc22794c5ff6c5eba6016110358b0f60dd3378df2e5b64afb5631e5652f45e9721838dd02745b8c5a88abfcd244de202196ac16bfccd5a7 SHA512 ec3d3fec773f2f9df714b0813efb110e21e328634e0b4ae77f323a892d0327aea5d4b6f9ae2a549aa06fda5b27431f4514fd663c7033dc170ca1a03627931f9d
|
||||||
|
@ -0,0 +1,334 @@
|
|||||||
|
From 0a8e4117e7f715d5fbeef398405813ce8e88558b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Aleksa Sarai <asarai@suse.de>
|
||||||
|
Date: Wed, 9 Jan 2019 13:40:01 +1100
|
||||||
|
Subject: [PATCH] nsenter: clone /proc/self/exe to avoid exposing host binary
|
||||||
|
to container
|
||||||
|
|
||||||
|
There are quite a few circumstances where /proc/self/exe pointing to a
|
||||||
|
pretty important container binary is a _bad_ thing, so to avoid this we
|
||||||
|
have to make a copy (preferably doing self-clean-up and not being
|
||||||
|
writeable).
|
||||||
|
|
||||||
|
We require memfd_create(2) -- though there is an O_TMPFILE fallback --
|
||||||
|
but we can always extend this to use a scratch MNT_DETACH overlayfs or
|
||||||
|
tmpfs. The main downside to this approach is no page-cache sharing for
|
||||||
|
the runc binary (which overlayfs would give us) but this is far less
|
||||||
|
complicated.
|
||||||
|
|
||||||
|
This is only done during nsenter so that it happens transparently to the
|
||||||
|
Go code, and any libcontainer users benefit from it. This also makes
|
||||||
|
ExtraFiles and --preserve-fds handling trivial (because we don't need to
|
||||||
|
worry about it).
|
||||||
|
|
||||||
|
Fixes: CVE-2019-5736
|
||||||
|
Co-developed-by: Christian Brauner <christian.brauner@ubuntu.com>
|
||||||
|
Signed-off-by: Aleksa Sarai <asarai@suse.de>
|
||||||
|
---
|
||||||
|
libcontainer/nsenter/cloned_binary.c | 268 +++++++++++++++++++++++++++
|
||||||
|
libcontainer/nsenter/nsexec.c | 11 ++
|
||||||
|
2 files changed, 279 insertions(+)
|
||||||
|
create mode 100644 libcontainer/nsenter/cloned_binary.c
|
||||||
|
|
||||||
|
diff --git a/libcontainer/nsenter/cloned_binary.c b/libcontainer/nsenter/cloned_binary.c
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000..c8a42c23f
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/libcontainer/nsenter/cloned_binary.c
|
||||||
|
@@ -0,0 +1,268 @@
|
||||||
|
+/*
|
||||||
|
+ * Copyright (C) 2019 Aleksa Sarai <cyphar@cyphar.com>
|
||||||
|
+ * Copyright (C) 2019 SUSE LLC
|
||||||
|
+ *
|
||||||
|
+ * Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
+ * you may not use this file except in compliance with the License.
|
||||||
|
+ * You may obtain a copy of the License at
|
||||||
|
+ *
|
||||||
|
+ * http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
+ *
|
||||||
|
+ * Unless required by applicable law or agreed to in writing, software
|
||||||
|
+ * distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
+ * See the License for the specific language governing permissions and
|
||||||
|
+ * limitations under the License.
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+#define _GNU_SOURCE
|
||||||
|
+#include <unistd.h>
|
||||||
|
+#include <stdio.h>
|
||||||
|
+#include <stdlib.h>
|
||||||
|
+#include <stdbool.h>
|
||||||
|
+#include <string.h>
|
||||||
|
+#include <limits.h>
|
||||||
|
+#include <fcntl.h>
|
||||||
|
+#include <errno.h>
|
||||||
|
+
|
||||||
|
+#include <sys/types.h>
|
||||||
|
+#include <sys/stat.h>
|
||||||
|
+#include <sys/vfs.h>
|
||||||
|
+#include <sys/mman.h>
|
||||||
|
+#include <sys/sendfile.h>
|
||||||
|
+#include <sys/syscall.h>
|
||||||
|
+
|
||||||
|
+/* Use our own wrapper for memfd_create. */
|
||||||
|
+#if !defined(SYS_memfd_create) && defined(__NR_memfd_create)
|
||||||
|
+# define SYS_memfd_create __NR_memfd_create
|
||||||
|
+#endif
|
||||||
|
+#ifdef SYS_memfd_create
|
||||||
|
+# define HAVE_MEMFD_CREATE
|
||||||
|
+/* memfd_create(2) flags -- copied from <linux/memfd.h>. */
|
||||||
|
+# ifndef MFD_CLOEXEC
|
||||||
|
+# define MFD_CLOEXEC 0x0001U
|
||||||
|
+# define MFD_ALLOW_SEALING 0x0002U
|
||||||
|
+# endif
|
||||||
|
+int memfd_create(const char *name, unsigned int flags)
|
||||||
|
+{
|
||||||
|
+ return syscall(SYS_memfd_create, name, flags);
|
||||||
|
+}
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+/* This comes directly from <linux/fcntl.h>. */
|
||||||
|
+#ifndef F_LINUX_SPECIFIC_BASE
|
||||||
|
+# define F_LINUX_SPECIFIC_BASE 1024
|
||||||
|
+#endif
|
||||||
|
+#ifndef F_ADD_SEALS
|
||||||
|
+# define F_ADD_SEALS (F_LINUX_SPECIFIC_BASE + 9)
|
||||||
|
+# define F_GET_SEALS (F_LINUX_SPECIFIC_BASE + 10)
|
||||||
|
+#endif
|
||||||
|
+#ifndef F_SEAL_SEAL
|
||||||
|
+# define F_SEAL_SEAL 0x0001 /* prevent further seals from being set */
|
||||||
|
+# define F_SEAL_SHRINK 0x0002 /* prevent file from shrinking */
|
||||||
|
+# define F_SEAL_GROW 0x0004 /* prevent file from growing */
|
||||||
|
+# define F_SEAL_WRITE 0x0008 /* prevent writes */
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+#define RUNC_SENDFILE_MAX 0x7FFFF000 /* sendfile(2) is limited to 2GB. */
|
||||||
|
+#ifdef HAVE_MEMFD_CREATE
|
||||||
|
+# define RUNC_MEMFD_COMMENT "runc_cloned:/proc/self/exe"
|
||||||
|
+# define RUNC_MEMFD_SEALS \
|
||||||
|
+ (F_SEAL_SEAL | F_SEAL_SHRINK | F_SEAL_GROW | F_SEAL_WRITE)
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+static void *must_realloc(void *ptr, size_t size)
|
||||||
|
+{
|
||||||
|
+ void *old = ptr;
|
||||||
|
+ do {
|
||||||
|
+ ptr = realloc(old, size);
|
||||||
|
+ } while(!ptr);
|
||||||
|
+ return ptr;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+/*
|
||||||
|
+ * Verify whether we are currently in a self-cloned program (namely, is
|
||||||
|
+ * /proc/self/exe a memfd). F_GET_SEALS will only succeed for memfds (or rather
|
||||||
|
+ * for shmem files), and we want to be sure it's actually sealed.
|
||||||
|
+ */
|
||||||
|
+static int is_self_cloned(void)
|
||||||
|
+{
|
||||||
|
+ int fd, ret, is_cloned = 0;
|
||||||
|
+
|
||||||
|
+ fd = open("/proc/self/exe", O_RDONLY|O_CLOEXEC);
|
||||||
|
+ if (fd < 0)
|
||||||
|
+ return -ENOTRECOVERABLE;
|
||||||
|
+
|
||||||
|
+#ifdef HAVE_MEMFD_CREATE
|
||||||
|
+ ret = fcntl(fd, F_GET_SEALS);
|
||||||
|
+ is_cloned = (ret == RUNC_MEMFD_SEALS);
|
||||||
|
+#else
|
||||||
|
+ struct stat statbuf = {0};
|
||||||
|
+ ret = fstat(fd, &statbuf);
|
||||||
|
+ if (ret >= 0)
|
||||||
|
+ is_cloned = (statbuf.st_nlink == 0);
|
||||||
|
+#endif
|
||||||
|
+ close(fd);
|
||||||
|
+ return is_cloned;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+/*
|
||||||
|
+ * Basic wrapper around mmap(2) that gives you the file length so you can
|
||||||
|
+ * safely treat it as an ordinary buffer. Only gives you read access.
|
||||||
|
+ */
|
||||||
|
+static char *read_file(char *path, size_t *length)
|
||||||
|
+{
|
||||||
|
+ int fd;
|
||||||
|
+ char buf[4096], *copy = NULL;
|
||||||
|
+
|
||||||
|
+ if (!length)
|
||||||
|
+ return NULL;
|
||||||
|
+
|
||||||
|
+ fd = open(path, O_RDONLY | O_CLOEXEC);
|
||||||
|
+ if (fd < 0)
|
||||||
|
+ return NULL;
|
||||||
|
+
|
||||||
|
+ *length = 0;
|
||||||
|
+ for (;;) {
|
||||||
|
+ int n;
|
||||||
|
+
|
||||||
|
+ n = read(fd, buf, sizeof(buf));
|
||||||
|
+ if (n < 0)
|
||||||
|
+ goto error;
|
||||||
|
+ if (!n)
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
+ copy = must_realloc(copy, (*length + n) * sizeof(*copy));
|
||||||
|
+ memcpy(copy + *length, buf, n);
|
||||||
|
+ *length += n;
|
||||||
|
+ }
|
||||||
|
+ close(fd);
|
||||||
|
+ return copy;
|
||||||
|
+
|
||||||
|
+error:
|
||||||
|
+ close(fd);
|
||||||
|
+ free(copy);
|
||||||
|
+ return NULL;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+/*
|
||||||
|
+ * A poor-man's version of "xargs -0". Basically parses a given block of
|
||||||
|
+ * NUL-delimited data, within the given length and adds a pointer to each entry
|
||||||
|
+ * to the array of pointers.
|
||||||
|
+ */
|
||||||
|
+static int parse_xargs(char *data, int data_length, char ***output)
|
||||||
|
+{
|
||||||
|
+ int num = 0;
|
||||||
|
+ char *cur = data;
|
||||||
|
+
|
||||||
|
+ if (!data || *output != NULL)
|
||||||
|
+ return -1;
|
||||||
|
+
|
||||||
|
+ while (cur < data + data_length) {
|
||||||
|
+ num++;
|
||||||
|
+ *output = must_realloc(*output, (num + 1) * sizeof(**output));
|
||||||
|
+ (*output)[num - 1] = cur;
|
||||||
|
+ cur += strlen(cur) + 1;
|
||||||
|
+ }
|
||||||
|
+ (*output)[num] = NULL;
|
||||||
|
+ return num;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+/*
|
||||||
|
+ * "Parse" out argv and envp from /proc/self/cmdline and /proc/self/environ.
|
||||||
|
+ * This is necessary because we are running in a context where we don't have a
|
||||||
|
+ * main() that we can just get the arguments from.
|
||||||
|
+ */
|
||||||
|
+static int fetchve(char ***argv, char ***envp)
|
||||||
|
+{
|
||||||
|
+ char *cmdline = NULL, *environ = NULL;
|
||||||
|
+ size_t cmdline_size, environ_size;
|
||||||
|
+
|
||||||
|
+ cmdline = read_file("/proc/self/cmdline", &cmdline_size);
|
||||||
|
+ if (!cmdline)
|
||||||
|
+ goto error;
|
||||||
|
+ environ = read_file("/proc/self/environ", &environ_size);
|
||||||
|
+ if (!environ)
|
||||||
|
+ goto error;
|
||||||
|
+
|
||||||
|
+ if (parse_xargs(cmdline, cmdline_size, argv) <= 0)
|
||||||
|
+ goto error;
|
||||||
|
+ if (parse_xargs(environ, environ_size, envp) <= 0)
|
||||||
|
+ goto error;
|
||||||
|
+
|
||||||
|
+ return 0;
|
||||||
|
+
|
||||||
|
+error:
|
||||||
|
+ free(environ);
|
||||||
|
+ free(cmdline);
|
||||||
|
+ return -EINVAL;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static int clone_binary(void)
|
||||||
|
+{
|
||||||
|
+ int binfd, memfd;
|
||||||
|
+ ssize_t sent = 0;
|
||||||
|
+
|
||||||
|
+#ifdef HAVE_MEMFD_CREATE
|
||||||
|
+ memfd = memfd_create(RUNC_MEMFD_COMMENT, MFD_CLOEXEC | MFD_ALLOW_SEALING);
|
||||||
|
+#else
|
||||||
|
+ memfd = open("/tmp", O_TMPFILE | O_EXCL | O_RDWR | O_CLOEXEC, 0711);
|
||||||
|
+#endif
|
||||||
|
+ if (memfd < 0)
|
||||||
|
+ return -ENOTRECOVERABLE;
|
||||||
|
+
|
||||||
|
+ binfd = open("/proc/self/exe", O_RDONLY | O_CLOEXEC);
|
||||||
|
+ if (binfd < 0)
|
||||||
|
+ goto error;
|
||||||
|
+
|
||||||
|
+ sent = sendfile(memfd, binfd, NULL, RUNC_SENDFILE_MAX);
|
||||||
|
+ close(binfd);
|
||||||
|
+ if (sent < 0)
|
||||||
|
+ goto error;
|
||||||
|
+
|
||||||
|
+#ifdef HAVE_MEMFD_CREATE
|
||||||
|
+ int err = fcntl(memfd, F_ADD_SEALS, RUNC_MEMFD_SEALS);
|
||||||
|
+ if (err < 0)
|
||||||
|
+ goto error;
|
||||||
|
+#else
|
||||||
|
+ /* Need to re-open "memfd" as read-only to avoid execve(2) giving -EXTBUSY. */
|
||||||
|
+ int newfd;
|
||||||
|
+ char *fdpath = NULL;
|
||||||
|
+
|
||||||
|
+ if (asprintf(&fdpath, "/proc/self/fd/%d", memfd) < 0)
|
||||||
|
+ goto error;
|
||||||
|
+ newfd = open(fdpath, O_RDONLY | O_CLOEXEC);
|
||||||
|
+ free(fdpath);
|
||||||
|
+ if (newfd < 0)
|
||||||
|
+ goto error;
|
||||||
|
+
|
||||||
|
+ close(memfd);
|
||||||
|
+ memfd = newfd;
|
||||||
|
+#endif
|
||||||
|
+ return memfd;
|
||||||
|
+
|
||||||
|
+error:
|
||||||
|
+ close(memfd);
|
||||||
|
+ return -EIO;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+int ensure_cloned_binary(void)
|
||||||
|
+{
|
||||||
|
+ int execfd;
|
||||||
|
+ char **argv = NULL, **envp = NULL;
|
||||||
|
+
|
||||||
|
+ /* Check that we're not self-cloned, and if we are then bail. */
|
||||||
|
+ int cloned = is_self_cloned();
|
||||||
|
+ if (cloned > 0 || cloned == -ENOTRECOVERABLE)
|
||||||
|
+ return cloned;
|
||||||
|
+
|
||||||
|
+ if (fetchve(&argv, &envp) < 0)
|
||||||
|
+ return -EINVAL;
|
||||||
|
+
|
||||||
|
+ execfd = clone_binary();
|
||||||
|
+ if (execfd < 0)
|
||||||
|
+ return -EIO;
|
||||||
|
+
|
||||||
|
+ fexecve(execfd, argv, envp);
|
||||||
|
+ return -ENOEXEC;
|
||||||
|
+}
|
||||||
|
diff --git a/libcontainer/nsenter/nsexec.c b/libcontainer/nsenter/nsexec.c
|
||||||
|
index 28269dfc0..7750af35e 100644
|
||||||
|
--- a/libcontainer/nsenter/nsexec.c
|
||||||
|
+++ b/libcontainer/nsenter/nsexec.c
|
||||||
|
@@ -534,6 +534,9 @@ void join_namespaces(char *nslist)
|
||||||
|
free(namespaces);
|
||||||
|
}
|
||||||
|
|
||||||
|
+/* Defined in cloned_binary.c. */
|
||||||
|
+extern int ensure_cloned_binary(void);
|
||||||
|
+
|
||||||
|
void nsexec(void)
|
||||||
|
{
|
||||||
|
int pipenum;
|
||||||
|
@@ -549,6 +552,14 @@ void nsexec(void)
|
||||||
|
if (pipenum == -1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
+ /*
|
||||||
|
+ * We need to re-exec if we are not in a cloned binary. This is necessary
|
||||||
|
+ * to ensure that containers won't be able to access the host binary
|
||||||
|
+ * through /proc/self/exe. See CVE-2019-5736.
|
||||||
|
+ */
|
||||||
|
+ if (ensure_cloned_binary() < 0)
|
||||||
|
+ bail("could not ensure we are a cloned binary");
|
||||||
|
+
|
||||||
|
/* Parse all of the netlink configuration. */
|
||||||
|
nl_parse(pipenum, &config);
|
||||||
|
|
@ -1,61 +0,0 @@
|
|||||||
# Copyright 1999-2018 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=6
|
|
||||||
EGO_PN="github.com/opencontainers/${PN}"
|
|
||||||
|
|
||||||
if [[ ${PV} == *9999 ]]; then
|
|
||||||
inherit golang-build golang-vcs
|
|
||||||
else
|
|
||||||
MY_PV="${PV/_/-}"
|
|
||||||
RUNC_COMMIT="ccb5efd37fb7c86364786e9137e22948751de7ed" # Change this when you update the ebuild
|
|
||||||
SRC_URI="https://${EGO_PN}/archive/${RUNC_COMMIT}.tar.gz -> ${P}.tar.gz"
|
|
||||||
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64"
|
|
||||||
inherit golang-build golang-vcs-snapshot
|
|
||||||
fi
|
|
||||||
|
|
||||||
DESCRIPTION="runc container cli tools"
|
|
||||||
HOMEPAGE="http://runc.io"
|
|
||||||
|
|
||||||
LICENSE="Apache-2.0"
|
|
||||||
SLOT="0"
|
|
||||||
IUSE="+ambient apparmor hardened +kmem +seccomp"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
apparmor? ( sys-libs/libapparmor )
|
|
||||||
seccomp? ( sys-libs/libseccomp )
|
|
||||||
!app-emulation/docker-runc
|
|
||||||
"
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
default
|
|
||||||
sed -i -e "/^GIT_BRANCH/d"\
|
|
||||||
-e "/^GIT_BRANCH_CLEAN/d"\
|
|
||||||
-e "/^COMMIT_NO/d"\
|
|
||||||
-e "s/COMMIT :=.*/COMMIT := ${RUNC_COMMIT}/"\
|
|
||||||
src/${EGO_PN}/Makefile || die
|
|
||||||
}
|
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
# Taken from app-emulation/docker-1.7.0-r1
|
|
||||||
export CGO_CFLAGS="-I${ROOT}/usr/include"
|
|
||||||
export CGO_LDFLAGS="$(usex hardened '-fno-PIC ' '')
|
|
||||||
-L${ROOT}/usr/$(get_libdir)"
|
|
||||||
|
|
||||||
# build up optional flags
|
|
||||||
local options=(
|
|
||||||
$(usex ambient 'ambient' '')
|
|
||||||
$(usex apparmor 'apparmor' '')
|
|
||||||
$(usex seccomp 'seccomp' '')
|
|
||||||
$(usex kmem '' 'nokmem')
|
|
||||||
)
|
|
||||||
|
|
||||||
GOPATH="${S}" emake BUILDTAGS="${options[*]}" -C src/${EGO_PN}
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
pushd src/${EGO_PN} || die
|
|
||||||
dobin runc
|
|
||||||
dodoc README.md PRINCIPLES.md
|
|
||||||
popd || die
|
|
||||||
}
|
|
@ -0,0 +1,18 @@
|
|||||||
|
# Copyright 1999-2019 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=7
|
||||||
|
|
||||||
|
DESCRIPTION="VirtIO drivers for Windows virtual machines running on KVM"
|
||||||
|
HOMEPAGE="https://fedoraproject.org/wiki/Windows_Virtio_Drivers"
|
||||||
|
SRC_URI="https://fedorapeople.org/groups/virt/${PN}/direct-downloads/archive-virtio/${PN}-${PV}-1/${PN}-${PV}.iso"
|
||||||
|
|
||||||
|
LICENSE="GPL-2"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64"
|
||||||
|
S=${WORKDIR}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
insinto /usr/share/drivers/windows
|
||||||
|
doins "${DISTDIR}/${PN}-${PV}.iso"
|
||||||
|
}
|
Binary file not shown.
@ -1,2 +1,3 @@
|
|||||||
DIST ibus-rime-1.2.tar.gz 33396 BLAKE2B 39930ea31d40e622cd69d6f5a218729f460161dd9681e49bc35a1eb9b3875b6f5acbdaf36f7cf8200440bc27ed84a2f23ec1578b19a1fe6abbbc54c7078be11c SHA512 e1851781a6d069a79d04890b5b0aa2a706e611c08df3fcb99f883eeedd4dc4eefcac207f35b5cf1d856a41f0153ec3fbb040b4e6f610727384baa19b52a64155
|
DIST ibus-rime-1.2.tar.gz 33396 BLAKE2B 39930ea31d40e622cd69d6f5a218729f460161dd9681e49bc35a1eb9b3875b6f5acbdaf36f7cf8200440bc27ed84a2f23ec1578b19a1fe6abbbc54c7078be11c SHA512 e1851781a6d069a79d04890b5b0aa2a706e611c08df3fcb99f883eeedd4dc4eefcac207f35b5cf1d856a41f0153ec3fbb040b4e6f610727384baa19b52a64155
|
||||||
DIST ibus-rime-1.3.0.tar.gz 33930 BLAKE2B 14e086382d89c990ca9f07401b68dbe26d58da061a3e8154232809ff29d766b630dcd06723bb0a8e18ebd089a640b7ab6787f8c70a6405dfa82472c1abfe5d4e SHA512 f0991184805bfe19931e297779179661f98bdfea952e310b2d8618550002cfa5bb08df05d1c5e31b535ad9959a919fdc98fa771a90d4d82b9c50e2f592cb7dfd
|
DIST ibus-rime-1.3.0.tar.gz 33930 BLAKE2B 14e086382d89c990ca9f07401b68dbe26d58da061a3e8154232809ff29d766b630dcd06723bb0a8e18ebd089a640b7ab6787f8c70a6405dfa82472c1abfe5d4e SHA512 f0991184805bfe19931e297779179661f98bdfea952e310b2d8618550002cfa5bb08df05d1c5e31b535ad9959a919fdc98fa771a90d4d82b9c50e2f592cb7dfd
|
||||||
|
DIST ibus-rime-1.4.0.tar.gz 34176 BLAKE2B 69d0392adc78b2b8935f2239c4567d001d3636d0e8ff59aca0b04b3189751a3edd0350eea9e2262b3ae3e639dbd9715c157e44727cc48ba9521801161a1508f4 SHA512 3fc24f4ce390e27d37e41775e4c075c7465cd3e90a9ab61d13ec47c2ca1c2afaafb322f327e18be573aa254a43b8cf6426415500a5d817b835bf4e0615ab9145
|
||||||
|
@ -0,0 +1,33 @@
|
|||||||
|
# Copyright 1999-2019 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=7
|
||||||
|
|
||||||
|
DESCRIPTION="Chinese Rime Input Method Engine for IBus"
|
||||||
|
HOMEPAGE="https://rime.im/ https://github.com/rime/ibus-rime"
|
||||||
|
SRC_URI="https://github.com/rime/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||||
|
|
||||||
|
LICENSE="GPL-3"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64 ~x86"
|
||||||
|
IUSE=""
|
||||||
|
|
||||||
|
CDEPEND="app-i18n/ibus
|
||||||
|
app-i18n/librime
|
||||||
|
x11-libs/libnotify"
|
||||||
|
RDEPEND="${CDEPEND}
|
||||||
|
app-i18n/rime-data"
|
||||||
|
DEPEND="${CDEPEND}
|
||||||
|
dev-util/cmake
|
||||||
|
virtual/pkgconfig"
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
sed -i \
|
||||||
|
-e "/^libexecdir/s:/lib:/libexec:" \
|
||||||
|
-e "/^[[:space:]]*PREFIX/s:/usr:${EPREFIX}/usr:" \
|
||||||
|
-e "s/ make/ \$(MAKE)/" \
|
||||||
|
Makefile
|
||||||
|
sed -i "/exec>/s:/usr/lib:${EPREFIX}/usr/libexec:" rime.xml
|
||||||
|
|
||||||
|
default
|
||||||
|
}
|
@ -1,2 +1,3 @@
|
|||||||
DIST librime-1.2.9.tar.gz 5516609 BLAKE2B 7b05fedb093f7595c7bf7f4893624b35b0cdde1816c9c99f9ed5d408c8fd21d34a361d16b94c43b3e5e23b10945f075711762f08ca30abee35849a332ecfee2d SHA512 2266ef96ad21ec5981b4ca5371d4e16eefed545ffbde07093ae0d0be070a64f9869baa09b6bdcee2522438e08c72a842a7e0b225a6ca1b661708a80cf3aba83a
|
DIST librime-1.2.9.tar.gz 5516609 BLAKE2B 7b05fedb093f7595c7bf7f4893624b35b0cdde1816c9c99f9ed5d408c8fd21d34a361d16b94c43b3e5e23b10945f075711762f08ca30abee35849a332ecfee2d SHA512 2266ef96ad21ec5981b4ca5371d4e16eefed545ffbde07093ae0d0be070a64f9869baa09b6bdcee2522438e08c72a842a7e0b225a6ca1b661708a80cf3aba83a
|
||||||
DIST librime-1.3.1.tar.gz 8598357 BLAKE2B cd6bc6b63a89f7f11e78ceaf92007c099be34ce38f26d611b67a3d8f868a27a0e4de7b94da44d8483618f37a0c2bcfd3a1bc1c1ecb4f81829f8e12fdd777e283 SHA512 b35d3635fd776ed9be32c0998e4aac441433bc9e624765a57582690108cccf5c3beaedad4f8f1682d99533384cd10996ee8c18fd5adcea70878d6a410124922e
|
DIST librime-1.3.1.tar.gz 8598357 BLAKE2B cd6bc6b63a89f7f11e78ceaf92007c099be34ce38f26d611b67a3d8f868a27a0e4de7b94da44d8483618f37a0c2bcfd3a1bc1c1ecb4f81829f8e12fdd777e283 SHA512 b35d3635fd776ed9be32c0998e4aac441433bc9e624765a57582690108cccf5c3beaedad4f8f1682d99533384cd10996ee8c18fd5adcea70878d6a410124922e
|
||||||
|
DIST librime-1.4.0.tar.gz 8609316 BLAKE2B cce58c398057ac82f076e3b9e9a25cd6410e738460bd58277a9e3ed6cd11e80922bbb30e8b42828cdd5dd83f6058794b4b32fedb359315186b018ca88161794d SHA512 da68983638c6f25d994060a607f2ccab8917a71dbf10b9c6f1140c87c9ef4124e29a1d0ef16bbd0edc9a3a22bd5845aa894888d678607db372750f300638f562
|
||||||
|
@ -0,0 +1,37 @@
|
|||||||
|
# Copyright 1999-2019 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=6
|
||||||
|
|
||||||
|
inherit cmake-utils vcs-snapshot
|
||||||
|
|
||||||
|
DESCRIPTION="Rime Input Method Engine, the core library"
|
||||||
|
HOMEPAGE="https://rime.im/ https://github.com/rime/librime"
|
||||||
|
SRC_URI="https://github.com/rime/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||||
|
|
||||||
|
LICENSE="GPL-3"
|
||||||
|
SLOT="0/1"
|
||||||
|
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
|
||||||
|
IUSE="static-libs test"
|
||||||
|
|
||||||
|
RDEPEND="app-i18n/opencc:=
|
||||||
|
dev-cpp/glog:=
|
||||||
|
dev-cpp/yaml-cpp:=
|
||||||
|
dev-libs/boost:=[threads]
|
||||||
|
dev-libs/leveldb:=
|
||||||
|
dev-libs/marisa:="
|
||||||
|
DEPEND="${RDEPEND}
|
||||||
|
x11-base/xorg-proto
|
||||||
|
test? ( dev-cpp/gtest )"
|
||||||
|
|
||||||
|
DOCS=( {CHANGELOG,README}.md )
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
local mycmakeargs=(
|
||||||
|
-DBUILD_STATIC=$(usex static-libs)
|
||||||
|
-DBUILD_TEST=$(usex test)
|
||||||
|
-DBOOST_USE_CXX11=ON
|
||||||
|
-DLIB_INSTALL_DIR="${EPREFIX}"/usr/$(get_libdir)
|
||||||
|
)
|
||||||
|
cmake-utils_src_configure
|
||||||
|
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,2 +1,3 @@
|
|||||||
DIST fish-2.7.1.tar.gz 5760550 BLAKE2B 71568a3a17f4222b05a314464a61fceb241409a7d42c46249486ca742ef0cf990c46d693bcc22521c18f58a558e6aab35759d0da6eb62ee6611a2a7946fe714d SHA512 45ee3453404c5d6c56d307b4cd19197de862f9f42d7fa06461acec56dea7146db5675cf6419dd5f72e939b3e4b1955d3761098df1de89a8cebe47645eb6f7a4b
|
DIST fish-2.7.1.tar.gz 5760550 BLAKE2B 71568a3a17f4222b05a314464a61fceb241409a7d42c46249486ca742ef0cf990c46d693bcc22521c18f58a558e6aab35759d0da6eb62ee6611a2a7946fe714d SHA512 45ee3453404c5d6c56d307b4cd19197de862f9f42d7fa06461acec56dea7146db5675cf6419dd5f72e939b3e4b1955d3761098df1de89a8cebe47645eb6f7a4b
|
||||||
DIST fish-3.0.0.tar.gz 6472393 BLAKE2B 9a8226ca4dce40a7bbc62ad5791c5238d1257cebea296cd97a195438d771d7394acb012be6af118bf355a9b6e391ddee1061d83298356f664e0d5dbe3d859012 SHA512 e4159821d4263e5afb67adee82e30cfed0ad30f3772dd95beb0df71423ff52c21354970f64967f2de9fd1d31caa702208cfd9f2ce281bbf33114f3aa7cd539a2
|
DIST fish-3.0.0.tar.gz 6472393 BLAKE2B 9a8226ca4dce40a7bbc62ad5791c5238d1257cebea296cd97a195438d771d7394acb012be6af118bf355a9b6e391ddee1061d83298356f664e0d5dbe3d859012 SHA512 e4159821d4263e5afb67adee82e30cfed0ad30f3772dd95beb0df71423ff52c21354970f64967f2de9fd1d31caa702208cfd9f2ce281bbf33114f3aa7cd539a2
|
||||||
|
DIST fish-3.0.1.tar.gz 6477550 BLAKE2B 31862bee18cc6db9b624850c87816ecc7d2a50671522ecafa887973ff2b9cb890d4880a567570025957064f0c68c4846810373efc03a4c6d616840b553ece625 SHA512 0bbf02d6be658f81e8dbb3a23066878087e1dc9f3abae43ff1c493e1b9d4394944e8fe7d176a3384f290ebd1e0c5325fd78eb7a654bab6b4f21687b24df40ca7
|
||||||
|
@ -0,0 +1,75 @@
|
|||||||
|
# Copyright 1999-2019 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=7
|
||||||
|
|
||||||
|
inherit cmake-utils readme.gentoo-r1
|
||||||
|
|
||||||
|
DESCRIPTION="Friendly Interactive SHell"
|
||||||
|
HOMEPAGE="http://fishshell.com/"
|
||||||
|
|
||||||
|
MY_PV="${PV/_beta/b}"
|
||||||
|
MY_P="${PN}-${MY_PV}"
|
||||||
|
|
||||||
|
if [[ ${PV} == "9999" ]]; then
|
||||||
|
inherit git-r3
|
||||||
|
EGIT_REPO_URI="https://github.com/${PN}-shell/${PN}-shell.git"
|
||||||
|
else
|
||||||
|
SRC_URI="https://github.com/${PN}-shell/${PN}-shell/releases/download/${MY_PV}/${MY_P}.tar.gz"
|
||||||
|
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x86-solaris"
|
||||||
|
fi
|
||||||
|
|
||||||
|
LICENSE="GPL-2"
|
||||||
|
SLOT="0"
|
||||||
|
|
||||||
|
IUSE="doc nls test"
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
>=dev-libs/libpcre2-10.21[pcre32]
|
||||||
|
sys-devel/bc
|
||||||
|
sys-libs/ncurses:0=[unicode]
|
||||||
|
"
|
||||||
|
|
||||||
|
DEPEND="${RDEPEND}
|
||||||
|
doc? ( app-doc/doxygen )
|
||||||
|
nls? ( sys-devel/gettext )
|
||||||
|
test? ( dev-tcltk/expect )
|
||||||
|
"
|
||||||
|
|
||||||
|
PATCHES=( "${FILESDIR}/fix-histfile-test-on-ppc.patch" )
|
||||||
|
|
||||||
|
S="${WORKDIR}/${MY_P}"
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
# workaround for https://github.com/fish-shell/fish-shell/issues/4883
|
||||||
|
sed -i 's#${TEST_INSTALL_DIR}/${CMAKE_INSTALL_PREFIX}#${TEST_INSTALL_DIR}#' \
|
||||||
|
cmake/Tests.cmake || die
|
||||||
|
cmake-utils_src_prepare
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
local mycmakeargs=(
|
||||||
|
-DCMAKE_INSTALL_BINDIR="${EPREFIX}/bin"
|
||||||
|
-DCMAKE_INSTALL_DOCDIR="share/doc/${PF}"
|
||||||
|
-DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
|
||||||
|
-DCURSES_NEED_NCURSES=ON
|
||||||
|
-DINTERNAL_WCWIDTH=OFF
|
||||||
|
-DBUILD_DOCS="$(usex doc)"
|
||||||
|
-DWITH_GETTEXT="$(usex nls)"
|
||||||
|
)
|
||||||
|
cmake-utils_src_configure
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
cmake-utils_src_install
|
||||||
|
keepdir /usr/share/fish/vendor_{completions,conf,functions}.d
|
||||||
|
readme.gentoo_create_doc
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
cmake-utils_src_make -j1 test
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
readme.gentoo_print_elog
|
||||||
|
}
|
Binary file not shown.
@ -1 +1 @@
|
|||||||
DIST blogc-0.14.1.tar.xz 330540 BLAKE2B e8b2f793a1c7f95fde59d7929245cdace95d31f484d62252d00c4fa535c9d4b9d83c6d1828e9197f0fab74473e5a549802ca26aefe2dd441bad03b4f3466c1b4 SHA512 2d393684e8ddb38d720f029c7fe7884a577dc844f8e774a21afedd7519b9aa32a84d2b0e40c7bc565feba5a8e13f83c61692f0d04f20fea44e96f3f66d613a5a
|
DIST blogc-0.15.0.tar.xz 335996 BLAKE2B c7fff528180c2124ea5c26ddd413f252d00570bcfe35645b8cdc8c7b3e289b52b38bd895e2ae5c2cab88d2a8143fa637118d75c719d69f685cef4c182bd9d6e3 SHA512 57a685938ef644b22b9271a0462260acb8ab8f9e9ff842415069011bb480923b8a4871742640eecc0babc7c65eefec3cab9051170dc6c3e69899e77d366a01c6
|
||||||
|
Binary file not shown.
@ -1,65 +0,0 @@
|
|||||||
--- a/ext/openssl/openssl.c 2018-04-04 14:26:34.583000000 +0000
|
|
||||||
+++ b/ext/openssl/openssl.c 2018-04-04 14:20:16.907000000 +0000
|
|
||||||
@@ -73,7 +73,7 @@
|
|
||||||
#ifdef HAVE_OPENSSL_MD2_H
|
|
||||||
#define OPENSSL_ALGO_MD2 4
|
|
||||||
#endif
|
|
||||||
-#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
|
|
||||||
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined (LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
|
|
||||||
#define OPENSSL_ALGO_DSS1 5
|
|
||||||
#endif
|
|
||||||
#define OPENSSL_ALGO_SHA224 6
|
|
||||||
@@ -560,7 +560,7 @@
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* {{{ OpenSSL compatibility functions and macros */
|
|
||||||
-#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
|
|
||||||
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined (LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
|
|
||||||
#define EVP_PKEY_get0_RSA(_pkey) _pkey->pkey.rsa
|
|
||||||
#define EVP_PKEY_get0_DH(_pkey) _pkey->pkey.dh
|
|
||||||
#define EVP_PKEY_get0_DSA(_pkey) _pkey->pkey.dsa
|
|
||||||
@@ -677,7 +677,7 @@
|
|
||||||
return M_ASN1_STRING_data(asn1);
|
|
||||||
}
|
|
||||||
|
|
||||||
-#if OPENSSL_VERSION_NUMBER < 0x10002000L || defined (LIBRESSL_VERSION_NUMBER)
|
|
||||||
+#if OPENSSL_VERSION_NUMBER < 0x10002000L || (defined (LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
|
|
||||||
|
|
||||||
static int X509_get_signature_nid(const X509 *x)
|
|
||||||
{
|
|
||||||
@@ -1324,7 +1324,7 @@
|
|
||||||
mdtype = (EVP_MD *) EVP_md2();
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
-#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
|
|
||||||
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined (LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
|
|
||||||
case OPENSSL_ALGO_DSS1:
|
|
||||||
mdtype = (EVP_MD *) EVP_dss1();
|
|
||||||
break;
|
|
||||||
@@ -1450,7 +1450,7 @@
|
|
||||||
#ifdef HAVE_OPENSSL_MD2_H
|
|
||||||
REGISTER_LONG_CONSTANT("OPENSSL_ALGO_MD2", OPENSSL_ALGO_MD2, CONST_CS|CONST_PERSISTENT);
|
|
||||||
#endif
|
|
||||||
-#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
|
|
||||||
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined (LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
|
|
||||||
REGISTER_LONG_CONSTANT("OPENSSL_ALGO_DSS1", OPENSSL_ALGO_DSS1, CONST_CS|CONST_PERSISTENT);
|
|
||||||
#endif
|
|
||||||
REGISTER_LONG_CONSTANT("OPENSSL_ALGO_SHA224", OPENSSL_ALGO_SHA224, CONST_CS|CONST_PERSISTENT);
|
|
||||||
@@ -3620,7 +3620,7 @@
|
|
||||||
RETURN_FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
|
|
||||||
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !(defined (LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
|
|
||||||
/* Due to changes in OpenSSL 1.1 related to locking when decoding CSR,
|
|
||||||
* the pub key is not changed after assigning. It means if we pass
|
|
||||||
* a private key, it will be returned including the private part.
|
|
||||||
@@ -3631,7 +3631,7 @@
|
|
||||||
/* Retrieve the public key from the CSR */
|
|
||||||
tpubkey = X509_REQ_get_pubkey(csr);
|
|
||||||
|
|
||||||
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
|
|
||||||
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !(defined (LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
|
|
||||||
/* We need to free the CSR as it was duplicated */
|
|
||||||
X509_REQ_free(csr);
|
|
||||||
#endif
|
|
@ -1,30 +0,0 @@
|
|||||||
From 4072b2787074ee8e247a6639585b49e10c5a55fe Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Christoph M. Becker" <cmbecker69@gmx.de>
|
|
||||||
Date: Tue, 20 Mar 2018 16:35:39 +0100
|
|
||||||
Subject: [PATCH] Fix #76113: mbstring does not build with Oniguruma 6.8.1
|
|
||||||
|
|
||||||
As of Oniguruma 6.8.1, the regex structure has been moved from the
|
|
||||||
public `oniguruma.h` to the private `regint.h`. Thus, it is no longer
|
|
||||||
possible to directly access the struct's members, and actually, there
|
|
||||||
is no need to, since there are respective accessor functions available
|
|
||||||
at least of 2.3.1.
|
|
||||||
---
|
|
||||||
ext/mbstring/php_mbregex.c | 2 +-
|
|
||||||
1 file changed, 1 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/ext/mbstring/php_mbregex.c b/ext/mbstring/php_mbregex.c
|
|
||||||
index a5a6cd0..7a70c63 100644
|
|
||||||
--- a/ext/mbstring/php_mbregex.c
|
|
||||||
+++ b/ext/mbstring/php_mbregex.c
|
|
||||||
@@ -452,7 +452,7 @@ static php_mb_regex_t *php_mbregex_compile_pattern(const char *pattern, int patl
|
|
||||||
OnigUChar err_str[ONIG_MAX_ERROR_MESSAGE_LEN];
|
|
||||||
|
|
||||||
rc = zend_hash_str_find_ptr(&MBREX(ht_rc), (char *)pattern, patlen);
|
|
||||||
- if (!rc || rc->options != options || rc->enc != enc || rc->syntax != syntax) {
|
|
||||||
+ if (!rc || onig_get_options(rc) != options || onig_get_encoding(rc) != enc || onig_get_syntax(rc) != syntax) {
|
|
||||||
if ((err_code = onig_new(&retval, (OnigUChar *)pattern, (OnigUChar *)(pattern + patlen), options, enc, syntax, &err_info)) != ONIG_NORMAL) {
|
|
||||||
onig_error_code_to_str(err_str, err_code, &err_info);
|
|
||||||
php_error_docref(NULL, E_WARNING, "mbregex compile err: %s", err_str);
|
|
||||||
--
|
|
||||||
2.1.4
|
|
||||||
|
|
@ -1,159 +0,0 @@
|
|||||||
Based on the following upstream commits:
|
|
||||||
|
|
||||||
https://github.com/php/php-src/commit/9a8e7b571896f39f83cb000fdb7c466b6d328d52
|
|
||||||
https://github.com/php/php-src/pull/3701
|
|
||||||
https://github.com/php/php-src/commit/2bd299f7318492fd7e5cafffa562d76ba60e69d4
|
|
||||||
|
|
||||||
--- a/acinclude.m4
|
|
||||||
+++ b/acinclude.m4
|
|
||||||
@@ -2205,49 +2205,16 @@ dnl
|
|
||||||
dnl Common setup macro for ICU
|
|
||||||
dnl
|
|
||||||
AC_DEFUN([PHP_SETUP_ICU],[
|
|
||||||
- PHP_ARG_WITH(icu-dir,,
|
|
||||||
- [ --with-icu-dir=DIR Specify where ICU libraries and headers can be found], DEFAULT, no)
|
|
||||||
+ PKG_CHECK_MODULES([ICU], [icu-io >= 50.1])
|
|
||||||
|
|
||||||
- if test "$PHP_ICU_DIR" = "no"; then
|
|
||||||
- PHP_ICU_DIR=DEFAULT
|
|
||||||
- fi
|
|
||||||
-
|
|
||||||
- if test "$PHP_ICU_DIR" = "DEFAULT"; then
|
|
||||||
- dnl Try to find icu-config
|
|
||||||
- AC_PATH_PROG(ICU_CONFIG, icu-config, no, [$PATH:/usr/local/bin])
|
|
||||||
- else
|
|
||||||
- ICU_CONFIG="$PHP_ICU_DIR/bin/icu-config"
|
|
||||||
- fi
|
|
||||||
-
|
|
||||||
- AC_MSG_CHECKING([for location of ICU headers and libraries])
|
|
||||||
-
|
|
||||||
- dnl Trust icu-config to know better what the install prefix is..
|
|
||||||
- icu_install_prefix=`$ICU_CONFIG --prefix 2> /dev/null`
|
|
||||||
- if test "$?" != "0" || test -z "$icu_install_prefix"; then
|
|
||||||
- AC_MSG_RESULT([not found])
|
|
||||||
- AC_MSG_ERROR([Unable to detect ICU prefix or $ICU_CONFIG failed. Please verify ICU install prefix and make sure icu-config works.])
|
|
||||||
- else
|
|
||||||
- AC_MSG_RESULT([$icu_install_prefix])
|
|
||||||
-
|
|
||||||
- dnl Check ICU version
|
|
||||||
- AC_MSG_CHECKING([for ICU 4.0 or greater])
|
|
||||||
- icu_version_full=`$ICU_CONFIG --version`
|
|
||||||
- ac_IFS=$IFS
|
|
||||||
- IFS="."
|
|
||||||
- set $icu_version_full
|
|
||||||
- IFS=$ac_IFS
|
|
||||||
- icu_version=`expr [$]1 \* 1000 + [$]2`
|
|
||||||
- AC_MSG_RESULT([found $icu_version_full])
|
|
||||||
+ PHP_EVAL_INCLINE($ICU_CFLAGS)
|
|
||||||
+ PHP_EVAL_LIBLINE($ICU_LIBS, $1)
|
|
||||||
|
|
||||||
- if test "$icu_version" -lt "4000"; then
|
|
||||||
- AC_MSG_ERROR([ICU version 4.0 or later is required])
|
|
||||||
- fi
|
|
||||||
+ ICU_CFLAGS="$ICU_CFLAGS -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1"
|
|
||||||
+ ICU_CXXFLAGS="$ICU_CXXFLAGS -DUNISTR_FROM_CHAR_EXPLICIT=explicit -DUNISTR_FROM_STRING_EXPLICIT=explicit"
|
|
||||||
|
|
||||||
- ICU_VERSION=$icu_version
|
|
||||||
- ICU_INCS=`$ICU_CONFIG --cppflags-searchpath`
|
|
||||||
- ICU_LIBS=`$ICU_CONFIG --ldflags --ldflags-icuio`
|
|
||||||
- PHP_EVAL_INCLINE($ICU_INCS)
|
|
||||||
- PHP_EVAL_LIBLINE($ICU_LIBS, $1)
|
|
||||||
+ if test "$PKG_CONFIG icu-io --atleast-version=60"; then
|
|
||||||
+ ICU_CFLAGS="$ICU_CFLAGS -DU_HIDE_OBSOLETE_UTF_OLD_H=1"
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
--- a/ext/intl/config.m4
|
|
||||||
+++ b/ext/intl/config.m4
|
|
||||||
@@ -9,18 +9,10 @@ if test "$PHP_INTL" != "no"; then
|
|
||||||
PHP_SETUP_ICU(INTL_SHARED_LIBADD)
|
|
||||||
PHP_SUBST(INTL_SHARED_LIBADD)
|
|
||||||
PHP_REQUIRE_CXX()
|
|
||||||
- if test "$icu_version" -ge "4002"; then
|
|
||||||
- icu_spoof_src=" spoofchecker/spoofchecker_class.c \
|
|
||||||
- spoofchecker/spoofchecker.c\
|
|
||||||
- spoofchecker/spoofchecker_create.c\
|
|
||||||
- spoofchecker/spoofchecker_main.c"
|
|
||||||
- else
|
|
||||||
- icu_spoof_src=""
|
|
||||||
- fi
|
|
||||||
+ INTL_COMMON_FLAGS="$ICU_CFLAGS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"
|
|
||||||
PHP_NEW_EXTENSION(intl, php_intl.c \
|
|
||||||
intl_error.c \
|
|
||||||
intl_convert.c \
|
|
||||||
- intl_convertcpp.cpp \
|
|
||||||
collator/collator.c \
|
|
||||||
collator/collator_class.c \
|
|
||||||
collator/collator_sort.c \
|
|
||||||
@@ -32,8 +24,6 @@ if test "$PHP_INTL" != "no"; then
|
|
||||||
collator/collator_is_numeric.c \
|
|
||||||
collator/collator_error.c \
|
|
||||||
common/common_error.c \
|
|
||||||
- common/common_enum.cpp \
|
|
||||||
- common/common_date.cpp \
|
|
||||||
converter/converter.c \
|
|
||||||
formatter/formatter.c \
|
|
||||||
formatter/formatter_main.c \
|
|
||||||
@@ -53,17 +43,12 @@ if test "$PHP_INTL" != "no"; then
|
|
||||||
dateformat/dateformat_attr.c \
|
|
||||||
dateformat/dateformat_data.c \
|
|
||||||
dateformat/dateformat_format.c \
|
|
||||||
- dateformat/dateformat_format_object.cpp \
|
|
||||||
dateformat/dateformat_parse.c \
|
|
||||||
- dateformat/dateformat_create.cpp \
|
|
||||||
- dateformat/dateformat_attrcpp.cpp \
|
|
||||||
- dateformat/dateformat_helpers.cpp \
|
|
||||||
msgformat/msgformat.c \
|
|
||||||
msgformat/msgformat_attr.c \
|
|
||||||
msgformat/msgformat_class.c \
|
|
||||||
msgformat/msgformat_data.c \
|
|
||||||
msgformat/msgformat_format.c \
|
|
||||||
- msgformat/msgformat_helpers.cpp \
|
|
||||||
msgformat/msgformat_parse.c \
|
|
||||||
grapheme/grapheme_string.c \
|
|
||||||
grapheme/grapheme_util.c \
|
|
||||||
@@ -73,6 +58,21 @@ if test "$PHP_INTL" != "no"; then
|
|
||||||
transliterator/transliterator.c \
|
|
||||||
transliterator/transliterator_class.c \
|
|
||||||
transliterator/transliterator_methods.c \
|
|
||||||
+ uchar/uchar.c \
|
|
||||||
+ idn/idn.c \
|
|
||||||
+ spoofchecker/spoofchecker_class.c \
|
|
||||||
+ spoofchecker/spoofchecker.c\
|
|
||||||
+ spoofchecker/spoofchecker_create.c\
|
|
||||||
+ spoofchecker/spoofchecker_main.c, $ext_shared,,$INTL_COMMON_FLAGS,cxx)
|
|
||||||
+
|
|
||||||
+ PHP_INTL_CPP_SOURCES="intl_convertcpp.cpp \
|
|
||||||
+ common/common_enum.cpp \
|
|
||||||
+ common/common_date.cpp \
|
|
||||||
+ dateformat/dateformat_format_object.cpp \
|
|
||||||
+ dateformat/dateformat_create.cpp \
|
|
||||||
+ dateformat/dateformat_attrcpp.cpp \
|
|
||||||
+ dateformat/dateformat_helpers.cpp \
|
|
||||||
+ msgformat/msgformat_helpers.cpp \
|
|
||||||
timezone/timezone_class.cpp \
|
|
||||||
timezone/timezone_methods.cpp \
|
|
||||||
calendar/calendar_class.cpp \
|
|
||||||
@@ -83,10 +83,15 @@ if test "$PHP_INTL" != "no"; then
|
|
||||||
breakiterator/breakiterator_methods.cpp \
|
|
||||||
breakiterator/rulebasedbreakiterator_methods.cpp \
|
|
||||||
breakiterator/codepointiterator_internal.cpp \
|
|
||||||
- breakiterator/codepointiterator_methods.cpp \
|
|
||||||
- uchar/uchar.c \
|
|
||||||
- idn/idn.c \
|
|
||||||
- $icu_spoof_src, $ext_shared,,$ICU_INCS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1,cxx)
|
|
||||||
+ breakiterator/codepointiterator_methods.cpp"
|
|
||||||
+
|
|
||||||
+ PHP_INTL_CPP_FLAGS="$ICU_CXXFLAGS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"
|
|
||||||
+ if test "$ext_shared" = "no"; then
|
|
||||||
+ PHP_ADD_SOURCES(PHP_EXT_DIR(intl), $PHP_INTL_CPP_SOURCES, $PHP_INTL_CPP_FLAGS)
|
|
||||||
+ else
|
|
||||||
+ PHP_ADD_SOURCES_X(PHP_EXT_DIR(intl), $PHP_INTL_CPP_SOURCES, $PHP_INTL_CPP_FLAGS, shared_objects_intl, yes)
|
|
||||||
+ fi
|
|
||||||
+
|
|
||||||
PHP_ADD_BUILD_DIR($ext_builddir/collator)
|
|
||||||
PHP_ADD_BUILD_DIR($ext_builddir/converter)
|
|
||||||
PHP_ADD_BUILD_DIR($ext_builddir/common)
|
|
||||||
--
|
|
||||||
2.19.2
|
|
||||||
|
|
@ -1,91 +0,0 @@
|
|||||||
Based on the following upstream commits:
|
|
||||||
|
|
||||||
https://github.com/php/php-src/commit/45a05f38410d4a67c8c83c09906e2cfb42fc6e4c
|
|
||||||
https://github.com/php/php-src/commit/534684d1042978f3c21caf9b665a7aca27f3f325
|
|
||||||
|
|
||||||
--- a/ext/intl/msgformat/msgformat_helpers.cpp
|
|
||||||
+++ b/ext/intl/msgformat/msgformat_helpers.cpp
|
|
||||||
@@ -27,6 +27,7 @@
|
|
||||||
#include <unicode/timezone.h>
|
|
||||||
#include <unicode/datefmt.h>
|
|
||||||
#include <unicode/calendar.h>
|
|
||||||
+#include <unicode/strenum.h>
|
|
||||||
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
@@ -45,6 +46,7 @@ extern "C" {
|
|
||||||
|
|
||||||
#if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 48
|
|
||||||
#define HAS_MESSAGE_PATTERN 1
|
|
||||||
+#define HAS_MISALLOCATE_MEMORY_BUG 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
U_NAMESPACE_BEGIN
|
|
||||||
@@ -345,6 +347,26 @@ static void umsg_set_timezone(MessageFormatter_object *mfo,
|
|
||||||
return; /* already done */
|
|
||||||
}
|
|
||||||
|
|
||||||
+#ifdef HAS_MISALLOCATE_MEMORY_BUG
|
|
||||||
+ /* There is a bug in ICU which prevents MessageFormatter::getFormats()
|
|
||||||
+ to handle more than 10 formats correctly. The enumerator could be
|
|
||||||
+ used to walk through the present formatters using getFormat(), which
|
|
||||||
+ however seems to provide just a readonly access. This workaround
|
|
||||||
+ prevents crash when there are > 10 formats but doesn't set any error.
|
|
||||||
+ As a result, only DateFormatters with > 10 subformats are affected.
|
|
||||||
+ This workaround should be ifdef'd out, when the bug has been fixed
|
|
||||||
+ in ICU. */
|
|
||||||
+ icu::StringEnumeration* fnames = mf->getFormatNames(err.code);
|
|
||||||
+ if (!fnames || U_FAILURE(err.code)) {
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+ count = fnames->count(err.code);
|
|
||||||
+ delete fnames;
|
|
||||||
+ if (count > 10) {
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
formats = mf->getFormats(count);
|
|
||||||
|
|
||||||
if (formats == NULL) {
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/ext/intl/tests/bug74484_MessageFormatter.phpt
|
|
||||||
@@ -0,0 +1,35 @@
|
|
||||||
+--TEST--
|
|
||||||
+Bug #74484 MessageFormatter::formatMessage memory corruption with 11+ named placeholder
|
|
||||||
+--SKIPIF--
|
|
||||||
+<?php
|
|
||||||
+if (!extension_loaded('intl'))
|
|
||||||
+ die('skip intl extension not enabled');
|
|
||||||
+if (version_compare(INTL_ICU_VERSION, '4.8') < 0)
|
|
||||||
+ die('skip for ICU 4.8+');
|
|
||||||
+?>
|
|
||||||
+--FILE--
|
|
||||||
+<?php
|
|
||||||
+$text = "{a} {b} {c} {d} {e} {f} {g} {h} {i} {j} {k} {l}";
|
|
||||||
+
|
|
||||||
+$vars = array(
|
|
||||||
+ 'a' => 1,
|
|
||||||
+ 'b' => 2,
|
|
||||||
+ 'c' => 3,
|
|
||||||
+ 'd' => 4,
|
|
||||||
+ 'e' => 5,
|
|
||||||
+ 'f' => 6,
|
|
||||||
+ 'g' => 7,
|
|
||||||
+ 'h' => 8,
|
|
||||||
+ 'i' => 9,
|
|
||||||
+ 'j' => 10,
|
|
||||||
+ 'k' => 11,
|
|
||||||
+ 'l' => 12
|
|
||||||
+);
|
|
||||||
+
|
|
||||||
+var_dump(MessageFormatter::formatMessage('en_US', $text, $vars));
|
|
||||||
+
|
|
||||||
+?>
|
|
||||||
+==DONE==
|
|
||||||
+--EXPECT--
|
|
||||||
+string(26) "1 2 3 4 5 6 7 8 9 10 11 12"
|
|
||||||
+==DONE==
|
|
||||||
--
|
|
||||||
2.19.2
|
|
||||||
|
|
@ -1,369 +0,0 @@
|
|||||||
Based on the following upstream commits:
|
|
||||||
|
|
||||||
https://github.com/php/php-src/commit/8d35a423838eb462cd39ee535c5d003073cc5f22
|
|
||||||
https://github.com/php/php-src/commit/d8200e48857aeaf09f7127751efc5632ef7660a7
|
|
||||||
https://github.com/php/php-src/commit/9a8e7b571896f39f83cb000fdb7c466b6d328d52
|
|
||||||
|
|
||||||
--- a/ext/intl/breakiterator/breakiterator_class.cpp
|
|
||||||
+++ b/ext/intl/breakiterator/breakiterator_class.cpp
|
|
||||||
@@ -38,6 +38,7 @@ extern "C" {
|
|
||||||
}
|
|
||||||
|
|
||||||
using PHP::CodePointBreakIterator;
|
|
||||||
+using icu::RuleBasedBreakIterator;
|
|
||||||
|
|
||||||
/* {{{ Global variables */
|
|
||||||
zend_class_entry *BreakIterator_ce_ptr;
|
|
||||||
--- a/ext/intl/breakiterator/breakiterator_class.h
|
|
||||||
+++ b/ext/intl/breakiterator/breakiterator_class.h
|
|
||||||
@@ -26,6 +26,8 @@
|
|
||||||
|
|
||||||
#ifndef USE_BREAKITERATOR_POINTER
|
|
||||||
typedef void BreakIterator;
|
|
||||||
+#else
|
|
||||||
+using icu::BreakIterator;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
--- a/ext/intl/breakiterator/breakiterator_methods.cpp
|
|
||||||
+++ b/ext/intl/breakiterator/breakiterator_methods.cpp
|
|
||||||
@@ -32,6 +32,8 @@ extern "C" {
|
|
||||||
}
|
|
||||||
|
|
||||||
using PHP::CodePointBreakIterator;
|
|
||||||
+using icu::BreakIterator;
|
|
||||||
+using icu::Locale;
|
|
||||||
|
|
||||||
U_CFUNC PHP_METHOD(BreakIterator, __construct)
|
|
||||||
{
|
|
||||||
--- a/ext/intl/breakiterator/codepointiterator_internal.cpp
|
|
||||||
+++ b/ext/intl/breakiterator/codepointiterator_internal.cpp
|
|
||||||
@@ -33,6 +33,8 @@ typedef union {
|
|
||||||
|
|
||||||
using namespace PHP;
|
|
||||||
|
|
||||||
+using icu::UCharCharacterIterator;
|
|
||||||
+
|
|
||||||
UOBJECT_DEFINE_RTTI_IMPLEMENTATION(CodePointBreakIterator);
|
|
||||||
|
|
||||||
CodePointBreakIterator::CodePointBreakIterator()
|
|
||||||
--- a/ext/intl/breakiterator/codepointiterator_internal.h
|
|
||||||
+++ b/ext/intl/breakiterator/codepointiterator_internal.h
|
|
||||||
@@ -18,8 +18,11 @@
|
|
||||||
#define CODEPOINTITERATOR_INTERNAL_H
|
|
||||||
|
|
||||||
#include <unicode/brkiter.h>
|
|
||||||
+#include <unicode/unistr.h>
|
|
||||||
|
|
||||||
-using U_ICU_NAMESPACE::BreakIterator;
|
|
||||||
+using icu::BreakIterator;
|
|
||||||
+using icu::CharacterIterator;
|
|
||||||
+using icu::UnicodeString;
|
|
||||||
|
|
||||||
namespace PHP {
|
|
||||||
|
|
||||||
--- a/ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp
|
|
||||||
+++ b/ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp
|
|
||||||
@@ -26,6 +26,9 @@ extern "C" {
|
|
||||||
#include "../intl_convertcpp.h"
|
|
||||||
#include "../intl_common.h"
|
|
||||||
|
|
||||||
+using icu::RuleBasedBreakIterator;
|
|
||||||
+using icu::Locale;
|
|
||||||
+
|
|
||||||
static inline RuleBasedBreakIterator *fetch_rbbi(BreakIterator_object *bio) {
|
|
||||||
return (RuleBasedBreakIterator*)bio->biter;
|
|
||||||
}
|
|
||||||
--- a/ext/intl/calendar/calendar_class.cpp
|
|
||||||
+++ b/ext/intl/calendar/calendar_class.cpp
|
|
||||||
@@ -34,6 +34,9 @@ extern "C" {
|
|
||||||
#include <assert.h>
|
|
||||||
}
|
|
||||||
|
|
||||||
+using icu::GregorianCalendar;
|
|
||||||
+using icu::Locale;
|
|
||||||
+
|
|
||||||
/* {{{ Global variables */
|
|
||||||
zend_class_entry *Calendar_ce_ptr;
|
|
||||||
zend_class_entry *GregorianCalendar_ce_ptr;
|
|
||||||
--- a/ext/intl/calendar/calendar_class.h
|
|
||||||
+++ b/ext/intl/calendar/calendar_class.h
|
|
||||||
@@ -26,6 +26,8 @@
|
|
||||||
|
|
||||||
#ifndef USE_CALENDAR_POINTER
|
|
||||||
typedef void Calendar;
|
|
||||||
+#else
|
|
||||||
+using icu::Calendar;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
--- a/ext/intl/calendar/calendar_methods.cpp
|
|
||||||
+++ b/ext/intl/calendar/calendar_methods.cpp
|
|
||||||
@@ -40,6 +40,8 @@ extern "C" {
|
|
||||||
}
|
|
||||||
#include "../common/common_enum.h"
|
|
||||||
|
|
||||||
+using icu::Locale;
|
|
||||||
+
|
|
||||||
U_CFUNC PHP_METHOD(IntlCalendar, __construct)
|
|
||||||
{
|
|
||||||
zend_throw_exception( NULL,
|
|
||||||
--- a/ext/intl/calendar/gregoriancalendar_methods.cpp
|
|
||||||
+++ b/ext/intl/calendar/gregoriancalendar_methods.cpp
|
|
||||||
@@ -23,6 +23,8 @@
|
|
||||||
#include <unicode/locid.h>
|
|
||||||
#include <unicode/calendar.h>
|
|
||||||
#include <unicode/gregocal.h>
|
|
||||||
+#include <unicode/ustring.h>
|
|
||||||
+
|
|
||||||
extern "C" {
|
|
||||||
#include "../php_intl.h"
|
|
||||||
#include "../intl_common.h"
|
|
||||||
@@ -34,6 +36,11 @@ extern "C" {
|
|
||||||
#include "zend_exceptions.h"
|
|
||||||
}
|
|
||||||
|
|
||||||
+using icu::GregorianCalendar;
|
|
||||||
+using icu::Locale;
|
|
||||||
+using icu::UnicodeString;
|
|
||||||
+using icu::StringPiece;
|
|
||||||
+
|
|
||||||
static inline GregorianCalendar *fetch_greg(Calendar_object *co) {
|
|
||||||
return (GregorianCalendar*)co->ucal;
|
|
||||||
}
|
|
||||||
--- a/ext/intl/common/common_date.cpp
|
|
||||||
+++ b/ext/intl/common/common_date.cpp
|
|
||||||
@@ -25,6 +25,9 @@ extern "C" {
|
|
||||||
#include <ext/date/php_date.h>
|
|
||||||
}
|
|
||||||
|
|
||||||
+using icu::TimeZone;
|
|
||||||
+using icu::UnicodeString;
|
|
||||||
+
|
|
||||||
#ifndef INFINITY
|
|
||||||
#define INFINITY (DBL_MAX+DBL_MAX)
|
|
||||||
#endif
|
|
||||||
--- a/ext/intl/common/common_date.h
|
|
||||||
+++ b/ext/intl/common/common_date.h
|
|
||||||
@@ -28,6 +28,8 @@ U_CDECL_END
|
|
||||||
|
|
||||||
#include <unicode/timezone.h>
|
|
||||||
|
|
||||||
+using icu::TimeZone;
|
|
||||||
+
|
|
||||||
U_CFUNC TimeZone *timezone_convert_datetimezone(int type, void *object, int is_datetime, intl_error *outside_error, const char *func);
|
|
||||||
U_CFUNC int intl_datetime_decompose(zval *z, double *millis, TimeZone **tz,
|
|
||||||
intl_error *err, const char *func);
|
|
||||||
--- a/ext/intl/common/common_enum.h
|
|
||||||
+++ b/ext/intl/common/common_enum.h
|
|
||||||
@@ -75,6 +75,7 @@ U_CFUNC zval *zoi_with_current_get_current_data(zend_object_iterator *iter);
|
|
||||||
U_CFUNC void zoi_with_current_invalidate_current(zend_object_iterator *iter);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
+using icu::StringEnumeration;
|
|
||||||
U_CFUNC void IntlIterator_from_StringEnumeration(StringEnumeration *se, zval *object);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
--- a/ext/intl/converter/converter.c
|
|
||||||
+++ b/ext/intl/converter/converter.c
|
|
||||||
@@ -18,6 +18,8 @@
|
|
||||||
#include "zend_exceptions.h"
|
|
||||||
|
|
||||||
#include <unicode/utypes.h>
|
|
||||||
+#include <unicode/utf8.h>
|
|
||||||
+#include <unicode/utf16.h>
|
|
||||||
#include <unicode/ucnv.h>
|
|
||||||
#include <unicode/ustring.h>
|
|
||||||
|
|
||||||
--- a/ext/intl/dateformat/dateformat_format_object.cpp
|
|
||||||
+++ b/ext/intl/dateformat/dateformat_format_object.cpp
|
|
||||||
@@ -33,6 +33,12 @@ extern "C" {
|
|
||||||
#include "../common/common_date.h"
|
|
||||||
}
|
|
||||||
|
|
||||||
+using icu::Locale;
|
|
||||||
+using icu::DateFormat;
|
|
||||||
+using icu::GregorianCalendar;
|
|
||||||
+using icu::StringPiece;
|
|
||||||
+using icu::SimpleDateFormat;
|
|
||||||
+
|
|
||||||
static const DateFormat::EStyle valid_styles[] = {
|
|
||||||
DateFormat::kNone,
|
|
||||||
DateFormat::kFull,
|
|
||||||
--- a/ext/intl/dateformat/dateformat_helpers.cpp
|
|
||||||
+++ b/ext/intl/dateformat/dateformat_helpers.cpp
|
|
||||||
@@ -28,6 +28,8 @@ extern "C" {
|
|
||||||
#include "../calendar/calendar_class.h"
|
|
||||||
}
|
|
||||||
|
|
||||||
+using icu::GregorianCalendar;
|
|
||||||
+
|
|
||||||
int datefmt_process_calendar_arg(zval* calendar_zv,
|
|
||||||
Locale const& locale,
|
|
||||||
const char *func_name,
|
|
||||||
--- a/ext/intl/dateformat/dateformat_helpers.h
|
|
||||||
+++ b/ext/intl/dateformat/dateformat_helpers.h
|
|
||||||
@@ -22,11 +22,16 @@
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <unicode/calendar.h>
|
|
||||||
+#include <unicode/datefmt.h>
|
|
||||||
|
|
||||||
extern "C" {
|
|
||||||
#include "../php_intl.h"
|
|
||||||
}
|
|
||||||
|
|
||||||
+using icu::Locale;
|
|
||||||
+using icu::Calendar;
|
|
||||||
+using icu::DateFormat;
|
|
||||||
+
|
|
||||||
int datefmt_process_calendar_arg(zval* calendar_zv,
|
|
||||||
Locale const& locale,
|
|
||||||
const char *func_name,
|
|
||||||
--- a/ext/intl/grapheme/grapheme_string.c
|
|
||||||
+++ b/ext/intl/grapheme/grapheme_string.c
|
|
||||||
@@ -24,6 +24,7 @@
|
|
||||||
#include "grapheme_util.h"
|
|
||||||
|
|
||||||
#include <unicode/utypes.h>
|
|
||||||
+#include <unicode/utf8.h>
|
|
||||||
#include <unicode/ucol.h>
|
|
||||||
#include <unicode/ustring.h>
|
|
||||||
#include <unicode/ubrk.h>
|
|
||||||
@@ -831,10 +832,10 @@ PHP_FUNCTION(grapheme_extract)
|
|
||||||
pstr = str + start;
|
|
||||||
|
|
||||||
/* just in case pstr points in the middle of a character, move forward to the start of the next char */
|
|
||||||
- if ( !UTF8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
|
|
||||||
- char *str_end = str + str_len;
|
|
||||||
+ if ( !U8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
|
|
||||||
+ unsigned char *str_end = str + str_len;
|
|
||||||
|
|
||||||
- while ( !UTF8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
|
|
||||||
+ while ( !U8_IS_SINGLE(*pstr) && !U8_IS_LEAD(*pstr) ) {
|
|
||||||
pstr++;
|
|
||||||
if ( pstr >= str_end ) {
|
|
||||||
intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
|
|
||||||
--- a/ext/intl/intl_convertcpp.h
|
|
||||||
+++ b/ext/intl/intl_convertcpp.h
|
|
||||||
@@ -26,6 +26,8 @@
|
|
||||||
#include <unicode/unistr.h>
|
|
||||||
#include <zend_types.h>
|
|
||||||
|
|
||||||
+using icu::UnicodeString;
|
|
||||||
+
|
|
||||||
int intl_stringFromChar(UnicodeString &ret, char *str, size_t str_len, UErrorCode *status);
|
|
||||||
|
|
||||||
zend_string* intl_charFromString(const UnicodeString &from, UErrorCode *status);
|
|
||||||
--- a/ext/intl/msgformat/msgformat_helpers.cpp
|
|
||||||
+++ b/ext/intl/msgformat/msgformat_helpers.cpp
|
|
||||||
@@ -76,6 +76,16 @@ MessageFormatAdapter::getMessagePattern(MessageFormat* m) {
|
|
||||||
#endif
|
|
||||||
U_NAMESPACE_END
|
|
||||||
|
|
||||||
+using icu::Formattable;
|
|
||||||
+using icu::Format;
|
|
||||||
+using icu::DateFormat;
|
|
||||||
+using icu::MessageFormat;
|
|
||||||
+#ifdef HAS_MESSAGE_PATTERN
|
|
||||||
+using icu::MessagePattern;
|
|
||||||
+#endif
|
|
||||||
+using icu::MessageFormatAdapter;
|
|
||||||
+using icu::FieldPosition;
|
|
||||||
+
|
|
||||||
U_CFUNC int32_t umsg_format_arg_count(UMessageFormat *fmt)
|
|
||||||
{
|
|
||||||
int32_t fmt_count = 0;
|
|
||||||
@@ -227,15 +237,16 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo,
|
|
||||||
UnicodeString typeString = mp.getSubstring(type_part);
|
|
||||||
/* This is all based on the rules in the docs for MessageFormat
|
|
||||||
* @see http://icu-project.org/apiref/icu4c/classMessageFormat.html */
|
|
||||||
- if (typeString == "number") {
|
|
||||||
+#define ASCII_LITERAL(s) UNICODE_STRING(s, sizeof(s)-1)
|
|
||||||
+ if (typeString == ASCII_LITERAL("number")) {
|
|
||||||
MessagePattern::Part style_part = mp.getPart(i + 1); /* Not advancing i */
|
|
||||||
if (style_part.getType() == UMSGPAT_PART_TYPE_ARG_STYLE) {
|
|
||||||
UnicodeString styleString = mp.getSubstring(style_part);
|
|
||||||
- if (styleString == "integer") {
|
|
||||||
+ if (styleString == ASCII_LITERAL("integer")) {
|
|
||||||
type = Formattable::kInt64;
|
|
||||||
- } else if (styleString == "currency") {
|
|
||||||
+ } else if (styleString == ASCII_LITERAL("currency")) {
|
|
||||||
type = Formattable::kDouble;
|
|
||||||
- } else if (styleString == "percent") {
|
|
||||||
+ } else if (styleString == ASCII_LITERAL("percent")) {
|
|
||||||
type = Formattable::kDouble;
|
|
||||||
} else { /* some style invalid/unknown to us */
|
|
||||||
type = Formattable::kDouble;
|
|
||||||
@@ -243,12 +254,13 @@ static HashTable *umsg_parse_format(MessageFormatter_object *mfo,
|
|
||||||
} else { // if missing style, part, make it a double
|
|
||||||
type = Formattable::kDouble;
|
|
||||||
}
|
|
||||||
- } else if ((typeString == "date") || (typeString == "time")) {
|
|
||||||
+ } else if ((typeString == ASCII_LITERAL("date")) || (typeString == ASCII_LITERAL("time"))) {
|
|
||||||
type = Formattable::kDate;
|
|
||||||
- } else if ((typeString == "spellout") || (typeString == "ordinal")
|
|
||||||
- || (typeString == "duration")) {
|
|
||||||
+ } else if ((typeString == ASCII_LITERAL("spellout")) || (typeString == ASCII_LITERAL("ordinal"))
|
|
||||||
+ || (typeString == ASCII_LITERAL("duration"))) {
|
|
||||||
type = Formattable::kDouble;
|
|
||||||
}
|
|
||||||
+#undef ASCII_LITERAL
|
|
||||||
} else {
|
|
||||||
/* If there's no UMSGPAT_PART_TYPE_ARG_TYPE right after a
|
|
||||||
* UMSGPAT_ARG_TYPE_SIMPLE argument, then the pattern
|
|
||||||
--- a/ext/intl/normalizer/normalizer_normalize.c
|
|
||||||
+++ b/ext/intl/normalizer/normalizer_normalize.c
|
|
||||||
@@ -24,6 +24,7 @@
|
|
||||||
#include "normalizer_class.h"
|
|
||||||
#include "normalizer_normalize.h"
|
|
||||||
#include "intl_convert.h"
|
|
||||||
+#include <unicode/utf8.h>
|
|
||||||
|
|
||||||
/* {{{ proto string Normalizer::normalize( string $input [, string $form = FORM_C] )
|
|
||||||
* Normalize a string. }}} */
|
|
||||||
--- a/ext/intl/timezone/timezone_class.cpp
|
|
||||||
+++ b/ext/intl/timezone/timezone_class.cpp
|
|
||||||
@@ -37,6 +37,8 @@ extern "C" {
|
|
||||||
#include <ext/date/php_date.h>
|
|
||||||
}
|
|
||||||
|
|
||||||
+using icu::Calendar;
|
|
||||||
+
|
|
||||||
/* {{{ Global variables */
|
|
||||||
U_CDECL_BEGIN
|
|
||||||
zend_class_entry *TimeZone_ce_ptr = NULL;
|
|
||||||
--- a/ext/intl/timezone/timezone_class.h
|
|
||||||
+++ b/ext/intl/timezone/timezone_class.h
|
|
||||||
@@ -29,6 +29,8 @@
|
|
||||||
|
|
||||||
#ifndef USE_TIMEZONE_POINTER
|
|
||||||
typedef void TimeZone;
|
|
||||||
+#else
|
|
||||||
+using icu::TimeZone;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
--- a/ext/intl/timezone/timezone_methods.cpp
|
|
||||||
+++ b/ext/intl/timezone/timezone_methods.cpp
|
|
||||||
@@ -23,6 +23,7 @@
|
|
||||||
#include <unicode/locid.h>
|
|
||||||
#include <unicode/timezone.h>
|
|
||||||
#include <unicode/ustring.h>
|
|
||||||
+#include <unicode/calendar.h>
|
|
||||||
#include "intl_convertcpp.h"
|
|
||||||
|
|
||||||
#include "../common/common_date.h"
|
|
||||||
@@ -37,6 +38,9 @@ extern "C" {
|
|
||||||
}
|
|
||||||
#include "common/common_enum.h"
|
|
||||||
|
|
||||||
+using icu::Locale;
|
|
||||||
+using icu::Calendar;
|
|
||||||
+
|
|
||||||
U_CFUNC PHP_METHOD(IntlTimeZone, __construct)
|
|
||||||
{
|
|
||||||
zend_throw_exception( NULL,
|
|
||||||
--
|
|
||||||
2.19.2
|
|
||||||
|
|
@ -1,751 +0,0 @@
|
|||||||
# Copyright 1999-2018 Gentoo Foundation
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=6
|
|
||||||
|
|
||||||
inherit flag-o-matic eapi7-ver systemd
|
|
||||||
|
|
||||||
DESCRIPTION="The PHP language runtime engine"
|
|
||||||
HOMEPAGE="https://secure.php.net/"
|
|
||||||
SRC_URI="https://secure.php.net/distributions/${P}.tar.xz"
|
|
||||||
|
|
||||||
LICENSE="PHP-3.01
|
|
||||||
BSD
|
|
||||||
Zend-2.0
|
|
||||||
bcmath? ( LGPL-2.1+ )
|
|
||||||
fpm? ( BSD-2 )
|
|
||||||
gd? ( gd )
|
|
||||||
unicode? ( BSD-2 LGPL-2.1 )"
|
|
||||||
|
|
||||||
SLOT="$(ver_cut 1-2)"
|
|
||||||
KEYWORDS="alpha amd64 arm ~arm64 ~hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
|
|
||||||
|
|
||||||
# We can build the following SAPIs in the given order
|
|
||||||
SAPIS="embed cli cgi fpm apache2 phpdbg"
|
|
||||||
|
|
||||||
# SAPIs and SAPI-specific USE flags (cli SAPI is default on):
|
|
||||||
IUSE="${IUSE}
|
|
||||||
${SAPIS/cli/+cli}
|
|
||||||
threads"
|
|
||||||
|
|
||||||
IUSE="${IUSE} acl bcmath berkdb bzip2 calendar cdb cjk
|
|
||||||
coverage crypt +ctype curl debug
|
|
||||||
enchant exif +fileinfo +filter firebird
|
|
||||||
flatfile ftp gd gdbm gmp +hash +iconv imap inifile
|
|
||||||
intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl
|
|
||||||
mhash mssql mysql mysqli nls
|
|
||||||
oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm
|
|
||||||
readline recode selinux +session sharedmem
|
|
||||||
+simplexml snmp soap sockets spell sqlite ssl
|
|
||||||
sysvipc systemd tidy +tokenizer truetype unicode wddx webp
|
|
||||||
+xml xmlreader xmlwriter xmlrpc xpm xslt zip zlib"
|
|
||||||
|
|
||||||
# The supported (that is, autodetected) versions of BDB are listed in
|
|
||||||
# the ./configure script. Other versions *work*, but we need to stick to
|
|
||||||
# the ones that can be detected to avoid a repeat of bug #564824.
|
|
||||||
COMMON_DEPEND="
|
|
||||||
>=app-eselect/eselect-php-0.9.1[apache2?,fpm?]
|
|
||||||
>=dev-libs/libpcre-8.32[unicode]
|
|
||||||
fpm? ( acl? ( sys-apps/acl ) )
|
|
||||||
apache2? ( || ( >=www-servers/apache-2.4[apache2_modules_unixd,threads=]
|
|
||||||
<www-servers/apache-2.4[threads=] ) )
|
|
||||||
berkdb? ( || ( sys-libs/db:5.3
|
|
||||||
sys-libs/db:5.1
|
|
||||||
sys-libs/db:4.8
|
|
||||||
sys-libs/db:4.7
|
|
||||||
sys-libs/db:4.6
|
|
||||||
sys-libs/db:4.5 ) )
|
|
||||||
bzip2? ( app-arch/bzip2:0= )
|
|
||||||
cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
|
|
||||||
cjk? ( !gd? (
|
|
||||||
virtual/jpeg:0
|
|
||||||
media-libs/libpng:0=
|
|
||||||
sys-libs/zlib:0=
|
|
||||||
) )
|
|
||||||
coverage? ( dev-util/lcov )
|
|
||||||
crypt? ( >=dev-libs/libmcrypt-2.4 )
|
|
||||||
curl? ( >=net-misc/curl-7.10.5 )
|
|
||||||
enchant? ( app-text/enchant )
|
|
||||||
exif? ( !gd? (
|
|
||||||
virtual/jpeg:0
|
|
||||||
media-libs/libpng:0=
|
|
||||||
sys-libs/zlib:0=
|
|
||||||
) )
|
|
||||||
firebird? ( dev-db/firebird )
|
|
||||||
gd? ( virtual/jpeg:0 media-libs/libpng:0= sys-libs/zlib:0= )
|
|
||||||
gdbm? ( >=sys-libs/gdbm-1.8.0:0= )
|
|
||||||
gmp? ( dev-libs/gmp:0= )
|
|
||||||
iconv? ( virtual/libiconv )
|
|
||||||
imap? ( virtual/imap-c-client[kerberos=,ssl=] )
|
|
||||||
intl? ( <dev-libs/icu-61.1:= )
|
|
||||||
iodbc? ( dev-db/libiodbc )
|
|
||||||
kerberos? ( virtual/krb5 )
|
|
||||||
ldap? ( >=net-nds/openldap-1.2.11 )
|
|
||||||
ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 )
|
|
||||||
libedit? ( || ( sys-freebsd/freebsd-lib dev-libs/libedit ) )
|
|
||||||
mssql? ( dev-db/freetds[mssql] )
|
|
||||||
nls? ( sys-devel/gettext )
|
|
||||||
oci8-instant-client? ( dev-db/oracle-instantclient-basic )
|
|
||||||
odbc? ( >=dev-db/unixODBC-1.8.13 )
|
|
||||||
postgres? ( dev-db/postgresql:* )
|
|
||||||
qdbm? ( dev-db/qdbm )
|
|
||||||
readline? ( sys-libs/readline:0= )
|
|
||||||
recode? ( app-text/recode )
|
|
||||||
sharedmem? ( dev-libs/mm )
|
|
||||||
simplexml? ( >=dev-libs/libxml2-2.6.8 )
|
|
||||||
snmp? ( >=net-analyzer/net-snmp-5.2 )
|
|
||||||
soap? ( >=dev-libs/libxml2-2.6.8 )
|
|
||||||
spell? ( >=app-text/aspell-0.50 )
|
|
||||||
sqlite? ( >=dev-db/sqlite-3.7.6.3 )
|
|
||||||
ssl? (
|
|
||||||
!libressl? ( dev-libs/openssl:0= )
|
|
||||||
libressl? ( dev-libs/libressl:0= )
|
|
||||||
)
|
|
||||||
tidy? ( app-text/htmltidy )
|
|
||||||
truetype? (
|
|
||||||
=media-libs/freetype-2*
|
|
||||||
!gd? (
|
|
||||||
virtual/jpeg:0 media-libs/libpng:0= sys-libs/zlib:0= )
|
|
||||||
)
|
|
||||||
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
|
|
||||||
virtual/jpeg:0
|
|
||||||
media-libs/libpng:0= sys-libs/zlib:0=
|
|
||||||
)
|
|
||||||
xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 )
|
|
||||||
zip? ( sys-libs/zlib:0= )
|
|
||||||
zlib? ( sys-libs/zlib:0= )
|
|
||||||
"
|
|
||||||
|
|
||||||
RDEPEND="${COMMON_DEPEND}
|
|
||||||
virtual/mta
|
|
||||||
fpm? (
|
|
||||||
selinux? ( sec-policy/selinux-phpfpm )
|
|
||||||
systemd? ( sys-apps/systemd ) )"
|
|
||||||
|
|
||||||
DEPEND="${COMMON_DEPEND}
|
|
||||||
app-arch/xz-utils
|
|
||||||
>=sys-devel/bison-3.0.1
|
|
||||||
sys-devel/flex
|
|
||||||
>=sys-devel/m4-1.4.3
|
|
||||||
>=sys-devel/libtool-1.5.18"
|
|
||||||
|
|
||||||
# Without USE=readline or libedit, the interactive "php -a" CLI will hang.
|
|
||||||
REQUIRED_USE="
|
|
||||||
|| ( cli cgi fpm apache2 embed 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 )
|
|
||||||
sharedmem? ( !threads )
|
|
||||||
mysql? ( || ( mysqli pdo ) )
|
|
||||||
"
|
|
||||||
|
|
||||||
PATCHES=(
|
|
||||||
"${FILESDIR}/mbstring-oniguruma-6.8.patch"
|
|
||||||
# hopefully upstream will include the same version check fixes in upcoming releases
|
|
||||||
# patch added 20180429
|
|
||||||
"${FILESDIR}/libressl-compatibility.patch"
|
|
||||||
"${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'
|
|
||||||
}
|
|
||||||
|
|
||||||
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 sharedmem mm "${EPREFIX}/usr") )
|
|
||||||
else
|
|
||||||
our_conf+=( $(use_enable session session) )
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Use pic for shared modules such as apache2's mod_php
|
|
||||||
our_conf+=( --with-pic )
|
|
||||||
|
|
||||||
# we use the system copy of pcre
|
|
||||||
# --with-pcre-regex affects ext/pcre
|
|
||||||
# --with-pcre-dir affects ext/filter and ext/zip
|
|
||||||
our_conf+=(
|
|
||||||
--with-pcre-regex="${EPREFIX}/usr"
|
|
||||||
--with-pcre-dir="${EPREFIX}/usr"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Catch CFLAGS problems
|
|
||||||
# Fixes bug #14067.
|
|
||||||
# Changed order to run it in reverse for bug #32022 and #12021.
|
|
||||||
replace-cpu-flags "k6*" "i586"
|
|
||||||
|
|
||||||
# Cache the ./configure test results between SAPIs.
|
|
||||||
our_conf+=( --cache-file="${T}/config.cache" )
|
|
||||||
|
|
||||||
# Support user-passed configuration parameters
|
|
||||||
our_conf+=( ${EXTRA_ECONF:-} )
|
|
||||||
|
|
||||||
# Support the Apache2 extras, they must be set globally for all
|
|
||||||
# SAPIs to work correctly, especially for external PHP extensions
|
|
||||||
|
|
||||||
mkdir -p "${WORKDIR}/sapis-build" || die
|
|
||||||
for one_sapi in $SAPIS ; do
|
|
||||||
use "${one_sapi}" || continue
|
|
||||||
php_set_ini_dir "${one_sapi}"
|
|
||||||
|
|
||||||
# The BUILD_DIR variable is used to determine where to output
|
|
||||||
# the files that autotools creates. This was all originally
|
|
||||||
# based on the autotools-utils eclass.
|
|
||||||
BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}"
|
|
||||||
cp -a "${S}" "${BUILD_DIR}" || die
|
|
||||||
cd "${BUILD_DIR}" || die
|
|
||||||
|
|
||||||
local sapi_conf=(
|
|
||||||
--with-config-file-path="${PHP_INI_DIR}"
|
|
||||||
--with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}"
|
|
||||||
)
|
|
||||||
|
|
||||||
for sapi in $SAPIS ; do
|
|
||||||
case "$sapi" in
|
|
||||||
cli|cgi|embed|fpm|phpdbg)
|
|
||||||
if [[ "${one_sapi}" == "${sapi}" ]] ; then
|
|
||||||
sapi_conf+=( "--enable-${sapi}" )
|
|
||||||
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
|
|
||||||
}
|
|
@ -1,754 +0,0 @@
|
|||||||
# Copyright 1999-2018 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI="7"
|
|
||||||
|
|
||||||
inherit flag-o-matic systemd
|
|
||||||
|
|
||||||
DESCRIPTION="The PHP language runtime engine"
|
|
||||||
HOMEPAGE="https://secure.php.net/"
|
|
||||||
SRC_URI="https://php.net/distributions/${P}.tar.xz"
|
|
||||||
|
|
||||||
LICENSE="PHP-3.01
|
|
||||||
BSD
|
|
||||||
Zend-2.0
|
|
||||||
bcmath? ( LGPL-2.1+ )
|
|
||||||
fpm? ( BSD-2 )
|
|
||||||
gd? ( gd )
|
|
||||||
unicode? ( BSD-2 LGPL-2.1 )"
|
|
||||||
|
|
||||||
SLOT="$(ver_cut 1-2)"
|
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
|
|
||||||
|
|
||||||
# We can build the following SAPIs in the given order
|
|
||||||
SAPIS="embed cli cgi fpm apache2 phpdbg"
|
|
||||||
|
|
||||||
# SAPIs and SAPI-specific USE flags (cli SAPI is default on):
|
|
||||||
IUSE="${IUSE}
|
|
||||||
${SAPIS/cli/+cli}
|
|
||||||
threads"
|
|
||||||
|
|
||||||
IUSE="${IUSE} acl bcmath berkdb bzip2 calendar cdb cjk
|
|
||||||
coverage crypt +ctype curl debug
|
|
||||||
enchant exif +fileinfo +filter firebird
|
|
||||||
flatfile ftp gd gdbm gmp +hash +iconv imap inifile
|
|
||||||
intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl
|
|
||||||
mhash mssql mysql mysqli nls
|
|
||||||
oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm
|
|
||||||
readline recode selinux +session sharedmem
|
|
||||||
+simplexml snmp soap sockets spell sqlite ssl
|
|
||||||
sysvipc systemd tidy +tokenizer truetype unicode wddx webp
|
|
||||||
+xml xmlreader xmlwriter xmlrpc xpm xslt zip zlib"
|
|
||||||
|
|
||||||
# The supported (that is, autodetected) versions of BDB are listed in
|
|
||||||
# the ./configure script. Other versions *work*, but we need to stick to
|
|
||||||
# the ones that can be detected to avoid a repeat of bug #564824.
|
|
||||||
COMMON_DEPEND="
|
|
||||||
>=app-eselect/eselect-php-0.9.1[apache2?,fpm?]
|
|
||||||
>=dev-libs/libpcre-8.32[unicode]
|
|
||||||
fpm? ( acl? ( sys-apps/acl ) )
|
|
||||||
apache2? ( || ( >=www-servers/apache-2.4[apache2_modules_unixd,threads=]
|
|
||||||
<www-servers/apache-2.4[threads=] ) )
|
|
||||||
berkdb? ( || ( sys-libs/db:5.3
|
|
||||||
sys-libs/db:5.1
|
|
||||||
sys-libs/db:4.8
|
|
||||||
sys-libs/db:4.7
|
|
||||||
sys-libs/db:4.6
|
|
||||||
sys-libs/db:4.5 ) )
|
|
||||||
bzip2? ( app-arch/bzip2:0= )
|
|
||||||
cdb? ( || ( dev-db/cdb dev-db/tinycdb ) )
|
|
||||||
cjk? ( !gd? (
|
|
||||||
virtual/jpeg:0
|
|
||||||
media-libs/libpng:0=
|
|
||||||
sys-libs/zlib:0=
|
|
||||||
) )
|
|
||||||
coverage? ( dev-util/lcov )
|
|
||||||
crypt? ( >=dev-libs/libmcrypt-2.4 )
|
|
||||||
curl? ( >=net-misc/curl-7.10.5 )
|
|
||||||
enchant? ( app-text/enchant )
|
|
||||||
exif? ( !gd? (
|
|
||||||
virtual/jpeg:0
|
|
||||||
media-libs/libpng:0=
|
|
||||||
sys-libs/zlib:0=
|
|
||||||
) )
|
|
||||||
firebird? ( dev-db/firebird )
|
|
||||||
gd? ( virtual/jpeg:0 media-libs/libpng:0= sys-libs/zlib:0= )
|
|
||||||
gdbm? ( >=sys-libs/gdbm-1.8.0:0= )
|
|
||||||
gmp? ( dev-libs/gmp:0= )
|
|
||||||
iconv? ( virtual/libiconv )
|
|
||||||
imap? ( virtual/imap-c-client[kerberos=,ssl=] )
|
|
||||||
intl? ( dev-libs/icu:= )
|
|
||||||
iodbc? ( dev-db/libiodbc )
|
|
||||||
kerberos? ( virtual/krb5 )
|
|
||||||
ldap? ( >=net-nds/openldap-1.2.11 )
|
|
||||||
ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 )
|
|
||||||
libedit? ( || ( sys-freebsd/freebsd-lib dev-libs/libedit ) )
|
|
||||||
mssql? ( dev-db/freetds[mssql] )
|
|
||||||
nls? ( sys-devel/gettext )
|
|
||||||
oci8-instant-client? ( dev-db/oracle-instantclient-basic )
|
|
||||||
odbc? ( >=dev-db/unixODBC-1.8.13 )
|
|
||||||
postgres? ( dev-db/postgresql:* )
|
|
||||||
qdbm? ( dev-db/qdbm )
|
|
||||||
readline? ( sys-libs/readline:0= )
|
|
||||||
recode? ( app-text/recode )
|
|
||||||
sharedmem? ( dev-libs/mm )
|
|
||||||
simplexml? ( >=dev-libs/libxml2-2.6.8 )
|
|
||||||
snmp? ( >=net-analyzer/net-snmp-5.2 )
|
|
||||||
soap? ( >=dev-libs/libxml2-2.6.8 )
|
|
||||||
spell? ( >=app-text/aspell-0.50 )
|
|
||||||
sqlite? ( >=dev-db/sqlite-3.7.6.3 )
|
|
||||||
ssl? (
|
|
||||||
!libressl? ( dev-libs/openssl:0= )
|
|
||||||
libressl? ( dev-libs/libressl:0= )
|
|
||||||
)
|
|
||||||
tidy? ( app-text/htmltidy )
|
|
||||||
truetype? (
|
|
||||||
=media-libs/freetype-2*
|
|
||||||
!gd? (
|
|
||||||
virtual/jpeg:0 media-libs/libpng:0= sys-libs/zlib:0= )
|
|
||||||
)
|
|
||||||
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
|
|
||||||
virtual/jpeg:0
|
|
||||||
media-libs/libpng:0= sys-libs/zlib:0=
|
|
||||||
)
|
|
||||||
xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 )
|
|
||||||
zip? ( sys-libs/zlib:0= )
|
|
||||||
zlib? ( sys-libs/zlib:0= )
|
|
||||||
"
|
|
||||||
|
|
||||||
RDEPEND="${COMMON_DEPEND}
|
|
||||||
virtual/mta
|
|
||||||
fpm? (
|
|
||||||
selinux? ( sec-policy/selinux-phpfpm )
|
|
||||||
systemd? ( sys-apps/systemd ) )"
|
|
||||||
|
|
||||||
DEPEND="${COMMON_DEPEND}
|
|
||||||
app-arch/xz-utils
|
|
||||||
>=sys-devel/bison-3.0.1
|
|
||||||
sys-devel/flex
|
|
||||||
>=sys-devel/m4-1.4.3
|
|
||||||
>=sys-devel/libtool-1.5.18"
|
|
||||||
|
|
||||||
# Without USE=readline or libedit, the interactive "php -a" CLI will hang.
|
|
||||||
REQUIRED_USE="
|
|
||||||
|| ( cli cgi fpm apache2 embed 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 )
|
|
||||||
sharedmem? ( !threads )
|
|
||||||
mysql? ( || ( mysqli pdo ) )
|
|
||||||
"
|
|
||||||
|
|
||||||
PATCHES=(
|
|
||||||
"${FILESDIR}/mbstring-oniguruma-6.8.patch"
|
|
||||||
# hopefully upstream will include the same version check fixes in upcoming releases
|
|
||||||
# patch added 20180429
|
|
||||||
"${FILESDIR}/libressl-compatibility.patch"
|
|
||||||
"${FILESDIR}/php-freetype-2.9.1.patch"
|
|
||||||
"${FILESDIR}/php-7.0.33-intl-detect-icu-via-pkg-config.patch"
|
|
||||||
"${FILESDIR}/php-7.0.33-intl-use-icu-namespace.patch"
|
|
||||||
"${FILESDIR}/php-7.0.33-intl-icu-memory-corruption.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'
|
|
||||||
}
|
|
||||||
|
|
||||||
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 sharedmem mm "${EPREFIX}/usr") )
|
|
||||||
else
|
|
||||||
our_conf+=( $(use_enable session session) )
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Use pic for shared modules such as apache2's mod_php
|
|
||||||
our_conf+=( --with-pic )
|
|
||||||
|
|
||||||
# we use the system copy of pcre
|
|
||||||
# --with-pcre-regex affects ext/pcre
|
|
||||||
# --with-pcre-dir affects ext/filter and ext/zip
|
|
||||||
our_conf+=(
|
|
||||||
--with-pcre-regex="${EPREFIX}/usr"
|
|
||||||
--with-pcre-dir="${EPREFIX}/usr"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Catch CFLAGS problems
|
|
||||||
# Fixes bug #14067.
|
|
||||||
# Changed order to run it in reverse for bug #32022 and #12021.
|
|
||||||
replace-cpu-flags "k6*" "i586"
|
|
||||||
|
|
||||||
# Cache the ./configure test results between SAPIs.
|
|
||||||
our_conf+=( --cache-file="${T}/config.cache" )
|
|
||||||
|
|
||||||
# Support user-passed configuration parameters
|
|
||||||
our_conf+=( ${EXTRA_ECONF:-} )
|
|
||||||
|
|
||||||
# Support the Apache2 extras, they must be set globally for all
|
|
||||||
# SAPIs to work correctly, especially for external PHP extensions
|
|
||||||
|
|
||||||
mkdir -p "${WORKDIR}/sapis-build" || die
|
|
||||||
for one_sapi in $SAPIS ; do
|
|
||||||
use "${one_sapi}" || continue
|
|
||||||
php_set_ini_dir "${one_sapi}"
|
|
||||||
|
|
||||||
# The BUILD_DIR variable is used to determine where to output
|
|
||||||
# the files that autotools creates. This was all originally
|
|
||||||
# based on the autotools-utils eclass.
|
|
||||||
BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}"
|
|
||||||
cp -a "${S}" "${BUILD_DIR}" || die
|
|
||||||
cd "${BUILD_DIR}" || die
|
|
||||||
|
|
||||||
local sapi_conf=(
|
|
||||||
--with-config-file-path="${PHP_INI_DIR}"
|
|
||||||
--with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}"
|
|
||||||
)
|
|
||||||
|
|
||||||
for sapi in $SAPIS ; do
|
|
||||||
case "$sapi" in
|
|
||||||
cli|cgi|embed|fpm|phpdbg)
|
|
||||||
if [[ "${one_sapi}" == "${sapi}" ]] ; then
|
|
||||||
sapi_conf+=( "--enable-${sapi}" )
|
|
||||||
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,184 @@
|
|||||||
|
From 1dae711f17473e12c822a657ffca02abee27b3a2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Rico Tzschichholz <ricotz@ubuntu.com>
|
||||||
|
Date: Sun, 27 Aug 2017 16:03:03 +0200
|
||||||
|
Subject: [PATCH] build: Allow disabling the build of valadoc
|
||||||
|
|
||||||
|
Allow disabling build of valadoc with configure option --disable-valadoc
|
||||||
|
|
||||||
|
Fixes https://gitlab.gnome.org/GNOME/vala/issues/596
|
||||||
|
---
|
||||||
|
Makefile.am | 10 +++++++++
|
||||||
|
configure.ac | 59 ++++++++++++++++++++++++++-----------------------
|
||||||
|
doc/Makefile.am | 17 +++++++++++++-
|
||||||
|
3 files changed, 57 insertions(+), 29 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Makefile.am b/Makefile.am
|
||||||
|
index 88bef90ed..e4d46741f 100644
|
||||||
|
--- a/Makefile.am
|
||||||
|
+++ b/Makefile.am
|
||||||
|
@@ -13,9 +13,19 @@ SUBDIRS = \
|
||||||
|
doc \
|
||||||
|
gobject-introspection \
|
||||||
|
vapigen \
|
||||||
|
+ $(NULL)
|
||||||
|
+
|
||||||
|
+if ENABLE_VALADOC
|
||||||
|
+SUBDIRS += \
|
||||||
|
libvaladoc \
|
||||||
|
valadoc \
|
||||||
|
$(NULL)
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+DISTCHECK_CONFIGURE_FLAGS = \
|
||||||
|
+ --enable-valadoc \
|
||||||
|
+ --enable-unversioned \
|
||||||
|
+ $(NULL)
|
||||||
|
|
||||||
|
if ENABLE_UNVERSIONED
|
||||||
|
aclocaldir = $(datadir)/aclocal
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index 88ca0f94b..9d1c97417 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -119,35 +119,38 @@ PKG_CHECK_MODULES(GMODULE, gmodule-2.0 >= $GLIB_REQUIRED)
|
||||||
|
AC_SUBST(GMODULE_CFLAGS)
|
||||||
|
AC_SUBST(GMODULE_LIBS)
|
||||||
|
|
||||||
|
-PKG_CHECK_MODULES(LIBGVC, libgvc >= $LIBGVC_REQUIRED)
|
||||||
|
-AC_MSG_CHECKING([for CGRAPH])
|
||||||
|
-cgraph_tmp_LIBADD="$LIBADD"
|
||||||
|
-cgraph_tmp_CFLAGS="$CFLAGS"
|
||||||
|
-LIBADD="$LIBADD $LIBGVC_LIBS"
|
||||||
|
-CFLAGS="$CFLAGS $LIBGVC_CFLAGS"
|
||||||
|
-AC_RUN_IFELSE(
|
||||||
|
- [AC_LANG_SOURCE([
|
||||||
|
- #include <gvc.h>
|
||||||
|
-
|
||||||
|
- int main(void) {
|
||||||
|
- #ifdef WITH_CGRAPH
|
||||||
|
- return 0;
|
||||||
|
- #else
|
||||||
|
- return -1;
|
||||||
|
- #endif
|
||||||
|
- }
|
||||||
|
- ])], [
|
||||||
|
- AC_MSG_RESULT([yes])
|
||||||
|
- VALAFLAGS="$VALAFLAGS -D WITH_CGRAPH"
|
||||||
|
- have_cgraph=yes
|
||||||
|
- ], [
|
||||||
|
- AC_MSG_RESULT([no])
|
||||||
|
- have_cgraph=no
|
||||||
|
- ]
|
||||||
|
-)
|
||||||
|
-LIBADD="$cgraph_tmp_LIBADD"
|
||||||
|
-CFLAGS="$cgraph_tmp_CFLAGS"
|
||||||
|
+AC_ARG_ENABLE(valadoc, AS_HELP_STRING([--disable-valadoc], [Disable valadoc]), enable_valadoc=$enableval, enable_valadoc=yes)
|
||||||
|
+if test x$enable_valadoc = xyes; then
|
||||||
|
+ PKG_CHECK_MODULES(LIBGVC, libgvc >= $LIBGVC_REQUIRED)
|
||||||
|
+ AC_MSG_CHECKING([for CGRAPH])
|
||||||
|
+ cgraph_tmp_LIBADD="$LIBADD"
|
||||||
|
+ cgraph_tmp_CFLAGS="$CFLAGS"
|
||||||
|
+ LIBADD="$LIBADD $LIBGVC_LIBS"
|
||||||
|
+ CFLAGS="$CFLAGS $LIBGVC_CFLAGS"
|
||||||
|
+ AC_RUN_IFELSE(
|
||||||
|
+ [AC_LANG_SOURCE([
|
||||||
|
+ #include <gvc.h>
|
||||||
|
+ int main(void) {
|
||||||
|
+ #ifdef WITH_CGRAPH
|
||||||
|
+ return 0;
|
||||||
|
+ #else
|
||||||
|
+ return -1;
|
||||||
|
+ #endif
|
||||||
|
+ }
|
||||||
|
+ ])], [
|
||||||
|
+ AC_MSG_RESULT([yes])
|
||||||
|
+ VALAFLAGS="$VALAFLAGS -D WITH_CGRAPH"
|
||||||
|
+ have_cgraph=yes
|
||||||
|
+ ], [
|
||||||
|
+ AC_MSG_RESULT([no])
|
||||||
|
+ have_cgraph=no
|
||||||
|
+ ]
|
||||||
|
+ )
|
||||||
|
+ LIBADD="$cgraph_tmp_LIBADD"
|
||||||
|
+ CFLAGS="$cgraph_tmp_CFLAGS"
|
||||||
|
+fi
|
||||||
|
AM_CONDITIONAL(HAVE_CGRAPH, test "$have_cgraph" = "yes")
|
||||||
|
+AM_CONDITIONAL(ENABLE_VALADOC, test x$enable_valadoc = xyes)
|
||||||
|
|
||||||
|
AC_PATH_PROG([XSLTPROC], [xsltproc], :)
|
||||||
|
AM_CONDITIONAL(HAVE_XSLTPROC, test "$XSLTPROC" != :)
|
||||||
|
diff --git a/doc/Makefile.am b/doc/Makefile.am
|
||||||
|
index 758ad733a..b79f229c4 100644
|
||||||
|
--- a/doc/Makefile.am
|
||||||
|
+++ b/doc/Makefile.am
|
||||||
|
@@ -6,11 +6,16 @@ SUBDIRS = \
|
||||||
|
|
||||||
|
dist_man_MANS = \
|
||||||
|
valac.1 \
|
||||||
|
- valadoc.1 \
|
||||||
|
vala-gen-introspect.1 \
|
||||||
|
vapigen.1 \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
|
+if ENABLE_VALADOC
|
||||||
|
+dist_man_MANS += \
|
||||||
|
+ valadoc.1 \
|
||||||
|
+ $(NULL)
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
EXTRA_DIST = \
|
||||||
|
valac.h2m \
|
||||||
|
valadoc.h2m \
|
||||||
|
@@ -19,7 +24,11 @@ EXTRA_DIST = \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
|
if HAVE_HELP2MAN
|
||||||
|
+if ENABLE_VALADOC
|
||||||
|
manpages: valac.1 valadoc.1 vala-gen-introspect.1 vapigen.1
|
||||||
|
+else
|
||||||
|
+manpages: valac.1 vala-gen-introspect.1 vapigen.1
|
||||||
|
+endif
|
||||||
|
@rm $^
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) $^
|
||||||
|
|
||||||
|
@@ -28,11 +37,13 @@ valac.1:
|
||||||
|
--include $(srcdir)/valac.h2m \
|
||||||
|
--libtool --no-info \
|
||||||
|
--output=$@
|
||||||
|
+if ENABLE_VALADOC
|
||||||
|
valadoc.1:
|
||||||
|
$(HELP2MAN) $(top_builddir)/valadoc/valadoc \
|
||||||
|
--include $(srcdir)/valadoc.h2m \
|
||||||
|
--libtool --no-info \
|
||||||
|
--output=$@
|
||||||
|
+endif
|
||||||
|
vala-gen-introspect.1:
|
||||||
|
$(HELP2MAN) $(top_builddir)/gobject-introspection/gen-introspect \
|
||||||
|
--include $(srcdir)/vala-gen-introspect.h2m \
|
||||||
|
@@ -49,12 +60,15 @@ endif
|
||||||
|
if ENABLE_UNVERSIONED
|
||||||
|
install-data-hook:
|
||||||
|
cd $(DESTDIR)$(man1dir) && $(LN_S) -f valac@PACKAGE_SUFFIX@.1 valac.1
|
||||||
|
+if ENABLE_VALADOC
|
||||||
|
cd $(DESTDIR)$(man1dir) && $(LN_S) -f valadoc@PACKAGE_SUFFIX@.1 valadoc.1
|
||||||
|
+endif
|
||||||
|
cd $(DESTDIR)$(man1dir) && $(LN_S) -f vala-gen-introspect@PACKAGE_SUFFIX@.1 vala-gen-introspect.1
|
||||||
|
cd $(DESTDIR)$(man1dir) && $(LN_S) -f vapigen@PACKAGE_SUFFIX@.1 vapigen.1
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
+if ENABLE_VALADOC
|
||||||
|
COMMON_VALADOCFLAGS = \
|
||||||
|
--force \
|
||||||
|
--verbose \
|
||||||
|
@@ -130,6 +144,7 @@ internal-apis/valadoc: $(valadoc_VALASOURCES) internal-apis/codegen
|
||||||
|
@touch $@
|
||||||
|
|
||||||
|
internal-api-docs: internal-apis/gee internal-apis/vala internal-apis/ccode internal-apis/codegen internal-apis/valadoc
|
||||||
|
+endif
|
||||||
|
|
||||||
|
clean-local:
|
||||||
|
rm -rf $(builddir)/internal-apis
|
||||||
|
--
|
||||||
|
2.20.1
|
||||||
|
|
@ -0,0 +1,212 @@
|
|||||||
|
From 3dc5768c045c400ff522b8a510b789001aa93df4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Gilles Dartiguelongue <eva@gentoo.org>
|
||||||
|
Date: Fri, 4 Jan 2019 11:31:14 +0100
|
||||||
|
Subject: [PATCH 2/2] Make valadoc doclets & data parallel installable
|
||||||
|
|
||||||
|
---
|
||||||
|
libvaladoc/Makefile.am | 12 ++++++++++--
|
||||||
|
valadoc/Makefile.am | 7 ++++++-
|
||||||
|
valadoc/doclets/devhelp/Makefile.am | 11 ++++++++---
|
||||||
|
valadoc/doclets/gtkdoc/Makefile.am | 11 ++++++++---
|
||||||
|
valadoc/doclets/html/Makefile.am | 11 ++++++++---
|
||||||
|
valadoc/icons/Makefile.am | 4 ++++
|
||||||
|
valadoc/tests/Makefile.am | 7 ++++++-
|
||||||
|
7 files changed, 50 insertions(+), 13 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/libvaladoc/Makefile.am b/libvaladoc/Makefile.am
|
||||||
|
index f3f790e76..86875631b 100644
|
||||||
|
--- a/libvaladoc/Makefile.am
|
||||||
|
+++ b/libvaladoc/Makefile.am
|
||||||
|
@@ -3,8 +3,6 @@ include $(top_srcdir)/Makefile.common
|
||||||
|
NULL =
|
||||||
|
|
||||||
|
AM_CFLAGS = \
|
||||||
|
- -DPACKAGE_ICONDIR=\"$(datadir)/valadoc/icons/\" \
|
||||||
|
- -DPACKAGE_DATADIR=\"$(libdir)/valadoc\" \
|
||||||
|
-DPACKAGE_VERSION=\"$(VERSION)\" \
|
||||||
|
$(COVERAGE_CFLAGS) \
|
||||||
|
$(LIBGVC_CFLAGS) \
|
||||||
|
@@ -16,6 +14,16 @@ AM_CFLAGS = \
|
||||||
|
-I$(top_srcdir)/codegen \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
|
+if ENABLE_UNVERSIONED
|
||||||
|
+AM_CFLAGS += \
|
||||||
|
+ -DPACKAGE_ICONDIR=\"$(datadir)/valadoc/icons/\" \
|
||||||
|
+ -DPACKAGE_DATADIR=\"$(libdir)/valadoc\"
|
||||||
|
+else
|
||||||
|
+AM_CFLAGS += \
|
||||||
|
+ -DPACKAGE_ICONDIR=\"$(datadir)/valadoc@PACKAGE_SUFFIX@/icons/\" \
|
||||||
|
+ -DPACKAGE_DATADIR=\"$(libdir)/valadoc@PACKAGE_SUFFIX@\"
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
AM_VALAFLAGS = \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
|
diff --git a/valadoc/Makefile.am b/valadoc/Makefile.am
|
||||||
|
index 33f3a9375..2f3dec848 100644
|
||||||
|
--- a/valadoc/Makefile.am
|
||||||
|
+++ b/valadoc/Makefile.am
|
||||||
|
@@ -9,7 +9,6 @@ SUBDIRS = \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
|
AM_CFLAGS = \
|
||||||
|
- -DPACKAGE_DATADIR=\"$(libdir)/valadoc\" \
|
||||||
|
-DPACKAGE_VERSION=\"$(VERSION)\" \
|
||||||
|
-I$(top_srcdir)/libvaladoc/ \
|
||||||
|
-I$(top_srcdir)/gee \
|
||||||
|
@@ -22,6 +21,12 @@ AM_CFLAGS = \
|
||||||
|
$(LIBGVC_CFLAGS) \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
|
+if ENABLE_UNVERSIONED
|
||||||
|
+AM_CFLAGS += -DPACKAGE_DATADIR=\"$(libdir)/valadoc\"
|
||||||
|
+else
|
||||||
|
+AM_CFLAGS += -DPACKAGE_DATADIR=\"$(libdir)/valadoc@PACKAGE_SUFFIX@\"
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
BUILT_SOURCES = valadoc.vala.stamp
|
||||||
|
|
||||||
|
bin_PROGRAMS = valadoc
|
||||||
|
diff --git a/valadoc/doclets/devhelp/Makefile.am b/valadoc/doclets/devhelp/Makefile.am
|
||||||
|
index 5783c0b5a..afbb8f7f9 100644
|
||||||
|
--- a/valadoc/doclets/devhelp/Makefile.am
|
||||||
|
+++ b/valadoc/doclets/devhelp/Makefile.am
|
||||||
|
@@ -3,7 +3,6 @@ include $(top_srcdir)/Makefile.common
|
||||||
|
NULL =
|
||||||
|
|
||||||
|
AM_CFLAGS = \
|
||||||
|
- -DPACKAGE_ICONDIR=\"$(datadir)/valadoc/icons/\" \
|
||||||
|
-I$(top_srcdir)/gee/ \
|
||||||
|
-I$(top_srcdir)/vala/ \
|
||||||
|
-I$(top_srcdir)/libvaladoc/ \
|
||||||
|
@@ -12,12 +11,18 @@ AM_CFLAGS = \
|
||||||
|
$(LIBGVC_CFLAGS) \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
|
+if ENABLE_UNVERSIONED
|
||||||
|
+AM_CFLAGS += -DPACKAGE_ICONDIR=\"$(datadir)/valadoc/icons/\"
|
||||||
|
+docletdir = $(libdir)/valadoc/doclets/devhelp
|
||||||
|
+else
|
||||||
|
+AM_CFLAGS += -DPACKAGE_ICONDIR=\"$(datadir)/valadoc@PACKAGE_SUFFIX@/icons/\"
|
||||||
|
+docletdir = $(libdir)/valadoc@PACKAGE_SUFFIX@/doclets/devhelp
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
BUILT_SOURCES = libdoclet.vala.stamp
|
||||||
|
|
||||||
|
doclet_LTLIBRARIES = libdoclet.la
|
||||||
|
|
||||||
|
-docletdir = $(libdir)/valadoc/doclets/devhelp
|
||||||
|
-
|
||||||
|
libdoclet_la_LDFLAGS = -module -avoid-version -no-undefined
|
||||||
|
|
||||||
|
libdoclet_la_VALASOURCES = \
|
||||||
|
diff --git a/valadoc/doclets/gtkdoc/Makefile.am b/valadoc/doclets/gtkdoc/Makefile.am
|
||||||
|
index 763e46932..f689018ce 100644
|
||||||
|
--- a/valadoc/doclets/gtkdoc/Makefile.am
|
||||||
|
+++ b/valadoc/doclets/gtkdoc/Makefile.am
|
||||||
|
@@ -3,7 +3,6 @@ include $(top_srcdir)/Makefile.common
|
||||||
|
NULL =
|
||||||
|
|
||||||
|
AM_CFLAGS = \
|
||||||
|
- -DPACKAGE_ICONDIR=\"$(datadir)/valadoc/icons/\" \
|
||||||
|
-I$(top_srcdir)/gee/ \
|
||||||
|
-I$(top_srcdir)/vala/ \
|
||||||
|
-I$(top_srcdir)/libvaladoc/ \
|
||||||
|
@@ -12,12 +11,18 @@ AM_CFLAGS = \
|
||||||
|
$(LIBGVC_CFLAGS) \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
|
+if ENABLE_UNVERSIONED
|
||||||
|
+AM_CFLAGS += -DPACKAGE_ICONDIR=\"$(datadir)/valadoc/icons/\"
|
||||||
|
+docletdir = $(libdir)/valadoc/doclets/gtkdoc
|
||||||
|
+else
|
||||||
|
+AM_CFLAGS += -DPACKAGE_ICONDIR=\"$(datadir)/valadoc@PACKAGE_SUFFIX@/icons/\"
|
||||||
|
+docletdir = $(libdir)/valadoc@PACKAGE_SUFFIX@/doclets/gtkdoc
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
BUILT_SOURCES = libdoclet.vala.stamp
|
||||||
|
|
||||||
|
doclet_LTLIBRARIES = libdoclet.la
|
||||||
|
|
||||||
|
-docletdir = $(libdir)/valadoc/doclets/gtkdoc
|
||||||
|
-
|
||||||
|
libdoclet_la_LDFLAGS = -module -avoid-version -no-undefined
|
||||||
|
|
||||||
|
libdoclet_la_VALASOURCES = \
|
||||||
|
diff --git a/valadoc/doclets/html/Makefile.am b/valadoc/doclets/html/Makefile.am
|
||||||
|
index 885fbfbab..855184020 100644
|
||||||
|
--- a/valadoc/doclets/html/Makefile.am
|
||||||
|
+++ b/valadoc/doclets/html/Makefile.am
|
||||||
|
@@ -3,7 +3,6 @@ include $(top_srcdir)/Makefile.common
|
||||||
|
NULL =
|
||||||
|
|
||||||
|
AM_CFLAGS = \
|
||||||
|
- -DPACKAGE_ICONDIR=\"$(datadir)/valadoc/icons/\" \
|
||||||
|
-I$(top_srcdir)/gee/ \
|
||||||
|
-I$(top_srcdir)/vala/ \
|
||||||
|
-I$(top_srcdir)/libvaladoc/ \
|
||||||
|
@@ -12,12 +11,18 @@ AM_CFLAGS = \
|
||||||
|
$(LIBGVC_CFLAGS) \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
|
+if ENABLE_UNVERSIONED
|
||||||
|
+AM_CFLAGS += -DPACKAGE_ICONDIR=\"$(datadir)/valadoc/icons/\"
|
||||||
|
+docletdir = $(libdir)/valadoc/doclets/html
|
||||||
|
+else
|
||||||
|
+AM_CFLAGS += -DPACKAGE_ICONDIR=\"$(datadir)/valadoc@PACKAGE_SUFFIX@/icons/\"
|
||||||
|
+docletdir = $(libdir)/valadoc@PACKAGE_SUFFIX@/doclets/html
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
BUILT_SOURCES = libdoclet.vala.stamp
|
||||||
|
|
||||||
|
doclet_LTLIBRARIES = libdoclet.la
|
||||||
|
|
||||||
|
-docletdir = $(libdir)/valadoc/doclets/html
|
||||||
|
-
|
||||||
|
libdoclet_la_LDFLAGS = -module -avoid-version -no-undefined
|
||||||
|
|
||||||
|
libdoclet_la_VALASOURCES = \
|
||||||
|
diff --git a/valadoc/icons/Makefile.am b/valadoc/icons/Makefile.am
|
||||||
|
index 454bdba7c..668956f3b 100644
|
||||||
|
--- a/valadoc/icons/Makefile.am
|
||||||
|
+++ b/valadoc/icons/Makefile.am
|
||||||
|
@@ -1,6 +1,10 @@
|
||||||
|
NULL =
|
||||||
|
|
||||||
|
+if ENABLE_UNVERSIONED
|
||||||
|
iconsdir = $(datadir)/valadoc/icons
|
||||||
|
+else
|
||||||
|
+iconsdir = $(datadir)/valadoc@PACKAGE_SUFFIX@/icons
|
||||||
|
+endif
|
||||||
|
|
||||||
|
dist_icons_DATA = \
|
||||||
|
abstractclass.png \
|
||||||
|
diff --git a/valadoc/tests/Makefile.am b/valadoc/tests/Makefile.am
|
||||||
|
index e40cc1ca3..2bca58128 100644
|
||||||
|
--- a/valadoc/tests/Makefile.am
|
||||||
|
+++ b/valadoc/tests/Makefile.am
|
||||||
|
@@ -22,7 +22,6 @@ check-TESTS: $(TESTS)
|
||||||
|
G_DEBUG=fatal_warnings $(builddir)/driver
|
||||||
|
|
||||||
|
AM_CFLAGS = \
|
||||||
|
- -DPACKAGE_DATADIR=\"$(libdir)/valadoc\" \
|
||||||
|
-DPACKAGE_VERSION=\"$(VERSION)\" \
|
||||||
|
-DTOP_SRC_DIR=\"$(abs_top_srcdir)\" \
|
||||||
|
-I$(top_srcdir)/libvaladoc/ \
|
||||||
|
@@ -36,6 +35,12 @@ AM_CFLAGS = \
|
||||||
|
$(LIBGVC_CFLAGS) \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
|
+if ENABLE_UNVERSIONED
|
||||||
|
+AM_CFLAGS += -DPACKAGE_DATADIR=\"$(libdir)/valadoc\"
|
||||||
|
+else
|
||||||
|
+AM_CFLAGS += -DPACKAGE_DATADIR=\"$(libdir)/valadoc@PACKAGE_SUFFIX@\"
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
BUILT_SOURCES = driver.vala.stamp
|
||||||
|
|
||||||
|
check_PROGRAMS = driver
|
||||||
|
--
|
||||||
|
2.20.1
|
||||||
|
|
@ -1,8 +1,11 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||||
<pkgmetadata>
|
<pkgmetadata>
|
||||||
<maintainer type="project">
|
<maintainer type="project">
|
||||||
<email>gnome@gentoo.org</email>
|
<email>gnome@gentoo.org</email>
|
||||||
<name>Gentoo GNOME Desktop</name>
|
<name>Gentoo GNOME Desktop</name>
|
||||||
</maintainer>
|
</maintainer>
|
||||||
|
<use>
|
||||||
|
<flag name="valadoc">Installs valadoc documentation generation tool</flag>
|
||||||
|
</use>
|
||||||
</pkgmetadata>
|
</pkgmetadata>
|
||||||
|
@ -0,0 +1,56 @@
|
|||||||
|
# Copyright 1999-2019 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=6
|
||||||
|
GNOME2_EAUTORECONF="yes"
|
||||||
|
|
||||||
|
inherit gnome2
|
||||||
|
|
||||||
|
DESCRIPTION="Compiler for the GObject type system"
|
||||||
|
HOMEPAGE="https://wiki.gnome.org/Projects/Vala"
|
||||||
|
|
||||||
|
LICENSE="LGPL-2.1"
|
||||||
|
SLOT="0.40"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-linux"
|
||||||
|
IUSE="test valadoc"
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
>=dev-libs/glib-2.40.0:2
|
||||||
|
>=dev-libs/vala-common-${PV}
|
||||||
|
valadoc? ( >=media-gfx/graphviz-2.16 )
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}
|
||||||
|
!${CATEGORY}/${PN}:0
|
||||||
|
dev-libs/libxslt
|
||||||
|
sys-devel/flex
|
||||||
|
virtual/pkgconfig
|
||||||
|
virtual/yacc
|
||||||
|
test? (
|
||||||
|
dev-libs/dbus-glib
|
||||||
|
>=dev-libs/glib-2.26:2
|
||||||
|
dev-libs/gobject-introspection )
|
||||||
|
"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
# From master
|
||||||
|
"${FILESDIR}"/0.40-Allow-disabling-the-build-of-valadoc.patch
|
||||||
|
# Add missing bits to make valadoc parallel installable
|
||||||
|
"${FILESDIR}"/0.40-valadoc-doclets-data-parallel-installable.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# https://bugs.gentoo.org/483134
|
||||||
|
export GIT_CEILING_DIRECTORIES="${WORKDIR}"
|
||||||
|
|
||||||
|
# weasyprint enables generation of PDF from HTML
|
||||||
|
gnome2_src_configure \
|
||||||
|
--disable-unversioned \
|
||||||
|
$(use_enable valadoc) \
|
||||||
|
VALAC=: \
|
||||||
|
WEASYPRINT=:
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
default
|
||||||
|
find "${D}" -name "*.la" -delete || die
|
||||||
|
}
|
@ -0,0 +1,56 @@
|
|||||||
|
# Copyright 1999-2019 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=6
|
||||||
|
GNOME2_EAUTORECONF="yes"
|
||||||
|
|
||||||
|
inherit gnome2
|
||||||
|
|
||||||
|
DESCRIPTION="Compiler for the GObject type system"
|
||||||
|
HOMEPAGE="https://wiki.gnome.org/Projects/Vala"
|
||||||
|
|
||||||
|
LICENSE="LGPL-2.1"
|
||||||
|
SLOT="0.42"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-linux"
|
||||||
|
IUSE="test valadoc"
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
>=dev-libs/glib-2.40.0:2
|
||||||
|
>=dev-libs/vala-common-${PV}
|
||||||
|
valadoc? ( >=media-gfx/graphviz-2.16 )
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}
|
||||||
|
!${CATEGORY}/${PN}:0
|
||||||
|
dev-libs/libxslt
|
||||||
|
sys-devel/flex
|
||||||
|
virtual/pkgconfig
|
||||||
|
virtual/yacc
|
||||||
|
test? (
|
||||||
|
dev-libs/dbus-glib
|
||||||
|
>=dev-libs/glib-2.26:2
|
||||||
|
dev-libs/gobject-introspection )
|
||||||
|
"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
# From master
|
||||||
|
"${FILESDIR}"/0.40-Allow-disabling-the-build-of-valadoc.patch
|
||||||
|
# Add missing bits to make valadoc parallel installable
|
||||||
|
"${FILESDIR}"/0.40-valadoc-doclets-data-parallel-installable.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# https://bugs.gentoo.org/483134
|
||||||
|
export GIT_CEILING_DIRECTORIES="${WORKDIR}"
|
||||||
|
|
||||||
|
# weasyprint enables generation of PDF from HTML
|
||||||
|
gnome2_src_configure \
|
||||||
|
--disable-unversioned \
|
||||||
|
$(use_enable valadoc) \
|
||||||
|
VALAC=: \
|
||||||
|
WEASYPRINT=:
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
default
|
||||||
|
find "${D}" -name "*.la" -delete || die
|
||||||
|
}
|
Binary file not shown.
@ -1 +1,2 @@
|
|||||||
|
DIST json-c-0.12.tar.gz 501419 BLAKE2B 24f035792ff1ba5c39e55bca6ee4ba2509ab71d0374c70b520791f38e1ec4ff2245a282f234fde9f4a02cd9eaaaaa998ce307563a20702c04ee972fdf51f2539 SHA512 c959804362386f6b77e9d04b5fedf6d6aff1fcd0ab50250edb25f759b510b402e7ad4b33d1cbadc3337b63a3145d19f310812a9ee351748348304b384dc2dc35
|
||||||
DIST json-c-0.13.1.tar.gz 639425 BLAKE2B 1da310309f9ce03306a9fd4a161670e460cf0b2222348df7c006902390f74a4cf100aab1ce6ac8a361a278dd917c114a278de5b3445817f3a40ae287478add46 SHA512 e984db2a42b9c95b52c798b2e8dd1b79951a8dcba27370af30c43b9549fbb00008dbcf052a535c528209aaee38e6d1f760168b706905ae72f3e704ed20f8a1a1
|
DIST json-c-0.13.1.tar.gz 639425 BLAKE2B 1da310309f9ce03306a9fd4a161670e460cf0b2222348df7c006902390f74a4cf100aab1ce6ac8a361a278dd917c114a278de5b3445817f3a40ae287478add46 SHA512 e984db2a42b9c95b52c798b2e8dd1b79951a8dcba27370af30c43b9549fbb00008dbcf052a535c528209aaee38e6d1f760168b706905ae72f3e704ed20f8a1a1
|
||||||
|
@ -0,0 +1,40 @@
|
|||||||
|
# Copyright 1999-2019 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=5
|
||||||
|
|
||||||
|
AUTOTOOLS_AUTORECONF=true
|
||||||
|
|
||||||
|
inherit autotools-multilib
|
||||||
|
|
||||||
|
DESCRIPTION="A JSON implementation in C"
|
||||||
|
HOMEPAGE="https://github.com/json-c/json-c/wiki"
|
||||||
|
SRC_URI="https://s3.amazonaws.com/json-c_releases/releases/${P}.tar.gz"
|
||||||
|
|
||||||
|
LICENSE="MIT"
|
||||||
|
SLOT="0/2"
|
||||||
|
KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 ~sh sparc x86 ~amd64-fbsd ~amd64-linux ~x86-linux ~ppc-macos"
|
||||||
|
IUSE="doc static-libs"
|
||||||
|
|
||||||
|
RDEPEND=""
|
||||||
|
|
||||||
|
# tests break otherwise
|
||||||
|
AUTOTOOLS_IN_SOURCE_BUILD=1
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
sed -i -e "s:-Werror::" Makefile.am.inc || die
|
||||||
|
autotools-multilib_src_prepare
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
export USE_VALGRIND=0 VERBOSE=1
|
||||||
|
autotools-multilib_src_test
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
use doc && HTML_DOCS=( "${S}"/doc/html )
|
||||||
|
autotools-multilib_src_install
|
||||||
|
|
||||||
|
# add symlink for projects not using pkgconfig
|
||||||
|
dosym ../json-c /usr/include/json-c/json
|
||||||
|
}
|
@ -0,0 +1,88 @@
|
|||||||
|
# Copyright 1999-2019 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=7
|
||||||
|
inherit db-use libtool
|
||||||
|
|
||||||
|
DESCRIPTION="High-level interface for the Resource Description Framework"
|
||||||
|
HOMEPAGE="http://librdf.org/"
|
||||||
|
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 ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos"
|
||||||
|
IUSE="berkdb iodbc mysql odbc postgres sqlite static-libs"
|
||||||
|
|
||||||
|
RDEPEND="dev-libs/libltdl:0
|
||||||
|
mysql? ( dev-db/mysql-connector-c:0= )
|
||||||
|
sqlite? ( =dev-db/sqlite-3* )
|
||||||
|
berkdb? ( sys-libs/db )
|
||||||
|
>=media-libs/raptor-2.0.14
|
||||||
|
>=dev-libs/rasqal-0.9.32
|
||||||
|
postgres? ( dev-db/postgresql )
|
||||||
|
iodbc? ( dev-db/libiodbc )
|
||||||
|
odbc? ( dev-db/unixODBC )"
|
||||||
|
DEPEND="${RDEPEND}
|
||||||
|
virtual/pkgconfig"
|
||||||
|
|
||||||
|
MAKEOPTS="${MAKEOPTS} -j1" #500574, required for both src_compile() and src_install()
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
default
|
||||||
|
elibtoolize # NOTE: this is for fbsd .so version
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
local myconf=( --without-virtuoso )
|
||||||
|
if use iodbc; then
|
||||||
|
myconf=( --with-virtuoso --with-iodbc --without-unixodbc )
|
||||||
|
elif use odbc; then
|
||||||
|
myconf=( --with-virtuoso --with-unixodbc --without-iodbc )
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use berkdb; then
|
||||||
|
myconf+=(
|
||||||
|
--with-bdb-include="$(db_includedir)"
|
||||||
|
--with-bdb-lib="${EPREFIX}"/usr/$(get_libdir)
|
||||||
|
--with-bdb-dbname="$(db_libname)"
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# FIXME: upstream doesn't test with --with-threads and testsuite fails
|
||||||
|
econf \
|
||||||
|
$(use_enable static-libs static) \
|
||||||
|
$(use_with berkdb bdb) \
|
||||||
|
$(use_with mysql) \
|
||||||
|
$(use_with sqlite) \
|
||||||
|
$(use_with postgres postgresql) \
|
||||||
|
--without-threads \
|
||||||
|
--with-html-dir="${EPREFIX}"/usr/share/doc/${PF}/html \
|
||||||
|
"${myconf[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
if ! use berkdb; then
|
||||||
|
export REDLAND_TEST_CLONING_STORAGE_TYPE=hashes
|
||||||
|
export REDLAND_TEST_CLONING_STORAGE_NAME=test
|
||||||
|
export REDLAND_TEST_CLONING_STORAGE_OPTIONS="hash-type='memory',dir='.',write='yes',new='yes',contexts='yes'"
|
||||||
|
fi
|
||||||
|
default
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
default
|
||||||
|
docinto html
|
||||||
|
dodoc {FAQS,NEWS,README,RELEASE,TODO}.html
|
||||||
|
find "${ED}" -name '*.la' -exec sed -i -e "/^dependency_libs/s:=.*:='':" {} +
|
||||||
|
|
||||||
|
# !!! REMOVE THIS ON VERSION BUMP, see bug 468298 for proper fix !!!
|
||||||
|
if [[ -n ${LDFLAGS} ]]; then
|
||||||
|
sed -i \
|
||||||
|
-e "s:${LDFLAGS} ::g" \
|
||||||
|
"${ED}"/usr/$(get_libdir)/pkgconfig/${PN}.pc || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# https://bugs.gentoo.org/467768
|
||||||
|
local _rdocdir=/usr/share/doc/${PF}/html/${PN}
|
||||||
|
[[ -d ${ED}/${_rdocdir} ]] && dosym ${_rdocdir} /usr/share/gtk-doc/html/${PN}
|
||||||
|
}
|
@ -1,2 +1,4 @@
|
|||||||
DIST vala-0.36.15.tar.xz 2880300 BLAKE2B ea83bde6396f3be1c96038d63ae30b18fa070a6f7a06b75569bfed9d7792c898201a1f24d000f5b6415bb890cf975758341a97f22db74da02fcbeb3f283e546f SHA512 1c8f888832b2dd4248737a5a27f00f42d8bab2fe0a0790a7df5c426f4e3e1d0919ed0f6f6fd905be758ed477ba840e18f608e67811389c811ba65710094abe61
|
DIST vala-0.36.15.tar.xz 2880300 BLAKE2B ea83bde6396f3be1c96038d63ae30b18fa070a6f7a06b75569bfed9d7792c898201a1f24d000f5b6415bb890cf975758341a97f22db74da02fcbeb3f283e546f SHA512 1c8f888832b2dd4248737a5a27f00f42d8bab2fe0a0790a7df5c426f4e3e1d0919ed0f6f6fd905be758ed477ba840e18f608e67811389c811ba65710094abe61
|
||||||
DIST vala-0.36.17.tar.xz 2898524 BLAKE2B 4a5a373bacd4e4a392350c7819e0498054e38f50dce89658412d7aeb5642892ef9f32a7689ebd45f53c41f064e0b6d2f52fb441be67a1dd48e67311a1e764637 SHA512 93d4fa600cd0ef62b71ed056b837f2c0a42c3aba25b021b2bbd2045428550307727827b250dae546926ea3fe2e33a5ac80c9b24b5100f02550ec584dd5da5e92
|
DIST vala-0.36.17.tar.xz 2898524 BLAKE2B 4a5a373bacd4e4a392350c7819e0498054e38f50dce89658412d7aeb5642892ef9f32a7689ebd45f53c41f064e0b6d2f52fb441be67a1dd48e67311a1e764637 SHA512 93d4fa600cd0ef62b71ed056b837f2c0a42c3aba25b021b2bbd2045428550307727827b250dae546926ea3fe2e33a5ac80c9b24b5100f02550ec584dd5da5e92
|
||||||
|
DIST vala-0.40.13.tar.xz 3394588 BLAKE2B cb3055b859b220f999bc5b4533251a069e9c10690963bc92b087b0ab351f0d78eb8f5992b747cc345d9d2a3dba69c68d130bca20604036c2c62e380442675e8b SHA512 0590224ec5128f6939b66109b6bcf7f764af3ece28f9bce9a5d715f53defbc8746d5d20599039b067848da2f38fdae7a057427be1ea9ef0fe09e0ce45db091d0
|
||||||
|
DIST vala-0.42.5.tar.xz 3350460 BLAKE2B 790c9f9e9e656ce96226f1ac6a0d090033ecf1943d024da0c9ee174bf65f76a14721819c6c2263c5b094f16cf112cc964000000ee42c9a7fdc0f2ad6fc01feb7 SHA512 1862307eab505e500326f84e267648f084926629f6b45b9abb6a90a20a7aa6dd2fc305962b9028c5ca7becb574573cca43fbecd9294b782d9942e71639a32aa9
|
||||||
|
@ -0,0 +1,76 @@
|
|||||||
|
# Copyright 1999-2019 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=6
|
||||||
|
GNOME_ORG_MODULE="vala"
|
||||||
|
|
||||||
|
inherit gnome.org
|
||||||
|
|
||||||
|
DESCRIPTION="Build infrastructure for packages that use Vala"
|
||||||
|
HOMEPAGE="https://wiki.gnome.org/Projects/Vala"
|
||||||
|
|
||||||
|
LICENSE="LGPL-2.1"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
|
||||||
|
IUSE=""
|
||||||
|
|
||||||
|
# Previously ${PN} was part of dev-lang/vala
|
||||||
|
RDEPEND="
|
||||||
|
!<dev-lang/vala-0.10.4-r2
|
||||||
|
!<dev-lang/vala-0.12.1-r1:0.12
|
||||||
|
!<dev-lang/vala-0.14.2-r2:0.14
|
||||||
|
!<dev-lang/vala-0.16.1-r2:0.16
|
||||||
|
!<dev-lang/vala-0.17.5:0.18
|
||||||
|
"
|
||||||
|
DEPEND=""
|
||||||
|
|
||||||
|
src_configure() { :; }
|
||||||
|
|
||||||
|
src_compile() { :; }
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
insinto /usr/share/aclocal
|
||||||
|
doins vala.m4 vapigen/vapigen.m4
|
||||||
|
insinto /usr/share/vala
|
||||||
|
doins vapigen/Makefile.vapigen
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
# Hack to prevent alternatives_auto_makesym in previously installed
|
||||||
|
# dev-lang/vala's pkg_postrm from overwriting vala-common's files
|
||||||
|
if has_version '<dev-lang/vala-0.10.4-r2:0.10' && [[ -f "${EROOT}usr/share/aclocal/vala-0-10.m4" ]]; then
|
||||||
|
ebegin "Removing old vala-0.10 macros"
|
||||||
|
rm "${EROOT}usr/share/aclocal/vala-0-10.m4" &> /dev/null
|
||||||
|
eend $?
|
||||||
|
fi
|
||||||
|
if has_version '<dev-lang/vala-0.12.1-r1:0.12' && [[ -f "${EROOT}usr/share/aclocal/vala-0-12.m4" ]]; then
|
||||||
|
ebegin "Removing old vala-0.12 macros"
|
||||||
|
rm "${EROOT}usr/share/aclocal/vala-0-12.m4" &> /dev/null
|
||||||
|
eend $?
|
||||||
|
fi
|
||||||
|
if has_version '<dev-lang/vala-0.14.2-r2:0.14' && [[ -f "${EROOT}usr/share/aclocal/vala-0-14.m4" ]]; then
|
||||||
|
ebegin "Removing old vala-0.14 macros"
|
||||||
|
rm "${EROOT}usr/share/aclocal/vala-0-14.m4" &> /dev/null
|
||||||
|
eend $?
|
||||||
|
fi
|
||||||
|
if has_version '<dev-lang/vala-0.16.1-r2:0.16' && [[ -f "${EROOT}usr/share/aclocal/vala-0-16.m4" ]]; then
|
||||||
|
ebegin "Removing old vala-0.16 macros"
|
||||||
|
rm "${EROOT}usr/share/aclocal/vala-0-14.m4" &> /dev/null
|
||||||
|
eend $?
|
||||||
|
if [[ -f "${EROOT}usr/share/vala-0.16/Makefile.vapigen" ]]; then
|
||||||
|
ebegin "Removing old vala-0.16 makefile template"
|
||||||
|
rm "${EROOT}usr/share/vala-0.16/Makefile.vapigen" &> /dev/null
|
||||||
|
eend $?
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if has_version '<dev-lang/vala-0.17.5:0.18' && [[ -f "${EROOT}usr/share/aclocal/vala-0-18.m4" ]]; then
|
||||||
|
ebegin "Removing old vala-0.18 macros"
|
||||||
|
rm "${EROOT}usr/share/aclocal/vala-0-12.m4" &> /dev/null
|
||||||
|
eend $?
|
||||||
|
if [[ -f "${EROOT}usr/share/vala-0.18/Makefile.vapigen" ]]; then
|
||||||
|
ebegin "Removing old vala-0.18 makefile template"
|
||||||
|
rm "${EROOT}usr/share/vala-0.18/Makefile.vapigen" &> /dev/null
|
||||||
|
eend $?
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
@ -0,0 +1,76 @@
|
|||||||
|
# Copyright 1999-2019 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=6
|
||||||
|
GNOME_ORG_MODULE="vala"
|
||||||
|
|
||||||
|
inherit gnome.org
|
||||||
|
|
||||||
|
DESCRIPTION="Build infrastructure for packages that use Vala"
|
||||||
|
HOMEPAGE="https://wiki.gnome.org/Projects/Vala"
|
||||||
|
|
||||||
|
LICENSE="LGPL-2.1"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
|
||||||
|
IUSE=""
|
||||||
|
|
||||||
|
# Previously ${PN} was part of dev-lang/vala
|
||||||
|
RDEPEND="
|
||||||
|
!<dev-lang/vala-0.10.4-r2
|
||||||
|
!<dev-lang/vala-0.12.1-r1:0.12
|
||||||
|
!<dev-lang/vala-0.14.2-r2:0.14
|
||||||
|
!<dev-lang/vala-0.16.1-r2:0.16
|
||||||
|
!<dev-lang/vala-0.17.5:0.18
|
||||||
|
"
|
||||||
|
DEPEND=""
|
||||||
|
|
||||||
|
src_configure() { :; }
|
||||||
|
|
||||||
|
src_compile() { :; }
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
insinto /usr/share/aclocal
|
||||||
|
doins vala.m4 vapigen/vapigen.m4
|
||||||
|
insinto /usr/share/vala
|
||||||
|
doins vapigen/Makefile.vapigen
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
# Hack to prevent alternatives_auto_makesym in previously installed
|
||||||
|
# dev-lang/vala's pkg_postrm from overwriting vala-common's files
|
||||||
|
if has_version '<dev-lang/vala-0.10.4-r2:0.10' && [[ -f "${EROOT}usr/share/aclocal/vala-0-10.m4" ]]; then
|
||||||
|
ebegin "Removing old vala-0.10 macros"
|
||||||
|
rm "${EROOT}usr/share/aclocal/vala-0-10.m4" &> /dev/null
|
||||||
|
eend $?
|
||||||
|
fi
|
||||||
|
if has_version '<dev-lang/vala-0.12.1-r1:0.12' && [[ -f "${EROOT}usr/share/aclocal/vala-0-12.m4" ]]; then
|
||||||
|
ebegin "Removing old vala-0.12 macros"
|
||||||
|
rm "${EROOT}usr/share/aclocal/vala-0-12.m4" &> /dev/null
|
||||||
|
eend $?
|
||||||
|
fi
|
||||||
|
if has_version '<dev-lang/vala-0.14.2-r2:0.14' && [[ -f "${EROOT}usr/share/aclocal/vala-0-14.m4" ]]; then
|
||||||
|
ebegin "Removing old vala-0.14 macros"
|
||||||
|
rm "${EROOT}usr/share/aclocal/vala-0-14.m4" &> /dev/null
|
||||||
|
eend $?
|
||||||
|
fi
|
||||||
|
if has_version '<dev-lang/vala-0.16.1-r2:0.16' && [[ -f "${EROOT}usr/share/aclocal/vala-0-16.m4" ]]; then
|
||||||
|
ebegin "Removing old vala-0.16 macros"
|
||||||
|
rm "${EROOT}usr/share/aclocal/vala-0-14.m4" &> /dev/null
|
||||||
|
eend $?
|
||||||
|
if [[ -f "${EROOT}usr/share/vala-0.16/Makefile.vapigen" ]]; then
|
||||||
|
ebegin "Removing old vala-0.16 makefile template"
|
||||||
|
rm "${EROOT}usr/share/vala-0.16/Makefile.vapigen" &> /dev/null
|
||||||
|
eend $?
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if has_version '<dev-lang/vala-0.17.5:0.18' && [[ -f "${EROOT}usr/share/aclocal/vala-0-18.m4" ]]; then
|
||||||
|
ebegin "Removing old vala-0.18 macros"
|
||||||
|
rm "${EROOT}usr/share/aclocal/vala-0-12.m4" &> /dev/null
|
||||||
|
eend $?
|
||||||
|
if [[ -f "${EROOT}usr/share/vala-0.18/Makefile.vapigen" ]]; then
|
||||||
|
ebegin "Removing old vala-0.18 makefile template"
|
||||||
|
rm "${EROOT}usr/share/vala-0.18/Makefile.vapigen" &> /dev/null
|
||||||
|
eend $?
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
Binary file not shown.
@ -0,0 +1,38 @@
|
|||||||
|
# Copyright 1999-2019 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=7
|
||||||
|
|
||||||
|
inherit findlib
|
||||||
|
|
||||||
|
IUSE="+ocamlopt"
|
||||||
|
|
||||||
|
DESCRIPTION="A package for ocaml that provides access to mysql databases"
|
||||||
|
SRC_URI="http://ygrek.org.ua/p/release/ocaml-mysql/${P}.tar.gz"
|
||||||
|
HOMEPAGE="http://ocaml-mysql.forge.ocamlcore.org/"
|
||||||
|
|
||||||
|
DEPEND=">=dev-lang/ocaml-3.10.2:=[ocamlopt?]
|
||||||
|
sys-libs/zlib
|
||||||
|
dev-db/mysql-connector-c:0="
|
||||||
|
|
||||||
|
RDEPEND="$DEPEND"
|
||||||
|
|
||||||
|
SLOT="0/${PV}"
|
||||||
|
LICENSE="LGPL-2"
|
||||||
|
KEYWORDS="~amd64 ~ppc ~x86"
|
||||||
|
|
||||||
|
src_compile()
|
||||||
|
{
|
||||||
|
emake all
|
||||||
|
if use ocamlopt; then
|
||||||
|
emake opt
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install()
|
||||||
|
{
|
||||||
|
findlib_src_preinst
|
||||||
|
emake install
|
||||||
|
|
||||||
|
dodoc CHANGES README VERSION
|
||||||
|
}
|
Binary file not shown.
@ -1 +1 @@
|
|||||||
DIST sip-4.19.14.dev1812231555.tar.gz 1020224 BLAKE2B e3df5a8b7829278987c5b368b8b6c28c04fc0b3bb3847451e48411ef9ba5cda932007613ad31f34381446ea02d62281b27ae4951babca5ec8b75f065aa296365 SHA512 decf2f7baacede27c42d359eb875a895c9a92b36a8e8a29f4666b3f98f570d821e80dbb32fd946ce230f726fafc4000af9b167df8cfd188bcd7f85fbc71bd4b1
|
DIST sip-4.19.14.tar.gz 1049688 BLAKE2B 8e68910f533d0f58bef1f20ec58579ce0166efaee2caef1c64d4e9878b0887040d9284a9fa5ee48d7a4f0949866d0b988b0d962303f0ace03a4ad48bd08eec5d SHA512 afde261331f38eac863d8cea0e343649f460f0b9a603d7fe91f14583904ea4b488bbd88d20fad5c985c43c6c1683fffee38676d94831ac8f2de40d9ed4d0423e
|
||||||
|
@ -1 +1,2 @@
|
|||||||
DIST bashate-0.3.1.tar.gz 16016 BLAKE2B 72bcb6ef2c8dda48b40351f37971473b9c2137f3a727a355f1742f20355aee8a3898d4aaf61e0e6538b22adbe3ebd34bb30d67d0fb6b5f3535c9b46c1544ce5d SHA512 dfa3e8f98879169cef445cc9a788b4ed051630330e2270c721e472f080899d6742cd3deb571049ba6b943ada0fc77a70f5a7e4742a54d1ca6d5f075a92a00ffb
|
DIST bashate-0.3.1.tar.gz 16016 BLAKE2B 72bcb6ef2c8dda48b40351f37971473b9c2137f3a727a355f1742f20355aee8a3898d4aaf61e0e6538b22adbe3ebd34bb30d67d0fb6b5f3535c9b46c1544ce5d SHA512 dfa3e8f98879169cef445cc9a788b4ed051630330e2270c721e472f080899d6742cd3deb571049ba6b943ada0fc77a70f5a7e4742a54d1ca6d5f075a92a00ffb
|
||||||
|
DIST bashate-0.6.0.tar.gz 30980 BLAKE2B 5b210edaa44a0652a03f30a641a072dba1482e1ca3b42c6b7140a52349ddb271f0137373a4d2f364032c22c176d6caf14be2635038df8a4e86585773d17a1f97 SHA512 bb64d8de0143bf2662497b1571ce654f4ceeb7d1dea3f625705b609ab70ed3b4bca6266c4eba7c2e7d99a1520fb9566a4a4daefa34c9c16538537b446c1da255
|
||||||
|
@ -0,0 +1,34 @@
|
|||||||
|
# Copyright 1999-2019 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=7
|
||||||
|
PYTHON_COMPAT=( python2_7 python3_{4,5,6,7} )
|
||||||
|
DISTUTILS_IN_SOURCE_BUILD=TRUE
|
||||||
|
|
||||||
|
# time
|
||||||
|
RESTRICT="test"
|
||||||
|
|
||||||
|
inherit distutils-r1
|
||||||
|
|
||||||
|
DESCRIPTION="A pep8 equivalent for bash scripts"
|
||||||
|
HOMEPAGE="https://pypi.org/project/bashate/"
|
||||||
|
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
|
||||||
|
|
||||||
|
LICENSE="Apache-2.0"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64 ~x86"
|
||||||
|
IUSE="test"
|
||||||
|
|
||||||
|
DEPEND="
|
||||||
|
dev-python/setuptools[${PYTHON_USEDEP}]
|
||||||
|
>=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
|
||||||
|
!~dev-python/pbr-2.1.0
|
||||||
|
"
|
||||||
|
RDEPEND="
|
||||||
|
>=dev-python/Babel-2.3.4[${PYTHON_USEDEP}]
|
||||||
|
!~dev-pythn/Babel-2.4.0
|
||||||
|
"
|
||||||
|
|
||||||
|
python_install_all() {
|
||||||
|
distutils-r1_python_install_all
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
# Copyright 1999-2019 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=6
|
||||||
|
|
||||||
|
PYTHON_COMPAT=( python2_7 python3_{4,5,6,7} pypy )
|
||||||
|
|
||||||
|
inherit distutils-r1
|
||||||
|
|
||||||
|
DESCRIPTION="Fork of MySQL-python"
|
||||||
|
HOMEPAGE="https://pypi.org/project/mysqlclient/ https://github.com/PyMySQL/mysqlclient-python"
|
||||||
|
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
|
||||||
|
|
||||||
|
SLOT="0"
|
||||||
|
LICENSE="GPL-2"
|
||||||
|
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
|
||||||
|
IUSE="doc"
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
!dev-python/mysql-python
|
||||||
|
dev-db/mysql-connector-c:0="
|
||||||
|
DEPEND="${RDEPEND}
|
||||||
|
dev-python/setuptools[${PYTHON_USEDEP}]
|
||||||
|
doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
|
||||||
|
|
||||||
|
DOCS=( README.md doc/{FAQ,MySQLdb}.rst )
|
||||||
|
|
||||||
|
python_compile_all() {
|
||||||
|
use doc && sphinx-build -b html doc doc/_build/
|
||||||
|
}
|
||||||
|
|
||||||
|
python_install_all() {
|
||||||
|
use doc && local HTML_DOCS=( doc/_build/. )
|
||||||
|
distutils-r1_python_install_all
|
||||||
|
}
|
@ -1,4 +1,3 @@
|
|||||||
DIST pysnmp-4.4.4.tar.gz 436318 BLAKE2B 6e6616a79fc15d457b8da2e2260c65d9d8ef29888c033d80f2f47c8de035d0cff73dc4be1eeced8ef36dac1301b7da0d845837b780815792f545b6ad18d5496e SHA512 960ac73b7356bb236d3853432c094d3aa86a343f5e211065689e6c784293748ec6f2c1c17bf9d96b4cbe2d9d476ebbacbaff4bed7d86370e5ef61e6f03ba8c0e
|
DIST pysnmp-4.4.4.tar.gz 436318 BLAKE2B 6e6616a79fc15d457b8da2e2260c65d9d8ef29888c033d80f2f47c8de035d0cff73dc4be1eeced8ef36dac1301b7da0d845837b780815792f545b6ad18d5496e SHA512 960ac73b7356bb236d3853432c094d3aa86a343f5e211065689e6c784293748ec6f2c1c17bf9d96b4cbe2d9d476ebbacbaff4bed7d86370e5ef61e6f03ba8c0e
|
||||||
DIST pysnmp-4.4.5.tar.gz 438424 BLAKE2B db989eb9faa0d548c7e58a5e9b7127824f2798c116d27b8885b4920f5e0acf9068ea5ad88e13e8e913e24c0d21d414026f6d733cf680b41e59370c960d856197 SHA512 3164e93a8623512d903c86eebdb6f9fa5ffee29309747df4a836e257e87dc5480cf706ab527e1a8966e80c0626961f6f1b68b60cf07df2ddece305706f5445f2
|
|
||||||
DIST pysnmp-4.4.6.tar.gz 434508 BLAKE2B 0613cd115d9b52b12a9e4ca45c0dc6b51a6e8506f5fe4d93641dd53ce61e88f4ed89783692c4220008c345179808bb4a79d4aaf1d828e072d822a0d131204fa1 SHA512 0b53fcb7d266a861b3f8dca228371a7430b5513506b4b7083e112916730cc25311cdef549373271c2da62441a603d3f33e6a1e9417dec3aac074db25fb2be7c8
|
|
||||||
DIST pysnmp-4.4.8.tar.gz 435494 BLAKE2B 801d52660af23f9db9fd6e4fbd7b93f06db65d1c4987d44239da0927a116559ba502f295a5ba345529f15a41971a0f407b60266ef0cbcb328476e7e58e3646e0 SHA512 a4b0954a65818e49ce76455ef48c7c363bbc69031b699b303e8e301e7aa5db10ac5042557cc1727e885b200672ba35aef995baadb989cd95aa90e528c7e97e04
|
DIST pysnmp-4.4.8.tar.gz 435494 BLAKE2B 801d52660af23f9db9fd6e4fbd7b93f06db65d1c4987d44239da0927a116559ba502f295a5ba345529f15a41971a0f407b60266ef0cbcb328476e7e58e3646e0 SHA512 a4b0954a65818e49ce76455ef48c7c363bbc69031b699b303e8e301e7aa5db10ac5042557cc1727e885b200672ba35aef995baadb989cd95aa90e528c7e97e04
|
||||||
|
DIST pysnmp-4.4.9.tar.gz 436017 BLAKE2B 4fa4d1cab4e783542164d8bc5313e2b900cad9fec42e3bd6bc37239514d279d849ee857b3c9c01021750773e02ce951da600f5fbf8676efe31c3bdf580b99f12 SHA512 0832abb4134b77d43f6c750ce6c797c976b5fb99ef02602e7aa6034e4524e229eb33ac5d5b086acfb5740893120eb5b17df648dda48decc5d038476270e5fe1e
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Copyright 1999-2018 Gentoo Foundation
|
# Copyright 1999-2019 Gentoo Authors
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
EAPI=6
|
EAPI=7
|
||||||
PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} )
|
PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} )
|
||||||
inherit distutils-r1
|
inherit distutils-r1
|
||||||
|
|
@ -1,17 +1,17 @@
|
|||||||
# Copyright 1999-2018 Gentoo Foundation
|
# Copyright 1999-2019 Gentoo Authors
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
EAPI=6
|
EAPI=7
|
||||||
PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} )
|
PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} )
|
||||||
inherit distutils-r1
|
inherit distutils-r1 git-r3
|
||||||
|
|
||||||
DESCRIPTION="Python SNMP library"
|
DESCRIPTION="Python SNMP library"
|
||||||
HOMEPAGE="http://snmplabs.com/pysnmp/ https://pypi.org/project/pysnmp/"
|
HOMEPAGE="http://snmplabs.com/pysnmp/ https://pypi.org/project/pysnmp/ https://github.com/etingof/pysnmp"
|
||||||
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
|
EGIT_REPO_URI="https://github.com/etingof/pysnmp"
|
||||||
|
|
||||||
LICENSE="BSD"
|
LICENSE="BSD"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~amd64 ~arm ~ia64 ~ppc ~sparc ~x86"
|
KEYWORDS=""
|
||||||
IUSE="doc examples"
|
IUSE="doc examples"
|
||||||
|
|
||||||
DEPEND="
|
DEPEND="
|
@ -1,3 +1,2 @@
|
|||||||
DIST sip-4.19.13.tar.gz 1038815 BLAKE2B 0b6f2941140a535cfdfb51db71cf9a55e5f65be85961e304496fded7781da42b0ab7d01045b8802468a3ce3b57e7f571851fc7713fd47a03c8344017982d6632 SHA512 eb456e1f7efa463f859047acc5301e19279e1627629d0bad3ac7a0a52b77575126bc3f2c64bb4278ae11d415c13d2731dfc8c816bba71307173d393a414aae98
|
DIST sip-4.19.13.tar.gz 1038815 BLAKE2B 0b6f2941140a535cfdfb51db71cf9a55e5f65be85961e304496fded7781da42b0ab7d01045b8802468a3ce3b57e7f571851fc7713fd47a03c8344017982d6632 SHA512 eb456e1f7efa463f859047acc5301e19279e1627629d0bad3ac7a0a52b77575126bc3f2c64bb4278ae11d415c13d2731dfc8c816bba71307173d393a414aae98
|
||||||
DIST sip-4.19.14.dev1812231555.tar.gz 1020224 BLAKE2B e3df5a8b7829278987c5b368b8b6c28c04fc0b3bb3847451e48411ef9ba5cda932007613ad31f34381446ea02d62281b27ae4951babca5ec8b75f065aa296365 SHA512 decf2f7baacede27c42d359eb875a895c9a92b36a8e8a29f4666b3f98f570d821e80dbb32fd946ce230f726fafc4000af9b167df8cfd188bcd7f85fbc71bd4b1
|
DIST sip-4.19.14.tar.gz 1049688 BLAKE2B 8e68910f533d0f58bef1f20ec58579ce0166efaee2caef1c64d4e9878b0887040d9284a9fa5ee48d7a4f0949866d0b988b0d962303f0ace03a4ad48bd08eec5d SHA512 afde261331f38eac863d8cea0e343649f460f0b9a603d7fe91f14583904ea4b488bbd88d20fad5c985c43c6c1683fffee38676d94831ac8f2de40d9ed4d0423e
|
||||||
DIST sip-4.19.8.tar.gz 1024548 BLAKE2B e43dfe542061db9f1d5981d0cc172d9c8420c4e66c282c52974ab28314c33bd28e6056b61f74b04680c1735c9bd2c4656e1a541f4bae94c858d18713f6222914 SHA512 9c0a9722a9a9dd23e2eabe751d622cdd31b376b7987b2c991f5ef4a8d11853c5c6e9f1c24a0d2d864d3990e2a45c2a159ca8511efd4a7e156a14937ef3c680f7
|
|
||||||
|
@ -1,116 +0,0 @@
|
|||||||
# Copyright 1999-2018 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=6
|
|
||||||
|
|
||||||
PYTHON_COMPAT=( python2_7 python3_{4,5,6} )
|
|
||||||
|
|
||||||
inherit python-r1 toolchain-funcs
|
|
||||||
|
|
||||||
DESCRIPTION="Python extension module generator for C and C++ libraries"
|
|
||||||
HOMEPAGE="https://www.riverbankcomputing.com/software/sip/intro"
|
|
||||||
|
|
||||||
if [[ ${PV} == *9999 ]]; then
|
|
||||||
inherit mercurial
|
|
||||||
EHG_REPO_URI="https://www.riverbankcomputing.com/hg/sip"
|
|
||||||
elif [[ ${PV} == *_pre* ]]; then
|
|
||||||
MY_P=${P/_pre/.dev}
|
|
||||||
SRC_URI="https://dev.gentoo.org/~pesa/distfiles/${MY_P}.tar.gz"
|
|
||||||
S=${WORKDIR}/${MY_P}
|
|
||||||
else
|
|
||||||
SRC_URI="mirror://sourceforge/pyqt/${P}.tar.gz"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Sub-slot based on SIP_API_MAJOR_NR from siplib/sip.h.in
|
|
||||||
SLOT="0/12"
|
|
||||||
LICENSE="|| ( GPL-2 GPL-3 SIP )"
|
|
||||||
KEYWORDS="alpha amd64 ~arm ~arm64 ~hppa ia64 ppc ppc64 ~sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
|
|
||||||
IUSE="debug doc"
|
|
||||||
|
|
||||||
RDEPEND="${PYTHON_DEPS}"
|
|
||||||
DEPEND="${RDEPEND}"
|
|
||||||
if [[ ${PV} == *9999 ]]; then
|
|
||||||
DEPEND+="
|
|
||||||
sys-devel/bison
|
|
||||||
sys-devel/flex
|
|
||||||
doc? ( dev-python/sphinx[$(python_gen_usedep 'python2*')] )"
|
|
||||||
fi
|
|
||||||
|
|
||||||
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
|
|
||||||
if [[ ${PV} == *9999 ]]; then
|
|
||||||
REQUIRED_USE+=" || ( $(python_gen_useflags 'python2*') )"
|
|
||||||
fi
|
|
||||||
|
|
||||||
PATCHES=( "${FILESDIR}"/${PN}-4.18-darwin.patch )
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
if [[ ${PV} == *9999 ]]; then
|
|
||||||
python_setup 'python2*'
|
|
||||||
"${PYTHON}" build.py prepare || die
|
|
||||||
if use doc; then
|
|
||||||
"${PYTHON}" build.py doc || die
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Sub-slot sanity check
|
|
||||||
local sub_slot=${SLOT#*/}
|
|
||||||
local sip_api_major_nr=$(sed -nre 's:^#define SIP_API_MAJOR_NR\s+([0-9]+):\1:p' siplib/sip.h.in)
|
|
||||||
if [[ ${sub_slot} != ${sip_api_major_nr} ]]; then
|
|
||||||
eerror
|
|
||||||
eerror "Ebuild sub-slot (${sub_slot}) does not match SIP_API_MAJOR_NR (${sip_api_major_nr})"
|
|
||||||
eerror "Please update SLOT variable as follows:"
|
|
||||||
eerror " SLOT=\"${SLOT%%/*}/${sip_api_major_nr}\""
|
|
||||||
eerror
|
|
||||||
die "sub-slot sanity check failed"
|
|
||||||
fi
|
|
||||||
|
|
||||||
default
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
configuration() {
|
|
||||||
if ! python_is_python3; then
|
|
||||||
local CFLAGS="${CFLAGS} -fno-strict-aliasing"
|
|
||||||
fi
|
|
||||||
|
|
||||||
local myconf=(
|
|
||||||
"${PYTHON}"
|
|
||||||
"${S}"/configure.py
|
|
||||||
--bindir="${EPREFIX}/usr/bin"
|
|
||||||
--destdir="$(python_get_sitedir)"
|
|
||||||
--incdir="$(python_get_includedir)"
|
|
||||||
$(usex debug --debug '')
|
|
||||||
AR="$(tc-getAR) cqs"
|
|
||||||
CC="$(tc-getCC)"
|
|
||||||
CFLAGS="${CFLAGS}"
|
|
||||||
CFLAGS_RELEASE=
|
|
||||||
CXX="$(tc-getCXX)"
|
|
||||||
CXXFLAGS="${CXXFLAGS}"
|
|
||||||
CXXFLAGS_RELEASE=
|
|
||||||
LINK="$(tc-getCXX)"
|
|
||||||
LINK_SHLIB="$(tc-getCXX)"
|
|
||||||
LFLAGS="${LDFLAGS}"
|
|
||||||
LFLAGS_RELEASE=
|
|
||||||
RANLIB=
|
|
||||||
STRIP=
|
|
||||||
)
|
|
||||||
echo "${myconf[@]}"
|
|
||||||
"${myconf[@]}" || die
|
|
||||||
}
|
|
||||||
python_foreach_impl run_in_build_dir configuration
|
|
||||||
}
|
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
python_foreach_impl run_in_build_dir default
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
installation() {
|
|
||||||
emake DESTDIR="${D}" install
|
|
||||||
python_optimize
|
|
||||||
}
|
|
||||||
python_foreach_impl run_in_build_dir installation
|
|
||||||
|
|
||||||
einstalldocs
|
|
||||||
use doc && dodoc -r doc/html
|
|
||||||
}
|
|
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue