diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2018-03-02 15:59:12 +0000 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2018-03-02 15:59:12 +0000 |
commit | 06a7b5647e11a8ddf69b1c3d3ded6a8ba28b923e (patch) | |
tree | 8d58c1f4b049da677b33209b072f2b3057268fe0 /dev-db | |
parent | 99abbc5e5a6ecd3fc981b45646fd8cb5d320377b (diff) |
gentoo resync : 02.03.2018
Diffstat (limited to 'dev-db')
43 files changed, 4224 insertions, 876 deletions
diff --git a/dev-db/Manifest.gz b/dev-db/Manifest.gz Binary files differindex 2eaa71e0b07b..e94993c7dca4 100644 --- a/dev-db/Manifest.gz +++ b/dev-db/Manifest.gz diff --git a/dev-db/etcd/Manifest b/dev-db/etcd/Manifest index 27dfeae8098b..085c200373ab 100644 --- a/dev-db/etcd/Manifest +++ b/dev-db/etcd/Manifest @@ -13,5 +13,5 @@ EBUILD etcd-2.3.8.ebuild 1379 BLAKE2B a6bff7dcfef244a2de25f4bf9168eb41552e394edf EBUILD etcd-3.2.14.ebuild 1475 BLAKE2B 4cbf762bd7dc082d11b4ef984e27673921a5a44e7cec9f8284d1feda234662352497512edc84c2ba9c29b743b481a9f06fe8b32b14695273d8fa97956e460e76 SHA512 dc2cab07f90c4c181b0453b7a15b66df3c270c63872843317838d29b985a0c9a0905b7ce0a054df2015991337bccdee7bfc920e599b17142e231f0a0aa8d9f5c EBUILD etcd-3.2.15.ebuild 1475 BLAKE2B 4cbf762bd7dc082d11b4ef984e27673921a5a44e7cec9f8284d1feda234662352497512edc84c2ba9c29b743b481a9f06fe8b32b14695273d8fa97956e460e76 SHA512 dc2cab07f90c4c181b0453b7a15b66df3c270c63872843317838d29b985a0c9a0905b7ce0a054df2015991337bccdee7bfc920e599b17142e231f0a0aa8d9f5c EBUILD etcd-3.3.0.ebuild 1505 BLAKE2B 389577b47be34dd34de648fdd0cf036973374685577a284ee09459b2b25adb5590f84d88cf5057d43508e0fd7f6925e1d65a86a2714ebb09fcc4991f21895f9c SHA512 c1212aa97afdaf6afe85524c515fdb545934ce52a84a599c55b8212f209a2433639dd5579e2edf06f0c1966a59707e7094146791e3ef9d3b8947dd0f01b2bfeb -EBUILD etcd-3.3.1.ebuild 1576 BLAKE2B 12f9a212574f9d465d9282d535095a810f0d3b3a258f1d011840008929053bc79e41e4b790af570130ab9fdd416a8e9fdc470a3e50a631ea51b2525db792a4ef SHA512 79c9f82c17696c3331f8fd795117b04f88b6e39495d5ef20ca9ce364f763d69bb2d5a0527b3d3c7dbe3901968e33462dd7587465414d21bc93b8d9a47a7ba529 +EBUILD etcd-3.3.1.ebuild 1603 BLAKE2B ecc2eb8cd86fb1ca37d6fd7eecde005fcc3c633bc7569ce54acc5daf947b4be2cc88e596ada2c1e8a7b3d40d44273a143f80b26a2cbb8e851ad8d36b6fcb4beb SHA512 83a23179d8381a126fde6d9e9c521170b3148b78773421893175a81fb48d8b980e93309cc5c40d8993b9039fadc7d75a2ecc03fdc5186d5ba84ac71826dfe68d MISC metadata.xml 679 BLAKE2B 7374379a18107011df792be631428834334ad8e6da5cfe404f18555e8c168d3fc716a1c8d6cb5cf1d9ccd173737aecf93a165f846865dbb6ba4a76bd4669b446 SHA512 8070d8b51dd3319e8b159072db237dcc5299361c2f74fa086fc4cbc174cc6a5c8f7659310332b54b2275e2bc3d028323c4dfa5775e21693a339f54312582d2f0 diff --git a/dev-db/etcd/etcd-3.3.1.ebuild b/dev-db/etcd/etcd-3.3.1.ebuild index 7ec5b9eda5c9..88b1e478fe0a 100644 --- a/dev-db/etcd/etcd-3.3.1.ebuild +++ b/dev-db/etcd/etcd-3.3.1.ebuild @@ -24,8 +24,10 @@ src_prepare() { } pkg_setup() { - enewgroup ${PN} - enewuser ${PN} -1 -1 /var/lib/${PN} ${PN} + if use server; then + enewgroup ${PN} + enewuser ${PN} -1 -1 /var/lib/${PN} ${PN} + fi } src_compile() { diff --git a/dev-db/kyotocabinet/Manifest b/dev-db/kyotocabinet/Manifest index 6b4d651241ec..a6de3b9c0f40 100644 --- a/dev-db/kyotocabinet/Manifest +++ b/dev-db/kyotocabinet/Manifest @@ -3,5 +3,5 @@ AUX kyotocabinet-1.2.76-configure-8-byte-atomics.patch 1250 BLAKE2B 882c4897a406 AUX kyotocabinet-1.2.76-flags.patch 894 BLAKE2B 50efb4b21f0101a942eb758213cf703460056a951617298057567d08b116c7e0a631d631eace992ff447bed5b74940d2b60a8adad373cb77fe42b8c40bfcc9fd SHA512 60a15c54994a5f338cf168feb831d858fdd2cadd16ea0c8001ef652e8502797f5920d3fed0a3ec4a6a2d817381b4690410878a18c7c859df34e26b033f48fe03 AUX kyotocabinet-1.2.76-gcc6.patch 289 BLAKE2B 5f2c972bf3f789c4573206dcb5fa2d1d21e50c16bc90889a978979f875e0597f48fba56cc9558c2f11202ab892d09f02c3b3d0c4bdc42e64857170a48d2797eb SHA512 755fe06635309139d55d1ede2e5ec30e37867501ead68abd3218c59ea016b72c9aa4d7d4072e15b53d22755606949dfaafa7b283d33a821d280fe7791ee8ff10 DIST kyotocabinet-1.2.76.tar.gz 951930 BLAKE2B 7d2b5e5c85e0a6f90c88cd3b6e1b41588dffeaa2a404aa2c83281e033fe4e1275fbbc15584d4998e97f166c5060ce43c9cee9567121edbe1f72a0d5f52f42b40 SHA512 278db7b327eb4c21bf0137d9aa14fb67d74d5ce7ed1cb29fc9120d157a60de165ec0cf842903eb7952e8f998045ae585b958977fa973ba0e0773381de71d9f6a -EBUILD kyotocabinet-1.2.76-r1.ebuild 1291 BLAKE2B 99c48977b39ee66f630c69cb979c4fd3c8b73e0cf794958b7bdb4dcadc3f21c7064779b4dfece5a6c15d6c4a3d554ca281ab4d57bcd143197cca5a37015602ad SHA512 1b56fd8c64a5263e888b5ff69b000cfa6ae849fa6c2d5b3f3cbbc1c876f8721b1f5579e3661203b8e942af7647534f8b4c75d0d77be5b3672f2b12f56ff0cef3 +EBUILD kyotocabinet-1.2.76-r1.ebuild 1303 BLAKE2B 954835d514861e8edbe904a1790ed7055544124067d7e32bd31223d356d5868e53a7202684f7ca31a73b3ee63217799951650cd70af89e63e8c3fa9f5488f09e SHA512 15c487eb5187114b7fad05871b98d7f482e89ed154d36f0d939f138f9fdd347900225a48f43294f7334b48febf4ec52a8df2cbf6da2f041345a419394f3d36f6 MISC metadata.xml 247 BLAKE2B 5a20af3c9732ef7dba68131a08988652f5c93a6d186a82c4deb1bb9c06dc3ae73152a0d241cc346637f7b11caf4676da43301ba596c67b66669535e71db0b03e SHA512 29cf52c16b0cce69899d9c2da8acd9144b7d760442aa323b854dceadb42459e009545193b1df7911ac2241b59f4819b4a6bb1d206d6f57953f770031433bb6b7 diff --git a/dev-db/kyotocabinet/kyotocabinet-1.2.76-r1.ebuild b/dev-db/kyotocabinet/kyotocabinet-1.2.76-r1.ebuild index e17656c63b05..10a38d4b7dd4 100644 --- a/dev-db/kyotocabinet/kyotocabinet-1.2.76-r1.ebuild +++ b/dev-db/kyotocabinet/kyotocabinet-1.2.76-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2017 Gentoo Foundation +# Copyright 1999-2018 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -11,7 +11,7 @@ SRC_URI="${HOMEPAGE}pkg/${P}.tar.gz" LICENSE="GPL-3" SLOT="0" -KEYWORDS="~alpha amd64 ~arm64 ~hppa ~ia64 ~ppc ppc64 x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris" +KEYWORDS="~alpha amd64 ~arm64 ~hppa ~ia64 ~ppc ppc64 x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris" IUSE="debug doc examples static-libs" DEPEND="sys-libs/zlib[static-libs?] diff --git a/dev-db/mariadb-connector-c/Manifest b/dev-db/mariadb-connector-c/Manifest new file mode 100644 index 000000000000..1d5385670699 --- /dev/null +++ b/dev-db/mariadb-connector-c/Manifest @@ -0,0 +1,4 @@ +AUX gentoo-layout-3.0.patch 311 BLAKE2B 4c2f0ae8aa53d605bcaf134274d3b549ec970b43cc68eed1ac71cf089c9fa32a1343d7ebfdf428e7f25032f5782aecfb86fb8f78528ffc708ab15dc7285a24e7 SHA512 4d5a48b4dd66aab04ba597b30e96b4601c6745acca21be1daf051ba6ce1e8fef1a0efa46d8e81da1ecdc893a8ee471bd8c7ed0c5436ee33b8b4f7cd18fdca1a5 +DIST mariadb-connector-c-3.0.3-src.tar.gz 666928 BLAKE2B 83181949f1867909fd96696ac5cc9d11433a0c772ecb97d862983916b235d380fd84462d547faf42756d6698dd9dbe7dcd4d6b1d0f6336e147f5a597108ea025 SHA512 6da66a32165cb74b106bf94e13a35d4bb38f05e5d2b3ff3740862dfc0892a7705977c1394b4f84b8e1f1e50a59a3fadbc62e7733b1feb532c6368a9fc262db04 +EBUILD mariadb-connector-c-3.0.3.ebuild 3141 BLAKE2B ade6f9363295ddef7af954c942ea1c01ec22bee929e66e88bbfe290161d747ba7343cc27aac9b7c21d6b5e40b45ea4c635fea5d0b7ab5e6ba3db85540082b6db SHA512 a3bb99719e1ff0c12dfcff46ad448588d1476bcb23d8fb34ecd42dedae8f082aa5697209cbffed5d209930e88de9ab71bb8ac225bad4aec7e5d92d0f71442985 +MISC metadata.xml 324 BLAKE2B fab5394015cd337683f65a257556ed0f15e35826bb0a6ce75a7033cd5931455ff2bed527064d698e9b3165f2cfcaff8a4bdfcad0b830482ae2e4389a79d529fb SHA512 1fe9e5d5d9f8e817ce49117fbcc6a6d706a090752606647496f2b7a25de51bfb641a408ff0cdaf626d83eb5c314d2e28c3f29532307d942cb41498edf4b44aa6 diff --git a/dev-db/mariadb-connector-c/files/gentoo-layout-3.0.patch b/dev-db/mariadb-connector-c/files/gentoo-layout-3.0.patch new file mode 100644 index 000000000000..b57b7abc03b4 --- /dev/null +++ b/dev-db/mariadb-connector-c/files/gentoo-layout-3.0.patch @@ -0,0 +1,9 @@ +--- a/mariadb_config/CMakeLists.txt 2016-02-12 21:21:06.981021227 -0500 ++++ b/mariadb_config/CMakeLists.txt 2016-02-12 22:06:02.397130410 -0500 +@@ -40,5 +44,5 @@ + # Installation + # + INSTALL(TARGETS mariadb_config +- DESTINATION "bin" ++ DESTINATION ${INSTALL_BINDIR} + COMPONENT Development) diff --git a/dev-db/mariadb-connector-c/mariadb-connector-c-3.0.3.ebuild b/dev-db/mariadb-connector-c/mariadb-connector-c-3.0.3.ebuild new file mode 100644 index 000000000000..3c9ba19abfbd --- /dev/null +++ b/dev-db/mariadb-connector-c/mariadb-connector-c-3.0.3.ebuild @@ -0,0 +1,111 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +VCS_INHERIT="" +if [[ "${PV}" == 9999 ]] ; then + VCS_INHERIT="git-r3" + EGIT_REPO_URI="https://github.com/MariaDB/connector-c.git" + KEYWORDS="~hppa ~ia64" +else + MY_PN=${PN#mariadb-} + MY_PV=${PV/_b/-b} + SRC_URI="https://downloads.mariadb.org/f/${MY_PN}-${PV%_beta}/${PN}-${MY_PV}-src.tar.gz?serve -> ${P}-src.tar.gz" + S="${WORKDIR}/${PN}-${MY_PV}-src" + KEYWORDS="~amd64 ~hppa ~ia64 ~x86" +fi + +inherit cmake-utils multilib-minimal toolchain-funcs ${VCS_INHERIT} + +MULTILIB_CHOST_TOOLS=( /usr/bin/mariadb_config ) + +MULTILIB_WRAPPED_HEADERS+=( + /usr/include/mariadb/mariadb_version.h +) + +DESCRIPTION="C client library for MariaDB/MySQL" +HOMEPAGE="http://mariadb.org/" +LICENSE="LGPL-2.1" + +SLOT="0/3" +IUSE="+curl gnutls kerberos libressl mysqlcompat +ssl static-libs" + +DEPEND="sys-libs/zlib:=[${MULTILIB_USEDEP}] + virtual/libiconv:=[${MULTILIB_USEDEP}] + curl? ( net-misc/curl:0=[${MULTILIB_USEDEP}] ) + kerberos? ( || ( app-crypt/mit-krb5[${MULTILIB_USEDEP}] + app-crypt/heimdal[${MULTILIB_USEDEP}] ) ) + ssl? ( + gnutls? ( >=net-libs/gnutls-3.3.24:0=[${MULTILIB_USEDEP}] ) + !gnutls? ( + libressl? ( dev-libs/libressl:0=[${MULTILIB_USEDEP}] ) + !libressl? ( dev-libs/openssl:0=[${MULTILIB_USEDEP}] ) + ) + ) + " +RDEPEND="${DEPEND} + mysqlcompat? ( + !dev-db/mysql[client-libs(+)] + !dev-db/mysql-cluster[client-libs(+)] + !dev-db/mariadb[client-libs(+)] + !dev-db/mariadb-galera[client-libs(+)] + !dev-db/percona-server[client-libs(+)] + !dev-db/mysql-connector-c ) + !>=dev-db/mariadb-10.2.0[client-libs(+)] + " +PATCHES=( + "${FILESDIR}/gentoo-layout-3.0.patch" ) + +src_prepare() { + local gpluginconf="${T}/gentoo-plugins.cmake" + touch "${gpluginconf}" || die + # Plugins cannot be disabled by a build switch, redefine them in our own file to be included + if ! use kerberos ; then + echo 'REGISTER_PLUGIN("AUTH_GSSAPI" "" "auth_gssapi_plugin" "OFF" "auth_gssapi_client" 1)' \ + >> "${gpluginconf}" || die + fi + if ! use curl ; then + echo 'REGISTER_PLUGIN("REMOTEIO" "" "remote_io_plugin" "OFF" "remote_io" 1)' \ + >> "${gpluginconf}" || die + fi + cmake-utils_src_prepare +} + +src_configure() { + # bug 508724 mariadb cannot use ld.gold + tc-ld-disable-gold + multilib-minimal_src_configure +} + +multilib_src_configure() { + local mycmakeargs=( + -DWITH_EXTERNAL_ZLIB=ON + -DWITH_SSL:STRING=$(usex ssl $(usex gnutls GNUTLS OPENSSL) OFF) + -DWITH_CURL=$(usex curl ON OFF) + -DAUTH_GSSAPI_PLUGIN_TYPE:STRING=$(usex kerberos ON OFF) + -DINSTALL_LIBDIR="$(get_libdir)" + -DINSTALL_PLUGINDIR="$(get_libdir)/mariadb/plugin" + -DINSTALL_BINDIR=bin + -DPLUGIN_CONF_FILE:STRING="${T}/gentoo-plugins.cmake" + ) + cmake-utils_src_configure +} + +multilib_src_install() { + cmake-utils_src_install + if use mysqlcompat ; then + dosym libmariadb.so.3 /usr/$(get_libdir)/libmysqlclient.so.19 + dosym libmariadb.so.3 /usr/$(get_libdir)/libmysqlclient.so + fi +} + +multilib_src_install_all() { + if ! use static-libs ; then + find "${D}" -name "*.a" -delete || die + fi + if use mysqlcompat ; then + dosym mariadb_config /usr/bin/mysql_config + dosym mariadb /usr/include/mysql + fi +} diff --git a/dev-db/mariadb-connector-c/metadata.xml b/dev-db/mariadb-connector-c/metadata.xml new file mode 100644 index 000000000000..9c4d844e8798 --- /dev/null +++ b/dev-db/mariadb-connector-c/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer type="project"> +<email>mysql-bugs@gentoo.org</email> +<name>MySQL</name> +</maintainer> +<use> +<flag name="mysqlcompat">Enable mysqlclient library symbolic links</flag> +</use> +</pkgmetadata> diff --git a/dev-db/mariadb/Manifest b/dev-db/mariadb/Manifest index 3a611668eb14..cf31dd534877 100644 --- a/dev-db/mariadb/Manifest +++ b/dev-db/mariadb/Manifest @@ -16,6 +16,7 @@ DIST mariadb-10.1.31.tar.gz 67982786 BLAKE2B 1fabbea67345024157be4be34a50c4e9c73 DIST mariadb-10.2.10.tar.gz 72388999 BLAKE2B 8d9188672b9250d47859fb0c050eb22b31b99046cf70aac334e26bc34759a73f1f4ab60c5d0437e113e21b213492202d5b5950337ba09590308bbb2bb9179581 SHA512 39c198009f8b19f4a08226ef9842b50e24636580b67c1c92d59c61cce3aa1edbd466e253c281dfcdfc58ab573ae9a59aaacb0ce3e8b82222043ddd849fc3e239 DIST mariadb-10.2.11.tar.gz 72772830 BLAKE2B b3cd346ed1e032ed61e4499e1e6fb2adb0f0e959c296917fb55240922904872cb5d7836be8ee0ed744a753d1ae6310e537f4366209e0ce0627073b68076fe2d7 SHA512 4041ee1f1e266e8b30f85b19c5c95bcb626f965df9e0e20eb801598cc7fc5f5f37906e8a75cc86d373aa642adcccf3b75a0e67994e18908fb733cc6520d04a44 DIST mariadb-10.2.12.tar.gz 72818636 BLAKE2B 50a72b8096ae8bd5dc635352fc35d22322a0d7cf415e45883898307050ec547a79c66d51ab0ce311f1895eb178afeb49664fb434af77f9ff2b9aedef0aea85bc SHA512 8d3d3c84d4a01d6047e4f2b6802eb802e1f6a7b0e10e981c7ef9fdd27a5a25baab0af47a21b8637f4cbb9d21ef3bcc85097c5fdb8745c2a79040ab87fecb5a7b +DIST mariadb-10.3.5.tar.gz 70945381 BLAKE2B 10f5f08a64b3d046f8255a5ea9bb1661b7a88d130b0a89b41c8f98abbe3c04cc13154e1ad6c012ef97a396f055ca5d748998f1e7d6dc89ca73a3b61f70749457 SHA512 e7f2ffd38da4e4dbd214bc97e30216682b6f8ca368bcbd5717fb408a6110f26da4472cd7ac0d288c817eb9c6426a063cff8d582e03fe8a1219c0d70508e5a004 DIST mariadb-5.5.58.tar.gz 45784323 BLAKE2B 57c51cf2e4574259acabb676c9aead1adfbaa0fe5cade08a41d6896089c27d401dab67598d58a00be44fe30f18d0c2252f3e4208c51508c7a20f0e5689cccf15 SHA512 c5c8b52c613a1a3f30de2cd1d8e390f8110b0891af78ee2a24ef2c4b7b8c5f2e140970ca89865e8277e7486dbfd0ad01c1fdbf8791c67a9793392247d68fec63 DIST mariadb-5.5.59.tar.gz 45804920 BLAKE2B e24792cb5427e2c3254e83cfa355b8cf4350bc488b2477daa4ef4ee41d3c33c7d0b124eb9a615ccbccec693313fd83e3f13f633cc08ea725b78b179cc813f809 SHA512 facebe62cb9b55518fe669b65f939974aa33c308983c4c3ab6897fb500ec10aa407489e936e56d1269ea5e533655c4be8d0b5d78b3eeb3882ce1b96113a66afe DIST mysql-extras-20160721-1526Z.tar.bz2 301788 BLAKE2B 23ef75d0122e9e18382f708a86c61624e0437fad593b7f02ccb2b3939d710404e18e3b70617ed400e5f6947d3a92d2867a5f7d98bf61597442e99989f60ca4f7 SHA512 c7450039780e4e2684c932ba7c291c1de25dd1a64e4c6e88aa13b790768b4100955f36ae4a3bf983569ea23b43be02da6dad3d5985c1163ec9e8aa91f0efd85d @@ -24,6 +25,7 @@ DIST mysql-extras-20170316-1355Z.tar.bz2 308933 BLAKE2B e515f5926a0cbba86fdaaa92 DIST mysql-extras-20170830-1210Z.tar.bz2 312079 BLAKE2B 821451c88ee812d6debed56f62102824370568999d16a469830c3ed84e9eb1aec7f823c8a422db60c9a74d20f19581178fc06ee0a483a6ea31ef408a882a8db6 SHA512 55553de3bb93b09c29ff411c135ff2762edad3498d9e8fb844df349ce8ab864969668f2bbc3ba99e2217cc20f1c9155443794c301ca064d09a1b45ddead567c8 DIST mysql-extras-20170926-1321Z.tar.bz2 312466 BLAKE2B 3e3e19a905961570cea9c1eb14dec3780da80409e996b1aeddb08625da875f5d08798a862cb1b80566b0d8be0d9ec2aab0a390ca90f991203c9871538b11f00a SHA512 556e782ccc40d8cffb2fde8c46038c90023440c07785ec667f898afdb8c802faeb4dbfe8b3918a1e563b46d1dc8c0de1172f7843ce08ee1ded435b344f8f0cf5 DIST mysql-extras-20180209-2142Z.tar.bz2 315130 BLAKE2B 4e3b1de9fdbb455f318962dabb4867e1f987fc5e921c9184171d0cca2176306c0153b17d600db809d5f25405edd52079873071ff5fda94fe1ea6f840c575f87e SHA512 d750020428bfff81a4275d92bb19a22804e6f4a3f60153d1fc8a31df40491f4b52d534c6123d2862737443e91d4b76741c7ec8c2aaac17eba481301243718107 +DIST mysql-extras-20180228-1611Z.tar.bz2 317225 BLAKE2B c13eefecbb5518b96390d18c1acdd5d0ee2c74d95952713d3efd047075a5164d45d4792bb4104043333278a93fddb1540443e252a82070d245972640ae7b1dd1 SHA512 cc2b940f3e7a3b988e38fdd8ae54206bf52a489d999a07e65413e042c2fc584f2901b5fca5668ed849eac3e1e70a271a0090efc463c0e99d902dff14aed0294f EBUILD mariadb-10.0.30-r1.ebuild 6874 BLAKE2B f599097904869476a5a30ce264a2c27683ae1c59129bc6c4e4d73d5268fe5788027a2f9056309a9b97fa00881f63b7f8b88560f38272866d0d89767b10f602dd SHA512 370fa3e79b5aea1b89e2136da06a3d7b3a3bcfb49dfdcf030346764fbcee81b4c365e43be6a994e4bc6ad067aba126bd4be66ec94096dca25eb45b8fc0a136bd EBUILD mariadb-10.0.32-r1.ebuild 6755 BLAKE2B a9b5dcfa04719168afdf46a93cd45e0b7a3edf7fbedc931be9b1b6333536516bb743c7c7a7c06b9d4cde59552753affe8a2b39ae32f222681df563c087002968 SHA512 b11371bd98f48a45637ed7d3645a2721a5cd6fc2bff36442c105811d637a6a0462215eea04b1bd81f22d651d8b73384272bf440c43bff9cda8b9414d14cf8e53 EBUILD mariadb-10.0.33.ebuild 6718 BLAKE2B 46e9980c6d4143e621aee1341b88b8021bc80e42faf54f0f7dd8a9c830ba88939a292016cf07c9e39a2c3c2addcd7de6d7724d3404cab8daae4002fa81a98f7f SHA512 f46c1b1e827d283d930ad6a4059b4d3e8f8ab5cf9bbf33c0f985646119b000eca0474f2447d0bf6dd22243b859de2496e29c5b9b862ab3f8610cf5fb3a674bcd @@ -36,6 +38,7 @@ EBUILD mariadb-10.1.31.ebuild 7746 BLAKE2B f701cb24e8c019ee269d14f871ac2b12d04fc EBUILD mariadb-10.2.10.ebuild 32343 BLAKE2B cdc6d67466738598f725ccc6ff8c39ee69923ce787b95097b1d06bc5971b21fd9e8c44f34036792beda3cb6eabfe40bdb1282d3a5432929b92496aff929341ee SHA512 5fa3e3e817811832b940cf857f18d9574ab67be23488b042591ca7c358a844aa755713e0bfa5c481e6fa6c94cbd8585f902fd43dc2dc36adcc7bd53705d51904 EBUILD mariadb-10.2.11.ebuild 32528 BLAKE2B 4fc6c74390c572d2fac693286149078338034c8159dbeb292cd4699753920efce67ae5550868ef9dcddfa73dafad2d4aa9277466d367841eab99afe5f2d187c4 SHA512 df8e91f637b349eab91877de631cdac730629c481c3798b147af135a8609bdb7c3838de530a75b9cb791e609a332653f218642df5937a741f9e2781a4c5bb190 EBUILD mariadb-10.2.12.ebuild 32528 BLAKE2B 4fc6c74390c572d2fac693286149078338034c8159dbeb292cd4699753920efce67ae5550868ef9dcddfa73dafad2d4aa9277466d367841eab99afe5f2d187c4 SHA512 df8e91f637b349eab91877de631cdac730629c481c3798b147af135a8609bdb7c3838de530a75b9cb791e609a332653f218642df5937a741f9e2781a4c5bb190 +EBUILD mariadb-10.3.5_rc.ebuild 32810 BLAKE2B eb95a530e7d77bd70a477448041bc204323bbd48dd8eecd40d57cc15a680279d5b18dc0d90c2bd678ee59cc806ff568c10b2e7ab81095d41c86cda6855b33e00 SHA512 034e7e359367e095aa1592761ffe4f38a1ae6b6cf0fec11e24703918367de9305e48587b0ffd07aceb559dfec013605606e484a9aeb999de9e2f733a70709699 EBUILD mariadb-5.5.58.ebuild 4229 BLAKE2B 1fa5de1698d51777b18e0cca97af44b974eabeb528d5544da25dcb0c7719ba6001626e1b41ac2d1bce6373daa6990b2ce5e1b53f352df578d2f47b4e88235586 SHA512 a458aec6fbd1c69aa8548c784ed07f5a16ef80ec9d19b01d0906ded82724e69dbbcafa023c8f83d73f59987aa47ed638f7b22d3935631c3cc3a216959764e911 EBUILD mariadb-5.5.59.ebuild 4220 BLAKE2B 15d84c6e8405e0f2339a1fa2c1dac8c5cb5d070f083219e5b0b6b6f59b83a5d147f049a7874f4109bea38a295be86f560faa6bf21b8665a2696a9ef4ff09ad08 SHA512 0397ba6f08cdedcb3812b61044d6d58b42db9009747fd1a0af53e450d530b56bbb748ffdd0a9c3de7dc535f9e4566e2513a7ea01fe893f250b9a31fa074de5e1 -MISC metadata.xml 3051 BLAKE2B e74f1014d147e7a392d46b35818c1a12f5fe664fb0e8f2237187b98bd9c54b3de3f1c36b07255efbb072be0315102248837f5b41708d0a9d7fa82e8d9e2c4465 SHA512 e6fd6d89b587b8b1fc29fc6c6c6ef8dbe0ec209a52887468bd047e5813dd5479f6e1217e4d29db0a278caac544c645157721fefe8b3c59e59431eb8a85019a68 +MISC metadata.xml 3172 BLAKE2B 9b546b51359c0881ee5ce452c89e788ff27300471433fb9d1eb28b3f72d47cd84787eac1d7fd536a8133aa56dd4dd9c1139afb4b3e83b463ce12b7d6cb0fa35f SHA512 143381d9443b778b4f8fb5545c6e8ac59e54eaba20458eecb757e292650a1fd5a470ded204f25c173f456cc222bd32f8b9885e00ecb00c9b4abfd639c9e98391 diff --git a/dev-db/mariadb/mariadb-10.3.5_rc.ebuild b/dev-db/mariadb/mariadb-10.3.5_rc.ebuild new file mode 100644 index 000000000000..92161577d865 --- /dev/null +++ b/dev-db/mariadb/mariadb-10.3.5_rc.ebuild @@ -0,0 +1,1002 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" +MY_EXTRAS_VER="20180228-1611Z" +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-minimal + +SRC_URI="https://downloads.mariadb.org/interstitial/${P/_rc/}/source/${P/_rc/}.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="http://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 sst-xtrabackup static static-libs 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 )" + +REQUIRED_USE="jdbc? ( extraengine server !static ) + server? ( tokudb? ( jemalloc !tcmalloc ) ) + !server? ( !extraengine ) + ?? ( tcmalloc jemalloc ) + static? ( yassl !pam )" + +# REMEMBER: also update eclass/mysql*.eclass before committing! +KEYWORDS="~amd64 ~hppa ~ia64 ~x86" + +# 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" +else + MY_PATCH_DIR="${WORKDIR}/mysql-extras-${MY_EXTRAS_VER}" +fi + +PATCHES=( + "${MY_PATCH_DIR}"/20015_all_mariadb-pkgconfig-location.patch + "${MY_PATCH_DIR}"/20018_all_mariadb-10.2.9-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 +) + +# Be warned, *DEPEND are version-dependant +# These are used for both runtime and compiletime +# MULTILIB_USEDEP only set for libraries used by the client library +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.0.0:0=[${MULTILIB_USEDEP},static-libs?] ) + libressl? ( dev-libs/libressl:0=[${MULTILIB_USEDEP},static-libs?] ) + ) + >=sys-libs/zlib-1.2.3:0=[${MULTILIB_USEDEP},static-libs?] + sys-libs/ncurses:0= + mroonga? ( app-text/groonga-normalizer-mysql ) + kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) + !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 ) + numa? ( sys-process/numactl ) + oqgraph? ( >=dev-libs/boost-1.40.0:0= dev-libs/judy:0= ) + pam? ( virtual/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 ) + abi_x86_32? ( !app-emulation/emul-linux-x86-db[-abi_x86_32(-)] ) + 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 ) ) + !<virtual/mysql-5.6-r11 + ${COMMON_DEPEND} + server? ( galera? ( + sys-apps/iproute2 + =sys-cluster/galera-25* + sst-rsync? ( sys-process/lsof ) + sst-mariabackup? ( net-misc/socat[ssl] ) + sst-xtrabackup? ( net-misc/socat[ssl] ) + ) ) + perl? ( !dev-db/mytop + virtual/perl-Getopt-Long + dev-perl/TermReadKey + virtual/perl-Term-ANSIColor + virtual/perl-Time-HiRes ) + server? ( extraengine? ( jdbc? ( >=virtual/jre-1.6 ) ) ) +" +# For other stuff to bring us in +# dev-perl/DBD-mysql is needed by some scripts installed by MySQL +# xtrabackup-bin causes a circular dependency if DBD-mysql is not already installed +PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 ) + !client-libs? ( dev-db/mariadb-connector-c dev-db/mysql-connector-c ) + server? ( ~virtual/mysql-5.6[static=] + galera? ( sst-xtrabackup? ( || ( >=dev-db/xtrabackup-bin-2.2.4 dev-db/percona-xtrabackup ) ) ) )" + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]] ; then + local GCC_MAJOR_SET=$(gcc-major-version) + local GCC_MINOR_SET=$(gcc-minor-version) + if use tokudb && [[ ${GCC_MAJOR_SET} -lt 4 || \ + ${GCC_MAJOR_SET} -eq 4 && ${GCC_MINOR_SET} -lt 7 ]] ; then + eerror "${PN} with tokudb needs to be built with gcc-4.7 or later." + eerror "Please use gcc-config to switch to gcc-4.7 or later version." + die + fi + # Bug 565584. InnoDB now requires atomic functions introduced with gcc-4.7 on + # non x86{,_64} arches + if ! use amd64 && ! use x86 && [[ ${GCC_MAJOR_SET} -lt 4 || \ + ${GCC_MAJOR_SET} -eq 4 && ${GCC_MINOR_SET} -lt 7 ]] ; then + eerror "${PN} needs to be built with gcc-4.7 or later." + eerror "Please use gcc-config to switch to gcc-4.7 or later version." + die + fi + fi + java-pkg-opt-2_pkg_setup + if has test ${FEATURES} && \ + use server && ! has userpriv ${FEATURES} ; then + eerror "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root." + fi + + # This should come after all of the die statements + enewgroup mysql 60 || die "problem adding 'mysql' group" + enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user" +} + +pkg_preinst() { + java-pkg-opt-2_pkg_preinst + + # Here we need to see if the implementation switched client libraries + # We check if this is a new instance of the package and a client library already exists + local SHOW_ABI_MESSAGE libpath + if [[ -z ${REPLACING_VERSIONS} && -e "${EROOT}usr/$(get_libdir)/libmysqlclient.so" ]] ; then + libpath=$(readlink "${EROOT}usr/$(get_libdir)/libmysqlclient.so") + elog "Due to ABI changes when switching between different client libraries," + elog "revdep-rebuild must find and rebuild all packages linking to libmysqlclient." + elog "Please run: revdep-rebuild --library ${libpath}" + ewarn "Failure to run revdep-rebuild may cause issues with other programs or libraries" + fi +} + +pkg_postinst() { + # Make sure the vars are correctly initialized + mysql_init_vars + + # Create log directory securely if it does not exist + [[ -d "${ROOT}${MY_LOGDIR}" ]] || install -d -m0750 -o mysql -g mysql "${ROOT}${MY_LOGDIR}" + + if use server ; then + if use pam; then + einfo + elog "This install includes the PAM authentication plugin." + elog "To activate and configure the PAM plugin, please read:" + elog "https://mariadb.com/kb/en/mariadb/pam-authentication-plugin/" + einfo + fi + + if [[ -z "${REPLACING_VERSIONS}" ]] ; then + einfo + elog "You might want to run:" + elog "\"emerge --config =${CATEGORY}/${PF}\"" + elog "if this is a new install." + elog + elog "If you are switching server implentations, you should run the" + elog "mysql_upgrade tool." + einfo + else + einfo + elog "If you are upgrading major versions, you should run the" + elog "mysql_upgrade tool." + einfo + fi + + if use galera ; then + einfo + elog "Be sure to edit the my.cnf file to activate your cluster settings." + elog "This should be done after running \"emerge --config =${CATEGORY}/${PF}\"" + elog "The first time the cluster is activated, you should add" + elog "--wsrep-new-cluster to the options in /etc/conf.d/mysql for one node." + elog "This option should then be removed for subsequent starts." + einfo + 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 appropitate section headers, i.e. [mysqld]." + einfo +} + +src_unpack() { + + # Initialize the proper variables first + mysql_init_vars + + 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() { + java-pkg-opt-2_src_prepare + if 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 + + # 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" + + if ! use server; then + rm -r "${S}"/plugin/handler_socket || die + fi + + 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 + + if use client-libs ; then + multilib-minimal_src_configure + else + multilib_src_configure + fi +} + +multilib_src_configure() { + debug-print-function ${FUNCNAME} "$@" + + if ! multilib_is_native_abi && ! use client-libs ; then + return + fi + + 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)" + -DENABLE_STATIC_LIBS=$(usex static-libs ON OFF) + # 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 + ) + 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 client-libs ; then + mycmakeargs+=( -DWITHOUT_CLIENTLIBS=YES ) + fi + + # bfd.h is only used starting with 10.1 and can be controlled by NOT_FOR_DISTRIBUTION + # systemtap only works on native ABI bug 530132 + if multilib_is_native_abi; then + mycmakeargs+=( + -DWITH_READLINE=$(usex bindist 1 0) + -DNOT_FOR_DISTRIBUTION=$(usex bindist 0 1) + -DENABLE_DTRACE=$(usex systemtap) + ) + else + mycmakeargs+=( + -DWITHOUT_TOOLS=1 + -DWITH_READLINE=1 + -DNOT_FOR_DISTRIBUTION=0 + -DENABLE_DTRACE=0 + ) + fi + + if multilib_is_native_abi && use server ; then + + # Federated{,X} must be treated special otherwise they will not be built as plugins + if ! use extraengine ; then + mycmakeargs+=( + -DPLUGIN_FEDERATED=NO + -DPLUGIN_FEDERATEDX=NO ) + fi + + mycmakeargs+=( + -DWITH_JEMALLOC=$(usex jemalloc system) + -DWITH_PCRE=system + -DPLUGIN_OQGRAPH=$(usex oqgraph DYNAMIC NO) + -DPLUGIN_SPHINX=$(usex sphinx YES NO) + -DPLUGIN_TOKUDB=$(usex tokudb YES NO) + -DPLUGIN_AUTH_PAM=$(usex pam YES NO) + -DPLUGIN_CRACKLIB_PASSWORD_CHECK=$(usex cracklib YES NO) + -DPLUGIN_CASSANDRA=NO + -DPLUGIN_SEQUENCE=$(usex extraengine YES NO) + -DPLUGIN_SPIDER=$(usex extraengine YES NO) + -DPLUGIN_CONNECT=$(usex extraengine YES NO) + -DCONNECT_WITH_MYSQL=1 + -DCONNECT_WITH_LIBXML2=$(usex xml) + -DCONNECT_WITH_ODBC=$(usex odbc) + -DCONNECT_WITH_JDBC=$(usex jdbc) + # Build failure and autodep wrt bug 639144 + -DCONNECT_WITH_MONGO=OFF + -DWITH_WSREP=$(usex galera) + -DWITH_INNODB_LZ4=$(usex innodb-lz4 ON OFF) + -DWITH_INNODB_LZO=$(usex innodb-lzo ON OFF) + -DWITH_INNODB_SNAPPY=$(usex innodb-snappy ON OFF) + -DPLUGIN_MROONGA=$(usex mroonga DYNAMIC NO) + -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO) + -DWITH_MARIABACKUP=$(usex backup ON OFF) + -DWITH_LIBARCHIVE=$(usex backup ON OFF) + -DINSTALL_SQLBENCHDIR=share/mariadb + -DPLUGIN_ROCKSDB=$(usex rocksdb DYNAMIC NO) + # systemd is only linked to for server notification + -DWITH_SYSTEMD=$(usex systemd yes no) + -DWITH_NUMA=$(usex numa ON OFF) + ) + + # Workaround for MDEV-14524 + use tokudb && mycmakeargs+=( -DTOKUDB_OK=1 ) + + if use test ; then + # This is needed for the new client lib which tests a real, open server + mycmakeargs+=( -DSKIP_TESTS=ON ) + fi + + if [[ ( -n ${MYSQL_DEFAULT_CHARSET} ) && ( -n ${MYSQL_DEFAULT_COLLATION} ) ]]; then + ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}" + ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}." + ewarn "You MUST file bugs without these variables set." + + mycmakeargs+=( + -DDEFAULT_CHARSET=${MYSQL_DEFAULT_CHARSET} + -DDEFAULT_COLLATION=${MYSQL_DEFAULT_COLLATION} + ) + + elif ! use latin1 ; then + mycmakeargs+=( + -DDEFAULT_CHARSET=utf8 + -DDEFAULT_COLLATION=utf8_general_ci + ) + else + mycmakeargs+=( + -DDEFAULT_CHARSET=latin1 + -DDEFAULT_COLLATION=latin1_swedish_ci + ) + fi + mycmakeargs+=( + -DEXTRA_CHARSETS=all + -DMYSQL_USER=mysql + -DDISABLE_SHARED=$(usex static YES NO) + -DWITH_DEBUG=$(usex debug) + -DWITH_EMBEDDED_SERVER=OFF + -DWITH_PROFILING=$(usex profiling) + ) + + if use static; then + mycmakeargs+=( -DWITH_PIC=1 ) + fi + + if use jemalloc || use tcmalloc ; then + mycmakeargs+=( -DWITH_SAFEMALLOC=OFF ) + fi + + # Storage engines + mycmakeargs+=( + -DWITH_ARCHIVE_STORAGE_ENGINE=1 + -DWITH_BLACKHOLE_STORAGE_ENGINE=1 + -DWITH_CSV_STORAGE_ENGINE=1 + -DWITH_HEAP_STORAGE_ENGINE=1 + -DWITH_INNOBASE_STORAGE_ENGINE=1 + -DWITH_MYISAMMRG_STORAGE_ENGINE=1 + -DWITH_MYISAM_STORAGE_ENGINE=1 + -DWITH_PARTITION_STORAGE_ENGINE=1 + ) + + else + mycmakeargs+=( + -DWITHOUT_SERVER=1 + -DWITH_EMBEDDED_SERVER=OFF + -DEXTRA_CHARSETS=none + -DINSTALL_SQLBENCHDIR= + -DWITH_SYSTEMD=no + ) + fi + + cmake-utils_src_configure +} + +src_compile() { + if use client-libs ; then + multilib-minimal_src_compile + else + multilib_src_compile + fi +} + +multilib_src_compile() { + cmake-utils_src_compile +} + +src_install() { + local MULTILIB_WRAPPED_HEADERS + local MULTILIB_CHOST_TOOLS + if use client-libs ; then + # headers with ABI specific data + MULTILIB_WRAPPED_HEADERS=( + /usr/include/mysql/server/my_config.h + /usr/include/mysql/server/private/embedded_priv.h + /usr/include/mysql/server/mysql_version.h + /usr/include/mariadb/mariadb_version.h + /usr/include/mysql/mariadb_version.h + /usr/include/mysql/server/private/probes_mysql_nodtrace.h + /usr/include/mysql/server/private/probes_mysql_dtrace.h ) + + # wrap the config scripts + MULTILIB_CHOST_TOOLS=( /usr/bin/mariadb_config /usr/bin/mysql_config ) + multilib-minimal_src_install + else + multilib_src_install + multilib_src_install_all + fi +} + +# Intentionally override eclass function +multilib_src_install() { + + cmake-utils_src_install + + # Make sure the vars are correctly initialized + mysql_init_vars + + # Remove an unnecessary, private config header which will never match between ABIs and is not meant to be used + if [[ -f "${D}/usr/include/mysql/server/private/config.h" ]] ; then + rm "${D}/usr/include/mysql/server/private/config.h" || die + fi + + if ! multilib_is_native_abi && use server ; then + insinto /usr/include/mysql/server/private + doins "${S}"/sql/*.h + fi + + if use client-libs ; then + # Install compatible symlinks to libmysqlclient +# use static-libs && dosym libmariadbclient.a "${EPREFIX}/usr/$(get_libdir)/libmysqlclient.a" +# dosym libmariadb.so.3 "${EPREFIX}/usr/$(get_libdir)/libmysqlclient.so" + dosym libmariadb.so.3 "${EPREFIX}/usr/$(get_libdir)/libmysqlclient.so.${SUBSLOT}" + fi + + # Kill old libmysqclient_r symlinks if they exist. Time to fix what depends on them. + find "${D}" -name 'libmysqlclient_r.*' -type l -delete || die +} + +multilib_src_install_all() { + # 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 + 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 static-libs' \ +# FEATURES='test userpriv -usersandbox' \ +# ebuild mariadb-X.X.XX.ebuild \ +# digest clean package +src_test() { + + _disable_test() { + local rawtestname reason + rawtestname="${1}" ; shift + reason="${@}" + ewarn "test '${rawtestname}' disabled: '${reason}'" + echo ${rawtestname} : ${reason} >> "${T}/disabled.def" + } + + local TESTDIR="${BUILD_DIR}/mysql-test" + local retstatus_unit + local retstatus_tests + + if ! use server ; then + einfo "Skipping server tests due to minimal build." + return 0 + fi + + # Bug #213475 - MySQL _will_ object strenously if your machine is named + # localhost. Also causes weird failures. + [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost" + + if [[ $UID -eq 0 ]]; then + die "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root." + fi + has usersandbox $FEATURES && ewarn "Some tests may fail with FEATURES=usersandbox" + + einfo ">>> Test phase [test]: ${CATEGORY}/${PF}" + + # Run CTest (test-units) + cmake-utils_src_test + retstatus_unit=$? + + # Ensure that parallel runs don't die + export MTR_BUILD_THREAD="$((${RANDOM} % 100))" + # Enable parallel testing, auto will try to detect number of cores + # You may set this by hand. + # The default maximum is 8 unless MTR_MAX_PARALLEL is increased + export MTR_PARALLEL="${MTR_PARALLEL:-auto}" + + # create directories because mysqladmin might run out of order + mkdir -p "${T}"/var-tests{,/log} || die + + # Run mysql tests + pushd "${TESTDIR}" > /dev/null || die + + touch "${T}/disabled.def" + # These are failing in MariaDB 10.0 for now and are believed to be + # false positives: + # + # main.mysql_client_test, main.mysql_client_test_nonblock + # main.mysql_client_test_comp: + # segfaults at random under Portage only, suspect resource limits. + + local t + for t in plugins.cracklib_password_check plugins.two_password_validations ; do + _disable_test "$t" "False positive due to varying policies" + done + + for t in main.mysql_client_test main.mysql_client_test_nonblock \ + main.mysql_client_test_comp rpl.rpl_extra_col_master_myisam ; do + _disable_test "$t" "False positives in Gentoo" + done + + # run mysql-test tests + perl mysql-test-run.pl --force --vardir="${T}/var-tests" --reorder --skip-test=tokudb --skip-test-list="${T}/disabled.def" + retstatus_tests=$? + + popd > /dev/null || die + + # Cleanup is important for these testcases. + pkill -9 -f "${S}/ndb" 2>/dev/null + pkill -9 -f "${S}/sql" 2>/dev/null + + local failures="" + [[ $retstatus_unit -eq 0 ]] || failures="${failures} test-unit" + [[ $retstatus_tests -eq 0 ]] || failures="${failures} tests" + + [[ -z "$failures" ]] || die "Test failures: $failures" + einfo "Tests successfully completed" +} + +mysql_init_vars() { + MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR="${EPREFIX}/usr/share/mariadb"} + MY_SYSCONFDIR=${MY_SYSCONFDIR="${EPREFIX}/etc/mysql"} + MY_LOCALSTATEDIR=${MY_LOCALSTATEDIR="${EPREFIX}/var/lib/mysql"} + MY_LOGDIR=${MY_LOGDIR="${EPREFIX}/var/log/mysql"} + + if [[ -z "${MY_DATADIR}" ]] ; then + MY_DATADIR="" + if [[ -f "${MY_SYSCONFDIR}/my.cnf" ]] ; then + MY_DATADIR=`"my_print_defaults" mysqld 2>/dev/null \ + | sed -ne '/datadir/s|^--datadir=||p' \ + | tail -n1` + if [[ -z "${MY_DATADIR}" ]] ; then + MY_DATADIR=`grep ^datadir "${MY_SYSCONFDIR}/my.cnf" \ + | sed -e 's/.*=\s*//' \ + | tail -n1` + fi + fi + if [[ -z "${MY_DATADIR}" ]] ; then + MY_DATADIR="${MY_LOCALSTATEDIR}" + einfo "Using default MY_DATADIR" + fi + elog "MySQL MY_DATADIR is ${MY_DATADIR}" + + if [[ -z "${PREVIOUS_DATADIR}" ]] ; then + if [[ -e "${MY_DATADIR}" ]] ; then + # If you get this and you're wondering about it, see bug #207636 + elog "MySQL datadir found in ${MY_DATADIR}" + elog "A new one will not be created." + PREVIOUS_DATADIR="yes" + else + PREVIOUS_DATADIR="no" + fi + export PREVIOUS_DATADIR + fi + else + if [[ ${EBUILD_PHASE} == "config" ]]; then + local new_MY_DATADIR + new_MY_DATADIR=`"my_print_defaults" mysqld 2>/dev/null \ + | sed -ne '/datadir/s|^--datadir=||p' \ + | tail -n1` + + if [[ ( -n "${new_MY_DATADIR}" ) && ( "${new_MY_DATADIR}" != "${MY_DATADIR}" ) ]]; then + ewarn "MySQL MY_DATADIR has changed" + ewarn "from ${MY_DATADIR}" + ewarn "to ${new_MY_DATADIR}" + MY_DATADIR="${new_MY_DATADIR}" + fi + fi + fi + + export MY_SHAREDSTATEDIR MY_SYSCONFDIR + export MY_LOCALSTATEDIR MY_LOGDIR + export MY_DATADIR +} + +pkg_config() { + _getoptval() { + local mypd="${EROOT}"/usr/bin/my_print_defaults + local section="$1" + local flag="--${2}=" + local extra_options="${3}" + "${mypd}" $extra_options $section | sed -n "/^${flag}/s,${flag},,gp" + } + local old_MY_DATADIR="${MY_DATADIR}" + local old_HOME="${HOME}" + # my_print_defaults needs to read stuff in $HOME/.my.cnf + export HOME=${EPREFIX}/root + + # Make sure the vars are correctly initialized + mysql_init_vars + + [[ -z "${MY_DATADIR}" ]] && die "Sorry, unable to find MY_DATADIR" + if [[ ! -x "${EROOT}/usr/sbin/mysqld" ]] ; then + die "Minimal builds do NOT include the MySQL server" + fi + + if [[ ( -n "${MY_DATADIR}" ) && ( "${MY_DATADIR}" != "${old_MY_DATADIR}" ) ]]; then + local MY_DATADIR_s="${ROOT}/${MY_DATADIR}" + MY_DATADIR_s="${MY_DATADIR_s%%/}" + local old_MY_DATADIR_s="${ROOT}/${old_MY_DATADIR}" + old_MY_DATADIR_s="${old_MY_DATADIR_s%%/}" + + if [[ ( -d "${old_MY_DATADIR_s}" ) && ( "${old_MY_DATADIR_s}" != / ) ]]; then + if [[ -d "${MY_DATADIR_s}" ]]; then + ewarn "Both ${old_MY_DATADIR_s} and ${MY_DATADIR_s} exist" + ewarn "Attempting to use ${MY_DATADIR_s} and preserving ${old_MY_DATADIR_s}" + else + elog "Moving MY_DATADIR from ${old_MY_DATADIR_s} to ${MY_DATADIR_s}" + mv --strip-trailing-slashes -T "${old_MY_DATADIR_s}" "${MY_DATADIR_s}" \ + || die "Moving MY_DATADIR failed" + fi + else + ewarn "Previous MY_DATADIR (${old_MY_DATADIR_s}) does not exist" + if [[ -d "${MY_DATADIR_s}" ]]; then + ewarn "Attempting to use ${MY_DATADIR_s}" + else + eerror "New MY_DATADIR (${MY_DATADIR_s}) does not exist" + die "Configuration Failed! Please reinstall ${CATEGORY}/${PN}" + fi + fi + fi + + local pwd1="a" + local pwd2="b" + local maxtry=15 + + if [ -z "${MYSQL_ROOT_PASSWORD}" ]; then + local tmp_mysqld_password_source= + + for tmp_mysqld_password_source in mysql client; do + einfo "Trying to get password for mysql 'root' user from '${tmp_mysqld_password_source}' section ..." + MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password)" + if [[ -n "${MYSQL_ROOT_PASSWORD}" ]]; then + if [[ ${MYSQL_ROOT_PASSWORD} == *$'\n'* ]]; then + ewarn "Ignoring password from '${tmp_mysqld_password_source}' section due to newline character (do you have multiple password options set?)!" + MYSQL_ROOT_PASSWORD= + continue + fi + + einfo "Found password in '${tmp_mysqld_password_source}' section!" + break + fi + done + + # Sometimes --show is required to display passwords in some implementations of my_print_defaults + if [[ "${MYSQL_ROOT_PASSWORD}" == '*****' ]]; then + MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password --show)" + fi + + unset tmp_mysqld_password_source + fi + MYSQL_TMPDIR="$(_getoptval '--mysqld' tmpdir)" + # These are dir+prefix + MYSQL_RELAY_LOG="$(_getoptval '--mysqld' relay-log)" + MYSQL_RELAY_LOG=${MYSQL_RELAY_LOG%/*} + MYSQL_LOG_BIN="$(_getoptval '--mysqld' log-bin)" + 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 http://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 + # http://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" +} diff --git a/dev-db/mariadb/metadata.xml b/dev-db/mariadb/metadata.xml index 7a863a5e5170..dc1b8fcb633a 100644 --- a/dev-db/mariadb/metadata.xml +++ b/dev-db/mariadb/metadata.xml @@ -7,6 +7,7 @@ </maintainer> <use> <flag name="backup">Build mariadb-backup which supports SST and hot backup of InnoDB, Aria and MyISAM including compression and encryption</flag> + <flag name="client-libs">Build the client libraries from the server package instead of the C Connector packages</flag> <flag name="cluster">Add support for NDB clustering (deprecated)</flag> <flag name="community">Enables the community features from upstream.</flag> <flag name="embedded">Build embedded server (libmysqld)</flag> diff --git a/dev-db/mongodb/Manifest b/dev-db/mongodb/Manifest index 2e0c266f3223..9524e8df4781 100644 --- a/dev-db/mongodb/Manifest +++ b/dev-db/mongodb/Manifest @@ -23,20 +23,16 @@ AUX mongos.initd-r2 654 BLAKE2B e1d87021c218adf49f2efbd3dc6d8afb94bc4f71e60d91df AUX mongos.initd-r3 422 BLAKE2B 90872d0d8cdc5e33e3eebee848f58a2db0511d48b496ba9318117b74ad9265ead53a21b7d1790729a62d61839099bee315ace8ff3646c01e096a943c2251bf88 SHA512 bf5897614d59c6b4e72529b126408a62ea37d9e9368e5ff69c8fcf2bad3ec09065cff09467f82117a892c51090018706d2f38c03cb9a974a61a49bd9efa0f144 DIST mongodb-src-r3.0.14.tar.gz 28093922 BLAKE2B c36f1868aaf8d149550d9e8fcfa3598b917426f896cdb9e1d12fb047345011b06975719d24db3ffadadf6e1f6007a3e32768eaaa9da9ec8f340c7a49c9239b45 SHA512 477fab29ca0ad2a0f24b895e30dc4770af8d6a1a57f3c10a02a989b58dd22510db554da0418129d4e81958342ad169696eed4b86bf5aa73916c7cec879db1152 DIST mongodb-src-r3.0.15.tar.gz 28096395 BLAKE2B 123194723e7f1057bc5497ce9bf51f8dd2d65495f6e2c84adde22e3b41cace9c0bce8134a7b85fa1c8e89ce953a3df780eae013d61bba44bbf9339c1e2e478af SHA512 21cec235a691dad7d1d2c625ef04a851b59223b8f2c0bdc979f2a0b8249ed46b4e62753fd595afa7b74bce13851d1f6547e54d8ffad8ba1f56e36db664f5b27e -DIST mongodb-src-r3.2.12.tar.gz 29178424 BLAKE2B 212a2aaac62460812874bb4d924f9cedcb591699367a72ace620e9635a6511048efa3f1202a51e4b58ca8e5f8879fbe4638284c5d3899290bff6b1ca9be565a3 SHA512 0c4ddaaddf15d97957faff46dc4a3f79c545cacc8a56dbe1d063778117ba9b645323b0cb7fd054fae805d092b8372c411a82e3370244b7939bda20a65fdb951c -DIST mongodb-src-r3.2.13.tar.gz 29273616 BLAKE2B 9fb9851953ef1561340bcb33cac6a2c96459fd68cb1d55af05faeddf50306bd545b40eef19adeb470b8d17abddc2cb76793c3e42d0e3ce01aecef816e67c0277 SHA512 649b599da65fc205a6e18cde82da6153fb4c03a21cf679e18fb57f705ac168690a37f9520be1242278bc0fe441fda08f1c10c9924cabc636ba153c545d32f91d -DIST mongodb-src-r3.2.16.tar.gz 29293555 BLAKE2B e2863ed0210bc66fcf2c80e28668674c254e78ee750a0eb84c45569c2224157f1db65aca5296a0ed0c32ef83ab6269de25bd69dbf1f0ef54b021bb0aecd2e46a SHA512 ba57aae430959f7df036b7e19e1b7d81956184bededd35631616c6e3dc9423dc79a50ab3265bc48b06d198a7043bca902aee2ea75954e38151ebead5b5ab2db2 DIST mongodb-src-r3.2.17.tar.gz 29295394 BLAKE2B 3fa9d8fa0b50b72c3b2aa86980dd4d46bd053f23d044e321d6f98f5edb76c566bf00455cf745110a8c39355843664d9d1fbbdf554fc8696de73db2b270446adc SHA512 0d6a01278bc61805afd164e4a29abe150a5a96d551ed2c7c5d385b269924a7c5f065315e4f19c0ab070aa275ac03447959af45f33826457e5db0c5f98e623512 DIST mongodb-src-r3.4.10.tar.gz 39959937 BLAKE2B f14f081525f694b939bc21f8cb6364c2a37573c0e1867322dd2062dc167b112751579c3e2d76730b3ff07b0c6bbfd36666bbea99162b7c10eef62d92eb1b0850 SHA512 6293dde40a8433477ba3b1cf77abbdb32b28ce58279cc616b488647c8ab71b5ab3eab2146058c4a74b9e00f0938f1415020e2f26ea01f2b29dd78a1a38d58c3a DIST mongodb-src-r3.4.13.tar.gz 39992720 BLAKE2B 5620711c5ffddd9a96c29be1f2801a37f30536d1b7afe5a7b339a41cacf1f97caf8d03aafdf1d6b71cc488e48f5066ebc49a63a6bf318483d552863cd47a0c0e SHA512 295dbb38d44c99e0dce46c5e4aa5d73c64d813a3767e71a7187aff05e30f896d283ca7ef19c0a7bbd036eecf3d419e38ea3bc7d98ba93d12296c49e565df0f66 DIST mongodb-src-r3.6.2.tar.gz 39999539 BLAKE2B 3e38917ebaf79b63bf054279fbb91a648fe52e69d8194998dc74453ad6766688929a80456f6cb4801f2806ac938a5dfc0407e5f46345b47a80ecce0ba03d7fde SHA512 7acfbcc68c1bd4e6e63eee09be1dfbb064be6f8b0144418105100a065f8162cafc9b776fe0429fd64c79b958561aa42d0bdef56588dda65acee27ccc98631f39 +DIST mongodb-src-r3.6.3.tar.gz 40093607 BLAKE2B bb21bf0487661eec6140ade22526617b26b2499bd36e138d955d14a4b13a0685ec7308bccfc11ef17c785cd8a71c5b6cd9d154d461b8973410b03952b93953ec SHA512 94aa9955f99d5f6bbbe65dc3755583952525398308ca7cb9224b91d1fa403de5bb3abb63a651583815cbecaff58966b5cfe7334a36ef6583f73d8c213410ddbc EBUILD mongodb-3.0.14.ebuild 4559 BLAKE2B e72ff73baaa3b6a5bb4bbb33f3153d2aeaa9458b6e7f48419f5fd0f9b7fe43dfbcd93bf0824555e688faa461839a8c3cb5e4d1a24219a395f1a245828d639777 SHA512 747424cae955229f6affd867961171d9ad3fe9c34553ddb94e034db76d4e389ba0c6dc47db23c291212b893b7377d1bfac52e79ae4ab1b9dfd8f4c89743e1a19 EBUILD mongodb-3.0.15.ebuild 4561 BLAKE2B 85e994c18b57a0278059eb0e2e141842b551a96e1a030b5d84e0bb4c1524bacff7ed1a1576093b0336ed042f8bcbf01d37ba725392c077a400fdefc2705ec2ab SHA512 d5b77ede0ab5d9fa814542e831ec93d5854f0aaa55930c5e445410d347787be96294a741f30089764ea23cdab52413d1d82c6796b3d7133796d28de95726e294 -EBUILD mongodb-3.2.12.ebuild 5129 BLAKE2B 5587e9f109bc55d58d5157aed301fb61c8bc088d7bad7fc386d9e34b228f05a6fcdc79f4d2201ded1de0d178eb721600322992b6f0e4ec174cc85ac44decf81a SHA512 28de831886c3531c441658cdc7a29cea3b20f6aa9208c5658d4ad71269b6ff359954118810a9e845d567f54a54449ebc20a446f46da3d4694b5395fdf9f822dd -EBUILD mongodb-3.2.13.ebuild 5129 BLAKE2B 5587e9f109bc55d58d5157aed301fb61c8bc088d7bad7fc386d9e34b228f05a6fcdc79f4d2201ded1de0d178eb721600322992b6f0e4ec174cc85ac44decf81a SHA512 28de831886c3531c441658cdc7a29cea3b20f6aa9208c5658d4ad71269b6ff359954118810a9e845d567f54a54449ebc20a446f46da3d4694b5395fdf9f822dd -EBUILD mongodb-3.2.16.ebuild 5180 BLAKE2B 79f825055c4491535e1e4405af86b58650443885a6ac7e65e53f6739465be60bca9abba10ccc803cecfe93b1bf2645970f9a4e97b5dec72309ed12ddd4f1f350 SHA512 9d0a8bac5e2aed1803df8d23ccf126a56194d03f715e86adb4fda36a82fd176617c5c599c1ac7fbfdbdfb8d6c7c63496e34400a9dc5ed75cd6d84ca023d58ee1 EBUILD mongodb-3.2.17.ebuild 5338 BLAKE2B fd327b1c5bb85e833782839e07b3379a103f0545fb9852cb06d7f6f0b3548b921dfce227d1882a1e448a533c043718c778e9141ec5715805a24c9e2fbf199fa1 SHA512 a439c32b20a81d1c8e199c8a6928aa75479562e6b33c0d7b50797181226a093f571a1caaab102569a9a308db18a73c51558657ccd4bcb1d7e137eb22fb363c4e EBUILD mongodb-3.4.10.ebuild 5133 BLAKE2B e6b3742a9bff53afd63eae4fe3b9574e43f7007dc1efc1687583b17820e812341f354e7dd7882762a871f1d5b1e2732a9cd20cff7981c05de4058c26c58f68d2 SHA512 737046d5ac14920014581840d3e53597e916cc4f1bbdfba850842718039c227c5cf3e5b62cd3f491e1221ff8fefd74fb3ea75ecafd6218c4036f4973316c56eb EBUILD mongodb-3.4.13.ebuild 4256 BLAKE2B e4caf3957d5bea1811879828abb9a1407afcb9646e4e91911369d8e43564412e0fa19ec84264d1ad5dbea758fb32c5dfe2fb4dca60636b7838f4c3d4ef3832d2 SHA512 dee3412d989c9d00e1097a2ebb8d05e7d77d14e8399d7bf570da37904ec90de86d62807383c95caa057b2c2cfe2057be0b208b262bf488687b201a2f38ea7bac EBUILD mongodb-3.6.2.ebuild 4442 BLAKE2B c951192aa4ad5ce66e5b7a076d7f4d7b7fc88b6b1342817334cc2cc17ddc87727da5fe801bb63cc4696d563fd8d18752621c79df705ada9d03d88683b5d08b8c SHA512 1c6f7e920ab4b43effe6b10d2b68acdbefd530830193a485b80efe595a2301bb213a582a248f3df9a0b931e30cce57ea498da4ba921b4eb5ebf58d2506057390 +EBUILD mongodb-3.6.3.ebuild 4442 BLAKE2B c951192aa4ad5ce66e5b7a076d7f4d7b7fc88b6b1342817334cc2cc17ddc87727da5fe801bb63cc4696d563fd8d18752621c79df705ada9d03d88683b5d08b8c SHA512 1c6f7e920ab4b43effe6b10d2b68acdbefd530830193a485b80efe595a2301bb213a582a248f3df9a0b931e30cce57ea498da4ba921b4eb5ebf58d2506057390 MISC metadata.xml 1053 BLAKE2B f2104654da3600c3d10882bb600d9002c015c7fb5dcfc8bdb98ab1fcb06d384ead4af990d55d6596d4bd602e5c4e9978a11cc66382ee01bab006f817ba44bdc2 SHA512 9ab708e294e25487ceeeeac7500a64684c914e95aa593c3a1f06d845b6b629766a5b98d972bf0802f3713b89bd6c81e293fc45205604980164542442438b13a2 diff --git a/dev-db/mongodb/mongodb-3.2.12.ebuild b/dev-db/mongodb/mongodb-3.2.12.ebuild deleted file mode 100644 index e6fac48d7a72..000000000000 --- a/dev-db/mongodb/mongodb-3.2.12.ebuild +++ /dev/null @@ -1,192 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=5 -SCONS_MIN_VERSION="2.3.0" -CHECKREQS_DISK_BUILD="2400M" -CHECKREQS_DISK_USR="512M" -CHECKREQS_MEMORY="1024M" - -inherit eutils flag-o-matic multilib pax-utils scons-utils systemd toolchain-funcs user versionator check-reqs - -MY_P=${PN}-src-r${PV/_rc/-rc} - -DESCRIPTION="A high-performance, open source, schema-free document-oriented database" -HOMEPAGE="http://www.mongodb.org" -SRC_URI="https://fastdl.mongodb.org/src/${MY_P}.tar.gz" - -LICENSE="AGPL-3 Apache-2.0" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="debug kerberos libressl mms-agent ssl test +tools" - -RDEPEND=">=app-arch/snappy-1.1.2 - >dev-cpp/yaml-cpp-0.5.2 - >=dev-libs/boost-1.57[threads(+)] - >=dev-libs/libpcre-8.39[cxx] - dev-libs/snowball-stemmer - net-libs/libpcap - >=sys-libs/zlib-1.2.8 - mms-agent? ( app-admin/mms-agent ) - ssl? ( - !libressl? ( >=dev-libs/openssl-1.0.1g:0= ) - libressl? ( dev-libs/libressl:0= ) - )" -DEPEND="${RDEPEND} - >=sys-devel/gcc-4.8.2:* - sys-libs/ncurses - sys-libs/readline - debug? ( dev-util/valgrind ) - kerberos? ( dev-libs/cyrus-sasl[kerberos] ) - test? ( - dev-python/pymongo - dev-python/pyyaml - )" -PDEPEND="tools? ( >=app-admin/mongo-tools-${PV} )" - -S=${WORKDIR}/${MY_P} - -pkg_pretend() { - if [[ ${REPLACING_VERSIONS} < 3.0 ]]; then - ewarn "To upgrade an existing MongoDB deployment to 3.2, you must be" - ewarn "running a 3.0-series release. Please update to the latest 3.0" - ewarn "release before continuing if wish to keep your data." - fi -} - -pkg_setup() { - enewgroup mongodb - enewuser mongodb -1 -1 /var/lib/${PN} mongodb - - # Maintainer notes - # - # --use-system-tcmalloc is strongly NOT recommended: - # https://www.mongodb.org/about/contributors/tutorial/build-mongodb-from-source/ - - scons_opts=( - CC="$(tc-getCC)" - CXX="$(tc-getCXX)" - - --disable-warnings-as-errors - --use-system-boost - --use-system-pcre - --use-system-snappy - --use-system-stemmer - --use-system-yaml - --use-system-zlib - ) - - # wiredtiger not supported on 32bit platforms #572166 - use x86 && scons_opts+=( --wiredtiger=off ) - - if use debug; then - scons_opts+=( --dbg=on ) - fi - - if use prefix; then - scons_opts+=( - --cpppath="${EPREFIX}/usr/include" - --libpath="${EPREFIX}/usr/$(get_libdir)" - ) - fi - - if use kerberos; then - scons_opts+=( --use-sasl-client ) - fi - - if use ssl; then - scons_opts+=( --ssl ) - fi -} - -src_prepare() { - epatch \ - "${FILESDIR}/${PN}-3.2.0-fix-scons.patch" \ - "${FILESDIR}/${PN}-3.2.4-boost-1.60.patch" - if has_version ">=dev-libs/boost-1.62"; then - epatch "${FILESDIR}/${PN}-3.2.10-boost-1.62.patch" - fi - epatch_user -} - -src_compile() { - # respect mongoDB upstream's basic recommendations - # see bug #536688 and #526114 - if ! use debug; then - filter-flags '-m*' - filter-flags '-O?' - fi - escons "${scons_opts[@]}" core tools -} - -src_install() { - escons "${scons_opts[@]}" --nostrip install --prefix="${ED}"/usr - - for x in /var/{lib,log}/${PN}; do - keepdir "${x}" - fowners mongodb:mongodb "${x}" - done - - doman debian/mongo*.1 - dodoc README docs/building.md - - newinitd "${FILESDIR}/${PN}.initd-r2" ${PN} - newconfd "${FILESDIR}/${PN}.confd-r2" ${PN} - newinitd "${FILESDIR}/${PN/db/s}.initd-r2" ${PN/db/s} - newconfd "${FILESDIR}/${PN/db/s}.confd-r2" ${PN/db/s} - - insinto /etc - newins "${FILESDIR}/${PN}.conf-r3" ${PN}.conf - newins "${FILESDIR}/${PN/db/s}.conf-r2" ${PN/db/s}.conf - - systemd_dounit "${FILESDIR}/${PN}.service" - - insinto /etc/logrotate.d/ - newins "${FILESDIR}/${PN}.logrotate" ${PN} - - # see bug #526114 - pax-mark emr "${ED}"/usr/bin/{mongo,mongod,mongos} -} - -pkg_preinst() { - # wrt bug #461466 - if [[ "$(get_libdir)" == "lib64" ]]; then - rmdir "${ED}"/usr/lib/ &>/dev/null - fi -} - -src_test() { - # this one test fails - rm jstests/core/repl_write_threads_start_param.js - - ./buildscripts/resmoke.py --dbpathPrefix=test --suites core || die "Tests failed" -} - -pkg_postinst() { - local v - for v in ${REPLACING_VERSIONS}; do - if ! version_is_at_least 3.0 ${v}; then - ewarn "!! IMPORTANT !!" - ewarn " " - ewarn "${PN} configuration files have changed !" - ewarn " " - ewarn "Make sure you migrate from /etc/conf.d/${PN} to the new YAML standard in /etc/${PN}.conf" - ewarn " http://docs.mongodb.org/manual/reference/configuration-options/" - ewarn " " - ewarn "Make sure you also follow the upgrading process :" - ewarn " http://docs.mongodb.org/master/release-notes/3.0-upgrade/" - ewarn " " - ewarn "MongoDB 3.0 introduces the WiredTiger storage engine." - ewarn "WiredTiger is incompatible with MMAPv1 and you need to dump/reload your data if you want to use it." - ewarn "Once you have your data dumped, you need to set storage.engine: wiredTiger in /etc/${PN}.conf" - ewarn " http://docs.mongodb.org/master/release-notes/3.0-upgrade/#change-storage-engine-to-wiredtiger" - break - fi - done - - ewarn "Make sure to read the release notes and follow the upgrade process:" - ewarn " https://docs.mongodb.org/manual/release-notes/3.2/" - ewarn " https://docs.mongodb.org/master/release-notes/3.2-upgrade/" - ewarn - ewarn " Starting in 3.2, MongoDB uses the WiredTiger as the default storage engine." -} diff --git a/dev-db/mongodb/mongodb-3.2.13.ebuild b/dev-db/mongodb/mongodb-3.2.13.ebuild deleted file mode 100644 index e6fac48d7a72..000000000000 --- a/dev-db/mongodb/mongodb-3.2.13.ebuild +++ /dev/null @@ -1,192 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=5 -SCONS_MIN_VERSION="2.3.0" -CHECKREQS_DISK_BUILD="2400M" -CHECKREQS_DISK_USR="512M" -CHECKREQS_MEMORY="1024M" - -inherit eutils flag-o-matic multilib pax-utils scons-utils systemd toolchain-funcs user versionator check-reqs - -MY_P=${PN}-src-r${PV/_rc/-rc} - -DESCRIPTION="A high-performance, open source, schema-free document-oriented database" -HOMEPAGE="http://www.mongodb.org" -SRC_URI="https://fastdl.mongodb.org/src/${MY_P}.tar.gz" - -LICENSE="AGPL-3 Apache-2.0" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="debug kerberos libressl mms-agent ssl test +tools" - -RDEPEND=">=app-arch/snappy-1.1.2 - >dev-cpp/yaml-cpp-0.5.2 - >=dev-libs/boost-1.57[threads(+)] - >=dev-libs/libpcre-8.39[cxx] - dev-libs/snowball-stemmer - net-libs/libpcap - >=sys-libs/zlib-1.2.8 - mms-agent? ( app-admin/mms-agent ) - ssl? ( - !libressl? ( >=dev-libs/openssl-1.0.1g:0= ) - libressl? ( dev-libs/libressl:0= ) - )" -DEPEND="${RDEPEND} - >=sys-devel/gcc-4.8.2:* - sys-libs/ncurses - sys-libs/readline - debug? ( dev-util/valgrind ) - kerberos? ( dev-libs/cyrus-sasl[kerberos] ) - test? ( - dev-python/pymongo - dev-python/pyyaml - )" -PDEPEND="tools? ( >=app-admin/mongo-tools-${PV} )" - -S=${WORKDIR}/${MY_P} - -pkg_pretend() { - if [[ ${REPLACING_VERSIONS} < 3.0 ]]; then - ewarn "To upgrade an existing MongoDB deployment to 3.2, you must be" - ewarn "running a 3.0-series release. Please update to the latest 3.0" - ewarn "release before continuing if wish to keep your data." - fi -} - -pkg_setup() { - enewgroup mongodb - enewuser mongodb -1 -1 /var/lib/${PN} mongodb - - # Maintainer notes - # - # --use-system-tcmalloc is strongly NOT recommended: - # https://www.mongodb.org/about/contributors/tutorial/build-mongodb-from-source/ - - scons_opts=( - CC="$(tc-getCC)" - CXX="$(tc-getCXX)" - - --disable-warnings-as-errors - --use-system-boost - --use-system-pcre - --use-system-snappy - --use-system-stemmer - --use-system-yaml - --use-system-zlib - ) - - # wiredtiger not supported on 32bit platforms #572166 - use x86 && scons_opts+=( --wiredtiger=off ) - - if use debug; then - scons_opts+=( --dbg=on ) - fi - - if use prefix; then - scons_opts+=( - --cpppath="${EPREFIX}/usr/include" - --libpath="${EPREFIX}/usr/$(get_libdir)" - ) - fi - - if use kerberos; then - scons_opts+=( --use-sasl-client ) - fi - - if use ssl; then - scons_opts+=( --ssl ) - fi -} - -src_prepare() { - epatch \ - "${FILESDIR}/${PN}-3.2.0-fix-scons.patch" \ - "${FILESDIR}/${PN}-3.2.4-boost-1.60.patch" - if has_version ">=dev-libs/boost-1.62"; then - epatch "${FILESDIR}/${PN}-3.2.10-boost-1.62.patch" - fi - epatch_user -} - -src_compile() { - # respect mongoDB upstream's basic recommendations - # see bug #536688 and #526114 - if ! use debug; then - filter-flags '-m*' - filter-flags '-O?' - fi - escons "${scons_opts[@]}" core tools -} - -src_install() { - escons "${scons_opts[@]}" --nostrip install --prefix="${ED}"/usr - - for x in /var/{lib,log}/${PN}; do - keepdir "${x}" - fowners mongodb:mongodb "${x}" - done - - doman debian/mongo*.1 - dodoc README docs/building.md - - newinitd "${FILESDIR}/${PN}.initd-r2" ${PN} - newconfd "${FILESDIR}/${PN}.confd-r2" ${PN} - newinitd "${FILESDIR}/${PN/db/s}.initd-r2" ${PN/db/s} - newconfd "${FILESDIR}/${PN/db/s}.confd-r2" ${PN/db/s} - - insinto /etc - newins "${FILESDIR}/${PN}.conf-r3" ${PN}.conf - newins "${FILESDIR}/${PN/db/s}.conf-r2" ${PN/db/s}.conf - - systemd_dounit "${FILESDIR}/${PN}.service" - - insinto /etc/logrotate.d/ - newins "${FILESDIR}/${PN}.logrotate" ${PN} - - # see bug #526114 - pax-mark emr "${ED}"/usr/bin/{mongo,mongod,mongos} -} - -pkg_preinst() { - # wrt bug #461466 - if [[ "$(get_libdir)" == "lib64" ]]; then - rmdir "${ED}"/usr/lib/ &>/dev/null - fi -} - -src_test() { - # this one test fails - rm jstests/core/repl_write_threads_start_param.js - - ./buildscripts/resmoke.py --dbpathPrefix=test --suites core || die "Tests failed" -} - -pkg_postinst() { - local v - for v in ${REPLACING_VERSIONS}; do - if ! version_is_at_least 3.0 ${v}; then - ewarn "!! IMPORTANT !!" - ewarn " " - ewarn "${PN} configuration files have changed !" - ewarn " " - ewarn "Make sure you migrate from /etc/conf.d/${PN} to the new YAML standard in /etc/${PN}.conf" - ewarn " http://docs.mongodb.org/manual/reference/configuration-options/" - ewarn " " - ewarn "Make sure you also follow the upgrading process :" - ewarn " http://docs.mongodb.org/master/release-notes/3.0-upgrade/" - ewarn " " - ewarn "MongoDB 3.0 introduces the WiredTiger storage engine." - ewarn "WiredTiger is incompatible with MMAPv1 and you need to dump/reload your data if you want to use it." - ewarn "Once you have your data dumped, you need to set storage.engine: wiredTiger in /etc/${PN}.conf" - ewarn " http://docs.mongodb.org/master/release-notes/3.0-upgrade/#change-storage-engine-to-wiredtiger" - break - fi - done - - ewarn "Make sure to read the release notes and follow the upgrade process:" - ewarn " https://docs.mongodb.org/manual/release-notes/3.2/" - ewarn " https://docs.mongodb.org/master/release-notes/3.2-upgrade/" - ewarn - ewarn " Starting in 3.2, MongoDB uses the WiredTiger as the default storage engine." -} diff --git a/dev-db/mongodb/mongodb-3.2.16.ebuild b/dev-db/mongodb/mongodb-3.2.16.ebuild deleted file mode 100644 index 762934559887..000000000000 --- a/dev-db/mongodb/mongodb-3.2.16.ebuild +++ /dev/null @@ -1,191 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -SCONS_MIN_VERSION="2.3.0" -CHECKREQS_DISK_BUILD="2400M" -CHECKREQS_DISK_USR="512M" -CHECKREQS_MEMORY="1024M" - -inherit eutils flag-o-matic multilib pax-utils scons-utils systemd toolchain-funcs user versionator check-reqs - -MY_P=${PN}-src-r${PV/_rc/-rc} - -DESCRIPTION="A high-performance, open source, schema-free document-oriented database" -HOMEPAGE="http://www.mongodb.org" -SRC_URI="https://fastdl.mongodb.org/src/${MY_P}.tar.gz" - -LICENSE="AGPL-3 Apache-2.0" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="debug kerberos libressl mms-agent ssl test +tools" - -RDEPEND=">=app-arch/snappy-1.1.2 - >=dev-cpp/yaml-cpp-0.5.1 - >=dev-libs/boost-1.57[threads(+)] - >=dev-libs/libpcre-8.39[cxx] - dev-libs/snowball-stemmer - net-libs/libpcap - >=sys-libs/zlib-1.2.8 - mms-agent? ( app-admin/mms-agent ) - ssl? ( - !libressl? ( >=dev-libs/openssl-1.0.1g:0= ) - libressl? ( dev-libs/libressl:0= ) - )" -DEPEND="${RDEPEND} - >=sys-devel/gcc-4.8.2:* - sys-libs/ncurses - sys-libs/readline - debug? ( dev-util/valgrind ) - kerberos? ( dev-libs/cyrus-sasl[kerberos] ) - test? ( - dev-python/pymongo - dev-python/pyyaml - )" -PDEPEND="tools? ( >=app-admin/mongo-tools-${PV} )" - -PATCHES=( - "${FILESDIR}/${PN}-3.2.0-fix-scons.patch" - "${FILESDIR}/${PN}-3.2.4-boost-1.60.patch" - "${FILESDIR}/${PN}-3.2.10-boost-1.62.patch" - "${FILESDIR}/${PN}-3.2.16-Replace-string-with-explicit-std-string.patch" - "${FILESDIR}/${PN}-3.4.6-sysmacros-include.patch" -) - -S=${WORKDIR}/${MY_P} - -pkg_pretend() { - if [[ ${REPLACING_VERSIONS} < 3.0 ]]; then - ewarn "To upgrade an existing MongoDB deployment to 3.2, you must be" - ewarn "running a 3.0-series release. Please update to the latest 3.0" - ewarn "release before continuing if wish to keep your data." - fi -} - -pkg_setup() { - enewgroup mongodb - enewuser mongodb -1 -1 /var/lib/${PN} mongodb - - # Maintainer notes - # - # --use-system-tcmalloc is strongly NOT recommended: - # https://www.mongodb.org/about/contributors/tutorial/build-mongodb-from-source/ - - scons_opts=( - CC="$(tc-getCC)" - CXX="$(tc-getCXX)" - - --disable-warnings-as-errors - --use-system-boost - --use-system-pcre - --use-system-snappy - --use-system-stemmer - --use-system-yaml - --use-system-zlib - ) - - # wiredtiger not supported on 32bit platforms #572166 - use x86 && scons_opts+=( --wiredtiger=off ) - - if use debug; then - scons_opts+=( --dbg=on ) - fi - - if use prefix; then - scons_opts+=( - --cpppath="${EPREFIX}/usr/include" - --libpath="${EPREFIX}/usr/$(get_libdir)" - ) - fi - - if use kerberos; then - scons_opts+=( --use-sasl-client ) - fi - - if use ssl; then - scons_opts+=( --ssl ) - fi -} - -src_compile() { - # respect mongoDB upstream's basic recommendations - # see bug #536688 and #526114 - if ! use debug; then - filter-flags '-m*' - filter-flags '-O?' - fi - escons "${scons_opts[@]}" core tools -} - -src_install() { - escons "${scons_opts[@]}" --nostrip install --prefix="${ED}"/usr - - local x - for x in /var/{lib,log}/${PN}; do - keepdir "${x}" - fowners mongodb:mongodb "${x}" - done - - doman debian/mongo*.1 - dodoc README docs/building.md - - newinitd "${FILESDIR}/${PN}.initd-r3" ${PN} - newconfd "${FILESDIR}/${PN}.confd-r3" ${PN} - newinitd "${FILESDIR}/${PN/db/s}.initd-r3" ${PN/db/s} - newconfd "${FILESDIR}/${PN/db/s}.confd-r3" ${PN/db/s} - - insinto /etc - newins "${FILESDIR}/${PN}.conf-r3" ${PN}.conf - newins "${FILESDIR}/${PN/db/s}.conf-r2" ${PN/db/s}.conf - - systemd_dounit "${FILESDIR}/${PN}.service" - - insinto /etc/logrotate.d/ - newins "${FILESDIR}/${PN}.logrotate" ${PN} - - # see bug #526114 - pax-mark emr "${ED}"/usr/bin/{mongo,mongod,mongos} -} - -pkg_preinst() { - # wrt bug #461466 - if [[ "$(get_libdir)" == "lib64" ]]; then - rmdir "${ED}"/usr/lib/ &>/dev/null - fi -} - -src_test() { - # this one test fails - rm jstests/core/repl_write_threads_start_param.js || die - - ./buildscripts/resmoke.py --dbpathPrefix=test --suites core || die "Tests failed" -} - -pkg_postinst() { - local v - for v in ${REPLACING_VERSIONS}; do - if ! version_is_at_least 3.0 ${v}; then - ewarn "!! IMPORTANT !!" - ewarn " " - ewarn "${PN} configuration files have changed !" - ewarn " " - ewarn "Make sure you migrate from /etc/conf.d/${PN} to the new YAML standard in /etc/${PN}.conf" - ewarn " http://docs.mongodb.org/manual/reference/configuration-options/" - ewarn " " - ewarn "Make sure you also follow the upgrading process :" - ewarn " http://docs.mongodb.org/master/release-notes/3.0-upgrade/" - ewarn " " - ewarn "MongoDB 3.0 introduces the WiredTiger storage engine." - ewarn "WiredTiger is incompatible with MMAPv1 and you need to dump/reload your data if you want to use it." - ewarn "Once you have your data dumped, you need to set storage.engine: wiredTiger in /etc/${PN}.conf" - ewarn " http://docs.mongodb.org/master/release-notes/3.0-upgrade/#change-storage-engine-to-wiredtiger" - break - fi - done - - ewarn "Make sure to read the release notes and follow the upgrade process:" - ewarn " https://docs.mongodb.org/manual/release-notes/3.2/" - ewarn " https://docs.mongodb.org/master/release-notes/3.2-upgrade/" - ewarn - ewarn " Starting in 3.2, MongoDB uses the WiredTiger as the default storage engine." -} diff --git a/dev-db/mongodb/mongodb-3.6.3.ebuild b/dev-db/mongodb/mongodb-3.6.3.ebuild new file mode 100644 index 000000000000..5297f47b0f1a --- /dev/null +++ b/dev-db/mongodb/mongodb-3.6.3.ebuild @@ -0,0 +1,170 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PYTHON_COMPAT=( python2_7 ) + +SCONS_MIN_VERSION="2.5.0" +CHECKREQS_DISK_BUILD="2400M" +CHECKREQS_DISK_USR="512M" +CHECKREQS_MEMORY="1024M" + +inherit check-reqs eutils flag-o-matic multilib multiprocessing pax-utils python-single-r1 scons-utils systemd toolchain-funcs user versionator + +MY_P=${PN}-src-r${PV/_rc/-rc} + +DESCRIPTION="A high-performance, open source, schema-free document-oriented database" +HOMEPAGE="https://www.mongodb.com" +SRC_URI="https://fastdl.mongodb.org/src/${MY_P}.tar.gz" + +LICENSE="AGPL-3 Apache-2.0" +SLOT="0" +KEYWORDS="~amd64" +IUSE="debug kerberos libressl mms-agent ssl test +tools" + +RDEPEND=">=app-arch/snappy-1.1.3 + >=dev-cpp/yaml-cpp-0.5.3 + >=dev-libs/boost-1.60:=[threads(+)] + >=dev-libs/libpcre-8.41[cxx] + dev-libs/snowball-stemmer + net-libs/libpcap + >=sys-libs/zlib-1.2.8:= + mms-agent? ( app-admin/mms-agent ) + ssl? ( + !libressl? ( >=dev-libs/openssl-1.0.1g:0= ) + libressl? ( dev-libs/libressl:0= ) + )" +DEPEND="${RDEPEND} + ${PYTHON_DEPS} + dev-python/cheetah[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + dev-python/typing[${PYTHON_USEDEP}] + <dev-util/scons-3 + sys-libs/ncurses + sys-libs/readline + debug? ( dev-util/valgrind ) + kerberos? ( dev-libs/cyrus-sasl[kerberos] ) + test? ( + dev-python/pymongo[${PYTHON_USEDEP}] + )" +PDEPEND="tools? ( >=app-admin/mongo-tools-${PV} )" + +PATCHES=( + "${FILESDIR}/${PN}-3.4.7-no-boost-check.patch" + "${FILESDIR}/${PN}-3.6.1-fix-scons.patch" + "${FILESDIR}/${PN}-3.6.1-no-compass.patch" +) + +S=${WORKDIR}/${MY_P} + +pkg_pretend() { + if [[ -n ${REPLACING_VERSIONS} ]] && [[ ${REPLACING_VERSIONS} < 3.4 ]]; then + ewarn "To upgrade from a version earlier than the 3.4-series, you must" + ewarn "successively upgrade major releases until you have upgraded" + ewarn "to 3.4-series. Then upgrade to 3.6 series." + elif [[ -n ${REPLACING_VERSIONS} ]]; then + ewarn "Be sure to set featureCompatibilityVersion to 3.4 before upgrading." + fi +} + +pkg_setup() { + enewgroup mongodb + enewuser mongodb -1 -1 /var/lib/${PN} mongodb + + python-single-r1_pkg_setup +} + +src_prepare() { + default + + # remove bundled libs + rm -rv src/third_party/{boost-*,pcre-*,scons-*,snappy-*,yaml-cpp-*,zlib-*} || die + + # remove compass + rm -rv src/mongo/installer/compass || die +} + +src_configure() { + # https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source + # --use-system-icu fails tests + # --use-system-tcmalloc is strongly NOT recommended: + scons_opts=( + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + + --disable-warnings-as-errors + --use-system-boost + --use-system-pcre + --use-system-snappy + --use-system-stemmer + --use-system-yaml + --use-system-zlib + ) + + use debug && scons_opts+=( --dbg=on ) + use kerberos && scons_opts+=( --use-sasl-client ) + use ssl && scons_opts+=( --ssl ) + + # respect mongoDB upstream's basic recommendations + # see bug #536688 and #526114 + if ! use debug; then + filter-flags '-m*' + filter-flags '-O?' + fi + + default +} + +src_compile() { + escons "${scons_opts[@]}" core tools +} + +# FEATURES="test -usersandbox" emerge dev-db/mongodb +src_test() { + "${EPYTHON}" ./buildscripts/resmoke.py --dbpathPrefix=test --suites core --jobs=$(makeopts_jobs) || die "Tests failed" +} + +src_install() { + escons "${scons_opts[@]}" --nostrip install --prefix="${ED}"/usr + + local x + for x in /var/{lib,log}/${PN}; do + keepdir "${x}" + fowners mongodb:mongodb "${x}" + fperms 0750 "${x}" + done + + doman debian/mongo*.1 + dodoc README docs/building.md + + newinitd "${FILESDIR}/${PN}.initd-r3" ${PN} + newconfd "${FILESDIR}/${PN}.confd-r3" ${PN} + newinitd "${FILESDIR}/${PN/db/s}.initd-r3" ${PN/db/s} + newconfd "${FILESDIR}/${PN/db/s}.confd-r3" ${PN/db/s} + + insinto /etc + newins "${FILESDIR}/${PN}.conf-r3" ${PN}.conf + newins "${FILESDIR}/${PN/db/s}.conf-r2" ${PN/db/s}.conf + + systemd_dounit "${FILESDIR}/${PN}.service" + + insinto /etc/logrotate.d/ + newins "${FILESDIR}/${PN}.logrotate" ${PN} + + # see bug #526114 + pax-mark emr "${ED}"/usr/bin/{mongo,mongod,mongos} +} + +pkg_preinst() { + # wrt bug #461466 + if [[ "$(get_libdir)" == "lib64" ]]; then + rmdir "${ED}"/usr/lib/ &>/dev/null + fi +} + +pkg_postinst() { + ewarn "Make sure to read the release notes and follow the upgrade process:" + ewarn " https://docs.mongodb.com/manual/release-notes/$(get_version_component_range 1-2)/" + ewarn " https://docs.mongodb.com/manual/release-notes/$(get_version_component_range 1-2)/#upgrade-procedures" +} diff --git a/dev-db/myodbc/Manifest b/dev-db/myodbc/Manifest index 6573e5517232..fa3063ee1e59 100644 --- a/dev-db/myodbc/Manifest +++ b/dev-db/myodbc/Manifest @@ -5,13 +5,17 @@ AUX 5.3-cmake-doc-path.patch 1480 BLAKE2B 5f89253a86fa97fbf4103fbe797f6044924519 AUX 5.3-cxxlinkage.patch 1687 BLAKE2B 6ed84c304bf4fd22cf894e6eaf98202056d78f32b5ef55ac83b19b2dbb2a6b3441adc1faae4eb01d5eae49d01585b08fa231f7f7b9d56530b49ee342e28b7928 SHA512 404242e009e3c22000d599be20856e7610f845abc086519082d9b45ad3a904cfcc569cdcab5eade904a8b27b59af954df0cba870520792290187259a9b0012bc AUX 5.3-mariadb-buffer_length.patch 3242 BLAKE2B 56931a6f9ce1a03b207a7b0fe282f392fc97e9a501666a209ad06391d3ff318b5516e397edf90f8a648eec07967cbd7dbce1fff19f33036448b442568e00d256 SHA512 b267c76da77594715edff83aa223d0e45f7b369a142707f91f44a7c862fdf319d6ffd8726927fd7f44b32a779a0fc96b87e04f882d6cf99f7df0385eaa8021c2 AUX 5.3-mariadb-dynamic-array.patch 3654 BLAKE2B 699cac32b39ea1a6761aa5045c16be413fd499f11f5a1046a92f80c8c5ebffabccbdba174ef90c88ac7d2e6932ab5fc527b8d2a0914a147110f3bacf44fe1e7e SHA512 8599fb01062db680dbfd0f054eab0f91b5ca8f1799fd602ff4634241936ab4d8f5e26e6149f6d92e97241c953369259a142b1ab02e9b8bbe6fb16cd44d78ffff +AUX 5.3.10-cxxlinkage.patch 1027 BLAKE2B b3df78658e4fb3243debb6f95cea6c5530db309ffc50f3a6afaff8bce143d147b4645a4bef4a54f6d04203ea132d4245812f5a2473ad7e9899f6e6b3c0799213 SHA512 f4d6df55313ccba995c8bd2e182397ce2652c2fbc0f0706474386654fb890fc47cad3a18f306206e840a47b729569e9a0ccb1cc2401c5280792afc4f544b41fd +AUX 5.3.10-mariadb.patch 1744 BLAKE2B a9e33c86f999394d77757f69f1f314238123fa4158297961b4ce0f501e6fb743927e892c1f6640945842e843da56a826e5da1a968d84f7e5dcf3b2b4a590c0e8 SHA512 ebf62a2e0cc901fce81d0ad358f62d1c41494a5e35fb5a4df6913d1f4d5b8bbb638a23cabfe483818efa39688744b7be8b98d922b4bdff830de701c665da0fa0 AUX cmake-doc-path.patch 1498 BLAKE2B b79110c92b7fc80c64fdf05b469c4bb333d68610ff4fadc78bd307689651e41bcd66f33fd782db1b69c863ef81faee3d5eb485d5c9bd284db8be3948d2bec7e7 SHA512 2e48af11efb55a1508402d5d1d717a3dfc9897bf0ccce5aa190792fb673ac78b27a9480e951a6347a2c8d0e2fe08a28c11fd08c55dbea835a93f525decaaf09e AUX odbc.ini.m4 406 BLAKE2B 3a20c28b1971753a14a4aa4d30efcc7de833488501a41d9404987567623d48250ce1daea1d3138adaef36741c4f2e0eafc60eba554e5262b45084f93f5205160 SHA512 84ab2a3aab594123d42b65205a7faf8e91fe9416a9e3c4c4c354533b9a298395f59172649c91dc0b671392bfbe5baeaddb6aa47119ce4c825917f3977d9dd521 AUX odbcinst.ini.m4 118 BLAKE2B 6da835746e063f415ad7d640233cfd96e744cd56e12aaab4a21a2bf0bd5f1bd1e5c3d1c9a28522e3aa07c1261abac92301819d4112ac6a000a729aca9f7f7ad6 SHA512 6d929bbffd602a9f060a05998149a6b16334f8a5e3db30d02ff5d38c0065085d085042521e700b87a63766e32aa27ae92be72cef33c2a7aa8f6767b6b71c82c8 DIST mysql-connector-odbc-5.2.7-src.tar.gz 606472 BLAKE2B 297f1ae57802f682616283bae9c3ff7ef88f8f016274884794f6b476bf9b92bc1da8af9cb89f41fa2a74238f91fbc39b9427529b806ac4ffb52aecd895cd8cd8 SHA512 f54ac8a23ade71da85e1335e95eccdccfd68a8687d17a584ced103812bdc5aee8014769a84eaa22724bb2cb23d34c7188c964d3283723defeaef5157a4b3c60f +DIST mysql-connector-odbc-5.3.10-src.tar.gz 2646571 BLAKE2B e85e179ee8a54c8c98dd254e949c08227adc72141d52bc15935eafd60edaf95f47c12ca51fa9472ae29c761d5de2149277c58e6d3f02a566668be17f595ca7ba SHA512 ebe56b95a1690332959a7a37e8ed381b46730fb9f6fbd6522ddc1a6961e4c8cdac59681a957b33abeb6cae12f210278e4063daa59ce952d92acf427bc188e22b DIST mysql-connector-odbc-5.3.9-linux-debian9-x86-32bit.tar.gz 11501665 BLAKE2B e41dd65d940c0c91c67e6ec4c46ea2c3327e96d372c493635d05833862f2aa73919410a9e9a9c090a6fa65fd29e022a9b088c07a5e11089aee04b3b86005ad1e SHA512 02fcf6ac88f6052206aa55b6fc2b37f499da26e596e8e64b1c20e87dc4a24f745416da56c6e1268feff60321f54cb45864b8d34e055ea2f99da37b6efeedc844 DIST mysql-connector-odbc-5.3.9-linux-debian9-x86-64bit.tar.gz 12013057 BLAKE2B e372cfb6ca49f9f01e9e60d7cd497fc009ec38dee76ca2cfb74cc95213b84ef1eebca85e1400f19c9715c0f9b2ef40fc212196e14189f5506be8d0e887507ce4 SHA512 b54ca167f762b4d8b988b4a91f14dc6a4bf49f55bc639ce8eecc9eba6c11400bd3494d74ef77ebe3348bdefd8fb5b8c1b62b3a6beebb926a1899da17ea4a1b44 EBUILD myodbc-5.2.7-r1.ebuild 3363 BLAKE2B c2023e4e3d9b5be097438f32a44b754ac41b3366b978d28220a8cbc5e33575045dd68d120c6bd6e3abe89bce427a560cbfdf8752e609ca2bcf63b616e898a9d0 SHA512 f2b041eec24689bf072691e127381a180545bbef7d60e79ba76160c09ce8088999ee251a439a4bd6cafe5c7055ad454e5b68cf2dd5120353bd40da09c15919e7 -EBUILD myodbc-5.2.7-r3.ebuild 3750 BLAKE2B 6645c7641146af49eff4d377a1a03a7392296d9b322e5cfd336f22441a3811f87f52ddb11d4a157c9674bea25489c9d1abafee927549c76871a4dab3ac982fce SHA512 4f2ffedf90249633cb4ebed682963dee63b0ab69a58ad1201c26ba77108c0d4b4c38d28b09123e4ef79be1a4e0648cb1c361e3cb7c19a825bc708bb4213cad91 +EBUILD myodbc-5.2.7-r3.ebuild 3767 BLAKE2B 40e3d7f3eb5c1a3064f8a790adfb06b66e2317a29a05ec4825ed5fc704de32a1388e0f0eccc4347806c80568335660544712393e61f7e7812f8ae96ccc284d3e SHA512 dd4e3ea7e5cc504b9ee3f59944e4d52a34fec1e7247b6f4f0744c6c5416e69677c9a986d144eb5db62f76c752af3406e0c6659cb6a38021cfe9fefa7b28e54d0 +EBUILD myodbc-5.3.10-r1.ebuild 4189 BLAKE2B 2ba12e3ecb3e403db26dde4050ff91cb9ec0e2db7793c1ebad2b624bdb41c01aff88730e142ca9e50c719802bc834c58d8ec31affaa36f6fbf89aa188096da55 SHA512 f67fa28318bc872730763be47e3b8211584f221485a6aca81dbca3ad34785265dae802960bdec27328cad617e028655286ddc6616fad90f6af46eb62dc696207 EBUILD myodbc-5.3.9.ebuild 3142 BLAKE2B 5f535a2f331a91d4884ccd2f6e7429fe2b981375f6c71a4e4a1d85d1ee226760221a3aa29790c1cf3e69a9963f43c1c266ff9c5c26b4b89d5fd77f5adfe49ca6 SHA512 376f9bb1fb00b8e0ca2fe2f9962bf259eb2bd5828a9422f8f63897756359140a84b1e064d84e6a26590713050f7cf0c3820c1de1fa375e723fa1cf708fa5f5e0 MISC metadata.xml 239 BLAKE2B c4d6706d083b72927d239f41a644a4009c054c1c1a388af7733d3a2daf47d354009eb472573304a6be272601f05535297bcd9ceaea811a741cd905577ffe53d1 SHA512 e6e2fafe2f503db1d12e3d2368a99631ee8d014b7ea802d9879e7e3e2c0f9378675fffccd78ed09b914ae781ac3902567b1a53a721906e3ea63ceb51d0a1654b diff --git a/dev-db/myodbc/files/5.3.10-cxxlinkage.patch b/dev-db/myodbc/files/5.3.10-cxxlinkage.patch new file mode 100644 index 000000000000..796a13754f86 --- /dev/null +++ b/dev-db/myodbc/files/5.3.10-cxxlinkage.patch @@ -0,0 +1,29 @@ +diff -aurN a/cmake/FindMySQL.cmake b/cmake/FindMySQL.cmake +--- a/cmake/FindMySQL.cmake 2016-11-29 07:40:13.000000000 -0500 ++++ b/cmake/FindMySQL.cmake 2017-02-17 13:59:18.115389096 -0500 +@@ -747,7 +747,7 @@ + endif() + + if(NOT MYSQL_CXXFLAGS) +- if(MYSQL_CXX_LINKAGE OR MYSQL_VERSION_ID GREATER 50603) ++ if(MYSQL_CXX_LINKAGE) + _mysql_conf(MYSQL_CXXFLAGS "--cxxflags") + set(MYSQL_CXX_LINKAGE 1) + else() +diff -aurN a/CMakeLists.txt b/CMakeLists.txt +--- a/CMakeLists.txt 2018-02-10 21:41:13.161553751 -0500 ++++ b/CMakeLists.txt 2018-02-10 21:45:20.038398824 -0500 +@@ -379,10 +379,9 @@ + SET(EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}/bin") + SET(LIBRARY_OUTPUT_PATH "${CMAKE_BINARY_DIR}/lib") + +-SET(LIB_SUBDIR "lib") +-IF(RPM_BUILD AND CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64|ppc64|ppc64p7|s390x|sparc64)") +- SET(LIB_SUBDIR "lib64") +-ENDIF() ++IF(NOT LIB_SUBDIR) ++ MESSAGE(ERROR "LIB_SUBDIR is not set") ++ENDIF(NOT LIB_SUBDIR) + + MESSAGE(STATUS "Installation library subdir: ${LIB_SUBDIR}") + diff --git a/dev-db/myodbc/files/5.3.10-mariadb.patch b/dev-db/myodbc/files/5.3.10-mariadb.patch new file mode 100644 index 000000000000..c860349e4b71 --- /dev/null +++ b/dev-db/myodbc/files/5.3.10-mariadb.patch @@ -0,0 +1,58 @@ +--- a/include/sys_main.h 2018-01-19 05:36:38.000000000 -0500 ++++ b/include/sys_main.h 2018-03-01 11:40:04.554713079 -0500 +@@ -20,6 +20,8 @@ + extern "C" { + #endif + ++#include "sys/mysql/psi/psi_memory.h" ++ + #define MY_FAE 8 /* Fatal if any error */ + #define MY_WME 16 /* Write message on error */ + #define MY_ZEROFILL 32 /* my_malloc(), fill array with zero */ +--- a/driver/connect.c 2018-01-19 05:36:38.000000000 -0500 ++++ b/driver/connect.c 2018-03-01 11:39:51.458676373 -0500 +@@ -179,7 +179,7 @@ + /* Set other connection options */ + + if (ds->allow_big_results || ds->safe) +-#if MYSQL_VERSION_ID >= 50709 ++#if MYSQL_VERSION_ID >= 50709 && !defined(MARIADB_BASE_VERSION) + mysql_options(mysql, MYSQL_OPT_MAX_ALLOWED_PACKET, &max_long); + #else + /* max_allowed_packet is a magical mysql macro. */ +@@ -252,7 +252,7 @@ + ds_get_utf8attr(ds->rsakey, &ds->rsakey8)); + } + #endif +-#if MYSQL_VERSION_ID >= 50710 ++#if MYSQL_VERSION_ID >= 50710 && !defined(MARIADB_BASE_VERSION) + { + char tls_options[128] = { 0 }; + if (!ds->no_tls_1) +@@ -323,7 +323,7 @@ + #endif + + mysql->options.use_ssl = !ds->disable_ssl_default; +-#if MYSQL_VERSION_ID >= 50703 ++#if MYSQL_VERSION_ID >= 50703 && !defined(MARIADB_BASE_VERSION) + { + if (ds->ssl_enforce) + { +@@ -332,7 +332,7 @@ + } + #endif + +-#if MYSQL_VERSION_ID >= 50711 ++#if MYSQL_VERSION_ID >= 50711 && !defined(MARIADB_BASE_VERSION) + if (ds->sslmode) + { + unsigned int mode = 0; +@@ -510,7 +510,7 @@ + } + } + +-#if MYSQL_VERSION_ID >= 50709 ++#if MYSQL_VERSION_ID >= 50709 && !defined(MARIADB_BASE_VERSION) + mysql_get_option(mysql, MYSQL_OPT_NET_BUFFER_LENGTH, &dbc->net_buffer_len); + #else + // for older versions just use net_buffer_length() macro diff --git a/dev-db/myodbc/myodbc-5.2.7-r3.ebuild b/dev-db/myodbc/myodbc-5.2.7-r3.ebuild index 326e8d0289e2..5f7d1930d028 100644 --- a/dev-db/myodbc/myodbc-5.2.7-r3.ebuild +++ b/dev-db/myodbc/myodbc-5.2.7-r3.ebuild @@ -15,7 +15,7 @@ RESTRICT="primaryuri" LICENSE="GPL-2" SLOT="${MAJOR}" -KEYWORDS="~amd64 ~ppc ~x86" +KEYWORDS="amd64 ~ppc ~x86" IUSE="" # Does not build with mysql-connector-c @@ -69,6 +69,7 @@ multilib_src_configure() { -DWITH_DOCUMENTATION_INSTALL_PATH=/usr/share/doc/${PF} -DMYSQL_LIB_DIR="${ROOT}/usr/$(get_libdir)" -DLIB_SUBDIR="$(get_libdir)" + -DNO_THREADS=ON ) cmake-utils_src_configure } diff --git a/dev-db/myodbc/myodbc-5.3.10-r1.ebuild b/dev-db/myodbc/myodbc-5.3.10-r1.ebuild new file mode 100644 index 000000000000..5aeb327fb5b1 --- /dev/null +++ b/dev-db/myodbc/myodbc-5.3.10-r1.ebuild @@ -0,0 +1,147 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +# Build is broken with ninja +CMAKE_MAKEFILE_GENERATOR=emake + +inherit cmake-multilib flag-o-matic versionator + +MAJOR="$(get_version_component_range 1-2 $PV)" +MY_PN="mysql-connector-odbc" +MY_P="${MY_PN}-${PV/_p/r}-src" + +DESCRIPTION="ODBC driver for MySQL" +HOMEPAGE="http://www.mysql.com/products/myodbc/" +SRC_URI="https://dev.mysql.com/get/Downloads/Connector-ODBC/${MAJOR}/${MY_P}.tar.gz" + +LICENSE="GPL-2" +SLOT="${MAJOR}" +KEYWORDS="~amd64 ~ppc ~x86" +IUSE="" + +# Does not build with libmariadb +RDEPEND=" + dev-db/unixODBC[${MULTILIB_USEDEP}] + ~virtual/libmysqlclient-18[${MULTILIB_USEDEP}] + abi_x86_32? ( + !app-emulation/emul-linux-x86-db[-abi_x86_32(-)] + ) + !>=dev-db/mariadb-10.2.0[client-libs(+)] + !dev-db/mariadb-connector-c[mysqlcompat(-)] +" +DEPEND="${RDEPEND}" +S=${WORKDIR}/${MY_P} + +# Careful! +DRIVER_NAME="${PN}-${SLOT}" + +# Patch document path so it doesn't install files to /usr +PATCHES=( + "${FILESDIR}/${MAJOR}-cmake-doc-path.patch" + "${FILESDIR}/5.3.10-cxxlinkage.patch" +# "${FILESDIR}/${MAJOR}-mariadb-dynamic-array.patch" + "${FILESDIR}/5.2.7-my_malloc.patch" + "${FILESDIR}/5.3.10-mariadb.patch" +) + +src_prepare() { + # Fix undefined references due to standards change +# append-cflags -std=gnu89 + + # Remove Tests + sed -i -e "s/ADD_SUBDIRECTORY(test)//" \ + "${S}/CMakeLists.txt" + + # Fix as-needed on the installer binary + echo "TARGET_LINK_LIBRARIES(myodbc-installer odbc)" >> "${S}/installer/CMakeLists.txt" + + cmake-utils_src_prepare +} + +multilib_src_configure() { +# local clientlib +# for clientlib in "mariadb" "perconaclient" "mysqlclient" "notfound" ; do +# [[ -x "${EPREFIX}/usr/$(get_libdir)/lib${clientlib}.so" ]] && break +# done +# [[ "${clientlib}x" == "notfoundx" ]] && \ +# die "Installed client library name could not be determined" + + # MYSQL_CXX_LINKAGE expects "mysql_config --cxxflags" which doesn't exist on MariaDB + mycmakeargs+=( + -DMYSQL_CXX_LINKAGE=0 + -DWITH_UNIXODBC=1 +# -DMYSQLCLIENT_LIB_NAME="${clientlib}" +# -DMYSQLCLIENT_LIB_NAME="mysqlclient" + -DWITH_DOCUMENTATION_INSTALL_PATH=/usr/share/doc/${PF} + -DMYSQL_LIB_DIR="${EPREFIX}/usr/$(get_libdir)" + -DLIB_SUBDIR="$(get_libdir)/${PN}-${MAJOR}" + -DMYSQL_INCLUDE_DIR="$(mysql_config --variable=pkgincludedir)" + -DMYSQLCLIENT_NO_THREADS=ON + -DDISABLE_GUI=ON + # The NUMA and LIBWRAP options are not really used. + # They are just copied from the server code + -DWITH_NUMA=OFF + -DWITH_LIBWRAP=OFF + ) + cmake-utils_src_configure +} + +multilib_src_install_all() { + debug-print-function ${FUNCNAME} "$@" + + dodir /usr/share/${PN}-${SLOT} + for i in odbc.ini odbcinst.ini; do + einfo "Building $i" + sed \ + -e "s,__PN__,${DRIVER_NAME},g" \ + -e "s,__PF__,${MAJOR},g" \ + -e "s,lib/libmyodbc3.so,$(get_libdir)/${PN}-${MAJOR}/libmyodbc${SLOT:0:1}a.so,g" \ + >"${D}"/usr/share/${PN}-${SLOT}/${i} \ + <"${FILESDIR}"/${i}.m4 \ + || die "Failed to build $i" + done; + mv "${D}/usr/bin/myodbc-installer" \ + "${D}/usr/bin/myodbc-installer-${MAJOR}" || die "failed to move slotted binary" +} + +pkg_config() { + + [ "${ROOT}" != "/" ] && \ + die 'Sorry, non-standard ROOT setting is not supported :-(' + + local msg='MySQL ODBC driver' + local drivers=$(/usr/bin/odbcinst -q -d) + + if echo $drivers | grep -vq "^\[${DRIVER_NAME}\]$" ; then + ebegin "Installing ${msg}" + /usr/bin/odbcinst -i -d -f /usr/share/${PN}-${SLOT}/odbcinst.ini + rc=$? + eend $rc + [ $rc -ne 0 ] && die + else + einfo "Skipping already installed ${msg}" + fi + + local sources=$(/usr/bin/odbcinst -q -s) + msg='sample MySQL ODBC DSN' + if echo $sources | grep -vq "^\[${DRIVER_NAME}-test\]$"; then + ebegin "Installing ${msg}" + /usr/bin/odbcinst -i -s -l -f /usr/share/${PN}-${SLOT}/odbc.ini + rc=$? + eend $rc + [ $rc -ne 0 ] && die + else + einfo "Skipping already installed ${msg}" + fi +} + +pkg_postinst() { + + elog "If this is a new install, please run the following command" + elog "to configure the MySQL ODBC drivers and sources:" + elog "emerge --config =${CATEGORY}/${PF}" + elog "Please note that the driver name used to form the DSN now includes the SLOT." + elog "The myodbc-install utility is installed as myodbc-install-${MAJOR}" +} diff --git a/dev-db/mysql-connector-c/Manifest b/dev-db/mysql-connector-c/Manifest index ee1614f80609..ddc7ba09a0f9 100644 --- a/dev-db/mysql-connector-c/Manifest +++ b/dev-db/mysql-connector-c/Manifest @@ -1,5 +1,5 @@ AUX 20028_all_mysql-5.6-gcc7.patch 603 BLAKE2B f03dc2e39dca4496cc084b427daa60014464876df456bf290a5de3431b481691a35ac9ac00d71cc86931efe3bca70dae012bedefc6d29ad7fec2feeb07cce014 SHA512 f9dab813418f38f3a877b8672cdec153d6f0f289144c35277e8275cc7a58195f974b7bf76b74f8dd2403643b1199f5e6d6bcde661ce5f79f614ff10347b52278 AUX mysql_com.patch 1787 BLAKE2B 4fbd40325f400586926072927b3f07231d577f18c1e30951c34c36ded9b9e42b7c3dc47ca51df974265c28b40116e30274d8a73d6a843e5d9d0074430bc17b08 SHA512 340365b05d72045af0ef12fd5c260a796be547d9abb97a6ef3d6aaf30aecf29368c1dfa28f1284da544a81656f0436f11ada2f8c5cb481540d1f1c90dd354b49 DIST mysql-connector-c-6.1.11-src.tar.gz 3489345 BLAKE2B 813512520ef660521221565a4466e81d902629d0ee731f746b68eed2b9129ea8361fcabe184537ec8ba91aed5a4b02dfb3450b36524c2e98f81fba148eee0cf1 SHA512 271395c888a93b833e0bbe1840b9987ecdb37d0f1cf89904207cc9aa99ed32e538aee8c9529ff39b6533947159776a8f5aa079da86ed51b1d26b086f4ffdd7c6 -EBUILD mysql-connector-c-6.1.11.ebuild 2206 BLAKE2B 1ac284b75e86cc7999d53e7680d641eee2be08b64c47477130450e321e1c2f8619798d3725cd27bb942fbf131ae24cf621c18f9b4c90278a57c2328e66c00d74 SHA512 924073576b7aeedf92f24b019b2f38a82a94feb4c39c884fcfbdc5297961da594d42741b6668200afc2af671909cef1031d0863bc99c967883ff52f860f28646 +EBUILD mysql-connector-c-6.1.11.ebuild 2212 BLAKE2B 2a735b33e81d833c8c4278bdc4690033179610b7ff794b60d66e627ae2134d1592985addf7a639244abf72b8c8f07c1055d29a91aed7f198060c8bc2c6453e76 SHA512 d2558b9272a3d70a11e12c5dbaea3466ac531699e207edfb1553faeef163b9f9e54dff1e208c56d26536a0f9b8718108cd711c79ffaa720f55901c3b87092728 MISC metadata.xml 239 BLAKE2B c4d6706d083b72927d239f41a644a4009c054c1c1a388af7733d3a2daf47d354009eb472573304a6be272601f05535297bcd9ceaea811a741cd905577ffe53d1 SHA512 e6e2fafe2f503db1d12e3d2368a99631ee8d014b7ea802d9879e7e3e2c0f9378675fffccd78ed09b914ae781ac3902567b1a53a721906e3ea63ceb51d0a1654b diff --git a/dev-db/mysql-connector-c/mysql-connector-c-6.1.11.ebuild b/dev-db/mysql-connector-c/mysql-connector-c-6.1.11.ebuild index c4494ba6484a..6958e454e1dc 100644 --- a/dev-db/mysql-connector-c/mysql-connector-c-6.1.11.ebuild +++ b/dev-db/mysql-connector-c/mysql-connector-c-6.1.11.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2017 Gentoo Foundation +# Copyright 1999-2018 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -18,7 +18,7 @@ LICENSE="GPL-2" SRC_URI="https://dev.mysql.com/get/Downloads/Connector-C/${P}-src.tar.gz" S="${WORKDIR}/${P}-src" -KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc64 ~x86" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc64 ~x86" SUBSLOT="18" SLOT="0/${SUBSLOT}" diff --git a/dev-db/pgrouting/Manifest b/dev-db/pgrouting/Manifest index 6cf5682a1f5a..53f8702ff6e8 100644 --- a/dev-db/pgrouting/Manifest +++ b/dev-db/pgrouting/Manifest @@ -1,6 +1,3 @@ -AUX no-contrib-when-use-extension.patch 3077 BLAKE2B c9501565e97aeccfb60ad1d6226795bf3c918a0e02f67a26bf0ad8c0333b64e3d99732ac8f85869c25d51b06d5353e7a8cf1e0ffb5d71dc4c92ac418c4ef1786 SHA512 be0e5ad3fe44c8138e44ee61744fb57e9d759cc066619bc0e2d1758d26ef075b88cb52ccea6b6f2e2b5af7e0d5db982a0da0762c54dabccf9f71116ffbad87f4 -DIST pgrouting-2.0.0.tar.gz 3765933 BLAKE2B 3bf574b79851e33bb9b5f99220757c02061ec052027940d73f7e8602e876644a0cb780fb3291c60a6e4fa54d886ed574d2a651971c01cd950778b561356c997f SHA512 4a74cc1ce1bbbb8d95ae2aabc712e30c97e0418b1e4f28a255ecd9e57577bd7081a52e6e64a63cb06c9ca659271273b37bdbefb94d49e69b9c2ce45e96911884 -DIST pgrouting-2.5.0.tar.gz 7157856 BLAKE2B aa9c9afb982e367692aefc07583d0e362503d6c3d4b7d1ec17f6eee60848e8d01a54b520e7417cc92d6fb3f4b526da1826abc7d7e8db88126d8946ae6f699b0b SHA512 663dd5f5133d0bf1bbf7c35480c644ba848e65259023a0ef7f31b813b8ed99a4e2cfb813d870de7550e98ca1f8b0255aa28b2c948d13e8975af9f0d19f820784 -EBUILD pgrouting-2.0.0.ebuild 2283 BLAKE2B 8152a640db0f1918241342d8b42a695ba5b83a0481d1a65eedeeb7f3bedeed5e03e6840664794b3c95d29a4959f54d1bfbad9403006ad7531f23b0e627ff4ff6 SHA512 51ee8a469d30b32df77026e51fa4db70d9c4ad4334c54ed7447c52deba008524b45a56a594825071cc64a0bfb39a919c991ffe3569eca3bb4a79c4e5ff1501e9 -EBUILD pgrouting-2.5.0.ebuild 2172 BLAKE2B 3bf7bc2b610179b3ed0efb91dacd8c14e7c4198761371be605be8eefef2f78218b50d7640ac4818fe5198f41d15bd4481c17d556aecb29c42f9ad278f7d81318 SHA512 23c8b4a82c36958f63bf1cdcfb1e6983efe87db16f0a8e3f4154bb3a4ad2fc0ac2fddffefb3082680b6f9ab76fdf096d5988d00ac49b292f6fee1ec4a2c8cac5 +DIST pgrouting-2.5.2.tar.gz 7221479 BLAKE2B afbf29b7cbd52df526203198fb76d9e9e37e88a4b92d2139975238a14fe5a30c8102449d157e391913e690129a1ca8ac718763d9242193cac4080bc7347e1553 SHA512 9d9d9ebbcbc003f62bf1f0d548363e756012cdce55a9c3ef56ae9a5a510f25337898becf42f3e04bf10e8d3672ebf698def03833bba33410b65e0d2bdd42aecd +EBUILD pgrouting-2.5.2.ebuild 1387 BLAKE2B 0efdb96f64544c4fcf251515ab1119faa0d613983ae66d4cb3c9f0bcd64eed46044079c831c4bbd1d930300326ddbff85a60219a1a44d8dac6fa468599c08209 SHA512 11d388428235fc68da299adcc02547608c9967c8c5fe1356139742eb070ae59f51ce6207b797a68281e675abeaa2826a6acef17eeb79cb649a20c2bb337b0272 MISC metadata.xml 534 BLAKE2B 3bc33ee8118ea199f4261665ffd62fd7cde78928ed64556ed0ea84346da4405b6f5b4765b9a11c02a9f3e719eac3ff9d8392accd11361372437eea26ac0b6e3c SHA512 2892a64cf6e8e34e1ede87ddbcbaabd7e66bc5a45c5a8e21b33103af83e1a6a92c665fbfc02af6ae8fa6aec9df6ba340a40d3332d2da557789c95a312439a55f diff --git a/dev-db/pgrouting/files/no-contrib-when-use-extension.patch b/dev-db/pgrouting/files/no-contrib-when-use-extension.patch deleted file mode 100644 index e26af3ef0da3..000000000000 --- a/dev-db/pgrouting/files/no-contrib-when-use-extension.patch +++ /dev/null @@ -1,76 +0,0 @@ -diff -Naur pgrouting-2.0.0.orig/CMakeLists.txt pgrouting-2.0.0/CMakeLists.txt ---- pgrouting-2.0.0.orig/CMakeLists.txt 2013-09-24 16:38:31.000000000 -0400 -+++ pgrouting-2.0.0/CMakeLists.txt 2014-11-07 06:48:11.555026180 -0500 -@@ -170,16 +170,13 @@ - OUTPUT_VARIABLE SHARE_DIR) - - if(SHARE_DIR) -- # Always install in "contrib" directory of PostgreSQL -- set(CONTRIB_DIR "${SHARE_DIR}/contrib/pgrouting-${PGROUTING_VERSION_MAJOR}.${PGROUTING_VERSION_MINOR}") -- message(STATUS "Contrib directory for SQL files is set to ${CONTRIB_DIR}") -- - # Install as extension if supported by the version of PostgreSQL - if(USE_PG_EXTENSION) - set(SHARE_DIR "${SHARE_DIR}/extension") - message(STATUS "Extension directory for SQL files is set to ${SHARE_DIR}") -- #else(USE_PG_EXTENSION) -- # set(SHARE_DIR "/usr/share/pgrouting") -+ else(USE_PG_EXTENSION) -+ set(CONTRIB_DIR "${SHARE_DIR}/contrib/pgrouting-${PGROUTING_VERSION_MAJOR}.${PGROUTING_VERSION_MINOR}") -+ message(STATUS "Contrib directory for SQL files is set to ${CONTRIB_DIR}") - endif(USE_PG_EXTENSION) - else(SHARE_DIR) - message(FATAL_ERROR "pg_config --sharedir failed to return a value. Please check your PostgreSQL installation!") -@@ -347,22 +344,24 @@ - - install(FILES ${LIBS_TO_INSTALL} DESTINATION ${LIB_DIR}) - --install(FILES -+if(USE_PG_EXTENSION) -+ install(FILES - "${CMAKE_BINARY_DIR}/lib/pgrouting--${PGROUTING_VERSION_STRING}.sql" - "${CMAKE_BINARY_DIR}/lib/pgrouting.control" - "${CMAKE_BINARY_DIR}/lib/pgrouting_legacy.sql" - DESTINATION "${SHARE_DIR}") -- --# The following probably could be done better --# The idea is to also have a "pgrouting-x.x" directory in PostgreSQL contrib --configure_file("${CMAKE_BINARY_DIR}/lib/pgrouting--${PGROUTING_VERSION_STRING}.sql" -+else(USE_PG_EXTENSION) -+ # The following probably could be done better -+ # The idea is to also have a "pgrouting-x.x" directory in PostgreSQL contrib -+ configure_file("${CMAKE_BINARY_DIR}/lib/pgrouting--${PGROUTING_VERSION_STRING}.sql" - "${CMAKE_BINARY_DIR}/lib/pgrouting.sql" COPYONLY) - --install(FILES -+ install(FILES - "${CMAKE_BINARY_DIR}/lib/pgrouting.sql" - "${CMAKE_BINARY_DIR}/lib/pgrouting.control" - "${CMAKE_BINARY_DIR}/lib/pgrouting_legacy.sql" - DESTINATION "${CONTRIB_DIR}") -+endif(USE_PG_EXTENSION) - - # TODO: The following probably should be done better - if(WITH_DD) -@@ -372,12 +371,14 @@ - configure_file("${PGROUTING_SOURCE_DIR}/src/driving_distance/sql/routing_dd_legacy.sql" - "${CMAKE_BINARY_DIR}/lib/pgrouting_dd_legacy.sql" COPYONLY) - -- install(FILES -- "${CMAKE_BINARY_DIR}/lib/pgrouting_dd_legacy.sql" -- DESTINATION "${SHARE_DIR}") -- -- install(FILES -- "${CMAKE_BINARY_DIR}/lib/pgrouting_dd_legacy.sql" -- DESTINATION "${CONTRIB_DIR}") -+ if(USE_PG_EXTENSION) -+ install(FILES -+ "${CMAKE_BINARY_DIR}/lib/pgrouting_dd_legacy.sql" -+ DESTINATION "${SHARE_DIR}") -+ else(USE_PG_EXTENSION) -+ install(FILES -+ "${CMAKE_BINARY_DIR}/lib/pgrouting_dd_legacy.sql" -+ DESTINATION "${CONTRIB_DIR}") -+ endif(USE_PG_EXTENSION) - endif(WITH_DD) - diff --git a/dev-db/pgrouting/pgrouting-2.0.0.ebuild b/dev-db/pgrouting/pgrouting-2.0.0.ebuild deleted file mode 100644 index 7a36fce1799c..000000000000 --- a/dev-db/pgrouting/pgrouting-2.0.0.ebuild +++ /dev/null @@ -1,100 +0,0 @@ -# Copyright 1999-2016 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI="5" -POSTGRES_COMPAT=( 9.{0,1,2,3,4} ) - -inherit eutils cmake-utils - -DESCRIPTION="pgRouting extends PostGIS and PostgreSQL with geospatial routing functionality." -HOMEPAGE="http://pgrouting.org/index.html" -LICENSE="GPL-2 MIT Boost-1.0" - -SLOT="0" -KEYWORDS="~amd64 ~x86" -SRC_URI="https://github.com/pgRouting/pgrouting/archive/v${PV}.tar.gz -> ${PN}-${PV}.tar.gz" -IUSE="+drivingdistance doc pdf html" - -REQUIRED_USE="html? ( doc ) pdf? ( doc )" - -RDEPEND=" - || ( - dev-db/postgresql:9.4[server] - dev-db/postgresql:9.3[server] - dev-db/postgresql:9.2[server] - dev-db/postgresql:9.1[server] - dev-db/postgresql:9.0[server] - ) - >=dev-db/postgis-2.0 - dev-libs/boost - drivingdistance? ( sci-mathematics/cgal ) -" - -DEPEND=" - doc? ( >=dev-python/sphinx-1.1 ) - pdf? ( >=dev-python/sphinx-1.1[latex] ) -" - -# Needs a running psql instance, doesn't work out of the box -RESTRICT="test" - -postgres_check_slot() { - if ! declare -p POSTGRES_COMPAT &>/dev/null; then - die 'POSTGRES_COMPAT not declared.' - fi - -# Don't die because we can't run postgresql-config during pretend. -[[ "$EBUILD_PHASE" = "pretend" \ - && -z "$(which postgresql-config 2> /dev/null)" ]] && return 0 - - local res=$(echo ${POSTGRES_COMPAT[@]} \ - | grep -c $(postgresql-config show 2> /dev/null) 2> /dev/null) - - if [[ "$res" -eq "0" ]] ; then - eerror "PostgreSQL slot must be set to one of: " - eerror " ${POSTGRES_COMPAT[@]}" - return 1 - fi - - return 0 -} - -pkg_pretend() { - postgres_check_slot || die -} - -pkg_setup() { - postgres_check_slot || die -} - -src_prepare() { - epatch "${FILESDIR}/no-contrib-when-use-extension.patch" -} - -src_configure() { - local mycmakeargs=( - $(cmake-utils_use_with drivingdistance DD) - $(cmake-utils_use_with doc DOC) - $(cmake-utils_use_build doc MAN) - $(cmake-utils_use_build html HTML) - $(cmake-utils_use_build pdf LATEX) - ) - - cmake-utils_src_configure -} - -src_compile() { - local make_opts - use doc && make_opts="all doc" - cmake-utils_src_make ${make_opts} -} - -src_install() { - use doc && doman "${BUILD_DIR}"/doc/man/en/pgrouting.7 - use html && dohtml -r "${BUILD_DIR}"/doc/html/* - use pdf && dodoc "${BUILD_DIR}"/doc/latex/en/*.pdf - - dodoc README* VERSION - - cmake-utils_src_install -} diff --git a/dev-db/pgrouting/pgrouting-2.5.0.ebuild b/dev-db/pgrouting/pgrouting-2.5.0.ebuild deleted file mode 100644 index 79e1b0aa8f7f..000000000000 --- a/dev-db/pgrouting/pgrouting-2.5.0.ebuild +++ /dev/null @@ -1,95 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI="5" -POSTGRES_COMPAT=( 9.{4,5,6} 10 ) - -inherit eutils cmake-utils - -DESCRIPTION="pgRouting extends PostGIS and PostgreSQL with geospatial routing functionality." -HOMEPAGE="http://pgrouting.org/index.html" -LICENSE="GPL-2 MIT Boost-1.0" - -SLOT="0" -KEYWORDS="~amd64 ~x86" -SRC_URI="https://github.com/pgRouting/pgrouting/archive/v${PV}.tar.gz -> ${PN}-${PV}.tar.gz" -IUSE="+drivingdistance doc pdf html" - -REQUIRED_USE="html? ( doc ) pdf? ( doc )" - -RDEPEND=" - || ( - dev-db/postgresql:10[server] - dev-db/postgresql:9.6[server] - dev-db/postgresql:9.5[server] - dev-db/postgresql:9.4[server] - ) - >=dev-db/postgis-2.0 - dev-libs/boost - drivingdistance? ( sci-mathematics/cgal ) -" - -DEPEND=" - doc? ( >=dev-python/sphinx-1.1 ) - pdf? ( >=dev-python/sphinx-1.1[latex] ) -" - -# Needs a running psql instance, doesn't work out of the box -RESTRICT="test" - -postgres_check_slot() { - if ! declare -p POSTGRES_COMPAT &>/dev/null; then - die 'POSTGRES_COMPAT not declared.' - fi - -# Don't die because we can't run postgresql-config during pretend. -[[ "$EBUILD_PHASE" = "pretend" \ - && -z "$(which postgresql-config 2> /dev/null)" ]] && return 0 - - local res=$(echo ${POSTGRES_COMPAT[@]} \ - | grep -c $(postgresql-config show 2> /dev/null) 2> /dev/null) - - if [[ "$res" -eq "0" ]] ; then - eerror "PostgreSQL slot must be set to one of: " - eerror " ${POSTGRES_COMPAT[@]}" - return 1 - fi - - return 0 -} - -pkg_pretend() { - postgres_check_slot || die -} - -pkg_setup() { - postgres_check_slot || die -} - -src_configure() { - local mycmakeargs=( - $(cmake-utils_use_with drivingdistance DD) - $(cmake-utils_use_with doc DOC) - $(cmake-utils_use_build doc MAN) - $(cmake-utils_use_build html HTML) - $(cmake-utils_use_build pdf LATEX) - ) - - cmake-utils_src_configure -} - -src_compile() { - local make_opts - use doc && make_opts="all doc" - cmake-utils_src_make ${make_opts} -} - -src_install() { - use doc && doman "${BUILD_DIR}"/doc/man/en/pgrouting.7 - use html && dohtml -r "${BUILD_DIR}"/doc/html/* - use pdf && dodoc "${BUILD_DIR}"/doc/latex/en/*.pdf - - dodoc README* VERSION - - cmake-utils_src_install -} diff --git a/dev-db/pgrouting/pgrouting-2.5.2.ebuild b/dev-db/pgrouting/pgrouting-2.5.2.ebuild new file mode 100644 index 000000000000..fa48f5a3fb69 --- /dev/null +++ b/dev-db/pgrouting/pgrouting-2.5.2.ebuild @@ -0,0 +1,64 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +POSTGRES_COMPAT=( 9.{4,5,6} 10 ) +POSTGRES_USEDEP="server" + +inherit postgres cmake-utils + +DESCRIPTION="pgRouting extends PostGIS and PostgreSQL with geospatial routing functionality." +HOMEPAGE="http://pgrouting.org/" +LICENSE="GPL-2 MIT Boost-1.0" + +SLOT="0" +KEYWORDS="~amd64 ~x86" +SRC_URI="https://github.com/pgRouting/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" +IUSE="+drivingdistance doc pdf html" + +REQUIRED_USE="html? ( doc ) pdf? ( doc )" + +RDEPEND="${POSTGRES_DEP} + >=dev-db/postgis-2.0 + dev-libs/boost + drivingdistance? ( sci-mathematics/cgal ) +" + +DEPEND=" + doc? ( >=dev-python/sphinx-1.1 ) + pdf? ( >=dev-python/sphinx-1.1[latex] ) +" + +# Needs a running psql instance, doesn't work out of the box +RESTRICT="test" + +pkg_setup() { + postgres_pkg_setup +} + +src_configure() { + local mycmakeargs=( + -DBUILD_HTML=$(usex html) + -DBUILD_LATEX=$(usex pdf) + -DBUILD_MAN=$(usex doc) + -DWITH_DD=$(usex drivingdistance) + -DWITH_DOC=$(usex doc) + ) + + cmake-utils_src_configure +} + +src_compile() { + local make_opts + use doc && make_opts="all doc" + cmake-utils_src_make ${make_opts} +} + +src_install() { + cmake-utils_src_install + + use doc && doman "${BUILD_DIR}"/doc/man/en/pgrouting.7 + use html && dodoc -r "${BUILD_DIR}"/doc/html + use pdf && dodoc "${BUILD_DIR}"/doc/latex/en/*.pdf +} diff --git a/dev-db/phpmyadmin/Manifest b/dev-db/phpmyadmin/Manifest index 858e176092f8..4756d703d973 100644 --- a/dev-db/phpmyadmin/Manifest +++ b/dev-db/phpmyadmin/Manifest @@ -6,5 +6,5 @@ DIST phpMyAdmin-4.7.8-all-languages.tar.xz 6218056 BLAKE2B 879ef6703711725781fcf EBUILD phpmyadmin-4.0.10.20.ebuild 1562 BLAKE2B 402c8f669c785bb084a8d7af247c62cd070eced8a613b43303bb2bb44781041f3e099fe5a4ff5817e63ff8260b898f4bed232ffa7e358075991bbe6f5a5656cd SHA512 e15e47f37a54090574b4c4554ff295fb9ad73543aebed5718e28575c238b3e59c393b091eb34ddccc04be8297b08deb442d27e12c595f846d8810aa50561af64 EBUILD phpmyadmin-4.7.0.ebuild 1568 BLAKE2B bf1ade74bd74565b12e48237ed3acd11fbe066aeae08d8336cde2dcf104e6caeefa351aa8da751673cae6430e0b96bdf93ee382b3df22e22ead06d434c6b17a4 SHA512 9ba65eb7c35fe80be1f4bfe6a967e72e4e287f868f6126120f972ff12ade1def36a6bdfe02a8ed8b9cf9fc71f8c8561de4696567fe539b414e5ddae1932a0a0b EBUILD phpmyadmin-4.7.7-r1.ebuild 1567 BLAKE2B 8b4612d39c9e7e62b567662a2c932047f2892d3b54f61348eb8adc0ed82739d0ee3548a8a86ed50f28c0ac975de0082e223f8cbc518f8cb15f8328432c70aa0e SHA512 bd185db33047f9aa55469dc96995d9e298739a108ec4f8723ca875331a2ad5c8e9f3f12e6d632cb924e4899060ac3717fb6f6969a07f25715bfa3977666ce8b6 -EBUILD phpmyadmin-4.7.8.ebuild 1568 BLAKE2B 5e8520a58a274ebca68bc6e8692b96d663332aef82b40ad456441eb0883551d45bd7ad562ec2f8fc9a7beaeb794954558eb1f8d081e834b5d70fef21b99dbca9 SHA512 af18ce3c8dbc4ffd01750fa63c4b849055f8767f89a601b42b7d9118d25dc77c925a1987a9a3158c9b6b0c6f19e1494ca5bc0fe1556990c11a8deeadc1e9510e +EBUILD phpmyadmin-4.7.8.ebuild 1567 BLAKE2B 8b4612d39c9e7e62b567662a2c932047f2892d3b54f61348eb8adc0ed82739d0ee3548a8a86ed50f28c0ac975de0082e223f8cbc518f8cb15f8328432c70aa0e SHA512 bd185db33047f9aa55469dc96995d9e298739a108ec4f8723ca875331a2ad5c8e9f3f12e6d632cb924e4899060ac3717fb6f6969a07f25715bfa3977666ce8b6 MISC metadata.xml 701 BLAKE2B aef0a047bca31221714bf27203bd720863c5cef6b7b4dd72b441761a0638bca38c03610e65b3819ca0fba6577973908d7ca40ec8baa3aac1255d19b7cfa9f0a7 SHA512 6dcb099779cd0db4928ee812c81fee762612846044e6ee3df3b661a2dce6aed01420d0bc1301c8ff9d763fb8aeaeef3290a7889b32705fc48e8c392aa8b8ca82 diff --git a/dev-db/phpmyadmin/phpmyadmin-4.7.8.ebuild b/dev-db/phpmyadmin/phpmyadmin-4.7.8.ebuild index d3ce6a6c4b28..ae27f08a6d20 100644 --- a/dev-db/phpmyadmin/phpmyadmin-4.7.8.ebuild +++ b/dev-db/phpmyadmin/phpmyadmin-4.7.8.ebuild @@ -14,7 +14,7 @@ HOMEPAGE="https://www.phpmyadmin.net/" SRC_URI="https://files.phpmyadmin.net/${MY_PN}/${MY_PV}/${MY_P}.tar.xz" LICENSE="GPL-2" -KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~ppc-macos ~x64-macos ~x86-macos" +KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86 ~x86-fbsd ~ppc-macos ~x64-macos ~x86-macos" IUSE="setup" RDEPEND=" diff --git a/dev-db/postgresql/Manifest b/dev-db/postgresql/Manifest index d116f34423a7..388d8b0ce2c5 100644 --- a/dev-db/postgresql/Manifest +++ b/dev-db/postgresql/Manifest @@ -21,6 +21,7 @@ AUX postgresql.service-9.6-r1 1477 BLAKE2B 2a652d5b2892f3a52f484fcc0b4f4dad09cf4 AUX postgresql.tmpfiles 39 BLAKE2B 25a5725af53c8e4e4009887e998172dd863ce218a5438351194548c4fc8ea15308dfba3602d5a922cf49b46015198268a4a4528119d8a74dcef4cc4c1767c052 SHA512 498060f2a597cf374f4fb31deaa2d6c5b00edef68efc0e71b82bfc20b717ae12518ba18fcb455a0c518ebba1a0868f38321470616151d02fa79b889a66dcb9f8 DIST postgresql-10.1.tar.bz2 19669989 BLAKE2B 2fbe782023b6d55c6fadaba38e517c60038b3b7b0a14fa8793043f7b9c4719a692440f286bb1f898045b5f56ef1c064f97f36e821990755077dc8d9bb0dbd639 SHA512 06050d353aa43f32e0de0199d833d8a4652aff893b718b1c40ed31837838f73fe4d977ac0f2164ab97b3eeff4aae3409f440601740898a893877d96bc0ed1882 DIST postgresql-10.2.tar.bz2 19901836 BLAKE2B ea626774dc11463418b3d0126d04bd2d8eb7e8bb299551bff0c30c7f999f37a1f48e6bbfcde1ee15c0e0519e222bfe14f14d985503fe517a06f127009148ae98 SHA512 bac61644c12c31e2dce97ec0134902a2a7141e922619015425961b963961b21210ca840f59ba585d3d75c7e34cb640f2ebeaa2b25c4a866db68f5e73a8f8a448 +DIST postgresql-10.3.tar.bz2 19959653 BLAKE2B ba3b05f53b0f879b18d6d0649bf819697c77a066b49d941a96d13a4741854b01aeb0c8b868d6550a08ad52572c9463c968660aa83c16cbaa5b4bf7a89387a524 SHA512 05cf82d3483bdf38734e6ff0fef6b80e7f8fd3cb5ea6792ffe222a599d97d1a29638970bf28ebf5bd1f877e8dcd9986d88f5c5e5379e74fe79ce83e20d2babba DIST postgresql-9.2.19.tar.bz2 16466698 BLAKE2B ca5e84ac33923b36639bee403935c14c87bf37cd8061eb1d82bc1816449910ebe1373f74c2467850650fb7c3cadfe049a168ddc4a7e64ce54515731df552992a SHA512 d3b4c5578bf6d6580028e775bff81a921258cb53b6b06567d96a352d14f3b63063adb480b2f5e2029baf8a034e14b5cd75eebc04f1ed7b16c849e1a5ec1f4867 DIST postgresql-9.2.22.tar.bz2 16531224 BLAKE2B 2d3b73db5c3082872df824b8e14e65c6cf4f7389f88b7ed577ddf59570294e74a6392a27f78e77c5da2c974566b38deaa979511649a6e95f5323d3961c587f78 SHA512 3e5ab04c2be2719579b2ebbf64b220522acfd9ea74029dd2ed699f60230da224bdc99de4ee5529b513e5586de0377764c4e54deb3dd93d5c53c4d666dce2b6b7 DIST postgresql-9.2.23.tar.bz2 16531436 BLAKE2B df12276856e17693f0f1b2623a96ca15cfea95dc6e67e349391a60ba49d9a252ee94448bc07cbc0290f29546ba8b87fa24f62ca8f27cde41d4400c3aa275d778 SHA512 9715cb9aa34921f7d246837c6c516d588f88fda543ad635520e9575a5ea448ad39062f2c89c086c7f129cc5f61f4dca33e4f5fd94e1df39da428507c56a81ba3 @@ -28,16 +29,21 @@ DIST postgresql-9.2.24.tar.bz2 16552576 BLAKE2B 15e1fcc72830630c6c919113ed53c30c DIST postgresql-9.3.15.tar.bz2 17059932 BLAKE2B c5afbdf3b1ffe457e137495001eb2f570adcf7844b909b62f3d077336d50b75d9fac456430c99df6449f1ea016252e9a99d96922fc3b5f21796c1361803312d6 SHA512 35c30cdb5599f99c94ab921f9f5e7671a8c0b7bca8fe3b616630ae13d6eda8d329e77e7e802da6a83cb09c3c9ca10fa8ce0de8a184e6fff471130e1cd68ce762 DIST postgresql-9.3.20.tar.bz2 17197360 BLAKE2B 2b07f6ee78294a490a8902d0129ac6b5e729e2d9a30631becc193cb7561294354a779ffc62bd61e807b1f540f01ce095e8ae4ad77adf2ea135389143809c9d48 SHA512 40098661bf00b64ad2d773b242613c44fe269b5ae984ad8990f85ce705b27138b127493c507103052fb6705d52f2e63a1df6692c7024d43c3c6b18154f2ef407 DIST postgresql-9.3.21.tar.bz2 17014472 BLAKE2B 7735e7150c0418f979110cef083235959d22f4b63756cf76b9715862cc409b89f51b3e49bad9a33771b4df3ed39c515cf356c2ed69b77a3c7cb8d3448c83a024 SHA512 4c34ddf140a28b7095f8853f85c85cdc4ac44e4e5062ef66542c3082ada8509a201e0037e75d880e7909e1b41d0e3577713ad981cea8e693fb87644a0dce9929 +DIST postgresql-9.3.22.tar.bz2 17022938 BLAKE2B 198705e438717d0d9e12c73e0c0e3eff0ba89ea50a1b183de70f065e13c153c164890fe56bc6ec13b0cb9617df4f66894c122eeddaf9303b9a02b8e08b19b085 SHA512 667ff496172626d2fe35c6795935fb07f4f7967a3b0631dd3b96278f8dc00b3d08794f091a5ab060a45d6f2a861e0f10f0e9660f9e343ab34eeabd693104c47f DIST postgresql-9.4.10.tar.bz2 17802812 BLAKE2B 6f93a348ef51979b02c096d2c8fe980ce00e9fd1f9cf0766f3b06fa1ba9f52a146cffc205e7708c7bd16e0686486b21118734f4a1cd9823837abeee2e6fc9175 SHA512 2fcf47769b22c69bc82c9d6edc317e18dfcb4a96534e012bae4355e5088afa83da98b21e08a07766794f0a166888acbd16705a806464ea11711ed97c3b4012fb DIST postgresql-9.4.15.tar.bz2 17921677 BLAKE2B a41c81c7acc92265a6558c26370ff2afd258922a7158bbf40f8b1d6c7a3dbfb548502f42d646c96982dd5a87e5991f9d03046ae91e216704b97691666966d795 SHA512 be69f184cf18fb4c611d31a128f3593dc537551606f1db84a3ce9899b72f546876f05b29792435c3780c6c2b571759f4db2c172d62b2c012bd58574df80b4eb1 DIST postgresql-9.4.16.tar.bz2 17778763 BLAKE2B 6051bbf042df6f7523ad5f27443c5c4fa8d3405813d40b281883df30f1f6a1709696cb1c0ff981bbe961eb6ba1ff1c49953736b730030111d106c700641954a5 SHA512 2e2bf14e2e63dec7254813e3c3a902a39cbd0aae89d8b3da5f75c6dead5d413a4f260fda6e87c9f84e4378df350c6531e67d972201f731a848b60bacef5b2bc8 +DIST postgresql-9.4.17.tar.bz2 17807762 BLAKE2B 7640c29a71c6aeff47d9b43dd1e4f52edac4295b646b34da3a0ed9c26a8a826061bfd892e9907b62f31b7f01ee3aaf437c88d79b84d1d786d608dcd088309ecf SHA512 9ac03d460e521dcd142ac463dd5bb0f3e3f47333367bf8d61499ec7e8d0129d338c6f111667d0006df0c8ced9ae8a337d4c1b40eb5f55e6bc8dd5a24dfd376f0 DIST postgresql-9.5.10.tar.bz2 18701419 BLAKE2B bdd9a191f4de2ba1cb501476a5eabb377b60899b524f50e5baa1f47b95ce491634b7e69a9c37017614f48789d2b97fdff98e0b12ea06611d1ca76988a8db62c8 SHA512 24e31adabb0b88be882ab0440c560f0e4d5d69203be0581ca0ce22316555d92219ea0a2fd5254f12b2508bd3e58bbe0f1a7c8837228c96d9d5f00caac45af95a DIST postgresql-9.5.11.tar.bz2 18572811 BLAKE2B 7b825d472e3bd6711eb3b4d5b1b5a03098d8d7ec7d0fc35cf7a5a12830bed9ca69922b75ab039fb6f0fcf1865a9fc37d3505d9eb129d03910ae1fa5e74f0a5db SHA512 c196709ddb953fe7ebdcee6e1d4624fc8136b83c5f0f6f010c29036a32f29f73763bdf64613dd57919d4be128e95a7f179c1c69a82f5951593c2fa0c2315fe83 +DIST postgresql-9.5.12.tar.bz2 18589538 BLAKE2B 4246eb2bf5fe2e3bb48bdc411ebd3c87015570f0be4d8b1ed2a0f2ed20a8374e3244fa0aa17f9145f4f951c88f5b0717a4dd2186bf1621ce3334789f5f8dd50f SHA512 ab81bc95fd587f76a1986db5616b63d861b84da0eb9e54478f5298248a81d7a608d1bb1a9e30662c8190d05630106ddb3bb6413c34b003de948417214d342654 DIST postgresql-9.5.5.tar.bz2 18525082 BLAKE2B 1a8e81b1f5b530c670863cfb08e47541c372e62f7ec6083da80b895cf015a80fc8bd3ffc9c7968e288303c71083ceda8ca54bcd3e2cb66c4f20b13396dc16fac SHA512 727ab57796cd393ec3755e9aabf515ebbdc3152b4062c20e64511e866a7e7038ba5c5e2843f13f3a79e2263296451f0e93108346b6f638611fba2449394e338e DIST postgresql-9.6.6.tar.bz2 19605724 BLAKE2B efdb13a4e32133b31a0ee368aed9bf76f0511596a2d77ade60129c2c76b0ba2c7dafad532cf09ae007d7110175a153968cfa151cf8aa7008b59d36ed00ed18ed SHA512 ac2f0fe6ef7c4e14f85cd7592d1306d9657b7f35efa6f43a089d7785ab970b8c25aa1e66d83df056c23513d6dbac0a9f54717b3d85758560d02e7f8141914ebc DIST postgresql-9.6.7.tar.bz2 19504886 BLAKE2B 04ed26987f3a38826b7e04bf364d8f59fc93aa700fdf74b4fc6afdb2fcf12697945c8354e49507af9c4d48fcc05173182cb164778c97845bf84250fd9e5ad882 SHA512 6a66cdd5b74ea6dc95628b89bb7663555370be56b3e938f635950628ad5d77443ac8f40c747be1fc1cfc19ca8b0a27f41e52fe4db83a43c7a7bab9bb076c7844 +DIST postgresql-9.6.8.tar.bz2 19528927 BLAKE2B 6aab5dbe4b13e1624befc33c2fa5241804dff71879e2d60c166db19c2fe015cd19cfc35054e6aede82bfe6b83a7146b6d2eedaabb94111c163da732526ff1723 SHA512 6b7595c0046308c725d77360b156e979d6bc469b78ac6500f631112f19b2607ca2d816781f8c5fd3bd835c48e079e79ada7af687fbd306a8fec5e160f20dd211 EBUILD postgresql-10.1.ebuild 13697 BLAKE2B d356373a27d27fdd2447f93691847816fd089019206d7371cbd6c84a513b6d490b20278232769fe1de63d60d6bdd1e0ff9afce5fbf7b0da66296a57167d689df SHA512 65bbb3d9d6e64dbf46d8d24c0aacaa930c417b262fa01442cdb09820bf47d37e81fa272e5afe808cb96bd5a3fdad3d23540c1d08a2d5a8de8bb6e8f4b0a3db11 EBUILD postgresql-10.2.ebuild 13695 BLAKE2B 7ce2e7da726f2dd09a908ff163d6c809ffa02843493ac1c6477a0e3fd13256301a3814adc8e73dc528c2443e0e78a7186cafdda0d9e9e9460ddb2c71545327f0 SHA512 42359ec82325fd3fbfc0963b0833fa3e8797b51da3b366328be3b1c66b3ef4fab4d4c89d861a0eafd15ab36041f663ad56d67b9f0fa20bbff7e829078c788bc9 +EBUILD postgresql-10.3.ebuild 13698 BLAKE2B 1a836945073f8d6bbb1edec840a188e322765567463df31dbee81c18e1fdcf1f4d0a9165f7a9666efc94bd82cee4cdc5d17f87256a9867647908c1865ab60d7c SHA512 b6596e599263774973f38a5158d2e679e82b5081e685e60d186c36ecf564e1328d123e5f0b6e6849e66a9ba8dee810d8073482d86acc321117e3f9602e619a0b EBUILD postgresql-9.2.19.ebuild 11686 BLAKE2B f925064291b78586507d974cf47f850cdcd900dc6a8b60432ca02f242582ff876a13033a093200f4936898d48eb2ff47d74f808c84908962cac0f8b767a9c199 SHA512 886faf3fe74308c908e8c49e7a65cac36e55932eafee581ab021ef66ab3cc7fe2e37c5e4011b33239f6c11935465a6875e8f6d5b86fe4f64e5ead807a1e73164 EBUILD postgresql-9.2.22.ebuild 13296 BLAKE2B da5e5cb771bbd20396f1621b7af93052a5e2fb022073286aa023245c083c146cad4d911d8754a94a33f9960ab91c8219c76bc624d15e2fbb385b54ac10f34558 SHA512 e16dca2871f2ede54993d9a81768ebc5ad3391041916d42108db09617c7d5577bf0f8daabc30b4d7a6851e991886e3155320a0a1c384c55eb248de12b3f7894e EBUILD postgresql-9.2.23-r1.ebuild 13492 BLAKE2B 912b67da2be82aa402ff4cb684f273a1630a6b551adb66d92125bfae9c81b66a48fb7eace28086525ee1bfffa1072a2f756b374a2d9ff10018ace257ab8643fb SHA512 cfb518dd4033579b2fe7f459555809c7d141bc0e15d80d308afa0ad1d3ec92e8809f81d92b855b97d76b299b2e6ec7a48971f2a6fc052da2ec82f048aa22c009 @@ -46,13 +52,17 @@ EBUILD postgresql-9.2.24.ebuild 13483 BLAKE2B ef135a71dfb8f2349c106ddfa34c164058 EBUILD postgresql-9.3.15.ebuild 11941 BLAKE2B 33410678e64b27a4802e11c1a5fcacadacb0b1332abdf61dfd64e0d6173b0be91ae9d457b58255dd56e410e13c9b5f778b7094acc8e1ddc1e265f685cff6a60b SHA512 3372d3801726ea6509713d79393ee59fc30eb2d832f17805f3d990308813064a59f42b7930d3342639475eeb37bdadc4952cf945e574f47c8ab7f0e9013b83d9 EBUILD postgresql-9.3.20.ebuild 13742 BLAKE2B 8c6a98061068a6ee781f77fa994c683d80c2c7a1fc4ba7b7cf08a8a4932ff6b7d2522563a9da03b537034da7ecc84b3ab4974b5d1cbdbdab9d64f0e24779cc9c SHA512 21a54b6e8d4483bd15b464e6ab23cc04dbfe2b38fda30131b0d5c26a6cb156aca3ddd09b7228b32b64e4edadd9f24fe0a779efa9f04e633078a4153fcb11086f EBUILD postgresql-9.3.21.ebuild 13748 BLAKE2B 5e775828b7641bbbd78366ce5236b4638975951416d88d96a8d742c9b34819be119cd68ec8ffa2251a728f274061b102e111b7a1606e7efc8327128384ef6428 SHA512 112444352eccd357a7954361edc697ac6587a287132c98120ff73d8f74331df950f1c19df712743b1014a72326fc399c34a5da087a89ca60f84398ab556966f7 +EBUILD postgresql-9.3.22.ebuild 13751 BLAKE2B 1730adadd67e5b93b7d3e3dd8db055e5c7e3f7e91db5069dc29075c6ab2dd96fa70df8b1c579e66425deb6dff8c19edc11b29c9634b4b5d2480a12d68bdd283f SHA512 bf08d33c60165edc38490d72c3694f1cbef6410ba5ad15dd3688dc809a6f944c01deaef2e6b78028771997ff627868c115f37bd229f46a3d89f064702ae2e187 EBUILD postgresql-9.4.10.ebuild 12751 BLAKE2B b90abd3b620ce5020b6c9af6e26856026c43204d7f15943a04c33c6dbe75c6b8aab8e4a59022a76913baa8596e0e44ffb454d8d98d7b1fad3747955d0e867ec3 SHA512 ccf11b56f79cd334fb67c13b549506c5c1bfe09b9496466d5d4d4dc976a9e5275cf9e9c1d0e579d615716f1abf320953126d531591439d5d1f777cdac8e4f70e EBUILD postgresql-9.4.15.ebuild 14552 BLAKE2B 5e343b4b7c24bfe2cab725491f41c4ec7eb12ca81595e268325adedad80e1266737ce3a18b5d4bd2dae8b3ebaf11b0ae55bed298aa9263eade7e2e7da00b3ff7 SHA512 afa0b8c349c8bd9c10b512f02c8dd16e6857d1a52acaa3ec7d695eb4ca3b7273c2cdcdc7b4b20f7c005570e4bdfd78126c890b6eaa60088ff9170cb5ec1b9595 EBUILD postgresql-9.4.16.ebuild 14558 BLAKE2B 3fe4d0eefe34b6fdaeb28b9222a007104af7ba57da49184798da285afd66478b1bcbf2a886f0f50201f104fa63a6e25c795c3b6c875dd55ca56717ad15c74b94 SHA512 a81aec3713875dc2b8daa3ef0f6d72347464fb947d2985902481563aff4e58a700140d061623b85abf07e43c7566d0c893957498652a4bafe88efa2a7440cc3c +EBUILD postgresql-9.4.17.ebuild 14561 BLAKE2B 5256dc5e253fc837649426959ba6a710ef3b2a234b4088b46db08a35b2bacf5d45fba2357bd66c5c6e11a9e138d71d5495806d544fa4b60aca0a554656df1a61 SHA512 40d3a1aed466df25a5c855c420bced8741bd0d7cde03693ab7325c3d24fa64fda20db15c49e5f5b84b84468990f07ce1fd233d3e52e9b1ab9d8f28a3dffac0e4 EBUILD postgresql-9.5.10.ebuild 14780 BLAKE2B 988e6270060614715936959b06867137f0629884d98cb50643d7d0fc4314c8192fa4205125bb376b3d9ac8d0b17cbceabd89b79671e9bd78017ca13a7c40ecc2 SHA512 26f93ac88c51609e62ea3d2dce5dbbc63cf8ad52ac76f029a437befd907d17d5b343a77a651c362b3292f8cb81784c480febe3909431a2f24ac51b9335d0b149 EBUILD postgresql-9.5.11.ebuild 14786 BLAKE2B 9be371c7adc7601540ad95689caef57c240c7120872f7fa742cc938af02b72b1a2ab449c4314df424b2592abcff521e7b60c2953e228546f0484eba6adc66a77 SHA512 38f45a1a3d9d6c0063ff58c055f7c09b7d58426c1f76d462f997c2c6ae18e41dfd7f8bb959da1a9298712768a665a211107523fa6696ce2cd679292b11cd122f +EBUILD postgresql-9.5.12.ebuild 14789 BLAKE2B d58a0098ea848973501beaa11e1842ca3cb9b1a0885c13966b51c12d6631f7060fd078219472402f55068cbcc64028d021687d7251540da618b1fb5693951924 SHA512 42bb6d13163d4cbd9ccbbd6dd1089fe8174a84df3d37d6d2ffbc3c2d65036ffbf75a3c7e022419b2cba7de7b4d9226fa77fb3d7985f8a9c9bc4ff5ff94d3d795 EBUILD postgresql-9.5.5.ebuild 13090 BLAKE2B cdcc7cfae7249c37a72bdb0a5c91362bc926170bc47d046f2023ac34ea925281d2f136500c1cae288b4ca2d4c9c8f90b490ddb648c26b3fbcbbf9fcdbabfc2b7 SHA512 957a4a494eb13d125867531c004193746cac0c3197ae3f45b191f78c7c02941400bd02f18af8f954ffbb45523688f5dc3cb4d804f5504020e0304083395cf8d0 EBUILD postgresql-9.6.6.ebuild 14922 BLAKE2B 25182d0ccbf475123d876bc4ad825b9b5049b7bd8edd8e96ef7390ab8d371515df12cc95426ba503366e81fe04be01c3a4c40a688caeb60fdb972f8f5e7c8ec4 SHA512 385e3c883cfe4926be01f760205a4c0827f6f20c0e465a082cd474e7b68c2a9977a2ebe4acc90c04171ff32f265abedcd12d225dcc3215981fe59216b1dbf6a2 EBUILD postgresql-9.6.7.ebuild 14928 BLAKE2B 5963a72b10e83b3c05c0afa1b119b38b3debbc6fc7723344fd9ae62e578c4fa6e5a02a62c60a901baa96ec4e7d50c1260f545d6d896144aa8e0f06c3d681209f SHA512 eaf54012af3c62f55227c6968b7fe1d02377f80da4aff9bb90c2d2f83e8127e6aab4bc6be52fa799e19bb4a45b3ba7a2b60db9f693b327d38195b6dcd85fbb2f +EBUILD postgresql-9.6.8.ebuild 14931 BLAKE2B 4987e4eed2a0eda2fb2a6a997648e60dffcf80b3b3ed0e06ae9f20bcc4257b460fa4add991c3baf8785c0abe9a5cda6b5a50f668b94aed951be6c19e80d577cb SHA512 6b8a5982697a8b4dbf6722330829f260af5715925d68ab0a6190b0a16b7669eb947b81fe35f332c70122bb820bc8342bcdc92a7c3420e4a88da3122e27542824 EBUILD postgresql-9999.ebuild 13544 BLAKE2B 2a1f9c50e21e7b9981adb38d18d4814903578a461d81f8a250fccc73b5680232f9d53d3c56486e65007b90a954f31939775ce5e4bcc621672e8b29e0ee332b0d SHA512 7c579c0a60b1e10e2d0c254fc9f60f2908db3634371d359c88ebf0acf581eaadf24ba5e8d3ee0ebd4aa05d840a97d0df74385578c0d792ee7ba87402b6931813 MISC metadata.xml 751 BLAKE2B 4628a6d379a41b4646be34dfcfca2be58bc93b883ccd6f4d21a426aacb34dd7d5347c5f9d61f9211f4f91bff67d2d5935b203959ab0790c74031944a9ab799f6 SHA512 726f30ec991194427b2dbcdf650778dbe0f169cb305d569918404d403deef397aef7ec3f1a5269c15f7ec7fc5506dc534203323379f1d0acc475eeb8d75d0cf1 diff --git a/dev-db/postgresql/postgresql-10.3.ebuild b/dev-db/postgresql/postgresql-10.3.ebuild new file mode 100644 index 000000000000..aeb8a7a0850f --- /dev/null +++ b/dev-db/postgresql/postgresql-10.3.ebuild @@ -0,0 +1,460 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +PYTHON_COMPAT=( python2_7 python3_{4,5,6} ) + +inherit eutils flag-o-matic linux-info multilib pam prefix python-single-r1 \ + systemd user versionator + +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~ppc-macos ~x86-solaris" + +SLOT=$(get_major_version) + +MY_PV=${PV/_/} +S="${WORKDIR}/${PN}-${MY_PV}" + +SRC_URI="mirror://postgresql/source/v${MY_PV}/postgresql-${MY_PV}.tar.bz2" + +LICENSE="POSTGRESQL GPL-2" +DESCRIPTION="PostgreSQL RDBMS" +HOMEPAGE="http://www.postgresql.org/" + +IUSE="doc kerberos kernel_linux ldap libressl nls pam perl python +readline + selinux +server systemd ssl static-libs tcl threads uuid xml zlib" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +wanted_languages() { + local linguas="af cs de en es fa fr hr hu it ko nb pl pt_BR ro ru + sk sl sv tr zh_CN zh_TW" + local enable_langs lingua + + for lingua in ${linguas} ; do + has ${lingua} ${LINGUAS-${lingua}} && enable_langs+="${lingua} " + done + + echo -n ${enable_langs} +} + +CDEPEND=" +>=app-eselect/eselect-postgresql-2.0 +sys-apps/less +virtual/libintl +kerberos? ( virtual/krb5 ) +ldap? ( net-nds/openldap ) +pam? ( virtual/pam ) +perl? ( >=dev-lang/perl-5.8:= ) +python? ( ${PYTHON_DEPS} ) +readline? ( sys-libs/readline:0= ) +server? ( systemd? ( sys-apps/systemd ) ) +ssl? ( + !libressl? ( >=dev-libs/openssl-0.9.6-r1:0= ) + libressl? ( dev-libs/libressl:= ) +) +tcl? ( >=dev-lang/tcl-8:0= ) +xml? ( dev-libs/libxml2 dev-libs/libxslt ) +zlib? ( sys-libs/zlib ) +" + +# uuid flags -- depend on sys-apps/util-linux for Linux libcs, or if no +# supported libc in use depend on dev-libs/ossp-uuid. For BSD systems, +# the libc includes UUID functions. +UTIL_LINUX_LIBC=( elibc_{glibc,uclibc,musl} ) +BSD_LIBC=( elibc_{Free,Net,Open}BSD ) + +nest_usedep() { + local front back + while [[ ${#} -gt 1 ]]; do + front+="${1}? ( " + back+=" )" + shift + done + echo "${front}${1}${back}" +} + +IUSE+=" ${UTIL_LINUX_LIBC[@]} ${BSD_LIBC[@]}" +CDEPEND+=" +uuid? ( + ${UTIL_LINUX_LIBC[@]/%/? ( sys-apps/util-linux )} + $(nest_usedep ${UTIL_LINUX_LIBC[@]/#/!} ${BSD_LIBC[@]/#/!} dev-libs/ossp-uuid) +)" + +DEPEND="${CDEPEND} +!!<sys-apps/sandbox-2.0 +sys-devel/bison +sys-devel/flex +nls? ( sys-devel/gettext ) +xml? ( virtual/pkgconfig ) +" + +RDEPEND="${CDEPEND} +!dev-db/postgresql-docs:${SLOT} +!dev-db/postgresql-base:${SLOT} +!dev-db/postgresql-server:${SLOT} +selinux? ( sec-policy/selinux-postgresql ) +" + +pkg_setup() { + use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup + + enewgroup postgres 70 + enewuser postgres 70 /bin/sh /var/lib/postgresql postgres + + use python && python-single-r1_pkg_setup +} + +src_prepare() { + # Work around PPC{,64} compilation bug where bool is already defined + sed '/#ifndef __cplusplus/a #undef bool' -i src/include/c.h || die + + # Set proper run directory + sed "s|\(PGSOCKET_DIR\s\+\)\"/tmp\"|\1\"${EPREFIX}/run/postgresql\"|" \ + -i src/include/pg_config_manual.h || die + + # Rely on $PATH being in the proper order so that the correct + # install program is used for modules utilizing PGXS in both + # hardened and non-hardened environments. (Bug #528786) + sed 's/@install_bin@/install -c/' -i src/Makefile.global.in || die + + use server || eapply "${FILESDIR}/${PN}-10.2-no-server.patch" + + if use pam ; then + sed -e "s/\(#define PGSQL_PAM_SERVICE \"postgresql\)/\1-${SLOT}/" \ + -i src/backend/libpq/auth.c || \ + die 'PGSQL_PAM_SERVICE rename failed.' + fi + + eapply_user +} + +src_configure() { + case ${CHOST} in + *-darwin*|*-solaris*) + use nls && append-libs intl + ;; + esac + + export LDFLAGS_SL="${LDFLAGS}" + export LDFLAGS_EX="${LDFLAGS}" + + local PO="${EPREFIX%/}" + + local i uuid_config="" + if use uuid; then + for i in ${UTIL_LINUX_LIBC[@]}; do + use ${i} && uuid_config="--with-uuid=e2fs" + done + for i in ${BSD_LIBC[@]}; do + use ${i} && uuid_config="--with-uuid=bsd" + done + [[ -z $uuid_config ]] && uuid_config="--with-uuid=ossp" + fi + + econf \ + --prefix="${PO}/usr/$(get_libdir)/postgresql-${SLOT}" \ + --datadir="${PO}/usr/share/postgresql-${SLOT}" \ + --docdir="${PO}/usr/share/doc/${PF}" \ + --includedir="${PO}/usr/include/postgresql-${SLOT}" \ + --mandir="${PO}/usr/share/postgresql-${SLOT}/man" \ + --sysconfdir="${PO}/etc/postgresql-${SLOT}" \ + --with-system-tzdata="${PO}/usr/share/zoneinfo" \ + $(use_enable !alpha spinlocks) \ + $(use_enable threads thread-safety) \ + $(use_with kerberos gssapi) \ + $(use_with ldap) \ + $(use_with pam) \ + $(use_with perl) \ + $(use_with python) \ + $(use_with readline) \ + $(use_with ssl openssl) \ + $(usex server "$(use_with systemd)" '--without-systemd') \ + $(use_with tcl) \ + ${uuid_config} \ + $(use_with xml libxml) \ + $(use_with xml libxslt) \ + $(use_with zlib) \ + "$(use_enable nls nls "$(wanted_languages)")" +} + +src_compile() { + emake + emake -C contrib +} + +src_install() { + emake DESTDIR="${D}" install + emake DESTDIR="${D}" install -C contrib + + dodoc README HISTORY doc/{TODO,bug.template} + + # man pages are already built, but if we have the target make them, + # they'll be generated from source before being installed so we + # manually install man pages. + # We use ${SLOT} instead of doman for postgresql.eselect + insinto /usr/share/postgresql-${SLOT}/man/ + doins -r doc/src/sgml/man{1,3,7} + if ! use server; then + # Remove man pages for non-existent binaries + serverman=( + initdb + pg_{archivecleanup,controldata,ctl,resetwal,rewind,standby} + pg_{test_{fsync,timing},upgrade,waldump} + post{gres,master} + ) + for m in ${serverman[@]} ; do + rm "${ED}/usr/share/postgresql-${SLOT}/man/man1/${m}.1" + done + fi + docompress /usr/share/postgresql-${SLOT}/man/man{1,3,7} + + # Create slot specific man pages + local bn f mansec slotted_name + for mansec in 1 3 7 ; do + local rel_manpath="../../postgresql-${SLOT}/man/man${mansec}" + + mkdir -p "${ED}"/usr/share/man/man${mansec} || die "making man dir" + pushd "${ED}"/usr/share/man/man${mansec} > /dev/null || die "pushd failed" + + for f in "${ED}/usr/share/postgresql-${SLOT}/man/man${mansec}"/* ; do + bn=$(basename "${f}") + slotted_name=${bn%.${mansec}}${SLOT}.${mansec} + case ${bn} in + TABLE.7|WITH.7) + echo ".so ${rel_manpath}/SELECT.7" > ${slotted_name} + ;; + *) + echo ".so ${rel_manpath}/${bn}" > ${slotted_name} + ;; + esac + done + + popd > /dev/null + done + + insinto /etc/postgresql-${SLOT} + newins src/bin/psql/psqlrc.sample psqlrc + + use static-libs || find "${ED}" -name '*.a' -delete + + local f bn + for f in $(find "${ED}/usr/$(get_libdir)/postgresql-${SLOT}/bin" \ + -mindepth 1 -maxdepth 1) + do + bn=$(basename "${f}") + # Temporarily tack on tmp to workaround a file collision + # issue. This is only necessary for 9.7 and earlier. 10 never + # had this issue. + dosym "../$(get_libdir)/postgresql-${SLOT}/bin/${bn}" \ + "/usr/bin/${bn}${SLOT/.}" + done + + if use doc ; then + docinto html + dodoc doc/src/sgml/html/* + fi + + if use server; then + sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \ + "${FILESDIR}/${PN}.confd-9.3" | newconfd - ${PN}-${SLOT} + + sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \ + "${FILESDIR}/${PN}.init-9.3-r1" | newinitd - ${PN}-${SLOT} + + if use systemd; then + sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \ + "${FILESDIR}/${PN}.service-9.6-r1" | \ + systemd_newunit - ${PN}-${SLOT}.service + newbin "${FILESDIR}"/${PN}-check-db-dir ${PN}-${SLOT}-check-db-dir + systemd_newtmpfilesd "${FILESDIR}"/${PN}.tmpfiles ${PN}-${SLOT}.conf + fi + + use pam && pamd_mimic system-auth ${PN}-${SLOT} auth account session + + if use prefix ; then + keepdir /run/postgresql + fperms 1775 /run/postgresql + fi + fi +} + +pkg_postinst() { + use server && use systemd && systemd_tmpfiles_create ${PN}-${SLOT}.conf + postgresql-config update + + elog "If you need a global psqlrc-file, you can place it in:" + elog " ${EROOT%/}/etc/postgresql-${SLOT}/" + + if use server ; then + elog + elog "Gentoo specific documentation:" + elog "https://wiki.gentoo.org/wiki/PostgreSQL" + elog + elog "Official documentation:" + elog "http://www.postgresql.org/docs/${SLOT}/static/index.html" + elog + elog "The default location of the Unix-domain socket is:" + elog " ${EROOT%/}/run/postgresql/" + elog + elog "Before initializing the database, you may want to edit PG_INITDB_OPTS" + elog "so that it contains your preferred locale in:" + elog " ${EROOT%/}/etc/conf.d/postgresql-${SLOT}" + elog + elog "Then, execute the following command to setup the initial database" + elog "environment:" + elog " emerge --config =${CATEGORY}/${PF}" + fi +} + +pkg_prerm() { + if use server && [[ -z ${REPLACED_BY_VERSION} ]] ; then + ewarn "Have you dumped and/or migrated the ${SLOT} database cluster?" + ewarn "\thttps://wiki.gentoo.org/wiki/PostgreSQL/QuickStart#Migrating_PostgreSQL" + + ebegin "Resuming removal in 10 seconds (Control-C to cancel)" + sleep 10 + eend 0 + fi +} + +pkg_postrm() { + postgresql-config update +} + +pkg_config() { + use server || die "USE flag 'server' not enabled. Nothing to configure." + + [[ -f "${EROOT%/}/etc/conf.d/postgresql-${SLOT}" ]] \ + && source "${EROOT%/}/etc/conf.d/postgresql-${SLOT}" + [[ -z "${PGDATA}" ]] && PGDATA="${EROOT%/}/etc/postgresql-${SLOT}/" + [[ -z "${DATA_DIR}" ]] \ + && DATA_DIR="${EROOT%/}/var/lib/postgresql/${SLOT}/data" + + # environment.bz2 may not contain the same locale as the current system + # locale. Unset and source from the current system locale. + if [ -f "${EROOT%/}/etc/env.d/02locale" ]; then + unset LANG + unset LC_CTYPE + unset LC_NUMERIC + unset LC_TIME + unset LC_COLLATE + unset LC_MONETARY + unset LC_MESSAGES + unset LC_ALL + source "${EROOT%/}/etc/env.d/02locale" + [ -n "${LANG}" ] && export LANG + [ -n "${LC_CTYPE}" ] && export LC_CTYPE + [ -n "${LC_NUMERIC}" ] && export LC_NUMERIC + [ -n "${LC_TIME}" ] && export LC_TIME + [ -n "${LC_COLLATE}" ] && export LC_COLLATE + [ -n "${LC_MONETARY}" ] && export LC_MONETARY + [ -n "${LC_MESSAGES}" ] && export LC_MESSAGES + [ -n "${LC_ALL}" ] && export LC_ALL + fi + + einfo "You can modify the paths and options passed to initdb by editing:" + einfo " ${EROOT%/}/etc/conf.d/postgresql-${SLOT}" + einfo + einfo "Information on options that can be passed to initdb are found at:" + einfo " http://www.postgresql.org/docs/${SLOT}/static/creating-cluster.html" + einfo " http://www.postgresql.org/docs/${SLOT}/static/app-initdb.html" + einfo + einfo "PG_INITDB_OPTS is currently set to:" + if [[ -z "${PG_INITDB_OPTS}" ]] ; then + einfo " (none)" + else + einfo " ${PG_INITDB_OPTS}" + fi + einfo + einfo "Configuration files will be installed to:" + einfo " ${PGDATA}" + einfo + einfo "The database cluster will be created in:" + einfo " ${DATA_DIR}" + einfo + + ebegin "Continuing initialization in 5 seconds (Control-C to cancel)" + sleep 5 + eend 0 + + if [ -n "$(ls -A ${DATA_DIR} 2> /dev/null)" ] ; then + eerror "The given directory, '${DATA_DIR}', is not empty." + eerror "Modify DATA_DIR to point to an empty directory." + die "${DATA_DIR} is not empty." + fi + + einfo "Creating the data directory ..." + if [[ ${EUID} == 0 ]] ; then + mkdir -p "${DATA_DIR}" + chown -Rf postgres:postgres "${DATA_DIR}" + chmod 0700 "${DATA_DIR}" + fi + + einfo "Initializing the database ..." + + if [[ ${EUID} == 0 ]] ; then + su postgres -c "${EROOT%/}/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -D \"${DATA_DIR}\" ${PG_INITDB_OPTS}" + else + "${EROOT%/}"/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -U postgres -D "${DATA_DIR}" ${PG_INITDB_OPTS} + fi + + if [[ "${DATA_DIR%/}" != "${PGDATA%/}" ]] ; then + mv "${DATA_DIR%/}"/{pg_{hba,ident},postgresql}.conf "${PGDATA}" + ln -s "${PGDATA%/}"/{pg_{hba,ident},postgresql}.conf "${DATA_DIR%/}" + fi + + # unix_socket_directory has no effect in postgresql.conf as it's + # overridden in the initscript + sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf + + cat <<- EOF >> "${PGDATA%/}"/postgresql.conf + # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522 + # On the off-chance that you might need to work with UTF-8 encoded + # characters in PL/Perl + plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";' + EOF + + einfo "The autovacuum function, which was in contrib, has been moved to the main" + einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled" + einfo "by default. You can disable it in the cluster's:" + einfo " ${PGDATA%/}/postgresql.conf" + einfo + if ! use systemd; then + einfo "The PostgreSQL server, by default, will log events to:" + einfo " ${DATA_DIR%/}/postmaster.log" + einfo + fi + if use prefix ; then + einfo "The location of the configuration files have moved to:" + einfo " ${PGDATA}" + einfo "To start the server:" + einfo " pg_ctl start -D ${DATA_DIR} -o '-D ${PGDATA} --data-directory=${DATA_DIR}'" + einfo "To stop:" + einfo " pg_ctl stop -D ${DATA_DIR}" + einfo + einfo "Or move the configuration files back:" + einfo "mv ${PGDATA}*.conf ${DATA_DIR}" + elif use systemd; then + einfo "You should use the 'postgresql-${SLOT}.service' unit to run PostgreSQL" + einfo "instead of 'pg_ctl'." + else + einfo "You should use the '${EROOT%/}/etc/init.d/postgresql-${SLOT}' script to run PostgreSQL" + einfo "instead of 'pg_ctl'." + fi +} + +src_test() { + if use server && [[ ${UID} -ne 0 ]] ; then + emake check + + einfo "If you think other tests besides the regression tests are necessary, please" + einfo "submit a bug including a patch for this ebuild to enable them." + else + use server || \ + ewarn 'Tests cannot be run without the "server" use flag enabled.' + [[ ${UID} -eq 0 ]] || \ + ewarn 'Tests cannot be run as root. Enable "userpriv" in FEATURES.' + + ewarn 'Skipping.' + fi +} diff --git a/dev-db/postgresql/postgresql-9.3.22.ebuild b/dev-db/postgresql/postgresql-9.3.22.ebuild new file mode 100644 index 000000000000..9bd6eb22b922 --- /dev/null +++ b/dev-db/postgresql/postgresql-9.3.22.ebuild @@ -0,0 +1,450 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +PYTHON_COMPAT=( python2_7 python3_{4,5,6} ) + +inherit eutils flag-o-matic linux-info multilib pam prefix python-single-r1 \ + systemd user versionator + +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~ppc-macos ~x86-solaris" + +SLOT="$(get_version_component_range 1-2)" + +SRC_URI="mirror://postgresql/source/v${PV}/postgresql-${PV}.tar.bz2" + +LICENSE="POSTGRESQL GPL-2" +DESCRIPTION="PostgreSQL RDBMS" +HOMEPAGE="http://www.postgresql.org/" + +IUSE="doc kerberos kernel_linux ldap libressl nls pam perl -pg_legacytimestamp python + +readline selinux +server systemd ssl static-libs tcl threads uuid xml zlib" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +wanted_languages() { + local linguas="af cs de en es fa fr hr hu it ko nb pl pt_BR ro ru + sk sl sv tr zh_CN zh_TW" + local enable_langs lingua + + for lingua in ${linguas} ; do + has ${lingua} ${LINGUAS-${lingua}} && enable_langs+="${lingua} " + done + + echo -n ${enable_langs} +} + +CDEPEND=" +>=app-eselect/eselect-postgresql-2.0 +sys-apps/less +virtual/libintl +kerberos? ( virtual/krb5 ) +ldap? ( net-nds/openldap ) +pam? ( virtual/pam ) +perl? ( >=dev-lang/perl-5.8:= ) +python? ( ${PYTHON_DEPS} ) +readline? ( sys-libs/readline:0= ) +ssl? ( + !libressl? ( >=dev-libs/openssl-0.9.6-r1:0= ) + libressl? ( dev-libs/libressl:= ) +) +tcl? ( >=dev-lang/tcl-8:0= ) +uuid? ( dev-libs/ossp-uuid ) +xml? ( dev-libs/libxml2 dev-libs/libxslt ) +zlib? ( sys-libs/zlib ) +" + +DEPEND="${CDEPEND} +!!<sys-apps/sandbox-2.0 +sys-devel/bison +sys-devel/flex +nls? ( sys-devel/gettext ) +xml? ( virtual/pkgconfig ) +" + +RDEPEND="${CDEPEND} +!dev-db/postgresql-docs:${SLOT} +!dev-db/postgresql-base:${SLOT} +!dev-db/postgresql-server:${SLOT} +selinux? ( sec-policy/selinux-postgresql ) +" + +pkg_setup() { + use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup + + enewgroup postgres 70 + enewuser postgres 70 /bin/sh /var/lib/postgresql postgres + + use python && python-single-r1_pkg_setup +} + +src_prepare() { + # Work around PPC{,64} compilation bug where bool is already defined + sed '/#ifndef __cplusplus/a #undef bool' -i src/include/c.h || die + + # Set proper run directory + sed "s|\(PGSOCKET_DIR\s\+\)\"/tmp\"|\1\"${EPREFIX}/run/postgresql\"|" \ + -i src/include/pg_config_manual.h || die + + # Rely on $PATH being in the proper order so that the correct + # install program is used for modules utilizing PGXS in both + # hardened and non-hardened environments. (Bug #528786) + sed 's/@install_bin@/install -c/' -i src/Makefile.global.in || die + + use server || eapply "${FILESDIR}/${PN}-${SLOT}-no-server.patch" + + if use pam ; then + sed -e "s/\(#define PGSQL_PAM_SERVICE \"postgresql\)/\1-${SLOT}/" \ + -i src/backend/libpq/auth.c || \ + die 'PGSQL_PAM_SERVICE rename failed.' + fi + + eapply_user +} + +src_configure() { + case ${CHOST} in + *-darwin*|*-solaris*) + use nls && append-libs intl + ;; + esac + + export LDFLAGS_SL="${LDFLAGS}" + export LDFLAGS_EX="${LDFLAGS}" + + local PO="${EPREFIX%/}" + + econf \ + --prefix="${PO}/usr/$(get_libdir)/postgresql-${SLOT}" \ + --datadir="${PO}/usr/share/postgresql-${SLOT}" \ + --docdir="${PO}/usr/share/doc/${PF}" \ + --includedir="${PO}/usr/include/postgresql-${SLOT}" \ + --mandir="${PO}/usr/share/postgresql-${SLOT}/man" \ + --sysconfdir="${PO}/etc/postgresql-${SLOT}" \ + --with-system-tzdata="${PO}/usr/share/zoneinfo" \ + $(use_enable !pg_legacytimestamp integer-datetimes) \ + $(use_enable threads thread-safety) \ + $(use_with kerberos gssapi) \ + $(use_with kerberos krb5) \ + $(use_with ldap) \ + $(use_with pam) \ + $(use_with perl) \ + $(use_with python) \ + $(use_with readline) \ + $(use_with ssl openssl) \ + $(use_with tcl) \ + $(use_with uuid ossp-uuid) \ + $(use_with xml libxml) \ + $(use_with xml libxslt) \ + $(use_with zlib) \ + "$(use_enable nls nls "$(wanted_languages)")" +} + +src_compile() { + emake + emake -C contrib +} + +src_install() { + emake DESTDIR="${D}" install + emake DESTDIR="${D}" install -C contrib + + dodoc README HISTORY doc/{TODO,bug.template} + + # man pages are already built, but if we have the target make them, + # they'll be generated from source before being installed so we + # manually install man pages. + # We use ${SLOT} instead of doman for postgresql.eselect + insinto /usr/share/postgresql-${SLOT}/man/ + doins -r doc/src/sgml/man{1,3,7} + if ! use server; then + # Remove man pages for non-existent binaries + for m in {initdb,pg_{controldata,ctl,resetxlog},post{gres,master}}; do + rm "${ED}/usr/share/postgresql-${SLOT}/man/man1/${m}.1" + done + fi + docompress /usr/share/postgresql-${SLOT}/man/man{1,3,7} + + # Create slot specific man pages + local bn f mansec slotted_name + for mansec in 1 3 7 ; do + local rel_manpath="../../postgresql-${SLOT}/man/man${mansec}" + + mkdir -p "${ED}"/usr/share/man/man${mansec} || die "making man dir" + pushd "${ED}"/usr/share/man/man${mansec} > /dev/null || die "pushd failed" + + for f in "${ED}/usr/share/postgresql-${SLOT}/man/man${mansec}"/* ; do + bn=$(basename "${f}") + slotted_name=${bn%.${mansec}}${SLOT/.}.${mansec} + case ${bn} in + TABLE.7|WITH.7) + echo ".so ${rel_manpath}/SELECT.7" > ${slotted_name} + ;; + *) + echo ".so ${rel_manpath}/${bn}" > ${slotted_name} + ;; + esac + done + + popd > /dev/null + done + + insinto /etc/postgresql-${SLOT} + newins src/bin/psql/psqlrc.sample psqlrc + + use static-libs || find "${ED}" -name '*.a' -delete + + local f bn + for f in $(find "${ED}/usr/$(get_libdir)/postgresql-${SLOT}/bin" \ + -mindepth 1 -maxdepth 1) + do + bn=$(basename "${f}") + # Temporarily tack on tmp to workaround a file collision + # issue. This is only necessary for 9.7 and earlier. 10 never + # had this issue. + dosym "../$(get_libdir)/postgresql-${SLOT}/bin/${bn}" \ + "/usr/bin/${bn}${SLOT/.}tmp" + done + + if use doc ; then + docinto html + dodoc doc/src/sgml/html/* + + docinto sgml + dodoc doc/src/sgml/*.{sgml,dsl} + fi + + if use server; then + sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \ + "${FILESDIR}/${PN}.confd-9.3" | newconfd - ${PN}-${SLOT} + + sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \ + "${FILESDIR}/${PN}.init-9.3-r1" | newinitd - ${PN}-${SLOT} + + if use systemd; then + sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \ + "${FILESDIR}/${PN}.service-9.2" | \ + systemd_newunit - ${PN}-${SLOT}.service + systemd_newtmpfilesd "${FILESDIR}"/${PN}.tmpfiles ${PN}-${SLOT}.conf + fi + + newbin "${FILESDIR}"/${PN}-check-db-dir ${PN}-${SLOT}-check-db-dir + + use pam && pamd_mimic system-auth ${PN}-${SLOT} auth account session + + if use prefix ; then + keepdir /run/postgresql + fperms 1775 /run/postgresql + fi + fi +} + +pkg_preinst() { + # Find all of the slot-specific symlinks, if any, in /usr/bin (e.g., + # /usr/bin/psql96). They may have been created by the + # postgresql.eselect module, but they're handled within this ebuild + # now. It's alright if we momentarily delete /usr/bin/psql as it + # will be recreated by the eselect module in pkg_ppostinst(). This + # is only necessary for 9.7 and earlier. 10 and later were never + # handled in this manner. + local canonicalise + if type -p realpath > /dev/null; then + canonicalise=realpath + elif type -p readlink > /dev/null; then + canonicalise='readlink -f' + else + # can't die, subshell + die "No readlink nor realpath found, cannot canonicalise" + fi + + local l + # First remove any symlinks in /usr/bin that may have been created + # by the old eselect + for l in $(find "${ROOT%/}/usr/bin" -mindepth 1 -maxdepth 1 -type l) ; do + if [[ $(${canonicalise} "${l}") == *postgresql-${SLOT}* ]] ; then + rm "${l}" || ewarn "Couldn't remove ${l}" + fi + done + + # Then move the symlinks created by the ebuild to their proper place. + for l in "${ED}"/usr/bin/*tmp ; do + mv "${l}" "${l%tmp}" \ + || ewarn "Couldn't rename $(basename ${l}) to $(basename ${l%tmp})" + done +} + +pkg_postinst() { + use server && use systemd && systemd_tmpfiles_create ${PN}-${SLOT}.conf + postgresql-config update + + elog "If you need a global psqlrc-file, you can place it in:" + elog " ${EROOT%/}/etc/postgresql-${SLOT}/" + + if use server ; then + elog + elog "Gentoo specific documentation:" + elog "https://wiki.gentoo.org/wiki/PostgreSQL" + elog + elog "Official documentation:" + elog "http://www.postgresql.org/docs/${SLOT}/static/index.html" + elog + elog "The default location of the Unix-domain socket is:" + elog " ${EROOT%/}/run/postgresql/" + elog + elog "Before initializing the database, you may want to edit PG_INITDB_OPTS" + elog "so that it contains your preferred locale in:" + elog " ${EROOT%/}/etc/conf.d/postgresql-${SLOT}" + elog + elog "Then, execute the following command to setup the initial database" + elog "environment:" + elog " emerge --config =${CATEGORY}/${PF}" + fi +} + +pkg_prerm() { + if use server && [[ -z ${REPLACED_BY_VERSION} ]] ; then + ewarn "Have you dumped and/or migrated the ${SLOT} database cluster?" + ewarn "\thttps://wiki.gentoo.org/wiki/PostgreSQL/QuickStart#Migrating_PostgreSQL" + + ebegin "Resuming removal in 10 seconds (Control-C to cancel)" + sleep 10 + eend 0 + fi +} + +pkg_postrm() { + postgresql-config update +} + +pkg_config() { + use server || die "USE flag 'server' not enabled. Nothing to configure." + + [[ -f "${EROOT%/}/etc/conf.d/postgresql-${SLOT}" ]] \ + && source "${EROOT%/}/etc/conf.d/postgresql-${SLOT}" + [[ -z "${PGDATA}" ]] && PGDATA="${EROOT%/}/etc/postgresql-${SLOT}/" + [[ -z "${DATA_DIR}" ]] \ + && DATA_DIR="${EROOT%/}/var/lib/postgresql/${SLOT}/data" + + # environment.bz2 may not contain the same locale as the current system + # locale. Unset and source from the current system locale. + if [ -f "${EROOT%/}/etc/env.d/02locale" ]; then + unset LANG + unset LC_CTYPE + unset LC_NUMERIC + unset LC_TIME + unset LC_COLLATE + unset LC_MONETARY + unset LC_MESSAGES + unset LC_ALL + source "${EROOT%/}/etc/env.d/02locale" + [ -n "${LANG}" ] && export LANG + [ -n "${LC_CTYPE}" ] && export LC_CTYPE + [ -n "${LC_NUMERIC}" ] && export LC_NUMERIC + [ -n "${LC_TIME}" ] && export LC_TIME + [ -n "${LC_COLLATE}" ] && export LC_COLLATE + [ -n "${LC_MONETARY}" ] && export LC_MONETARY + [ -n "${LC_MESSAGES}" ] && export LC_MESSAGES + [ -n "${LC_ALL}" ] && export LC_ALL + fi + + einfo "You can modify the paths and options passed to initdb by editing:" + einfo " ${EROOT%/}/etc/conf.d/postgresql-${SLOT}" + einfo + einfo "Information on options that can be passed to initdb are found at:" + einfo " http://www.postgresql.org/docs/${SLOT}/static/creating-cluster.html" + einfo " http://www.postgresql.org/docs/${SLOT}/static/app-initdb.html" + einfo + einfo "PG_INITDB_OPTS is currently set to:" + if [[ -z "${PG_INITDB_OPTS}" ]] ; then + einfo " (none)" + else + einfo " ${PG_INITDB_OPTS}" + fi + einfo + einfo "Configuration files will be installed to:" + einfo " ${PGDATA}" + einfo + einfo "The database cluster will be created in:" + einfo " ${DATA_DIR}" + einfo + + ebegin "Continuing initialization in 5 seconds (Control-C to cancel)" + sleep 5 + eend 0 + + if [ -n "$(ls -A ${DATA_DIR} 2> /dev/null)" ] ; then + eerror "The given directory, '${DATA_DIR}', is not empty." + eerror "Modify DATA_DIR to point to an empty directory." + die "${DATA_DIR} is not empty." + fi + + einfo "Creating the data directory ..." + if [[ ${EUID} == 0 ]] ; then + mkdir -p "${DATA_DIR}" + chown -Rf postgres:postgres "${DATA_DIR}" + chmod 0700 "${DATA_DIR}" + fi + + einfo "Initializing the database ..." + + if [[ ${EUID} == 0 ]] ; then + su postgres -c "${EROOT%/}/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -D \"${DATA_DIR}\" ${PG_INITDB_OPTS}" + else + "${EROOT%/}"/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -U postgres -D "${DATA_DIR}" ${PG_INITDB_OPTS} + fi + + if [[ "${DATA_DIR%/}" != "${PGDATA%/}" ]] ; then + mv "${DATA_DIR%/}"/{pg_{hba,ident},postgresql}.conf "${PGDATA}" + ln -s "${PGDATA%/}"/{pg_{hba,ident},postgresql}.conf "${DATA_DIR%/}" + fi + + # unix_socket_directory has no effect in postgresql.conf as it's + # overridden in the initscript + sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf + + cat <<- EOF >> "${PGDATA%/}"/postgresql.conf + # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522 + # On the off-chance that you might need to work with UTF-8 encoded + # characters in PL/Perl + plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";' + EOF + + einfo "The autovacuum function, which was in contrib, has been moved to the main" + einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled" + einfo "by default. You can disable it in the cluster's:" + einfo " ${PGDATA%/}/postgresql.conf" + einfo + einfo "The PostgreSQL server, by default, will log events to:" + einfo " ${DATA_DIR%/}/postmaster.log" + einfo + if use prefix ; then + einfo "The location of the configuration files have moved to:" + einfo " ${PGDATA}" + einfo "To start the server:" + einfo " pg_ctl start -D ${DATA_DIR} -o '-D ${PGDATA} --data-directory=${DATA_DIR}'" + einfo "To stop:" + einfo " pg_ctl stop -D ${DATA_DIR}" + einfo + einfo "Or move the configuration files back:" + einfo "mv ${PGDATA}*.conf ${DATA_DIR}" + else + einfo "You should use the '${EROOT%/}/etc/init.d/postgresql-${SLOT}' script to run PostgreSQL" + einfo "instead of 'pg_ctl'." + fi +} + +src_test() { + if use server && [[ ${UID} -ne 0 ]] ; then + emake check + + einfo "If you think other tests besides the regression tests are necessary, please" + einfo "submit a bug including a patch for this ebuild to enable them." + else + use server || \ + ewarn 'Tests cannot be run without the "server" use flag enabled.' + [[ ${UID} -eq 0 ]] || \ + ewarn 'Tests cannot be run as root. Enable "userpriv" in FEATURES.' + + ewarn 'Skipping.' + fi +} diff --git a/dev-db/postgresql/postgresql-9.4.17.ebuild b/dev-db/postgresql/postgresql-9.4.17.ebuild new file mode 100644 index 000000000000..2f448ba1c0c0 --- /dev/null +++ b/dev-db/postgresql/postgresql-9.4.17.ebuild @@ -0,0 +1,482 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +PYTHON_COMPAT=( python2_7 python3_{4,5,6} ) + +inherit eutils flag-o-matic linux-info multilib pam prefix python-single-r1 \ + systemd user versionator + +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~ppc-macos ~x86-solaris" + +SLOT="$(get_version_component_range 1-2)" + +SRC_URI="mirror://postgresql/source/v${PV}/postgresql-${PV}.tar.bz2" + +LICENSE="POSTGRESQL GPL-2" +DESCRIPTION="PostgreSQL RDBMS" +HOMEPAGE="http://www.postgresql.org/" + +IUSE="doc kerberos kernel_linux ldap libressl nls pam perl -pg_legacytimestamp python + +readline selinux +server systemd ssl static-libs tcl threads uuid xml zlib" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +wanted_languages() { + local linguas="af cs de en es fa fr hr hu it ko nb pl pt_BR ro ru + sk sl sv tr zh_CN zh_TW" + local enable_langs lingua + + for lingua in ${linguas} ; do + has ${lingua} ${LINGUAS-${lingua}} && enable_langs+="${lingua} " + done + + echo -n ${enable_langs} +} + +CDEPEND=" +>=app-eselect/eselect-postgresql-2.0 +sys-apps/less +virtual/libintl +kerberos? ( virtual/krb5 ) +ldap? ( net-nds/openldap ) +pam? ( virtual/pam ) +perl? ( >=dev-lang/perl-5.8:= ) +python? ( ${PYTHON_DEPS} ) +readline? ( sys-libs/readline:0= ) +ssl? ( + !libressl? ( >=dev-libs/openssl-0.9.6-r1:0= ) + libressl? ( dev-libs/libressl:= ) +) +tcl? ( >=dev-lang/tcl-8:0= ) +xml? ( dev-libs/libxml2 dev-libs/libxslt ) +zlib? ( sys-libs/zlib ) +" + +# uuid flags -- depend on sys-apps/util-linux for Linux libcs, or if no +# supported libc in use depend on dev-libs/ossp-uuid. For BSD systems, +# the libc includes UUID functions. +UTIL_LINUX_LIBC=( elibc_{glibc,uclibc,musl} ) +BSD_LIBC=( elibc_{Free,Net,Open}BSD ) + +nest_usedep() { + local front back + while [[ ${#} -gt 1 ]]; do + front+="${1}? ( " + back+=" )" + shift + done + echo "${front}${1}${back}" +} + +IUSE+=" ${UTIL_LINUX_LIBC[@]} ${BSD_LIBC[@]}" +CDEPEND+=" +uuid? ( + ${UTIL_LINUX_LIBC[@]/%/? ( sys-apps/util-linux )} + $(nest_usedep ${UTIL_LINUX_LIBC[@]/#/!} ${BSD_LIBC[@]/#/!} dev-libs/ossp-uuid) +)" + +DEPEND="${CDEPEND} +!!<sys-apps/sandbox-2.0 +sys-devel/bison +sys-devel/flex +nls? ( sys-devel/gettext ) +xml? ( virtual/pkgconfig ) +" + +RDEPEND="${CDEPEND} +!dev-db/postgresql-docs:${SLOT} +!dev-db/postgresql-base:${SLOT} +!dev-db/postgresql-server:${SLOT} +selinux? ( sec-policy/selinux-postgresql ) +" + +pkg_setup() { + use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup + + enewgroup postgres 70 + enewuser postgres 70 /bin/sh /var/lib/postgresql postgres + + use python && python-single-r1_pkg_setup +} + +src_prepare() { + # Work around PPC{,64} compilation bug where bool is already defined + sed '/#ifndef __cplusplus/a #undef bool' -i src/include/c.h || die + + # Set proper run directory + sed "s|\(PGSOCKET_DIR\s\+\)\"/tmp\"|\1\"${EPREFIX}/run/postgresql\"|" \ + -i src/include/pg_config_manual.h || die + + # Rely on $PATH being in the proper order so that the correct + # install program is used for modules utilizing PGXS in both + # hardened and non-hardened environments. (Bug #528786) + sed 's/@install_bin@/install -c/' -i src/Makefile.global.in || die + + use server || eapply "${FILESDIR}/${PN}-9.4.10-no-server.patch" + + if use pam ; then + sed -e "s/\(#define PGSQL_PAM_SERVICE \"postgresql\)/\1-${SLOT}/" \ + -i src/backend/libpq/auth.c || \ + die 'PGSQL_PAM_SERVICE rename failed.' + fi + + eapply_user +} + +src_configure() { + case ${CHOST} in + *-darwin*|*-solaris*) + use nls && append-libs intl + ;; + esac + + export LDFLAGS_SL="${LDFLAGS}" + export LDFLAGS_EX="${LDFLAGS}" + + local PO="${EPREFIX%/}" + + local i uuid_config="" + if use uuid; then + for i in ${UTIL_LINUX_LIBC[@]}; do + use ${i} && uuid_config="--with-uuid=e2fs" + done + for i in ${BSD_LIBC[@]}; do + use ${i} && uuid_config="--with-uuid=bsd" + done + [[ -z $uuid_config ]] && uuid_config="--with-uuid=ossp" + fi + + econf \ + --prefix="${PO}/usr/$(get_libdir)/postgresql-${SLOT}" \ + --datadir="${PO}/usr/share/postgresql-${SLOT}" \ + --docdir="${PO}/usr/share/doc/${PF}" \ + --includedir="${PO}/usr/include/postgresql-${SLOT}" \ + --mandir="${PO}/usr/share/postgresql-${SLOT}/man" \ + --sysconfdir="${PO}/etc/postgresql-${SLOT}" \ + --with-system-tzdata="${PO}/usr/share/zoneinfo" \ + $(use_enable !pg_legacytimestamp integer-datetimes) \ + $(use_enable threads thread-safety) \ + $(use_with kerberos gssapi) \ + $(use_with ldap) \ + $(use_with pam) \ + $(use_with perl) \ + $(use_with python) \ + $(use_with readline) \ + $(use_with ssl openssl) \ + $(use_with tcl) \ + ${uuid_config} \ + $(use_with xml libxml) \ + $(use_with xml libxslt) \ + $(use_with zlib) \ + "$(use_enable nls nls "$(wanted_languages)")" +} + +src_compile() { + emake + emake -C contrib +} + +src_install() { + emake DESTDIR="${D}" install + emake DESTDIR="${D}" install -C contrib + + dodoc README HISTORY doc/{TODO,bug.template} + + # man pages are already built, but if we have the target make them, + # they'll be generated from source before being installed so we + # manually install man pages. + # We use ${SLOT} instead of doman for postgresql.eselect + insinto /usr/share/postgresql-${SLOT}/man/ + doins -r doc/src/sgml/man{1,3,7} + if ! use server; then + # Remove man pages for non-existent binaries + for m in {initdb,pg_{controldata,ctl,resetxlog},post{gres,master}}; do + rm "${ED}/usr/share/postgresql-${SLOT}/man/man1/${m}.1" + done + fi + docompress /usr/share/postgresql-${SLOT}/man/man{1,3,7} + + # Create slot specific man pages + local bn f mansec slotted_name + for mansec in 1 3 7 ; do + local rel_manpath="../../postgresql-${SLOT}/man/man${mansec}" + + mkdir -p "${ED}"/usr/share/man/man${mansec} || die "making man dir" + pushd "${ED}"/usr/share/man/man${mansec} > /dev/null || die "pushd failed" + + for f in "${ED}/usr/share/postgresql-${SLOT}/man/man${mansec}"/* ; do + bn=$(basename "${f}") + slotted_name=${bn%.${mansec}}${SLOT/.}.${mansec} + case ${bn} in + TABLE.7|WITH.7) + echo ".so ${rel_manpath}/SELECT.7" > ${slotted_name} + ;; + *) + echo ".so ${rel_manpath}/${bn}" > ${slotted_name} + ;; + esac + done + + popd > /dev/null + done + + insinto /etc/postgresql-${SLOT} + newins src/bin/psql/psqlrc.sample psqlrc + + use static-libs || find "${ED}" -name '*.a' -delete + + local f bn + for f in $(find "${ED}/usr/$(get_libdir)/postgresql-${SLOT}/bin" \ + -mindepth 1 -maxdepth 1) + do + bn=$(basename "${f}") + # Temporarily tack on tmp to workaround a file collision + # issue. This is only necessary for 9.7 and earlier. 10 never + # had this issue. + dosym "../$(get_libdir)/postgresql-${SLOT}/bin/${bn}" \ + "/usr/bin/${bn}${SLOT/.}tmp" + done + + if use doc ; then + docinto html + dodoc doc/src/sgml/html/* + + docinto sgml + dodoc doc/src/sgml/*.{sgml,dsl} + fi + + if use server; then + sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \ + "${FILESDIR}/${PN}.confd-9.3" | newconfd - ${PN}-${SLOT} + + sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \ + "${FILESDIR}/${PN}.init-9.3-r1" | newinitd - ${PN}-${SLOT} + + if use systemd; then + sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \ + "${FILESDIR}/${PN}.service-9.2" | \ + systemd_newunit - ${PN}-${SLOT}.service + systemd_newtmpfilesd "${FILESDIR}"/${PN}.tmpfiles ${PN}-${SLOT}.conf + fi + + newbin "${FILESDIR}"/${PN}-check-db-dir ${PN}-${SLOT}-check-db-dir + + use pam && pamd_mimic system-auth ${PN}-${SLOT} auth account session + + if use prefix ; then + keepdir /run/postgresql + fperms 1775 /run/postgresql + fi + fi +} + +pkg_preinst() { + # Find all of the slot-specific symlinks, if any, in /usr/bin (e.g., + # /usr/bin/psql96). They may have been created by the + # postgresql.eselect module, but they're handled within this ebuild + # now. It's alright if we momentarily delete /usr/bin/psql as it + # will be recreated by the eselect module in pkg_ppostinst(). This + # is only necessary for 9.7 and earlier. 10 and later were never + # handled in this manner. + local canonicalise + if type -p realpath > /dev/null; then + canonicalise=realpath + elif type -p readlink > /dev/null; then + canonicalise='readlink -f' + else + # can't die, subshell + die "No readlink nor realpath found, cannot canonicalise" + fi + + local l + # First remove any symlinks in /usr/bin that may have been created + # by the old eselect + for l in $(find "${ROOT%/}/usr/bin" -mindepth 1 -maxdepth 1 -type l) ; do + if [[ $(${canonicalise} "${l}") == *postgresql-${SLOT}* ]] ; then + rm "${l}" || ewarn "Couldn't remove ${l}" + fi + done + + # Then move the symlinks created by the ebuild to their proper place. + for l in "${ED}"/usr/bin/*tmp ; do + mv "${l}" "${l%tmp}" \ + || ewarn "Couldn't rename $(basename ${l}) to $(basename ${l%tmp})" + done +} + +pkg_postinst() { + use server && use systemd && systemd_tmpfiles_create ${PN}-${SLOT}.conf + postgresql-config update + + elog "If you need a global psqlrc-file, you can place it in:" + elog " ${EROOT%/}/etc/postgresql-${SLOT}/" + + if use server ; then + elog + elog "Gentoo specific documentation:" + elog "https://wiki.gentoo.org/wiki/PostgreSQL" + elog + elog "Official documentation:" + elog "http://www.postgresql.org/docs/${SLOT}/static/index.html" + elog + elog "The default location of the Unix-domain socket is:" + elog " ${EROOT%/}/run/postgresql/" + elog + elog "Before initializing the database, you may want to edit PG_INITDB_OPTS" + elog "so that it contains your preferred locale in:" + elog " ${EROOT%/}/etc/conf.d/postgresql-${SLOT}" + elog + elog "Then, execute the following command to setup the initial database" + elog "environment:" + elog " emerge --config =${CATEGORY}/${PF}" + fi +} + +pkg_prerm() { + if use server && [[ -z ${REPLACED_BY_VERSION} ]] ; then + ewarn "Have you dumped and/or migrated the ${SLOT} database cluster?" + ewarn "\thttps://wiki.gentoo.org/wiki/PostgreSQL/QuickStart#Migrating_PostgreSQL" + + ebegin "Resuming removal in 10 seconds (Control-C to cancel)" + sleep 10 + eend 0 + fi +} + +pkg_postrm() { + postgresql-config update +} + +pkg_config() { + use server || die "USE flag 'server' not enabled. Nothing to configure." + + [[ -f "${EROOT%/}/etc/conf.d/postgresql-${SLOT}" ]] \ + && source "${EROOT%/}/etc/conf.d/postgresql-${SLOT}" + [[ -z "${PGDATA}" ]] && PGDATA="${EROOT%/}/etc/postgresql-${SLOT}/" + [[ -z "${DATA_DIR}" ]] \ + && DATA_DIR="${EROOT%/}/var/lib/postgresql/${SLOT}/data" + + # environment.bz2 may not contain the same locale as the current system + # locale. Unset and source from the current system locale. + if [ -f "${EROOT%/}/etc/env.d/02locale" ]; then + unset LANG + unset LC_CTYPE + unset LC_NUMERIC + unset LC_TIME + unset LC_COLLATE + unset LC_MONETARY + unset LC_MESSAGES + unset LC_ALL + source "${EROOT%/}/etc/env.d/02locale" + [ -n "${LANG}" ] && export LANG + [ -n "${LC_CTYPE}" ] && export LC_CTYPE + [ -n "${LC_NUMERIC}" ] && export LC_NUMERIC + [ -n "${LC_TIME}" ] && export LC_TIME + [ -n "${LC_COLLATE}" ] && export LC_COLLATE + [ -n "${LC_MONETARY}" ] && export LC_MONETARY + [ -n "${LC_MESSAGES}" ] && export LC_MESSAGES + [ -n "${LC_ALL}" ] && export LC_ALL + fi + + einfo "You can modify the paths and options passed to initdb by editing:" + einfo " ${EROOT%/}/etc/conf.d/postgresql-${SLOT}" + einfo + einfo "Information on options that can be passed to initdb are found at:" + einfo " http://www.postgresql.org/docs/${SLOT}/static/creating-cluster.html" + einfo " http://www.postgresql.org/docs/${SLOT}/static/app-initdb.html" + einfo + einfo "PG_INITDB_OPTS is currently set to:" + if [[ -z "${PG_INITDB_OPTS}" ]] ; then + einfo " (none)" + else + einfo " ${PG_INITDB_OPTS}" + fi + einfo + einfo "Configuration files will be installed to:" + einfo " ${PGDATA}" + einfo + einfo "The database cluster will be created in:" + einfo " ${DATA_DIR}" + einfo + + ebegin "Continuing initialization in 5 seconds (Control-C to cancel)" + sleep 5 + eend 0 + + if [ -n "$(ls -A ${DATA_DIR} 2> /dev/null)" ] ; then + eerror "The given directory, '${DATA_DIR}', is not empty." + eerror "Modify DATA_DIR to point to an empty directory." + die "${DATA_DIR} is not empty." + fi + + einfo "Creating the data directory ..." + if [[ ${EUID} == 0 ]] ; then + mkdir -p "${DATA_DIR}" + chown -Rf postgres:postgres "${DATA_DIR}" + chmod 0700 "${DATA_DIR}" + fi + + einfo "Initializing the database ..." + + if [[ ${EUID} == 0 ]] ; then + su postgres -c "${EROOT%/}/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -D \"${DATA_DIR}\" ${PG_INITDB_OPTS}" + else + "${EROOT%/}"/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -U postgres -D "${DATA_DIR}" ${PG_INITDB_OPTS} + fi + + if [[ "${DATA_DIR%/}" != "${PGDATA%/}" ]] ; then + mv "${DATA_DIR%/}"/{pg_{hba,ident},postgresql}.conf "${PGDATA}" + ln -s "${PGDATA%/}"/{pg_{hba,ident},postgresql}.conf "${DATA_DIR%/}" + fi + + # unix_socket_directory has no effect in postgresql.conf as it's + # overridden in the initscript + sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf + + cat <<- EOF >> "${PGDATA%/}"/postgresql.conf + # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522 + # On the off-chance that you might need to work with UTF-8 encoded + # characters in PL/Perl + plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";' + EOF + + einfo "The autovacuum function, which was in contrib, has been moved to the main" + einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled" + einfo "by default. You can disable it in the cluster's:" + einfo " ${PGDATA%/}/postgresql.conf" + einfo + einfo "The PostgreSQL server, by default, will log events to:" + einfo " ${DATA_DIR%/}/postmaster.log" + einfo + if use prefix ; then + einfo "The location of the configuration files have moved to:" + einfo " ${PGDATA}" + einfo "To start the server:" + einfo " pg_ctl start -D ${DATA_DIR} -o '-D ${PGDATA} --data-directory=${DATA_DIR}'" + einfo "To stop:" + einfo " pg_ctl stop -D ${DATA_DIR}" + einfo + einfo "Or move the configuration files back:" + einfo "mv ${PGDATA}*.conf ${DATA_DIR}" + else + einfo "You should use the '${EROOT%/}/etc/init.d/postgresql-${SLOT}' script to run PostgreSQL" + einfo "instead of 'pg_ctl'." + fi +} + +src_test() { + if use server && [[ ${UID} -ne 0 ]] ; then + emake check + + einfo "If you think other tests besides the regression tests are necessary, please" + einfo "submit a bug including a patch for this ebuild to enable them." + else + use server || \ + ewarn 'Tests cannot be run without the "server" use flag enabled.' + [[ ${UID} -eq 0 ]] || \ + ewarn 'Tests cannot be run as root. Enable "userpriv" in FEATURES.' + + ewarn 'Skipping.' + fi +} diff --git a/dev-db/postgresql/postgresql-9.5.12.ebuild b/dev-db/postgresql/postgresql-9.5.12.ebuild new file mode 100644 index 000000000000..4e1148a89f37 --- /dev/null +++ b/dev-db/postgresql/postgresql-9.5.12.ebuild @@ -0,0 +1,488 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +PYTHON_COMPAT=( python2_7 python3_{4,5,6} ) + +inherit eutils flag-o-matic linux-info multilib pam prefix python-single-r1 \ + systemd user versionator + +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~ppc-macos ~x86-solaris" + +SLOT="$(get_version_component_range 1-2)" + +SRC_URI="mirror://postgresql/source/v${PV}/postgresql-${PV}.tar.bz2" + +LICENSE="POSTGRESQL GPL-2" +DESCRIPTION="PostgreSQL RDBMS" +HOMEPAGE="http://www.postgresql.org/" + +IUSE="doc kerberos kernel_linux ldap libressl nls pam perl -pg_legacytimestamp python + +readline selinux +server systemd ssl static-libs tcl threads uuid xml zlib" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +wanted_languages() { + local linguas="af cs de en es fa fr hr hu it ko nb pl pt_BR ro ru + sk sl sv tr zh_CN zh_TW" + local enable_langs lingua + + for lingua in ${linguas} ; do + has ${lingua} ${LINGUAS-${lingua}} && enable_langs+="${lingua} " + done + + echo -n ${enable_langs} +} + +CDEPEND=" +>=app-eselect/eselect-postgresql-2.0 +sys-apps/less +virtual/libintl +kerberos? ( virtual/krb5 ) +ldap? ( net-nds/openldap ) +pam? ( virtual/pam ) +perl? ( >=dev-lang/perl-5.8:= ) +python? ( ${PYTHON_DEPS} ) +readline? ( sys-libs/readline:0= ) +ssl? ( + !libressl? ( >=dev-libs/openssl-0.9.6-r1:0= ) + libressl? ( dev-libs/libressl:= ) +) +tcl? ( >=dev-lang/tcl-8:0= ) +xml? ( dev-libs/libxml2 dev-libs/libxslt ) +zlib? ( sys-libs/zlib ) +" + +# uuid flags -- depend on sys-apps/util-linux for Linux libcs, or if no +# supported libc in use depend on dev-libs/ossp-uuid. For BSD systems, +# the libc includes UUID functions. +UTIL_LINUX_LIBC=( elibc_{glibc,uclibc,musl} ) +BSD_LIBC=( elibc_{Free,Net,Open}BSD ) + +nest_usedep() { + local front back + while [[ ${#} -gt 1 ]]; do + front+="${1}? ( " + back+=" )" + shift + done + echo "${front}${1}${back}" +} + +IUSE+=" ${UTIL_LINUX_LIBC[@]} ${BSD_LIBC[@]}" +CDEPEND+=" +uuid? ( + ${UTIL_LINUX_LIBC[@]/%/? ( sys-apps/util-linux )} + $(nest_usedep ${UTIL_LINUX_LIBC[@]/#/!} ${BSD_LIBC[@]/#/!} dev-libs/ossp-uuid) +)" + +DEPEND="${CDEPEND} +!!<sys-apps/sandbox-2.0 +sys-devel/bison +sys-devel/flex +nls? ( sys-devel/gettext ) +xml? ( virtual/pkgconfig ) +" + +RDEPEND="${CDEPEND} +!dev-db/postgresql-docs:${SLOT} +!dev-db/postgresql-base:${SLOT} +!dev-db/postgresql-server:${SLOT} +selinux? ( sec-policy/selinux-postgresql ) +" + +pkg_setup() { + use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup + + enewgroup postgres 70 + enewuser postgres 70 /bin/sh /var/lib/postgresql postgres + + use python && python-single-r1_pkg_setup +} + +src_prepare() { + # Work around PPC{,64} compilation bug where bool is already defined + sed '/#ifndef __cplusplus/a #undef bool' -i src/include/c.h || die + + # Set proper run directory + sed "s|\(PGSOCKET_DIR\s\+\)\"/tmp\"|\1\"${EPREFIX}/run/postgresql\"|" \ + -i src/include/pg_config_manual.h || die + + # Rely on $PATH being in the proper order so that the correct + # install program is used for modules utilizing PGXS in both + # hardened and non-hardened environments. (Bug #528786) + sed 's/@install_bin@/install -c/' -i src/Makefile.global.in || die + + use server || eapply "${FILESDIR}/${PN}-9.5.5-no-server.patch" + + if use pam ; then + sed -e "s/\(#define PGSQL_PAM_SERVICE \"postgresql\)/\1-${SLOT}/" \ + -i src/backend/libpq/auth.c || \ + die 'PGSQL_PAM_SERVICE rename failed.' + fi + + eapply_user +} + +src_configure() { + case ${CHOST} in + *-darwin*|*-solaris*) + use nls && append-libs intl + ;; + esac + + export LDFLAGS_SL="${LDFLAGS}" + export LDFLAGS_EX="${LDFLAGS}" + + local PO="${EPREFIX%/}" + + local i uuid_config="" + if use uuid; then + for i in ${UTIL_LINUX_LIBC[@]}; do + use ${i} && uuid_config="--with-uuid=e2fs" + done + for i in ${BSD_LIBC[@]}; do + use ${i} && uuid_config="--with-uuid=bsd" + done + [[ -z $uuid_config ]] && uuid_config="--with-uuid=ossp" + fi + + econf \ + --prefix="${PO}/usr/$(get_libdir)/postgresql-${SLOT}" \ + --datadir="${PO}/usr/share/postgresql-${SLOT}" \ + --docdir="${PO}/usr/share/doc/${PF}" \ + --includedir="${PO}/usr/include/postgresql-${SLOT}" \ + --mandir="${PO}/usr/share/postgresql-${SLOT}/man" \ + --sysconfdir="${PO}/etc/postgresql-${SLOT}" \ + --with-system-tzdata="${PO}/usr/share/zoneinfo" \ + $(use_enable !alpha spinlocks) \ + $(use_enable !pg_legacytimestamp integer-datetimes) \ + $(use_enable threads thread-safety) \ + $(use_with kerberos gssapi) \ + $(use_with ldap) \ + $(use_with pam) \ + $(use_with perl) \ + $(use_with python) \ + $(use_with readline) \ + $(use_with ssl openssl) \ + $(use_with tcl) \ + ${uuid_config} \ + $(use_with xml libxml) \ + $(use_with xml libxslt) \ + $(use_with zlib) \ + "$(use_enable nls nls "$(wanted_languages)")" +} + +src_compile() { + emake + emake -C contrib +} + +src_install() { + emake DESTDIR="${D}" install + emake DESTDIR="${D}" install -C contrib + + dodoc README HISTORY doc/{TODO,bug.template} + + # man pages are already built, but if we have the target make them, + # they'll be generated from source before being installed so we + # manually install man pages. + # We use ${SLOT} instead of doman for postgresql.eselect + insinto /usr/share/postgresql-${SLOT}/man/ + doins -r doc/src/sgml/man{1,3,7} + if ! use server; then + # Remove man pages for non-existent binaries + for m in {initdb,pg_{controldata,ctl,resetxlog},post{gres,master}}; do + rm "${ED}/usr/share/postgresql-${SLOT}/man/man1/${m}.1" + done + fi + docompress /usr/share/postgresql-${SLOT}/man/man{1,3,7} + + # Create slot specific man pages + local bn f mansec slotted_name + for mansec in 1 3 7 ; do + local rel_manpath="../../postgresql-${SLOT}/man/man${mansec}" + + mkdir -p "${ED}"/usr/share/man/man${mansec} || die "making man dir" + pushd "${ED}"/usr/share/man/man${mansec} > /dev/null || die "pushd failed" + + for f in "${ED}/usr/share/postgresql-${SLOT}/man/man${mansec}"/* ; do + bn=$(basename "${f}") + slotted_name=${bn%.${mansec}}${SLOT/.}.${mansec} + case ${bn} in + TABLE.7|WITH.7) + echo ".so ${rel_manpath}/SELECT.7" > ${slotted_name} + ;; + *) + echo ".so ${rel_manpath}/${bn}" > ${slotted_name} + ;; + esac + done + + popd > /dev/null + done + + insinto /etc/postgresql-${SLOT} + newins src/bin/psql/psqlrc.sample psqlrc + + use static-libs || find "${ED}" -name '*.a' -delete + + local f bn + for f in $(find "${ED}/usr/$(get_libdir)/postgresql-${SLOT}/bin" \ + -mindepth 1 -maxdepth 1) + do + bn=$(basename "${f}") + # Temporarily tack on tmp to workaround a file collision + # issue. This is only necessary for 9.7 and earlier. 10 never + # had this issue. + dosym "../$(get_libdir)/postgresql-${SLOT}/bin/${bn}" \ + "/usr/bin/${bn}${SLOT/.}tmp" + done + + if use doc ; then + docinto html + dodoc doc/src/sgml/html/* + + docinto sgml + dodoc doc/src/sgml/*.{sgml,dsl} + fi + + if use server; then + sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \ + "${FILESDIR}/${PN}.confd-9.3" | newconfd - ${PN}-${SLOT} + + sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \ + "${FILESDIR}/${PN}.init-9.3-r1" | newinitd - ${PN}-${SLOT} + + if use systemd; then + sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \ + "${FILESDIR}/${PN}.service-9.2" | \ + systemd_newunit - ${PN}-${SLOT}.service + systemd_newtmpfilesd "${FILESDIR}"/${PN}.tmpfiles ${PN}-${SLOT}.conf + fi + + newbin "${FILESDIR}"/${PN}-check-db-dir ${PN}-${SLOT}-check-db-dir + + use pam && pamd_mimic system-auth ${PN}-${SLOT} auth account session + + if use prefix ; then + keepdir /run/postgresql + fperms 1775 /run/postgresql + fi + fi +} + +pkg_preinst() { + # Find all of the slot-specific symlinks, if any, in /usr/bin (e.g., + # /usr/bin/psql96). They may have been created by the + # postgresql.eselect module, but they're handled within this ebuild + # now. It's alright if we momentarily delete /usr/bin/psql as it + # will be recreated by the eselect module in pkg_ppostinst(). This + # is only necessary for 9.7 and earlier. 10 and later were never + # handled in this manner. + local canonicalise + if type -p realpath > /dev/null; then + canonicalise=realpath + elif type -p readlink > /dev/null; then + canonicalise='readlink -f' + else + # can't die, subshell + die "No readlink nor realpath found, cannot canonicalise" + fi + + local l + # First remove any symlinks in /usr/bin that may have been created + # by the old eselect + for l in $(find "${ROOT%/}/usr/bin" -mindepth 1 -maxdepth 1 -type l) ; do + if [[ $(${canonicalise} "${l}") == *postgresql-${SLOT}* ]] ; then + rm "${l}" || ewarn "Couldn't remove ${l}" + fi + done + + # Then move the symlinks created by the ebuild to their proper place. + for l in "${ED}"/usr/bin/*tmp ; do + mv "${l}" "${l%tmp}" \ + || ewarn "Couldn't rename $(basename ${l}) to $(basename ${l%tmp})" + done +} + +pkg_postinst() { + use server && use systemd && systemd_tmpfiles_create ${PN}-${SLOT}.conf + postgresql-config update + + if use alpha && use server ; then + ewarn "PostgreSQL 9.5+ no longer has native spinlock support on Alpha platforms." + ewarn "As a result, performance will be extremely degraded." + fi + + elog "If you need a global psqlrc-file, you can place it in:" + elog " ${EROOT%/}/etc/postgresql-${SLOT}/" + + if use server ; then + elog + elog "Gentoo specific documentation:" + elog "https://wiki.gentoo.org/wiki/PostgreSQL" + elog + elog "Official documentation:" + elog "http://www.postgresql.org/docs/${SLOT}/static/index.html" + elog + elog "The default location of the Unix-domain socket is:" + elog " ${EROOT%/}/run/postgresql/" + elog + elog "Before initializing the database, you may want to edit PG_INITDB_OPTS" + elog "so that it contains your preferred locale in:" + elog " ${EROOT%/}/etc/conf.d/postgresql-${SLOT}" + elog + elog "Then, execute the following command to setup the initial database" + elog "environment:" + elog " emerge --config =${CATEGORY}/${PF}" + fi +} + +pkg_prerm() { + if use server && [[ -z ${REPLACED_BY_VERSION} ]] ; then + ewarn "Have you dumped and/or migrated the ${SLOT} database cluster?" + ewarn "\thttps://wiki.gentoo.org/wiki/PostgreSQL/QuickStart#Migrating_PostgreSQL" + + ebegin "Resuming removal in 10 seconds (Control-C to cancel)" + sleep 10 + eend 0 + fi +} + +pkg_postrm() { + postgresql-config update +} + +pkg_config() { + use server || die "USE flag 'server' not enabled. Nothing to configure." + + [[ -f "${EROOT%/}/etc/conf.d/postgresql-${SLOT}" ]] \ + && source "${EROOT%/}/etc/conf.d/postgresql-${SLOT}" + [[ -z "${PGDATA}" ]] && PGDATA="${EROOT%/}/etc/postgresql-${SLOT}/" + [[ -z "${DATA_DIR}" ]] \ + && DATA_DIR="${EROOT%/}/var/lib/postgresql/${SLOT}/data" + + # environment.bz2 may not contain the same locale as the current system + # locale. Unset and source from the current system locale. + if [ -f "${EROOT%/}/etc/env.d/02locale" ]; then + unset LANG + unset LC_CTYPE + unset LC_NUMERIC + unset LC_TIME + unset LC_COLLATE + unset LC_MONETARY + unset LC_MESSAGES + unset LC_ALL + source "${EROOT%/}/etc/env.d/02locale" + [ -n "${LANG}" ] && export LANG + [ -n "${LC_CTYPE}" ] && export LC_CTYPE + [ -n "${LC_NUMERIC}" ] && export LC_NUMERIC + [ -n "${LC_TIME}" ] && export LC_TIME + [ -n "${LC_COLLATE}" ] && export LC_COLLATE + [ -n "${LC_MONETARY}" ] && export LC_MONETARY + [ -n "${LC_MESSAGES}" ] && export LC_MESSAGES + [ -n "${LC_ALL}" ] && export LC_ALL + fi + + einfo "You can modify the paths and options passed to initdb by editing:" + einfo " ${EROOT%/}/etc/conf.d/postgresql-${SLOT}" + einfo + einfo "Information on options that can be passed to initdb are found at:" + einfo " http://www.postgresql.org/docs/${SLOT}/static/creating-cluster.html" + einfo " http://www.postgresql.org/docs/${SLOT}/static/app-initdb.html" + einfo + einfo "PG_INITDB_OPTS is currently set to:" + if [[ -z "${PG_INITDB_OPTS}" ]] ; then + einfo " (none)" + else + einfo " ${PG_INITDB_OPTS}" + fi + einfo + einfo "Configuration files will be installed to:" + einfo " ${PGDATA}" + einfo + einfo "The database cluster will be created in:" + einfo " ${DATA_DIR}" + einfo + + ebegin "Continuing initialization in 5 seconds (Control-C to cancel)" + sleep 5 + eend 0 + + if [ -n "$(ls -A ${DATA_DIR} 2> /dev/null)" ] ; then + eerror "The given directory, '${DATA_DIR}', is not empty." + eerror "Modify DATA_DIR to point to an empty directory." + die "${DATA_DIR} is not empty." + fi + + einfo "Creating the data directory ..." + if [[ ${EUID} == 0 ]] ; then + mkdir -p "${DATA_DIR}" + chown -Rf postgres:postgres "${DATA_DIR}" + chmod 0700 "${DATA_DIR}" + fi + + einfo "Initializing the database ..." + + if [[ ${EUID} == 0 ]] ; then + su postgres -c "${EROOT%/}/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -D \"${DATA_DIR}\" ${PG_INITDB_OPTS}" + else + "${EROOT%/}"/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -U postgres -D "${DATA_DIR}" ${PG_INITDB_OPTS} + fi + + if [[ "${DATA_DIR%/}" != "${PGDATA%/}" ]] ; then + mv "${DATA_DIR%/}"/{pg_{hba,ident},postgresql}.conf "${PGDATA}" + ln -s "${PGDATA%/}"/{pg_{hba,ident},postgresql}.conf "${DATA_DIR%/}" + fi + + # unix_socket_directory has no effect in postgresql.conf as it's + # overridden in the initscript + sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf + + cat <<- EOF >> "${PGDATA%/}"/postgresql.conf + # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522 + # On the off-chance that you might need to work with UTF-8 encoded + # characters in PL/Perl + plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";' + EOF + + einfo "The autovacuum function, which was in contrib, has been moved to the main" + einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled" + einfo "by default. You can disable it in the cluster's:" + einfo " ${PGDATA%/}/postgresql.conf" + einfo + einfo "The PostgreSQL server, by default, will log events to:" + einfo " ${DATA_DIR%/}/postmaster.log" + einfo + if use prefix ; then + einfo "The location of the configuration files have moved to:" + einfo " ${PGDATA}" + einfo "To start the server:" + einfo " pg_ctl start -D ${DATA_DIR} -o '-D ${PGDATA} --data-directory=${DATA_DIR}'" + einfo "To stop:" + einfo " pg_ctl stop -D ${DATA_DIR}" + einfo + einfo "Or move the configuration files back:" + einfo "mv ${PGDATA}*.conf ${DATA_DIR}" + else + einfo "You should use the '${EROOT%/}/etc/init.d/postgresql-${SLOT}' script to run PostgreSQL" + einfo "instead of 'pg_ctl'." + fi +} + +src_test() { + if use server && [[ ${UID} -ne 0 ]] ; then + emake check + + einfo "If you think other tests besides the regression tests are necessary, please" + einfo "submit a bug including a patch for this ebuild to enable them." + else + use server || \ + ewarn 'Tests cannot be run without the "server" use flag enabled.' + [[ ${UID} -eq 0 ]] || \ + ewarn 'Tests cannot be run as root. Enable "userpriv" in FEATURES.' + + ewarn 'Skipping.' + fi +} diff --git a/dev-db/postgresql/postgresql-9.6.8.ebuild b/dev-db/postgresql/postgresql-9.6.8.ebuild new file mode 100644 index 000000000000..1d5a335c5909 --- /dev/null +++ b/dev-db/postgresql/postgresql-9.6.8.ebuild @@ -0,0 +1,493 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +PYTHON_COMPAT=( python2_7 python3_{4,5,6} ) + +inherit eutils flag-o-matic linux-info multilib pam prefix python-single-r1 \ + systemd user versionator + +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~ppc-macos ~x86-solaris" + +SLOT="$(get_version_component_range 1-2)" + +MY_PV=${PV/_/} +S="${WORKDIR}/${PN}-${MY_PV}" + +SRC_URI="mirror://postgresql/source/v${MY_PV}/postgresql-${MY_PV}.tar.bz2" + +LICENSE="POSTGRESQL GPL-2" +DESCRIPTION="PostgreSQL RDBMS" +HOMEPAGE="http://www.postgresql.org/" + +IUSE="doc kerberos kernel_linux ldap libressl nls pam perl -pg_legacytimestamp python + +readline selinux +server systemd ssl static-libs tcl threads uuid xml zlib" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +wanted_languages() { + local linguas="af cs de en es fa fr hr hu it ko nb pl pt_BR ro ru + sk sl sv tr zh_CN zh_TW" + local enable_langs lingua + + for lingua in ${linguas} ; do + has ${lingua} ${LINGUAS-${lingua}} && enable_langs+="${lingua} " + done + + echo -n ${enable_langs} +} + +CDEPEND=" +>=app-eselect/eselect-postgresql-2.0 +sys-apps/less +virtual/libintl +kerberos? ( virtual/krb5 ) +ldap? ( net-nds/openldap ) +pam? ( virtual/pam ) +perl? ( >=dev-lang/perl-5.8:= ) +python? ( ${PYTHON_DEPS} ) +readline? ( sys-libs/readline:0= ) +ssl? ( + !libressl? ( >=dev-libs/openssl-0.9.6-r1:0= ) + libressl? ( dev-libs/libressl:= ) +) +server? ( systemd? ( sys-apps/systemd ) ) +tcl? ( >=dev-lang/tcl-8:0= ) +xml? ( dev-libs/libxml2 dev-libs/libxslt ) +zlib? ( sys-libs/zlib ) +" + +# uuid flags -- depend on sys-apps/util-linux for Linux libcs, or if no +# supported libc in use depend on dev-libs/ossp-uuid. For BSD systems, +# the libc includes UUID functions. +UTIL_LINUX_LIBC=( elibc_{glibc,uclibc,musl} ) +BSD_LIBC=( elibc_{Free,Net,Open}BSD ) + +nest_usedep() { + local front back + while [[ ${#} -gt 1 ]]; do + front+="${1}? ( " + back+=" )" + shift + done + echo "${front}${1}${back}" +} + +IUSE+=" ${UTIL_LINUX_LIBC[@]} ${BSD_LIBC[@]}" +CDEPEND+=" +uuid? ( + ${UTIL_LINUX_LIBC[@]/%/? ( sys-apps/util-linux )} + $(nest_usedep ${UTIL_LINUX_LIBC[@]/#/!} ${BSD_LIBC[@]/#/!} dev-libs/ossp-uuid) +)" + +DEPEND="${CDEPEND} +!!<sys-apps/sandbox-2.0 +sys-devel/bison +sys-devel/flex +nls? ( sys-devel/gettext ) +xml? ( virtual/pkgconfig ) +" + +RDEPEND="${CDEPEND} +!dev-db/postgresql-docs:${SLOT} +!dev-db/postgresql-base:${SLOT} +!dev-db/postgresql-server:${SLOT} +selinux? ( sec-policy/selinux-postgresql ) +" + +pkg_setup() { + use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup + + enewgroup postgres 70 + enewuser postgres 70 /bin/sh /var/lib/postgresql postgres + + use python && python-single-r1_pkg_setup +} + +src_prepare() { + # Work around PPC{,64} compilation bug where bool is already defined + sed '/#ifndef __cplusplus/a #undef bool' -i src/include/c.h || die + + # Set proper run directory + sed "s|\(PGSOCKET_DIR\s\+\)\"/tmp\"|\1\"${EPREFIX}/run/postgresql\"|" \ + -i src/include/pg_config_manual.h || die + + # Rely on $PATH being in the proper order so that the correct + # install program is used for modules utilizing PGXS in both + # hardened and non-hardened environments. (Bug #528786) + sed 's/@install_bin@/install -c/' -i src/Makefile.global.in || die + + use server || eapply "${FILESDIR}/${PN}-${SLOT}.3-no-server.patch" + + if use pam ; then + sed -e "s/\(#define PGSQL_PAM_SERVICE \"postgresql\)/\1-${SLOT}/" \ + -i src/backend/libpq/auth.c || \ + die 'PGSQL_PAM_SERVICE rename failed.' + fi + + eapply_user +} + +src_configure() { + case ${CHOST} in + *-darwin*|*-solaris*) + use nls && append-libs intl + ;; + esac + + export LDFLAGS_SL="${LDFLAGS}" + export LDFLAGS_EX="${LDFLAGS}" + + local PO="${EPREFIX%/}" + + local i uuid_config="" + if use uuid; then + for i in ${UTIL_LINUX_LIBC[@]}; do + use ${i} && uuid_config="--with-uuid=e2fs" + done + for i in ${BSD_LIBC[@]}; do + use ${i} && uuid_config="--with-uuid=bsd" + done + [[ -z $uuid_config ]] && uuid_config="--with-uuid=ossp" + fi + + econf \ + --prefix="${PO}/usr/$(get_libdir)/postgresql-${SLOT}" \ + --datadir="${PO}/usr/share/postgresql-${SLOT}" \ + --docdir="${PO}/usr/share/doc/${PF}" \ + --includedir="${PO}/usr/include/postgresql-${SLOT}" \ + --mandir="${PO}/usr/share/postgresql-${SLOT}/man" \ + --sysconfdir="${PO}/etc/postgresql-${SLOT}" \ + --with-system-tzdata="${PO}/usr/share/zoneinfo" \ + $(use_enable !alpha spinlocks) \ + $(use_enable !pg_legacytimestamp integer-datetimes) \ + $(use_enable threads thread-safety) \ + $(use_with kerberos gssapi) \ + $(use_with ldap) \ + $(use_with pam) \ + $(use_with perl) \ + $(use_with python) \ + $(use_with readline) \ + $(use_with ssl openssl) \ + $(usex server "$(use_with systemd)" '--without-systemd') \ + $(use_with tcl) \ + ${uuid_config} \ + $(use_with xml libxml) \ + $(use_with xml libxslt) \ + $(use_with zlib) \ + "$(use_enable nls nls "$(wanted_languages)")" +} + +src_compile() { + emake + emake -C contrib +} + +src_install() { + emake DESTDIR="${D}" install + emake DESTDIR="${D}" install -C contrib + + dodoc README HISTORY doc/{TODO,bug.template} + + # man pages are already built, but if we have the target make them, + # they'll be generated from source before being installed so we + # manually install man pages. + # We use ${SLOT} instead of doman for postgresql.eselect + insinto /usr/share/postgresql-${SLOT}/man/ + doins -r doc/src/sgml/man{1,3,7} + if ! use server; then + # Remove man pages for non-existent binaries + for m in {initdb,pg_{controldata,ctl,resetxlog},post{gres,master}}; do + rm "${ED}/usr/share/postgresql-${SLOT}/man/man1/${m}.1" + done + fi + docompress /usr/share/postgresql-${SLOT}/man/man{1,3,7} + + # Create slot specific man pages + local bn f mansec slotted_name + for mansec in 1 3 7 ; do + local rel_manpath="../../postgresql-${SLOT}/man/man${mansec}" + + mkdir -p "${ED}"/usr/share/man/man${mansec} || die "making man dir" + pushd "${ED}"/usr/share/man/man${mansec} > /dev/null || die "pushd failed" + + for f in "${ED}/usr/share/postgresql-${SLOT}/man/man${mansec}"/* ; do + bn=$(basename "${f}") + slotted_name=${bn%.${mansec}}${SLOT/.}.${mansec} + case ${bn} in + TABLE.7|WITH.7) + echo ".so ${rel_manpath}/SELECT.7" > ${slotted_name} + ;; + *) + echo ".so ${rel_manpath}/${bn}" > ${slotted_name} + ;; + esac + done + + popd > /dev/null + done + + insinto /etc/postgresql-${SLOT} + newins src/bin/psql/psqlrc.sample psqlrc + + use static-libs || find "${ED}" -name '*.a' -delete + + local f bn + for f in $(find "${ED}/usr/$(get_libdir)/postgresql-${SLOT}/bin" \ + -mindepth 1 -maxdepth 1) + do + bn=$(basename "${f}") + # Temporarily tack on tmp to workaround a file collision + # issue. This is only necessary for 9.7 and earlier. 10 never + # had this issue. + dosym "../$(get_libdir)/postgresql-${SLOT}/bin/${bn}" \ + "/usr/bin/${bn}${SLOT/.}tmp" + done + + if use doc ; then + docinto html + dodoc doc/src/sgml/html/* + + docinto sgml + dodoc doc/src/sgml/*.{sgml,dsl} + fi + + if use server; then + sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \ + "${FILESDIR}/${PN}.confd-9.3" | newconfd - ${PN}-${SLOT} + + sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \ + "${FILESDIR}/${PN}.init-9.3-r1" | newinitd - ${PN}-${SLOT} + + if use systemd; then + sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \ + "${FILESDIR}/${PN}.service-9.6-r1" | \ + systemd_newunit - ${PN}-${SLOT}.service + systemd_newtmpfilesd "${FILESDIR}"/${PN}.tmpfiles ${PN}-${SLOT}.conf + fi + + newbin "${FILESDIR}"/${PN}-check-db-dir ${PN}-${SLOT}-check-db-dir + + use pam && pamd_mimic system-auth ${PN}-${SLOT} auth account session + + if use prefix ; then + keepdir /run/postgresql + fperms 1775 /run/postgresql + fi + fi +} + +pkg_preinst() { + # Find all of the slot-specific symlinks, if any, in /usr/bin (e.g., + # /usr/bin/psql96). They may have been created by the + # postgresql.eselect module, but they're handled within this ebuild + # now. It's alright if we momentarily delete /usr/bin/psql as it + # will be recreated by the eselect module in pkg_ppostinst(). This + # is only necessary for 9.7 and earlier. 10 and later were never + # handled in this manner. + local canonicalise + if type -p realpath > /dev/null; then + canonicalise=realpath + elif type -p readlink > /dev/null; then + canonicalise='readlink -f' + else + # can't die, subshell + die "No readlink nor realpath found, cannot canonicalise" + fi + + local l + # First remove any symlinks in /usr/bin that may have been created + # by the old eselect + for l in $(find "${ROOT%/}/usr/bin" -mindepth 1 -maxdepth 1 -type l) ; do + if [[ $(${canonicalise} "${l}") == *postgresql-${SLOT}* ]] ; then + rm "${l}" || ewarn "Couldn't remove ${l}" + fi + done + + # Then move the symlinks created by the ebuild to their proper place. + for l in "${ED}"/usr/bin/*tmp ; do + mv "${l}" "${l%tmp}" \ + || ewarn "Couldn't rename $(basename ${l}) to $(basename ${l%tmp})" + done +} + +pkg_postinst() { + use server && use systemd && systemd_tmpfiles_create ${PN}-${SLOT}.conf + postgresql-config update + + elog "If you need a global psqlrc-file, you can place it in:" + elog " ${EROOT%/}/etc/postgresql-${SLOT}/" + + if use server ; then + elog + elog "Gentoo specific documentation:" + elog "https://wiki.gentoo.org/wiki/PostgreSQL" + elog + elog "Official documentation:" + elog "http://www.postgresql.org/docs/${SLOT}/static/index.html" + elog + elog "The default location of the Unix-domain socket is:" + elog " ${EROOT%/}/run/postgresql/" + elog + elog "Before initializing the database, you may want to edit PG_INITDB_OPTS" + elog "so that it contains your preferred locale in:" + elog " ${EROOT%/}/etc/conf.d/postgresql-${SLOT}" + elog + elog "Then, execute the following command to setup the initial database" + elog "environment:" + elog " emerge --config =${CATEGORY}/${PF}" + fi +} + +pkg_prerm() { + if use server && [[ -z ${REPLACED_BY_VERSION} ]] ; then + ewarn "Have you dumped and/or migrated the ${SLOT} database cluster?" + ewarn "\thttps://wiki.gentoo.org/wiki/PostgreSQL/QuickStart#Migrating_PostgreSQL" + + ebegin "Resuming removal in 10 seconds (Control-C to cancel)" + sleep 10 + eend 0 + fi +} + +pkg_postrm() { + postgresql-config update +} + +pkg_config() { + use server || die "USE flag 'server' not enabled. Nothing to configure." + + [[ -f "${EROOT%/}/etc/conf.d/postgresql-${SLOT}" ]] \ + && source "${EROOT%/}/etc/conf.d/postgresql-${SLOT}" + [[ -z "${PGDATA}" ]] && PGDATA="${EROOT%/}/etc/postgresql-${SLOT}/" + [[ -z "${DATA_DIR}" ]] \ + && DATA_DIR="${EROOT%/}/var/lib/postgresql/${SLOT}/data" + + # environment.bz2 may not contain the same locale as the current system + # locale. Unset and source from the current system locale. + if [ -f "${EROOT%/}/etc/env.d/02locale" ]; then + unset LANG + unset LC_CTYPE + unset LC_NUMERIC + unset LC_TIME + unset LC_COLLATE + unset LC_MONETARY + unset LC_MESSAGES + unset LC_ALL + source "${EROOT%/}/etc/env.d/02locale" + [ -n "${LANG}" ] && export LANG + [ -n "${LC_CTYPE}" ] && export LC_CTYPE + [ -n "${LC_NUMERIC}" ] && export LC_NUMERIC + [ -n "${LC_TIME}" ] && export LC_TIME + [ -n "${LC_COLLATE}" ] && export LC_COLLATE + [ -n "${LC_MONETARY}" ] && export LC_MONETARY + [ -n "${LC_MESSAGES}" ] && export LC_MESSAGES + [ -n "${LC_ALL}" ] && export LC_ALL + fi + + einfo "You can modify the paths and options passed to initdb by editing:" + einfo " ${EROOT%/}/etc/conf.d/postgresql-${SLOT}" + einfo + einfo "Information on options that can be passed to initdb are found at:" + einfo " http://www.postgresql.org/docs/${SLOT}/static/creating-cluster.html" + einfo " http://www.postgresql.org/docs/${SLOT}/static/app-initdb.html" + einfo + einfo "PG_INITDB_OPTS is currently set to:" + if [[ -z "${PG_INITDB_OPTS}" ]] ; then + einfo " (none)" + else + einfo " ${PG_INITDB_OPTS}" + fi + einfo + einfo "Configuration files will be installed to:" + einfo " ${PGDATA}" + einfo + einfo "The database cluster will be created in:" + einfo " ${DATA_DIR}" + einfo + + ebegin "Continuing initialization in 5 seconds (Control-C to cancel)" + sleep 5 + eend 0 + + if [ -n "$(ls -A ${DATA_DIR} 2> /dev/null)" ] ; then + eerror "The given directory, '${DATA_DIR}', is not empty." + eerror "Modify DATA_DIR to point to an empty directory." + die "${DATA_DIR} is not empty." + fi + + einfo "Creating the data directory ..." + if [[ ${EUID} == 0 ]] ; then + mkdir -p "${DATA_DIR}" + chown -Rf postgres:postgres "${DATA_DIR}" + chmod 0700 "${DATA_DIR}" + fi + + einfo "Initializing the database ..." + + if [[ ${EUID} == 0 ]] ; then + su postgres -c "${EROOT%/}/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -D \"${DATA_DIR}\" ${PG_INITDB_OPTS}" + else + "${EROOT%/}"/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -U postgres -D "${DATA_DIR}" ${PG_INITDB_OPTS} + fi + + if [[ "${DATA_DIR%/}" != "${PGDATA%/}" ]] ; then + mv "${DATA_DIR%/}"/{pg_{hba,ident},postgresql}.conf "${PGDATA}" + ln -s "${PGDATA%/}"/{pg_{hba,ident},postgresql}.conf "${DATA_DIR%/}" + fi + + # unix_socket_directory has no effect in postgresql.conf as it's + # overridden in the initscript + sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf + + cat <<- EOF >> "${PGDATA%/}"/postgresql.conf + # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522 + # On the off-chance that you might need to work with UTF-8 encoded + # characters in PL/Perl + plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";' + EOF + + einfo "The autovacuum function, which was in contrib, has been moved to the main" + einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled" + einfo "by default. You can disable it in the cluster's:" + einfo " ${PGDATA%/}/postgresql.conf" + einfo + if ! use systemd; then + einfo "The PostgreSQL server, by default, will log events to:" + einfo " ${DATA_DIR%/}/postmaster.log" + einfo + fi + if use prefix ; then + einfo "The location of the configuration files have moved to:" + einfo " ${PGDATA}" + einfo "To start the server:" + einfo " pg_ctl start -D ${DATA_DIR} -o '-D ${PGDATA} --data-directory=${DATA_DIR}'" + einfo "To stop:" + einfo " pg_ctl stop -D ${DATA_DIR}" + einfo + einfo "Or move the configuration files back:" + einfo "mv ${PGDATA}*.conf ${DATA_DIR}" + elif use systemd; then + einfo "You should use the 'postgresql-${SLOT}.service' unit to run PostgreSQL" + einfo "instead of 'pg_ctl'." + else + einfo "You should use the '${EROOT%/}/etc/init.d/postgresql-${SLOT}' script to run PostgreSQL" + einfo "instead of 'pg_ctl'." + fi +} + +src_test() { + if use server && [[ ${UID} -ne 0 ]] ; then + emake check + + einfo "If you think other tests besides the regression tests are necessary, please" + einfo "submit a bug including a patch for this ebuild to enable them." + else + use server || \ + ewarn 'Tests cannot be run without the "server" use flag enabled.' + [[ ${UID} -eq 0 ]] || \ + ewarn 'Tests cannot be run as root. Enable "userpriv" in FEATURES.' + + ewarn 'Skipping.' + fi +} diff --git a/dev-db/tokyocabinet/Manifest b/dev-db/tokyocabinet/Manifest index 9a710871e070..5e40eac9fd7a 100644 --- a/dev-db/tokyocabinet/Manifest +++ b/dev-db/tokyocabinet/Manifest @@ -1,5 +1,5 @@ AUX fix_rpath.patch 2111 BLAKE2B 3aa9797555e0eb02a3d63e4e117e8aff5c7c0a09922cf6b0344777cd95b2480623f05fe68cfe63750ba00ff954bd6bb3e1a587c4e8af31086c94b2b3344cc08e SHA512 c0ee076d048d8ec4a77b036d0503776c4e3ca7a97c30cd8ba41cb0d99707ad5021613e1d308f6e73cc3432e0f71f7b38429ca0edcbc4edfe0d96955fc56b3504 DIST tokyocabinet-1.4.48.tar.gz 1000485 BLAKE2B 4da2659a90dcee1cc99be286fe0e286ee75bd8179b75a944f229a3cc04169b8007220e36400d4934a7b5fde554bbc1783c4813fdf44b4a3530882ea0a8ef258e SHA512 b9995c838e713c13f781ab41062caefeb5c613f696dab08039f992f6860413d60a513114b83468cafdf7fc5b5e51ab880226972465d532f873f2a55f615e1440 -EBUILD tokyocabinet-1.4.48-r1.ebuild 1574 BLAKE2B e3d6b4e5e016cb086d86d46acc248e19597443e0c43c2040e32904cbb3d0760c195c57828f8b1ccea11d677d471253868fab99f8aa8c9c47f51c6ad802d7497a SHA512 f6ccfcd16aceb982936e4bccf85a1aa28d819a6341036d39d5855c3f1c71b6240f076786ed61d3e6a635d7ccb9818a33e94b78efcd23cf40e8b4ce6d920361b3 +EBUILD tokyocabinet-1.4.48-r1.ebuild 1586 BLAKE2B ee5017fa6be2ad78e64819e3461485a121313695df11ac201cf903f4a310a0e3bc2219cfb47d62fcf165b3b799673d4f423606a2d2d916d5437c5396d5dce79b SHA512 4fd45556159fd430b65d28bbd1eb3810d02871f23a16a09dd3667afef6a9b8ba85c550c760282ca5bf4449008d2ac52a1118bb66262d2121017e628f47de2be4 EBUILD tokyocabinet-1.4.48.ebuild 1434 BLAKE2B 00f0696547bb49ad1cfba7a5bde574d6b9aa6d1f156fbe5d8d7ab950f13682f51c381ad06ffa08130507b07cc4a05ed71d4e8e1f5507fca9ea38c9e32fb625fa SHA512 f4e9e127ce970ab86af1e2a58cb83533250c1c62fd3227ceb93312babc384a980556e05700947f67c6fd121259b9030c78a7230b3ce860bca63b468bcf6f9dad MISC metadata.xml 247 BLAKE2B 5a20af3c9732ef7dba68131a08988652f5c93a6d186a82c4deb1bb9c06dc3ae73152a0d241cc346637f7b11caf4676da43301ba596c67b66669535e71db0b03e SHA512 29cf52c16b0cce69899d9c2da8acd9144b7d760442aa323b854dceadb42459e009545193b1df7911ac2241b59f4819b4a6bb1d206d6f57953f770031433bb6b7 diff --git a/dev-db/tokyocabinet/tokyocabinet-1.4.48-r1.ebuild b/dev-db/tokyocabinet/tokyocabinet-1.4.48-r1.ebuild index 5ebdf015b89a..40a687758884 100644 --- a/dev-db/tokyocabinet/tokyocabinet-1.4.48-r1.ebuild +++ b/dev-db/tokyocabinet/tokyocabinet-1.4.48-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2017 Gentoo Foundation +# Copyright 1999-2018 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 EAPI="5" @@ -11,7 +11,7 @@ SRC_URI="${HOMEPAGE}${P}.tar.gz" LICENSE="LGPL-2.1" SLOT="0" -KEYWORDS="alpha amd64 arm ~arm64 hppa ppc ppc64 x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris" +KEYWORDS="alpha amd64 arm ~arm64 hppa ppc ppc64 x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris" IUSE="bzip2 debug doc examples threads zlib" DEPEND="bzip2? ( app-arch/bzip2 ) diff --git a/dev-db/unixODBC/Manifest b/dev-db/unixODBC/Manifest index 568a7bb00895..e601f74a8856 100644 --- a/dev-db/unixODBC/Manifest +++ b/dev-db/unixODBC/Manifest @@ -1,5 +1,7 @@ +AUX unixODBC-2.3.5-CVE-2018-7485.patch 5224 BLAKE2B a21d659f75f9ae11a6d78a4a74b0591786800e14f22d7fb4c7ef5005e0630b95453a319d9254bf3f5e423e74ae36c6a7bd097f3193869757b2bea34f8974e358 SHA512 a4d5dfafe75ea0e85feed76cf18474a89fcf6719ee58d0b56d57959526db2511df2df691bf9af2e1a34c716d2d90f6d274b48a11cfb7add74df799d1f1f67387 DIST unixODBC-2.3.4.tar.gz 1830660 BLAKE2B 19b3b932e66ab2fea5645d9723592d881d86203fcc93a1a34bdc9d24fbb7fa606a0389b37988606ac60da71f378327380a32d4687dba16e784c9cdf0fd9b5fdb SHA512 34799777c95539905d4bbe60ad2b83631a31a68483b6be96dba25f80fa2fff4624ba170078097c942f2206873776d179d7d02a340598c4627f8723eb6f083a26 DIST unixODBC-2.3.5.tar.gz 1633390 BLAKE2B f7c70740471b0c6ff298f2377a3895efbf160764adc4f607dfb65de2873ea3a39a2852399feaca50fc389875e20a10b3cd0389ba9e9f02d0548312d8063f5af5 SHA512 94b5ebb887571f4fa801ae4305cd6cb4eb0d03682fac1eb0422cdd13b046b077e60bff8286c578b0b5e291cfbc0bc8695495e39c3713858d2eeb7b38459397d5 EBUILD unixODBC-2.3.4-r1.ebuild 1664 BLAKE2B eaccced362a7f62eebe1809ee0327df36978a6f0856c2b631cee32763f92b20909c4bb32bc79bd179f5d9193f34d5307519bb1880d9a94bd5a27d238a3682efe SHA512 5429a6f9ad0279d77a2a26b5a1a0752a23646922fb0f2c2a3df594e551a1e46db614bb991d126d7652f5359e4ccbca0bfe1051c1af6b80ea47dbc59ca35d7329 -EBUILD unixODBC-2.3.5.ebuild 1773 BLAKE2B db134377e56f2fb30be44ffc5253bd2532825b9a73dd7a3be06ae706f339a6734a39398776f3616249146abf15eb9275f8065500cf2f14c2ca0e72a8b485ad98 SHA512 ebe2585e62f101da036faf9b1f6036e878cf06fc22112ef1b41e286fdef690edb00b5a9579003143a54b1466102421317fd47abde3b6cbfceabb383817ae18cd +EBUILD unixODBC-2.3.5-r1.ebuild 1831 BLAKE2B c997d10b72858a9f15a37fa03d93788d24c6eb7b1234eb5f8cbb86124656e979fc29f8661c5fd72ad6cec3027389a7dbca766aeb73c400d4a97a440542ab3351 SHA512 70774fb70a84c4fa3c47df1a46336dba76979eebbe3c516c856629c0ce10bea54d141a90dcda73c163ba4fad050241f6c30f459b63ac40157135b7de3bcb1ad9 +EBUILD unixODBC-2.3.5.ebuild 1770 BLAKE2B a2cbcd5f110ac341228fe52330a03a2974dcef1e926e1d117971dbc3de71e8720511ae1474b80d9acc20c8af3ef3cb3ba56b930466da906483b29286e3fe1fb7 SHA512 e3e7b84a4c432a53c467c85828e5652e3475fa881db70c754c6b5b2884e39c89995fac9f1c9f6c151057c87c63f19c4d92a41d0d2097b464190209b19a4622c1 MISC metadata.xml 366 BLAKE2B 9832224237ae18987939d9c0f657c6666114a5ce41af09a3a5a423d666ec70d9c5cd4fec1d82134b68e2e96b1a3e390977a0cd95001d325465d75b2b9b311d64 SHA512 e47157f178b585272b5c11682cef0c7b7dec227ded178d3427e91632f754db869deb72a6c1b258dfc90f6760028d3045d1e703874ae24111f8deb9db629b8c29 diff --git a/dev-db/unixODBC/files/unixODBC-2.3.5-CVE-2018-7485.patch b/dev-db/unixODBC/files/unixODBC-2.3.5-CVE-2018-7485.patch new file mode 100644 index 000000000000..2c4178cda48f --- /dev/null +++ b/dev-db/unixODBC/files/unixODBC-2.3.5-CVE-2018-7485.patch @@ -0,0 +1,135 @@ +From 45ef78e037f578b15fc58938a3a3251655e71d6f Mon Sep 17 00:00:00 2001 +From: Nick Gorham <nick@lurcher.ink.org> +Date: Mon, 8 Jan 2018 11:12:39 +0000 +Subject: [PATCH] New Pre Source + +diff --git a/DriverManager/SQLGetDiagRecW.c b/DriverManager/SQLGetDiagRecW.c +index a6368d7..be89120 100644 +--- a/DriverManager/SQLGetDiagRecW.c ++++ b/DriverManager/SQLGetDiagRecW.c +@@ -98,6 +98,8 @@ + + static char const rcsid[]= "$RCSfile: SQLGetDiagRecW.c,v $"; + ++extern int __is_env( EHEAD * head ); /* in SQLGetDiagRec.c */ ++ + static SQLRETURN extract_sql_error_rec_w( EHEAD *head, + SQLWCHAR *sqlstate, + SQLINTEGER rec_number, +diff --git a/DriverManager/SQLSetDescField.c b/DriverManager/SQLSetDescField.c +index 333d786..0e2f67c 100644 +--- a/DriverManager/SQLSetDescField.c ++++ b/DriverManager/SQLSetDescField.c +@@ -306,7 +306,7 @@ SQLRETURN SQLSetDescField( SQLHDESC descriptor_handle, + return function_return_nodrv( SQL_HANDLE_DESC, descriptor, SQL_ERROR ); + } + +- if ( field_identifier == SQL_DESC_COUNT && (SQLINTEGER)value < 0 ) ++ if ( field_identifier == SQL_DESC_COUNT && (intptr_t)value < 0 ) + { + __post_internal_error( &descriptor -> error, + ERROR_07009, NULL, +@@ -315,9 +315,9 @@ SQLRETURN SQLSetDescField( SQLHDESC descriptor_handle, + return function_return_nodrv( SQL_HANDLE_DESC, descriptor, SQL_ERROR ); + } + +- if ( field_identifier == SQL_DESC_PARAMETER_TYPE && value != SQL_PARAM_INPUT +- && value != SQL_PARAM_OUTPUT && value != SQL_PARAM_INPUT_OUTPUT && +- value != SQL_PARAM_INPUT_OUTPUT_STREAM && value != SQL_PARAM_OUTPUT_STREAM ) ++ if ( field_identifier == SQL_DESC_PARAMETER_TYPE && (intptr_t)value != SQL_PARAM_INPUT ++ && (intptr_t)value != SQL_PARAM_OUTPUT && (intptr_t)value != SQL_PARAM_INPUT_OUTPUT && ++ (intptr_t)value != SQL_PARAM_INPUT_OUTPUT_STREAM && (intptr_t)value != SQL_PARAM_OUTPUT_STREAM ) + { + __post_internal_error( &descriptor -> error, + ERROR_HY105, NULL, +diff --git a/DriverManager/SQLSetDescFieldW.c b/DriverManager/SQLSetDescFieldW.c +index 5e066ac..45125ff 100644 +--- a/DriverManager/SQLSetDescFieldW.c ++++ b/DriverManager/SQLSetDescFieldW.c +@@ -288,7 +288,7 @@ SQLRETURN SQLSetDescFieldW( SQLHDESC descriptor_handle, + return function_return_nodrv( SQL_HANDLE_DESC, descriptor, SQL_ERROR ); + } + +- if ( field_identifier == SQL_DESC_COUNT && (SQLINTEGER)value < 0 ) ++ if ( field_identifier == SQL_DESC_COUNT && (intptr_t)value < 0 ) + { + __post_internal_error( &descriptor -> error, + ERROR_07009, NULL, +@@ -297,9 +297,9 @@ SQLRETURN SQLSetDescFieldW( SQLHDESC descriptor_handle, + return function_return_nodrv( SQL_HANDLE_DESC, descriptor, SQL_ERROR ); + } + +- if ( field_identifier == SQL_DESC_PARAMETER_TYPE && value != SQL_PARAM_INPUT +- && value != SQL_PARAM_OUTPUT && value != SQL_PARAM_INPUT_OUTPUT && +- value != SQL_PARAM_INPUT_OUTPUT_STREAM && value != SQL_PARAM_OUTPUT_STREAM ) ++ if ( field_identifier == SQL_DESC_PARAMETER_TYPE && (intptr_t)value != SQL_PARAM_INPUT ++ && (intptr_t)value != SQL_PARAM_OUTPUT && (intptr_t)value != SQL_PARAM_INPUT_OUTPUT && ++ (intptr_t)value != SQL_PARAM_INPUT_OUTPUT_STREAM && (intptr_t)value != SQL_PARAM_OUTPUT_STREAM ) + { + __post_internal_error( &descriptor -> error, + ERROR_HY105, NULL, +diff --git a/exe/iusql.c b/exe/iusql.c +index aac5329..484a889 100644 +--- a/exe/iusql.c ++++ b/exe/iusql.c +@@ -413,7 +413,6 @@ static int ExecuteSQL( SQLHDBC hDbc, char *szSQL, char cDelimiter, int bColumnNa + if ( bVerbose ) DumpODBCLog( hEnv, hDbc, hStmt ); + fprintf( stderr, "[ISQL]ERROR: Could not SQLExecDirect\n" ); + SQLFreeStmt( hStmt, SQL_DROP ); +- free(szSepLine); + return 0; + } + } +diff --git a/odbcinst/SQLCreateDataSource.c b/odbcinst/SQLCreateDataSource.c +index a9fa735..83a1e9e 100644 +--- a/odbcinst/SQLCreateDataSource.c ++++ b/odbcinst/SQLCreateDataSource.c +@@ -26,7 +26,7 @@ char* _multi_string_alloc_and_copy( LPCWSTR in ) + + if ( !in ) + { +- return in; ++ return NULL; + } + + while ( in[ len ] != 0 || in[ len + 1 ] != 0 ) +@@ -55,7 +55,7 @@ char* _single_string_alloc_and_copy( LPCWSTR in ) + + if ( !in ) + { +- return in; ++ return NULL; + } + + while ( in[ len ] != 0 ) +@@ -83,7 +83,7 @@ SQLWCHAR* _multi_string_alloc_and_expand( LPCSTR in ) + + if ( !in ) + { +- return in; ++ return NULL; + } + + while ( in[ len ] != 0 || in[ len + 1 ] != 0 ) +@@ -112,7 +112,7 @@ SQLWCHAR* _single_string_alloc_and_expand( LPCSTR in ) + + if ( !in ) + { +- return in; ++ return NULL; + } + + while ( in[ len ] != 0 ) +diff --git a/odbcinst/SQLWriteFileDSN.c b/odbcinst/SQLWriteFileDSN.c +index c2f987b..e225796 100644 +--- a/odbcinst/SQLWriteFileDSN.c ++++ b/odbcinst/SQLWriteFileDSN.c +@@ -21,7 +21,7 @@ BOOL SQLWriteFileDSN( LPCSTR pszFileName, + + if ( pszFileName[0] == '/' ) + { +- strncpy( szFileName, sizeof(szFileName) - 5, pszFileName ); ++ strncpy( szFileName, pszFileName, sizeof(szFileName) - 5 ); + } + else + { diff --git a/dev-db/unixODBC/unixODBC-2.3.5-r1.ebuild b/dev-db/unixODBC/unixODBC-2.3.5-r1.ebuild new file mode 100644 index 000000000000..6bc81e8881b8 --- /dev/null +++ b/dev-db/unixODBC/unixODBC-2.3.5-r1.ebuild @@ -0,0 +1,65 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +inherit libtool ltprune multilib-minimal + +DESCRIPTION="A complete ODBC driver manager" +HOMEPAGE="http://www.unixodbc.org/" +SRC_URI="ftp://ftp.unixodbc.org/pub/${PN}/${P}.tar.gz" + +LICENSE="GPL-2 LGPL-2.1" +SLOT="0" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="+minimal odbcmanual static-libs unicode" + +RDEPEND=" + || ( + dev-libs/libltdl:0[${MULTILIB_USEDEP}] + >=sys-devel/libtool-2.4.2-r1[${MULTILIB_USEDEP}] + ) + >=sys-libs/readline-6.2_p5-r1:0=[${MULTILIB_USEDEP}] + >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] + >=virtual/libiconv-0-r1[${MULTILIB_USEDEP}] +" +DEPEND="${RDEPEND} + sys-devel/flex +" + +MULTILIB_CHOST_TOOLS=( /usr/bin/odbc_config ) +MULTILIB_WRAPPED_HEADERS=( /usr/include/unixodbc_conf.h ) + +PATCHES=( + "${FILESDIR}/${PN}-2.3.5-CVE-2018-7485.patch" +) + +multilib_src_configure() { + # --enable-driver-conf is --enable-driverc as per configure.in + myeconfargs=( + --sysconfdir="${EPREFIX}"/etc/${PN} + --disable-static + --enable-iconv + --enable-shared + $(use_enable static-libs static) + $(use_enable !minimal drivers) + $(use_enable !minimal driverc) + $(use_with unicode iconv-char-enc UTF8) + $(use_with unicode iconv-ucode-enc UTF16LE) + ) + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" +} + +multilib_src_install_all() { + einstalldocs + + if use odbcmanual ; then + # We could simply run "make install-html" if we'd not had + # out-of-source builds here. + docinto html + dodoc -r doc/. + find "${ED%/}/usr/share/doc/${PF}/html" -name "Makefile*" -delete || die + fi + + use prefix && dodoc README* + prune_libtool_files +} diff --git a/dev-db/unixODBC/unixODBC-2.3.5.ebuild b/dev-db/unixODBC/unixODBC-2.3.5.ebuild index eb5e0216e655..de06a4496d0c 100644 --- a/dev-db/unixODBC/unixODBC-2.3.5.ebuild +++ b/dev-db/unixODBC/unixODBC-2.3.5.ebuild @@ -10,7 +10,7 @@ SRC_URI="ftp://ftp.unixodbc.org/pub/${PN}/${P}.tar.gz" LICENSE="GPL-2 LGPL-2.1" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +KEYWORDS="~alpha amd64 ~arm ~arm64 hppa ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" IUSE="+minimal odbcmanual static-libs unicode" RDEPEND=" |