parent
a0bbb20bd8
commit
8190b8bc0d
Binary file not shown.
Binary file not shown.
@ -1,8 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>robbat2@gentoo.org</email>
|
||||
</maintainer>
|
||||
<maintainer type="project">
|
||||
<email>games@gentoo.org</email>
|
||||
<name>Gentoo Games Project</name>
|
||||
<email>perl@gentoo.org</email>
|
||||
</maintainer>
|
||||
</pkgmetadata>
|
@ -0,0 +1,9 @@
|
||||
# Copyright 2020-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit acct-group
|
||||
|
||||
DESCRIPTION="MogileFS group"
|
||||
ACCT_GROUP_ID=231
|
Binary file not shown.
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>robbat2@gentoo.org</email>
|
||||
</maintainer>
|
||||
<maintainer type="project">
|
||||
<email>perl@gentoo.org</email>
|
||||
</maintainer>
|
||||
</pkgmetadata>
|
@ -0,0 +1,13 @@
|
||||
# Copyright 2020-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit acct-user
|
||||
|
||||
DESCRIPTION="MogileFS user"
|
||||
ACCT_USER_ID=460
|
||||
ACCT_USER_ENFORCE_ID=1
|
||||
ACCT_USER_GROUPS=( mogile )
|
||||
|
||||
acct-user_add_deps
|
Binary file not shown.
@ -1,3 +1,2 @@
|
||||
DIST speech_tools-2.1-r3-patches.tar.gz 6876 BLAKE2B 84ddc30de90459f913cc32d4338097feb35dc08c48cbda7fc47a78ee0384668828d7166a5ebb1264272a6c326afd4ff2efdf1d793bb8f33937c09d2c7cd9a2b5 SHA512 db4d656a77e3fcfc43447c11b160cf9b45f0c4ec10f2697e4357f0ec86ea56e2841f1b887493a781406975003f5d8065ffbb75eeebb79fcd9873055b52c248e3
|
||||
DIST speech_tools-2.1-release.tar.gz 1681999 BLAKE2B 572e7877e195c098dd2df03cda86fe58b7a55379cd01adcc22faf5e12b8c004e8c006b852cfe88c5c20df4a0e54e357b445050cdb63088edd55714a98e3eda90 SHA512 6ef9a7dd01ede152c4dafd0b2037312d62a79d875813d74ea048899a52eee505b93ffbabef9b6c0a1d15aeadb5508fd18a2f392e85276847fe071173aec5db96
|
||||
DIST speech_tools-2.5.0-release.tar.gz 1328624 BLAKE2B 445dd5a5e39c02352a850fd92de5b3852ae382a4bd013dccb3fdd46b0b22ce0bd10d089f9e860ae3d3e73a489b20b7c8b78335e57a49e40ae01b0f4997d55315 SHA512 013540a5252efb57633f442143a51bc87aac719dfb46c8f47e750322d19dac9b504f55125462a2ee74a6b0bd2661a63a1fc73a8c3c6d2886e38b136a80447fd7
|
||||
|
@ -1,20 +0,0 @@
|
||||
--- a/siod/siod.cc
|
||||
+++ b/siod/siod.cc
|
||||
@@ -459,7 +459,7 @@ char **siod_variable_generator(char *text,int length)
|
||||
matches = walloc(char *,siod_llength(lmatches)+1);
|
||||
for (l=lmatches,i=0; l; l=cdr(l),i++)
|
||||
matches[i] = wstrdup(PNAME(car(l)));
|
||||
- matches[i] = '\0';
|
||||
+ *matches[i] = '\0';
|
||||
|
||||
return matches;
|
||||
}
|
||||
@@ -498,7 +498,7 @@ char **siod_command_generator (char *text,int length)
|
||||
matches = walloc(char *,siod_llength(lmatches)+1);
|
||||
for (l=lmatches,i=0; l; l=cdr(l),i++)
|
||||
matches[i] = wstrdup(PNAME(car(l)));
|
||||
- matches[i] = '\0';
|
||||
+ *matches[i] = '\0';
|
||||
|
||||
return matches;
|
||||
}
|
@ -1,120 +0,0 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit eutils epatch flag-o-matic multilib toolchain-funcs
|
||||
|
||||
MY_P=${P/speech-/speech_}
|
||||
PATCHSET="r3"
|
||||
|
||||
DESCRIPTION="Speech tools for Festival Text to Speech engine"
|
||||
HOMEPAGE="http://www.cstr.ed.ac.uk/projects/speech_tools/"
|
||||
SRC_URI="http://www.festvox.org/packed/festival/${PV}/${MY_P}-release.tar.gz
|
||||
https://dev.gentoo.org/~neurogeek/${PN}/${MY_P}-${PATCHSET}-patches.tar.gz"
|
||||
|
||||
LICENSE="FESTIVAL HPND BSD rc regexp-UofT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~mips ppc ppc64 sparc x86"
|
||||
IUSE="nas X"
|
||||
|
||||
RDEPEND="
|
||||
nas? ( media-libs/nas )
|
||||
X? ( x11-libs/libX11
|
||||
x11-libs/libXt )
|
||||
>=media-libs/alsa-lib-1.0.20-r1
|
||||
!<app-accessibility/festival-1.96_beta
|
||||
!sys-power/powerman
|
||||
>=sys-libs/ncurses-5.6-r2:0=
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
virtual/pkgconfig
|
||||
"
|
||||
|
||||
S="${WORKDIR}/speech_tools"
|
||||
|
||||
src_prepare() {
|
||||
EPATCH_SUFFIX="patch"
|
||||
epatch
|
||||
|
||||
sed -i -e 's,{{HORRIBLELIBARCHKLUDGE}},"/usr/$(get_libdir)",' \
|
||||
main/siod_main.cc || die
|
||||
|
||||
#WRT bug #309983
|
||||
sed -i -e "s:\(GCC_SYSTEM_OPTIONS =\).*:\1:" \
|
||||
"${S}"/config/systems/sparc_SunOS5.mak || die
|
||||
|
||||
# Fix underlinking, bug #493204
|
||||
epatch "${FILESDIR}"/${PN}-2.1-underlinking.patch
|
||||
|
||||
# Fix gcc7 build failure, bug #634224
|
||||
epatch "${FILESDIR}"/${PN}-2.1-gcc7.patch
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local CONFIG=config/config.in
|
||||
sed -i -e 's/@COMPILERTYPE@/gcc42/' ${CONFIG} || die
|
||||
if use nas; then
|
||||
sed -i -e "s/#.*\(INCLUDE_MODULES += NAS_AUDIO\)/\1/" \
|
||||
${CONFIG} || die
|
||||
fi
|
||||
if ! use X; then
|
||||
sed -i -e "s/-lX11 -lXt//" config/modules/esd_audio.mak || die
|
||||
fi
|
||||
econf
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake -j1 CC="$(tc-getCC)" CXX="$(tc-getCXX)" CXX_OTHER_FLAGS="${CXXFLAGS}" CC_OTHER_FLAGS="${CFLAGS}" \
|
||||
LDFLAGS="${LDFLAGS}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dolib.so lib/libest*.so*
|
||||
|
||||
dodoc "${S}"/README
|
||||
dodoc "${S}"/lib/cstrutt.dtd
|
||||
|
||||
insinto /usr/share/doc/${PF}
|
||||
doins -r lib/example_data
|
||||
|
||||
insinto /usr/share/speech-tools
|
||||
doins -r config base_class
|
||||
|
||||
insinto /usr/share/speech-tools/lib
|
||||
doins -r lib/siod
|
||||
|
||||
cd include || die
|
||||
insinto /usr/include/speech-tools
|
||||
doins -r *
|
||||
dosym ../../include/speech-tools /usr/share/speech-tools/include
|
||||
|
||||
cd ../bin || die
|
||||
for file in *; do
|
||||
[ "${file}" = "Makefile" ] && continue
|
||||
dobin ${file}
|
||||
dstfile="${D}/usr/bin/${file}"
|
||||
sed -i -e "s:${S}/testsuite/data:/usr/share/speech-tools/testsuite:g" \
|
||||
${dstfile} || die
|
||||
sed -i -e "s:${S}/bin:/usr/$(get_libdir)/speech-tools:g" \
|
||||
${dstfile} || die
|
||||
sed -i -e "s:${S}/main:/usr/$(get_libdir)/speech-tools:g" \
|
||||
${dstfile} || die
|
||||
|
||||
# This just changes LD_LIBRARY_PATH
|
||||
sed -i -e "s:${S}/lib:/usr/$(get_libdir):g" ${dstfile} || die
|
||||
done
|
||||
|
||||
cd "${S}" || die
|
||||
exeinto /usr/$(get_libdir)/speech-tools
|
||||
for file in `find main -perm /111 -type f`; do
|
||||
doexe ${file}
|
||||
done
|
||||
|
||||
#Remove /usr/bin/resynth as it is broken. See bug #253556
|
||||
rm "${D}/usr/bin/resynth" || die
|
||||
|
||||
# Remove bcat (only useful for testing on windows, see bug #418301).
|
||||
rm "${D}/usr/bin/bcat" || die
|
||||
rm "${D}/usr/$(get_libdir)/speech-tools/bcat" || die
|
||||
}
|
Binary file not shown.
@ -0,0 +1,18 @@
|
||||
--- a/print-ar.sh
|
||||
+++ b/print-ar.sh
|
||||
@@ -1,7 +1,7 @@
|
||||
cat warn-auto.sh
|
||||
echo 'main="$1"; shift'
|
||||
echo 'rm -f "$main"'
|
||||
-echo 'ar cr "$main" ${1+"$@"}'
|
||||
+echo '${AR} cr "$main" ${1+"$@"}'
|
||||
case "`cat systype`" in
|
||||
sunos-5.*) ;;
|
||||
unix_sv*) ;;
|
||||
@@ -10,5 +10,5 @@
|
||||
dgux-*) ;;
|
||||
hp-ux-*) ;;
|
||||
sco*) ;;
|
||||
- *) echo 'ranlib "$main"' ;;
|
||||
+ *) echo '${RANLIB} "$main"' ;;
|
||||
esac
|
Binary file not shown.
@ -0,0 +1,11 @@
|
||||
--- a/src/kfoldersync.cxx 2017-01-24 10:27:17.000000000 +0100
|
||||
+++ b/src/kfoldersync.cxx 2021-05-08 23:52:28.891166974 +0200
|
||||
@@ -173,7 +173,7 @@
|
||||
{
|
||||
// Connect to dbus (keep it without parent to avoid potential SIGABRT)
|
||||
static const KDBusService dbus_service(KDBusService::Unique);
|
||||
- connect(&dbus_service, &KDBusService::activateRequested, this, [&]{KStartupInfo::setNewStartupId(this, KStartupInfo::startupId()); KWindowSystem::forceActiveWindow(winId());}, Qt::DirectConnection);
|
||||
+ connect(&dbus_service, &KDBusService::activateRequested, this, [&]{KStartupInfo::setNewStartupId(this->window()->windowHandle(), KStartupInfo::startupId()); KWindowSystem::forceActiveWindow(winId());}, Qt::DirectConnection);
|
||||
|
||||
// Setup toolbar
|
||||
QMenu * const app_menu = new QMenu(this);
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,8 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="project">
|
||||
<email>vim@gentoo.org</email>
|
||||
<name>Gentoo Vim Project</name>
|
||||
</maintainer>
|
||||
<maintainer type="project">
|
||||
<email>vim@gentoo.org</email>
|
||||
<name>Gentoo Vim Project</name>
|
||||
</maintainer>
|
||||
<upstream>
|
||||
<changelog>https://invisible-island.net/vile/CHANGES.html</changelog>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
||||
|
Binary file not shown.
@ -0,0 +1,93 @@
|
||||
From 91ad9b94bcd964adfbaa8d84d8f39304d39835d0 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Brauner <christian.brauner@ubuntu.com>
|
||||
Date: Thu, 6 May 2021 18:16:45 +0200
|
||||
Subject: [PATCH] conf: handle kernels with CAP_SETFCAP
|
||||
|
||||
LXC is being very clever and sometimes maps the caller's uid into the
|
||||
child userns. This means that the caller can technically write fscaps
|
||||
that are valid in the ancestor userns (which can be a security issue in
|
||||
some scenarios) so newer kernels require CAP_SETFCAP to do this. Until
|
||||
newuidmap/newgidmap are updated to account for this simply write the
|
||||
mapping directly in this case.
|
||||
|
||||
Cc: stable-4.0
|
||||
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
|
||||
---
|
||||
src/lxc/conf.c | 25 ++++++++++++++++++++-----
|
||||
1 file changed, 20 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/src/lxc/conf.c b/src/lxc/conf.c
|
||||
index 72e21b5300..f388946970 100644
|
||||
--- a/src/lxc/conf.c
|
||||
+++ b/src/lxc/conf.c
|
||||
@@ -2978,6 +2978,9 @@ static int lxc_map_ids_exec_wrapper(void *args)
|
||||
return -1;
|
||||
}
|
||||
|
||||
+static struct id_map *find_mapped_hostid_entry(const struct lxc_list *idmap,
|
||||
+ unsigned id, enum idtype idtype);
|
||||
+
|
||||
int lxc_map_ids(struct lxc_list *idmap, pid_t pid)
|
||||
{
|
||||
int fill, left;
|
||||
@@ -2991,12 +2994,22 @@ int lxc_map_ids(struct lxc_list *idmap, pid_t pid)
|
||||
char mapbuf[STRLITERALLEN("new@idmap") + STRLITERALLEN(" ") +
|
||||
INTTYPE_TO_STRLEN(pid_t) + STRLITERALLEN(" ") +
|
||||
LXC_IDMAPLEN] = {0};
|
||||
- bool had_entry = false, use_shadow = false;
|
||||
+ bool had_entry = false, maps_host_root = false, use_shadow = false;
|
||||
int hostuid, hostgid;
|
||||
|
||||
hostuid = geteuid();
|
||||
hostgid = getegid();
|
||||
|
||||
+ /*
|
||||
+ * Check whether caller wants to map host root.
|
||||
+ * Due to a security fix newer kernels require CAP_SETFCAP when mapping
|
||||
+ * host root into the child userns as you would be able to write fscaps
|
||||
+ * that would be valid in the ancestor userns. Mapping host root should
|
||||
+ * rarely be the case but LXC is being clever in a bunch of cases.
|
||||
+ */
|
||||
+ if (find_mapped_hostid_entry(idmap, 0, ID_TYPE_UID))
|
||||
+ maps_host_root = true;
|
||||
+
|
||||
/* If new{g,u}idmap exists, that is, if shadow is handing out subuid
|
||||
* ranges, then insist that root also reserve ranges in subuid. This
|
||||
* will protected it by preventing another user from being handed the
|
||||
@@ -3014,7 +3027,9 @@ int lxc_map_ids(struct lxc_list *idmap, pid_t pid)
|
||||
else if (!gidmap)
|
||||
WARN("newgidmap is lacking necessary privileges");
|
||||
|
||||
- if (uidmap > 0 && gidmap > 0) {
|
||||
+ if (maps_host_root) {
|
||||
+ INFO("Caller maps host root. Writing mapping directly");
|
||||
+ } else if (uidmap > 0 && gidmap > 0) {
|
||||
DEBUG("Functional newuidmap and newgidmap binary found");
|
||||
use_shadow = true;
|
||||
} else {
|
||||
@@ -4229,14 +4244,14 @@ static struct id_map *mapped_nsid_add(const struct lxc_conf *conf, unsigned id,
|
||||
return retmap;
|
||||
}
|
||||
|
||||
-static struct id_map *find_mapped_hostid_entry(const struct lxc_conf *conf,
|
||||
+static struct id_map *find_mapped_hostid_entry(const struct lxc_list *idmap,
|
||||
unsigned id, enum idtype idtype)
|
||||
{
|
||||
struct id_map *map;
|
||||
struct lxc_list *it;
|
||||
struct id_map *retmap = NULL;
|
||||
|
||||
- lxc_list_for_each (it, &conf->id_map) {
|
||||
+ lxc_list_for_each (it, idmap) {
|
||||
map = it->elem;
|
||||
if (map->idtype != idtype)
|
||||
continue;
|
||||
@@ -4265,7 +4280,7 @@ static struct id_map *mapped_hostid_add(const struct lxc_conf *conf, uid_t id,
|
||||
return NULL;
|
||||
|
||||
/* Reuse existing mapping. */
|
||||
- tmp = find_mapped_hostid_entry(conf, id, type);
|
||||
+ tmp = find_mapped_hostid_entry(&conf->id_map, id, type);
|
||||
if (tmp) {
|
||||
memcpy(entry, tmp, sizeof(*entry));
|
||||
} else {
|
@ -1,2 +1 @@
|
||||
DIST xcpc-0.35.0.tar.gz 1058202 BLAKE2B f5002fcc69a078cd05c05a981522edd15900295136419157f997effd81a89f7452cec335bbdba0be3b303bdc8f8537d4aac255ee7cf4e9ec53cc1143413ad1c1 SHA512 667db6db33f2cab85647960edb5b1c200037bfc464527a60eca85c31549360226893853a38d98e657bde111a28aca47d9741b16b13284759b66cb6213da27458
|
||||
DIST xcpc-0.36.0.tar.gz 1092363 BLAKE2B 4f799aefa417f6e2c04c0c3760c4d15b10b863f528e5051cfe90ea5a8ccb4c3f83fb592bbf510a351c02dc42a2a2a42f9fcb33b65a5e2dd997feeb5ea22f5342 SHA512 0cf6e718daf6b7db981aa607036e57eddb2ae18665393b0a691d8fd6978278ca077ae45a205eae93b6107b83d5d219702018f1afcda84ae7b83a7b6d68a68cba
|
||||
DIST xcpc-0.37.0.tar.gz 1094259 BLAKE2B 670de05f53d05d375c9cb252e672f8fa9027419302b521b88dc1904ec99571fa95b390bfdc5eea3eb2355730c02a955c10cbc2f29d7e4c52506173e8f5d6c540 SHA512 8579711595ac5234c1c8a6e9d0279950c97966a2a8919d4f0ba404c5bd5609f299ab0b5131d6973f5decfc12bff184facf3009522bef568a108b5cfb7e74be11
|
||||
|
@ -1,29 +0,0 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit xdg
|
||||
|
||||
DESCRIPTION="XCPC is a portable Amstrad CPC 464/664/6128 emulator written in C."
|
||||
HOMEPAGE="http://www.xcpc-emulator.net/doku.php/index"
|
||||
SRC_URI="https://bitbucket.org/ponceto/xcpc/downloads/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
DEPEND="
|
||||
app-arch/bzip2
|
||||
sys-libs/zlib
|
||||
x11-libs/libX11
|
||||
x11-libs/libXext
|
||||
x11-libs/libXt
|
||||
x11-libs/motif"
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
src_configure() {
|
||||
econf \
|
||||
--disable-athena \
|
||||
--enable-motif2
|
||||
}
|
Binary file not shown.
@ -1,2 +1,2 @@
|
||||
DIST ibus-m17n-1.4.3.tar.gz 489392 BLAKE2B bd37fb1f7160d4306be008e4f27fc5852db54318e6075f0887294f7ce30406ff697f41c5cc56734cffa4605b37f28cb89b3eb04a942e6acf352be50a273bd71f SHA512 8b42bcac8662b4924f54b6fe56427b32603746a3d1b0dfafb6dfec1296ec52847119f94fabb0a276f9de5918414fdf5f7b5aceaaabd8c01632cfd677344598ab
|
||||
DIST ibus-m17n-1.4.4.tar.gz 490328 BLAKE2B e7b5c417d4cc16cea736dfadc504137218397ed1ce6318dc6edc48ec33b13051b43d2f7926a959aafe79025c2af1a35374a7dcb4cb4fee952df85b25b604d07a SHA512 df8be7ceaa2183ffb377e39f52b271f18825a8970f88972d0a43ed1fa2721d36bf564a20f89311541ffe19546441322fc568c4819e42e41bdff45ee137d6de80
|
||||
DIST ibus-m17n-1.4.5.tar.gz 493250 BLAKE2B a5fd4de169997dea78acf6273a7e44cefbc9ab4499cbee92c30f394ef7267c15fb1af42d45d227bc160150f35195477f9ec3d2534f9764bab4fa86c0fae046eb SHA512 64bed564d59b0992ebc8a931e0845f687c176e5336d7c7fbc1d575433eb276714615f8fee412a532ec2c8870e46d8d6c41636c984b666c92427dadbdc84838b5
|
||||
|
@ -0,0 +1,24 @@
|
||||
https://github.com/rime/librime/issues/462
|
||||
https://github.com/rime/librime/pull/463
|
||||
https://github.com/rime/librime/commit/57cffcd02ac70148e21ce982be834876b3df87db
|
||||
|
||||
--- /src/rime/gear/script_translator.cc
|
||||
+++ /src/rime/gear/script_translator.cc
|
||||
@@ -8,6 +8,7 @@
|
||||
//
|
||||
#include <algorithm>
|
||||
#include <stack>
|
||||
+#include <cmath>
|
||||
#include <boost/algorithm/string/join.hpp>
|
||||
#include <boost/range/adaptor/reversed.hpp>
|
||||
#include <rime/composition.h>
|
||||
--- /src/rime/gear/table_translator.cc
|
||||
+++ /src/rime/gear/table_translator.cc
|
||||
@@ -6,6 +6,7 @@
|
||||
//
|
||||
#include <boost/algorithm/string.hpp>
|
||||
#include <boost/range/adaptor/reversed.hpp>
|
||||
+#include <cmath>
|
||||
#include <utf8.h>
|
||||
#include <rime/candidate.h>
|
||||
#include <rime/common.h>
|
Binary file not shown.
@ -1,108 +0,0 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit flag-o-matic
|
||||
|
||||
MY_P=${P/_/-}
|
||||
|
||||
DESCRIPTION="GNU Midnight Commander is a text based file manager"
|
||||
HOMEPAGE="https://www.midnight-commander.org"
|
||||
SRC_URI="http://ftp.midnight-commander.org/${MY_P}.tar.xz"
|
||||
|
||||
LICENSE="GPL-3"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris"
|
||||
IUSE="+edit gpm nls samba sftp +slang spell test unicode X +xdg"
|
||||
|
||||
REQUIRED_USE="spell? ( edit )"
|
||||
|
||||
RDEPEND=">=dev-libs/glib-2.26.0:2
|
||||
gpm? ( sys-libs/gpm )
|
||||
kernel_linux? ( sys-fs/e2fsprogs )
|
||||
samba? ( net-fs/samba )
|
||||
sftp? ( net-libs/libssh2 )
|
||||
slang? ( >=sys-libs/slang-2 )
|
||||
!slang? ( sys-libs/ncurses:0=[unicode?] )
|
||||
spell? ( app-text/aspell )
|
||||
X? ( x11-libs/libX11
|
||||
x11-libs/libICE
|
||||
x11-libs/libXau
|
||||
x11-libs/libXdmcp
|
||||
x11-libs/libSM )"
|
||||
DEPEND="${RDEPEND}
|
||||
app-arch/xz-utils
|
||||
virtual/pkgconfig
|
||||
nls? ( sys-devel/gettext )
|
||||
test? ( dev-libs/check )
|
||||
"
|
||||
|
||||
PATCHES=("${FILESDIR}"/${P}-shadow-crash.patch)
|
||||
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
pkg_pretend() {
|
||||
if use slang && use unicode ; then
|
||||
ewarn "\"unicode\" USE flag only takes effect when the \"slang\" USE flag is disabled."
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
[[ ${CHOST} == *-solaris* ]] && append-ldflags "-lnsl -lsocket"
|
||||
|
||||
local myeconfargs=(
|
||||
--enable-charset
|
||||
--enable-vfs
|
||||
--with-homedir=$(usex xdg 'XDG' '.mc')
|
||||
--with-screen=$(usex slang 'slang' "ncurses$(usex unicode 'w' '')")
|
||||
$(use_enable kernel_linux vfs-undelfs)
|
||||
# Today mclib does not expose any headers and is linked to
|
||||
# single 'mc' binary. Thus there is no advantage of having
|
||||
# a library. Let's avoid shared library altogether
|
||||
# as it also conflicts with sci-libs/mc: bug #685938
|
||||
--disable-mclib
|
||||
$(use_enable nls)
|
||||
$(use_enable samba vfs-smb)
|
||||
$(use_enable sftp vfs-sftp)
|
||||
$(use_enable spell aspell)
|
||||
$(use_enable test tests)
|
||||
$(use_with gpm gpm-mouse)
|
||||
$(use_with X x)
|
||||
$(use_with edit internal-edit)
|
||||
)
|
||||
econf "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# CK_FORK=no to avoid using fork() in check library
|
||||
# as mc mocks fork() itself: bug #644462.
|
||||
#
|
||||
# VERBOSE=1 to make test failures contain detailed
|
||||
# information.
|
||||
CK_FORK=no emake check VERBOSE=1
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" install
|
||||
dodoc AUTHORS README NEWS
|
||||
|
||||
# fix bug #334383
|
||||
if use kernel_linux && [[ ${EUID} == 0 ]] ; then
|
||||
fowners root:tty /usr/libexec/mc/cons.saver
|
||||
fperms g+s /usr/libexec/mc/cons.saver
|
||||
fi
|
||||
|
||||
if ! use xdg ; then
|
||||
sed 's@MC_XDG_OPEN="xdg-open"@MC_XDG_OPEN="/bin/false"@' \
|
||||
-i "${ED}"/usr/libexec/mc/ext.d/*.sh || die
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog "To enable exiting to latest working directory,"
|
||||
elog "put this into your ~/.bashrc:"
|
||||
elog ". ${EPREFIX}/usr/libexec/mc/mc.sh"
|
||||
}
|
Binary file not shown.
@ -1,4 +1,2 @@
|
||||
DIST nattka-0.2.11.1.tar.gz 94986 BLAKE2B fa80b514913e1752c2bb581b7d7f2dc1f9e2b7ffdf7672a61fdd2cf49ff5677cd1842949885beb9f9fd7228aa89e1e7b9091fcf77a4a7d3c71b372ba40c9edb3 SHA512 22fb3f3685fb454f768c754a2574efc4b40d1c3abaa4b8283e38a426d1f443f5328ca5c6eb2c06a7240166de36ee9e3af88623dc7ef3f14b99903177bde1cdc5
|
||||
DIST nattka-0.2.11.tar.gz 93992 BLAKE2B ad088de5f96ec5f7f8b0922420d22ef507e1e79ef3bc3161e6a88cd4714f1007a000ab06a7e21245b2792fd3056474459bf424da0560b8666c5cf46f04a2d763 SHA512 5d9de9f437a15e149ce58348f40f86101c10fe1f4c4ce869e7038ba25fc212c22e024a9999a6197179a0a1e1e82380356d304841c33333e04949caaadef96db7
|
||||
DIST nattka-0.2.12.tar.gz 92954 BLAKE2B c4ffd44030da0224963d7fa367336d7ab9076b17f03292f5e65b7855823b34374b8d7626c4b97c155d10797f2d550f3c20cac39f68cfbfc4b8038406f37b21b0 SHA512 f1e775895d66505b09a3098525f998f87bb1561538f0e75b993b264f87f61937d7d5c71999018fe93c683366ef81dff5b7fef1e1d44af63153003f70d7933273
|
||||
DIST nattka-0.2.13.tar.gz 93917 BLAKE2B 48e5245234d0ef0fd47353bac0d971d6187f59d94c0fb58f4cce160ee28f847a8fb32f8399af3148daaac299b32b590899de716dee1ee9cf107b1efe2451189f SHA512 0d3428cb3b5dee3fcdc29b9d22b5c05d626d26060fcd5518f789493fc68e51762edf9162a9b5b19c6c08fb9cb9c0e350faa41d96c53bd924b50475176140ccdb
|
||||
|
@ -1,37 +0,0 @@
|
||||
# Copyright 2020-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
DISTUTILS_USE_SETUPTOOLS=rdepend
|
||||
PYTHON_COMPAT=( python3_{8..9} )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="A New Arch Tester Toolkit -- open-source stable-bot replacement"
|
||||
HOMEPAGE="https://github.com/mgorny/nattka/"
|
||||
SRC_URI="https://github.com/mgorny/nattka/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="BSD-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86 ~x64-macos"
|
||||
IUSE="depgraph-order"
|
||||
RESTRICT="test"
|
||||
|
||||
RDEPEND="
|
||||
dev-python/lxml[${PYTHON_USEDEP}]
|
||||
dev-python/requests[${PYTHON_USEDEP}]
|
||||
<dev-util/pkgcheck-0.9[${PYTHON_USEDEP}]
|
||||
dev-vcs/git
|
||||
<sys-apps/pkgcore-0.11.3[${PYTHON_USEDEP}]
|
||||
depgraph-order? (
|
||||
dev-python/networkx[${PYTHON_USEDEP}]
|
||||
)"
|
||||
BDEPEND="
|
||||
test? (
|
||||
dev-python/freezegun[${PYTHON_USEDEP}]
|
||||
dev-python/vcrpy[${PYTHON_USEDEP}]
|
||||
)"
|
||||
|
||||
distutils_enable_sphinx doc --no-autodoc
|
||||
distutils_enable_tests pytest
|
@ -1,36 +0,0 @@
|
||||
# Copyright 2020-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
DISTUTILS_USE_SETUPTOOLS=rdepend
|
||||
PYTHON_COMPAT=( python3_{8..9} )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="A New Arch Tester Toolkit -- open-source stable-bot replacement"
|
||||
HOMEPAGE="https://github.com/mgorny/nattka/"
|
||||
SRC_URI="https://github.com/mgorny/nattka/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="BSD-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ppc ppc64 ~s390 sparc x86 ~x64-macos"
|
||||
IUSE="depgraph-order"
|
||||
|
||||
RDEPEND="
|
||||
dev-python/lxml[${PYTHON_USEDEP}]
|
||||
dev-python/requests[${PYTHON_USEDEP}]
|
||||
dev-util/pkgcheck[${PYTHON_USEDEP}]
|
||||
dev-vcs/git
|
||||
sys-apps/pkgcore[${PYTHON_USEDEP}]
|
||||
depgraph-order? (
|
||||
dev-python/networkx[${PYTHON_USEDEP}]
|
||||
)"
|
||||
BDEPEND="
|
||||
test? (
|
||||
dev-python/freezegun[${PYTHON_USEDEP}]
|
||||
dev-python/vcrpy[${PYTHON_USEDEP}]
|
||||
)"
|
||||
|
||||
distutils_enable_sphinx doc --no-autodoc
|
||||
distutils_enable_tests pytest
|
Binary file not shown.
@ -0,0 +1,104 @@
|
||||
# Copyright 2019-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit bash-completion-r1 go-module
|
||||
|
||||
DESCRIPTION="A general-purpose command-line fuzzy finder, written in GoLang"
|
||||
HOMEPAGE="https://github.com/junegunn/fzf"
|
||||
|
||||
# For fancy versioning only. Bump on the next release!
|
||||
MY_GIT_REV=6654239
|
||||
|
||||
EGO_SUM=(
|
||||
"github.com/gdamore/encoding v1.0.0"
|
||||
"github.com/gdamore/encoding v1.0.0/go.mod"
|
||||
"github.com/gdamore/tcell v1.4.0"
|
||||
"github.com/gdamore/tcell v1.4.0/go.mod"
|
||||
"github.com/lucasb-eyer/go-colorful v1.0.3/go.mod"
|
||||
"github.com/lucasb-eyer/go-colorful v1.2.0"
|
||||
"github.com/lucasb-eyer/go-colorful v1.2.0/go.mod"
|
||||
"github.com/mattn/go-isatty v0.0.12"
|
||||
"github.com/mattn/go-isatty v0.0.12/go.mod"
|
||||
"github.com/mattn/go-runewidth v0.0.7/go.mod"
|
||||
"github.com/mattn/go-runewidth v0.0.12"
|
||||
"github.com/mattn/go-runewidth v0.0.12/go.mod"
|
||||
"github.com/mattn/go-shellwords v1.0.11"
|
||||
"github.com/mattn/go-shellwords v1.0.11/go.mod"
|
||||
"github.com/rivo/uniseg v0.1.0/go.mod"
|
||||
"github.com/rivo/uniseg v0.2.0"
|
||||
"github.com/rivo/uniseg v0.2.0/go.mod"
|
||||
"github.com/saracen/walker v0.1.2"
|
||||
"github.com/saracen/walker v0.1.2/go.mod"
|
||||
"golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod"
|
||||
"golang.org/x/sync v0.0.0-20210220032951-036812b2e83c"
|
||||
"golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod"
|
||||
"golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756/go.mod"
|
||||
"golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod"
|
||||
"golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod"
|
||||
"golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57"
|
||||
"golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod"
|
||||
"golang.org/x/term v0.0.0-20210317153231-de623e64d2a6"
|
||||
"golang.org/x/term v0.0.0-20210317153231-de623e64d2a6/go.mod"
|
||||
"golang.org/x/text v0.3.0/go.mod"
|
||||
"golang.org/x/text v0.3.6"
|
||||
"golang.org/x/text v0.3.6/go.mod"
|
||||
"golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod"
|
||||
)
|
||||
|
||||
go-module_set_globals
|
||||
|
||||
SRC_URI="
|
||||
https://github.com/junegunn/fzf/archive/${PV}.tar.gz -> ${P}.tar.gz
|
||||
${EGO_SUM_SRC_URI}
|
||||
"
|
||||
|
||||
LICENSE="MIT BSD-with-disclosure"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
|
||||
src_compile() {
|
||||
emake PREFIX="${EPREFIX}"/usr VERSION=${PV} REVISION=${MY_GIT_REV} bin/${PN}
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin bin/${PN}
|
||||
doman man/man1/${PN}.1
|
||||
|
||||
dobin bin/${PN}-tmux
|
||||
doman man/man1/${PN}-tmux.1
|
||||
|
||||
insinto /usr/share/vim/vimfiles/plugin
|
||||
doins plugin/${PN}.vim
|
||||
|
||||
insinto /usr/share/nvim/runtime/plugin
|
||||
doins plugin/${PN}.vim
|
||||
|
||||
newbashcomp shell/completion.bash ${PN}
|
||||
|
||||
insinto /usr/share/zsh/site-functions
|
||||
newins shell/completion.zsh _${PN}
|
||||
|
||||
insinto /usr/share/fzf
|
||||
doins shell/key-bindings.bash
|
||||
doins shell/key-bindings.fish
|
||||
doins shell/key-bindings.zsh
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if [[ -z ${REPLACING_VERSIONS} ]]; then
|
||||
elog "To add fzf support to your shell, make sure to use the right file"
|
||||
elog "from /usr/share/fzf."
|
||||
elog
|
||||
elog "For bash, add the following line to ~/.bashrc:"
|
||||
elog
|
||||
elog " # source /usr/share/bash-completion/completions/fzf"
|
||||
elog " # source /usr/share/fzf/key-bindings.bash"
|
||||
elog
|
||||
elog "Plugins for Vim and Neovim are installed to respective directories"
|
||||
elog "and will work out of the box."
|
||||
elog
|
||||
elog "For fzf support in tmux see fzf-tmux(1)."
|
||||
fi
|
||||
}
|
Binary file not shown.
@ -1,4 +1,2 @@
|
||||
DIST poppler-21.02.0.tar.xz 1684496 BLAKE2B f62399a70baa0af36abd9bf7f5bc69003fcdc9b668a64475a6373dbdd9885092a8beb42f887eafdafac5ee17e9aac5b610bad1c9a64af8112e72c82f47e6a304 SHA512 3964990749f38f4468b244c579ff1f2dab7357dfddecb3035d14d3aaeac6ee4be42e76b4a1cc1a8cf53715518def9e92cc59d08c1e22592ced00a9c948989035
|
||||
DIST poppler-21.03.0.tar.xz 1690848 BLAKE2B 60aef92bdfdc603b38dfb2a1aebd59c9085e6d51a2e22864edb3b0fd535421f47fb8041241e321d44cd8539538b61c6e19fe2d99a8a2d21fd85c3757ccadb5d2 SHA512 0eea1b5f32d79c3a497351a6491b5f617b089bef0a9a446723e87185acadba535e3146c0c141f4c2165ced1aa6fa853b54760a322d0932cfe3049c0ad94d64fa
|
||||
DIST poppler-21.04.0.tar.xz 1694132 BLAKE2B 759a22b175ca8b64fa666d61e394cb7b6baa34a3dbc9c6cceb24c7ad4b0892ee34faea90278d9889d72d7b9558fc9abf52ab74fd739dc12e7314c3a755661350 SHA512 c3391787456e8a4a3bd6e57f96faa25051bb5e15ae7eeb7072ad6fbc25e3f8a34818945cc49d90a0e6ebc3d38dd4e70d3c60ba0a5cb42c4000bd8c15c947e5bc
|
||||
DIST poppler-21.05.0.tar.xz 1700632 BLAKE2B 5e277f3d9d6fafbd39b395d7730182ec028c0ccdbb59e0b9d6ea93e079eb6dc8ff6e46a2b378ec4502055e8748973d353e1f947d734cdee4c5abb9f1bb6dba2c SHA512 428f63a85fc8a227efebcd64ca7e89fec487fea07c93f9dd990fae343532547bcfec29a3288dd9ffce698cf994ccc2ce5055e4fa677ebceb216c1caaa3e0cdae
|
||||
|
@ -1,122 +0,0 @@
|
||||
# Copyright 2005-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit cmake toolchain-funcs xdg-utils
|
||||
|
||||
if [[ ${PV} == *9999* ]] ; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://anongit.freedesktop.org/git/poppler/poppler.git"
|
||||
SLOT="0/9999"
|
||||
else
|
||||
SRC_URI="https://poppler.freedesktop.org/${P}.tar.xz"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
SLOT="0/108" # CHECK THIS WHEN BUMPING!!! SUBSLOT IS libpoppler.so SOVERSION
|
||||
fi
|
||||
|
||||
DESCRIPTION="PDF rendering library based on the xpdf-3.0 code base"
|
||||
HOMEPAGE="https://poppler.freedesktop.org/"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
IUSE="cairo cjk curl +cxx debug doc +introspection +jpeg +jpeg2k +lcms nss png qt5 tiff +utils"
|
||||
|
||||
# No test data provided
|
||||
RESTRICT="test"
|
||||
|
||||
BDEPEND="
|
||||
dev-util/glib-utils
|
||||
virtual/pkgconfig
|
||||
"
|
||||
DEPEND="
|
||||
media-libs/fontconfig
|
||||
media-libs/freetype
|
||||
sys-libs/zlib
|
||||
cairo? (
|
||||
dev-libs/glib:2
|
||||
x11-libs/cairo
|
||||
introspection? ( dev-libs/gobject-introspection:= )
|
||||
)
|
||||
curl? ( net-misc/curl )
|
||||
jpeg? ( virtual/jpeg:0 )
|
||||
jpeg2k? ( >=media-libs/openjpeg-2.3.0-r1:2= )
|
||||
lcms? ( media-libs/lcms:2 )
|
||||
nss? ( >=dev-libs/nss-3.19:0 )
|
||||
png? ( media-libs/libpng:0= )
|
||||
qt5? (
|
||||
dev-qt/qtcore:5
|
||||
dev-qt/qtgui:5
|
||||
dev-qt/qtxml:5
|
||||
)
|
||||
tiff? ( media-libs/tiff:0 )
|
||||
"
|
||||
RDEPEND="${DEPEND}
|
||||
cjk? ( app-text/poppler-data )
|
||||
"
|
||||
|
||||
DOCS=( AUTHORS NEWS README.md README-XPDF )
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-20.12.1-qt5-deps.patch"
|
||||
"${FILESDIR}/${PN}-21.04.0-respect-cflags.patch"
|
||||
"${FILESDIR}/${PN}-0.57.0-disable-internal-jpx.patch"
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
cmake_src_prepare
|
||||
|
||||
# Clang doesn't grok this flag, the configure nicely tests that, but
|
||||
# cmake just uses it, so remove it if we use clang
|
||||
if [[ ${CC} == clang ]] ; then
|
||||
sed -e 's/-fno-check-new//' -i cmake/modules/PopplerMacros.cmake || die
|
||||
fi
|
||||
|
||||
if ! grep -Fq 'cmake_policy(SET CMP0002 OLD)' CMakeLists.txt ; then
|
||||
sed -e '/^cmake_minimum_required/acmake_policy(SET CMP0002 OLD)' \
|
||||
-i CMakeLists.txt || die
|
||||
else
|
||||
einfo "policy(SET CMP0002 OLD) - workaround can be removed"
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
xdg_environment_reset
|
||||
local mycmakeargs=(
|
||||
-DBUILD_GTK_TESTS=OFF
|
||||
-DBUILD_QT5_TESTS=OFF
|
||||
-DBUILD_CPP_TESTS=OFF
|
||||
-DRUN_GPERF_IF_PRESENT=OFF
|
||||
-DENABLE_SPLASH=ON
|
||||
-DENABLE_ZLIB=ON
|
||||
-DENABLE_ZLIB_UNCOMPRESS=OFF
|
||||
-DENABLE_UNSTABLE_API_ABI_HEADERS=ON
|
||||
-DUSE_FLOAT=OFF
|
||||
-DWITH_Cairo=$(usex cairo)
|
||||
-DENABLE_LIBCURL=$(usex curl)
|
||||
-DENABLE_CPP=$(usex cxx)
|
||||
-DWITH_JPEG=$(usex jpeg)
|
||||
-DENABLE_DCTDECODER=$(usex jpeg libjpeg none)
|
||||
-DENABLE_LIBOPENJPEG=$(usex jpeg2k openjpeg2 none)
|
||||
-DENABLE_CMS=$(usex lcms lcms2 none)
|
||||
-DWITH_NSS3=$(usex nss)
|
||||
-DWITH_PNG=$(usex png)
|
||||
$(cmake_use_find_package qt5 Qt5Core)
|
||||
-DWITH_TIFF=$(usex tiff)
|
||||
-DENABLE_UTILS=$(usex utils)
|
||||
-DENABLE_QT6=OFF
|
||||
)
|
||||
use cairo && mycmakeargs+=( -DWITH_GObjectIntrospection=$(usex introspection) )
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
|
||||
# live version doesn't provide html documentation
|
||||
if use cairo && use doc && [[ ${PV} != *9999* ]]; then
|
||||
# For now install gtk-doc there
|
||||
insinto /usr/share/gtk-doc/html/poppler
|
||||
doins -r "${S}"/glib/reference/html/*
|
||||
fi
|
||||
}
|
@ -1,122 +0,0 @@
|
||||
# Copyright 2005-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit cmake toolchain-funcs xdg-utils
|
||||
|
||||
if [[ ${PV} == *9999* ]] ; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://anongit.freedesktop.org/git/poppler/poppler.git"
|
||||
SLOT="0/9999"
|
||||
else
|
||||
SRC_URI="https://poppler.freedesktop.org/${P}.tar.xz"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
SLOT="0/109" # CHECK THIS WHEN BUMPING!!! SUBSLOT IS libpoppler.so SOVERSION
|
||||
fi
|
||||
|
||||
DESCRIPTION="PDF rendering library based on the xpdf-3.0 code base"
|
||||
HOMEPAGE="https://poppler.freedesktop.org/"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
IUSE="cairo cjk curl +cxx debug doc +introspection +jpeg +jpeg2k +lcms nss png qt5 tiff +utils"
|
||||
|
||||
# No test data provided
|
||||
RESTRICT="test"
|
||||
|
||||
BDEPEND="
|
||||
dev-util/glib-utils
|
||||
virtual/pkgconfig
|
||||
"
|
||||
DEPEND="
|
||||
media-libs/fontconfig
|
||||
media-libs/freetype
|
||||
sys-libs/zlib
|
||||
cairo? (
|
||||
dev-libs/glib:2
|
||||
x11-libs/cairo
|
||||
introspection? ( dev-libs/gobject-introspection:= )
|
||||
)
|
||||
curl? ( net-misc/curl )
|
||||
jpeg? ( virtual/jpeg:0 )
|
||||
jpeg2k? ( >=media-libs/openjpeg-2.3.0-r1:2= )
|
||||
lcms? ( media-libs/lcms:2 )
|
||||
nss? ( >=dev-libs/nss-3.19:0 )
|
||||
png? ( media-libs/libpng:0= )
|
||||
qt5? (
|
||||
dev-qt/qtcore:5
|
||||
dev-qt/qtgui:5
|
||||
dev-qt/qtxml:5
|
||||
)
|
||||
tiff? ( media-libs/tiff:0 )
|
||||
"
|
||||
RDEPEND="${DEPEND}
|
||||
cjk? ( app-text/poppler-data )
|
||||
"
|
||||
|
||||
DOCS=( AUTHORS NEWS README.md README-XPDF )
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-20.12.1-qt5-deps.patch"
|
||||
"${FILESDIR}/${PN}-21.04.0-respect-cflags.patch"
|
||||
"${FILESDIR}/${PN}-0.57.0-disable-internal-jpx.patch"
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
cmake_src_prepare
|
||||
|
||||
# Clang doesn't grok this flag, the configure nicely tests that, but
|
||||
# cmake just uses it, so remove it if we use clang
|
||||
if [[ ${CC} == clang ]] ; then
|
||||
sed -e 's/-fno-check-new//' -i cmake/modules/PopplerMacros.cmake || die
|
||||
fi
|
||||
|
||||
if ! grep -Fq 'cmake_policy(SET CMP0002 OLD)' CMakeLists.txt ; then
|
||||
sed -e '/^cmake_minimum_required/acmake_policy(SET CMP0002 OLD)' \
|
||||
-i CMakeLists.txt || die
|
||||
else
|
||||
einfo "policy(SET CMP0002 OLD) - workaround can be removed"
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
xdg_environment_reset
|
||||
local mycmakeargs=(
|
||||
-DBUILD_GTK_TESTS=OFF
|
||||
-DBUILD_QT5_TESTS=OFF
|
||||
-DBUILD_CPP_TESTS=OFF
|
||||
-DRUN_GPERF_IF_PRESENT=OFF
|
||||
-DENABLE_SPLASH=ON
|
||||
-DENABLE_ZLIB=ON
|
||||
-DENABLE_ZLIB_UNCOMPRESS=OFF
|
||||
-DENABLE_UNSTABLE_API_ABI_HEADERS=ON
|
||||
-DUSE_FLOAT=OFF
|
||||
-DWITH_Cairo=$(usex cairo)
|
||||
-DENABLE_LIBCURL=$(usex curl)
|
||||
-DENABLE_CPP=$(usex cxx)
|
||||
-DWITH_JPEG=$(usex jpeg)
|
||||
-DENABLE_DCTDECODER=$(usex jpeg libjpeg none)
|
||||
-DENABLE_LIBOPENJPEG=$(usex jpeg2k openjpeg2 none)
|
||||
-DENABLE_CMS=$(usex lcms lcms2 none)
|
||||
-DWITH_NSS3=$(usex nss)
|
||||
-DWITH_PNG=$(usex png)
|
||||
$(cmake_use_find_package qt5 Qt5Core)
|
||||
-DWITH_TIFF=$(usex tiff)
|
||||
-DENABLE_UTILS=$(usex utils)
|
||||
-DENABLE_QT6=OFF
|
||||
)
|
||||
use cairo && mycmakeargs+=( -DWITH_GObjectIntrospection=$(usex introspection) )
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
|
||||
# live version doesn't provide html documentation
|
||||
if use cairo && use doc && [[ ${PV} != *9999* ]]; then
|
||||
# For now install gtk-doc there
|
||||
insinto /usr/share/gtk-doc/html/poppler
|
||||
doins -r "${S}"/glib/reference/html/*
|
||||
fi
|
||||
}
|
Binary file not shown.
@ -1,4 +1,2 @@
|
||||
DIST eigen-3.3.7-gitlab.tar.bz2 1663474 BLAKE2B 70c2f6305ca205d62755cf5e90961088938b8daf56b7cc27abf52f0731064858ada523009d6bf5f014e24b34ceeafe59f918c385d12ccfe249ddb675e13d37a8 SHA512 ea3f1570de3be9ec230d2fbd0f2ae246bf5fd13da79835bf546eb31524796f26f9f633ee779f77942b370a8d540c5cbbd8dd033ccec53a44b692c7e407d6266f
|
||||
DIST eigen-3.3.7.tar.bz2 1665168 BLAKE2B 544d35d1c7a4125affa094c6aa372c2aeca4e99bc60c496ff393d538c1c467b454491a772121450e3a1a43a582d073b4b7584918354d0b9175121fde88947c4b SHA512 c12bfd034d0a1112bf2df3f773ad98f36b2b53fbbfceac5f143ee1793322746fb8a6546d7db7da2a1000da6a535bd8cea0c4125b549afc90a6570743b02dcf3d
|
||||
DIST eigen-3.3.8.tar.gz 2141903 BLAKE2B c33e699ba08338e7b9b215c9466e161229164ed3c466ce3d760c6917749af33c0414c3bc4bbdd216e3466e69ece8a38ca8beb78b7e0f1609894df6bb4a7fcca3 SHA512 5b4b5985b0294e07b3ed1155720cbbfea322fe9ccad0fc8b0a10060b136a9169a15d5b9cb7a434470cadd45dff0a43049edc20d2e1070005481a120212edc355
|
||||
DIST eigen-3.3.9.tar.gz 2142379 BLAKE2B 437dc190fdf7a416d0a5cf81703ef4cc73c195f0f3e7c853e0ab38cf904608ddd4485cc4e15eb0cd5e3c401276f270f3c86f538f205cc91b8c83e131d1bc916d SHA512 16244cc89f2e1879543232b965cbf653b3ccf10e967c8c437a41e27d8320392bdf584d8c24b8a97406ab7d1481d5154da74e0702ec1334ae6a46de83f4573a46
|
||||
|
@ -1,107 +0,0 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
FORTRAN_NEEDED="test"
|
||||
inherit cmake-utils cuda fortran-2
|
||||
|
||||
DESCRIPTION="C++ template library for linear algebra"
|
||||
HOMEPAGE="http://eigen.tuxfamily.org/"
|
||||
SRC_URI="https://bitbucket.org/eigen/eigen/get/${PV}.tar.bz2 -> ${P}.tar.bz2"
|
||||
|
||||
LICENSE="MPL-2.0"
|
||||
SLOT="3"
|
||||
KEYWORDS="amd64 ~arm arm64 ppc ~ppc64 x86 ~amd64-linux ~x86-linux"
|
||||
IUSE="c++11 cpu_flags_arm_neon cpu_flags_ppc_altivec cpu_flags_ppc_vsx cuda debug doc openmp test" #zvector
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="!dev-cpp/eigen:0"
|
||||
DEPEND="
|
||||
cuda? ( dev-util/nvidia-cuda-toolkit )
|
||||
doc? (
|
||||
app-doc/doxygen[dot]
|
||||
dev-texlive/texlive-bibtexextra
|
||||
dev-texlive/texlive-fontsextra
|
||||
dev-texlive/texlive-fontutils
|
||||
dev-texlive/texlive-latex
|
||||
dev-texlive/texlive-latexextra
|
||||
)
|
||||
test? (
|
||||
dev-libs/gmp:0
|
||||
dev-libs/mpfr:0
|
||||
media-libs/freeglut
|
||||
media-libs/glew
|
||||
sci-libs/adolc[sparse]
|
||||
sci-libs/cholmod
|
||||
sci-libs/fftw:3.0
|
||||
sci-libs/pastix
|
||||
sci-libs/umfpack
|
||||
sci-libs/scotch
|
||||
sci-libs/spqr
|
||||
sci-libs/superlu
|
||||
virtual/opengl
|
||||
virtual/pkgconfig
|
||||
)
|
||||
"
|
||||
# Missing:
|
||||
# METIS-5
|
||||
# GOOGLEHASH
|
||||
|
||||
src_unpack() {
|
||||
default
|
||||
mv ${PN}* ${P} || die
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
cmake-utils_src_prepare
|
||||
|
||||
sed -e 's:-g2::g' \
|
||||
-i cmake/EigenConfigureTesting.cmake || die
|
||||
|
||||
sed -e "/add_subdirectory(demos/d" \
|
||||
-i CMakeLists.txt || die
|
||||
|
||||
if ! use test; then
|
||||
sed -e "/add_subdirectory(test/d" \
|
||||
-i CMakeLists.txt || die
|
||||
|
||||
sed -e "/add_subdirectory(blas/d" \
|
||||
-e "/add_subdirectory(lapack/d" \
|
||||
-i CMakeLists.txt || die
|
||||
fi
|
||||
sed -e "/Unknown build type/d" \
|
||||
-i CMakeLists.txt || die
|
||||
|
||||
use cuda && cuda_src_prepare
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
cmake-utils_src_compile
|
||||
use doc && cmake-utils_src_compile doc
|
||||
}
|
||||
|
||||
src_test() {
|
||||
local mycmakeargs=(
|
||||
-DEIGEN_TEST_NOQT=ON
|
||||
-DEIGEN_TEST_ALTIVEC="$(usex cpu_flags_ppc_altivec)"
|
||||
-DEIGEN_TEST_CXX11="$(usex c++11)"
|
||||
-DEIGEN_TEST_CUDA="$(usex cuda)"
|
||||
-DEIGEN_TEST_OPENMP="$(usex openmp)"
|
||||
-DEIGEN_TEST_NEON64="$(usex cpu_flags_arm_neon)"
|
||||
-DEIGEN_TEST_VSX="$(usex cpu_flags_ppc_vsx)"
|
||||
)
|
||||
cmake-utils_src_configure
|
||||
cmake-utils_src_compile blas
|
||||
cmake-utils_src_compile buildtests
|
||||
cmake-utils_src_test
|
||||
}
|
||||
|
||||
src_install() {
|
||||
use doc && local HTML_DOCS=( "${BUILD_DIR}"/doc/html/. )
|
||||
cmake-utils_src_install
|
||||
|
||||
# Debian installs it and some projects started using it.
|
||||
insinto /usr/share/cmake/Modules/
|
||||
doins "${S}/cmake/FindEigen3.cmake"
|
||||
}
|
@ -1,101 +0,0 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
FORTRAN_NEEDED="test"
|
||||
inherit cmake cuda fortran-2
|
||||
|
||||
DESCRIPTION="C++ template library for linear algebra"
|
||||
HOMEPAGE="http://eigen.tuxfamily.org/index.php?title=Main_Page"
|
||||
SRC_URI="https://gitlab.com/lib${PN}/${PN}/-/archive/${PV}/${P}.tar.gz"
|
||||
|
||||
LICENSE="MPL-2.0"
|
||||
SLOT="3"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
|
||||
IUSE="cpu_flags_arm_neon cpu_flags_ppc_altivec cpu_flags_ppc_vsx cuda debug doc openmp test" #zvector
|
||||
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
BDEPEND="
|
||||
doc? (
|
||||
app-doc/doxygen[dot]
|
||||
dev-texlive/texlive-bibtexextra
|
||||
dev-texlive/texlive-fontsextra
|
||||
dev-texlive/texlive-fontutils
|
||||
dev-texlive/texlive-latex
|
||||
dev-texlive/texlive-latexextra
|
||||
)
|
||||
test? ( virtual/pkgconfig )
|
||||
"
|
||||
DEPEND="
|
||||
cuda? ( dev-util/nvidia-cuda-toolkit )
|
||||
test? (
|
||||
dev-libs/gmp:0
|
||||
dev-libs/mpfr:0
|
||||
media-libs/freeglut
|
||||
media-libs/glew
|
||||
sci-libs/adolc[sparse]
|
||||
sci-libs/cholmod
|
||||
sci-libs/fftw:3.0
|
||||
sci-libs/pastix
|
||||
sci-libs/scotch
|
||||
sci-libs/spqr
|
||||
sci-libs/superlu
|
||||
sci-libs/umfpack
|
||||
virtual/opengl
|
||||
)
|
||||
"
|
||||
# Missing:
|
||||
# METIS-5
|
||||
# GOOGLEHASH
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-3.3.7-gentoo-cmake.patch
|
||||
"${FILESDIR}"/${P}-no-error-counting-in-openmp-parallelize_gemm.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
cmake_src_prepare
|
||||
|
||||
cmake_comment_add_subdirectory demos
|
||||
|
||||
if ! use test; then
|
||||
sed -e "/add_subdirectory(test/s/^/#DONOTCOMPILE /g" \
|
||||
-e "/add_subdirectory(blas/s/^/#DONOTCOMPILE /g" \
|
||||
-e "/add_subdirectory(lapack/s/^/#DONOTCOMPILE /g" \
|
||||
-i CMakeLists.txt || die
|
||||
fi
|
||||
|
||||
use cuda && cuda_src_prepare
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs=(
|
||||
-DCMAKEPACKAGE_INSTALL_DIR=$(get_libdir)/cmake/${PN}${SLOT}
|
||||
)
|
||||
use test && mycmakeargs+=(
|
||||
-DEIGEN_TEST_CXX11=ON
|
||||
-DEIGEN_TEST_NOQT=ON
|
||||
-DEIGEN_TEST_ALTIVEC=$(usex cpu_flags_ppc_altivec)
|
||||
-DEIGEN_TEST_CUDA=$(usex cuda)
|
||||
-DEIGEN_TEST_OPENMP=$(usex openmp)
|
||||
-DEIGEN_TEST_NEON64=$(usex cpu_flags_arm_neon)
|
||||
-DEIGEN_TEST_VSX=$(usex cpu_flags_ppc_vsx)
|
||||
)
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
cmake_src_compile
|
||||
use doc && cmake_src_compile doc
|
||||
if use test; then
|
||||
cmake_src_compile blas
|
||||
cmake_src_compile buildtests
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
use doc && local HTML_DOCS=( "${BUILD_DIR}"/doc/html/. )
|
||||
cmake_src_install
|
||||
}
|
Binary file not shown.
@ -1,975 +0,0 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="6"
|
||||
MY_EXTRAS_VER="20190305-2052Z"
|
||||
SUBSLOT="18"
|
||||
|
||||
JAVA_PKG_OPT_USE="jdbc"
|
||||
|
||||
# Keeping eutils in EAPI=6 for emktemp in pkg_config
|
||||
|
||||
inherit eutils systemd flag-o-matic prefix toolchain-funcs \
|
||||
java-pkg-opt-2 user cmake-utils
|
||||
|
||||
SRC_URI="https://downloads.mariadb.org/interstitial/${P}/source/${P}.tar.gz "
|
||||
|
||||
# Gentoo patches to MySQL
|
||||
if [[ "${MY_EXTRAS_VER}" != "live" && "${MY_EXTRAS_VER}" != "none" ]]; then
|
||||
SRC_URI="${SRC_URI}
|
||||
mirror://gentoo/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
|
||||
https://gitweb.gentoo.org/proj/mysql-extras.git/snapshot/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
|
||||
https://dev.gentoo.org/~grknight/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
|
||||
https://dev.gentoo.org/~robbat2/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
|
||||
https://dev.gentoo.org/~jmbsvicetto/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2"
|
||||
fi
|
||||
|
||||
HOMEPAGE="https://mariadb.org/"
|
||||
DESCRIPTION="An enhanced, drop-in replacement for MySQL"
|
||||
LICENSE="GPL-2 LGPL-2.1+"
|
||||
SLOT="10.2/${SUBSLOT:-0}"
|
||||
IUSE="+backup bindist client-libs cracklib debug extraengine galera innodb-lz4
|
||||
innodb-lzo innodb-snappy jdbc jemalloc kerberos latin1 mroonga
|
||||
numa odbc oqgraph pam +perl profiling rocksdb selinux +server sphinx
|
||||
sst-rsync sst-mariabackup sst-xtrabackup static systemd systemtap tcmalloc
|
||||
test tokudb xml yassl"
|
||||
|
||||
RESTRICT="!bindist? ( bindist ) !test? ( test )"
|
||||
|
||||
REQUIRED_USE="jdbc? ( extraengine server !static )
|
||||
server? ( tokudb? ( jemalloc !tcmalloc ) )
|
||||
?? ( tcmalloc jemalloc )
|
||||
static? ( yassl !pam )"
|
||||
|
||||
KEYWORDS="ppc ppc64"
|
||||
|
||||
# Shorten the path because the socket path length must be shorter than 107 chars
|
||||
# and we will run a mysql server during test phase
|
||||
S="${WORKDIR}/mysql"
|
||||
|
||||
if [[ "${MY_EXTRAS_VER}" == "live" ]] ; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/mysql-extras.git"
|
||||
EGIT_CHECKOUT_DIR="${WORKDIR%/}/mysql-extras"
|
||||
EGIT_CLONE_TYPE=shallow
|
||||
MY_PATCH_DIR="${WORKDIR%/}/mysql-extras"
|
||||
else
|
||||
MY_PATCH_DIR="${WORKDIR%/}/mysql-extras-${MY_EXTRAS_VER}"
|
||||
fi
|
||||
|
||||
PATCHES=(
|
||||
"${MY_PATCH_DIR}"/20015_all_mariadb-pkgconfig-location.patch
|
||||
"${MY_PATCH_DIR}"/20018_all_mariadb-10.2.16-without-clientlibs-tools.patch
|
||||
"${MY_PATCH_DIR}"/20024_all_mariadb-10.2.6-mysql_st-regression.patch
|
||||
"${MY_PATCH_DIR}"/20025_all_mariadb-10.2.6-gssapi-detect.patch
|
||||
"${MY_PATCH_DIR}"/20035_all_mariadb-10.2-atomic-detection.patch
|
||||
)
|
||||
|
||||
# Be warned, *DEPEND are version-dependant
|
||||
# These are used for both runtime and compiletime
|
||||
COMMON_DEPEND="
|
||||
kernel_linux? (
|
||||
sys-process/procps:0=
|
||||
dev-libs/libaio:0=
|
||||
)
|
||||
>=sys-apps/sed-4
|
||||
>=sys-apps/texinfo-4.7-r1
|
||||
jemalloc? ( dev-libs/jemalloc:0= )
|
||||
tcmalloc? ( dev-util/google-perftools:0= )
|
||||
systemtap? ( >=dev-util/systemtap-1.3:0= )
|
||||
>=sys-libs/zlib-1.2.3:0=
|
||||
kerberos? ( virtual/krb5 )
|
||||
yassl? ( net-libs/gnutls:0= )
|
||||
!yassl? (
|
||||
>=dev-libs/openssl-1.0.0:0=
|
||||
)
|
||||
sys-libs/ncurses:0=
|
||||
!bindist? (
|
||||
sys-libs/binutils-libs:0=
|
||||
>=sys-libs/readline-4.1:0=
|
||||
)
|
||||
server? (
|
||||
backup? ( app-arch/libarchive:0= )
|
||||
cracklib? ( sys-libs/cracklib:0= )
|
||||
extraengine? (
|
||||
odbc? ( dev-db/unixODBC:0= )
|
||||
xml? ( dev-libs/libxml2:2= )
|
||||
)
|
||||
innodb-lz4? ( app-arch/lz4 )
|
||||
innodb-lzo? ( dev-libs/lzo )
|
||||
innodb-snappy? ( app-arch/snappy )
|
||||
mroonga? ( app-text/groonga-normalizer-mysql >=app-text/groonga-7.0.4 )
|
||||
numa? ( sys-process/numactl )
|
||||
oqgraph? ( >=dev-libs/boost-1.40.0:0= dev-libs/judy:0= )
|
||||
pam? ( sys-libs/pam:0= )
|
||||
systemd? ( sys-apps/systemd:= )
|
||||
tokudb? ( app-arch/snappy )
|
||||
)
|
||||
>=dev-libs/libpcre-8.41-r1:3=
|
||||
"
|
||||
DEPEND="virtual/yacc
|
||||
static? ( sys-libs/ncurses[static-libs] )
|
||||
|| ( >=sys-devel/gcc-3.4.6 >=sys-devel/gcc-apple-4.0 )
|
||||
server? ( extraengine? ( jdbc? ( >=virtual/jdk-1.6 ) ) )
|
||||
${COMMON_DEPEND}"
|
||||
RDEPEND="selinux? ( sec-policy/selinux-mysql )
|
||||
!dev-db/mysql !dev-db/mariadb-galera !dev-db/percona-server !dev-db/mysql-cluster
|
||||
!dev-db/mariadb:0
|
||||
!dev-db/mariadb:5.5
|
||||
!dev-db/mariadb:10.1
|
||||
!dev-db/mariadb:10.3
|
||||
!dev-db/mariadb:10.4
|
||||
!dev-db/mariadb:10.5
|
||||
server? ( !prefix? ( dev-db/mysql-init-scripts ) )
|
||||
!<virtual/mysql-5.6-r11
|
||||
${COMMON_DEPEND}
|
||||
server? ( galera? (
|
||||
sys-apps/iproute2
|
||||
=sys-cluster/galera-25*
|
||||
sst-rsync? ( sys-process/lsof )
|
||||
sst-mariabackup? ( net-misc/socat[ssl] )
|
||||
sst-xtrabackup? ( net-misc/socat[ssl] )
|
||||
) )
|
||||
perl? ( !dev-db/mytop
|
||||
virtual/perl-Getopt-Long
|
||||
dev-perl/TermReadKey
|
||||
virtual/perl-Term-ANSIColor
|
||||
virtual/perl-Time-HiRes )
|
||||
server? ( extraengine? ( jdbc? ( >=virtual/jre-1.6 ) ) )
|
||||
"
|
||||
# For other stuff to bring us in
|
||||
# dev-perl/DBD-mysql is needed by some scripts installed by MySQL
|
||||
# percona-xtrabackup-bin causes a circular dependency if DBD-mysql is not already installed
|
||||
PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )
|
||||
server? ( ~virtual/mysql-5.6[static=]
|
||||
galera? ( sst-xtrabackup? ( || ( >=dev-db/percona-xtrabackup-bin-2.2.4 dev-db/percona-xtrabackup ) ) ) )"
|
||||
|
||||
pkg_setup() {
|
||||
if [[ ${MERGE_TYPE} != binary ]] ; then
|
||||
local GCC_MAJOR_SET=$(gcc-major-version)
|
||||
local GCC_MINOR_SET=$(gcc-minor-version)
|
||||
if use tokudb && [[ ${GCC_MAJOR_SET} -lt 4 || \
|
||||
${GCC_MAJOR_SET} -eq 4 && ${GCC_MINOR_SET} -lt 7 ]] ; then
|
||||
eerror "${PN} with tokudb needs to be built with gcc-4.7 or later."
|
||||
eerror "Please use gcc-config to switch to gcc-4.7 or later version."
|
||||
die
|
||||
fi
|
||||
# Bug 565584. InnoDB now requires atomic functions introduced with gcc-4.7 on
|
||||
# non x86{,_64} arches
|
||||
if ! use amd64 && ! use x86 && [[ ${GCC_MAJOR_SET} -lt 4 || \
|
||||
${GCC_MAJOR_SET} -eq 4 && ${GCC_MINOR_SET} -lt 7 ]] ; then
|
||||
eerror "${PN} needs to be built with gcc-4.7 or later."
|
||||
eerror "Please use gcc-config to switch to gcc-4.7 or later version."
|
||||
die
|
||||
fi
|
||||
fi
|
||||
java-pkg-opt-2_pkg_setup
|
||||
if has test ${FEATURES} && \
|
||||
use server && ! has userpriv ${FEATURES} ; then
|
||||
eerror "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root."
|
||||
fi
|
||||
|
||||
# This should come after all of the die statements
|
||||
enewgroup mysql 60 || die "problem adding 'mysql' group"
|
||||
enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user"
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
java-pkg-opt-2_pkg_preinst
|
||||
|
||||
# Here we need to see if the implementation switched client libraries
|
||||
# We check if this is a new instance of the package and a client library already exists
|
||||
local SHOW_ABI_MESSAGE libpath
|
||||
if [[ -z ${REPLACING_VERSIONS} && -e "${EROOT}usr/$(get_libdir)/libmysqlclient.so" ]] ; then
|
||||
libpath=$(readlink "${EROOT}usr/$(get_libdir)/libmysqlclient.so")
|
||||
elog "Due to ABI changes when switching between different client libraries,"
|
||||
elog "revdep-rebuild must find and rebuild all packages linking to libmysqlclient."
|
||||
elog "Please run: revdep-rebuild --library ${libpath}"
|
||||
ewarn "Failure to run revdep-rebuild may cause issues with other programs or libraries"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
# Make sure the vars are correctly initialized
|
||||
mysql_init_vars
|
||||
|
||||
# Create log directory securely if it does not exist
|
||||
[[ -d "${ROOT}${MY_LOGDIR}" ]] || install -d -m0750 -o mysql -g mysql "${ROOT}${MY_LOGDIR}"
|
||||
|
||||
if use server ; then
|
||||
if use pam; then
|
||||
einfo
|
||||
elog "This install includes the PAM authentication plugin."
|
||||
elog "To activate and configure the PAM plugin, please read:"
|
||||
elog "https://mariadb.com/kb/en/mariadb/pam-authentication-plugin/"
|
||||
einfo
|
||||
fi
|
||||
|
||||
if [[ -z "${REPLACING_VERSIONS}" ]] ; then
|
||||
einfo
|
||||
elog "You might want to run:"
|
||||
elog "\"emerge --config =${CATEGORY}/${PF}\""
|
||||
elog "if this is a new install."
|
||||
elog
|
||||
elog "If you are switching server implentations, you should run the"
|
||||
elog "mysql_upgrade tool."
|
||||
einfo
|
||||
else
|
||||
einfo
|
||||
elog "If you are upgrading major versions, you should run the"
|
||||
elog "mysql_upgrade tool."
|
||||
einfo
|
||||
fi
|
||||
|
||||
if use galera ; then
|
||||
einfo
|
||||
elog "Be sure to edit the my.cnf file to activate your cluster settings."
|
||||
elog "This should be done after running \"emerge --config =${CATEGORY}/${PF}\""
|
||||
elog "The first time the cluster is activated, you should add"
|
||||
elog "--wsrep-new-cluster to the options in /etc/conf.d/mysql for one node."
|
||||
elog "This option should then be removed for subsequent starts."
|
||||
einfo
|
||||
if use sst-xtrabackup ; then
|
||||
ewarn "As per https://mariadb.com/kb/en/meta/xtrabackup_warning/, XtraBackup"
|
||||
ewarn "as an SST is broken by default beginning with 10.2.19 with the setting"
|
||||
ewarn "innodb_safe_truncate=ON. Please migrate to sst-mariabackup instead."
|
||||
ewarn "sst-xtrabackup is being removed in 10.3 and higher."
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Note about configuration change
|
||||
einfo
|
||||
elog "This version of mariadb reorganizes the configuration from a single my.cnf"
|
||||
elog "to several files in /etc/mysql/${PN}.d."
|
||||
elog "Please backup any changes you made to /etc/mysql/my.cnf"
|
||||
elog "and add them as a new file under /etc/mysql/${PN}.d with a .cnf extension."
|
||||
elog "You may have as many files as needed and they are read alphabetically."
|
||||
elog "Be sure the options have the appropriate section headers, i.e. [mysqld]."
|
||||
einfo
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
unpack ${A}
|
||||
# Grab the patches
|
||||
[[ "${MY_EXTRAS_VER}" == "live" ]] && S="${WORKDIR%/}/mysql-extras" git-r3_src_unpack
|
||||
|
||||
mv -f "${WORKDIR%/}/${P}" "${S}" || die
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
_disable_plugin() {
|
||||
echo > "${S%/}/plugin/${1}/CMakeLists.txt" || die
|
||||
}
|
||||
_disable_engine() {
|
||||
echo > "${S%/}/storage/${1}/CMakeLists.txt" || die
|
||||
}
|
||||
|
||||
local malloc
|
||||
for malloc in jemalloc tcmalloc ; do
|
||||
if use ${malloc}; then
|
||||
echo "TARGET_LINK_LIBRARIES(mysqld ${malloc})" >> "${S}/sql/CMakeLists.txt"
|
||||
fi
|
||||
done
|
||||
|
||||
# Don't build bundled xz-utils for tokudb
|
||||
echo > "${S}/storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake" || die
|
||||
sed -i -e 's/ build_lzma//' -e 's/ build_snappy//' "${S}/storage/tokudb/PerconaFT/ft/CMakeLists.txt" || die
|
||||
sed -i -e 's/add_dependencies\(tokuportability_static_conv build_jemalloc\)//' "${S}/storage/tokudb/PerconaFT/portability/CMakeLists.txt" || die
|
||||
|
||||
local plugin
|
||||
local server_plugins=( handler_socket auth_socket feedback metadata_lock_info
|
||||
locale_info qc_info server_audit sql_errlog )
|
||||
local test_plugins=( audit_null auth_examples daemon_example fulltext
|
||||
debug_key_management example_key_management )
|
||||
if ! use server; then # These plugins are for the server
|
||||
for plugin in "${server_plugins[@]}" ; do
|
||||
_disable_plugin "${plugin}"
|
||||
done
|
||||
fi
|
||||
|
||||
if ! use test; then # These plugins are only used during testing
|
||||
for plugin in "${test_plugins[@]}" ; do
|
||||
_disable_plugin "${plugin}"
|
||||
done
|
||||
_disable_engine test_sql_discovery
|
||||
fi
|
||||
|
||||
_disable_engine example
|
||||
|
||||
if ! use oqgraph ; then # avoids extra library checks
|
||||
_disable_engine oqgraph
|
||||
fi
|
||||
|
||||
if use mroonga ; then
|
||||
# Remove the bundled groonga
|
||||
# There is no CMake flag, it simply checks for existance
|
||||
rm -r "${S}"/storage/mroonga/vendor/groonga || die "could not remove packaged groonga"
|
||||
else
|
||||
_disable_engine mroonga
|
||||
fi
|
||||
|
||||
cmake-utils_src_prepare
|
||||
java-pkg-opt-2_src_prepare
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# bug 508724 mariadb cannot use ld.gold
|
||||
tc-ld-disable-gold
|
||||
# Bug #114895, bug #110149
|
||||
filter-flags "-O" "-O[01]"
|
||||
|
||||
append-cxxflags -felide-constructors
|
||||
|
||||
# bug #283926, with GCC4.4, this is required to get correct behavior.
|
||||
append-flags -fno-strict-aliasing
|
||||
|
||||
CMAKE_BUILD_TYPE="RelWithDebInfo"
|
||||
|
||||
# debug hack wrt #497532
|
||||
mycmakeargs=(
|
||||
-DCMAKE_C_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')"
|
||||
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')"
|
||||
-DMYSQL_DATADIR="${EPREFIX}/var/lib/mysql"
|
||||
-DSYSCONFDIR="${EPREFIX}/etc/mysql"
|
||||
-DINSTALL_BINDIR=bin
|
||||
-DINSTALL_DOCDIR=share/doc/${PF}
|
||||
-DINSTALL_DOCREADMEDIR=share/doc/${PF}
|
||||
-DINSTALL_INCLUDEDIR=include/mysql
|
||||
-DINSTALL_INFODIR=share/info
|
||||
-DINSTALL_LIBDIR=$(get_libdir)
|
||||
-DINSTALL_MANDIR=share/man
|
||||
-DINSTALL_MYSQLSHAREDIR=share/mariadb
|
||||
-DINSTALL_PLUGINDIR=$(get_libdir)/mariadb/plugin
|
||||
-DINSTALL_SCRIPTDIR=share/mariadb/scripts
|
||||
-DINSTALL_MYSQLDATADIR="${EPREFIX}/var/lib/mysql"
|
||||
-DINSTALL_SBINDIR=sbin
|
||||
-DINSTALL_SUPPORTFILESDIR="${EPREFIX}/usr/share/mariadb"
|
||||
-DWITH_COMMENT="Gentoo Linux ${PF}"
|
||||
-DWITH_UNIT_TESTS=$(usex test ON OFF)
|
||||
-DWITH_LIBEDIT=0
|
||||
-DWITH_ZLIB=system
|
||||
-DWITHOUT_LIBWRAP=1
|
||||
-DENABLED_LOCAL_INFILE=1
|
||||
-DMYSQL_UNIX_ADDR="${EPREFIX}/var/run/mysqld/mysqld.sock"
|
||||
-DINSTALL_UNIX_ADDRDIR="${EPREFIX}/var/run/mysqld/mysqld.sock"
|
||||
-DWITH_DEFAULT_COMPILER_OPTIONS=0
|
||||
-DWITH_DEFAULT_FEATURE_SET=0
|
||||
-DINSTALL_SYSTEMD_UNITDIR="$(systemd_get_systemunitdir)"
|
||||
# The build forces this to be defined when cross-compiling. We pass it
|
||||
# all the time for simplicity and to make sure it is actually correct.
|
||||
-DSTACK_DIRECTION=$(tc-stack-grows-down && echo -1 || echo 1)
|
||||
-DPKG_CONFIG_EXECUTABLE="${EPREFIX}/usr/bin/$(tc-getPKG_CONFIG)"
|
||||
-DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO)
|
||||
-DAUTH_GSSAPI_PLUGIN_TYPE=$(usex kerberos DYNAMIC OFF)
|
||||
-DCONC_WITH_EXTERNAL_ZLIB=YES
|
||||
-DWITH_EXTERNAL_ZLIB=YES
|
||||
-DSUFFIX_INSTALL_DIR=""
|
||||
-DWITH_UNITTEST=OFF
|
||||
-DWITHOUT_CLIENTLIBS=YES
|
||||
-DCLIENT_PLUGIN_DIALOG=OFF
|
||||
-DCLIENT_PLUGIN_AUTH_GSSAPI_CLIENT=OFF
|
||||
-DCLIENT_PLUGIN_MYSQL_CLEAR_PASSWORD=STATIC
|
||||
-DCLIENT_PLUGIN_CACHING_SHA2_PASSWORD=OFF
|
||||
)
|
||||
if use test ; then
|
||||
mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mariadb/mysql-test )
|
||||
else
|
||||
mycmakeargs+=( -DINSTALL_MYSQLTESTDIR='' )
|
||||
fi
|
||||
|
||||
if ! use yassl ; then
|
||||
mycmakeargs+=( -DWITH_SSL=system -DCLIENT_PLUGIN_SHA256_PASSWORD=STATIC )
|
||||
else
|
||||
mycmakeargs+=( -DWITH_SSL=bundled )
|
||||
fi
|
||||
|
||||
# bfd.h is only used starting with 10.1 and can be controlled by NOT_FOR_DISTRIBUTION
|
||||
mycmakeargs+=(
|
||||
-DWITH_READLINE=$(usex bindist 1 0)
|
||||
-DNOT_FOR_DISTRIBUTION=$(usex bindist 0 1)
|
||||
-DENABLE_DTRACE=$(usex systemtap)
|
||||
)
|
||||
|
||||
if use server ; then
|
||||
|
||||
# Federated{,X} must be treated special otherwise they will not be built as plugins
|
||||
if ! use extraengine ; then
|
||||
mycmakeargs+=(
|
||||
-DPLUGIN_FEDERATED=NO
|
||||
-DPLUGIN_FEDERATEDX=NO )
|
||||
fi
|
||||
|
||||
mycmakeargs+=(
|
||||
-DWITH_JEMALLOC=$(usex jemalloc system)
|
||||
-DWITH_PCRE=system
|
||||
-DPLUGIN_OQGRAPH=$(usex oqgraph DYNAMIC NO)
|
||||
-DPLUGIN_SPHINX=$(usex sphinx YES NO)
|
||||
-DPLUGIN_TOKUDB=$(usex tokudb YES NO)
|
||||
-DPLUGIN_AUTH_PAM=$(usex pam YES NO)
|
||||
-DPLUGIN_CRACKLIB_PASSWORD_CHECK=$(usex cracklib YES NO)
|
||||
-DPLUGIN_CASSANDRA=NO
|
||||
-DPLUGIN_SEQUENCE=$(usex extraengine YES NO)
|
||||
-DPLUGIN_SPIDER=$(usex extraengine YES NO)
|
||||
-DPLUGIN_CONNECT=$(usex extraengine YES NO)
|
||||
-DCONNECT_WITH_MYSQL=1
|
||||
-DCONNECT_WITH_LIBXML2=$(usex xml)
|
||||
-DCONNECT_WITH_ODBC=$(usex odbc)
|
||||
-DCONNECT_WITH_JDBC=$(usex jdbc)
|
||||
# Build failure and autodep wrt bug 639144
|
||||
-DCONNECT_WITH_MONGO=OFF
|
||||
-DWITH_WSREP=$(usex galera)
|
||||
-DWITH_INNODB_LZ4=$(usex innodb-lz4 ON OFF)
|
||||
-DWITH_INNODB_LZO=$(usex innodb-lzo ON OFF)
|
||||
-DWITH_INNODB_SNAPPY=$(usex innodb-snappy ON OFF)
|
||||
-DPLUGIN_MROONGA=$(usex mroonga DYNAMIC NO)
|
||||
-DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO)
|
||||
-DWITH_MARIABACKUP=$(usex backup ON OFF)
|
||||
-DWITH_LIBARCHIVE=$(usex backup ON OFF)
|
||||
-DINSTALL_SQLBENCHDIR=share/mariadb
|
||||
-DPLUGIN_ROCKSDB=$(usex rocksdb DYNAMIC NO)
|
||||
# systemd is only linked to for server notification
|
||||
-DWITH_SYSTEMD=$(usex systemd yes no)
|
||||
-DWITH_NUMA=$(usex numa ON OFF)
|
||||
)
|
||||
|
||||
# Workaround for MDEV-14524
|
||||
use tokudb && mycmakeargs+=( -DTOKUDB_OK=1 )
|
||||
|
||||
if use test ; then
|
||||
# This is needed for the new client lib which tests a real, open server
|
||||
mycmakeargs+=( -DSKIP_TESTS=ON )
|
||||
fi
|
||||
|
||||
if [[ ( -n ${MYSQL_DEFAULT_CHARSET} ) && ( -n ${MYSQL_DEFAULT_COLLATION} ) ]]; then
|
||||
ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}"
|
||||
ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}."
|
||||
ewarn "You MUST file bugs without these variables set."
|
||||
|
||||
mycmakeargs+=(
|
||||
-DDEFAULT_CHARSET=${MYSQL_DEFAULT_CHARSET}
|
||||
-DDEFAULT_COLLATION=${MYSQL_DEFAULT_COLLATION}
|
||||
)
|
||||
|
||||
elif ! use latin1 ; then
|
||||
mycmakeargs+=(
|
||||
-DDEFAULT_CHARSET=utf8
|
||||
-DDEFAULT_COLLATION=utf8_general_ci
|
||||
)
|
||||
else
|
||||
mycmakeargs+=(
|
||||
-DDEFAULT_CHARSET=latin1
|
||||
-DDEFAULT_COLLATION=latin1_swedish_ci
|
||||
)
|
||||
fi
|
||||
mycmakeargs+=(
|
||||
-DEXTRA_CHARSETS=all
|
||||
-DMYSQL_USER=mysql
|
||||
-DDISABLE_SHARED=$(usex static YES NO)
|
||||
-DWITH_DEBUG=$(usex debug)
|
||||
-DWITH_EMBEDDED_SERVER=OFF
|
||||
-DWITH_PROFILING=$(usex profiling)
|
||||
)
|
||||
|
||||
if use static; then
|
||||
mycmakeargs+=( -DWITH_PIC=1 )
|
||||
fi
|
||||
|
||||
if use jemalloc || use tcmalloc ; then
|
||||
mycmakeargs+=( -DWITH_SAFEMALLOC=OFF )
|
||||
fi
|
||||
|
||||
# Storage engines
|
||||
mycmakeargs+=(
|
||||
-DWITH_ARCHIVE_STORAGE_ENGINE=1
|
||||
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
|
||||
-DWITH_CSV_STORAGE_ENGINE=1
|
||||
-DWITH_HEAP_STORAGE_ENGINE=1
|
||||
-DWITH_INNOBASE_STORAGE_ENGINE=1
|
||||
-DWITH_MYISAMMRG_STORAGE_ENGINE=1
|
||||
-DWITH_MYISAM_STORAGE_ENGINE=1
|
||||
-DWITH_PARTITION_STORAGE_ENGINE=1
|
||||
)
|
||||
|
||||
else
|
||||
mycmakeargs+=(
|
||||
-DWITHOUT_SERVER=1
|
||||
-DWITH_EMBEDDED_SERVER=OFF
|
||||
-DEXTRA_CHARSETS=none
|
||||
-DINSTALL_SQLBENCHDIR=
|
||||
-DWITH_SYSTEMD=no
|
||||
)
|
||||
fi
|
||||
|
||||
cmake-utils_src_configure
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
cmake-utils_src_compile
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake-utils_src_install
|
||||
|
||||
# Remove an unnecessary, private config header which will never match between ABIs and is not meant to be used
|
||||
if [[ -f "${ED}/usr/include/mysql/server/private/config.h" ]] ; then
|
||||
rm "${ED}/usr/include/mysql/server/private/config.h" || die
|
||||
fi
|
||||
|
||||
# Make sure the vars are correctly initialized
|
||||
mysql_init_vars
|
||||
|
||||
# Convenience links
|
||||
einfo "Making Convenience links for mysqlcheck multi-call binary"
|
||||
dosym "mysqlcheck" "/usr/bin/mysqlanalyze"
|
||||
dosym "mysqlcheck" "/usr/bin/mysqlrepair"
|
||||
dosym "mysqlcheck" "/usr/bin/mysqloptimize"
|
||||
|
||||
# INSTALL_LAYOUT=STANDALONE causes cmake to create a /usr/data dir
|
||||
if [[ -d "${ED}/usr/data" ]] ; then
|
||||
rm -Rf "${ED}/usr/data" || die
|
||||
fi
|
||||
|
||||
# Unless they explicitly specific USE=test, then do not install the
|
||||
# testsuite. It DOES have a use to be installed, esp. when you want to do a
|
||||
# validation of your database configuration after tuning it.
|
||||
if ! use test ; then
|
||||
rm -rf "${D}/${MY_SHAREDSTATEDIR}/mysql-test"
|
||||
fi
|
||||
|
||||
# Configuration stuff
|
||||
einfo "Building default configuration ..."
|
||||
insinto "${MY_SYSCONFDIR#${EPREFIX}}"
|
||||
[[ -f "${S}/scripts/mysqlaccess.conf" ]] && doins "${S}"/scripts/mysqlaccess.conf
|
||||
cp "${FILESDIR}/my.cnf-10.2" "${TMPDIR}/my.cnf" || die
|
||||
eprefixify "${TMPDIR}/my.cnf"
|
||||
doins "${TMPDIR}/my.cnf"
|
||||
insinto "${MY_SYSCONFDIR#${EPREFIX}}/mariadb.d"
|
||||
cp "${FILESDIR}/my.cnf.distro-client" "${TMPDIR}/50-distro-client.cnf" || die
|
||||
eprefixify "${TMPDIR}/50-distro-client.cnf"
|
||||
doins "${TMPDIR}/50-distro-client.cnf"
|
||||
|
||||
if use server ; then
|
||||
mycnf_src="my.cnf.distro-server"
|
||||
sed -e "s!@DATADIR@!${MY_DATADIR}!g" \
|
||||
"${FILESDIR}/${mycnf_src}" \
|
||||
> "${TMPDIR}/my.cnf.ok" || die
|
||||
if use prefix ; then
|
||||
sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' \
|
||||
"${TMPDIR}/my.cnf.ok" || die
|
||||
fi
|
||||
if use latin1 ; then
|
||||
sed -i \
|
||||
-e "/character-set/s|utf8|latin1|g" \
|
||||
"${TMPDIR}/my.cnf.ok" || die
|
||||
fi
|
||||
eprefixify "${TMPDIR}/my.cnf.ok"
|
||||
newins "${TMPDIR}/my.cnf.ok" 50-distro-server.cnf
|
||||
|
||||
einfo "Including support files and sample configurations"
|
||||
docinto "support-files"
|
||||
local script
|
||||
for script in \
|
||||
"${S}"/support-files/magic
|
||||
do
|
||||
[[ -f "$script" ]] && dodoc "${script}"
|
||||
done
|
||||
|
||||
docinto "scripts"
|
||||
for script in "${S}"/scripts/mysql* ; do
|
||||
[[ ( -f "$script" ) && ( "${script%.sh}" == "${script}" ) ]] && dodoc "${script}"
|
||||
done
|
||||
# Manually install supporting files that conflict with other packages
|
||||
# but are needed for galera and initial installation
|
||||
exeinto /usr/libexec/mariadb
|
||||
doexe "${BUILD_DIR}/extra/my_print_defaults" "${BUILD_DIR}/extra/perror"
|
||||
fi
|
||||
|
||||
#Remove mytop if perl is not selected
|
||||
[[ -e "${ED}/usr/bin/mytop" ]] && ! use perl && rm -f "${ED}/usr/bin/mytop"
|
||||
}
|
||||
|
||||
# Official test instructions:
|
||||
# USE='extraengine perl server' \
|
||||
# FEATURES='test userpriv -usersandbox' \
|
||||
# ebuild mariadb-X.X.XX.ebuild \
|
||||
# digest clean package
|
||||
src_test() {
|
||||
|
||||
_disable_test() {
|
||||
local rawtestname reason
|
||||
rawtestname="${1}" ; shift
|
||||
reason="${@}"
|
||||
ewarn "test '${rawtestname}' disabled: '${reason}'"
|
||||
echo ${rawtestname} : ${reason} >> "${T}/disabled.def"
|
||||
}
|
||||
|
||||
local TESTDIR="${BUILD_DIR}/mysql-test"
|
||||
local retstatus_unit
|
||||
local retstatus_tests
|
||||
|
||||
if ! use server ; then
|
||||
einfo "Skipping server tests due to minimal build."
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Bug #213475 - MySQL _will_ object strenously if your machine is named
|
||||
# localhost. Also causes weird failures.
|
||||
[[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost"
|
||||
|
||||
if [[ $UID -eq 0 ]]; then
|
||||
die "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root."
|
||||
fi
|
||||
has usersandbox $FEATURES && ewarn "Some tests may fail with FEATURES=usersandbox"
|
||||
|
||||
einfo ">>> Test phase [test]: ${CATEGORY}/${PF}"
|
||||
|
||||
# Run CTest (test-units)
|
||||
cmake-utils_src_test
|
||||
retstatus_unit=$?
|
||||
|
||||
# Ensure that parallel runs don't die
|
||||
export MTR_BUILD_THREAD="$((${RANDOM} % 100))"
|
||||
# Enable parallel testing, auto will try to detect number of cores
|
||||
# You may set this by hand.
|
||||
# The default maximum is 8 unless MTR_MAX_PARALLEL is increased
|
||||
export MTR_PARALLEL="${MTR_PARALLEL:-auto}"
|
||||
|
||||
# create directories because mysqladmin might run out of order
|
||||
mkdir -p "${T}"/var-tests{,/log} || die
|
||||
|
||||
# Run mysql tests
|
||||
pushd "${TESTDIR}" > /dev/null || die
|
||||
|
||||
touch "${T}/disabled.def"
|
||||
# These are failing in MariaDB 10.0 for now and are believed to be
|
||||
# false positives:
|
||||
#
|
||||
# main.mysql_client_test, main.mysql_client_test_nonblock
|
||||
# main.mysql_client_test_comp:
|
||||
# segfaults at random under Portage only, suspect resource limits.
|
||||
|
||||
local t
|
||||
for t in plugins.cracklib_password_check plugins.two_password_validations ; do
|
||||
_disable_test "$t" "False positive due to varying policies"
|
||||
done
|
||||
|
||||
for t in main.mysql_client_test main.mysql_client_test_nonblock \
|
||||
main.mysql_client_test_comp rpl.rpl_extra_col_master_myisam ; do
|
||||
_disable_test "$t" "False positives in Gentoo"
|
||||
done
|
||||
|
||||
_disable_test main.plugin_auth "Needs client libraries built"
|
||||
_disable_test main.mysqldump "Test fails past 2018-12-31 due to event expiration"
|
||||
|
||||
# Likely environment issues as only number of clients connected fails
|
||||
_disable_test rpl.rpl_semi_sync_uninstall_plugin \
|
||||
"Fails intermittently on parallel testing"
|
||||
|
||||
# run mysql-test tests
|
||||
perl mysql-test-run.pl --force --vardir="${T}/var-tests" --reorder --skip-test=tokudb --skip-test-list="${T}/disabled.def"
|
||||
retstatus_tests=$?
|
||||
|
||||
popd > /dev/null || die
|
||||
|
||||
# Cleanup is important for these testcases.
|
||||
pkill -9 -f "${S}/ndb" 2>/dev/null
|
||||
pkill -9 -f "${S}/sql" 2>/dev/null
|
||||
|
||||
local failures=""
|
||||
[[ $retstatus_unit -eq 0 ]] || failures="${failures} test-unit"
|
||||
[[ $retstatus_tests -eq 0 ]] || failures="${failures} tests"
|
||||
|
||||
[[ -z "$failures" ]] || die "Test failures: $failures"
|
||||
einfo "Tests successfully completed"
|
||||
}
|
||||
|
||||
mysql_init_vars() {
|
||||
MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR="${EPREFIX}/usr/share/mariadb"}
|
||||
MY_SYSCONFDIR=${MY_SYSCONFDIR="${EPREFIX}/etc/mysql"}
|
||||
MY_LOCALSTATEDIR=${MY_LOCALSTATEDIR="${EPREFIX}/var/lib/mysql"}
|
||||
MY_LOGDIR=${MY_LOGDIR="${EPREFIX}/var/log/mysql"}
|
||||
|
||||
if [[ -z "${MY_DATADIR}" ]] ; then
|
||||
MY_DATADIR=""
|
||||
if [[ -f "${MY_SYSCONFDIR}/my.cnf" ]] ; then
|
||||
MY_DATADIR=`"my_print_defaults" mysqld 2>/dev/null \
|
||||
| sed -ne '/datadir/s|^--datadir=||p' \
|
||||
| tail -n1`
|
||||
if [[ -z "${MY_DATADIR}" ]] ; then
|
||||
MY_DATADIR=`grep ^datadir "${MY_SYSCONFDIR}/my.cnf" \
|
||||
| sed -e 's/.*=\s*//' \
|
||||
| tail -n1`
|
||||
fi
|
||||
fi
|
||||
if [[ -z "${MY_DATADIR}" ]] ; then
|
||||
MY_DATADIR="${MY_LOCALSTATEDIR}"
|
||||
einfo "Using default MY_DATADIR"
|
||||
fi
|
||||
elog "MySQL MY_DATADIR is ${MY_DATADIR}"
|
||||
|
||||
if [[ -z "${PREVIOUS_DATADIR}" ]] ; then
|
||||
if [[ -e "${MY_DATADIR}" ]] ; then
|
||||
# If you get this and you're wondering about it, see bug #207636
|
||||
elog "MySQL datadir found in ${MY_DATADIR}"
|
||||
elog "A new one will not be created."
|
||||
PREVIOUS_DATADIR="yes"
|
||||
else
|
||||
PREVIOUS_DATADIR="no"
|
||||
fi
|
||||
export PREVIOUS_DATADIR
|
||||
fi
|
||||
else
|
||||
if [[ ${EBUILD_PHASE} == "config" ]]; then
|
||||
local new_MY_DATADIR
|
||||
new_MY_DATADIR=`"my_print_defaults" mysqld 2>/dev/null \
|
||||
| sed -ne '/datadir/s|^--datadir=||p' \
|
||||
| tail -n1`
|
||||
|
||||
if [[ ( -n "${new_MY_DATADIR}" ) && ( "${new_MY_DATADIR}" != "${MY_DATADIR}" ) ]]; then
|
||||
ewarn "MySQL MY_DATADIR has changed"
|
||||
ewarn "from ${MY_DATADIR}"
|
||||
ewarn "to ${new_MY_DATADIR}"
|
||||
MY_DATADIR="${new_MY_DATADIR}"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
export MY_SHAREDSTATEDIR MY_SYSCONFDIR
|
||||
export MY_LOCALSTATEDIR MY_LOGDIR
|
||||
export MY_DATADIR
|
||||
}
|
||||
|
||||
pkg_config() {
|
||||
_getoptval() {
|
||||
local mypd="${EROOT}"/usr/bin/my_print_defaults
|
||||
local section="$1"
|
||||
local flag="--${2}="
|
||||
local extra_options="${3}"
|
||||
"${mypd}" $extra_options $section | sed -n "/^${flag}/s,${flag},,gp"
|
||||
}
|
||||
local old_MY_DATADIR="${MY_DATADIR}"
|
||||
local old_HOME="${HOME}"
|
||||
# my_print_defaults needs to read stuff in $HOME/.my.cnf
|
||||
export HOME=${EPREFIX}/root
|
||||
|
||||
# Make sure the vars are correctly initialized
|
||||
mysql_init_vars
|
||||
|
||||
[[ -z "${MY_DATADIR}" ]] && die "Sorry, unable to find MY_DATADIR"
|
||||
if [[ ! -x "${EROOT}/usr/sbin/mysqld" ]] ; then
|
||||
die "Minimal builds do NOT include the MySQL server"
|
||||
fi
|
||||
|
||||
if [[ ( -n "${MY_DATADIR}" ) && ( "${MY_DATADIR}" != "${old_MY_DATADIR}" ) ]]; then
|
||||
local MY_DATADIR_s="${ROOT}/${MY_DATADIR}"
|
||||
MY_DATADIR_s="${MY_DATADIR_s%%/}"
|
||||
local old_MY_DATADIR_s="${ROOT}/${old_MY_DATADIR}"
|
||||
old_MY_DATADIR_s="${old_MY_DATADIR_s%%/}"
|
||||
|
||||
if [[ ( -d "${old_MY_DATADIR_s}" ) && ( "${old_MY_DATADIR_s}" != / ) ]]; then
|
||||
if [[ -d "${MY_DATADIR_s}" ]]; then
|
||||
ewarn "Both ${old_MY_DATADIR_s} and ${MY_DATADIR_s} exist"
|
||||
ewarn "Attempting to use ${MY_DATADIR_s} and preserving ${old_MY_DATADIR_s}"
|
||||
else
|
||||
elog "Moving MY_DATADIR from ${old_MY_DATADIR_s} to ${MY_DATADIR_s}"
|
||||
mv --strip-trailing-slashes -T "${old_MY_DATADIR_s}" "${MY_DATADIR_s}" \
|
||||
|| die "Moving MY_DATADIR failed"
|
||||
fi
|
||||
else
|
||||
ewarn "Previous MY_DATADIR (${old_MY_DATADIR_s}) does not exist"
|
||||
if [[ -d "${MY_DATADIR_s}" ]]; then
|
||||
ewarn "Attempting to use ${MY_DATADIR_s}"
|
||||
else
|
||||
eerror "New MY_DATADIR (${MY_DATADIR_s}) does not exist"
|
||||
die "Configuration Failed! Please reinstall ${CATEGORY}/${PN}"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
local pwd1="a"
|
||||
local pwd2="b"
|
||||
local maxtry=15
|
||||
|
||||
if [ -z "${MYSQL_ROOT_PASSWORD}" ]; then
|
||||
local tmp_mysqld_password_source=
|
||||
|
||||
for tmp_mysqld_password_source in mysql client; do
|
||||
einfo "Trying to get password for mysql 'root' user from '${tmp_mysqld_password_source}' section ..."
|
||||
MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password)"
|
||||
if [[ -n "${MYSQL_ROOT_PASSWORD}" ]]; then
|
||||
if [[ ${MYSQL_ROOT_PASSWORD} == *$'\n'* ]]; then
|
||||
ewarn "Ignoring password from '${tmp_mysqld_password_source}' section due to newline character (do you have multiple password options set?)!"
|
||||
MYSQL_ROOT_PASSWORD=
|
||||
continue
|
||||
fi
|
||||
|
||||
einfo "Found password in '${tmp_mysqld_password_source}' section!"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
# Sometimes --show is required to display passwords in some implementations of my_print_defaults
|
||||
if [[ "${MYSQL_ROOT_PASSWORD}" == '*****' ]]; then
|
||||
MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password --show)"
|
||||
fi
|
||||
|
||||
unset tmp_mysqld_password_source
|
||||
fi
|
||||
MYSQL_TMPDIR="$(_getoptval mysqld tmpdir | tail -n1)"
|
||||
# These are dir+prefix
|
||||
MYSQL_RELAY_LOG="$(_getoptval mysqld relay-log | tail -n1)"
|
||||
MYSQL_RELAY_LOG=${MYSQL_RELAY_LOG%/*}
|
||||
MYSQL_LOG_BIN="$(_getoptval mysqld log-bin | tail -n1)"
|
||||
MYSQL_LOG_BIN=${MYSQL_LOG_BIN%/*}
|
||||
|
||||
if [[ ! -d "${ROOT}/$MYSQL_TMPDIR" ]]; then
|
||||
einfo "Creating MySQL tmpdir $MYSQL_TMPDIR"
|
||||
install -d -m 770 -o mysql -g mysql "${EROOT}/$MYSQL_TMPDIR"
|
||||
fi
|
||||
if [[ ! -d "${ROOT}/$MYSQL_LOG_BIN" ]]; then
|
||||
einfo "Creating MySQL log-bin directory $MYSQL_LOG_BIN"
|
||||
install -d -m 770 -o mysql -g mysql "${EROOT}/$MYSQL_LOG_BIN"
|
||||
fi
|
||||
if [[ ! -d "${EROOT}/$MYSQL_RELAY_LOG" ]]; then
|
||||
einfo "Creating MySQL relay-log directory $MYSQL_RELAY_LOG"
|
||||
install -d -m 770 -o mysql -g mysql "${EROOT}/$MYSQL_RELAY_LOG"
|
||||
fi
|
||||
|
||||
if [[ -d "${ROOT}/${MY_DATADIR}/mysql" ]] ; then
|
||||
ewarn "You have already a MySQL database in place."
|
||||
ewarn "(${ROOT}/${MY_DATADIR}/*)"
|
||||
ewarn "Please rename or delete it if you wish to replace it."
|
||||
die "MySQL database already exists!"
|
||||
fi
|
||||
|
||||
# Bug #213475 - MySQL _will_ object strenously if your machine is named
|
||||
# localhost. Also causes weird failures.
|
||||
[[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost"
|
||||
|
||||
if [ -z "${MYSQL_ROOT_PASSWORD}" ]; then
|
||||
|
||||
einfo "Please provide a password for the mysql 'root' user now"
|
||||
einfo "or through the ${HOME}/.my.cnf file."
|
||||
ewarn "Avoid [\"'\\_%] characters in the password"
|
||||
read -rsp " >" pwd1 ; echo
|
||||
|
||||
einfo "Retype the password"
|
||||
read -rsp " >" pwd2 ; echo
|
||||
|
||||
if [[ "x$pwd1" != "x$pwd2" ]] ; then
|
||||
die "Passwords are not the same"
|
||||
fi
|
||||
MYSQL_ROOT_PASSWORD="${pwd1}"
|
||||
unset pwd1 pwd2
|
||||
fi
|
||||
|
||||
local options
|
||||
local sqltmp="$(emktemp)"
|
||||
|
||||
# Fix bug 446200. Don't reference host my.cnf, needs to come first,
|
||||
# see https://bugs.mysql.com/bug.php?id=31312
|
||||
use prefix && options="${options} '--defaults-file=${MY_SYSCONFDIR}/my.cnf'"
|
||||
|
||||
# Figure out which options we need to disable to do the setup
|
||||
local helpfile="${TMPDIR}/mysqld-help"
|
||||
"${EROOT}/usr/sbin/mysqld" --verbose --help >"${helpfile}" 2>/dev/null
|
||||
for opt in grant-tables host-cache name-resolve networking slave-start \
|
||||
federated ssl log-bin relay-log slow-query-log external-locking \
|
||||
log-slave-updates \
|
||||
; do
|
||||
optexp="--(skip-)?${opt}" optfull="--loose-skip-${opt}"
|
||||
egrep -sq -- "${optexp}" "${helpfile}" && options="${options} ${optfull}"
|
||||
done
|
||||
|
||||
einfo "Creating the mysql database and setting proper permissions on it ..."
|
||||
|
||||
# Now that /var/run is a tmpfs mount point, we need to ensure it exists before using it
|
||||
PID_DIR="${EROOT}/var/run/mysqld"
|
||||
if [[ ! -d "${PID_DIR}" ]]; then
|
||||
install -d -m 755 -o mysql -g mysql "${PID_DIR}" || die "Could not create pid directory"
|
||||
fi
|
||||
|
||||
if [[ ! -d "${MY_DATADIR}" ]]; then
|
||||
install -d -m 750 -o mysql -g mysql "${MY_DATADIR}" || die "Could not create data directory"
|
||||
fi
|
||||
|
||||
pushd "${TMPDIR}" &>/dev/null || die
|
||||
|
||||
# Filling timezones, see
|
||||
# https://dev.mysql.com/doc/mysql/en/time-zone-support.html
|
||||
"${EROOT}/usr/bin/mysql_tzinfo_to_sql" "${EROOT}/usr/share/zoneinfo" > "${sqltmp}" 2>/dev/null
|
||||
|
||||
local cmd=( "${EROOT}usr/share/mariadb/scripts/mysql_install_db" )
|
||||
[[ -f "${cmd}" ]] || cmd=( "${EROOT}usr/bin/mysql_install_db" )
|
||||
cmd+=( "--basedir=${EPREFIX}/usr" ${options} "--datadir=${ROOT}/${MY_DATADIR}" "--tmpdir=${ROOT}/${MYSQL_TMPDIR}" )
|
||||
einfo "Command: ${cmd[*]}"
|
||||
su -s /bin/sh -c "${cmd[*]}" mysql \
|
||||
>"${TMPDIR}"/mysql_install_db.log 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
grep -B5 -A999 -i "ERROR" "${TMPDIR}"/mysql_install_db.log 1>&2
|
||||
die "Failed to initialize mysqld. Please review ${EPREFIX}/var/log/mysql/mysqld.err AND ${TMPDIR}/mysql_install_db.log"
|
||||
fi
|
||||
popd &>/dev/null || die
|
||||
[[ -f "${ROOT}/${MY_DATADIR}/mysql/user.frm" ]] \
|
||||
|| die "MySQL databases not installed"
|
||||
|
||||
use prefix || options="${options} --user=mysql"
|
||||
|
||||
local socket="${EROOT}/var/run/mysqld/mysqld${RANDOM}.sock"
|
||||
local pidfile="${EROOT}/var/run/mysqld/mysqld${RANDOM}.pid"
|
||||
local mysqld="${EROOT}/usr/sbin/mysqld \
|
||||
${options} \
|
||||
--log-warnings=0 \
|
||||
--basedir=${EROOT}/usr \
|
||||
--datadir=${ROOT}/${MY_DATADIR} \
|
||||
--max_allowed_packet=8M \
|
||||
--net_buffer_length=16K \
|
||||
--socket=${socket} \
|
||||
--pid-file=${pidfile} \
|
||||
--tmpdir=${ROOT}/${MYSQL_TMPDIR}"
|
||||
#einfo "About to start mysqld: ${mysqld}"
|
||||
ebegin "Starting mysqld"
|
||||
einfo "Command ${mysqld}"
|
||||
${mysqld} &
|
||||
rc=$?
|
||||
while ! [[ -S "${socket}" || "${maxtry}" -lt 1 ]] ; do
|
||||
maxtry=$((${maxtry}-1))
|
||||
echo -n "."
|
||||
sleep 1
|
||||
done
|
||||
eend $rc
|
||||
|
||||
if ! [[ -S "${socket}" ]]; then
|
||||
die "Completely failed to start up mysqld with: ${mysqld}"
|
||||
fi
|
||||
|
||||
ebegin "Setting root password"
|
||||
# Do this from memory, as we don't want clear text passwords in temp files
|
||||
local sql="UPDATE mysql.user SET Password = PASSWORD('${MYSQL_ROOT_PASSWORD}') WHERE USER='root'; FLUSH PRIVILEGES"
|
||||
"${EROOT}/usr/bin/mysql" \
|
||||
"--socket=${socket}" \
|
||||
-hlocalhost \
|
||||
-e "${sql}"
|
||||
eend $?
|
||||
|
||||
if [[ -n "${sqltmp}" ]] ; then
|
||||
ebegin "Loading \"zoneinfo\", this step may require a few seconds"
|
||||
"${EROOT}/usr/bin/mysql" \
|
||||
"--socket=${socket}" \
|
||||
-hlocalhost \
|
||||
-uroot \
|
||||
--password="${MYSQL_ROOT_PASSWORD}" \
|
||||
mysql < "${sqltmp}"
|
||||
rc=$?
|
||||
eend $?
|
||||
[[ $rc -ne 0 ]] && ewarn "Failed to load zoneinfo!"
|
||||
fi
|
||||
|
||||
# Stop the server and cleanup
|
||||
einfo "Stopping the server ..."
|
||||
kill $(< "${pidfile}" )
|
||||
rm -f "${sqltmp}"
|
||||
wait %1
|
||||
einfo "Done"
|
||||
}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,428 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
|
||||
inherit autotools flag-o-matic multilib-minimal toolchain-funcs
|
||||
|
||||
if [[ "${PV}" != "9999" ]]; then
|
||||
SRC_PV="$(printf "%u%02u%02u%02u" $(ver_rs 1- " "))"
|
||||
DOC_PV="${SRC_PV}"
|
||||
# DOC_PV="$(printf "%u%02u%02u00" $(ver_rs 1-3 " "))"
|
||||
fi
|
||||
|
||||
DESCRIPTION="SQL database engine"
|
||||
HOMEPAGE="https://sqlite.org/"
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
SRC_URI=""
|
||||
else
|
||||
SRC_URI="https://sqlite.org/2021/${PN}-src-${SRC_PV}.zip
|
||||
doc? ( https://sqlite.org/2021/${PN}-doc-${DOC_PV}.zip )"
|
||||
fi
|
||||
|
||||
LICENSE="public-domain"
|
||||
SLOT="3"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
IUSE="debug doc icu +readline secure-delete static-libs tcl test tools"
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
PROPERTIES="live"
|
||||
fi
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
BDEPEND=">=dev-lang/tcl-8.6:0
|
||||
dev-vcs/fossil"
|
||||
else
|
||||
BDEPEND="app-arch/unzip
|
||||
>=dev-lang/tcl-8.6:0"
|
||||
fi
|
||||
RDEPEND="sys-libs/zlib:0=[${MULTILIB_USEDEP}]
|
||||
icu? ( dev-libs/icu:0=[${MULTILIB_USEDEP}] )
|
||||
readline? ( sys-libs/readline:0=[${MULTILIB_USEDEP}] )
|
||||
tcl? ( dev-lang/tcl:0=[${MULTILIB_USEDEP}] )
|
||||
tools? ( dev-lang/tcl:0= )"
|
||||
DEPEND="${RDEPEND}
|
||||
test? ( >=dev-lang/tcl-8.6:0[${MULTILIB_USEDEP}] )"
|
||||
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
S="${WORKDIR}/${PN}"
|
||||
else
|
||||
S="${WORKDIR}/${PN}-src-${SRC_PV}"
|
||||
fi
|
||||
|
||||
_fossil_fetch() {
|
||||
local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
|
||||
local repo_id="${1}"
|
||||
local repo_uri="${2}"
|
||||
|
||||
local -x FOSSIL_HOME="${HOME}"
|
||||
|
||||
mkdir -p "${T}/fossil/${repo_id}" || die
|
||||
pushd "${T}/fossil/${repo_id}" > /dev/null || die
|
||||
|
||||
if [[ -n "${EVCS_OFFLINE}" ]]; then
|
||||
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
||||
die "Network activity disabled using EVCS_OFFLINE and clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
|
||||
fi
|
||||
else
|
||||
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
||||
einfo fossil clone --verbose "${repo_uri}" "${repo_id}.fossil"
|
||||
fossil clone --verbose "${repo_uri}" "${repo_id}.fossil" || die
|
||||
echo
|
||||
else
|
||||
cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" . || die
|
||||
einfo fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}"
|
||||
fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}" || die
|
||||
echo
|
||||
fi
|
||||
|
||||
(
|
||||
addwrite "${distdir}"
|
||||
mkdir -p "${distdir}/fossil-src/${repo_id}" || die
|
||||
cp -p "${repo_id}.fossil" "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" || die
|
||||
)
|
||||
fi
|
||||
|
||||
popd > /dev/null || die
|
||||
}
|
||||
|
||||
_fossil_checkout() {
|
||||
local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
|
||||
local repo_id="${1}"
|
||||
local branch_or_commit="${2}"
|
||||
local target_directory="${3}"
|
||||
|
||||
local -x FOSSIL_HOME="${HOME}"
|
||||
|
||||
if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
|
||||
die "Clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
|
||||
fi
|
||||
|
||||
if [[ ! -f "${T}/fossil/${repo_id}/${repo_id}.fossil" ]]; then
|
||||
mkdir -p "${T}/fossil/${repo_id}" || die
|
||||
cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" "${T}/fossil/${repo_id}" || die
|
||||
fi
|
||||
|
||||
mkdir "${target_directory}" || die
|
||||
pushd "${target_directory}" > /dev/null || die
|
||||
|
||||
einfo fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}"
|
||||
fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}" || die
|
||||
echo
|
||||
|
||||
popd > /dev/null || die
|
||||
}
|
||||
|
||||
fossil_fetch() {
|
||||
local repo_id="${1}"
|
||||
local repo_uri="${2}"
|
||||
local target_directory="${3}"
|
||||
|
||||
local branch_or_commit="${EFOSSIL_COMMIT:-${EFOSSIL_BRANCH:-trunk}}"
|
||||
|
||||
_fossil_fetch "${repo_id}" "${repo_uri}"
|
||||
_fossil_checkout "${repo_id}" "${branch_or_commit}" "${target_directory}"
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
fossil_fetch sqlite https://sqlite.org/src "${WORKDIR}/${PN}"
|
||||
if use doc; then
|
||||
fossil_fetch sqlite-doc https://sqlite.org/docsrc "${WORKDIR}/${PN}-doc"
|
||||
fi
|
||||
else
|
||||
default
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
eapply "${FILESDIR}/"${PN}-3.35.0-build_{1.1,1.2,2.1,2.2}.patch
|
||||
|
||||
eapply_user
|
||||
|
||||
eautoreconf
|
||||
|
||||
multilib_copy_sources
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local -x CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}"
|
||||
local options=()
|
||||
|
||||
options+=(
|
||||
--enable-load-extension
|
||||
--enable-threadsafe
|
||||
)
|
||||
|
||||
# Support detection of misuse of SQLite API.
|
||||
# https://sqlite.org/compile.html#enable_api_armor
|
||||
append-cppflags -DSQLITE_ENABLE_API_ARMOR
|
||||
|
||||
# Support bytecode and tables_used virtual tables.
|
||||
# https://sqlite.org/compile.html#enable_bytecode_vtab
|
||||
# https://sqlite.org/bytecodevtab.html
|
||||
append-cppflags -DSQLITE_ENABLE_BYTECODE_VTAB
|
||||
|
||||
# Support column metadata functions.
|
||||
# https://sqlite.org/compile.html#enable_column_metadata
|
||||
# https://sqlite.org/c3ref/column_database_name.html
|
||||
append-cppflags -DSQLITE_ENABLE_COLUMN_METADATA
|
||||
|
||||
# Support sqlite_dbpage virtual table.
|
||||
# https://sqlite.org/compile.html#enable_dbpage_vtab
|
||||
# https://sqlite.org/dbpage.html
|
||||
append-cppflags -DSQLITE_ENABLE_DBPAGE_VTAB
|
||||
|
||||
# Support dbstat virtual table.
|
||||
# https://sqlite.org/compile.html#enable_dbstat_vtab
|
||||
# https://sqlite.org/dbstat.html
|
||||
append-cppflags -DSQLITE_ENABLE_DBSTAT_VTAB
|
||||
|
||||
# Support sqlite3_serialize() and sqlite3_deserialize() functions.
|
||||
# https://sqlite.org/compile.html#enable_deserialize
|
||||
# https://sqlite.org/c3ref/serialize.html
|
||||
# https://sqlite.org/c3ref/deserialize.html
|
||||
append-cppflags -DSQLITE_ENABLE_DESERIALIZE
|
||||
|
||||
# Support comments in output of EXPLAIN.
|
||||
# https://sqlite.org/compile.html#enable_explain_comments
|
||||
append-cppflags -DSQLITE_ENABLE_EXPLAIN_COMMENTS
|
||||
|
||||
# Support Full-Text Search versions 3, 4 and 5.
|
||||
# https://sqlite.org/compile.html#enable_fts3
|
||||
# https://sqlite.org/compile.html#enable_fts3_parenthesis
|
||||
# https://sqlite.org/compile.html#enable_fts4
|
||||
# https://sqlite.org/compile.html#enable_fts5
|
||||
# https://sqlite.org/fts3.html
|
||||
# https://sqlite.org/fts5.html
|
||||
append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4
|
||||
options+=(--enable-fts5)
|
||||
|
||||
# Support hidden columns.
|
||||
append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS
|
||||
|
||||
# Support JSON1 extension.
|
||||
# https://sqlite.org/compile.html#enable_json1
|
||||
# https://sqlite.org/json1.html
|
||||
append-cppflags -DSQLITE_ENABLE_JSON1
|
||||
|
||||
# Support memsys5 memory allocator.
|
||||
# https://sqlite.org/compile.html#enable_memsys5
|
||||
# https://sqlite.org/malloc.html#memsys5
|
||||
append-cppflags -DSQLITE_ENABLE_MEMSYS5
|
||||
|
||||
# Support sqlite3_normalized_sql() function.
|
||||
# https://sqlite.org/c3ref/expanded_sql.html
|
||||
append-cppflags -DSQLITE_ENABLE_NORMALIZE
|
||||
|
||||
# Support sqlite_offset() function.
|
||||
# https://sqlite.org/compile.html#enable_offset_sql_func
|
||||
# https://sqlite.org/lang_corefunc.html#sqlite_offset
|
||||
append-cppflags -DSQLITE_ENABLE_OFFSET_SQL_FUNC
|
||||
|
||||
# Support pre-update hook functions.
|
||||
# https://sqlite.org/compile.html#enable_preupdate_hook
|
||||
# https://sqlite.org/c3ref/preupdate_count.html
|
||||
append-cppflags -DSQLITE_ENABLE_PREUPDATE_HOOK
|
||||
|
||||
# Support Resumable Bulk Update extension.
|
||||
# https://sqlite.org/compile.html#enable_rbu
|
||||
# https://sqlite.org/rbu.html
|
||||
append-cppflags -DSQLITE_ENABLE_RBU
|
||||
|
||||
# Support R*Trees.
|
||||
# https://sqlite.org/compile.html#enable_rtree
|
||||
# https://sqlite.org/compile.html#enable_geopoly
|
||||
# https://sqlite.org/rtree.html
|
||||
# https://sqlite.org/geopoly.html
|
||||
append-cppflags -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_GEOPOLY
|
||||
|
||||
# Support Session extension.
|
||||
# https://sqlite.org/compile.html#enable_session
|
||||
# https://sqlite.org/sessionintro.html
|
||||
append-cppflags -DSQLITE_ENABLE_SESSION
|
||||
|
||||
# Support scan status functions.
|
||||
# https://sqlite.org/compile.html#enable_stmt_scanstatus
|
||||
# https://sqlite.org/c3ref/stmt_scanstatus.html
|
||||
# https://sqlite.org/c3ref/stmt_scanstatus_reset.html
|
||||
append-cppflags -DSQLITE_ENABLE_STMT_SCANSTATUS
|
||||
|
||||
# Support sqlite_stmt virtual table.
|
||||
# https://sqlite.org/compile.html#enable_stmtvtab
|
||||
# https://sqlite.org/stmt.html
|
||||
append-cppflags -DSQLITE_ENABLE_STMTVTAB
|
||||
|
||||
# Support unknown() function.
|
||||
# https://sqlite.org/compile.html#enable_unknown_sql_function
|
||||
append-cppflags -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
|
||||
|
||||
# Support unlock notification.
|
||||
# https://sqlite.org/compile.html#enable_unlock_notify
|
||||
# https://sqlite.org/c3ref/unlock_notify.html
|
||||
# https://sqlite.org/unlock_notify.html
|
||||
append-cppflags -DSQLITE_ENABLE_UNLOCK_NOTIFY
|
||||
|
||||
# Support LIMIT and ORDER BY clauses on DELETE and UPDATE statements.
|
||||
# https://sqlite.org/compile.html#enable_update_delete_limit
|
||||
# https://sqlite.org/lang_delete.html#optional_limit_and_order_by_clauses
|
||||
# https://sqlite.org/lang_update.html#optional_limit_and_order_by_clauses
|
||||
append-cppflags -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT
|
||||
|
||||
# Support soundex() function.
|
||||
# https://sqlite.org/compile.html#soundex
|
||||
# https://sqlite.org/lang_corefunc.html#soundex
|
||||
append-cppflags -DSQLITE_SOUNDEX
|
||||
|
||||
# Support URI filenames.
|
||||
# https://sqlite.org/compile.html#use_uri
|
||||
# https://sqlite.org/uri.html
|
||||
append-cppflags -DSQLITE_USE_URI
|
||||
|
||||
# debug USE flag.
|
||||
options+=($(use_enable debug))
|
||||
|
||||
# icu USE flag.
|
||||
if use icu; then
|
||||
# Support ICU extension.
|
||||
# https://sqlite.org/compile.html#enable_icu
|
||||
append-cppflags -DSQLITE_ENABLE_ICU
|
||||
sed -e "s/^TLIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed"
|
||||
fi
|
||||
|
||||
# readline USE flag.
|
||||
options+=(
|
||||
--disable-editline
|
||||
$(use_enable readline)
|
||||
)
|
||||
if use readline; then
|
||||
options+=(--with-readline-inc="-I${ESYSROOT}/usr/include/readline")
|
||||
fi
|
||||
|
||||
# secure-delete USE flag.
|
||||
if use secure-delete; then
|
||||
# Enable secure_delete pragma by default.
|
||||
# https://sqlite.org/compile.html#secure_delete
|
||||
# https://sqlite.org/pragma.html#pragma_secure_delete
|
||||
append-cppflags -DSQLITE_SECURE_DELETE
|
||||
fi
|
||||
|
||||
# static-libs USE flag.
|
||||
options+=($(use_enable static-libs static))
|
||||
|
||||
# tcl, test, tools USE flags.
|
||||
if use tcl || use test || { use tools && multilib_is_native_abi; }; then
|
||||
options+=(
|
||||
--enable-tcl
|
||||
--with-tcl="${ESYSROOT}/usr/$(get_libdir)"
|
||||
)
|
||||
else
|
||||
options+=(--disable-tcl)
|
||||
fi
|
||||
|
||||
if [[ "${ABI}" == "x86" ]]; then
|
||||
if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then
|
||||
append-cflags -mfpmath=sse
|
||||
else
|
||||
append-cflags -ffloat-store
|
||||
fi
|
||||
fi
|
||||
|
||||
econf "${options[@]}"
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
emake HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}"
|
||||
|
||||
if use tools && multilib_is_native_abi; then
|
||||
emake changeset dbdump dbhash dbtotxt index_usage rbu scrub showdb showjournal showshm showstat4 showwal sqldiff sqlite3_analyzer sqlite3_checker sqlite3_expert sqltclsh
|
||||
fi
|
||||
|
||||
if [[ "${PV}" == "9999" ]] && use doc && multilib_is_native_abi; then
|
||||
emake tclsqlite3.c
|
||||
|
||||
local build_directory="$(pwd)"
|
||||
build_directory="${build_directory##*/}"
|
||||
|
||||
mkdir "${WORKDIR}/${PN}-doc-build" || die
|
||||
pushd "${WORKDIR}/${PN}-doc-build" > /dev/null || die
|
||||
|
||||
emake -f "../${PN}-doc/Makefile" -j1 SRC="../${PN}" BLD="../${build_directory}" DOC="../${PN}-doc" CC="$(tc-getBUILD_CC)" TCLINC="" TCLFLAGS="$($(tc-getBUILD_PKG_CONFIG) --libs tcl) -ldl -lm" base doc
|
||||
rmdir doc/matrix{/*,} || die
|
||||
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
if [[ "${EUID}" -eq 0 ]]; then
|
||||
ewarn "Skipping tests due to root permissions"
|
||||
return
|
||||
fi
|
||||
|
||||
local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}"
|
||||
|
||||
emake HAVE_TCL="$(usex tcl 1 "")" $(use debug && echo fulltest || echo test)
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
emake DESTDIR="${D}" HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" install
|
||||
|
||||
if use tools && multilib_is_native_abi; then
|
||||
install_tool() {
|
||||
if [[ -f ".libs/${1}" ]]; then
|
||||
newbin ".libs/${1}" "${2}"
|
||||
else
|
||||
newbin "${1}" "${2}"
|
||||
fi
|
||||
}
|
||||
|
||||
install_tool changeset sqlite3-changeset
|
||||
install_tool dbdump sqlite3-db-dump
|
||||
install_tool dbhash sqlite3-db-hash
|
||||
install_tool dbtotxt sqlite3-db-to-txt
|
||||
install_tool index_usage sqlite3-index-usage
|
||||
install_tool rbu sqlite3-rbu
|
||||
install_tool scrub sqlite3-scrub
|
||||
install_tool showdb sqlite3-show-db
|
||||
install_tool showjournal sqlite3-show-journal
|
||||
install_tool showshm sqlite3-show-shm
|
||||
install_tool showstat4 sqlite3-show-stat4
|
||||
install_tool showwal sqlite3-show-wal
|
||||
install_tool sqldiff sqlite3-diff
|
||||
install_tool sqlite3_analyzer sqlite3-analyzer
|
||||
install_tool sqlite3_checker sqlite3-checker
|
||||
install_tool sqlite3_expert sqlite3-expert
|
||||
install_tool sqltclsh sqlite3-tclsh
|
||||
|
||||
unset -f install_tool
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
find "${ED}" -name "*.la" -delete || die
|
||||
|
||||
doman sqlite3.1
|
||||
|
||||
if use doc; then
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
pushd "${WORKDIR}/${PN}-doc-build/doc" > /dev/null || die
|
||||
else
|
||||
pushd "${WORKDIR}/${PN}-doc-${DOC_PV}" > /dev/null || die
|
||||
fi
|
||||
|
||||
find "(" -name "*.db" -o -name "*.txt" ")" -delete || die
|
||||
if [[ "${PV}" != "9999" ]]; then
|
||||
rm search search.d/admin || die
|
||||
rmdir search.d || die
|
||||
find -name "*~" -delete || die
|
||||
fi
|
||||
|
||||
(
|
||||
docinto html
|
||||
dodoc -r *
|
||||
)
|
||||
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
}
|
Binary file not shown.
Binary file not shown.
@ -1,8 +1,4 @@
|
||||
DIST erlang-23.2.7.tar.gz 56600356 BLAKE2B 84daf8810716ac02b50527805b834f9f2ae83fc7ebd89a22e4cba34133a52347f53a72ba65614b492bf1932d0dc47eb68c9ce8731cdfaeecdf57b9f20bde32e8 SHA512 1e94b641644edb1edc3d15679222dd5d198abf1cae6daa4b91304317f8df21514029971f208767396625c0a0be7107c357c9ef80974c9865113a760aa2655220
|
||||
DIST erlang-23.3.1.tar.gz 56654422 BLAKE2B b1ccd870d4a47f12d1a65b424d6c6b0f59a4654c0779c595fb28fdc2d3e179bb9b12d2473770b239b65665b2f6a3281d239f9fb3d6b86548df3ee69fce8fe5ed SHA512 03d4be9b25a14359e9f8db52d8e7d8edff1e8c53686a189caae15373c7e15d03f05e1138c549b8b41b8e6b7c55ab154cea47356f6fe79f7b72d5fb4ce759c4b0
|
||||
DIST erlang-23.3.2.tar.gz 56662450 BLAKE2B 70ead26fe6a416c1b89bc9f8ad8d368bd38d994f9aa9967c916ccbef25aac7a059d89422e0d3b03397b08f1376c9e2eef4e827ecaa9d1114c453771e51acb490 SHA512 bb3dc1d827314b71f7e4da2082681e449859a69589d566a810baf554131e239ad3fe0555f352d69506467162016d6c6864abb20926843ee4da5876b26650810e
|
||||
DIST erlang-23.3.3.tar.gz 56671339 BLAKE2B 19455670d411adfb6a34a42e27ee8ff9eda052c9e096404f1d1061376ffecb136b912cb89a21cb84a7758c925ccccee5bbbb4ca31ac6b164af4813b0a5e9e747 SHA512 191243df10e0ee03db1a16c94253fefd4b008915464b2966f6fbe93faae3053b2a8950297054a6a8554c180fd3fcc18eda16e2f87e0c1a7a73570e753ec557d4
|
||||
DIST erlang_doc_html_23.2.tar.gz 36537148 BLAKE2B b19d3fb5836b50512db6913ccb9116bc06ef4677c9514db89714ac72a9e7569b2c52612c357ccbf9a12610000885cbc8a43cc17f80c533a3c65af89c1b592ba6 SHA512 0d334dfe46ecffd6ff720d176c4514e2d49ba1b5feccd80f8392a8335100a6c289207431d2c0da02043c923de083290f9fd23726a1d1481508acdd7596f67ea4
|
||||
DIST erlang_doc_html_23.3.tar.gz 36224657 BLAKE2B 7e2a3e16f4cfa0f15c01074740e02af7a45b480b4a94e764463717658ab7e5d0281f928c3ec585582b10168645e3e06cfe72cf6a0ba1b88f539b80f2b7ad99be SHA512 8be4aae46839239604b875b39339e7b6b6c677c099b3d749d5f1041c4508c1c3b4aa8136a93df12b1e5cb6333ef907276f5965c9726ed2b9e77a6043c8ef53b1
|
||||
DIST erlang_doc_man_23.2.tar.gz 1386417 BLAKE2B 91fb2646461330c2f3793e7819e4c77ba9259366098b710fd102ffbcbcf38fa84ad720613313e3c59c1d419aaddd5a1a85d26c5d41a71d6692d428a494f57012 SHA512 464fa2c3608a6c096a241e5fc2cee710ef51394b169e3b3ce3ab5f69d847437c54780d4afc1a799d13f88ea88ac64056b19bff4d927e1e6bbe54a773b0ccd89d
|
||||
DIST erlang_doc_man_23.3.tar.gz 1456501 BLAKE2B 414bedee0e316d97b26d9d6418b799a9434a22e9980e7d3a83e2478d184d63d1633c0e10d0e180d929a3cacd82b4d703be86cbc8e99996037f6b37ea122f7a8c SHA512 6c661c210ffec4752afe624fa46700a0f62cc6589b74b859ab1dfde77d289e992988ac8744f7b4126d7512cd6d0aab3321f710a6324552b259bd7acd5b54a05e
|
||||
|
@ -1,155 +0,0 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
WX_GTK_VER="3.0-gtk3"
|
||||
|
||||
inherit elisp-common java-pkg-opt-2 systemd wxwidgets
|
||||
|
||||
# NOTE: If you need symlinks for binaries please tell maintainers or
|
||||
# open up a bug to let it be created.
|
||||
|
||||
UPSTREAM_V="$(ver_cut 1-2)"
|
||||
|
||||
DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)"
|
||||
HOMEPAGE="https://www.erlang.org/"
|
||||
SRC_URI="https://github.com/erlang/otp/archive/OTP-${PV}.tar.gz -> ${P}.tar.gz
|
||||
http://erlang.org/download/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz
|
||||
doc? ( http://erlang.org/download/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
# We use this subslot because Compiled HiPE Code can be loaded on the exact
|
||||
# same build of ERTS that was used when compiling the code. See
|
||||
# http://erlang.org/doc/system_principles/misc.html for more information.
|
||||
SLOT="0/${PV}"
|
||||
KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
IUSE="doc emacs +hipe java +kpoll odbc sctp ssl systemd tk wxwidgets"
|
||||
|
||||
RDEPEND="
|
||||
acct-group/epmd
|
||||
acct-user/epmd
|
||||
sys-libs/ncurses:0
|
||||
sys-libs/zlib
|
||||
emacs? ( >=app-editors/emacs-23.1:* )
|
||||
java? ( >=virtual/jdk-1.8:* )
|
||||
odbc? ( dev-db/unixODBC )
|
||||
sctp? ( net-misc/lksctp-tools )
|
||||
ssl? ( >=dev-libs/openssl-0.9.7d:0= )
|
||||
systemd? ( sys-apps/systemd )
|
||||
wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X,opengl] )
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
dev-lang/perl
|
||||
"
|
||||
|
||||
S="${WORKDIR}/otp-OTP-${PV}"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/18.2.1-wx3.0.patch
|
||||
"${FILESDIR}"/${PN}-22.0-dont-ignore-LDFLAGS.patch
|
||||
)
|
||||
|
||||
SITEFILE=50"${PN}"-gentoo.el
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
./otp_build autoconf || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
use wxwidgets && setup-wxwidgets
|
||||
|
||||
local myconf=(
|
||||
--disable-builtin-zlib
|
||||
$(use_enable hipe)
|
||||
$(use_enable kpoll kernel-poll)
|
||||
$(use_with java javac)
|
||||
$(use_enable sctp)
|
||||
$(use_with ssl ssl "${EPREFIX}"/usr)
|
||||
$(use_enable ssl dynamic-ssl-lib)
|
||||
$(use_enable systemd)
|
||||
$(usex wxwidgets "--with-wx-config=${WX_CONFIG}" "--with-wxdir=/dev/null")
|
||||
)
|
||||
econf "${myconf[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake
|
||||
|
||||
if use emacs ; then
|
||||
pushd lib/tools/emacs &>/dev/null || die
|
||||
elisp-compile *.el
|
||||
popd &>/dev/null || die
|
||||
fi
|
||||
}
|
||||
|
||||
extract_version() {
|
||||
local path="$1"
|
||||
local var_name="$2"
|
||||
sed -n -e "/^${var_name} = \(.*\)$/s::\1:p" "${S}/${path}/vsn.mk" || die "extract_version() failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local erl_libdir_rel="$(get_libdir)/erlang"
|
||||
local erl_libdir="/usr/${erl_libdir_rel}"
|
||||
local erl_interface_ver="$(extract_version lib/erl_interface EI_VSN)"
|
||||
local erl_erts_ver="$(extract_version erts VSN)"
|
||||
local my_manpath="/usr/share/${PN}/man"
|
||||
|
||||
[[ -z "${erl_erts_ver}" ]] && die "Couldn't determine erts version"
|
||||
[[ -z "${erl_interface_ver}" ]] && die "Couldn't determine interface version"
|
||||
|
||||
emake INSTALL_PREFIX="${D}" install
|
||||
|
||||
if use doc ; then
|
||||
# Note: we explicitly install docs into:
|
||||
# /usr/share/doc/${PF}/{doc,lib,erts-*}
|
||||
# To maintain that layout we gather everything in 'html-docs'.
|
||||
# See bug #684376.
|
||||
mkdir html-docs || die
|
||||
mv "${WORKDIR}"/doc "${WORKDIR}"/lib "${WORKDIR}"/erts-* html-docs/ || die
|
||||
local DOCS=( "AUTHORS" "HOWTO"/* "README.md" "CONTRIBUTING.md" html-docs/. )
|
||||
docompress -x /usr/share/doc/${PF}
|
||||
else
|
||||
local DOCS=("README.md")
|
||||
fi
|
||||
|
||||
einstalldocs
|
||||
|
||||
dosym "../${erl_libdir_rel}/bin/erl" /usr/bin/erl
|
||||
dosym "../${erl_libdir_rel}/bin/erlc" /usr/bin/erlc
|
||||
dosym "../${erl_libdir_rel}/bin/escript" /usr/bin/escript
|
||||
dosym "../${erl_libdir_rel}/lib/erl_interface-${erl_interface_ver}/bin/erl_call" /usr/bin/erl_call
|
||||
dosym "../${erl_libdir_rel}/erts-${erl_erts_ver}/bin/beam.smp" /usr/bin/beam.smp
|
||||
|
||||
## Clean up the no longer needed files
|
||||
rm "${ED}/${erl_libdir}/Install" || die
|
||||
|
||||
insinto "${my_manpath}"
|
||||
doins -r "${WORKDIR}"/man/*
|
||||
# extend MANPATH, so the normal man command can find it
|
||||
# see bug 189639
|
||||
newenvd - "90erlang" <<-_EOF_
|
||||
MANPATH="${my_manpath}"
|
||||
_EOF_
|
||||
|
||||
if use emacs ; then
|
||||
elisp-install erlang lib/tools/emacs/*.{el,elc}
|
||||
sed -e "s:/usr/share:${EPREFIX}/usr/share:g" \
|
||||
"${FILESDIR}/${SITEFILE}" > "${T}/${SITEFILE}" || die
|
||||
elisp-site-file-install "${T}/${SITEFILE}"
|
||||
fi
|
||||
|
||||
newinitd "${FILESDIR}"/epmd.init-r2 epmd
|
||||
newconfd "${FILESDIR}"/epmd.confd-r2 epmd
|
||||
use systemd && systemd_newunit "${FILESDIR}"/epmd.service-r1 epmd.service
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
@ -1,155 +0,0 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
WX_GTK_VER="3.0-gtk3"
|
||||
|
||||
inherit elisp-common java-pkg-opt-2 systemd wxwidgets
|
||||
|
||||
# NOTE: If you need symlinks for binaries please tell maintainers or
|
||||
# open up a bug to let it be created.
|
||||
|
||||
UPSTREAM_V="$(ver_cut 1-2)"
|
||||
|
||||
DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)"
|
||||
HOMEPAGE="https://www.erlang.org/"
|
||||
SRC_URI="https://github.com/erlang/otp/archive/OTP-${PV}.tar.gz -> ${P}.tar.gz
|
||||
http://erlang.org/download/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz
|
||||
doc? ( http://erlang.org/download/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
# We use this subslot because Compiled HiPE Code can be loaded on the exact
|
||||
# same build of ERTS that was used when compiling the code. See
|
||||
# http://erlang.org/doc/system_principles/misc.html for more information.
|
||||
SLOT="0/${PV}"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
IUSE="doc emacs +hipe java +kpoll odbc sctp ssl systemd tk wxwidgets"
|
||||
|
||||
RDEPEND="
|
||||
acct-group/epmd
|
||||
acct-user/epmd
|
||||
sys-libs/ncurses:0
|
||||
sys-libs/zlib
|
||||
emacs? ( >=app-editors/emacs-23.1:* )
|
||||
java? ( >=virtual/jdk-1.8:* )
|
||||
odbc? ( dev-db/unixODBC )
|
||||
sctp? ( net-misc/lksctp-tools )
|
||||
ssl? ( >=dev-libs/openssl-0.9.7d:0= )
|
||||
systemd? ( sys-apps/systemd )
|
||||
wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X,opengl] )
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
dev-lang/perl
|
||||
"
|
||||
|
||||
S="${WORKDIR}/otp-OTP-${PV}"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/18.2.1-wx3.0.patch
|
||||
"${FILESDIR}"/${PN}-22.0-dont-ignore-LDFLAGS.patch
|
||||
)
|
||||
|
||||
SITEFILE=50"${PN}"-gentoo.el
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
./otp_build autoconf || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
use wxwidgets && setup-wxwidgets
|
||||
|
||||
local myconf=(
|
||||
--disable-builtin-zlib
|
||||
$(use_enable hipe)
|
||||
$(use_enable kpoll kernel-poll)
|
||||
$(use_with java javac)
|
||||
$(use_enable sctp)
|
||||
$(use_with ssl ssl "${EPREFIX}"/usr)
|
||||
$(use_enable ssl dynamic-ssl-lib)
|
||||
$(use_enable systemd)
|
||||
$(usex wxwidgets "--with-wx-config=${WX_CONFIG}" "--with-wxdir=/dev/null")
|
||||
)
|
||||
econf "${myconf[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake
|
||||
|
||||
if use emacs ; then
|
||||
pushd lib/tools/emacs &>/dev/null || die
|
||||
elisp-compile *.el
|
||||
popd &>/dev/null || die
|
||||
fi
|
||||
}
|
||||
|
||||
extract_version() {
|
||||
local path="$1"
|
||||
local var_name="$2"
|
||||
sed -n -e "/^${var_name} = \(.*\)$/s::\1:p" "${S}/${path}/vsn.mk" || die "extract_version() failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local erl_libdir_rel="$(get_libdir)/erlang"
|
||||
local erl_libdir="/usr/${erl_libdir_rel}"
|
||||
local erl_interface_ver="$(extract_version lib/erl_interface EI_VSN)"
|
||||
local erl_erts_ver="$(extract_version erts VSN)"
|
||||
local my_manpath="/usr/share/${PN}/man"
|
||||
|
||||
[[ -z "${erl_erts_ver}" ]] && die "Couldn't determine erts version"
|
||||
[[ -z "${erl_interface_ver}" ]] && die "Couldn't determine interface version"
|
||||
|
||||
emake INSTALL_PREFIX="${D}" install
|
||||
|
||||
if use doc ; then
|
||||
# Note: we explicitly install docs into:
|
||||
# /usr/share/doc/${PF}/{doc,lib,erts-*}
|
||||
# To maintain that layout we gather everything in 'html-docs'.
|
||||
# See bug #684376.
|
||||
mkdir html-docs || die
|
||||
mv "${WORKDIR}"/doc "${WORKDIR}"/lib "${WORKDIR}"/erts-* html-docs/ || die
|
||||
local DOCS=( "AUTHORS" "HOWTO"/* "README.md" "CONTRIBUTING.md" html-docs/. )
|
||||
docompress -x /usr/share/doc/${PF}
|
||||
else
|
||||
local DOCS=("README.md")
|
||||
fi
|
||||
|
||||
einstalldocs
|
||||
|
||||
dosym "../${erl_libdir_rel}/bin/erl" /usr/bin/erl
|
||||
dosym "../${erl_libdir_rel}/bin/erlc" /usr/bin/erlc
|
||||
dosym "../${erl_libdir_rel}/bin/escript" /usr/bin/escript
|
||||
dosym "../${erl_libdir_rel}/lib/erl_interface-${erl_interface_ver}/bin/erl_call" /usr/bin/erl_call
|
||||
dosym "../${erl_libdir_rel}/erts-${erl_erts_ver}/bin/beam.smp" /usr/bin/beam.smp
|
||||
|
||||
## Clean up the no longer needed files
|
||||
rm "${ED}/${erl_libdir}/Install" || die
|
||||
|
||||
insinto "${my_manpath}"
|
||||
doins -r "${WORKDIR}"/man/*
|
||||
# extend MANPATH, so the normal man command can find it
|
||||
# see bug 189639
|
||||
newenvd - "90erlang" <<-_EOF_
|
||||
MANPATH="${my_manpath}"
|
||||
_EOF_
|
||||
|
||||
if use emacs ; then
|
||||
elisp-install erlang lib/tools/emacs/*.{el,elc}
|
||||
sed -e "s:/usr/share:${EPREFIX}/usr/share:g" \
|
||||
"${FILESDIR}/${SITEFILE}" > "${T}/${SITEFILE}" || die
|
||||
elisp-site-file-install "${T}/${SITEFILE}"
|
||||
fi
|
||||
|
||||
newinitd "${FILESDIR}"/epmd.init-r2 epmd
|
||||
newconfd "${FILESDIR}"/epmd.confd-r2 epmd
|
||||
use systemd && systemd_newunit "${FILESDIR}"/epmd.service-r1 epmd.service
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
@ -0,0 +1,816 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit alternatives flag-o-matic toolchain-funcs multilib multiprocessing
|
||||
|
||||
PATCH_VER=1
|
||||
CROSS_VER=1.3.4
|
||||
PATCH_BASE="perl-5.32.0-patches-${PATCH_VER}"
|
||||
PATCH_DEV=kentnl
|
||||
|
||||
DIST_AUTHOR=XSAWYERX
|
||||
|
||||
# Greatest first, don't include yourself
|
||||
# Devel point-releases are not ABI-intercompatible, but stable point releases are
|
||||
# BIN_OLDVERSEN is contains only C-ABI-intercompatible versions
|
||||
PERL_BIN_OLDVERSEN=""
|
||||
|
||||
# Yes we can.
|
||||
PERL_SINGLE_SLOT=y
|
||||
|
||||
if [[ "${PV##*.}" == "9999" ]]; then
|
||||
DIST_VERSION=5.30.0
|
||||
else
|
||||
DIST_VERSION="${PV/_rc/-RC}"
|
||||
fi
|
||||
SHORT_PV="${DIST_VERSION%.*}"
|
||||
# Even numbered major versions are ABI intercompatible
|
||||
# Odd numbered major versions are not
|
||||
if [[ $(( ${SHORT_PV#*.} % 2 )) == 1 ]]; then
|
||||
SUBSLOT="${DIST_VERSION%-RC*}"
|
||||
else
|
||||
SUBSLOT="${DIST_VERSION%.*}"
|
||||
fi
|
||||
# Used only in tar paths
|
||||
MY_P="perl-${DIST_VERSION}"
|
||||
# Used in library paths
|
||||
MY_PV="${DIST_VERSION%-RC*}"
|
||||
|
||||
DESCRIPTION="Larry Wall's Practical Extraction and Report Language"
|
||||
|
||||
SRC_URI="
|
||||
mirror://cpan/src/5.0/${MY_P}.tar.xz
|
||||
mirror://cpan/authors/id/${DIST_AUTHOR:0:1}/${DIST_AUTHOR:0:2}/${DIST_AUTHOR}/${MY_P}.tar.xz
|
||||
https://github.com/gentoo-perl/perl-patchset/releases/download/${PATCH_BASE}/${PATCH_BASE}.tar.xz
|
||||
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PATCH_BASE}.tar.xz
|
||||
https://github.com/arsv/perl-cross/releases/download/${CROSS_VER}/perl-cross-${CROSS_VER}.tar.gz
|
||||
"
|
||||
HOMEPAGE="https://www.perl.org/"
|
||||
|
||||
LICENSE="|| ( Artistic GPL-1+ )"
|
||||
SLOT="0/${SUBSLOT}"
|
||||
|
||||
if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; then
|
||||
#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
KEYWORDS=""
|
||||
fi
|
||||
|
||||
IUSE="berkdb debug doc gdbm ithreads minimal"
|
||||
|
||||
RDEPEND="
|
||||
berkdb? ( sys-libs/db:= )
|
||||
gdbm? ( >=sys-libs/gdbm-1.8.3:= )
|
||||
app-arch/bzip2
|
||||
sys-libs/zlib
|
||||
virtual/libcrypt:=
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="${RDEPEND}"
|
||||
|
||||
PDEPEND="
|
||||
!minimal? (
|
||||
>=app-admin/perl-cleaner-2.5
|
||||
>=virtual/perl-File-Temp-0.230.400-r2
|
||||
>=virtual/perl-Data-Dumper-2.154.0
|
||||
virtual/perl-Test-Harness
|
||||
)
|
||||
"
|
||||
# bug 390719, bug 523624
|
||||
# virtual/perl-Test-Harness is here for the bundled ExtUtils::MakeMaker
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
dual_scripts() {
|
||||
src_remove_dual perl-core/Archive-Tar 2.360.0 ptar ptardiff ptargrep
|
||||
src_remove_dual perl-core/CPAN 2.270.0 cpan
|
||||
src_remove_dual perl-core/Digest-SHA 6.20.0 shasum
|
||||
src_remove_dual perl-core/Encode 3.60.0 enc2xs piconv
|
||||
src_remove_dual perl-core/ExtUtils-MakeMaker 7.440.0 instmodsh
|
||||
src_remove_dual perl-core/ExtUtils-ParseXS 3.400.0 xsubpp
|
||||
src_remove_dual perl-core/IO-Compress 2.93.0 zipdetails
|
||||
src_remove_dual perl-core/JSON-PP 4.40.0 json_pp
|
||||
src_remove_dual perl-core/Module-CoreList 5.202.101.23 corelist
|
||||
src_remove_dual perl-core/Pod-Checker 1.730.0 podchecker
|
||||
src_remove_dual perl-core/Pod-Perldoc 3.280.100 perldoc
|
||||
src_remove_dual perl-core/Pod-Usage 1.690.0 pod2usage
|
||||
src_remove_dual perl-core/Test-Harness 3.420.0 prove
|
||||
src_remove_dual perl-core/podlators 4.140.0 pod2man pod2text
|
||||
src_remove_dual_man perl-core/podlators 4.140.0 /usr/share/man/man1/perlpodstyle.1
|
||||
}
|
||||
|
||||
check_rebuild() {
|
||||
# Fresh install
|
||||
if [[ -z "${REPLACING_VERSIONS}" ]]; then
|
||||
return 0;
|
||||
# Major Upgrade
|
||||
# doesn't matter if there's multiple copies, it still needs a rebuild
|
||||
# if the string is anything other than "5.CURRENTMAJOR"
|
||||
elif [[ "${REPLACING_VERSIONS%.*}" != "${PV%.*}" ]]; then
|
||||
echo ""
|
||||
ewarn "UPDATE THE PERL MODULES:"
|
||||
ewarn "After updating dev-lang/perl the installed Perl modules"
|
||||
ewarn "have to be re-installed. In most cases, this is done automatically"
|
||||
ewarn "by the package manager, but subsequent steps are still recommended"
|
||||
ewarn "to ensure system consistency."
|
||||
ewarn
|
||||
ewarn "You should start with a depclean to remove any unused perl dependencies"
|
||||
ewarn "that may confuse portage in future. Regular depcleans are also encouraged"
|
||||
ewarn "as part of your regular update cycle, as that will keep perl upgrades working."
|
||||
ewarn "Recommended: emerge --depclean -va"
|
||||
ewarn
|
||||
ewarn "You should then call perl-cleaner to clean up any old files and trigger any"
|
||||
ewarn "remaining rebuilds portage may have missed."
|
||||
ewarn "Use: perl-cleaner --all"
|
||||
return 0;
|
||||
|
||||
# Reinstall w/ USE Change
|
||||
elif ( use ithreads && ! has_version dev-lang/perl[ithreads] ) || \
|
||||
( ! use ithreads && has_version dev-lang/perl[ithreads] ) || \
|
||||
( use debug && ! has_version dev-lang/perl[debug] ) || \
|
||||
( ! use debug && has_version dev-lang/perl[debug] ) ; then
|
||||
echo ""
|
||||
ewarn "TOGGLED USE-FLAGS WARNING:"
|
||||
ewarn "You changed one of the use-flags ithreads or debug."
|
||||
ewarn "You must rebuild all perl-modules installed."
|
||||
ewarn "Use: perl-cleaner --modules ; perl-cleaner --force --libperl"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
case ${CHOST} in
|
||||
*-freebsd*) osname="freebsd" ;;
|
||||
*-dragonfly*) osname="dragonfly" ;;
|
||||
*-netbsd*) osname="netbsd" ;;
|
||||
*-openbsd*) osname="openbsd" ;;
|
||||
*-darwin*) osname="darwin" ;;
|
||||
*-solaris*) osname="solaris" ;;
|
||||
*-cygwin*) osname="cygwin" ;;
|
||||
*) osname="linux" ;;
|
||||
esac
|
||||
|
||||
myarch="${CHOST%%-*}-${osname}"
|
||||
if use debug ; then
|
||||
myarch+="-debug"
|
||||
fi
|
||||
if use ithreads ; then
|
||||
mythreading="-multi"
|
||||
myarch+="-thread"
|
||||
fi
|
||||
|
||||
PRIV_BASE="/usr/$(get_libdir)/perl5"
|
||||
SITE_BASE="/usr/local/$(get_libdir)/perl5"
|
||||
VENDOR_BASE="/usr/$(get_libdir)/perl5/vendor_perl"
|
||||
|
||||
LIBPERL="libperl$(get_libname ${MY_PV} )"
|
||||
|
||||
# This ENV var tells perl to build with a directory like "5.30"
|
||||
# regardless of its patch version. This is for experts only
|
||||
# at this point.
|
||||
if [[ -z "${PERL_SINGLE_SLOT}" ]]; then
|
||||
PRIV_LIB="${PRIV_BASE}/${MY_PV}"
|
||||
ARCH_LIB="${PRIV_BASE}/${MY_PV}/${myarch}${mythreading}"
|
||||
SITE_LIB="${SITE_BASE}/${MY_PV}"
|
||||
SITE_ARCH="${SITE_BASE}/${MY_PV}/${myarch}${mythreading}"
|
||||
VENDOR_LIB="${VENDOR_BASE}/${MY_PV}"
|
||||
VENDOR_ARCH="${VENDOR_BASE}/${MY_PV}/${myarch}${mythreading}"
|
||||
else
|
||||
PRIV_LIB="${PRIV_BASE}/${SUBSLOT}"
|
||||
ARCH_LIB="${PRIV_BASE}/${SUBSLOT}/${myarch}${mythreading}"
|
||||
SITE_LIB="${SITE_BASE}/${SUBSLOT}"
|
||||
SITE_ARCH="${SITE_BASE}/${SUBSLOT}/${myarch}${mythreading}"
|
||||
VENDOR_LIB="${VENDOR_BASE}/${SUBSLOT}"
|
||||
VENDOR_ARCH="${VENDOR_BASE}/${SUBSLOT}/${myarch}${mythreading}"
|
||||
fi
|
||||
|
||||
dual_scripts
|
||||
}
|
||||
|
||||
src_remove_dual_file() {
|
||||
local i pkg ver
|
||||
pkg="$1"
|
||||
ver="$2"
|
||||
shift 2
|
||||
case "${EBUILD_PHASE:-none}" in
|
||||
postinst|postrm)
|
||||
for i in "$@" ; do
|
||||
alternatives_auto_makesym "${i}" "${i}-[0-9]*"
|
||||
done
|
||||
;;
|
||||
setup)
|
||||
for i in "$@" ; do
|
||||
if [[ -f ${EROOT}${i} && ! -h ${EROOT}${i} ]] ; then
|
||||
has_version ${pkg} && ewarn "You must reinstall ${pkg} !"
|
||||
break
|
||||
fi
|
||||
done
|
||||
;;
|
||||
install)
|
||||
for i in "$@" ; do
|
||||
if ! [[ -f "${ED}"${i} ]] ; then
|
||||
ewarn "${i} does not exist!"
|
||||
continue
|
||||
fi
|
||||
mv "${ED}"${i}{,-${ver}-${P}} || die
|
||||
done
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
src_remove_dual_man() {
|
||||
local i pkg ver ff
|
||||
pkg="$1"
|
||||
ver="$2"
|
||||
shift 2
|
||||
case "${EBUILD_PHASE:-none}" in
|
||||
postinst|postrm)
|
||||
for i in "$@" ; do
|
||||
ff=`echo "${EROOT}${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}}"*`
|
||||
ff=${ff##*${i#${i%.[0-9]}}}
|
||||
alternatives_auto_makesym "${i}${ff}" "${i%.[0-9]}-[0-9]*"
|
||||
done
|
||||
;;
|
||||
install)
|
||||
for i in "$@" ; do
|
||||
if ! [[ -f "${ED}"${i} ]] ; then
|
||||
ewarn "${i} does not exist!"
|
||||
continue
|
||||
fi
|
||||
mv "${ED}"${i} "${ED}"${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}} || die
|
||||
done
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
src_remove_dual() {
|
||||
local i pkg ver
|
||||
pkg="$1"
|
||||
ver="$2"
|
||||
shift 2
|
||||
for i in "$@" ; do
|
||||
src_remove_dual_file "${pkg}" "${ver}" "/usr/bin/${i}"
|
||||
src_remove_dual_man "${pkg}" "${ver}" "/usr/share/man/man1/${i}.1"
|
||||
done
|
||||
}
|
||||
|
||||
src_prepare_perlcross() {
|
||||
cp -a ../perl-cross-${CROSS_VER}/* . || die
|
||||
|
||||
# bug 604072
|
||||
MAKEOPTS+=" -j1"
|
||||
export MAKEOPTS
|
||||
}
|
||||
src_prepare_dynamic() {
|
||||
ln -s ${LIBPERL} libperl$(get_libname ${SHORT_PV}) || die
|
||||
ln -s ${LIBPERL} libperl$(get_libname ) || die
|
||||
}
|
||||
|
||||
# Copy a patch into the patch series
|
||||
# add_patch SRC_PATH DEST_NAME ['description'] ['bug'] ['bug']
|
||||
# - description is optional, but recommended
|
||||
# - all arguments after descriptions are bug URLs
|
||||
add_patch() {
|
||||
local patchdir="${WORKDIR}/patches"
|
||||
local infodir="${WORKDIR}/patch-info"
|
||||
local src_name dest_name desc
|
||||
src_name="$1"
|
||||
dest_name="$2"
|
||||
desc="$3"
|
||||
shift; shift; shift;
|
||||
einfo "Adding ${dest_name} to patch bundle"
|
||||
cp "${src_name}" "${patchdir}/${dest_name}" || die "Couldn't copy ${src_name} to ${dest_name}"
|
||||
if [[ -n "${desc}" ]]; then
|
||||
printf "%s" "${desc}" > "${infodir}/${dest_name}.desc" || die "Couldn't write ${dest_name}.desc"
|
||||
fi
|
||||
if [[ $# -gt 0 ]]; then
|
||||
# Note: when $@ is more than one element, this emits a
|
||||
# line for each element
|
||||
printf "%s\n" "$@" > "${infodir}/${dest_name}.bugs" || die "Couldn't write ${dest_name}.bugs"
|
||||
fi
|
||||
}
|
||||
# Remove a patch using a glob expr
|
||||
# eg:
|
||||
# rm_patch *-darin-Use-CC*
|
||||
#
|
||||
rm_patch() {
|
||||
local patchdir="${WORKDIR}/patches"
|
||||
local expr="$1"
|
||||
local patch="$( cd "${patchdir}"; echo $expr )"
|
||||
einfo "Removing $patch ($expr) from patch bundle"
|
||||
if [[ -e "${patchdir}/${patch}" ]]; then
|
||||
rm -f "${patchdir}/${patch}" || die "Can't remove ${patch} ( $expr )"
|
||||
else
|
||||
ewarn "No ${expr} found in ${patchdir} to remove"
|
||||
fi
|
||||
}
|
||||
# Yes, this is a reasonable amount of code for something seemingly simple
|
||||
# but this is far easier to debug when things go wrong, and things went wrong
|
||||
# multiple times while I was getting the exact number of slashes right, which
|
||||
# requires circumnavigating both bash and sed escape mechanisms.
|
||||
c_escape_string() {
|
||||
local slash dquote
|
||||
slash='\'
|
||||
dquote='"'
|
||||
re_slash="${slash}${slash}"
|
||||
re_dquote="${slash}${dquote}"
|
||||
|
||||
# Convert \ to \\,
|
||||
# " to \"
|
||||
echo "$1" |\
|
||||
sed "s|${re_slash}|${re_slash}${re_slash}|g" |\
|
||||
sed "s|${re_dquote}|${re_slash}${re_dquote}|g"
|
||||
}
|
||||
c_escape_file() {
|
||||
c_escape_string "$(cat "$1")"
|
||||
}
|
||||
|
||||
apply_patchdir() {
|
||||
local patchdir="${WORKDIR}/patches"
|
||||
local infodir="${WORKDIR}/patch-info"
|
||||
local patchoutput="patchlevel-gentoo.h"
|
||||
|
||||
# Inject Patch-Level info into description for patchlevel.h patch
|
||||
# to show in -V
|
||||
local patch_expr="*List-packaged-patches*"
|
||||
local patch="$( cd "${patchdir}"; echo $patch_expr )";
|
||||
einfo "Injecting patch-level info into ${patch}.desc ( $patch_expr )"
|
||||
|
||||
if [[ -e "${patchdir}/${patch}" ]]; then
|
||||
printf "List packaged patches for %s(%s) in patchlevel.h" "${PF}" "${PATCH_BASE}"\
|
||||
>"${infodir}/${patch}.desc" || die "Can't rewrite ${patch}.desc"
|
||||
else
|
||||
eerror "No $patch_expr found in ${patchdir}"
|
||||
fi
|
||||
|
||||
# Compute patch list to apply
|
||||
# different name other than PATCHES to stop default
|
||||
# reapplying it
|
||||
# Single depth is currently only supported, as artifacts can reside
|
||||
# from the old layout being multiple-directories, as well as it grossly
|
||||
# simplifying the patchlevel_gentoo.h generation.
|
||||
local PERL_PATCHES=($(
|
||||
find "${patchdir}" -maxdepth 1 -mindepth 1 -type f -printf "%f\n" |\
|
||||
grep -E '[.](diff|patch)$' |\
|
||||
sort -n
|
||||
))
|
||||
|
||||
for patch in "${PERL_PATCHES[@]}"; do
|
||||
eapply "${WORKDIR}"/patches/${patch}
|
||||
done
|
||||
|
||||
einfo "Generating $patchoutput"
|
||||
|
||||
# This code creates a header file, each iteration
|
||||
# creates one-or-more-lines for each entry found in PERL_PATCHES
|
||||
# and STDOUT is redirected to the .h file
|
||||
for patch in "${PERL_PATCHES[@]}"; do
|
||||
local desc_f="${infodir}/${patch}.desc"
|
||||
local bugs_f="${infodir}/${patch}.bugs"
|
||||
|
||||
printf ',"%s"\n' "${patch}"
|
||||
if [[ ! -e "${desc_f}" ]]; then
|
||||
ewarn "No description provided for ${patch} (expected: ${desc_f} )"
|
||||
else
|
||||
local desc="$(c_escape_file "${desc_f}")"
|
||||
printf ',"- %s"\n' "${desc}"
|
||||
fi
|
||||
if [[ -e "${bugs_f}" ]]; then
|
||||
while read -d $'\n' -r line; do
|
||||
local esc_line="$(c_escape_string "${line}")"
|
||||
printf ',"- Bug: %s"\n' "${esc_line}"
|
||||
done <"${bugs_f}"
|
||||
fi
|
||||
done > "${S}/${patchoutput}"
|
||||
printf "%s\n" "${patchoutput}" >> "${S}/MANIFEST"
|
||||
|
||||
}
|
||||
src_prepare() {
|
||||
local patchdir="${WORKDIR}/patches"
|
||||
|
||||
# Prepare Patch dir with additional patches / remove unwanted patches
|
||||
# Inject bug/desc entries for perl -V
|
||||
if use hppa ; then
|
||||
# bug 634162
|
||||
add_patch "${FILESDIR}/${PN}-5.26.2-hppa.patch" "100-5.26.2-hppa.patch"\
|
||||
"Fix broken miniperl on hppa"\
|
||||
"https://bugs.debian.org/869122" "https://bugs.gentoo.org/634162"
|
||||
fi
|
||||
if [[ ${CHOST} == *-solaris* ]] ; then
|
||||
# do NOT mess with nsl, on Solaris this is always necessary,
|
||||
# when -lsocket is used e.g. to get h_errno
|
||||
rm_patch "*-nsl-and-cl*"
|
||||
fi
|
||||
|
||||
apply_patchdir
|
||||
|
||||
tc-is-cross-compiler && src_prepare_perlcross
|
||||
|
||||
tc-is-static-only || src_prepare_dynamic
|
||||
|
||||
if use gdbm; then
|
||||
sed -i "s:INC => .*:INC => \"-I${EROOT}/usr/include/gdbm\":g" \
|
||||
ext/NDBM_File/Makefile.PL || die
|
||||
fi
|
||||
|
||||
# Use errno.h from prefix rather than from host system, bug #645804
|
||||
if use prefix && [[ -e "${EPREFIX}"/usr/include/errno.h ]] ; then
|
||||
sed -i "/my..sysroot/s:'':'${EPREFIX}':" ext/Errno/Errno_pm.PL || die
|
||||
fi
|
||||
|
||||
if [[ ${CHOST} == *-solaris* ]] ; then
|
||||
# set a soname, fix linking against just built libperl
|
||||
sed -i -e 's/netbsd\*/netbsd*|solaris*/' Makefile.SH || die
|
||||
fi
|
||||
|
||||
if [[ ${CHOST} == *-darwin* ]] ; then
|
||||
# fix install_name (soname) not to reference $D
|
||||
sed -i -e '/install_name `pwd/s/`pwd`/\\$(shrpdir)/' Makefile.SH || die
|
||||
fi
|
||||
|
||||
default
|
||||
}
|
||||
|
||||
myconf() {
|
||||
# the myconf array is declared in src_configure
|
||||
myconf=( "${myconf[@]}" "$@" )
|
||||
}
|
||||
|
||||
# Outputs a list of versions which have been seen in any of the
|
||||
# primary perl @INC prefix paths, such as:
|
||||
# /usr/lib64/perl5/<NUMBER>
|
||||
# /usr/local/lib64/perl5/<NUMBER>
|
||||
# /usr/lib64/perl5/vendor_perl/<NUMBER>
|
||||
#
|
||||
# All values of NUMBER must be like "5.x.y", unless PERL_SUPPORT_SINGLE_SLOT
|
||||
# is enabled, where it will also allow numbers like "5.x"
|
||||
#
|
||||
# PERL_SUPPORT_SINGLE_SLOT should only be used to transition *away* from PERL_SINGLE_SLOT
|
||||
# if you used that.
|
||||
find_candidate_inc_versions() {
|
||||
local regex='.*/5[.][0-9]+[.][0-9]+$';
|
||||
if [[ ! -z "${PERL_SUPPORT_SINGLE_SLOT}" || ! -z "${PERL_SINGLE_SLOT}" ]]; then
|
||||
regex='.*/5[.][0-9]+\([.][0-9]+\|\)$'
|
||||
fi
|
||||
local dirs=(
|
||||
"${EROOT}${PRIV_BASE}"
|
||||
"${EROOT}${SITE_BASE}"
|
||||
"${EROOT}${VENDOR_BASE}"
|
||||
)
|
||||
for dir in "${dirs[@]}"; do
|
||||
if [[ ! -e "${dir}" ]]; then
|
||||
continue
|
||||
fi
|
||||
# Without access to readdir() on these dirs, find will not be able
|
||||
# to reveal any @INC directories inside them, and will subsequently prune
|
||||
# them from the built perl's @INC support, breaking our compatiblity options
|
||||
# entirely.
|
||||
if [[ ! -r "${dir}" || ! -x "${dir}" ]]; then
|
||||
eerror "Bad permissions on ${dir}, this will probably break things"
|
||||
eerror "Ensure ${dir} is +rx for at least uid=$EUID"
|
||||
eerror "Recommended permission is +rx for all"
|
||||
eerror "> chmod o+rx ${dir}"
|
||||
fi
|
||||
done
|
||||
einfo "Scanning for old @INC dirs matching '$regex' in: ${dirs[*]}"
|
||||
find "${dirs[@]}" -maxdepth 1 -mindepth 1 -type d -regex "${regex}" -printf "%f " 2>/dev/null
|
||||
}
|
||||
# Sort versions passed versiony-ly, remove self-version if present
|
||||
# dedup. Takes each version as an argument
|
||||
sanitize_inc_versions() {
|
||||
local vexclude="${DIST_VERSION%-RC}"
|
||||
if [[ ! -z "${PERL_SINGLE_SLOT}" ]]; then
|
||||
vexclude="${SUBSLOT}"
|
||||
fi
|
||||
einfo "Normalizing/Sorting candidate list: $*"
|
||||
einfo " to remove '${vexclude}'"
|
||||
# Note, general numeric sort has to be used
|
||||
# for the last component, or unique will convert
|
||||
# 5.30.0 + 5.30 into just 5.30
|
||||
printf "%s\n" "$@" |\
|
||||
grep -vxF "${vexclude}" |\
|
||||
sort -u -nr -t'.' -k1,1rn -k2,2rn -k3,3rg
|
||||
}
|
||||
|
||||
versions_to_inclist() {
|
||||
local oldv="${PERL_BIN_OLDVERSEN}"
|
||||
if [[ ! -z "${PERL_SINGLE_SLOT}" ]]; then
|
||||
oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
|
||||
fi
|
||||
for v; do
|
||||
has "${v}" ${oldv} && echo -n "${v}/${myarch}${mythreading}/ ";
|
||||
echo -n "${v}/ ";
|
||||
done
|
||||
}
|
||||
versions_to_gentoolibdirs() {
|
||||
local oldv="${PERL_BIN_OLDVERSEN}"
|
||||
local root
|
||||
local v
|
||||
if [[ ! -z "${PERL_SINGLE_SLOT}" ]]; then
|
||||
oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
|
||||
fi
|
||||
for v; do
|
||||
for root in "${PRIV_BASE}" "${VENDOR_BASE}" "${SITE_BASE}"; do
|
||||
local fullpath="${EROOT}${root}/${v}"
|
||||
if [[ -e "${fullpath}" ]]; then
|
||||
has "${v}" ${oldv} && printf "%s:" "${fullpath}/${myarch}${mythreading}";
|
||||
printf "%s:" "${fullpath}"
|
||||
fi
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
declare -a myconf
|
||||
|
||||
export LC_ALL="C"
|
||||
[[ ${COLUMNS:-1} -ge 1 ]] || unset COLUMNS # bug #394091
|
||||
|
||||
# Perl has problems compiling with -Os in your flags with glibc
|
||||
use elibc_uclibc || replace-flags "-Os" "-O2"
|
||||
|
||||
# xlocale.h is going away in glibc-2.26, so it's counterproductive
|
||||
# if we use it and include it in CORE/perl.h ... Perl builds just
|
||||
# fine with glibc and locale.h only.
|
||||
# However, the darwin prefix people have no locale.h ...
|
||||
use elibc_glibc && myconf -Ui_xlocale
|
||||
|
||||
# This flag makes compiling crash in interesting ways
|
||||
filter-flags "-malign-double"
|
||||
|
||||
# Generic LTO broken since 5.28, triggers EUMM failures
|
||||
filter-flags "-flto"
|
||||
|
||||
use sparc && myconf -Ud_longdbl
|
||||
|
||||
export BUILD_BZIP2=0
|
||||
export BZIP2_INCLUDE=${EROOT}/usr/include
|
||||
export BZIP2_LIB=${EROOT}/usr/$(get_libdir)
|
||||
|
||||
export BUILD_ZLIB=False
|
||||
export ZLIB_INCLUDE=${EROOT}/usr/include
|
||||
export ZLIB_LIB=${EROOT}/usr/$(get_libdir)
|
||||
|
||||
# allow either gdbm to provide ndbm (in <gdbm/ndbm.h>) or db1
|
||||
myndbm='U'
|
||||
mygdbm='U'
|
||||
mydb='U'
|
||||
if use gdbm ; then
|
||||
mygdbm='D'
|
||||
if use berkdb ; then
|
||||
myndbm='D'
|
||||
fi
|
||||
fi
|
||||
if use berkdb ; then
|
||||
mydb='D'
|
||||
has_version '=sys-libs/db-1*' && myndbm='D'
|
||||
fi
|
||||
|
||||
myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db"
|
||||
|
||||
if use alpha && [[ "$(tc-getCC)" = "ccc" ]] ; then
|
||||
ewarn "Perl will not be built with berkdb support, use gcc if you needed it..."
|
||||
myconf -Ui_db -Ui_ndbm
|
||||
fi
|
||||
|
||||
use ithreads && myconf -Dusethreads
|
||||
|
||||
if use debug ; then
|
||||
append-cflags "-g"
|
||||
myconf -DDEBUGGING
|
||||
elif [[ ${CFLAGS} == *-g* ]] ; then
|
||||
myconf -DDEBUGGING=-g
|
||||
else
|
||||
myconf -DDEBUGGING=none
|
||||
fi
|
||||
|
||||
# Autodiscover all old version directories, some of them will even be newer
|
||||
# if you downgrade
|
||||
if [[ -z ${PERL_OLDVERSEN} ]]; then
|
||||
PERL_OLDVERSEN="$( find_candidate_inc_versions )"
|
||||
fi
|
||||
|
||||
# Fixup versions, removing self match, fixing order and dupes
|
||||
PERL_OLDVERSEN="$( sanitize_inc_versions ${PERL_OLDVERSEN} )"
|
||||
|
||||
# Experts who want a "Pure" install can set PERL_OLDVERSEN to an empty string
|
||||
if [[ -n "${PERL_OLDVERSEN// }" ]]; then
|
||||
local inclist="$( versions_to_inclist ${PERL_OLDVERSEN} )"
|
||||
einfo "This version of perl may partially support modules previously"
|
||||
einfo "installed in any of the following paths:"
|
||||
for incpath in ${inclist}; do
|
||||
[[ -e "${EROOT}${VENDOR_BASE}/${incpath}" ]] && einfo " ${EROOT}${VENDOR_BASE}/${incpath}"
|
||||
[[ -e "${EROOT}${PRIV_BASE}/${incpath}" ]] && einfo " ${EROOT}${PRIV_BASE}/${incpath}"
|
||||
[[ -e "${EROOT}${SITE_BASE}/${incpath}" ]] && einfo " ${EROOT}${SITE_BASE}/${incpath}"
|
||||
done
|
||||
einfo "This is a temporary measure and you should aim to cleanup these paths"
|
||||
einfo "via world updates and perl-cleaner"
|
||||
# myconf -Dinc_version_list="${inclist}"
|
||||
myconf -Dgentoolibdirs="$( versions_to_gentoolibdirs ${PERL_OLDVERSEN} )"
|
||||
fi
|
||||
|
||||
[[ ${ELIBC} == "FreeBSD" ]] && myconf "-Dlibc=/usr/$(get_libdir)/libc.a"
|
||||
|
||||
# Make sure we can do the final link #523730, need to set deployment
|
||||
# target to override hardcoded 10.3 which breaks on modern OSX
|
||||
[[ ${CHOST} == *-darwin* ]] && \
|
||||
myconf "-Dld=env MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(tc-getCC)"
|
||||
|
||||
# Older macOS with non-Apple GCC chokes on inline in system headers
|
||||
# using c89 mode as injected by cflags.SH
|
||||
[[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \
|
||||
append-cflags -Dinline=__inline__
|
||||
|
||||
# flock on 32-bit sparc Solaris is broken, fall back to fcntl
|
||||
[[ ${CHOST} == sparc-*-solaris* ]] && \
|
||||
myconf -Ud_flock
|
||||
|
||||
# Prefix: the host system needs not to follow Gentoo multilib stuff, and in
|
||||
# Prefix itself we don't do multilib either, so make sure perl can find
|
||||
# something compatible.
|
||||
if use prefix ; then
|
||||
# Set a hook to check for each detected library whether it actually works.
|
||||
export libscheck="
|
||||
( echo 'main(){}' > '${T}'/conftest.c &&
|
||||
$(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c -l\$thislib >/dev/null 2>/dev/null
|
||||
) || xxx=/dev/null"
|
||||
|
||||
# Use all host paths that might contain useful stuff, the hook above will filter out bad choices.
|
||||
local paths="/lib/*-linux-gnu /usr/lib/*-linux-gnu /lib64 /lib/64 /usr/lib64 /usr/lib/64 /lib32 /usr/lib32 /lib /usr/lib"
|
||||
myconf "-Dlibpth=${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir) ${paths}"
|
||||
elif [[ $(get_libdir) != "lib" ]] ; then
|
||||
# We need to use " and not ', as the written config.sh use ' ...
|
||||
myconf "-Dlibpth=/usr/local/$(get_libdir) /$(get_libdir) /usr/$(get_libdir)"
|
||||
fi
|
||||
|
||||
# don't try building ODBM, bug #354453
|
||||
disabled_extensions="ODBM_File"
|
||||
|
||||
if ! use gdbm ; then
|
||||
# workaround for bug #157774: don't try building GDBM related stuff with USE="-gdbm"
|
||||
disabled_extensions="${disabled_extensions} GDBM_File NDBM_File"
|
||||
fi
|
||||
|
||||
myconf -Dnoextensions="${disabled_extensions}"
|
||||
|
||||
[[ "${PV##*.}" == "9999" ]] && myconf -Dusedevel -Uversiononly
|
||||
|
||||
[[ -n "${EXTRA_ECONF}" ]] && ewarn During Perl build, EXTRA_ECONF=${EXTRA_ECONF}
|
||||
# allow fiddling via EXTRA_ECONF, bug 558070
|
||||
eval "local -a EXTRA_ECONF=(${EXTRA_ECONF})"
|
||||
|
||||
# setting -Dld= to tc-getLD breaks perl and all perl things
|
||||
# https://github.com/Perl/perl5/issues/17791#issuecomment-630145202
|
||||
myconf \
|
||||
-Duseshrplib \
|
||||
-Darchname="${myarch}" \
|
||||
-Dcc="$(tc-getCC)" \
|
||||
-Dar="$(tc-getAR)" \
|
||||
-Dnm="$(tc-getNM)" \
|
||||
-Dcpp="$(tc-getCPP)" \
|
||||
-Dranlib="$(tc-getRANLIB)" \
|
||||
-Doptimize="${CFLAGS}" \
|
||||
-Dldflags="${LDFLAGS}" \
|
||||
-Dprefix="${EPREFIX}"'/usr' \
|
||||
-Dsiteprefix="${EPREFIX}"'/usr/local' \
|
||||
-Dvendorprefix="${EPREFIX}"'/usr' \
|
||||
-Dscriptdir="${EPREFIX}"'/usr/bin' \
|
||||
-Dprivlib="${EPREFIX}${PRIV_LIB}" \
|
||||
-Darchlib="${EPREFIX}${ARCH_LIB}" \
|
||||
-Dsitelib="${EPREFIX}${SITE_LIB}" \
|
||||
-Dsitearch="${EPREFIX}${SITE_ARCH}" \
|
||||
-Dvendorlib="${EPREFIX}${VENDOR_LIB}" \
|
||||
-Dvendorarch="${EPREFIX}${VENDOR_ARCH}" \
|
||||
-Dman1dir="${EPREFIX}"/usr/share/man/man1 \
|
||||
-Dman3dir="${EPREFIX}"/usr/share/man/man3 \
|
||||
-Dsiteman1dir="${EPREFIX}"/usr/local/man/man1 \
|
||||
-Dsiteman3dir="${EPREFIX}"/usr/local/man/man3 \
|
||||
-Dvendorman1dir="${EPREFIX}"/usr/share/man/man1 \
|
||||
-Dvendorman3dir="${EPREFIX}"/usr/share/man/man3 \
|
||||
-Dman1ext='1' \
|
||||
-Dman3ext='3pm' \
|
||||
-Dlibperl="${LIBPERL}" \
|
||||
-Dlocincpth="${EPREFIX}"'/usr/include ' \
|
||||
-Dglibpth="${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir)"' ' \
|
||||
-Duselargefiles \
|
||||
-Dd_semctl_semun \
|
||||
-Dcf_by='Gentoo' \
|
||||
-Dmyhostname='localhost' \
|
||||
-Dperladmin='root@localhost' \
|
||||
-Ud_csh \
|
||||
-Dsh="${EPREFIX}"/bin/sh \
|
||||
-Dtargetsh="${EPREFIX}"/bin/sh \
|
||||
-Uusenm \
|
||||
"${myconf[@]}" \
|
||||
"${EXTRA_ECONF[@]}"
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
./configure \
|
||||
--target="${CHOST}" \
|
||||
--build="${CBUILD}" \
|
||||
-Dinstallprefix='' \
|
||||
-Dinstallusrbinperl='undef' \
|
||||
-Dusevendorprefix='define' \
|
||||
"${myconf[@]}" \
|
||||
|| die "Unable to configure"
|
||||
else
|
||||
sh Configure \
|
||||
-des \
|
||||
-Dinstallprefix="${EPREFIX}"'/usr' \
|
||||
-Dinstallusrbinperl='n' \
|
||||
"${myconf[@]}" \
|
||||
|| die "Unable to configure"
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
export NO_GENTOO_NETWORK_TESTS=1;
|
||||
export GENTOO_ASSUME_SANDBOXED="${GENTOO_ASSUME_SANDBOXED:-1}"
|
||||
export GENTOO_NO_PORTING_TESTS="${GENTOO_NO_PORTING_TESTS:-1}"
|
||||
if [[ ${EUID} == 0 ]] ; then
|
||||
ewarn "Test fails with a sandbox error (#328793) if run as root. Skipping tests..."
|
||||
return 0
|
||||
fi
|
||||
use elibc_uclibc && export MAKEOPTS+=" -j1"
|
||||
TEST_JOBS="$(makeopts_jobs)" make test_harness || die "test failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local i
|
||||
local coredir="${ARCH_LIB}/CORE"
|
||||
|
||||
emake DESTDIR="${D}" install
|
||||
|
||||
rm -f "${ED}/usr/bin/perl${MY_PV}"
|
||||
ln -s perl "${ED}"/usr/bin/perl${MY_PV} || die
|
||||
|
||||
if ! tc-is-static-only ; then
|
||||
dolib.so "${ED}"${coredir}/${LIBPERL}
|
||||
rm -f "${ED}"${coredir}/${LIBPERL}
|
||||
ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname ${SHORT_PV}) || die
|
||||
ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname) || die
|
||||
|
||||
ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/${LIBPERL} || die
|
||||
ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname ${SHORT_PV}) || die
|
||||
ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname) || die
|
||||
fi
|
||||
|
||||
rm -rf "${ED}"/usr/share/man/man3 || die "Unable to remove module man pages"
|
||||
|
||||
# This removes ${D} from Config.pm
|
||||
for i in $(find "${D}" -iname "Config.pm" ) ; do
|
||||
einfo "Removing ${D} from ${i}..."
|
||||
sed -i -e "s:${D}::" "${i}" || die "Sed failed"
|
||||
done
|
||||
|
||||
dodoc Changes* README AUTHORS
|
||||
|
||||
if use doc ; then
|
||||
# HTML Documentation
|
||||
# We expect errors, warnings, and such with the following.
|
||||
|
||||
dodir /usr/share/doc/${PF}/html
|
||||
LD_LIBRARY_PATH=. ./perl installhtml \
|
||||
--podroot='.' \
|
||||
--podpath='lib:ext:pod:vms' \
|
||||
--recurse \
|
||||
--htmldir="${ED}/usr/share/doc/${PF}/html"
|
||||
fi
|
||||
|
||||
[[ -d ${ED}/usr/local ]] && rm -r "${ED}"/usr/local
|
||||
|
||||
dual_scripts
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
check_rebuild
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
dual_scripts
|
||||
|
||||
if [[ "${ROOT}" = "/" ]] ; then
|
||||
local INC DIR file
|
||||
INC=$(perl -e 'for $line (@INC) { next if $line eq "."; next if $line =~ m/'${SHORT_PV}'|etc|local|perl$/; print "$line\n" }')
|
||||
einfo "Removing old .ph files"
|
||||
for DIR in ${INC} ; do
|
||||
if [[ -d "${DIR}" ]] ; then
|
||||
for file in $(find "${DIR}" -name "*.ph" -type f ) ; do
|
||||
rm -f "${file}"
|
||||
einfo "<< ${file}"
|
||||
done
|
||||
fi
|
||||
done
|
||||
# Silently remove the now empty dirs
|
||||
for DIR in ${INC} ; do
|
||||
if [[ -d "${DIR}" ]] ; then
|
||||
find "${DIR}" -depth -type d -print0 | xargs -0 -r rmdir &> /dev/null
|
||||
fi
|
||||
done
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
dual_scripts
|
||||
}
|
@ -1,8 +1,5 @@
|
||||
DIST swi-prolog-8.2.2-gentoo-patchset-0.tar.gz 539 BLAKE2B 53d8f4aeb6f83eae628027f3f4d581f7a8c4e7e6c763350acc85bd0cc4ec4f6e8d7afe680763afc4bef9e5babb8100aeca0f887d029ffa115f4ead89cbc48cdd SHA512 d745b978c6926ed6b9f84d98c5cfd08716aaebe05bcf4a6fd9bd647a5d265b731e4daf2c0f5028eac36d7cea052eb52f80fe8287d4e9e285b3b8ffd544408da1
|
||||
DIST swi-prolog-8.2.3-gentoo-patchset-0.tar.gz 535 BLAKE2B bb7869c5166104a3a7faa88dd14284ea147ab5090695ff1c950365823451ac656403bee97c7dd4a039e2d58085456842f8bbc7caa26d18916c6f8718a204097c SHA512 c1f0dce1e336c79fe84a3f9d0fe5e873d33c00071f91cbb683a73fbceaba1c6ca8c2875b58045829eafcbee78a0e713009a07bd51a2c56bf146f14881899f934
|
||||
DIST swipl-8.2.2.tar.gz 11002077 BLAKE2B 581c3ea83d2440cbe2454ba12ea2752bec9fda926f3afef6e36de1bbf70b43b34931ad768335bb15809a3d76959c7eec7dd3ad54a0a4085ad8ba34075dd3f4d9 SHA512 fb77cfd58932dc35c3d808899c1f493ffb22a58f56fe364ce0c0b48b8cabdd204d4f920346c39f696fadd9ee8335e163a8eb8d0a770c2835d803f030c1f3f878
|
||||
DIST swipl-8.2.3.tar.gz 10999577 BLAKE2B 57cfa9f6fb97f0136a35da1850c7ae8da123d1c18fe6e18597d1b2131b7304a638d42d673efad2a01eaf3f9dad7b4754e6feb64917423abda002323bfc8dec8c SHA512 cd9ffc8a963682c0d02cec4b76338352459e004e07f3e5c0f02b3c2f9b19f23fe9639e037cf52531491a41c201113138f0b6a039d401e891ad5774383b0d852f
|
||||
DIST swipl-8.2.4.tar.gz 10998859 BLAKE2B b18f26102a685ff5c66aeaf0c14a08c532f9327f9f995cd46657a71b6779d021eb4f5651b2be77883197c7c5ee31c23259f46ed559aeeb0bb53ad10aea0081ed SHA512 cdbd23d4a0e9699ecc32bdcad9979e4042fb0f24de84010f6f097bc7148af38150b0e61e393c057b0dbae932d0fc1c02a41808bcbafd2c23e24fd73070bed470
|
||||
DIST swipl-8.3.20.tar.gz 11136550 BLAKE2B 83dd6ea056fd579816b88ca1faa3f857cb880d39d0cebc186aab0a0bf7cfdde19348874d4a7efb5e27995adfffb3ee075c42aa7fde1088ee17a5a05c137667ed SHA512 7f64ba639db0e1d75bd459e61ec14c30498035bbb59995f888702174fac159ebc96c47f22be2c3e466f5ba5547b39aaf83d296da2b2419ed89ff9195f355f3a4
|
||||
DIST swipl-8.3.21.tar.gz 11143843 BLAKE2B 4e4a009e40609d17f33bd783c477295e20805d471ffdb8f6451b52a7c51a749c123e79d0e5087a473fe20c5a673648208540e7039403c35c7ffb044851f72f04 SHA512 fe8596a4d0ecc5d2d48e7532619bdf09364d1b52beffc4ea73cdd79d29dde9d68ddc1a66a4f2f579d7eee1a3e215e13e918ca59b26788957e5e2dd5af2905139
|
||||
DIST swipl-8.3.22.tar.gz 11153417 BLAKE2B a02638ca29d4a19978b10062ab7f8913480e397551cb88327dd020bb2ae40bf623911f673f88e41074f68c667e7075fa18fc7dcf7b3013e582cbc70d59a6a729 SHA512 6fdf0ce6743c042ef7af0195e8c92fb81fe9fef2f16e9ec2d4ff355de70d21b325dd6058c9e7a0a0dd3e41cc168a251784ab7a473108d272e323470c601d5839
|
||||
|
@ -1,104 +0,0 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit cmake-utils flag-o-matic multilib
|
||||
|
||||
PATCHSET_VER="0"
|
||||
|
||||
DESCRIPTION="versatile implementation of the Prolog programming language"
|
||||
HOMEPAGE="https://www.swi-prolog.org/"
|
||||
SRC_URI="https://www.swi-prolog.org/download/stable/src/swipl-${PV}.tar.gz
|
||||
https://dev.gentoo.org/~keri/distfiles/swi-prolog/${P}-gentoo-patchset-${PATCHSET_VER}.tar.gz"
|
||||
|
||||
LICENSE="BSD-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux ~ppc-macos"
|
||||
IUSE="archive berkdb debug doc +gmp java +libedit minimal odbc pcre qt5 readline ssl test uuid X yaml"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="sys-libs/ncurses:=
|
||||
sys-libs/zlib
|
||||
archive? ( app-arch/libarchive )
|
||||
berkdb? ( >=sys-libs/db-4:= )
|
||||
odbc? ( dev-db/unixODBC )
|
||||
pcre? ( dev-libs/libpcre )
|
||||
readline? ( sys-libs/readline:= )
|
||||
libedit? ( dev-libs/libedit )
|
||||
gmp? ( dev-libs/gmp:0 )
|
||||
ssl? (
|
||||
dev-libs/openssl:0
|
||||
)
|
||||
java? ( >=virtual/jdk-1.8:* )
|
||||
uuid? ( dev-libs/ossp-uuid )
|
||||
qt5? (
|
||||
dev-qt/qtwidgets:5
|
||||
dev-qt/qtgui:5
|
||||
)
|
||||
X? (
|
||||
virtual/jpeg:0
|
||||
x11-libs/libX11
|
||||
x11-libs/libXft
|
||||
x11-libs/libXinerama
|
||||
x11-libs/libXpm
|
||||
x11-libs/libXt
|
||||
x11-libs/libICE
|
||||
x11-libs/libSM )
|
||||
yaml? ( dev-libs/libyaml )"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
X? ( x11-base/xorg-proto )
|
||||
java? ( test? ( =dev-java/junit-3.8* ) )"
|
||||
|
||||
S="${WORKDIR}/swipl-${PV}"
|
||||
BUILD_DIR="${S}/build"
|
||||
CMAKE_USE_DIR="${S}"
|
||||
|
||||
src_prepare() {
|
||||
if [[ -d "${WORKDIR}"/${PV} ]] ; then
|
||||
eapply "${WORKDIR}"/${PV}
|
||||
fi
|
||||
eapply_user
|
||||
|
||||
sed -i -e "s|\(SWIPL_INSTALL_PREFIX\) lib/.*)|\1 $(get_libdir)/swipl)|" CMakeLists.txt || die
|
||||
sed -i -e "s|\(SWIPL_INSTALL_CMAKE_CONFIG_DIR\) lib/|\1 $(get_libdir)/|" CMakeLists.txt || die
|
||||
|
||||
cmake-utils_src_prepare
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
append-flags -fno-strict-aliasing
|
||||
use debug && append-flags -DO_DEBUG
|
||||
|
||||
mycmakeargs=(
|
||||
-DSWIPL_INSTALL_PREFIX=$(get_libdir)/swipl
|
||||
-DUSE_GMP=$(usex gmp)
|
||||
-DINSTALL_DOCUMENTATION=$(use doc && usex archive)
|
||||
-DSWIPL_PACKAGES_BASIC=$(usex !minimal)
|
||||
-DSWIPL_PACKAGES_ARCHIVE=$(usex archive)
|
||||
-DSWIPL_PACKAGES_ODBC=$(usex odbc)
|
||||
-DSWIPL_PACKAGES_BDB=$(usex berkdb)
|
||||
-DSWIPL_PACKAGES_PCRE=$(usex pcre)
|
||||
-DSWIPL_PACKAGES_YAML=$(usex yaml)
|
||||
-DSWIPL_PACKAGES_SSL=$(usex ssl)
|
||||
-DSWIPL_PACKAGES_JAVA=$(usex java)
|
||||
-DSWIPL_PACKAGES_QT=$(usex qt5)
|
||||
-DSWIPL_PACKAGES_X=$(usex X)
|
||||
-DSWIPL_PACKAGES_TERM=$(if use libedit || use readline; then echo yes; else echo no; fi)
|
||||
)
|
||||
|
||||
cmake-utils_src_configure
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
XDG_CONFIG_DIRS="${HOME}" \
|
||||
XDG_DATA_DIRS="${HOME}" \
|
||||
cmake-utils_src_compile
|
||||
}
|
||||
|
||||
src_test() {
|
||||
USE_PUBLIC_NETWORK_TESTS=false \
|
||||
USE_ODBC_TESTS=false \
|
||||
cmake-utils_src_test -V
|
||||
}
|
@ -1,103 +0,0 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit cmake-utils flag-o-matic multilib
|
||||
|
||||
PATCHSET_VER="0"
|
||||
|
||||
DESCRIPTION="versatile implementation of the Prolog programming language"
|
||||
HOMEPAGE="http://www.swi-prolog.org/"
|
||||
SRC_URI="http://www.swi-prolog.org/download/devel/src/swipl-${PV}.tar.gz"
|
||||
|
||||
LICENSE="BSD-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
|
||||
IUSE="archive berkdb debug doc +gmp java +libedit minimal odbc pcre qt5 readline ssl test uuid X yaml"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="sys-libs/ncurses:=
|
||||
sys-libs/zlib
|
||||
archive? ( app-arch/libarchive )
|
||||
berkdb? ( >=sys-libs/db-4:= )
|
||||
odbc? ( dev-db/unixODBC )
|
||||
pcre? ( dev-libs/libpcre )
|
||||
readline? ( sys-libs/readline:= )
|
||||
libedit? ( dev-libs/libedit )
|
||||
gmp? ( dev-libs/gmp:0 )
|
||||
ssl? (
|
||||
dev-libs/openssl:0
|
||||
)
|
||||
java? ( >=virtual/jdk-1.8:* )
|
||||
uuid? ( dev-libs/ossp-uuid )
|
||||
qt5? (
|
||||
dev-qt/qtwidgets:5
|
||||
dev-qt/qtgui:5
|
||||
)
|
||||
X? (
|
||||
virtual/jpeg:0
|
||||
x11-libs/libX11
|
||||
x11-libs/libXft
|
||||
x11-libs/libXinerama
|
||||
x11-libs/libXpm
|
||||
x11-libs/libXt
|
||||
x11-libs/libICE
|
||||
x11-libs/libSM )
|
||||
yaml? ( dev-libs/libyaml )"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
X? ( x11-base/xorg-proto )
|
||||
java? ( test? ( =dev-java/junit-3.8* ) )"
|
||||
|
||||
S="${WORKDIR}/swipl-${PV}"
|
||||
BUILD_DIR="${S}/build"
|
||||
CMAKE_USE_DIR="${S}"
|
||||
|
||||
src_prepare() {
|
||||
if [[ -d "${WORKDIR}"/${PV} ]] ; then
|
||||
eapply "${WORKDIR}"/${PV}
|
||||
fi
|
||||
eapply_user
|
||||
|
||||
sed -i -e "s|\(SWIPL_INSTALL_PREFIX\) lib/.*)|\1 $(get_libdir)/swipl)|" CMakeLists.txt || die
|
||||
sed -i -e "s|\(SWIPL_INSTALL_CMAKE_CONFIG_DIR\) lib/|\1 $(get_libdir)/|" CMakeLists.txt || die
|
||||
|
||||
cmake-utils_src_prepare
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
append-flags -fno-strict-aliasing
|
||||
use debug && append-flags -DO_DEBUG
|
||||
|
||||
mycmakeargs=(
|
||||
-DSWIPL_INSTALL_PREFIX=$(get_libdir)/swipl
|
||||
-DUSE_GMP=$(usex gmp)
|
||||
-DINSTALL_DOCUMENTATION=$(use doc && usex archive)
|
||||
-DSWIPL_PACKAGES_BASIC=$(usex !minimal)
|
||||
-DSWIPL_PACKAGES_ARCHIVE=$(usex archive)
|
||||
-DSWIPL_PACKAGES_ODBC=$(usex odbc)
|
||||
-DSWIPL_PACKAGES_BDB=$(usex berkdb)
|
||||
-DSWIPL_PACKAGES_PCRE=$(usex pcre)
|
||||
-DSWIPL_PACKAGES_YAML=$(usex yaml)
|
||||
-DSWIPL_PACKAGES_SSL=$(usex ssl)
|
||||
-DSWIPL_PACKAGES_JAVA=$(usex java)
|
||||
-DSWIPL_PACKAGES_QT=$(usex qt5)
|
||||
-DSWIPL_PACKAGES_X=$(usex X)
|
||||
-DSWIPL_PACKAGES_TERM=$(if use libedit || use readline; then echo yes; else echo no; fi)
|
||||
)
|
||||
|
||||
cmake-utils_src_configure
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
XDG_CONFIG_DIRS="${HOME}" \
|
||||
XDG_DATA_DIRS="${HOME}" \
|
||||
cmake-utils_src_compile
|
||||
}
|
||||
|
||||
src_test() {
|
||||
USE_PUBLIC_NETWORK_TESTS=false \
|
||||
USE_ODBC_TESTS=false \
|
||||
cmake-utils_src_test -V
|
||||
}
|
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