parent
9dd83514f6
commit
1b8ed7ba01
@ -1,23 +1,23 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA512
|
||||
|
||||
MANIFEST Manifest.files.gz 29456 BLAKE2B 45021b96a256f7b46863bf5e615fbb22d557db287d604bb5c868695ff2e890b9cd6b839964aa3c4bea59c4a507f66222bef22946db6887d961233d606376f436 SHA512 5fa9bf7911375dfc681aaec6e214b3d9e44b815b128bca61b311ed62f14d9742612636b066c45ed50eff34fda83fae4a268409de8d4297e72727bef8a6c2a999
|
||||
TIMESTAMP 2020-01-29T21:38:54Z
|
||||
MANIFEST Manifest.files.gz 29475 BLAKE2B a586098686734f88bd47fe9d7538cab19b8c3b6e88b1b6b827a6ca324ae9d861f974864d33eb0c44c3f06fcdb31bbccfdd5a43c70917159ea27d3f5b0b868a34 SHA512 a67c8668feeaa12117720a14290e2598072946e45a4b03420c177ffdefa90ac629a595c924dea7efa0c16d7821e97482f39b4ea38dc452c56774a1279cdcaf8d
|
||||
TIMESTAMP 2020-01-31T14:38:53Z
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQKTBAEBCgB9FiEE4dartjv8+0ugL98c7FkO6skYklAFAl4x+25fFIAAAAAALgAo
|
||||
iQKTBAEBCgB9FiEE4dartjv8+0ugL98c7FkO6skYklAFAl40O/1fFIAAAAAALgAo
|
||||
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEUx
|
||||
RDZBQkI2M0JGQ0ZCNEJBMDJGREYxQ0VDNTkwRUVBQzkxODkyNTAACgkQ7FkO6skY
|
||||
klDO1w/+JjlSfJDEXLVg4FPggx2Wo5B95RIdbfFj7jaZ9IO8RLBFt5mbOg32IxtF
|
||||
ya+g2vAuloN068ctDamGKQppoUxTOE7cW4WTm3K18v8AMBp6Qum/tfpjJsVvdym1
|
||||
SIqb4zX6rXSucdmV8GMYm5o9r3qHgs/aaDVuFMPMrAlhC+XQsE2qaw9+8X8IwQZA
|
||||
JNILgS8xpkcHbPFwrTH+OrIH4Gq+pr8aEv986N/EfetYGobPB1IbekucYT80PDxz
|
||||
CRUjEJsXNT8gcp/Br8gAq70iqNZXOubuAJj/LtCs17vmdgIrOZ7mfHDUGZ/1Cj14
|
||||
fMKcGwnQhTNM0JE3nLXUo99gLT8GKLbng9AKwagGuqmpyDeEgtLzE16mMT58O8DZ
|
||||
n79U2EMBLwpxLDR0pKsna4mUGRnOw4sptPEdHhWAry93ihxSM/ieZddKkyrlxzOH
|
||||
eldp8p++rVxxX/byFXA1ZEFoEOVDtBt9UTidf6uMiCohDdNotx8kxP4jdfzdCiFG
|
||||
9v9pp0hIoS3sN7yQJCLla+bm7CwKx/S6qcQHm84oas3sINqc1wQqqhzBM5//OYGN
|
||||
HccTM+5cOxTmRMjQGTk3OBI29mFtxSl09hhAjiGErhsAt93+jJrln6rxWwQVZrIv
|
||||
KoHnihSw63TmJ4sjcq2I8b26EbL3Rq6bniWc6xyI1Ac+aeLXkoE=
|
||||
=SAer
|
||||
klAsGxAAotsYfM93Cu8yN8Nwty66qTdnpDp7YvrbLfdZLMfvQ6N1JeiXrPF3kadb
|
||||
yDRL77st21spi0PQ7r764vcw9SSEfiBKuBCQ540OjNV1MbcBvHvITqtgHzZcJ70C
|
||||
zGBMBeF1H6Bo5AsiMHtTj8tRZM9peFW0RhgRyOciiXV9xGL5Cib6ZO9KrwchNoA5
|
||||
ujsFzOFIh4y8DSTOfRyRV4NnwamFytMdJNLblbqtppPCE+sb8EubVa6+90c8JDrH
|
||||
Nymn/L4OKN1HwF37z3nrOu9iLCW5lF/jr8iPeZyVsHYtn+LP3jMW8UdPrmchY/0h
|
||||
iu7iWX84vxt7cLumZMyJPdSW2gXKb/SM+p7u2FKAivPAgaA+DkUtE5C1sBiNlLk+
|
||||
ayHCEuT7owCSLmZw4FSRwnOkfiEXvDGXiiWJvGFpg9X0wcpVJBN50IdkXF+b97q2
|
||||
SV81hAD/jzqTN08fUQyEC+17G9DV7KomWQpho1zgqSLzeX7OHbU8iQlNd6bPYwaD
|
||||
iPW2/qGIIFuLKrVCdYYHQZUFLiCsM2fip87qcm2I/iwouyYi8NTOcKoST73k3ncE
|
||||
tGbHyWPswLYiAa02UPqRqdjZf4udjJkCO0BgUGN/9DSSktfMuMNK4RHfmoOfSPko
|
||||
XL6hVA8qsNl+7pJVQe94lXkvmj0siapK+RuEvYXXGiSOuFtw7CE=
|
||||
=wXq7
|
||||
-----END PGP SIGNATURE-----
|
||||
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1,263 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit pam multilib libtool tmpfiles
|
||||
|
||||
MY_P="${P/_/}"
|
||||
MY_P="${MY_P/beta/b}"
|
||||
|
||||
DESCRIPTION="Allows users or groups to run commands as other users"
|
||||
HOMEPAGE="https://www.sudo.ws/"
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
inherit mercurial
|
||||
EHG_REPO_URI="https://www.sudo.ws/repos/sudo"
|
||||
else
|
||||
uri_prefix=
|
||||
case ${P} in
|
||||
*_beta*|*_rc*) uri_prefix=beta/ ;;
|
||||
esac
|
||||
|
||||
SRC_URI="https://www.sudo.ws/sudo/dist/${uri_prefix}${MY_P}.tar.gz
|
||||
ftp://ftp.sudo.ws/pub/sudo/${uri_prefix}${MY_P}.tar.gz"
|
||||
if [[ ${PV} != *_beta* ]] && [[ ${PV} != *_rc* ]] ; then
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-solaris"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Basic license is ISC-style as-is, some files are released under
|
||||
# 3-clause BSD license
|
||||
LICENSE="ISC BSD"
|
||||
SLOT="0"
|
||||
IUSE="gcrypt ldap libressl nls offensive pam sasl +secure-path selinux +sendmail skey sssd system-digest"
|
||||
|
||||
DEPEND="
|
||||
sys-libs/zlib:=
|
||||
ldap? (
|
||||
>=net-nds/openldap-2.1.30-r1
|
||||
sasl? (
|
||||
dev-libs/cyrus-sasl
|
||||
net-nds/openldap[sasl]
|
||||
)
|
||||
)
|
||||
pam? ( sys-libs/pam )
|
||||
sasl? ( dev-libs/cyrus-sasl )
|
||||
skey? ( >=sys-auth/skey-1.1.5-r1 )
|
||||
sssd? ( sys-auth/sssd[sudo] )
|
||||
system-digest? (
|
||||
gcrypt? ( dev-libs/libgcrypt:= )
|
||||
!gcrypt? (
|
||||
!libressl? ( dev-libs/openssl:0= )
|
||||
libressl? ( dev-libs/libressl:0= )
|
||||
)
|
||||
)
|
||||
"
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
>=app-misc/editor-wrapper-3
|
||||
virtual/editor
|
||||
ldap? ( dev-lang/perl )
|
||||
pam? ( sys-auth/pambase )
|
||||
selinux? ( sec-policy/selinux-sudo )
|
||||
sendmail? ( virtual/mta )
|
||||
"
|
||||
BDEPEND="
|
||||
sys-devel/bison
|
||||
"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
REQUIRED_USE="
|
||||
pam? ( !skey )
|
||||
skey? ( !pam )
|
||||
"
|
||||
|
||||
MAKEOPTS+=" SAMPLES="
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
elibtoolize
|
||||
}
|
||||
|
||||
set_secure_path() {
|
||||
# FIXME: secure_path is a compile time setting. using PATH or
|
||||
# ROOTPATH is not perfect, env-update may invalidate this, but until it
|
||||
# is available as a sudoers setting this will have to do.
|
||||
einfo "Setting secure_path ..."
|
||||
|
||||
# first extract the default ROOTPATH from build env
|
||||
SECURE_PATH=$(unset ROOTPATH; . "${EPREFIX}"/etc/profile.env;
|
||||
echo "${ROOTPATH}")
|
||||
case "${SECURE_PATH}" in
|
||||
*/usr/sbin*) ;;
|
||||
*) SECURE_PATH=$(unset PATH;
|
||||
. "${EPREFIX}"/etc/profile.env; echo "${PATH}")
|
||||
;;
|
||||
esac
|
||||
if [[ -z ${SECURE_PATH} ]] ; then
|
||||
ewarn " Failed to detect SECURE_PATH, please report this"
|
||||
fi
|
||||
|
||||
# then remove duplicate path entries
|
||||
cleanpath() {
|
||||
local newpath thisp IFS=:
|
||||
for thisp in $1 ; do
|
||||
if [[ :${newpath}: != *:${thisp}:* ]] ; then
|
||||
newpath+=:${thisp}
|
||||
else
|
||||
einfo " Duplicate entry ${thisp} removed..."
|
||||
fi
|
||||
done
|
||||
SECURE_PATH=${newpath#:}
|
||||
}
|
||||
cleanpath /bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/opt/bin${SECURE_PATH:+:${SECURE_PATH}}
|
||||
|
||||
# finally, strip gcc paths #136027
|
||||
rmpath() {
|
||||
local e newpath thisp IFS=:
|
||||
for thisp in ${SECURE_PATH} ; do
|
||||
for e ; do [[ ${thisp} == ${e} ]] && continue 2 ; done
|
||||
newpath+=:${thisp}
|
||||
done
|
||||
SECURE_PATH=${newpath#:}
|
||||
}
|
||||
rmpath '*/gcc-bin/*' '*/gnat-gcc-bin/*' '*/gnat-gcc/*'
|
||||
|
||||
einfo "... done"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local SECURE_PATH
|
||||
set_secure_path
|
||||
|
||||
# audit: somebody got to explain me how I can test this before I
|
||||
# enable it.. - Diego
|
||||
# plugindir: autoconf code is crappy and does not delay evaluation
|
||||
# until `make` time, so we have to use a full path here rather than
|
||||
# basing off other values.
|
||||
myeconfargs=(
|
||||
--enable-zlib=system
|
||||
--enable-tmpfiles.d="${EPREFIX}"/usr/lib/tmpfiles.d
|
||||
--with-editor="${EPREFIX}"/usr/libexec/editor
|
||||
--with-env-editor
|
||||
--with-plugindir="${EPREFIX}"/usr/$(get_libdir)/sudo
|
||||
--with-rundir="${EPREFIX}"/run/sudo
|
||||
$(use_with secure-path secure-path "${SECURE_PATH}")
|
||||
--with-vardir="${EPREFIX}"/var/db/sudo
|
||||
--without-linux-audit
|
||||
--without-opie
|
||||
$(use_enable gcrypt)
|
||||
$(use_enable nls)
|
||||
$(use_enable sasl)
|
||||
$(use_with offensive insults)
|
||||
$(use_with offensive all-insults)
|
||||
$(use_with ldap ldap_conf_file /etc/ldap.conf.sudo)
|
||||
$(use_with ldap)
|
||||
$(use_with pam)
|
||||
$(use_with skey)
|
||||
$(use_with sssd)
|
||||
$(use_with selinux)
|
||||
$(use_with sendmail)
|
||||
)
|
||||
|
||||
if use system-digest && ! use gcrypt; then
|
||||
myeconfargs+=("--enable-openssl")
|
||||
else
|
||||
myeconfargs+=("--disable-openssl")
|
||||
fi
|
||||
|
||||
econf "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
if use ldap ; then
|
||||
dodoc README.LDAP
|
||||
|
||||
cat <<-EOF > "${T}"/ldap.conf.sudo
|
||||
# See ldap.conf(5) and README.LDAP for details
|
||||
# This file should only be readable by root
|
||||
|
||||
# supported directives: host, port, ssl, ldap_version
|
||||
# uri, binddn, bindpw, sudoers_base, sudoers_debug
|
||||
# tls_{checkpeer,cacertfile,cacertdir,randfile,ciphers,cert,key}
|
||||
EOF
|
||||
|
||||
if use sasl ; then
|
||||
cat <<-EOF >> "${T}"/ldap.conf.sudo
|
||||
|
||||
# SASL directives: use_sasl, sasl_mech, sasl_auth_id
|
||||
# sasl_secprops, rootuse_sasl, rootsasl_auth_id, krb5_ccname
|
||||
EOF
|
||||
fi
|
||||
|
||||
insinto /etc
|
||||
doins "${T}"/ldap.conf.sudo
|
||||
fperms 0440 /etc/ldap.conf.sudo
|
||||
|
||||
insinto /etc/openldap/schema
|
||||
newins doc/schema.OpenLDAP sudo.schema
|
||||
fi
|
||||
|
||||
pamd_mimic system-auth sudo auth account session
|
||||
|
||||
keepdir /var/db/sudo/lectured
|
||||
fperms 0700 /var/db/sudo/lectured
|
||||
fperms 0711 /var/db/sudo #652958
|
||||
|
||||
# Don't install into /run as that is a tmpfs most of the time
|
||||
# (bug #504854)
|
||||
rm -rf "${ED}"/run
|
||||
|
||||
find "${ED}" -type f -name "*.la" -delete || die #697812
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
tmpfiles_process sudo.conf
|
||||
|
||||
#652958
|
||||
local sudo_db="${EROOT}/var/db/sudo"
|
||||
if [[ "$(stat -c %a "${sudo_db}")" -ne 711 ]] ; then
|
||||
chmod 711 "${sudo_db}" || die
|
||||
fi
|
||||
|
||||
if use ldap ; then
|
||||
ewarn
|
||||
ewarn "sudo uses the /etc/ldap.conf.sudo file for ldap configuration."
|
||||
ewarn
|
||||
if grep -qs '^[[:space:]]*sudoers:' "${ROOT}"/etc/nsswitch.conf ; then
|
||||
ewarn "In 1.7 series, LDAP is no more consulted, unless explicitly"
|
||||
ewarn "configured in /etc/nsswitch.conf."
|
||||
ewarn
|
||||
ewarn "To make use of LDAP, add this line to your /etc/nsswitch.conf:"
|
||||
ewarn " sudoers: ldap files"
|
||||
ewarn
|
||||
fi
|
||||
fi
|
||||
if use prefix ; then
|
||||
ewarn
|
||||
ewarn "To use sudo, you need to change file ownership and permissions"
|
||||
ewarn "with root privileges, as follows:"
|
||||
ewarn
|
||||
ewarn " # chown root:root ${EPREFIX}/usr/bin/sudo"
|
||||
ewarn " # chown root:root ${EPREFIX}/usr/lib/sudo/sudoers.so"
|
||||
ewarn " # chown root:root ${EPREFIX}/etc/sudoers"
|
||||
ewarn " # chown root:root ${EPREFIX}/etc/sudoers.d"
|
||||
ewarn " # chown root:root ${EPREFIX}/var/db/sudo"
|
||||
ewarn " # chmod 4111 ${EPREFIX}/usr/bin/sudo"
|
||||
ewarn
|
||||
fi
|
||||
|
||||
elog "To use the -A (askpass) option, you need to install a compatible"
|
||||
elog "password program from the following list. Starred packages will"
|
||||
elog "automatically register for the use with sudo (but will not force"
|
||||
elog "the -A option):"
|
||||
elog ""
|
||||
elog " [*] net-misc/ssh-askpass-fullscreen"
|
||||
elog " net-misc/x11-ssh-askpass"
|
||||
elog ""
|
||||
elog "You can override the choice by setting the SUDO_ASKPASS environmnent"
|
||||
elog "variable to the program you want to use."
|
||||
}
|
Binary file not shown.
@ -1,11 +1,9 @@
|
||||
AUX unrar-5.5.5-build.patch 1021 BLAKE2B f11426cac10efe195a0507ea99c77813284ff8d03aa47f4c10f8d4c93689eac919aa68651bf20393fbadd94bb88439fddaa1448cf00153a2dbfb0468c938f1b1 SHA512 c6875ef2ed3f1cd5e8baae74fdc92c7c44c694169bfaa2b63af10eaacb52dd27ff12360ac6757a82499a0f14fb78cfa1bfbd8391435f95b125a81b2e776f28a0
|
||||
AUX unrar-5.5.5-honor-flags.patch 1211 BLAKE2B 8104ac7bf12579218e71147865823da40c3c534a1a13a26f1e59712bfea10c6664a0efce1aff95bd28f35dfb8a50561ff32785416c40c155f047a2368dd76f2d SHA512 a91bc7f4af17fa3a72e6dbd6276afae181554184e8b9ba34c52235d69890ac1e68350d9c14ba7cd207c71220963a26cf1169b965258992cf3b79ec71537c2569
|
||||
DIST unrar-5.7.5.tar.gz 228818 BLAKE2B 2bd9cfaed07802147af9a3457cea3f78f464cc26e2e20ef2c15817fffb7dc275fd326fd96b089257a8044982c0ae130ca3dc42126356d973ee6a8afd43e28df0 SHA512 101a21a20d8e30ca2cccc1605e332579064d362feacb36e9d4a7cd5218585298dcb48ec2805ff9523ae9b25e8e3d3e7557b73ea457702c6cb6d8c50d324ea1f4
|
||||
DIST unrar-5.8.3.tar.gz 229162 BLAKE2B 1515af301fdcbbe02d1ebf487b1a0ab7849919e0065f223ec78e69cf5fb9436778f184c9cdead927c37d41ddf779bc7c539259cc60b1e9db19225762af17ed27 SHA512 32ab5cd9135d968f2e908975e72e716f5aa8911ee53fbcade6cf9783eb22330dc0114baf5db148c223015498d28fa4c60446e0ccd8108856c6d089117a147669
|
||||
DIST unrar-5.8.4.tar.gz 229618 BLAKE2B 3b163a7d3a13dd5864ae729eef6c6bc171e45b0db4e716660b24a14ecf035572fdd1dc44a9c59d07d9fde87255b941f45d5b2e0aeffac3a53b021dc1cbd4b0f1 SHA512 dd3502662b443f05c7bd01a50806b9e3443f9bbba7d88ee8fe9ca0d671d93b0db8956b822ec25b9d827941313ef2ec5608f15934bab91cecbab1ccea9ae8129e
|
||||
DIST unrar-5.8.5.tar.gz 229641 BLAKE2B 132453d2e2ddb1b1b2151be15bd092dc06fe7ab96d8fa640db95dc1acdee90f6b259a5d04c1da959a398e3a9beb22862a14db9b41b19055771373e00d89e958b SHA512 bacd36c78c6bab2720b13796b73b376bd0ae693916b8130637cc4e6bbd76f6bd103347d9033d2d6cf6301587ba62449ec88b3aa4c18c8557ad5ace3475b41a7c
|
||||
DIST unrar-5.9.1.tar.gz 229913 BLAKE2B 0969678b0676fbf8058e214e2ac8725ebbfbd391d23690eb0f55bdbbaa86b0a0752d4028bd52a95b455aacb324be5180dee485864b9f6cf63e2c1efc90b52af7 SHA512 dcc1ae8cd886f711f7ce400c2dc496e170e62f17f41f96bb26e3900bea82c3923114678efee07b88a9bf55ce22d7d07d36400744e42f2b59231a51724b04c138
|
||||
EBUILD unrar-5.7.5.ebuild 1861 BLAKE2B d6eea740529262d022b81d39e36897f53a9cf43b04301eb235b9f4d039fb5f98db06de0d2cbcbece731bd69b0839cde8b5c51c05b5c0ba407affc9ebab40a55e SHA512 eed6b71e09c40bb7979562fd0a917bacf33542a62ded41d33765f9dbe2effdb4bad0e46c6aca885e63fb999b2730cbd75d1ccf01c97d3dba4d32fdf70b0274d6
|
||||
EBUILD unrar-5.8.3.ebuild 1880 BLAKE2B 7c0ae095f7358750a151c01a373a3011db7e4f50f4a0a1098a774df29f64b55e11efebead01e96cd9bdb681ce66c20f7660b75fe2689693f93190e98271b82d3 SHA512 ad38c54b141848fd6b9c554ded67e281a55f5016f8e40e1fa8401805ed510bccda935983e9ba6fd715fd3a55f895691a4da476e73aab82f4fd10b84896c7ff17
|
||||
EBUILD unrar-5.8.4.ebuild 1880 BLAKE2B 7c0ae095f7358750a151c01a373a3011db7e4f50f4a0a1098a774df29f64b55e11efebead01e96cd9bdb681ce66c20f7660b75fe2689693f93190e98271b82d3 SHA512 ad38c54b141848fd6b9c554ded67e281a55f5016f8e40e1fa8401805ed510bccda935983e9ba6fd715fd3a55f895691a4da476e73aab82f4fd10b84896c7ff17
|
||||
EBUILD unrar-5.8.5.ebuild 1874 BLAKE2B b4dff343451dff39f39527d40028111e55ba10f09a80be5e9570b426cf9b81a5938b8c1b5aeefee7842885ee13d649a89665e8ba53bc3e6b66160e1d66a4e4ad SHA512 8525bd45c3b74f2bf3af1140040b5a1dbfa1984a3d7a79492c55b85cedc0123e5f359b331ad78d09e20d4b145192ed9f30bc6a9b4a58f95bb202e23c22a13c75
|
||||
EBUILD unrar-5.9.1.ebuild 1880 BLAKE2B 9130011293bb6bb4668aac8d8e5b99d0f89b63fec3f126bb81d2b5c09623e81bffddbd0c8a2054bd7eedadb1161b2bb4b78ec0a77219f90e6d06fd7157cf30fc SHA512 efce6e14033e39c4b95ca1eb1b753f81e63acd80cdebabf223adcdf664d7d37a56ee9d04211f083f3ad0f456d6ece1e956a71d5b57cf7bde0c82eeb34ba707ea
|
||||
MISC metadata.xml 512 BLAKE2B 260947f2fad1c57508f689b2db22fff72276f40fb91789cfd0b0a2ae63d6710ed186d6350e4a23d19566e3469a097294f95074810652d61cb752a54dfe92ac80 SHA512 4a8c151dbda173dada5635cbd844459a1d999c6c41a2e140a09ba31536e1856d896141471c65b5cb52c9c92229f55c211e01ba23b975f4d25442ffc55ae6a13d
|
||||
|
@ -1,70 +0,0 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit flag-o-matic multilib toolchain-funcs
|
||||
|
||||
MY_PN="${PN}src"
|
||||
|
||||
DESCRIPTION="Uncompress rar files"
|
||||
HOMEPAGE="https://www.rarlab.com/rar_add.htm"
|
||||
SRC_URI="https://www.rarlab.com/rar/${MY_PN}-${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="unRAR"
|
||||
# subslot = soname version
|
||||
SLOT="0/5"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris"
|
||||
IUSE=""
|
||||
|
||||
RDEPEND="!<=app-arch/unrar-gpl-0.0.1_p20080417"
|
||||
|
||||
S="${WORKDIR}/unrar"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-5.5.5-build.patch
|
||||
"${FILESDIR}"/${PN}-5.5.5-honor-flags.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
local sed_args=( -e "/libunrar/s:.so:$(get_libname ${PV%.*.*}):" )
|
||||
if [[ ${CHOST} == *-darwin* ]] ; then
|
||||
sed_args+=( -e "s:-shared:-dynamiclib -install_name ${EPREFIX}/usr/$(get_libdir)/libunrar$(get_libname ${PV%.*.*}):" )
|
||||
else
|
||||
sed_args+=( -e "s:-shared:& -Wl,-soname -Wl,libunrar$(get_libname ${PV%.*.*}):" )
|
||||
fi
|
||||
sed -i "${sed_args[@]}" makefile || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
mkdir -p build-{lib,bin}
|
||||
printf 'VPATH = ..\ninclude ../makefile' > build-lib/Makefile || die
|
||||
cp build-{lib,bin}/Makefile || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
unrar_make() {
|
||||
emake CXX="$(tc-getCXX)" CXXFLAGS="${CXXFLAGS}" STRIP=true "$@"
|
||||
}
|
||||
|
||||
unrar_make CXXFLAGS+=" -fPIC" -C build-lib lib
|
||||
ln -s libunrar$(get_libname ${PV%.*.*}) build-lib/libunrar$(get_libname) || die
|
||||
ln -s libunrar$(get_libname ${PV%.*.*}) build-lib/libunrar$(get_libname ${PV}) || die
|
||||
|
||||
unrar_make -C build-bin
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin build-bin/unrar
|
||||
dodoc readme.txt
|
||||
|
||||
dolib.so build-lib/libunrar*
|
||||
|
||||
insinto /usr/include/libunrar${PV%.*.*}
|
||||
doins *.hpp
|
||||
dosym libunrar${PV%.*.*} /usr/include/libunrar
|
||||
|
||||
find "${ED}" -type f -name "*.a" -delete || die
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
Binary file not shown.
@ -1,5 +1,10 @@
|
||||
AUX simh-3.11.0-fcommon.patch 1218 BLAKE2B e791f49dfa42f0bd0a36d8c04405ed74bf4bf56fddf285cbac306f7c5188da52ab37f7a16bb55a4e9e5d6aa7f4d2ceb716cea823f2430cc19b53580f4eb5d044 SHA512 12eefe8c535b813ba55c7fb16929915d7c2715980d4e778ad357b4f8e5cfe73c3b00530252551bd22765f2b893a4f9d5d8404bed714c2dd4b5173029e7f70e58
|
||||
AUX simh-3.11.0-fix-mkdir-race.patch 333 BLAKE2B 2b50d8997d5a782391c6a0174c4c4471a98e6388d9a135068caf864531d075529e7dd8b264c096102ac18266c3c05691e5c723d1ef02c0cd93fdf49b45e5c3f1 SHA512 5ca8022e0c6521627c5d6075e04a10c42bfe61d6ac860b0f2dfde2cb70fb3df5e2f77d1a12e35ea75c3357effc3f5bc26e76e3ecb0a1461f7366297bd0e784e5
|
||||
AUX simh-3.11.0-respect-FLAGS.patch 265 BLAKE2B ba4134c8e3b0aafc71bbccb2e036d6532532816f30d1ac2a1759eb998479233c5e52a65fea77adf67c28a2e374b9edb998f91b30df9ea6e00f6f77723fdab61f SHA512 0e3c69ce2a7960c872933e60b0a8f043e0b0ae5563c4c5110045d53c34276a04cc110a0831057029ac84b21d818e1698514438d4f890bf4cd8d8e613af2cd9ef
|
||||
AUX simh-3.9.0-fix-mkdir-race.patch 324 BLAKE2B 03cbbbfaf958cb43769a0e2935dfb5f3e9148e5092b7726f2ea570afc34018459692e2c28721e698fc9f158b23176bd1623d99a6b1a15e0fe81bb6c7da370ade SHA512 3ca847ea6c34370c88788c4c3d8997dfe3e7740a201c531731425bc17375b405cef9f1db28d1eb66548add7953aef1d4cdc1b8c7212ab56d0c5f43fa4caea18a
|
||||
AUX simh-3.9.0-respect-FLAGS.patch 336 BLAKE2B 990f49c6da04f6f0e8a8f7c8170a6013376f12271063dab4c01345d98fe406981e3de49cf421017a902732755900d905d13c3a23d03091fa854dedff9bdabfaf SHA512 438386edcca386da7ed3f3a2247584e9aed708d5c54164d736e1dd26b565c065a0f6b62d0dab6e0ed4fc2dd211fa656b5e15388c2a2f18bf0393bf7c902616b2
|
||||
DIST simhv311-0.zip 2790607 BLAKE2B f9399977093f07d7f58067ed40e22f60e43228bbb1e0fdaa6b04408956962d9ea14b6dc57d758b819cee59f3bade9505a6802d42804df49622990402c0f22600 SHA512 e5fb6915c050e7402363cd9c1f99feb00874c3693905067ce901ffa86fc29a0cd2648684f111216b09a3c847f75812e2db2e2f2fa9f9d0db5dc932d53ec832fa
|
||||
DIST simhv39-0.zip 3103657 BLAKE2B 3b5fcaa7f1aa24bd5afa78452fb2d5e2822654bcaa3caa478dbdf939770c13f7f1d3f95859674fc02e2cc35a4cfff239bb9ee6a726fb9e31586f639cdf40ca10 SHA512 5e8cbf92e980b7cb40d68ff60a266f70c0bef0eecdc169a8077ae72a6a71fe12a7be5c62bd033ca36727e2cb8f266a5a6f8a5ed6dd509afbf0a9d7b618f1a4f6
|
||||
EBUILD simh-3.9.0-r1.ebuild 1366 BLAKE2B cdde54f6521df02777ba365e3a319b4879c980452c945055884f8f4908e98797905b761ce151ae6a636ee4eda4fcb45c0f3e69a01fb431341942efc285e94d69 SHA512 fe3c7786fa10bca0a7078167300e6e9fad6762628e8cea07deab21c8a4a286d4609949cce5af59062982e2d78cc59a810c3096ed8ea748ceb62400a8ac387205
|
||||
MISC metadata.xml 167 BLAKE2B e4dadf27fd344484f2bccb5b904909c89aac568c32e5b3c44bdf139eacefd4b4fae74419f503d2b7da0dccc1b68ba05d777d11292c0f89270d1ac5c9c703e8ca SHA512 7c8decb24ee3a850e38186cf3c7f8933a28017426806870ad6ef9ceb2533be147a2681fc789b535a81cb528af8c29d90d3006e4f250aee23bd7dea4561294e33
|
||||
EBUILD simh-3.11.0.ebuild 1254 BLAKE2B 917af8c28b3cdac086ef979e8bb455f8f8c4ad546198df947321d9ec8c9fa09c82c2626898454a08b9dbd91597887c7c1036db2e9e009ceaae618fe2ee8d8755 SHA512 75b260ded39c4d9892419d1b2b9d73db06108f439580f0664da6f7430fc3870f30497f4d02573bbd94fa72a774452803a236818f5900b18c49c84cc5871c7370
|
||||
EBUILD simh-3.9.0-r1.ebuild 1350 BLAKE2B 75d5a6222ba6eb8204553582d4230fe953a37ab651c4169d743ca3523c51b9cc76aa109ff986757e4ceeb179e5a0f97b000d7474313df225b44372c47f9975ad SHA512 59645f44f783bf032ba622aaea4c31e8d0ca384959ea7b37e4d7b73cb15a057320dfceea493ef3a69916f9e18e317cc5afdbaa7a7ad0977d32c5138cff5bfd16
|
||||
MISC metadata.xml 251 BLAKE2B 9785c4729d0751280d104965bab25a268219a7fee217dcd8c01a5642a13f8abc471a3dff54ae0d34d3cf3dc8267fb483d93bd3b16aa3617e8fa8e9abd1703dfe SHA512 cc2bd3977894946ee4ea5b739cc3998bcd6017b9e7a52aa501409d0988954339a9a22fe751d0a5e967ddac9225d9b23f20b4fb1e2c62ee91d1d23c383d9776dd
|
||||
|
@ -0,0 +1,37 @@
|
||||
From ca4b7338836edb7325c82f86dccdeb4808cb4a89 Mon Sep 17 00:00:00 2001
|
||||
From: Mark Pizzolato <mark@infocomm.com>
|
||||
Date: Wed, 29 Jan 2020 11:39:36 -0800
|
||||
Subject: [PATCH] makefile: Force gcc/clang -fcommon to address future gcc
|
||||
-fno-common default
|
||||
|
||||
as reported and discussed in #794
|
||||
---
|
||||
makefile | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
--- a/makefile
|
||||
+++ b/makefile
|
||||
@@ -506,9 +506,13 @@ else
|
||||
ifneq (3,$(GCC_MAJOR_VERSION))
|
||||
ifeq (,$(GCC_OPTIMIZERS_CMD))
|
||||
GCC_OPTIMIZERS_CMD = $(GCC) --help=optimizers
|
||||
+ GCC_COMMON_CMD = $(GCC) --help=common
|
||||
endif
|
||||
GCC_OPTIMIZERS = $(shell $(GCC_OPTIMIZERS_CMD))
|
||||
endif
|
||||
+ ifneq (,$(GCC_COMMON_CMD))
|
||||
+ GCC_OPTIMIZERS += $(shell $(GCC_COMMON_CMD))
|
||||
+ endif
|
||||
ifneq (,$(findstring $(GCC_VERSION),$(LTO_EXCLUDE_VERSIONS)))
|
||||
NO_LTO = 1
|
||||
endif
|
||||
@@ -530,6 +534,9 @@ else
|
||||
ifneq (,$(findstring -fstrict-overflow,$(GCC_OPTIMIZERS)))
|
||||
CFLAGS_O += -fno-strict-overflow
|
||||
endif
|
||||
+ ifneq (,$(findstring -fcommon,$(GCC_OPTIMIZERS))$(findstring -fno-common,$(GCC_OPTIMIZERS)))
|
||||
+ CFLAGS_O += -fcommon
|
||||
+ endif
|
||||
ifeq (,$(NO_LTO))
|
||||
ifneq (,$(findstring -flto,$(GCC_OPTIMIZERS)))
|
||||
CFLAGS_O += -flto -fwhole-program
|
@ -0,0 +1,11 @@
|
||||
--- simh-3.9.0/makefile
|
||||
+++ simh-3.9.0/makefile
|
||||
@@ -249,7 +249,7 @@
|
||||
NETWORK_OPT = $(NETWORK_CCDEFS)
|
||||
endif
|
||||
ifneq (binexists,$(shell if $(TEST) -e BIN; then echo binexists; fi))
|
||||
- MKDIRBIN = if $(TEST) ! -e BIN; then mkdir BIN; fi
|
||||
+ MKDIRBIN = mkdir -p BIN
|
||||
endif
|
||||
else
|
||||
#Win32 Environments (via MinGW32)
|
@ -0,0 +1,13 @@
|
||||
--- a/makefile
|
||||
+++ b/makefile
|
||||
@@ -497,8 +497,8 @@ ifneq ($(DEBUG),)
|
||||
CFLAGS_O = -O0
|
||||
BUILD_FEATURES = - debugging support
|
||||
else
|
||||
- CFLAGS_O = -O2
|
||||
- LDFLAGS_O =
|
||||
+ CFLAGS_O ?= -O2
|
||||
+ LDFLAGS_O ?=
|
||||
ifeq (Darwin,$(OSTYPE))
|
||||
NO_LTO = 1
|
||||
endif
|
@ -1,5 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<!-- maintainer-needed -->
|
||||
<maintainer type="person">
|
||||
<email>slyfox@gentoo.org</email>
|
||||
<name>Sergei Trofimovich</name>
|
||||
</maintainer>
|
||||
</pkgmetadata>
|
||||
|
@ -0,0 +1,62 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit toolchain-funcs
|
||||
|
||||
MY_P="${PN}v$(ver_rs 1 '' 2 '-')" # 'a.b.c' -> 'ab-c'
|
||||
DESCRIPTION="a simulator for historical computers such as Vax, PDP-11 etc.)"
|
||||
HOMEPAGE="http://simh.trailing-edge.com/"
|
||||
SRC_URI="http://simh.trailing-edge.com/sources/${MY_P}.zip"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
|
||||
IUSE=""
|
||||
|
||||
RDEPEND="net-libs/libpcap"
|
||||
DEPEND="${RDEPEND}
|
||||
app-arch/unzip"
|
||||
|
||||
S=${WORKDIR}/sim
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-3.11.0-respect-FLAGS.patch
|
||||
"${FILESDIR}"/${PN}-3.11.0-fix-mkdir-race.patch
|
||||
"${FILESDIR}"/${PN}-3.11.0-fcommon.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# fix linking on Darwin
|
||||
if [[ ${CHOST} == *-darwin* ]] ; then
|
||||
sed -e 's/-lrt//g' \
|
||||
-i makefile || die
|
||||
fi
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
export GCC="$(tc-getCC)"
|
||||
export LDFLAGS_O="${LDFLAGS}"
|
||||
export CFLAGS_O="${CFLAGS}"
|
||||
|
||||
local my_makeopts=""
|
||||
if tc-is-gcc && ver_test $(gcc-version) -lt 4.6 ; then
|
||||
my_makeopts+=" NO_LTO=1"
|
||||
fi
|
||||
|
||||
emake ${my_makeopts}
|
||||
}
|
||||
|
||||
src_install() {
|
||||
for BINFILE in BIN/* ; do
|
||||
newbin ${BINFILE} "simh-$(basename ${BINFILE})"
|
||||
done
|
||||
|
||||
insinto /usr/share/simh
|
||||
doins VAX/*.bin
|
||||
|
||||
dodoc *.txt */*.txt
|
||||
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,8 +1,8 @@
|
||||
DIST portage-utils-0.74.tar.xz 1587792 BLAKE2B 7c4588e3d44266a5260df42cc685aa03c584248e9970956033e4191a7a842a4b2162110ac99c2bb18645aaafc6ae6ee960e9b26ba0a8863497911eef1e943f64 SHA512 cd3f44c135b3d44e15a95eed41281fce62f225a9d05d5d5bb1be230b2d59cdb87755f011b313a9ec32e4cafdf3b3979c4ef423365edd7dcc472ca2e38c09c83e
|
||||
DIST portage-utils-0.80.tar.xz 1762692 BLAKE2B 32e4502d517ec088eadf17a4a348b9b9bc33348380b65f93ac7c043150732ba3ff0d18ee96f8877c697a91000fdc036de392d6e6711d62248bb7c57e25d4433f SHA512 cca86877e87e5bd2e9423822db4b7afa15e8f291717c808ef0455b121db0778b2364552e9f1d5e1a8bad3f1f8880ae2b5dbd586bf1dd74d7c4f4e72fa990c78c
|
||||
DIST portage-utils-0.84.tar.xz 1774396 BLAKE2B 964711e1d2277dbde814e86f9717381ea0b87fb2d8ae639c6134974cc141bdc88b4ee6a37c932495fb9b6153003d78832c34237a5c7076d4a0f7b7d9cfd3151a SHA512 90abe61dc30af4de34f57ff603afe4982d5951e7e0d702444ee7ab5e265976d03cda53518004b9ae1aa19c85eb235a732ea3fcf19705ac86977a42d49fe3b22e
|
||||
DIST portage-utils-0.85.tar.xz 1773300 BLAKE2B ba1482fc04e590612331e7dfdc0a330f81aba919fad21918912f490529cbab5f4f173cdefe70e0e40267f8cc7f64afd3c0e2a39e1b234034187f5bc75d10d9d1 SHA512 56b2cfa0fe6f7c5da0e7e7095568902173a7a976a5fb71b286e3269ac3c8f2fc878089d4c676d8ff2efd86ff150392c3407c838019e3846abef158f236d23830
|
||||
EBUILD portage-utils-0.74.ebuild 1052 BLAKE2B 580e1a910a3e31dc408b5a3ae47e6369c6df12eb3a15ea43d2e77c1dba67b6bf42699f2b0cd393ffc4bb577eeebca0def4a8d1ff5349401f7ead9fa9c928a650 SHA512 6509ba8e2dd8c9978e15da4a48cd122017a2ba763bc2953e323fa73f2ad38b7f1baf596ccc27f204f76314f94995ede4912d67ca6e2e377baefb376f28da6b59
|
||||
EBUILD portage-utils-0.80.ebuild 2252 BLAKE2B 9fa660784c3b2b15f7454d6dd6c6ff2d09b81f9fb0fbb73c22bb85e4293dfb3e4a2abb6e5daf063a5abe827dd7b518292ad683dc038fe3ef6863037d10ae04c8 SHA512 0b733e318124020b56598240c841d51274a50165fb1a0a00a23950ef298c9c9e95421289fa4a77c676922d207ab757552087ccd5e35553a2ee48c91ef5d17164
|
||||
EBUILD portage-utils-0.84-r1.ebuild 2300 BLAKE2B 63d6b566a9962ae53879883545f03615d13cf94a0d13f6a1e7cc6b844a883df8da7e4ffe6102a9d296c70a7703dc43204dcff1b38e4bb77c8a3e54da346aa1a8 SHA512 5c18f7bdfc30bef1eeb52b52c600df9721c5f857b10d0ca52b772cfd340e3d8628b1630f9c1af5371f7f4edd0e008a4937ee5aedf34c52fb7e360674a70c7e7c
|
||||
EBUILD portage-utils-9999.ebuild 1803 BLAKE2B 1f972e1295a2093606cc66f0c43a33f0134348dcd289e8c4b65d67d4607ea9c02908a1a112e14a1ecd82f7d43ed3510bd5931ff25ee428818a8dbb2a9de5d80b SHA512 43bd8cbaefea948ba613e8a85e3d3b812f15ee1a9b40ec7addfe617845f8bb72aaebb838e20dd094999e0a3fd2be9ddc1f899b83f529955ef39397de47330b49
|
||||
EBUILD portage-utils-0.85.ebuild 2183 BLAKE2B 37dfa27802791a8f0488b31b0b378698f4d43dc5682e859696430aaa5ff3cf83d527d421e3fb2851159b4af50ff67aed9acae91e11f2da922f0483912cbaed5a SHA512 cd25ee41e03afb0c70b726afe0cebce0d71befab9b3944b0fa45b3eef400390ba15c583204bf9c24ad960e7ffc6bdc1b9086ad18d9bc7ca8ffa7813c38d814e6
|
||||
EBUILD portage-utils-9999.ebuild 1810 BLAKE2B c79ed6af9cf0c65fb1752011bb1909959960a3f02c0a4e6877f6dff9876a1661d32ba7f70964a9b883acd157717b307ba4c1ecbbcd79ef265a0cbe5955831131 SHA512 c1b7f25e06d30c34aa34deb82ae7dd60c379218669cde552be43c7b8dcf50623b38cfd4d54d055013e93b7e538221ce4e00cf6d19737bd69f600de59811d13ca
|
||||
MISC metadata.xml 490 BLAKE2B 36af527c82aa05f09ef3187a5c93ec34412a625a00016ad87fa1f6e7a00108f87bd3c8af42aad0aec87fa11e1ec25da71f1f4776c0da053e7426b8006d876103 SHA512 eacb9a20b0228c67896f7633619e67ef0e2de38444436ed720f849b8d9fcbed3c2569d2534e38fb7060cd755195bfd74cbcc9d77dbd5da4fb7b1654f87f70a1f
|
||||
|
Binary file not shown.
Binary file not shown.
@ -1,3 +1,5 @@
|
||||
DIST coolreader-3.2.2.1.tar.gz 12463566 BLAKE2B 208026a87b36a06cd0a2e83b60bb506174b2edec4e3f4d1663c9d630cf316afd54aa0dbd0fdf0d3e44e03277d39692bbada8b03376a22970321928e594632997 SHA512 c2e3ea139ff3969c16985a56a9605a59ae31c59f9dc962abcc4aae5d87b8c48c8d7ed716a7077dd9da93cefc0d9ba0fe8a43c50e33e3d58acbcdfc35b73b3538
|
||||
DIST coolreader-3.2.39.tar.gz 17679570 BLAKE2B e84fb7d8032ae62fec24a74a9cebab086664a2ed3827f0664e667a4ab3b8d76b722790958f71f5fcd79729238e897c6592059f9b45eb4069c9ad483883bc0600 SHA512 1b92b35750174a8ef4df4b7c4f33bb9fcc94b36008c08a7f9d1f8e85c6b642c5b037e0673a783cde1aa98296887bb286c4a2da186911b26f298f689605e1eb4b
|
||||
EBUILD coolreader-3.2.2.1-r2.ebuild 2479 BLAKE2B 63c86c1dee137edc9f8937c72cb80c77c0f890347aa1d385b2be771a3fdfc11a1d895ee87b4bd295a52392dc72f9abcd34f019c5f350943d4a9ce45e3971f5b0 SHA512 8df9d4a6337416a8d394cbab4be7f9d166d7ca9febe6e4dc5054d842de4f006adb535342c24a1b80370988edad4c71f9a0e7f50a0aeb832ebcd251fa38f0d8b0
|
||||
EBUILD coolreader-3.2.39.ebuild 2476 BLAKE2B ec41e6b8d80f8985c69e30f555354394ce85b10e708ee66d82168659ce76a24a629fcc6309d1c7934dc4fb66d8505b7a85fc5e52baf1e38eaa08b7d9d9453d10 SHA512 debf995860319e7e0a91961823760e7dc3f4c09386d3982eedc45ca1eff9f296534adca3d318583af24c73817c4f45fff5c09e1719180faf206d398699231a31
|
||||
MISC metadata.xml 624 BLAKE2B fa86114594d823c9b73b590ebfa0ffe74955550f1d66b5f1197672484d4095be484f5f8f754acef06e34f9d69d658609653109bf8499235439bb1f3ad95b7be5 SHA512 33e57dbe75c3e2efaf1d793dad06b534fac861b3ffd25e4d441af91b8d6a8cae96b8d5c19bbf0845aa78ff404eee167998e09f948009b4ce1902a2f38625f9a8
|
||||
|
@ -0,0 +1,97 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
WX_GTK_VER="3.0"
|
||||
PLOCALES="bg cs de es hu pl ru uk"
|
||||
inherit cmake-utils wxwidgets l10n xdg-utils gnome2-utils eapi7-ver
|
||||
|
||||
CR_PV=$(ver_rs 3 '-')
|
||||
|
||||
if [ "${PV}" != 9999 ]
|
||||
then
|
||||
# git tag cr3.2.2-1
|
||||
SRC_URI="https://github.com/buggins/${PN}/archive/cr${CR_PV}.tar.gz -> ${P}.tar.gz"
|
||||
S="${WORKDIR}/${PN}-cr${CR_PV}"
|
||||
else
|
||||
inherit git-r3
|
||||
# github mirror has some new commits to fix page margins settings
|
||||
# sourceforge mirror saved as backup
|
||||
#EGIT_REPO_URI="git://git.code.sf.net/p/crengine/crengine"
|
||||
EGIT_REPO_URI="https://github.com/buggins/${PN}.git"
|
||||
SRC_URI=""
|
||||
fi
|
||||
|
||||
DESCRIPTION="CoolReader - reader of eBook files (fb2,epub,htm,rtf,txt)"
|
||||
HOMEPAGE="https://sourceforge.net/projects/crengine/"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="wxwidgets"
|
||||
|
||||
CDEPEND="sys-libs/zlib
|
||||
media-libs/libpng:0
|
||||
virtual/jpeg:0
|
||||
media-libs/freetype
|
||||
wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER} )
|
||||
!wxwidgets? ( dev-qt/qtcore:5 dev-qt/qtgui:5 dev-qt/qtwidgets:5 )"
|
||||
DEPEND="${CDEPEND}
|
||||
!wxwidgets? ( dev-qt/linguist-tools:5 )"
|
||||
RDEPEND="${CDEPEND}
|
||||
wxwidgets? ( || ( media-fonts/liberation-fonts media-fonts/corefonts ) )"
|
||||
|
||||
for lang in ${PLOCALES}; do
|
||||
IUSE="${IUSE} l10n_${lang}"
|
||||
done
|
||||
|
||||
src_prepare() {
|
||||
cmake-utils_src_prepare
|
||||
|
||||
# locales
|
||||
l10n_find_plocales_changes "${S}"/cr3qt/src/i18n 'cr3_' '.ts'
|
||||
local lang langs
|
||||
langs=""
|
||||
for lang in ${PLOCALES}; do
|
||||
if use l10n_${lang}; then
|
||||
langs="${langs} ${lang}"
|
||||
fi
|
||||
done
|
||||
sed -e "s|SET(LANGUAGES .*)|SET(LANGUAGES ${langs})|" \
|
||||
-i "${S}"/cr3qt/CMakeLists.txt \
|
||||
|| die "sed CMakeLists.txt failed"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
CMAKE_USE_DIR="${S}"
|
||||
CMAKE_BUILD_TYPE="Release"
|
||||
if use wxwidgets; then
|
||||
setup-wxwidgets
|
||||
local mycmakeargs=(-D GUI=WX)
|
||||
else
|
||||
local mycmakeargs=(-D GUI=QT5)
|
||||
fi
|
||||
cmake-utils_src_configure
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake-utils_src_install
|
||||
if ! use wxwidgets; then
|
||||
mv "${D}"usr/share/doc/cr3/changelog.gz "${D}"usr/share/doc/${PF}/ || die "mv changelog.gz failed"
|
||||
rmdir "${D}"usr/share/doc/cr3 || die "rmdir doc/cr3 failed"
|
||||
gunzip "${D}"usr/share/doc/${PF}/changelog.gz || die "gunzip changelog.gz failed"
|
||||
gunzip "${D}"usr/share/man/man1/cr3.1.gz || die "gunzip cr3.1.gz failed"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
xdg_desktop_database_update
|
||||
xdg_mimeinfo_database_update
|
||||
gnome2_icon_cache_update
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
xdg_mimeinfo_database_update
|
||||
gnome2_icon_cache_update
|
||||
}
|
@ -0,0 +1,123 @@
|
||||
# Copyright 2005-2020 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 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
SLOT="0/95" # 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}-0.60.1-qt5-dependencies.patch"
|
||||
"${FILESDIR}/${PN}-0.28.1-fix-multilib-configuration.patch"
|
||||
"${FILESDIR}/${PN}-0.82.0-respect-cflags.patch"
|
||||
"${FILESDIR}/${PN}-0.61.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)
|
||||
)
|
||||
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,8 +1,10 @@
|
||||
DIST fugitive-2.4.tar.gz 33340 BLAKE2B d5e5df47e0492510abae735dd47b51d797fe38862401f7d8e64404f6fa4e040641141c6febb13b05910cc44dc0372b084fe0ee8c3980a73d11d65e1a502ed627 SHA512 fb9d4129090bbafcace9400e9f21feae06bc9f903a54cfef7c4cbfa62856019a511b924c294e86fd26cd713d588ca0054a17d9676b59e2f406779ab5d51c3363
|
||||
DIST fugitive-2.5.tar.gz 39318 BLAKE2B 437f4c36b357937fc83e0107882d535c5cc9e609801147d1a48c28e16c4f964c221ff404301e57c9d740a04caf4cf5383a1f307ad89a76294e13b784561223bd SHA512 9a58ff3fa9eae72fca3d1232d01856ef56fe38b7bbf61be44ec4cdf4f0f69fca69fafe19266d657530a6d08f856236b1d1370bb770b14402bb7e476d5ca4bb78
|
||||
DIST fugitive-3.1.tar.gz 61142 BLAKE2B 15436725924d7ab09903973d77e9d7ce904f6bfaee451da2d3240236b2ef0589efd4b34e3673550749a6f021802018b2fb86f09ecdd727231f58bce3fd7c82b0 SHA512 4301e53a688ef1c822c146e04c41b6724cc38503733c622c0be8ea67ff2dd442f487fab8569bd3c8f7d97f6a4d5b42b58c0f23a216d74b862c09ed5c57f6ea87
|
||||
DIST fugitive-3.2.tar.gz 64708 BLAKE2B cab484ec66b7c54857856ed1f6cbebbf6d3fb1afdb35b004f72f8c06785a18d8810244255305cd949e25d1f78d734c46e400488526631b4070d3e0b104830552 SHA512 c7ac97d52f683a73545efddf33986dedecbae25208ebf0703dccf99cb46fd5020362f724c5b530aeca40467d9e864ce6597d6eb5eaa93a33643191e1aa5b44db
|
||||
EBUILD fugitive-2.4.ebuild 623 BLAKE2B d33285b4bd46225b4c6871a4a730d9db9c738a7100f423624914d2f99d0214a53db16d375701fcd4fe5c59994436fbfcb719772b9b2552fda9bd5331d56578ac SHA512 a1343ef40078b1345a163b3ae50620c2770b87cab3a360afd8b2af32a471569eac17e68a339ebb8591f012388775d09c557f3f0a2b9afc1b7510d31de22813c3
|
||||
EBUILD fugitive-2.5.ebuild 625 BLAKE2B 668ba1e4efa3a4dd956278462b24b2ca98b4e02378e2878c6ab85bfe5c13edf1336ead71aba7756e6e43af1e5dfdc9a4d678c2d2ffffbc9d9cbe0e8026fddcf1 SHA512 93a7857bee6df123e936ce6f1644b8ddd8fe5810dc3b799f71d93b4124e8277e4721b2793c2906009cf016be4119964643e168a79c0c8273e42b9991be9417d6
|
||||
EBUILD fugitive-3.1.ebuild 625 BLAKE2B d429d4e0ea98e6d35c91c17cef0c59f1bf27a0fa6adcb120d808cae0e7cec60dd2e438e83a07ed40c401423fbde4ed4f2fe016f54d21ec52ceddd32223d82a84 SHA512 ddc4ccdb0f6e345ef5d20fb53e5e34e02d451934b51c0db99048e4718ca71532a9d842337513f6d897f2b7d84465fd717f90779c7a7f5b2e0803ab9b8addd284
|
||||
EBUILD fugitive-3.2.ebuild 625 BLAKE2B d429d4e0ea98e6d35c91c17cef0c59f1bf27a0fa6adcb120d808cae0e7cec60dd2e438e83a07ed40c401423fbde4ed4f2fe016f54d21ec52ceddd32223d82a84 SHA512 ddc4ccdb0f6e345ef5d20fb53e5e34e02d451934b51c0db99048e4718ca71532a9d842337513f6d897f2b7d84465fd717f90779c7a7f5b2e0803ab9b8addd284
|
||||
EBUILD fugitive-9999.ebuild 625 BLAKE2B d429d4e0ea98e6d35c91c17cef0c59f1bf27a0fa6adcb120d808cae0e7cec60dd2e438e83a07ed40c401423fbde4ed4f2fe016f54d21ec52ceddd32223d82a84 SHA512 ddc4ccdb0f6e345ef5d20fb53e5e34e02d451934b51c0db99048e4718ca71532a9d842337513f6d897f2b7d84465fd717f90779c7a7f5b2e0803ab9b8addd284
|
||||
MISC metadata.xml 342 BLAKE2B cef6ff7e21df2703dc1c1138f95ad5f8e478a7c6bbd013791fd7c1b1754a2f7eaac9c84ebb42af9cef1943e7a94a880d0cedc030ff95966ac607a1b0b37dc37f SHA512 4ad3c706ea17ef2ab4e6852c6251cec3b8b5b37b687cd3ed87061adbfb791b8786bb5faa4550a73c707a0013ad8981aeda930eba8d74221cc7ca33d110ceb842
|
||||
|
@ -0,0 +1,22 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
inherit vim-plugin
|
||||
|
||||
if [[ ${PV} == 9999 ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/tpope/vim-fugitive.git"
|
||||
else
|
||||
SRC_URI="https://github.com/tpope/vim-fugitive/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
KEYWORDS="~amd64 ~x86 ~ppc-macos ~x64-macos"
|
||||
S="${WORKDIR}/vim-${P}"
|
||||
fi
|
||||
|
||||
DESCRIPTION="vim plugin: a git wrapper for vim"
|
||||
HOMEPAGE="https://www.vim.org/scripts/script.php?script_id=2975 https://github.com/tpope/vim-fugitive/"
|
||||
LICENSE="vim"
|
||||
|
||||
VIM_PLUGIN_HELPFILES="${PN}.txt"
|
||||
|
||||
RDEPEND="dev-vcs/git"
|
@ -1,4 +1,6 @@
|
||||
DIST merginal-2.1.0.tar.gz 13510 BLAKE2B c44f3873f36ee540e69f1cd87558e2601f944f430d15ae0e863adbba5383637ddbae2bee01cf1f7788f677a159da7870a83b909562813f8817d610e85f9d4a96 SHA512 3514c210a016d3446e73b7acc8a8a4cc2427e0133df81d7c644aaa1465e9c5945d3f46b7cac697f70cac990563e595305360991cdaa8244032167aea5f88eaed
|
||||
DIST merginal-2.1.2.tar.gz 15156 BLAKE2B a8181ebd7aa67663b4541b5cb5028b6cadcca68c48f325dca07308ad13554d1d4b96b53f0a30e516cea732c880e68cb7e4cb7836b72cbd6b59a009e8d3c744b2 SHA512 70da5529ee22b3f06d83ecac62634d46d30472f064613a1844a7cdae31ed97366b5fcf6b31f4becd4cde246ccac32be6528c8c93ee2f02bdd32932388282f9bf
|
||||
EBUILD merginal-2.1.0.ebuild 721 BLAKE2B 7eb8255843d8b9cd741c645096e374ba3328585fdb0818676c21b111442fef0fc76395c54d3f7e84f072b1c8c481d7933157da41351215e3c85a4eeca8ec3d49 SHA512 c1f63cf5095f0729ba39ec1eccf9eeb382bf2a1e9dfd5d9a85486f9c315d5521f2d46704cfa6adf6ca91a2e2cf319e8e48a77c7eea3b69910a58d3ae978f88b9
|
||||
EBUILD merginal-9999.ebuild 726 BLAKE2B 563099f5ecf0290cf8542523794ed261252dd979f006a5e65fb48e1abade837b66485d056681c2b2a849d1fdcb9c9f2c6f1cd8fa5cc7a1e564232fb73ffa7ab9 SHA512 0792f9864e98b518a3a5422e3d1803cb51921b12c60856553d97880aba8b75c95a9ee3f0906475c39461a6f3266e6df31e09c778f96d3ca7fce36670804d5895
|
||||
EBUILD merginal-2.1.2.ebuild 723 BLAKE2B 1461df549aae456ce6a16eb691fa1ef26a91aefb50dd87ac46dc61d97a796f5cf601d31313e50af73de2193fd17d742db7049add5d74c20bf54f32e6a3f439bc SHA512 f36ef17603e3a1a1608fcaf283a1ab5c1d1937438b80f30c17633ede84712c54f57988d3d34d2565465e9a7b71c2c71de3c9bf72b7068afb62529f5294797e47
|
||||
EBUILD merginal-9999.ebuild 723 BLAKE2B 1461df549aae456ce6a16eb691fa1ef26a91aefb50dd87ac46dc61d97a796f5cf601d31313e50af73de2193fd17d742db7049add5d74c20bf54f32e6a3f439bc SHA512 f36ef17603e3a1a1608fcaf283a1ab5c1d1937438b80f30c17633ede84712c54f57988d3d34d2565465e9a7b71c2c71de3c9bf72b7068afb62529f5294797e47
|
||||
MISC metadata.xml 345 BLAKE2B d484adbd45fa9339d6199f9978129adce0a8dc2ac1a8f0edf4dee62cd115a8043b0aadd6bc7708305516fd16caa6da8feeab3270f2e7f82bb751e916c0a2573e SHA512 c86f966d8b95d7ae380395af45af1046b3102e4c921f5a4102b4d421c707659b4e5aee25765b8af1e815cb5274963bdcae482cc4700d3196259e62ecaf6919ce
|
||||
|
@ -0,0 +1,31 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit vim-plugin
|
||||
|
||||
MY_PN=vim-${PN}
|
||||
MY_P=${MY_PN}-${PV}
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="https://github.com/idanarye/${MY_PN}.git"
|
||||
inherit git-r3
|
||||
else
|
||||
SRC_URI="https://github.com/idanarye/${MY_PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
fi
|
||||
|
||||
DESCRIPTION="vim script: fugitive extension to manage and merge git branches"
|
||||
HOMEPAGE="https://www.vim.org/scripts/script.php?script_id=4955 https://github.com/idanarye/vim-merginal/"
|
||||
LICENSE="vim"
|
||||
|
||||
RDEPEND="app-vim/fugitive"
|
||||
|
||||
VIM_PLUGIN_HELPFILES="${PN}"
|
||||
|
||||
src_prepare() {
|
||||
rm README.md || die
|
||||
default
|
||||
}
|
Binary file not shown.
@ -0,0 +1,897 @@
|
||||
# Copyright 1999-2020 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 multilib-build
|
||||
|
||||
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"
|
||||
SLOT="0/${SUBSLOT:-0}"
|
||||
IUSE="+backup bindist client-libs cracklib debug extraengine galera jdbc jemalloc kerberos
|
||||
innodb-lz4 innodb-lzo innodb-snappy latin1 libressl mroonga numa odbc oqgraph pam
|
||||
+perl profiling selinux +server sphinx sst-rsync sst-mariabackup sst-xtrabackup
|
||||
systemd systemtap static static-libs tcmalloc test tokudb xml yassl"
|
||||
|
||||
# Tests always fail when libressl is enabled due to hard-coded ciphers in the tests
|
||||
RESTRICT="!bindist? ( bindist ) libressl? ( test ) !test? ( test )"
|
||||
|
||||
REQUIRED_USE="jdbc? ( extraengine server !static )
|
||||
server? ( tokudb? ( jemalloc !tcmalloc ) )
|
||||
?? ( tcmalloc jemalloc )
|
||||
static? ( yassl !pam )"
|
||||
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
|
||||
|
||||
# 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
|
||||
MY_PATCH_DIR="${WORKDIR%/}/mysql-extras"
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="git://anongit.gentoo.org/proj/mysql-extras.git"
|
||||
EGIT_CHECKOUT_DIR="${WORKDIR%/}/mysql-extras"
|
||||
EGIT_CLONE_TYPE=shallow
|
||||
else
|
||||
MY_PATCH_DIR="${WORKDIR%/}/mysql-extras-${MY_EXTRAS_VER}"
|
||||
fi
|
||||
|
||||
PATCHES=(
|
||||
"${MY_PATCH_DIR}"/20006_all_cmake_elib-mariadb-10.1.27.patch
|
||||
"${MY_PATCH_DIR}"/20009_all_mariadb_myodbc_symbol_fix-5.5.38.patch
|
||||
"${MY_PATCH_DIR}"/20015_all_mariadb-pkgconfig-location.patch
|
||||
"${MY_PATCH_DIR}"/20018_all_mariadb-10.1.16-without-clientlibs-tools.patch
|
||||
"${MY_PATCH_DIR}"/20025_all_mariadb-10.1.26-gssapi-detect.patch
|
||||
"${MY_PATCH_DIR}"/20029_all_mariadb-10.1.37-enable-numa.patch
|
||||
"${MY_PATCH_DIR}"/20035_all_mariadb-10.1-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= )
|
||||
!yassl? (
|
||||
!libressl? ( dev-libs/openssl:0= !>=dev-libs/openssl-1.1 )
|
||||
libressl? ( dev-libs/libressl:0= )
|
||||
)
|
||||
>=sys-libs/zlib-1.2.3: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= )
|
||||
sys-libs/zlib[minizip]
|
||||
)
|
||||
innodb-lz4? ( app-arch/lz4 )
|
||||
innodb-lzo? ( dev-libs/lzo )
|
||||
innodb-snappy? ( app-arch/snappy )
|
||||
kerberos? ( virtual/krb5 )
|
||||
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 )
|
||||
)
|
||||
!yassl? ( !libressl? ( !>=dev-libs/openssl-1.1.0 ) )
|
||||
>=dev-libs/libpcre-8.41-r1:3=
|
||||
!client-libs? ( dev-db/mysql-connector-c[${MULTILIB_USEDEP},static-libs?] )
|
||||
"
|
||||
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 )
|
||||
client-libs? ( !dev-db/mariadb-connector-c[mysqlcompat] !dev-db/mysql-connector-c )
|
||||
!dev-db/mysql !dev-db/mariadb-galera !dev-db/percona-server !dev-db/mysql-cluster
|
||||
server? ( !prefix? ( dev-db/mysql-init-scripts ) )
|
||||
${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? ( 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
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
fi
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
unpack ${A}
|
||||
# Grab the patches
|
||||
[[ "${MY_EXTRAS_VER}" == "live" ]] && S="${WORKDIR%/}/mysql-extras" git-r3_src_unpack
|
||||
|
||||
mv -f "${WORKDIR%/}/${PN%%-galera}-${PV}" "${S}" || die
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
_disable_engine() {
|
||||
echo > "${S%/}/storage/${1}/CMakeLists.txt" || die
|
||||
}
|
||||
|
||||
_disable_plugin() {
|
||||
echo > "${S%/}/plugin/${1}/CMakeLists.txt" || die
|
||||
}
|
||||
|
||||
if use tcmalloc; then
|
||||
echo "TARGET_LINK_LIBRARIES(mysqld tcmalloc)" >> "${S%/}/sql/CMakeLists.txt" || die
|
||||
fi
|
||||
|
||||
# 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 semisync sql_errlog )
|
||||
local test_plugins=( audit_null auth_examples daemon_example fulltext )
|
||||
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
|
||||
fi
|
||||
|
||||
# Collides with mariadb-connector-c bug 655980
|
||||
_disable_plugin auth_dialog
|
||||
|
||||
# Avoid useless library checks
|
||||
use mroonga || _disable_engine mroonga
|
||||
use oqgraph || _disable_engine oqgraph
|
||||
_disable_engine example
|
||||
|
||||
# Don't clash with dev-db/mysql-connector-c
|
||||
sed -i -e 's/ my_print_defaults.1//' \
|
||||
-e 's/ perror.1//' \
|
||||
"${S}"/man/CMakeLists.txt || die
|
||||
|
||||
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')"
|
||||
-DCMAKE_INSTALL_PREFIX="${EPREFIX%/}/usr"
|
||||
-DDEFAULT_SYSCONFDIR="${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_MYSQLTESTDIR=$(usex test 'share/mariadb/mysql-test' '')
|
||||
-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"
|
||||
-DCOMPILATION_COMMENT="Gentoo Linux ${PF}"
|
||||
-DWITH_UNIT_TESTS=$(usex test ON OFF)
|
||||
-DWITH_ZLIB=system
|
||||
-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)
|
||||
-DWITHOUT_CLIENTLIBS=YES
|
||||
-DWITH_READLINE=$(usex bindist 1 0)
|
||||
-DNOT_FOR_DISTRIBUTION=$(usex bindist 0 1)
|
||||
-DENABLE_DTRACE=$(usex systemtap)
|
||||
-DWITH_SSL=$(usex yassl bundled system)
|
||||
-DPLUGIN_CLIENT_ED25519=NO
|
||||
-DPLUGIN_AUTH_GSSAPI_CLIENT=NO
|
||||
)
|
||||
|
||||
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)
|
||||
-DPLUGIN_AUTH_GSSAPI_CLIENT=NO
|
||||
-DWITH_MARIABACKUP=$(usex backup ON OFF)
|
||||
-DWITH_LIBARCHIVE=$(usex backup ON OFF)
|
||||
-DWITH_SYSTEMD=$(usex systemd yes no)
|
||||
-DWITH_NUMA=$(usex numa ON OFF)
|
||||
-DINSTALL_SQLBENCHDIR=''
|
||||
)
|
||||
|
||||
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
|
||||
-DENABLED_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
|
||||
local mycnf_src="my.cnf-5.6-r1"
|
||||
sed -e "s!@DATADIR@!${MY_DATADIR}!g" \
|
||||
"${FILESDIR}/${mycnf_src}" \
|
||||
> "${TMPDIR}/my.cnf.ok" || die
|
||||
use prefix && sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' "${TMPDIR}/my.cnf.ok"
|
||||
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" my.cnf
|
||||
|
||||
if use server ; then
|
||||
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 \
|
||||
rpl.rpl_semi_sync_uninstall_plugin main.mysql \
|
||||
main.mysql_client_test_comp rpl.rpl_extra_col_master_myisam ; do
|
||||
_disable_test "$t" "False positives in Gentoo"
|
||||
done
|
||||
|
||||
if ! use client-libs ; then
|
||||
_disable_test main.plugin_auth "Needs client libraries built"
|
||||
_disable_test plugins.auth_ed25519 "Needs client libraries built"
|
||||
fi
|
||||
|
||||
_disable_test main.gis_notembedded "Fails when latin1 USE is not set"
|
||||
|
||||
_disable_test sys_vars.sysvars_server_notembedded "Broken test" # bug #661700 required profiling always on
|
||||
|
||||
# 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/libexec/mariadb/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"
|
||||
}
|
@ -0,0 +1,986 @@
|
||||
# Copyright 1999-2020 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="0/${SUBSLOT:-0}"
|
||||
IUSE="+backup bindist client-libs cracklib debug extraengine galera innodb-lz4
|
||||
innodb-lzo innodb-snappy jdbc jemalloc kerberos latin1 libressl mroonga
|
||||
numa odbc oqgraph pam +perl profiling rocksdb selinux +server sphinx
|
||||
sst-rsync sst-mariabackup static systemd systemtap tcmalloc
|
||||
test tokudb xml yassl"
|
||||
|
||||
# Tests always fail when libressl is enabled due to hard-coded ciphers in the tests
|
||||
RESTRICT="!bindist? ( bindist ) libressl? ( test ) !test? ( test )"
|
||||
|
||||
REQUIRED_USE="jdbc? ( extraengine server !static )
|
||||
server? ( tokudb? ( jemalloc !tcmalloc ) )
|
||||
?? ( tcmalloc jemalloc )
|
||||
static? ( yassl !pam )"
|
||||
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
|
||||
|
||||
# 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.3.12-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.3-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? (
|
||||
!libressl? ( >=dev-libs/openssl-1.0.0:0= )
|
||||
libressl? ( dev-libs/libressl: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
|
||||
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] )
|
||||
) )
|
||||
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
|
||||
PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )
|
||||
server? ( ~virtual/mysql-5.6[static=] )"
|
||||
|
||||
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
|
||||
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/_rc/}" "${S}" || die
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
_disable_plugin() {
|
||||
echo > "${S%/}/plugin/${1}/CMakeLists.txt" || die
|
||||
}
|
||||
_disable_engine() {
|
||||
echo > "${S%/}/storage/${1}/CMakeLists.txt" || die
|
||||
}
|
||||
|
||||
if use jemalloc; then
|
||||
echo "TARGET_LINK_LIBRARIES(mysqld jemalloc)" >> "${S}/sql/CMakeLists.txt"
|
||||
elif use tcmalloc; then
|
||||
echo "TARGET_LINK_LIBRARIES(mysqld tcmalloc)" >> "${S}/sql/CMakeLists.txt"
|
||||
fi
|
||||
|
||||
# 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 auth_ed25519 )
|
||||
local test_plugins=( audit_null auth_examples daemon_example fulltext
|
||||
debug_key_management example_key_management versioning )
|
||||
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
|
||||
|
||||
# Don't clash with dev-db/mysql-connector-c
|
||||
sed -i -e 's/ my_print_defaults.1//' \
|
||||
-e 's/ perror.1//' \
|
||||
"${S}"/man/CMakeLists.txt || die
|
||||
|
||||
# Fix galera_recovery.sh script
|
||||
sed -i -e "s~@bindir@/my_print_defaults~${EPREFIX}/usr/libexec/mariadb/my_print_defaults~" \
|
||||
scripts/galera_recovery.sh || die
|
||||
|
||||
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')"
|
||||
-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr"
|
||||
-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_CLIENT_ED25519=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_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=""
|
||||
-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
|
||||
if [[ -e "${ED}/usr/bin/mytop" ]] && ! use perl ; then
|
||||
rm -f "${ED}/usr/bin/mytop" || die
|
||||
fi
|
||||
|
||||
# Fix a dangling symlink when galera is not built
|
||||
if [[ -L "${ED}/usr/bin/wsrep_sst_rsync_wan" ]] && ! use galera ; then
|
||||
rm "${ED}/usr/bin/wsrep_sst_rsync_wan" || die
|
||||
fi
|
||||
|
||||
# Remove broken SST scripts that are incompatible
|
||||
local scriptremove
|
||||
for scriptremove in wsrep_sst_xtrabackup wsrep_sst_xtrabackup-v2 ; do
|
||||
if [[ -e "${ED}/usr/bin/${scriptremove}" ]] ; then
|
||||
rm "${ED}/usr/bin/${scriptremove}" || die
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# 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 main.gis_notembedded \
|
||||
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 plugins.auth_ed25519 "Needs client libraries built"
|
||||
|
||||
_disable_test main.func_time "Dependent on time test was written"
|
||||
_disable_test main.ssl_crl "Not compatible with OpenSSL 1.1.1"
|
||||
|
||||
# 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/libexec/mariadb/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
@ -0,0 +1,836 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="6"
|
||||
MY_EXTRAS_VER="20180809-1700Z"
|
||||
SUBSLOT="18"
|
||||
|
||||
# Keeping eutils in EAPI=6 for emktemp in pkg_config
|
||||
|
||||
inherit eutils flag-o-matic prefix toolchain-funcs user cmake-utils multilib-build
|
||||
|
||||
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"
|
||||
SLOT="0/${SUBSLOT:-0}"
|
||||
IUSE="bindist client-libs debug extraengine jemalloc latin1 libressl
|
||||
oqgraph pam +perl profiling selinux +server sphinx
|
||||
static static-libs systemtap tcmalloc
|
||||
test tokudb yassl"
|
||||
|
||||
# Tests always fail when libressl is enabled due to hard-coded ciphers in the tests
|
||||
RESTRICT="!bindist? ( bindist ) libressl? ( test ) !test? ( test )"
|
||||
|
||||
REQUIRED_USE="server? ( tokudb? ( jemalloc !tcmalloc ) )
|
||||
?? ( tcmalloc jemalloc )
|
||||
static? ( yassl !pam )"
|
||||
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
|
||||
|
||||
# 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
|
||||
MY_PATCH_DIR="${WORKDIR%/}/mysql-extras"
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="git://anongit.gentoo.org/proj/mysql-extras.git"
|
||||
EGIT_CHECKOUT_DIR="${WORKDIR%/}/mysql-extras"
|
||||
EGIT_CLONE_TYPE=shallow
|
||||
else
|
||||
MY_PATCH_DIR="${WORKDIR%/}/mysql-extras-${MY_EXTRAS_VER}"
|
||||
fi
|
||||
|
||||
PATCHES=(
|
||||
"${MY_PATCH_DIR}/01050_all_mariadb_mysql_config_cleanup-5.5.41.patch"
|
||||
"${MY_PATCH_DIR}/20004_all_mariadb-filter-tokudb-flags.patch"
|
||||
"${MY_PATCH_DIR}/20006_all_cmake_elib-mariadb-5.5.50.patch"
|
||||
"${MY_PATCH_DIR}/20009_all_mariadb_myodbc_symbol_fix-5.5.38.patch"
|
||||
"${MY_PATCH_DIR}/20018_all_mariadb-5.5.60-without-clientlibs-tools.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= )
|
||||
!yassl? (
|
||||
!libressl? ( <dev-libs/openssl-1.1.0:0= )
|
||||
libressl? ( dev-libs/libressl:0= )
|
||||
)
|
||||
>=sys-libs/zlib-1.2.3:0=
|
||||
sys-libs/ncurses:0=
|
||||
!bindist? (
|
||||
>=sys-libs/readline-4.1:0=
|
||||
)
|
||||
server? (
|
||||
oqgraph? ( >=dev-libs/boost-1.40.0:0= dev-libs/judy:0= )
|
||||
pam? ( sys-libs/pam:0= )
|
||||
)
|
||||
!client-libs? ( dev-db/mysql-connector-c[${MULTILIB_USEDEP},static-libs?] )
|
||||
"
|
||||
DEPEND="virtual/yacc
|
||||
static? ( sys-libs/ncurses[static-libs] )
|
||||
|| ( >=sys-devel/gcc-3.4.6 >=sys-devel/gcc-apple-4.0 )
|
||||
${COMMON_DEPEND}"
|
||||
RDEPEND="selinux? ( sec-policy/selinux-mysql )
|
||||
client-libs? ( !dev-db/mariadb-connector-c[mysqlcompat] !dev-db/mysql-connector-c )
|
||||
!dev-db/mysql !dev-db/mariadb-galera !dev-db/percona-server !dev-db/mysql-cluster
|
||||
server? ( !prefix? ( dev-db/mysql-init-scripts ) )
|
||||
${COMMON_DEPEND}
|
||||
perl? ( !dev-db/mytop
|
||||
virtual/perl-Getopt-Long
|
||||
dev-perl/TermReadKey
|
||||
virtual/perl-Term-ANSIColor
|
||||
virtual/perl-Time-HiRes )
|
||||
"
|
||||
# For other stuff to bring us in
|
||||
# dev-perl/DBD-mysql is needed by some scripts installed by MySQL
|
||||
PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )"
|
||||
|
||||
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
|
||||
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_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
|
||||
|
||||
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
|
||||
fi
|
||||
}
|
||||
|
||||
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_engine() {
|
||||
echo > "${S%/}/storage/${1}/CMakeLists.txt" || die
|
||||
}
|
||||
|
||||
_disable_plugin() {
|
||||
echo > "${S%/}/plugin/${1}/CMakeLists.txt" || die
|
||||
}
|
||||
|
||||
if use tcmalloc; then
|
||||
echo "TARGET_LINK_LIBRARIES(mysqld tcmalloc)" >> "${S%/}/sql/CMakeLists.txt" || die
|
||||
fi
|
||||
|
||||
# Don't build bundled xz-utils for tokudb
|
||||
echo > "${S%/}/storage/tokudb/ft-index/cmake_modules/TokuThirdParty.cmake" || die
|
||||
sed -i -e 's/ build_lzma//' "${S%/}/storage/tokudb/ft-index/ft/CMakeLists.txt" || die
|
||||
sed -i -e 's/add_dependencies\(tokuportability_static_conv build_jemalloc\)//' "${S%/}/storage/tokudb/ft-index/portability/CMakeLists.txt" || die
|
||||
|
||||
local plugin
|
||||
local server_plugins=( handler_socket auth_socket feedback qc_info server_audit semisync sql_errlog )
|
||||
local test_plugins=( audit_null auth_examples daemon_example fulltext )
|
||||
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
|
||||
fi
|
||||
|
||||
# Collides with mariadb-connector-c bug 655980
|
||||
_disable_plugin auth_dialog
|
||||
|
||||
# Don't build example
|
||||
_disable_engine example
|
||||
|
||||
if ! use oqgraph ; then # avoids extra library checks
|
||||
_disable_engine oqgraph
|
||||
fi
|
||||
|
||||
# Don't clash with dev-db/mysql-connector-c
|
||||
sed -i -e 's/ my_print_defaults.1//' \
|
||||
-e 's/ perror.1//' \
|
||||
"${S}"/man/CMakeLists.txt || die
|
||||
|
||||
cmake-utils_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')"
|
||||
-DCMAKE_INSTALL_PREFIX="${EPREFIX%/}/usr"
|
||||
-DDEFAULT_SYSCONFDIR="${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"
|
||||
-DCOMPILATION_COMMENT="Gentoo Linux ${PF}"
|
||||
-DWITH_UNIT_TESTS=$(usex test ON OFF)
|
||||
-DWITH_ZLIB=system
|
||||
-DENABLED_LOCAL_INFILE=1
|
||||
-DMYSQL_UNIX_ADDR="${EPREFIX%/}/var/run/mysqld/mysqld.sock"
|
||||
-DINSTALL_UNIX_ADDRDIR="${EPREFIX%/}/var/run/mysqld/mysqld.sock"
|
||||
# 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)
|
||||
-DWITHOUT_CLIENTLIBS=YES
|
||||
-DWITH_READLINE=$(usex bindist 1 0)
|
||||
-DNOT_FOR_DISTRIBUTION=$(usex bindist 0 1)
|
||||
-DENABLE_DTRACE=$(usex systemtap)
|
||||
)
|
||||
if use test ; then
|
||||
mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mariadb/mysql-test )
|
||||
else
|
||||
mycmakeargs+=( -DINSTALL_MYSQLTESTDIR='' )
|
||||
fi
|
||||
|
||||
if ! use yassl ; then
|
||||
mycmakeargs+=( -DWITH_SSL=system )
|
||||
else
|
||||
mycmakeargs+=( -DWITH_SSL=bundled )
|
||||
fi
|
||||
|
||||
if use server ; then
|
||||
|
||||
# Federated{,X} must be treated special otherwise they will not be built as plugins
|
||||
if ! use extraengine ; then
|
||||
mycmakeargs+=(
|
||||
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1
|
||||
-DWITHOUT_FEDERATEDX_STORAGE_ENGINE=1 )
|
||||
fi
|
||||
|
||||
mycmakeargs+=(
|
||||
-DWITH_JEMALLOC=$(usex jemalloc system)
|
||||
-D$(usex sphinx WITH WITHOUT)_SPHINX_STORAGE_ENGINE=1
|
||||
-D$(usex tokudb WITH WITHOUT)_TOKUDB_STORAGE_ENGINE=1
|
||||
-D$(usex oqgraph WITH WITHOUT)_AUTH_PAM=1
|
||||
-DINSTALL_SQLBENCHDIR=share/mariadb
|
||||
)
|
||||
|
||||
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
|
||||
-DDISABLE_SHARED=$(usex static YES NO)
|
||||
-DWITH_EMBEDDED_SERVER=OFF
|
||||
-DENABLED_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
|
||||
-DEXTRA_CHARSETS=none
|
||||
-DINSTALL_SQLBENCHDIR=
|
||||
)
|
||||
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
|
||||
local mycnf_src="my.cnf-5.5"
|
||||
sed -e "s!@DATADIR@!${MY_DATADIR}!g" \
|
||||
"${FILESDIR%/}/${mycnf_src}" \
|
||||
> "${TMPDIR%/}/my.cnf.ok" || die
|
||||
use prefix && sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' "${TMPDIR%/}/my.cnf.ok"
|
||||
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" my.cnf
|
||||
|
||||
if use server ; then
|
||||
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 5.5 for now and are believed to be
|
||||
# false positives:
|
||||
#
|
||||
# main.information_schema, binlog.binlog_statement_insert_delayed,
|
||||
# main.mysqld--help, funcs_1.is_triggers, funcs_1.is_tables_mysql,
|
||||
# funcs_1.is_columns_mysql
|
||||
# fails due to USE=-latin1 / utf8 default
|
||||
#
|
||||
# main.mysql_client_test, main.mysql_client_test_nonblock:
|
||||
# segfaults at random under Portage only, suspect resource limits.
|
||||
#
|
||||
# archive.mysqlhotcopy_archive main.mysqlhotcopy_myisam
|
||||
# fails due to bad cleanup of previous tests when run in parallel
|
||||
# The tool is deprecated anyway
|
||||
# Bug 532288
|
||||
|
||||
local t
|
||||
for t in main.mysql_client_test main.mysql_client_test_nonblock \
|
||||
binlog.binlog_statement_insert_delayed main.information_schema \
|
||||
main.mysqld--help \
|
||||
archive.mysqlhotcopy_archive main.mysqlhotcopy_myisam \
|
||||
funcs_1.is_triggers funcs_1.is_tables_mysql funcs_1.is_columns_mysql ; do
|
||||
_disable_test "$t" "False positives in Gentoo"
|
||||
done
|
||||
|
||||
if ! use client-libs ; then
|
||||
_disable_test main.plugin_auth "Needs client libraries built"
|
||||
fi
|
||||
|
||||
# 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/libexec/mariadb/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 -n 1)"
|
||||
# These are dir+prefix
|
||||
MYSQL_RELAY_LOG="$(_getoptval mysqld relay-log | tail -n 1)"
|
||||
MYSQL_RELAY_LOG=${MYSQL_RELAY_LOG%/*}
|
||||
MYSQL_LOG_BIN="$(_getoptval mysqld log-bin | tail -n 1)"
|
||||
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"
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
diff -Naru a/build/cmake/Modules/FindMySQLCppConn.cmake b/build/cmake/Modules/FindMySQLCppConn.cmake
|
||||
--- a/build/cmake/Modules/FindMySQLCppConn.cmake 2019-12-18 13:31:34.520496484 +0100
|
||||
+++ b/build/cmake/Modules/FindMySQLCppConn.cmake 2019-12-18 13:32:32.590496631 +0100
|
||||
@@ -27,7 +27,7 @@
|
||||
set(MySQLCppConn_FIND_QUIETLY TRUE)
|
||||
endif ()
|
||||
|
||||
-find_path(MySQLCppConn_INCLUDE_DIR NAMES mysql_connection.h PATHS /usr/include /usr/local/include)
|
||||
+find_path(MySQLCppConn_INCLUDE_DIR NAMES mysql_connection.h PATHS /usr/include /usr/include/jdbc /usr/local/include /usr/local/include/jdbc)
|
||||
|
||||
SET(MySQLCppConn_NAMES mysqlcppconn)
|
||||
|
@ -1,18 +1,13 @@
|
||||
AUX postgis-2.2.0-arflags.patch 535 BLAKE2B 6420573e9623d4e2115ed3616bc3b8648ae7782bf4624ee60d3827a4d61cbdac1dc62b4937f36113ed6d0856af4728f5cc1b544d502512e88dd87a7b590135ab SHA512 7f8b92a582dd11b3040832278b75e65036315ca0e438cb9b19cc5b63a7b5c5bcae8ec274a487a29abadfbbc31cdfacf6c668e46f249d4bf88c09607501cacf66
|
||||
DIST postgis-2.4.6.tar.gz 12616474 BLAKE2B 8e33ae7e8ca5ef2a4dd90f64a8e9910118e4ef711444b196f46e4a63f98ff6044709d65a853c5c10de91308658a206965503b6a85a16438ea422becdbbd9bb40 SHA512 eec4276a58549f3cc57d6574186aebc72df0dd7dc2ab9acbaf410604b4d271dee6d5154caacd7297d20493d879434ca78050672e8197ff0fc63a36100c20c66c
|
||||
DIST postgis-2.4.7.tar.gz 12831401 BLAKE2B 0069a339cc778a02a008835189b5560ffb1724aceaaeeec5264750cdfaa4346310ca1d112f698556e750b6559f0dabb727584c9d41ff8747ed7673e147c9723e SHA512 832f039e582227cd1c6edef98af8dfcceb90db75b18d4ba605b7baf2842227b23fe2d15c3b1cde941182c93230ba41ab94da59e97506c77e79f2016bbd98c885
|
||||
DIST postgis-2.4.8.tar.gz 12846228 BLAKE2B dc7cd26f08774011bddba362040f35fd46dab5f58870643d4e6d939fb107a8e93ccb8c2d57ac67bf5ba44a7dd05c25eee77358548d9d7d9a8b3e2f7538e49538 SHA512 afeddbdcbad68358c3bc36beec5f1baf74c328daba90f0ac7d6322e4330d18da2e5534fa200f8ae3f19e7e897221989a564f6e2855e9181eadfd9cc32315b666
|
||||
DIST postgis-2.5.1.tar.gz 16041872 BLAKE2B 589cf7168d3698737a19d817b8efb91695c2c3f63d6c3aa24189d9a37459a28ca8a7db0450aa2d557699f76cd8e3ab1eec198bd332b294d976330fdc9d8a7f60 SHA512 c6c9c8c5befd945614e92d1062df1d753ca8b7fd69b70226065c2dac77a59783b14ece4da994187079b683ee090ba5a79389ba679f22fce8c20a5afc2c8dfca0
|
||||
DIST postgis-2.5.2.tar.gz 16252761 BLAKE2B 181ecc41e659c1df32392d0dfea9cc081c2a647fd23401b8b0470f99e1136b6b8ed900eaea38afdf87cc801bf13ede4247f9c188fcf0da6782624239c77b434f SHA512 b10781f0b74bad8162c33eb111a6090fba184b45fe5874d22cd3a5b0acfb057f3407c073bc44c9d4cd20ed8c2cb1fbb34480b0cf331340bc8b52580d4eccb819
|
||||
DIST postgis-2.5.3.tar.gz 16424752 BLAKE2B 94c2ccd41eb88a39c6db48ad7f4d142742a1b0791e3abe57adb2c778406dcc8286afc6d55c80067e0b94a1300eff1c76a227d3cfd813e12541c715edeea11a9b SHA512 1c9f873ba8f8ff4aeae248c68c001eb4174416de1e00ce6a0d0c9ea129b475e887a83235027068d52f587ab95c549adbfaa7e5dccdda77855e39c55dac0fdc2d
|
||||
DIST postgis-3.0.0.tar.gz 17359802 BLAKE2B aa83bdc2d1950c517f99cbdd877eb7261f6c29ce2cbd9f67f1e606c290080fc3d02ab0b7ceb68ce852e0c0d3d4b7753f03cb5b0921da164ab65d68e23d1df538 SHA512 82c233681fa6444686f9979768e5d6d3a9b6ca9cbd4fc2b14bd0a5d1269a8d0f45ee067e64984077063407c7abc13fa0e37a29928d7ccbfe3a61b694f592bed2
|
||||
EBUILD postgis-2.4.6.ebuild 3062 BLAKE2B 54c4f4682a7803a425a590ade547d178aab1a07722d825a10d25a22b77c7e58f21d6aa7b2756ea5faa96bf8ff309dd40cb80b0145333be1407ac7e8fb826e4a8 SHA512 cd36e3462489fcdf97fc5935d6705906342c6ee178502c06918e230308e245fb22141d49889f692c4e6eee251e21ab8d34b1cb88abc4617fc2cf3476a056aacf
|
||||
EBUILD postgis-2.4.7.ebuild 3062 BLAKE2B 54c4f4682a7803a425a590ade547d178aab1a07722d825a10d25a22b77c7e58f21d6aa7b2756ea5faa96bf8ff309dd40cb80b0145333be1407ac7e8fb826e4a8 SHA512 cd36e3462489fcdf97fc5935d6705906342c6ee178502c06918e230308e245fb22141d49889f692c4e6eee251e21ab8d34b1cb88abc4617fc2cf3476a056aacf
|
||||
EBUILD postgis-2.4.8.ebuild 3064 BLAKE2B 49d50ffe6855984a43429167b72495d7b4ce7a25e572a17e31d798412879d3cce9606b4c724edefb19bfde200b2ae0e009eed06c744cd45ff6a2509d3a0780b5 SHA512 386d7ca69f4a45277c6b5a9089a922121c55f21ac0fb44eb4ba299001c922920eaa52967af668bb8bd3f39aa67d245eefb4e6759f4e35f46ef9b9b9790a9aa71
|
||||
EBUILD postgis-2.5.1-r1.ebuild 3044 BLAKE2B ea7dd912c43f34cc13c596cea4f2169475c49d3318d4b5b2456889c52ef503c5300dcfc245220e9eacf8275c4443b6273c25da71f7d77831f888cc8d4f943f41 SHA512 3265db95c4debdf04068eafce9fef15466851b226752d90e6a4ebc8da0edb4f38f101cec4a59e1303700cfcabb0fe9382df25fbb68fe919bd639d61b9d9ba322
|
||||
EBUILD postgis-2.5.2.ebuild 3044 BLAKE2B ea7dd912c43f34cc13c596cea4f2169475c49d3318d4b5b2456889c52ef503c5300dcfc245220e9eacf8275c4443b6273c25da71f7d77831f888cc8d4f943f41 SHA512 3265db95c4debdf04068eafce9fef15466851b226752d90e6a4ebc8da0edb4f38f101cec4a59e1303700cfcabb0fe9382df25fbb68fe919bd639d61b9d9ba322
|
||||
EBUILD postgis-2.5.3.ebuild 3046 BLAKE2B f2664d46785b9bb43bb35a23435649a785893dcbab78161e7afd9f56a8f1daecfe5c4e923f17266e06e560c2bd9113b4cb7858d8322bbc29eb31c33cdb5d809c SHA512 1182ea0a9fdd8430d4d43fc0bcc13825dec8531b6b0be111cdf480c634263b1599cc544630a20cd56073ded452d507fe895b95a5f5987a5df6e8b5bed152015b
|
||||
EBUILD postgis-2.5.3-r1.ebuild 3175 BLAKE2B 3fb34dee5ae8297fb96f0d07b9ce7f76fbabea98f3b6ce30f64e127141cda4b85d1f8013272378c6031cfe15e2a42c8e16b1df5b713d8d6e843f8f0b5a9998c2 SHA512 49838aa92ccf52c0d18e3b4122105bc87e0cf44048fecba6d4d27bd0df08b5b98ff30efd198dba82f94773ef9ec672296061dcd299f1e1dcd81190b956143563
|
||||
EBUILD postgis-3.0.0-r1.ebuild 3199 BLAKE2B 6a25b2f93ff19b7fffdf431f38614ae6ab07f7209421414493696fb748abadfbb1c0a0e5befd8e30dc22734d976225e696f9a8c5bef185c4cdfaf2a8d62f1d70 SHA512 46b69a6620e69c0b65d7640e43065f10c2a920e011fed8e32bf43272b1fb5e1b66d09886f5de624f2bbd1b74bbaca5e3cfec2dc83d0a68e4f8733f04c740a9b8
|
||||
EBUILD postgis-3.0.0.ebuild 3060 BLAKE2B 5b7798e3ab7293d163e504c3f9a370b905bb4c9c6062159976e4ef3129b3f569b16f4e31d4745c4636f89533344cc206d81093326adf0ec54072aba9f510f539 SHA512 920593b7e8015d9e8555adad9d9212c3abfd0a3bbb56e98d30f42a6fc13033b6fb093f8ca91479aa8077988f99ae0f6d98a6fc6835247d53fdba5ea149f1fbc1
|
||||
EBUILD postgis-9999.ebuild 3199 BLAKE2B 6a25b2f93ff19b7fffdf431f38614ae6ab07f7209421414493696fb748abadfbb1c0a0e5befd8e30dc22734d976225e696f9a8c5bef185c4cdfaf2a8d62f1d70 SHA512 46b69a6620e69c0b65d7640e43065f10c2a920e011fed8e32bf43272b1fb5e1b66d09886f5de624f2bbd1b74bbaca5e3cfec2dc83d0a68e4f8733f04c740a9b8
|
||||
MISC metadata.xml 779 BLAKE2B 9dfbc86514c5f6e0c859dc41a46890e4f518f23c572786bf340112eadf21b35f5f583a3835f6ba58bef8c99a7ef8483f3a98898d372d1c0e5cc537bb9ecc2b12 SHA512 33ad2ddabf49e97af2cf188f2c0f72e1a936c228b43d8d3637230c43be0df82ec2aa20b63cb5f2385e936c215263fcd009332afe504bc5f30746a387b9b37ada
|
||||
|
@ -1,125 +0,0 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="6"
|
||||
|
||||
POSTGRES_COMPAT=( 9.{4..6} {10..11} )
|
||||
POSTGRES_USEDEP="server"
|
||||
|
||||
inherit autotools eutils postgres-multi versionator
|
||||
|
||||
MY_PV=$(replace_version_separator 3 '')
|
||||
MY_P="${PN}-${MY_PV}"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
DESCRIPTION="Geographic Objects for PostgreSQL"
|
||||
HOMEPAGE="http://postgis.net"
|
||||
SRC_URI="http://download.osgeo.org/postgis/source/${MY_P}.tar.gz"
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
|
||||
IUSE="address-standardizer doc gtk static-libs mapbox test topology"
|
||||
|
||||
RDEPEND="
|
||||
${POSTGRES_DEP}
|
||||
dev-libs/json-c:=
|
||||
dev-libs/libxml2:2
|
||||
>=sci-libs/geos-3.5.0
|
||||
>=sci-libs/proj-4.6.0
|
||||
>=sci-libs/gdal-1.10.0
|
||||
address-standardizer? ( dev-libs/libpcre )
|
||||
gtk? ( x11-libs/gtk+:2 )
|
||||
mapbox? ( dev-libs/protobuf )
|
||||
"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
doc? (
|
||||
app-text/docbook-xsl-stylesheets
|
||||
app-text/docbook-xml-dtd:4.5
|
||||
dev-libs/libxslt
|
||||
|| (
|
||||
media-gfx/imagemagick[png]
|
||||
media-gfx/graphicsmagick[imagemagick,png]
|
||||
)
|
||||
)
|
||||
virtual/pkgconfig
|
||||
test? ( dev-util/cunit )
|
||||
"
|
||||
|
||||
PGIS="$(get_version_component_range 1-2)"
|
||||
|
||||
REQUIRED_USE="test? ( doc ) ${POSTGRES_REQ_USE}"
|
||||
|
||||
# Needs a running psql instance, doesn't work out of the box
|
||||
RESTRICT="test"
|
||||
|
||||
MAKEOPTS+=' -j1'
|
||||
|
||||
# These modules are built using the same *FLAGS that were used to build
|
||||
# dev-db/postgresql. The right thing to do is to ignore the current
|
||||
# *FLAGS settings.
|
||||
QA_FLAGS_IGNORED="usr/lib(64)?/(rt)?postgis-${PGIS}\.so"
|
||||
|
||||
src_prepare() {
|
||||
eapply "${FILESDIR}/${PN}-2.2.0-arflags.patch"
|
||||
|
||||
local AT_M4DIR="macros"
|
||||
eautoreconf
|
||||
|
||||
postgres-multi_src_prepare
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local myargs=""
|
||||
|
||||
use gtk && myargs+=" --with-gui"
|
||||
|
||||
use address-standardizer || myargs+=" --without-address-standardizer"
|
||||
use mapbox || myargs+=" --without-protobuf"
|
||||
use topology || myargs+=" --without-topology"
|
||||
|
||||
postgres-multi_foreach econf ${myargs}
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
postgres-multi_foreach emake
|
||||
postgres-multi_foreach emake -C topology
|
||||
|
||||
if use doc ; then
|
||||
postgres-multi_foreach emake comments
|
||||
postgres-multi_foreach emake cheatsheets
|
||||
postgres-multi_forbest emake -C doc html
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
postgres-multi_foreach emake DESTDIR="${D}" install
|
||||
postgres-multi_foreach emake -C topology DESTDIR="${D}" install
|
||||
postgres-multi_forbest dobin ./utils/postgis_restore.pl
|
||||
|
||||
dodoc CREDITS TODO loader/README.* doc/*txt
|
||||
|
||||
docinto topology
|
||||
dodoc topology/{TODO,README}
|
||||
|
||||
if use doc ; then
|
||||
postgres-multi_foreach emake DESTDIR="${D}" comments-install
|
||||
|
||||
docinto html
|
||||
postgres-multi_forbest dodoc doc/html/{postgis.html,style.css}
|
||||
|
||||
docinto html/images
|
||||
postgres-multi_forbest dodoc doc/html/images/*
|
||||
fi
|
||||
|
||||
use static-libs || find "${ED}" -name '*.a' -delete
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
ebegin "Refreshing PostgreSQL symlinks"
|
||||
postgresql-config update
|
||||
eend $?
|
||||
|
||||
elog "To finish installing PostGIS, follow the directions detailed at:"
|
||||
elog "http://postgis.net/docs/manual-${PGIS}/postgis_installation.html#create_new_db_extensions"
|
||||
}
|
@ -1,123 +0,0 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="6"
|
||||
|
||||
POSTGRES_COMPAT=( 9.{4..6} {10..12} )
|
||||
POSTGRES_USEDEP="server"
|
||||
|
||||
inherit autotools eutils postgres-multi versionator
|
||||
|
||||
MY_PV=$(replace_version_separator 3 '')
|
||||
MY_P="${PN}-${MY_PV}"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
DESCRIPTION="Geographic Objects for PostgreSQL"
|
||||
HOMEPAGE="http://postgis.net"
|
||||
SRC_URI="http://download.osgeo.org/postgis/source/${MY_P}.tar.gz"
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
|
||||
IUSE="address-standardizer doc gtk static-libs mapbox test topology"
|
||||
|
||||
RDEPEND="
|
||||
${POSTGRES_DEP}
|
||||
dev-libs/json-c:=
|
||||
dev-libs/libxml2:2
|
||||
>=sci-libs/geos-3.5.0
|
||||
>=sci-libs/proj-4.6.0
|
||||
>=sci-libs/gdal-1.10.0
|
||||
address-standardizer? ( dev-libs/libpcre )
|
||||
gtk? ( x11-libs/gtk+:2 )
|
||||
mapbox? ( dev-libs/protobuf )
|
||||
"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
doc? (
|
||||
app-text/docbook-xsl-stylesheets
|
||||
app-text/docbook-xml-dtd:4.5
|
||||
dev-libs/libxslt
|
||||
|| (
|
||||
media-gfx/imagemagick[png]
|
||||
media-gfx/graphicsmagick[imagemagick,png]
|
||||
)
|
||||
)
|
||||
virtual/pkgconfig
|
||||
test? ( dev-util/cunit )
|
||||
"
|
||||
|
||||
PGIS="$(get_version_component_range 1-2)"
|
||||
|
||||
REQUIRED_USE="test? ( doc ) ${POSTGRES_REQ_USE}"
|
||||
|
||||
# Needs a running psql instance, doesn't work out of the box
|
||||
RESTRICT="test"
|
||||
|
||||
# These modules are built using the same *FLAGS that were used to build
|
||||
# dev-db/postgresql. The right thing to do is to ignore the current
|
||||
# *FLAGS settings.
|
||||
QA_FLAGS_IGNORED="usr/lib(64)?/(rt)?postgis-${PGIS}\.so"
|
||||
|
||||
src_prepare() {
|
||||
eapply "${FILESDIR}/${PN}-2.2.0-arflags.patch"
|
||||
|
||||
local AT_M4DIR="macros"
|
||||
eautoreconf
|
||||
|
||||
postgres-multi_src_prepare
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local myargs=""
|
||||
|
||||
use gtk && myargs+=" --with-gui"
|
||||
|
||||
use address-standardizer || myargs+=" --without-address-standardizer"
|
||||
use mapbox || myargs+=" --without-protobuf"
|
||||
use topology || myargs+=" --without-topology"
|
||||
|
||||
postgres-multi_foreach econf ${myargs}
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
postgres-multi_foreach emake
|
||||
postgres-multi_foreach emake -C topology
|
||||
|
||||
if use doc ; then
|
||||
postgres-multi_foreach emake comments
|
||||
postgres-multi_foreach emake cheatsheets
|
||||
postgres-multi_forbest emake -C doc html
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
postgres-multi_foreach emake DESTDIR="${D}" install
|
||||
postgres-multi_foreach emake -C topology DESTDIR="${D}" install
|
||||
postgres-multi_forbest dobin ./utils/postgis_restore.pl
|
||||
|
||||
dodoc CREDITS TODO loader/README.* doc/*txt
|
||||
|
||||
docinto topology
|
||||
dodoc topology/{TODO,README}
|
||||
|
||||
if use doc ; then
|
||||
postgres-multi_foreach emake DESTDIR="${D}" comments-install
|
||||
|
||||
docinto html
|
||||
postgres-multi_forbest dodoc doc/html/{postgis.html,style.css}
|
||||
|
||||
docinto html/images
|
||||
postgres-multi_forbest dodoc doc/html/images/*
|
||||
fi
|
||||
|
||||
use static-libs || find "${ED}" -name '*.a' -delete
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
ebegin "Refreshing PostgreSQL symlinks"
|
||||
postgresql-config update
|
||||
eend $?
|
||||
|
||||
elog "To finish installing PostGIS, follow the directions detailed at:"
|
||||
elog "http://postgis.net/docs/manual-${PGIS}/postgis_installation.html#create_new_db_extensions"
|
||||
}
|
@ -1,125 +0,0 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="6"
|
||||
|
||||
POSTGRES_COMPAT=( 9.{5..6} {10..12} )
|
||||
POSTGRES_USEDEP="server"
|
||||
|
||||
inherit autotools eutils postgres-multi versionator
|
||||
|
||||
MY_PV=$(replace_version_separator 3 '')
|
||||
MY_P="${PN}-${MY_PV}"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
DESCRIPTION="Geographic Objects for PostgreSQL"
|
||||
HOMEPAGE="http://postgis.net"
|
||||
SRC_URI="http://download.osgeo.org/postgis/source/${MY_P}.tar.gz"
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
|
||||
IUSE="address-standardizer doc gtk static-libs mapbox test topology"
|
||||
|
||||
RDEPEND="
|
||||
${POSTGRES_DEP}
|
||||
dev-libs/json-c:=
|
||||
dev-libs/libxml2:2
|
||||
>=sci-libs/geos-3.6.0
|
||||
>=sci-libs/proj-4.6.0
|
||||
>=sci-libs/gdal-1.10.0
|
||||
address-standardizer? ( dev-libs/libpcre )
|
||||
gtk? ( x11-libs/gtk+:2 )
|
||||
dev-libs/protobuf
|
||||
"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
doc? (
|
||||
app-text/docbook-xsl-stylesheets
|
||||
app-text/docbook-xml-dtd:4.5
|
||||
dev-libs/libxslt
|
||||
|| (
|
||||
media-gfx/imagemagick[png]
|
||||
media-gfx/graphicsmagick[imagemagick,png]
|
||||
)
|
||||
)
|
||||
virtual/pkgconfig
|
||||
test? ( dev-util/cunit )
|
||||
"
|
||||
|
||||
PGIS="$(get_version_component_range 1-2)"
|
||||
|
||||
REQUIRED_USE="test? ( doc ) ${POSTGRES_REQ_USE}"
|
||||
|
||||
# Needs a running psql instance, doesn't work out of the box
|
||||
RESTRICT="test"
|
||||
|
||||
# These modules are built using the same *FLAGS that were used to build
|
||||
# dev-db/postgresql. The right thing to do is to ignore the current
|
||||
# *FLAGS settings.
|
||||
QA_FLAGS_IGNORED="usr/lib(64)?/(rt)?postgis-${PGIS}\.so"
|
||||
|
||||
src_prepare() {
|
||||
eapply "${FILESDIR}/${PN}-2.2.0-arflags.patch"
|
||||
|
||||
# funky misdetection if enabled but --without-protobuf
|
||||
|
||||
local AT_M4DIR="macros"
|
||||
eautoreconf
|
||||
|
||||
postgres-multi_src_prepare
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local myargs=""
|
||||
|
||||
use gtk && myargs+=" --with-gui"
|
||||
|
||||
use address-standardizer || myargs+=" --without-address-standardizer"
|
||||
myargs+=" --with-protobuf"
|
||||
use topology || myargs+=" --without-topology"
|
||||
|
||||
postgres-multi_foreach econf ${myargs}
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
postgres-multi_foreach emake
|
||||
postgres-multi_foreach emake -C topology
|
||||
|
||||
if use doc ; then
|
||||
postgres-multi_foreach emake comments
|
||||
postgres-multi_foreach emake cheatsheets
|
||||
postgres-multi_forbest emake -C doc html
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
postgres-multi_foreach emake DESTDIR="${D}" install
|
||||
postgres-multi_foreach emake -C topology DESTDIR="${D}" install
|
||||
postgres-multi_forbest dobin ./utils/postgis_restore.pl
|
||||
|
||||
dodoc CREDITS TODO loader/README.* doc/*txt
|
||||
|
||||
docinto topology
|
||||
dodoc topology/{TODO,README}
|
||||
|
||||
if use doc ; then
|
||||
postgres-multi_foreach emake DESTDIR="${D}" comments-install
|
||||
|
||||
docinto html
|
||||
postgres-multi_forbest dodoc doc/html/{postgis.html,style.css}
|
||||
|
||||
docinto html/images
|
||||
postgres-multi_forbest dodoc doc/html/images/*
|
||||
fi
|
||||
|
||||
use static-libs || find "${ED}" -name '*.a' -delete
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
ebegin "Refreshing PostgreSQL symlinks"
|
||||
postgresql-config update
|
||||
eend $?
|
||||
|
||||
elog "To finish installing PostGIS, follow the directions detailed at:"
|
||||
elog "http://postgis.net/docs/manual-${PGIS}/postgis_installation.html#create_new_db_extensions"
|
||||
}
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1,155 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
WX_GTK_VER="3.0"
|
||||
|
||||
inherit elisp-common java-pkg-opt-2 systemd wxwidgets
|
||||
|
||||
# NOTE: If you need symlinks for binaries please tell maintainers or
|
||||
# open up a bug to let it be created.
|
||||
|
||||
UPSTREAM_V="$(ver_cut 1-2)"
|
||||
|
||||
DESCRIPTION="Erlang programming language, runtime environment and libraries (OTP)"
|
||||
HOMEPAGE="https://www.erlang.org/"
|
||||
SRC_URI="https://github.com/erlang/otp/archive/OTP-${PV}.tar.gz -> ${P}.tar.gz
|
||||
http://erlang.org/download/otp_doc_man_${UPSTREAM_V}.tar.gz -> ${PN}_doc_man_${UPSTREAM_V}.tar.gz
|
||||
doc? ( http://erlang.org/download/otp_doc_html_${UPSTREAM_V}.tar.gz -> ${PN}_doc_html_${UPSTREAM_V}.tar.gz )"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
# 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 ~x86-macos ~x64-solaris"
|
||||
IUSE="doc emacs +hipe java +kpoll libressl odbc sctp ssl systemd tk wxwidgets"
|
||||
|
||||
RDEPEND="
|
||||
acct-group/epmd
|
||||
acct-user/epmd
|
||||
sys-libs/ncurses:0
|
||||
sys-libs/zlib
|
||||
emacs? ( >=app-editors/emacs-23.1:* )
|
||||
java? ( >=virtual/jdk-1.8:* )
|
||||
odbc? ( dev-db/unixODBC )
|
||||
sctp? ( net-misc/lksctp-tools )
|
||||
ssl? (
|
||||
!libressl? ( >=dev-libs/openssl-0.9.7d:0= )
|
||||
libressl? ( dev-libs/libressl:0= )
|
||||
)
|
||||
systemd? ( sys-apps/systemd )
|
||||
tk? ( dev-lang/tk:0 )
|
||||
wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X,opengl] )
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
dev-lang/perl
|
||||
"
|
||||
|
||||
S="${WORKDIR}/otp-OTP-${PV}"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/18.2.1-wx3.0.patch"
|
||||
"${FILESDIR}/${PN}-22.0-dont-ignore-LDFLAGS.patch"
|
||||
"${FILESDIR}/${PN}-22.2.2-gcc-10.patch"
|
||||
"${FILESDIR}/${PN}-22.1.4-asn1-dep.patch"
|
||||
)
|
||||
|
||||
SITEFILE=50"${PN}"-gentoo.el
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
./otp_build autoconf || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
use wxwidgets && setup-wxwidgets
|
||||
|
||||
local myconf=(
|
||||
--disable-builtin-zlib
|
||||
$(use_enable hipe)
|
||||
$(use_enable kpoll kernel-poll)
|
||||
$(use_with java javac)
|
||||
$(use_enable sctp)
|
||||
$(use_with ssl ssl "${EPREFIX}"/usr)
|
||||
$(use_enable ssl dynamic-ssl-lib)
|
||||
$(use_enable systemd)
|
||||
$(usex wxwidgets "--with-wx-config=${WX_CONFIG}" "--with-wxdir=/dev/null")
|
||||
)
|
||||
econf "${myconf[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake
|
||||
|
||||
if use emacs ; then
|
||||
pushd lib/tools/emacs &>/dev/null || die
|
||||
elisp-compile *.el
|
||||
popd &>/dev/null || die
|
||||
fi
|
||||
}
|
||||
|
||||
extract_version() {
|
||||
local path="$1"
|
||||
local var_name="$2"
|
||||
sed -n -e "/^${var_name} = \(.*\)$/s::\1:p" "${S}/${path}/vsn.mk" || die "extract_version() failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local erl_libdir_rel="$(get_libdir)/erlang"
|
||||
local erl_libdir="/usr/${erl_libdir_rel}"
|
||||
local erl_interface_ver="$(extract_version lib/erl_interface EI_VSN)"
|
||||
local erl_erts_ver="$(extract_version erts VSN)"
|
||||
local my_manpath="/usr/share/${PN}/man"
|
||||
|
||||
[[ -z "${erl_erts_ver}" ]] && die "Couldn't determine erts version"
|
||||
[[ -z "${erl_interface_ver}" ]] && die "Couldn't determine interface version"
|
||||
|
||||
emake INSTALL_PREFIX="${D}" install
|
||||
|
||||
if use doc ; then
|
||||
local DOCS=( "AUTHORS" "HOWTO"/* "README.md" "CONTRIBUTING.md" "${WORKDIR}"/doc/. "${WORKDIR}"/lib/. "${WORKDIR}"/erts-* )
|
||||
docompress -x /usr/share/doc/${PF}
|
||||
else
|
||||
local DOCS=("README.md")
|
||||
fi
|
||||
|
||||
einstalldocs
|
||||
|
||||
dosym "../${erl_libdir_rel}/bin/erl" /usr/bin/erl
|
||||
dosym "../${erl_libdir_rel}/bin/erlc" /usr/bin/erlc
|
||||
dosym "../${erl_libdir_rel}/bin/escript" /usr/bin/escript
|
||||
dosym "../${erl_libdir_rel}/lib/erl_interface-${erl_interface_ver}/bin/erl_call" /usr/bin/erl_call
|
||||
dosym "../${erl_libdir_rel}/erts-${erl_erts_ver}/bin/beam.smp" /usr/bin/beam.smp
|
||||
|
||||
## Clean up the no longer needed files
|
||||
rm "${ED}/${erl_libdir}/Install" || die
|
||||
|
||||
insinto "${my_manpath}"
|
||||
doins -r "${WORKDIR}"/man/*
|
||||
# extend MANPATH, so the normal man command can find it
|
||||
# see bug 189639
|
||||
newenvd - "90erlang" <<-_EOF_
|
||||
MANPATH="${my_manpath}"
|
||||
_EOF_
|
||||
|
||||
if use emacs ; then
|
||||
elisp-install erlang lib/tools/emacs/*.{el,elc}
|
||||
sed -e "s:/usr/share:${EPREFIX}/usr/share:g" \
|
||||
"${FILESDIR}/${SITEFILE}" > "${T}/${SITEFILE}" || die
|
||||
elisp-site-file-install "${T}/${SITEFILE}"
|
||||
fi
|
||||
|
||||
newinitd "${FILESDIR}"/epmd.init-r2 epmd
|
||||
newconfd "${FILESDIR}"/epmd.confd-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,197 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
export CBUILD=${CBUILD:-${CHOST}}
|
||||
export CTARGET=${CTARGET:-${CHOST}}
|
||||
|
||||
MY_PV=${PV/_/}
|
||||
|
||||
inherit toolchain-funcs
|
||||
|
||||
case ${PV} in
|
||||
*9999*)
|
||||
EGIT_REPO_URI="https://github.com/golang/go.git"
|
||||
inherit git-r3
|
||||
;;
|
||||
*)
|
||||
SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz "
|
||||
S="${WORKDIR}"/go
|
||||
case ${PV} in
|
||||
*_beta*|*_rc*) ;;
|
||||
*)
|
||||
KEYWORDS="-* ~amd64 ~arm ~arm64 ~ppc64 ~s390 ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
|
||||
# The upstream tests fail under portage but pass if the build is
|
||||
# run according to their documentation [1].
|
||||
# I am restricting the tests on released versions until this is
|
||||
# solved.
|
||||
# [1] https://golang.org/issues/18442
|
||||
RESTRICT="test"
|
||||
;;
|
||||
esac
|
||||
esac
|
||||
|
||||
DESCRIPTION="A concurrent garbage collected and typesafe programming language"
|
||||
HOMEPAGE="https://golang.org"
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0/${PV}"
|
||||
|
||||
BDEPEND="|| (
|
||||
dev-lang/go
|
||||
dev-lang/go-bootstrap )"
|
||||
RDEPEND="!<dev-go/go-tools-0_pre20150902"
|
||||
|
||||
# These test data objects have writable/executable stacks.
|
||||
QA_EXECSTACK="
|
||||
usr/lib/go/src/debug/elf/testdata/*.obj
|
||||
usr/lib/go/src/*.gox
|
||||
"
|
||||
|
||||
# Do not complain about CFLAGS, etc, since Go doesn't use them.
|
||||
QA_FLAGS_IGNORED='.*'
|
||||
|
||||
REQUIRES_EXCLUDE="/usr/lib/go/src/debug/elf/testdata/*"
|
||||
|
||||
# The tools in /usr/lib/go should not cause the multilib-strict check to fail.
|
||||
QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*"
|
||||
|
||||
# Do not strip this package. Stripping is unsupported upstream and may
|
||||
# fail.
|
||||
RESTRICT+=" strip"
|
||||
|
||||
DOCS=(
|
||||
AUTHORS
|
||||
CONTRIBUTING.md
|
||||
CONTRIBUTORS
|
||||
PATENTS
|
||||
README.md
|
||||
)
|
||||
|
||||
go_arch()
|
||||
{
|
||||
# By chance most portage arch names match Go
|
||||
local portage_arch=$(tc-arch $@)
|
||||
case "${portage_arch}" in
|
||||
x86) echo 386;;
|
||||
x64-*) echo amd64;;
|
||||
ppc64) [[ $(tc-endian $@) = big ]] && echo ppc64 || echo ppc64le ;;
|
||||
s390) echo s390x ;;
|
||||
*) echo "${portage_arch}";;
|
||||
esac
|
||||
}
|
||||
|
||||
go_arm()
|
||||
{
|
||||
case "${1:-${CHOST}}" in
|
||||
armv5*) echo 5;;
|
||||
armv6*) echo 6;;
|
||||
armv7*) echo 7;;
|
||||
*)
|
||||
die "unknown GOARM for ${1:-${CHOST}}"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
go_os()
|
||||
{
|
||||
case "${1:-${CHOST}}" in
|
||||
*-linux*) echo linux;;
|
||||
*-darwin*) echo darwin;;
|
||||
*-freebsd*) echo freebsd;;
|
||||
*-netbsd*) echo netbsd;;
|
||||
*-openbsd*) echo openbsd;;
|
||||
*-solaris*) echo solaris;;
|
||||
*-cygwin*|*-interix*|*-winnt*)
|
||||
echo windows
|
||||
;;
|
||||
*)
|
||||
die "unknown GOOS for ${1:-${CHOST}}"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
go_tuple()
|
||||
{
|
||||
echo "$(go_os $@)_$(go_arch $@)"
|
||||
}
|
||||
|
||||
go_cross_compile()
|
||||
{
|
||||
[[ $(go_tuple ${CBUILD}) != $(go_tuple) ]]
|
||||
}
|
||||
|
||||
src_compile()
|
||||
{
|
||||
if has_version -b dev-lang/go; then
|
||||
export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go"
|
||||
elif has_version -b dev-lang/go-bootstrap; then
|
||||
export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap"
|
||||
else
|
||||
eerror "Go cannot be built without go or go-bootstrap installed"
|
||||
die "Should not be here, please report a bug"
|
||||
fi
|
||||
|
||||
export GOROOT_FINAL="${EPREFIX}"/usr/lib/go
|
||||
export GOROOT="$(pwd)"
|
||||
export GOBIN="${GOROOT}/bin"
|
||||
|
||||
# Go's build script does not use BUILD/HOST/TARGET consistently. :(
|
||||
export GOHOSTARCH=$(go_arch ${CBUILD})
|
||||
export GOHOSTOS=$(go_os ${CBUILD})
|
||||
export CC=$(tc-getBUILD_CC)
|
||||
|
||||
export GOARCH=$(go_arch)
|
||||
export GOOS=$(go_os)
|
||||
export CC_FOR_TARGET=$(tc-getCC)
|
||||
export CXX_FOR_TARGET=$(tc-getCXX)
|
||||
if [[ ${ARCH} == arm ]]; then
|
||||
export GOARM=$(go_arm)
|
||||
fi
|
||||
|
||||
cd src
|
||||
./make.bash || die "build failed"
|
||||
}
|
||||
|
||||
src_test()
|
||||
{
|
||||
go_cross_compile && return 0
|
||||
|
||||
cd src
|
||||
PATH="${GOBIN}:${PATH}" \
|
||||
./run.bash -no-rebuild || die "tests failed"
|
||||
}
|
||||
|
||||
src_install()
|
||||
{
|
||||
local bin_path f x
|
||||
|
||||
dodir /usr/lib/go
|
||||
|
||||
# There is a known issue which requires the source tree to be installed [1].
|
||||
# Once this is fixed, we can consider using the doc use flag to control
|
||||
# installing the doc and src directories.
|
||||
# [1] https://golang.org/issue/2775
|
||||
#
|
||||
# deliberately use cp to retain permissions
|
||||
cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go
|
||||
if go_cross_compile; then
|
||||
bin_path="bin/$(go_tuple)"
|
||||
else
|
||||
bin_path=bin
|
||||
fi
|
||||
for x in ${bin_path}/*; do
|
||||
f=${x##*/}
|
||||
dosym ../lib/go/${bin_path}/${f} /usr/bin/${f}
|
||||
done
|
||||
einstalldocs
|
||||
|
||||
if [[ ${CHOST} == *-darwin* ]] ; then
|
||||
# fix install_name for test object (binutils_test) on Darwin, it
|
||||
# is never used in real circumstances
|
||||
local libmac64="${EPREFIX}"/usr/lib/go/src/cmd/vendor/github.com/
|
||||
libmac64+=google/pprof/internal/binutils/testdata/lib_mac_64
|
||||
install_name_tool -id "${libmac64}" "${D}${libmac64}"
|
||||
fi
|
||||
}
|
@ -0,0 +1,167 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit bash-completion-r1 rust-toolchain toolchain-funcs
|
||||
|
||||
MY_P="rust-${PV}"
|
||||
|
||||
DESCRIPTION="Systems programming language from Mozilla"
|
||||
HOMEPAGE="https://www.rust-lang.org/"
|
||||
SRC_URI="$(rust_all_arch_uris ${MY_P})"
|
||||
|
||||
LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
|
||||
SLOT="stable"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
|
||||
IUSE="clippy cpu_flags_x86_sse2 doc libressl rustfmt"
|
||||
|
||||
DEPEND=""
|
||||
RDEPEND=">=app-eselect/eselect-rust-20190311
|
||||
sys-libs/zlib
|
||||
!libressl? ( dev-libs/openssl:0= )
|
||||
libressl? ( dev-libs/libressl:0= )
|
||||
net-libs/libssh2
|
||||
net-misc/curl[ssl]
|
||||
!dev-lang/rust:0
|
||||
!dev-util/cargo
|
||||
rustfmt? ( !dev-util/rustfmt )"
|
||||
REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )"
|
||||
|
||||
QA_PREBUILT="
|
||||
opt/${P}/bin/*-${PV}
|
||||
opt/${P}/lib/*.so
|
||||
opt/${P}/lib/rustlib/*/bin/*
|
||||
opt/${P}/lib/rustlib/*/lib/*.so
|
||||
opt/${P}/lib/rustlib/*/lib/*.rlib*
|
||||
"
|
||||
|
||||
pkg_pretend () {
|
||||
if [[ "$(tc-is-softfloat)" != "no" ]] && [[ ${CHOST} == armv7* ]]; then
|
||||
die "${CHOST} is not supported by upstream Rust. You must use a hard float version."
|
||||
fi
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
default
|
||||
mv "${WORKDIR}/${MY_P}-$(rust_abi)" "${S}" || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local std=$(grep 'std' ./components)
|
||||
local components="rustc,cargo,${std}"
|
||||
use doc && components="${components},rust-docs"
|
||||
use clippy && components="${components},clippy-preview"
|
||||
use rustfmt && components="${components},rustfmt-preview"
|
||||
./install.sh \
|
||||
--components="${components}" \
|
||||
--disable-verify \
|
||||
--prefix="${ED}/opt/${P}" \
|
||||
--mandir="${ED}/usr/share/${P}/man" \
|
||||
--disable-ldconfig \
|
||||
|| die
|
||||
|
||||
local rustc=rustc-bin-${PV}
|
||||
local rustdoc=rustdoc-bin-${PV}
|
||||
local rustgdb=rust-gdb-bin-${PV}
|
||||
local rustgdbgui=rust-gdbgui-bin-${PV}
|
||||
local rustlldb=rust-lldb-bin-${PV}
|
||||
|
||||
mv "${ED}/opt/${P}/bin/rustc" "${ED}/opt/${P}/bin/${rustc}" || die
|
||||
mv "${ED}/opt/${P}/bin/rustdoc" "${ED}/opt/${P}/bin/${rustdoc}" || die
|
||||
mv "${ED}/opt/${P}/bin/rust-gdb" "${ED}/opt/${P}/bin/${rustgdb}" || die
|
||||
mv "${ED}/opt/${P}/bin/rust-gdbgui" "${ED}/opt/${P}/bin/${rustgdbgui}" || die
|
||||
mv "${ED}/opt/${P}/bin/rust-lldb" "${ED}/opt/${P}/bin/${rustlldb}" || die
|
||||
|
||||
dosym "${rustc}" "/opt/${P}/bin/rustc"
|
||||
dosym "${rustdoc}" "/opt/${P}/bin/rustdoc"
|
||||
dosym "${rustgdb}" "/opt/${P}/bin/rust-gdb"
|
||||
dosym "${rustgdbgui}" "/opt/${P}/bin/rust-gdbgui"
|
||||
dosym "${rustlldb}" "/opt/${P}/bin/rust-lldb"
|
||||
|
||||
dosym "../../opt/${P}/bin/${rustc}" "/usr/bin/${rustc}"
|
||||
dosym "../../opt/${P}/bin/${rustdoc}" "/usr/bin/${rustdoc}"
|
||||
dosym "../../opt/${P}/bin/${rustgdb}" "/usr/bin/${rustgdb}"
|
||||
dosym "../../opt/${P}/bin/${rustgdbgui}" "/usr/bin/${rustgdbgui}"
|
||||
dosym "../../opt/${P}/bin/${rustlldb}" "/usr/bin/${rustlldb}"
|
||||
|
||||
local cargo=cargo-bin-${PV}
|
||||
mv "${ED}/opt/${P}/bin/cargo" "${ED}/opt/${P}/bin/${cargo}" || die
|
||||
dosym "${cargo}" "/opt/${P}/bin/cargo"
|
||||
dosym "../../opt/${P}/bin/${cargo}" "/usr/bin/${cargo}"
|
||||
|
||||
if use clippy; then
|
||||
local clippy_driver=clippy-driver-bin-${PV}
|
||||
local cargo_clippy=cargo-clippy-bin-${PV}
|
||||
mv "${ED}/opt/${P}/bin/clippy-driver" "${ED}/opt/${P}/bin/${clippy_driver}" || die
|
||||
mv "${ED}/opt/${P}/bin/cargo-clippy" "${ED}/opt/${P}/bin/${cargo_clippy}" || die
|
||||
dosym "${clippy_driver}" "/opt/${P}/bin/clippy-driver"
|
||||
dosym "${cargo_clippy}" "/opt/${P}/bin/cargo-clippy"
|
||||
dosym "../../opt/${P}/bin/${clippy_driver}" "/usr/bin/${clippy_driver}"
|
||||
dosym "../../opt/${P}/bin/${cargo_clippy}" "/usr/bin/${cargo_clippy}"
|
||||
fi
|
||||
if use rustfmt; then
|
||||
local rustfmt=rustfmt-bin-${PV}
|
||||
local cargo_fmt=cargo-fmt-bin-${PV}
|
||||
mv "${ED}/opt/${P}/bin/rustfmt" "${ED}/opt/${P}/bin/${rustfmt}" || die
|
||||
mv "${ED}/opt/${P}/bin/cargo-fmt" "${ED}/opt/${P}/bin/${cargo_fmt}" || die
|
||||
dosym "${rustfmt}" "/opt/${P}/bin/rustfmt"
|
||||
dosym "${cargo_fmt}" "/opt/${P}/bin/cargo-fmt"
|
||||
dosym "../../opt/${P}/bin/${rustfmt}" "/usr/bin/${rustfmt}"
|
||||
dosym "../../opt/${P}/bin/${cargo_fmt}" "/usr/bin/${cargo_fmt}"
|
||||
fi
|
||||
|
||||
cat <<-EOF > "${T}"/50${P}
|
||||
LDPATH="/opt/${P}/lib"
|
||||
MANPATH="/usr/share/${P}/man"
|
||||
EOF
|
||||
doenvd "${T}"/50${P}
|
||||
|
||||
# note: eselect-rust adds EROOT to all paths below
|
||||
cat <<-EOF > "${T}/provider-${P}"
|
||||
/usr/bin/rustdoc
|
||||
/usr/bin/rust-gdb
|
||||
/usr/bin/rust-gdbgui
|
||||
/usr/bin/rust-lldb
|
||||
EOF
|
||||
echo /usr/bin/cargo >> "${T}/provider-${P}"
|
||||
if use clippy; then
|
||||
echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
|
||||
echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
|
||||
fi
|
||||
if use rustfmt; then
|
||||
echo /usr/bin/rustfmt >> "${T}/provider-${P}"
|
||||
echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
|
||||
fi
|
||||
|
||||
insinto /etc/env.d/rust
|
||||
doins "${T}/provider-${P}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect rust update --if-unset
|
||||
|
||||
elog "Rust installs a helper script for calling GDB now,"
|
||||
elog "for your convenience it is installed under /usr/bin/rust-gdb-bin-${PV},"
|
||||
|
||||
if has_version app-editors/emacs; then
|
||||
elog "install app-emacs/rust-mode to get emacs support for rust."
|
||||
fi
|
||||
|
||||
if has_version app-editors/gvim || has_version app-editors/vim; then
|
||||
elog "install app-vim/rust-vim to get vim support for rust."
|
||||
fi
|
||||
|
||||
if use elibc_musl; then
|
||||
ewarn "${PN} on *-musl targets is configured with crt-static"
|
||||
ewarn ""
|
||||
ewarn "you will need to set RUSTFLAGS=\"-C target-feature=-crt-static\" in make.conf"
|
||||
ewarn "to use it with portage, otherwise you may see failures like"
|
||||
ewarn "error: cannot produce proc-macro for serde_derive v1.0.98 as the target "
|
||||
ewarn "x86_64-unknown-linux-musl does not support these crate types"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect rust cleanup
|
||||
}
|
@ -0,0 +1,366 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( python2_7 python3_{6,7} )
|
||||
|
||||
inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing multilib-build python-any-r1 rust-toolchain toolchain-funcs
|
||||
|
||||
if [[ ${PV} = *beta* ]]; then
|
||||
betaver=${PV//*beta}
|
||||
BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
|
||||
MY_P="rustc-beta"
|
||||
SLOT="beta/${PV}"
|
||||
SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz"
|
||||
else
|
||||
ABI_VER="$(ver_cut 1-2)"
|
||||
SLOT="stable/${ABI_VER}"
|
||||
MY_P="rustc-${PV}"
|
||||
SRC="${MY_P}-src.tar.xz"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
|
||||
fi
|
||||
|
||||
RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
|
||||
|
||||
DESCRIPTION="Systems programming language from Mozilla"
|
||||
HOMEPAGE="https://www.rust-lang.org/"
|
||||
|
||||
SRC_URI="
|
||||
https://static.rust-lang.org/dist/${SRC} -> rustc-${PV}-src.tar.xz
|
||||
!system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
|
||||
"
|
||||
|
||||
ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430
|
||||
NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore )
|
||||
ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
|
||||
LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?}
|
||||
|
||||
LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
|
||||
|
||||
IUSE="clippy cpu_flags_x86_sse2 debug doc libressl nightly parallel-compiler rls rustfmt system-bootstrap system-llvm wasm ${ALL_LLVM_TARGETS[*]}"
|
||||
|
||||
# Please keep the LLVM dependency block separate. Since LLVM is slotted,
|
||||
# we need to *really* make sure we're not pulling more than one slot
|
||||
# simultaneously.
|
||||
|
||||
# How to use it:
|
||||
# 1. List all the working slots (with min versions) in ||, newest first.
|
||||
# 2. Update the := to specify *max* version, e.g. < 10.
|
||||
# 3. Specify LLVM_MAX_SLOT, e.g. 9.
|
||||
LLVM_DEPEND="
|
||||
|| (
|
||||
sys-devel/llvm:9[llvm_targets_WebAssembly?]
|
||||
wasm? ( =sys-devel/lld-9* )
|
||||
)
|
||||
<sys-devel/llvm-10:=
|
||||
"
|
||||
LLVM_MAX_SLOT=9
|
||||
|
||||
BOOTSTRAP_DEPEND="|| ( >=dev-lang/rust-1.$(($(ver_cut 2) - 1)).0-r1 >=dev-lang/rust-bin-1.$(($(ver_cut 2) - 1)) )"
|
||||
|
||||
COMMON_DEPEND="
|
||||
sys-libs/zlib
|
||||
!libressl? ( dev-libs/openssl:0= )
|
||||
libressl? ( dev-libs/libressl:0= )
|
||||
net-libs/libssh2
|
||||
net-libs/http-parser:=
|
||||
net-misc/curl[ssl]
|
||||
elibc_musl? ( sys-libs/libunwind )
|
||||
system-llvm? (
|
||||
${LLVM_DEPEND}
|
||||
)
|
||||
"
|
||||
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
${PYTHON_DEPS}
|
||||
|| (
|
||||
>=sys-devel/gcc-4.7
|
||||
>=sys-devel/clang-3.5
|
||||
)
|
||||
system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
|
||||
system-llvm? (
|
||||
dev-util/cmake
|
||||
dev-util/ninja
|
||||
)
|
||||
"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
>=app-eselect/eselect-rust-20190311
|
||||
"
|
||||
|
||||
REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
|
||||
parallel-compiler? ( nightly )
|
||||
wasm? ( llvm_targets_WebAssembly )
|
||||
x86? ( cpu_flags_x86_sse2 )
|
||||
"
|
||||
|
||||
QA_FLAGS_IGNORED="
|
||||
usr/bin/*-${PV}
|
||||
usr/lib*/lib*.so
|
||||
usr/lib/rustlib/*/codegen-backends/librustc_codegen_llvm-llvm.so
|
||||
usr/lib/rustlib/*/lib/lib*.so
|
||||
"
|
||||
|
||||
QA_SONAME="usr/lib.*/librustc_macros.*.so"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/1.40.0-add-soname.patch
|
||||
)
|
||||
|
||||
S="${WORKDIR}/${MY_P}-src"
|
||||
|
||||
toml_usex() {
|
||||
usex "$1" true false
|
||||
}
|
||||
|
||||
pre_build_checks() {
|
||||
CHECKREQS_DISK_BUILD="10G"
|
||||
eshopts_push -s extglob
|
||||
if is-flagq '-g?(gdb)?([1-9])'; then
|
||||
CHECKREQS_DISK_BUILD="15G"
|
||||
fi
|
||||
eshopts_pop
|
||||
check-reqs_pkg_setup
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
pre_build_checks
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
pre_build_checks
|
||||
python-any-r1_pkg_setup
|
||||
|
||||
export LIBGIT2_SYS_USE_PKG_CONFIG=1
|
||||
export LIBSSH2_SYS_USE_PKG_CONFIG=1
|
||||
export PKG_CONFIG_ALLOW_CROSS=1
|
||||
|
||||
if use system-llvm; then
|
||||
llvm_pkg_setup
|
||||
|
||||
local llvm_config="$(get_llvm_prefix "$LLVM_MAX_SLOT")/bin/llvm-config"
|
||||
|
||||
export LLVM_LINK_SHARED=1
|
||||
export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
if ! use system-bootstrap; then
|
||||
local rust_stage0_root="${WORKDIR}"/rust-stage0
|
||||
local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)"
|
||||
|
||||
"${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
|
||||
--destdir="${rust_stage0_root}" --prefix=/ || die
|
||||
fi
|
||||
|
||||
default
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local rust_target="" rust_targets="" arch_cflags
|
||||
|
||||
# Collect rust target names to compile standard libs for all ABIs.
|
||||
for v in $(multilib_get_enabled_abi_pairs); do
|
||||
rust_targets="${rust_targets},\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
|
||||
done
|
||||
if use wasm; then
|
||||
rust_targets="${rust_targets},\"wasm32-unknown-unknown\""
|
||||
fi
|
||||
rust_targets="${rust_targets#,}"
|
||||
|
||||
local extended="true" tools="\"cargo\","
|
||||
if use clippy; then
|
||||
tools="\"clippy\",$tools"
|
||||
fi
|
||||
if use rls; then
|
||||
tools="\"rls\",\"analysis\",\"src\",$tools"
|
||||
fi
|
||||
if use rustfmt; then
|
||||
tools="\"rustfmt\",$tools"
|
||||
fi
|
||||
|
||||
local rust_stage0_root
|
||||
if use system-bootstrap; then
|
||||
rust_stage0_root="$(rustc --print sysroot)"
|
||||
else
|
||||
rust_stage0_root="${WORKDIR}"/rust-stage0
|
||||
fi
|
||||
|
||||
rust_target="$(rust_abi)"
|
||||
|
||||
cat <<- EOF > "${S}"/config.toml
|
||||
[llvm]
|
||||
optimize = $(toml_usex !debug)
|
||||
release-debuginfo = $(toml_usex debug)
|
||||
assertions = $(toml_usex debug)
|
||||
targets = "${LLVM_TARGETS// /;}"
|
||||
experimental-targets = ""
|
||||
link-shared = $(toml_usex system-llvm)
|
||||
[build]
|
||||
build = "${rust_target}"
|
||||
host = ["${rust_target}"]
|
||||
target = [${rust_targets}]
|
||||
cargo = "${rust_stage0_root}/bin/cargo"
|
||||
rustc = "${rust_stage0_root}/bin/rustc"
|
||||
docs = $(toml_usex doc)
|
||||
compiler-docs = $(toml_usex doc)
|
||||
submodules = false
|
||||
python = "${EPYTHON}"
|
||||
locked-deps = true
|
||||
vendor = true
|
||||
extended = ${extended}
|
||||
tools = [${tools}]
|
||||
verbose = 2
|
||||
[install]
|
||||
prefix = "${EPREFIX}/usr"
|
||||
libdir = "lib"
|
||||
docdir = "share/doc/${PF}"
|
||||
mandir = "share/man"
|
||||
[rust]
|
||||
optimize = $(toml_usex !debug)
|
||||
debug = $(toml_usex debug)
|
||||
debug-assertions = $(toml_usex debug)
|
||||
default-linker = "$(tc-getCC)"
|
||||
parallel-compiler = $(toml_usex parallel-compiler)
|
||||
channel = "$(usex nightly nightly stable)"
|
||||
rpath = false
|
||||
lld = $(usex system-llvm false $(toml_usex wasm))
|
||||
[dist]
|
||||
src-tarball = false
|
||||
EOF
|
||||
|
||||
for v in $(multilib_get_enabled_abi_pairs); do
|
||||
rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
|
||||
arch_cflags="$(get_abi_CFLAGS ${v##*.})"
|
||||
|
||||
cat <<- EOF >> "${S}"/config.env
|
||||
CFLAGS_${rust_target}=${arch_cflags}
|
||||
EOF
|
||||
|
||||
cat <<- EOF >> "${S}"/config.toml
|
||||
[target.${rust_target}]
|
||||
cc = "$(tc-getBUILD_CC)"
|
||||
cxx = "$(tc-getBUILD_CXX)"
|
||||
linker = "$(tc-getCC)"
|
||||
ar = "$(tc-getAR)"
|
||||
EOF
|
||||
# librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
|
||||
if use elibc_musl; then
|
||||
cat <<- EOF >> "${S}"/config.toml
|
||||
crt-static = false
|
||||
EOF
|
||||
fi
|
||||
if use system-llvm; then
|
||||
cat <<- EOF >> "${S}"/config.toml
|
||||
llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
|
||||
EOF
|
||||
fi
|
||||
done
|
||||
|
||||
if use wasm; then
|
||||
cat <<- EOF >> "${S}"/config.toml
|
||||
[target.wasm32-unknown-unknown]
|
||||
linker = "$(usex system-llvm lld rust-lld)"
|
||||
EOF
|
||||
fi
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
env $(cat "${S}"/config.env)\
|
||||
"${EPYTHON}" ./x.py build -vv --config="${S}"/config.toml -j$(makeopts_jobs) \
|
||||
--exclude src/tools/miri || die # https://github.com/rust-lang/rust/issues/52305
|
||||
}
|
||||
|
||||
src_install() {
|
||||
env DESTDIR="${D}" "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml \
|
||||
--exclude src/tools/miri || die
|
||||
|
||||
# bug #689562, #689160
|
||||
rm "${D}/etc/bash_completion.d/cargo" || die
|
||||
rmdir "${D}"/etc{/bash_completion.d,} || die
|
||||
dobashcomp build/tmp/dist/cargo-image/etc/bash_completion.d/cargo
|
||||
|
||||
mv "${ED}/usr/bin/rustc" "${ED}/usr/bin/rustc-${PV}" || die
|
||||
mv "${ED}/usr/bin/rustdoc" "${ED}/usr/bin/rustdoc-${PV}" || die
|
||||
mv "${ED}/usr/bin/rust-gdb" "${ED}/usr/bin/rust-gdb-${PV}" || die
|
||||
mv "${ED}/usr/bin/rust-gdbgui" "${ED}/usr/bin/rust-gdbgui-${PV}" || die
|
||||
mv "${ED}/usr/bin/rust-lldb" "${ED}/usr/bin/rust-lldb-${PV}" || die
|
||||
mv "${ED}/usr/bin/cargo" "${ED}/usr/bin/cargo-${PV}" || die
|
||||
if use clippy; then
|
||||
mv "${ED}/usr/bin/clippy-driver" "${ED}/usr/bin/clippy-driver-${PV}" || die
|
||||
mv "${ED}/usr/bin/cargo-clippy" "${ED}/usr/bin/cargo-clippy-${PV}" || die
|
||||
fi
|
||||
if use rls; then
|
||||
mv "${ED}/usr/bin/rls" "${ED}/usr/bin/rls-${PV}" || die
|
||||
fi
|
||||
if use rustfmt; then
|
||||
mv "${ED}/usr/bin/rustfmt" "${ED}/usr/bin/rustfmt-${PV}" || die
|
||||
mv "${ED}/usr/bin/cargo-fmt" "${ED}/usr/bin/cargo-fmt-${PV}" || die
|
||||
fi
|
||||
|
||||
# Move public shared libs to abi specific libdir
|
||||
# Private and target specific libs MUST stay in /usr/lib/rustlib/${rust_target}/lib
|
||||
if [[ $(get_libdir) != lib ]]; then
|
||||
dodir /usr/$(get_libdir)
|
||||
mv "${ED}/usr/lib"/*.so "${ED}/usr/$(get_libdir)/" || die
|
||||
fi
|
||||
|
||||
dodoc COPYRIGHT
|
||||
|
||||
# note: eselect-rust adds EROOT to all paths below
|
||||
cat <<-EOF > "${T}/provider-${P}"
|
||||
/usr/bin/rustdoc
|
||||
/usr/bin/rust-gdb
|
||||
/usr/bin/rust-gdbgui
|
||||
/usr/bin/rust-lldb
|
||||
EOF
|
||||
echo /usr/bin/cargo >> "${T}/provider-${P}"
|
||||
if use clippy; then
|
||||
echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
|
||||
echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
|
||||
fi
|
||||
if use rls; then
|
||||
echo /usr/bin/rls >> "${T}/provider-${P}"
|
||||
fi
|
||||
if use rustfmt; then
|
||||
echo /usr/bin/rustfmt >> "${T}/provider-${P}"
|
||||
echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
|
||||
fi
|
||||
|
||||
insinto /etc/env.d/rust
|
||||
doins "${T}/provider-${P}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect rust update --if-unset
|
||||
|
||||
elog "Rust installs a helper script for calling GDB and LLDB,"
|
||||
elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
|
||||
|
||||
ewarn "cargo is now installed from dev-lang/rust{,-bin} instead of dev-util/cargo."
|
||||
ewarn "This might have resulted in a dangling symlink for /usr/bin/cargo on some"
|
||||
ewarn "systems. This can be resolved by calling 'sudo eselect rust set ${P}'."
|
||||
|
||||
if has_version app-editors/emacs; then
|
||||
elog "install app-emacs/rust-mode to get emacs support for rust."
|
||||
fi
|
||||
|
||||
if has_version app-editors/gvim || has_version app-editors/vim; then
|
||||
elog "install app-vim/rust-vim to get vim support for rust."
|
||||
fi
|
||||
|
||||
if use elibc_musl; then
|
||||
ewarn "${PN} on *-musl targets is configured with crt-static"
|
||||
ewarn ""
|
||||
ewarn "you will need to set RUSTFLAGS=\"-C target-feature=-crt-static\" in make.conf"
|
||||
ewarn "to use it with portage, otherwise you may see failures like"
|
||||
ewarn "error: cannot produce proc-macro for serde_derive v1.0.98 as the target "
|
||||
ewarn "x86_64-unknown-linux-musl does not support these crate types"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect rust cleanup
|
||||
}
|
Binary file not shown.
@ -0,0 +1,105 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit flag-o-matic eutils libtool multilib-minimal
|
||||
|
||||
MY_PV=${PV/_p*}
|
||||
MY_PV=${MY_PV/_/-}
|
||||
MY_P=${PN}-${MY_PV}
|
||||
PLEVEL=${PV/*p}
|
||||
DESCRIPTION="Library for arbitrary-precision arithmetic on different type of numbers"
|
||||
HOMEPAGE="https://gmplib.org/"
|
||||
SRC_URI="ftp://ftp.gmplib.org/pub/${MY_P}/${MY_P}.tar.xz
|
||||
mirror://gnu/${PN}/${MY_P}.tar.xz
|
||||
doc? ( https://gmplib.org/${PN}-man-${MY_PV}.pdf )"
|
||||
|
||||
LICENSE="|| ( LGPL-3+ GPL-2+ )"
|
||||
# The subslot reflects the C & C++ SONAMEs.
|
||||
SLOT="0/10.4"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
IUSE="+asm doc cxx pic static-libs"
|
||||
|
||||
DEPEND="sys-devel/m4
|
||||
app-arch/xz-utils"
|
||||
RDEPEND=""
|
||||
|
||||
S=${WORKDIR}/${MY_P%a}
|
||||
|
||||
DOCS=( AUTHORS ChangeLog NEWS README doc/configuration doc/isa_abi_headache )
|
||||
HTML_DOCS=( doc )
|
||||
MULTILIB_WRAPPED_HEADERS=( /usr/include/gmp.h )
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-6.1.0-noexecstack-detect.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# note: we cannot run autotools here as gcc depends on this package
|
||||
elibtoolize
|
||||
|
||||
# https://bugs.gentoo.org/536894
|
||||
if [[ ${CHOST} == *-darwin* ]] ; then
|
||||
eapply "${FILESDIR}"/${PN}-6.1.2-gcc-apple-4.0.1.patch
|
||||
fi
|
||||
|
||||
# GMP uses the "ABI" env var during configure as does Gentoo (econf).
|
||||
# So, to avoid patching the source constantly, wrap things up.
|
||||
mv configure configure.wrapped || die
|
||||
cat <<-\EOF > configure
|
||||
#!/usr/bin/env sh
|
||||
exec env ABI="${GMPABI}" "$0.wrapped" "$@"
|
||||
EOF
|
||||
# Patches to original configure might have lost the +x bit.
|
||||
chmod a+rx configure{,.wrapped} || die
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
# Because of our 32-bit userland, 1.0 is the only HPPA ABI that works
|
||||
# https://gmplib.org/manual/ABI-and-ISA.html#ABI-and-ISA (bug #344613)
|
||||
if [[ ${CHOST} == hppa2.0-* ]] ; then
|
||||
GMPABI="1.0"
|
||||
fi
|
||||
|
||||
# ABI mappings (needs all architectures supported)
|
||||
case ${ABI} in
|
||||
32|x86) GMPABI=32;;
|
||||
64|amd64|n64) GMPABI=64;;
|
||||
[onx]32) GMPABI=${ABI};;
|
||||
esac
|
||||
export GMPABI
|
||||
|
||||
#367719
|
||||
if [[ ${CHOST} == *-mint* ]]; then
|
||||
filter-flags -O?
|
||||
fi
|
||||
|
||||
# --with-pic forces static libraries to be built as PIC
|
||||
# and without TEXTRELs. musl does not support TEXTRELs: bug #707332
|
||||
tc-export CC
|
||||
ECONF_SOURCE="${S}" econf \
|
||||
--localstatedir="${EPREFIX}"/var/state/gmp \
|
||||
--enable-shared \
|
||||
$(use_enable asm assembly) \
|
||||
$(use_enable cxx) \
|
||||
$(use pic && echo --with-pic) \
|
||||
$(use_enable static-libs static)
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
emake DESTDIR="${D}" install
|
||||
|
||||
# should be a standalone lib
|
||||
rm -f "${ED}"/usr/$(get_libdir)/libgmp.la
|
||||
# this requires libgmp
|
||||
local la="${ED}/usr/$(get_libdir)/libgmpxx.la"
|
||||
use static-libs || rm -f "${la}"
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
einstalldocs
|
||||
use doc && cp "${DISTDIR}"/gmp-man-${MY_PV}.pdf "${ED}"/usr/share/doc/${PF}/
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
DIST hsa-ext-rocr-dev_1.1.9-122-ge5c4efb_amd64.deb 1120322 BLAKE2B 40c60058c2b6d6debf80503c36f6b0ddc72747c7327e411121f99fa2e507e5e9414cb91c80be0acf283bff23a6a029b3ef199577846b694b2e2e11696cc7d225 SHA512 60dad492cc66f249d48fb057b2ecec1719525a871d38f39a403a55de98e8cdea5f00f672fa3ea697490c287ba7e5c3be035f1f2861a7fc97d9b949f575e51ad7
|
||||
DIST hsa-ext-rocr-dev_1.1.9-139-g0d1ca36_amd64.deb 1166210 BLAKE2B 3edcc938ec92277a163886df4e83f93f6a38b1ec4e95e719265f7a595d291fe4beef68aeca3fb09f8f56a0abf041a987d57e2469310da8cd16f2352b2af5077c SHA512 dbf7991b404cc371575e5d8c40f438bbead8bfef5c73dfd3b7295d64f800892c1f220a6eff8cc67d99ca4bec819bf1b69e37f85873ec372dca9bdd42542fa320
|
||||
EBUILD hsa-ext-rocr-1.1.9.122.ebuild 1164 BLAKE2B 67d0c94771839eaa85402e250703840df8a68c903f4af21131adf52dc53693f529d173a6c19b24602f1a4057fad2f8585181abfe6ee777e39d52fe618152b239 SHA512 117cfb178987ee5e0b06120790d6a44353902296aab1902172f2a3647fad08b8c776ad61ac5fe897efed634bf35b6bf8783afa3b3eb43e0676d057d5121679c7
|
||||
EBUILD hsa-ext-rocr-1.1.9.139.ebuild 1164 BLAKE2B 4d8a5b0f3c2b7b1775299e99193caf6a72c3320f124cc46bd6689d98ca1391e876712f50fdeb47f286dac604c2a7a783013518f79ad342f9945b1ebaa323ca29 SHA512 74d468c806a0908c3cd078222b9010c04400f62a25eb3091bcbc4d798ab796e17010968836074e5fe894ccf3826c5b103c4a84356454c6a3b4a69929ba61eff0
|
||||
EBUILD hsa-ext-rocr-1.1.9.122.ebuild 1139 BLAKE2B 335b3fb167590be839f0de7751d56b887a00d41ded76456de2194f87996aa27e36a9bebe5f1e190ec8f679f85cb54264dcbfc41d05d59d156e27f0476826788a SHA512 1fc174632d070ff33879a6f593dd878aba4782360b613583a1145aeedd44a921c84dd2e04e47d3c969fc1127310631259b82a9e8dd5b215dc6fc3eace98311a9
|
||||
EBUILD hsa-ext-rocr-1.1.9.139.ebuild 1138 BLAKE2B a7d645cd5d5075abdf816700ffbd799d2db700defb24a31253eec6abc0169efe227a699f55014b0171bed0e9f82fe1a375383450196e23357e6080f0698376ae SHA512 de50397b1865d7d34ab171f78b7abe2d63f198201d3be6d6387abe361a3bcace3e8f73abb7705774fbd489a1f7be185ad3d9502e5f3c5ef5c454e1ab69bfa4d6
|
||||
MISC metadata.xml 804 BLAKE2B 53bf694f8db04562ed3dcde4ed009a447f913d545012b511d0321d230ed9110ab73da69c2b5ac295eea48a705a8defb4409326d4f4001727139ce3ce2b7b699f SHA512 9f1c2af7864205799b5b2f36be15148de6b0d3ebe8fa6f1ca578abcf5fa6c4b08b24082a2a32e93fce71de25756c7644989b51e63b765516ad63f63a5eb880b3
|
||||
|
@ -1,5 +1,7 @@
|
||||
DIST libunibreak-4.0.tar.gz 629403 BLAKE2B 067d09bd48c5381ebef1f3a0ca488732e216234e45977d5c2eee181c9c98b435a7e4030fb5bdbd83035a7937c2107ec05f78dc33158ec64297511d24e329f03d SHA512 43da73f66fabd8fdef444c5a06ad1800464a0aeab590938522d6c19973950a242f2ccc0575a93d10d87bdcf82610452117ac081ddb73f47271a8c2a65897e11c
|
||||
DIST libunibreak-4.1.tar.gz 642497 BLAKE2B 79a09cc19e72bcf98605f3c49649c2d0753774825e737e0682ff4b67d4908be748b81b6ba79827ccc2032b7c5284fc2dd932d61d6775cae841888d6ee4a77b70 SHA512 f02a94b1c1757c0321f112ef9b44a17fc9f73c9ec6041f263bb55fe8ec44e5599c6061c4e1f6f92ca9069b282e5a8e40d90dcceaf04b6e2ed6ae948f104e1ce2
|
||||
DIST libunibreak-4.2-1.tar.gz 643399 BLAKE2B 620e904113730078a8e74a09594b9e18c63768a926df433b4a251767fd492ae11c0954e97a4d94db577956a621f075bc6743535bdc67f9c5151243f304b33bf4 SHA512 26bbff1203dde9ffdc2b9046727ab7698f5693c1eb898c819ee83d0c97fbfd32b9dc7c4406dea29fff6642b2678fee74a1307aa5c9c3279f65484eb080ae1e2d
|
||||
EBUILD libunibreak-4.0.ebuild 1271 BLAKE2B c5f7d7a51ea9c2b7ff881ba8fcd0381f6f35671d6758ab17486d0311cd29d686fbb78ccc23190aa3952fb84fc45c6a4646cc8dce57670df40eeb7967a1c23000 SHA512 d47e18f51abc0f7497dfc97ed4cc81a3ef9b33c106687cc94d4954fb3987089cb37a0958d79ccc239b8fcaead0cfb32ccdf42b299ec292b532f09c1dd6438c66
|
||||
EBUILD libunibreak-4.1.ebuild 1232 BLAKE2B 47504972e021c99175e799f3a306ba130c031da7b92be3f31aa0138d98efffe6cfdd7609027f989bc7cf278e64bc457efca0bff9b3580a802f921c69ed04852f SHA512 68b7674d00f517183383124702a51de40ce2f0d06992f29e1965e0cb55c74444ed8ef6b4c268839cd7a0ab123d47ce878adcb4fdb7a4816ef1d646abeb82af27
|
||||
EBUILD libunibreak-4.2.ebuild 1233 BLAKE2B b85936fcba3579d376ea3ff9657a1d64460cce6e9d26a8d8f6c7ea3e5edc52575f56ae25cbcbe1816df4baa40d56d605cef07c57e278c8b980b0fa899f3f7f0a SHA512 d2b80e682602a2fb8daccaf15a873db4352307825ab9ded6d88e8013ae62c9bbf8d9bb7fa2931fc294b7efcfd03701acde2f2efbd390f2b6ff4b21b72e031ada
|
||||
MISC metadata.xml 614 BLAKE2B 9a68d6b1935c236312fb74a18fe8d417c8e11970be97aad071d04b5a2c57cd18df55e2b48a855ff81a3287636af6afb4abf1ab0fa84c6391c013500f65585061 SHA512 bb9c9c2b2264cbb2c7596146c1be2b51a1e0d710432b86b3f68dd7fe9832abe7aa68ffe7806e58b6e4d044d269f86a533b1b9bc437eb5cb80bac39027989e62d
|
||||
|
@ -0,0 +1,55 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
DESCRIPTION="Line and word breaking library"
|
||||
HOMEPAGE="http://vimgadgets.sourceforge.net/libunibreak/"
|
||||
SRC_URI="https://github.com/adah1972/${PN}/releases/download/${PN}_$(ver_rs 1- '_')-1/${P}-1.tar.gz"
|
||||
|
||||
LICENSE="ZLIB"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~ppc ~x86"
|
||||
IUSE="doc +man static-libs"
|
||||
|
||||
# Tests require internet access to www.unicode.org
|
||||
RESTRICT="test"
|
||||
|
||||
DEPEND="man? ( app-doc/doxygen )"
|
||||
RDEPEND="!dev-libs/liblinebreak"
|
||||
|
||||
src_prepare() {
|
||||
if use man; then
|
||||
echo 'GENERATE_MAN=YES' >> Doxyfile || die
|
||||
echo 'GENERATE_HTML=NO' >> Doxyfile || die
|
||||
fi
|
||||
default
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
econf $(use_enable static-libs static)
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
default
|
||||
if use man; then
|
||||
doxygen || die 'doxygen failed'
|
||||
pushd "${S}"/doc/man > /dev/null
|
||||
mv man3 x || die
|
||||
mkdir man3 || die
|
||||
for h in graphemebreak linebreak linebreakdef unibreakbase unibreakdef wordbreak; do
|
||||
mv x/${h}.h.3 man3/ || die "man ${h} not found"
|
||||
done
|
||||
rm -rf x || die
|
||||
popd > /dev/null
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
use doc && HTML_DOCS=( doc/html/. )
|
||||
default
|
||||
find "${D}" -name '*.la' -delete || die
|
||||
if use man; then
|
||||
doman doc/man/man3/*.3
|
||||
fi
|
||||
}
|
@ -1,5 +1,7 @@
|
||||
DIST libzia-4.18.tar.gz 623928 BLAKE2B ff7f4873f77c1782bc704ff11f0fcdc2a479404cf0719d9156fad2ad01634241f7f556699d778fbd6e3f4bfe108b1735c65def859d56cefcedd6a3c760200a14 SHA512 7d4287cf6804ae757d6c96c03fd948db1bf0b5463d345929b2c8dd4540e66b45849a8096500576199fa650b63b892ea17c976338b88e9310d64f804fa3920489
|
||||
DIST libzia-4.19.tar.gz 623995 BLAKE2B 55bc17854614af92873059e741179d9bc4f35000c4fc29cdd56854b85cf059d422ec49cee9d07056cf8fd18f7a6bf15aeb98a3f3dcbee44420ca1862175d3938 SHA512 65b7cb87740a3288c186f30a10d29824f2b725e54290d4c56ebfd9aa6902ff2e1e48725ed35e3ff5c2d144ccd6a20384df470c1b615c99da8a14c7e0647b0f6a
|
||||
DIST libzia-4.20.tar.gz 624009 BLAKE2B f0342c144c3e0b9dd7720466b24d79632de6dc8597786ba22acccd4eee20cdfb4f941da5717fde27a7ee0097f4f57b20a93455c123fd518916c1552cab801bc2 SHA512 0780eb791fdd85778a074eddab933650d4fbb09a9b441432cf6e63fe97978d47c75155caa251820f283badb16ffa5ac2d323b1f98ab5864caaa020511ff856d5
|
||||
EBUILD libzia-4.18.ebuild 719 BLAKE2B e89d28fdf28d1405fc39d7eabf559a3dd3493cc1436752fecfb4e73386ba4c73b88907736ea9b1f107325c2bce071b696f84e2f880ea2c4df4535ca57b6a9ca1 SHA512 0c6653c16bbb1136bccc3e6d672de98c64a7695dcb8a38ddb7acf93c0d1b61449519cc0386ffc270f99155ea451c95ad6befde6f3772e639c1b8f0a2dd2deaf8
|
||||
EBUILD libzia-4.19.ebuild 721 BLAKE2B 6f33ec501f2f24c9d27a0f2ee655c526bc4e758f4febec914f8f12809b687748bbb1238490e3fc3e0ab596d8a8ddd06010fb5e98c18e3ea7abc6a38e9442689a SHA512 6c4dfdfae0bf2dc34d8d237bf25767a22739ccc6350e25bf88a4ce82c48b96fcbd0b8b5d0f668d41319ba6d029fbf5c192db8a3c82a37a35249d120ada340ea3
|
||||
EBUILD libzia-4.20.ebuild 721 BLAKE2B 6f33ec501f2f24c9d27a0f2ee655c526bc4e758f4febec914f8f12809b687748bbb1238490e3fc3e0ab596d8a8ddd06010fb5e98c18e3ea7abc6a38e9442689a SHA512 6c4dfdfae0bf2dc34d8d237bf25767a22739ccc6350e25bf88a4ce82c48b96fcbd0b8b5d0f668d41319ba6d029fbf5c192db8a3c82a37a35249d120ada340ea3
|
||||
MISC metadata.xml 451 BLAKE2B 539464597b5fcacdf3701b1400a6ea8725e46164b768c129d98a0ca37e1edba4c90c619ff7138988cbcf0136201f723327d1fe561179181a30709e2977730255 SHA512 4551ac2be822a0d0bcc9952d3c62f995b705f68b15c8fa86dc263b68d93619705aa70a9518bf78c8a509a246ffdd7301f7b64f924781ae285a081c86fe0b4773
|
||||
|
@ -0,0 +1,38 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
inherit autotools
|
||||
|
||||
DESCRIPTION="platform abstraction code for tucnak package"
|
||||
HOMEPAGE="http://tucnak.nagano.cz"
|
||||
SRC_URI="http://tucnak.nagano.cz/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="ftdi"
|
||||
|
||||
RDEPEND="dev-libs/glib:2
|
||||
x11-libs/gtk+:2
|
||||
media-libs/libsdl
|
||||
media-libs/libpng:0
|
||||
ftdi? ( dev-embedded/libftdi:0 )"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
virtual/pkgconfig"
|
||||
|
||||
MAKEOPTS+=" -j1"
|
||||
|
||||
src_prepare() {
|
||||
eapply_user
|
||||
sed -i -e "s/docsdir/#docsdir/g" \
|
||||
-e "s/docs_/#docs_/g" Makefile.am || die
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
econf \
|
||||
$(use_with ftdi) --with-sdl \
|
||||
--with-png --without-bfd
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue