diff options
Diffstat (limited to 'dev-db')
89 files changed, 5425 insertions, 3407 deletions
diff --git a/dev-db/Manifest.gz b/dev-db/Manifest.gz Binary files differindex 5bdcb46dc249..1e073ce540ac 100644 --- a/dev-db/Manifest.gz +++ b/dev-db/Manifest.gz diff --git a/dev-db/couchdb/Manifest b/dev-db/couchdb/Manifest deleted file mode 100644 index d97b3d55f2f2..000000000000 --- a/dev-db/couchdb/Manifest +++ /dev/null @@ -1,5 +0,0 @@ -AUX couchdb.conf-2 234 BLAKE2B ced08a5fc870703da6ab1e743cb421e7f1d5e8831923dc9115e708c728b27955650e69e323567bf6ad0041eca968f6cf152e097b962d496450ac90fd3d4f6d38 SHA512 5c40927957362a7431be6980be3a239e4ee0ca47d28f1b4d4fb3014b307e459eb429f5b50e0c8aa58b3e9f2285371616a58f06207e272feae1bed33f8c32d836 -AUX couchdb.init-4 439 BLAKE2B 4b334d42238616a1bfef41f915e7e42038457b6e52b713af698aa625dcf8364008d2e0763b1b5c90bd01121778447a86646730836bacc4cafe3477bec99b77f7 SHA512 a1e0a9403082e1c336454584d78d15e5d76861b3b3d0e56fcfb25ab50c0dbbdcf658e251e25f22e2a58dc72f38ec16ce82759bf9c7b5330a569ffb5fab912999 -DIST apache-couchdb-1.7.2.tar.gz 10009424 BLAKE2B 3d3b4922fe5b2c55e4851e48993442ba23369753fb17d5cafba936947624af0d3dac70e0a23d0c22c79e7e2776a3a441d5b1020a4a420b7d9a621fb59aad48d9 SHA512 507a35a7f1e826b1562eec86146cc6fcff3c65fa7762f9742e6e8fdacfca735473105772757624183778f7a532c742f6644b301677607bb81c1f3f0ceb742867 -EBUILD couchdb-1.7.2.ebuild 1833 BLAKE2B 7f7e685bf752daf2b0a968543956b8b3debf293e01441c9e812f9740407b6df6d324f75c146f0eec8be39dc423f37991cd4b69b68cf0a3e2c7688c93dd00799e SHA512 cb0ce76bdef08e39fa286486da0b0787ef9d5c0c894aa31eb750875de5f5562c19a4ecc8216c67c5c7cb87ccee6f9ce53bc33b3acdf8e41bcc9d8c1827616b1c -MISC metadata.xml 168 BLAKE2B 28995e217ebfd4a11f4738455bcd495fccb2214a7e4f48a820d2057a7d29a1d510707f94d15bff49abf69d68fdecd658381f34692181502eb587de9f2c7e0f9e SHA512 9f2101e330a89b03cbbc1814dcf7ad75f3dd4117abeeed5047cb695f81cd8f0719d3285b39acfb93f3ea1ba1b98911cc452b5d332d266b84a19791190ca123b6 diff --git a/dev-db/couchdb/couchdb-1.7.2.ebuild b/dev-db/couchdb/couchdb-1.7.2.ebuild deleted file mode 100644 index 85ea96ed35b8..000000000000 --- a/dev-db/couchdb/couchdb-1.7.2.ebuild +++ /dev/null @@ -1,77 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=5 - -inherit autotools eutils multilib pax-utils user - -DESCRIPTION="Distributed, fault-tolerant and schema-free document-oriented database" -HOMEPAGE="https://couchdb.apache.org/" -SRC_URI="mirror://apache/couchdb/source/${PV}/apache-${P}.tar.gz" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="amd64 ppc x86" -IUSE="libressl selinux test" - -RDEPEND=">=dev-libs/icu-4.3.1:= - <dev-lang/erlang-21.0[ssl] - !libressl? ( >=dev-libs/openssl-0.9.8j:0 ) - libressl? ( dev-libs/libressl ) - >=net-misc/curl-7.18.2 - <dev-lang/spidermonkey-1.8.7 - selinux? ( sec-policy/selinux-couchdb )" - -DEPEND="${RDEPEND} - sys-devel/autoconf-archive" -RESTRICT=test - -S="${WORKDIR}/apache-${P}" - -pkg_setup() { - enewgroup couchdb - enewuser couchdb -1 -1 /var/lib/couchdb couchdb -} - -src_prepare() { - sed -i ./src/couchdb/priv/Makefile.* -e 's|-Werror||g' - eautoreconf -} - -src_configure() { - econf \ - --with-erlang="${EPREFIX}"/usr/$(get_libdir)/erlang/usr/include \ - --localstatedir="${EPREFIX}"/var \ - --with-js-lib="${EPREFIX}"/usr/$(get_libdir) - # bug 296609, upstream bug #COUCHDB-621 - sed -e "s#localdocdir = /usr/share/doc/couchdb#localdocdir = "${EPREFIX}"/usr/share/doc/${PF}#" -i Makefile || die "sed failed" -} - -src_compile() { - emake - # bug 442616 - pax-mark mr src/couchdb/priv/couchjs -} - -src_test() { - emake distcheck -} - -src_install() { - emake DESTDIR="${D}" install - - fowners couchdb:couchdb \ - /var/lib/couchdb \ - /var/log/couchdb - - for f in "${ED}"/etc/couchdb/*.ini ; do - fowners root:couchdb "${f#${ED}}" - fperms 660 "${f#${ED}}" - done - fperms 664 /etc/couchdb/default.ini - - newinitd "${FILESDIR}/couchdb.init-4" couchdb - newconfd "${FILESDIR}/couchdb.conf-2" couchdb - - sed -i -e "s:LIBDIR:$(get_libdir):" "${ED}/etc/conf.d/couchdb" -} diff --git a/dev-db/couchdb/files/couchdb.conf-2 b/dev-db/couchdb/files/couchdb.conf-2 deleted file mode 100644 index 94d50b35f33d..000000000000 --- a/dev-db/couchdb/files/couchdb.conf-2 +++ /dev/null @@ -1,9 +0,0 @@ -# Options for CouchDB - -EXEC="/usr/bin/couchdb" -COUCHDB_USER="couchdb:couchdb" -COUCHDB_PID_FILE="/var/run/couchdb/couchdb.pid" -COUCHDB_STDOUT_FILE="/dev/null" -COUCHDB_STDERR_FILE="/dev/null" -#COUCHDB_RESPAWN_TIMEOUT= -#COUCHDB_OPTIONS= diff --git a/dev-db/couchdb/files/couchdb.init-4 b/dev-db/couchdb/files/couchdb.init-4 deleted file mode 100644 index aab1757d3cf4..000000000000 --- a/dev-db/couchdb/files/couchdb.init-4 +++ /dev/null @@ -1,17 +0,0 @@ -#!/sbin/openrc-run -# Copyright 1999-2013 Dirkjan Ochtman -# Distributed under the terms of the Apache License, Version 2.0 - -pidfile=${COUCHDB_PID_FILE} -command=${EXEC:-/usr/bin/couchdb} -command_args="-b -o ${COUCHDB_STDOUT_FILE} -e ${COUCHDB_STDERR_FILE} -p ${pidfile} ${COUCHDB_OPTIONS}" - -start_stop_daemon_args="--user ${COUCHDB_USER}" - -depend() { - need net -} - -start_pre() { - checkpath -q -d -m 0755 -o ${COUCHDB_USER} /var/run/couchdb -} diff --git a/dev-db/couchdb/metadata.xml b/dev-db/couchdb/metadata.xml deleted file mode 100644 index cc08d6296c93..000000000000 --- a/dev-db/couchdb/metadata.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <!-- maintainer needed --> -</pkgmetadata> diff --git a/dev-db/datadraw/Manifest b/dev-db/datadraw/Manifest index ec21700e9f44..9e2146bed806 100644 --- a/dev-db/datadraw/Manifest +++ b/dev-db/datadraw/Manifest @@ -1,3 +1,3 @@ DIST datadraw3.1.1.tar.gz 607914 BLAKE2B ec4f6bafce924edda39a19f4e29ec7ac5c52dafbb0e8412280fd232e91b2bdf525fc931518249857f5b35a2f76c40a5fb28493db6220dacd86113361f780d38d SHA512 64773b984cb9d6928ec486833ee03f07c6c5f21dcfcc446e21fe90eb432b7a09459ea65e24c46df70bc6b791dfc640caf16b6f6cdd8a35319969bb8ec7e65009 EBUILD datadraw-3.1.1.ebuild 1002 BLAKE2B 47f1d82234b8e2548d0c3420a5fe40121d0d39530bb2c05d09ad442fc2a778b036566e7ac79df6ab6f86a3729fe0fd123576d4afaa4435873145e8850351ad84 SHA512 5ba2c3d348ce7533dff173a3ed5bbf710ef55f7a3dcadc5360581704a3ceae4857ab773ca74165c81faa1a84226d5d706a9996df16db80ea22d2837a602e545d -MISC metadata.xml 683 BLAKE2B fe18d49ff4beb4a5a0a7948b29ced47e7fac6dfd32f9f01e9381d4f38ef4ddd227a46e0e1310c8aac05d52a5af50802bbb9af42ecbc1c90fd12399705f23e42b SHA512 cf47cf89f8b79929d9fa0b74c1e6a924c17b7f5e51d6b831593b12c7ab802eb6cb77a96cbbb0bd96c76922cfecb88c8e0e9def477a93a1cca7489cd7b34d2af2 +MISC metadata.xml 583 BLAKE2B bb602abc24fa9252a7fd6c6ef24acb1585209d7ff695f9e1d0e044672fbeffab42454fe309f9341d979ec01073241af1683aca8b3ff9b0aca2664861c7192c06 SHA512 a771756ad279d2183df72e74fb6c4df994515f7de99485fcc4ef59b6e5618ec06c192e674efee7a354b9ccb2def3f361ef19e46c1817d55af9dd9dec20f28467 diff --git a/dev-db/datadraw/metadata.xml b/dev-db/datadraw/metadata.xml index 48833abaadc8..ca2189f2632a 100644 --- a/dev-db/datadraw/metadata.xml +++ b/dev-db/datadraw/metadata.xml @@ -1,10 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> -<maintainer type="person"> - <email>xmw@gentoo.org</email> - <name>Michael Weber</name> -</maintainer> <maintainer type="project"> <email>sci-electronics@gentoo.org</email> <name>Gentoo Electronics Project</name> diff --git a/dev-db/etcd/Manifest b/dev-db/etcd/Manifest index f091ab301740..011560c6a0c3 100644 --- a/dev-db/etcd/Manifest +++ b/dev-db/etcd/Manifest @@ -11,7 +11,7 @@ DIST etcd-3.3.8.tar.gz 3518826 BLAKE2B 4d8ac66022c63250e37871a40041a799a21361f00 DIST etcd-3.3.9.tar.gz 3521457 BLAKE2B 4c8ae96744b93efe19626225ccd5deca19e9e6bd18d87778e9ba1c207e288ed66d79410bc51bb8c7621c0bf261012ca95d86cd9d307655688a6026a46d891c34 SHA512 1e5143060d04138eee68250b57f73bf7a6fdb4ca085443df067b12a4824d24b591e42f3d890a285912126447e8b28c0e6bcee58b8633e01dcf9ae5764ff531a6 EBUILD etcd-3.2.22.ebuild 1475 BLAKE2B 4cbf762bd7dc082d11b4ef984e27673921a5a44e7cec9f8284d1feda234662352497512edc84c2ba9c29b743b481a9f06fe8b32b14695273d8fa97956e460e76 SHA512 dc2cab07f90c4c181b0453b7a15b66df3c270c63872843317838d29b985a0c9a0905b7ce0a054df2015991337bccdee7bfc920e599b17142e231f0a0aa8d9f5c EBUILD etcd-3.2.24.ebuild 1475 BLAKE2B 4cbf762bd7dc082d11b4ef984e27673921a5a44e7cec9f8284d1feda234662352497512edc84c2ba9c29b743b481a9f06fe8b32b14695273d8fa97956e460e76 SHA512 dc2cab07f90c4c181b0453b7a15b66df3c270c63872843317838d29b985a0c9a0905b7ce0a054df2015991337bccdee7bfc920e599b17142e231f0a0aa8d9f5c -EBUILD etcd-3.3.10.ebuild 1900 BLAKE2B 5af3103c025a7d134e3681e302f45c8c066551402f41e8ceae8c628047b3b99351894059b8fe365a3cf49628dc22333f5af7a599a613a59e63b67452ab96def2 SHA512 8fa5415e93583cb1a604d80a2dd21d50a59d21c9d5e064681f5d6ec5f46f266b42c0abcf488d24ebf20dfc167d978bd4616f113b1fb01eff6605065a438713d8 +EBUILD etcd-3.3.10.ebuild 1946 BLAKE2B 938fb4d10e7a256eded717eab622dcda726f1bebdc810e7cf5c2592ba32405c1b51df8e2eb30b944639e837164b3d32c33ac3a95605489aef73a4d7e11476575 SHA512 c1033dc5edff5f569ae1e29294057b7f79fd35f4fc8d8f1114e32819b29945a858f7cd78673b27120895a824c002020f86df8d66b55b768eca905fcb35b78611 EBUILD etcd-3.3.8.ebuild 1603 BLAKE2B ecc2eb8cd86fb1ca37d6fd7eecde005fcc3c633bc7569ce54acc5daf947b4be2cc88e596ada2c1e8a7b3d40d44273a143f80b26a2cbb8e851ad8d36b6fcb4beb SHA512 83a23179d8381a126fde6d9e9c521170b3148b78773421893175a81fb48d8b980e93309cc5c40d8993b9039fadc7d75a2ecc03fdc5186d5ba84ac71826dfe68d EBUILD etcd-3.3.9.ebuild 1603 BLAKE2B ecc2eb8cd86fb1ca37d6fd7eecde005fcc3c633bc7569ce54acc5daf947b4be2cc88e596ada2c1e8a7b3d40d44273a143f80b26a2cbb8e851ad8d36b6fcb4beb SHA512 83a23179d8381a126fde6d9e9c521170b3148b78773421893175a81fb48d8b980e93309cc5c40d8993b9039fadc7d75a2ecc03fdc5186d5ba84ac71826dfe68d MISC metadata.xml 679 BLAKE2B 7374379a18107011df792be631428834334ad8e6da5cfe404f18555e8c168d3fc716a1c8d6cb5cf1d9ccd173737aecf93a165f846865dbb6ba4a76bd4669b446 SHA512 8070d8b51dd3319e8b159072db237dcc5299361c2f74fa086fc4cbc174cc6a5c8f7659310332b54b2275e2bc3d028323c4dfa5775e21693a339f54312582d2f0 diff --git a/dev-db/etcd/etcd-3.3.10.ebuild b/dev-db/etcd/etcd-3.3.10.ebuild index 19f780d06747..431d7d6ff869 100644 --- a/dev-db/etcd/etcd-3.3.10.ebuild +++ b/dev-db/etcd/etcd-3.3.10.ebuild @@ -7,6 +7,7 @@ inherit user systemd golang-vcs-snapshot KEYWORDS="~amd64" EGO_PN="github.com/coreos/etcd" +GIT_COMMIT="27fc7e2" MY_PV="${PV/_rc/-rc.}" DESCRIPTION="Highly-available key value store for shared configuration and service discovery" HOMEPAGE="https://github.com/coreos/etcd" @@ -19,7 +20,7 @@ RDEPEND="!dev-db/etcdctl" src_prepare() { default - sed -e 's|GIT_SHA=.*|GIT_SHA=v${PV}|'\ + sed -e "s|GIT_SHA=.*|GIT_SHA=${GIT_COMMIT}|"\ -i "${S}"/src/${EGO_PN}/build || die sed -e 's:\(for p in \)shellcheck :\1 :' \ -e 's:^ gofmt \\$:\\:' \ @@ -40,7 +41,7 @@ pkg_setup() { src_compile() { export GOPATH=${S} pushd src/${EGO_PN} || die - ./build || die + GO_BUILD_FLAGS=-v ./build || die popd || die } diff --git a/dev-db/freetds/Manifest b/dev-db/freetds/Manifest index 533e7c8757f3..af86ee6ec221 100644 --- a/dev-db/freetds/Manifest +++ b/dev-db/freetds/Manifest @@ -1,10 +1,6 @@ -AUX without-flags.patch 1859 BLAKE2B 846c177b9773c27b329a23f54592a2b789b0d8d123a80b0b990b8938fed8a27c2ad5eac33eeb5e9caf5d12a59943048092c277ab45a34948bf19a3605d036ded SHA512 b981dd2ddab06e4c163d847de9a1086515775abacbbcf10be5d67388ce5502a37a23bb6c94eaf36082dc36d30060ff12a38fd9ceb6b93e3f8116d2de7ddcb2e7 DIST freetds-1.00.41.tar.gz 2904915 BLAKE2B d92789c9a08dc9f7f04e8efc828841c3cace0e5a3affd11d8751a785db70db79fedffb3745a681b960d30a11efbb4fa457805eb4f72444eecc20eb65d46e2d82 SHA512 dec3197a6478fc59b7386f9a7a562df8b581bba7184210c42f26827e957b9746e6820d687a9c6cbcd7c825fc5d4f556547c0483d06c786a064d5c4859db4daa1 -DIST freetds-1.00.54.tar.gz 2907015 BLAKE2B 332888565c2890657ca6440e4bbe92e0324daf6c6e67f3fa2243bd2d5746e7e9aa100a7838d33cc8fa93e71e5d6a650976ce5164317f3147b192ceb915362534 SHA512 a2a5034705fe06ee38b085f980f6ddf086789abc9485331fdaf829e7243f7ba95a5f0c612d7e3ec9e10f28a5c8b3a3fd8e7853d66f67110bd860afce949c798c DIST freetds-dev.1.00.341.tar.gz 3002134 BLAKE2B c9396c1f205e13c9f3449bef19830cf3b6c2fa72539555ebd6bc1532c014472c862ba2ac7f495bee8f53d640d628c6b15bb50183585d43cf3dbbea4e314636d2 SHA512 fd691535dfa5c97463ff72056cfa5721557b71e41b6186ffcb08e193e51214cf966a33ee55b8e538a6f035aeeef14ac5b15fe8758f1afea9e1252a3b8951ba58 -EBUILD freetds-1.00.341-r1.ebuild 1923 BLAKE2B a4d5512227942fa186376800626487c25dd3427f2e59396fa33dcff7b3372b2ec77e937a00cb64449d7a293566779a909f7edddc52c617bd4acbdac18b6e6035 SHA512 e0b050b1f3e4561abcb78ba526ab3320d721dcb7374b37e231bd58af94f79937d5fa6ad91fd94410429e1cb4252a890fb1093185a50f3d3bb643b483d3c662b2 -EBUILD freetds-1.00.341.ebuild 1891 BLAKE2B c033f9851e0cd02697976652d48fc50d40faf24282f7c337b9df6bb12c6a2d5443ff35c710d7460f3691f927256475c4cd60d0b4113da93e54e719d181a83a83 SHA512 ebcb93cd255f63f5f8d6fa67eb149853d6d21b392f8371cd2f696a69563a48eaabfbf4499f59569309c59ac44b463f66703454ff7e993073611f7922cedb31cc +EBUILD freetds-1.00.341-r1.ebuild 1914 BLAKE2B a88a9d5ae6c21bd1d10fbe6fef807da75051fef2cb4a3e38db57ca88da923352d1c320ae54d737dc54eeec31169a4ed38611a2bf41cd788bf55d8bac130616f7 SHA512 1f2cd77c0a6a6b834ca81928de710ceefe169eb7d1292aace246d2644946ad9e196776de04b4b2529e82458fa4278d19cc74a1b1e5d5f1b0e32b7d4bcd7cdef6 EBUILD freetds-1.00.41.ebuild 1988 BLAKE2B 58e5b9ecc1ec5196c3e4e50cfccefa6ca44510ba344b1d024f1280667e47d4351ce1946dea1f963cc3feb0a8a5382812e046173579fd961d522b3155ad422261 SHA512 a48ffe06b8303885d2e795d9cfe756979652460da4912de33dde0a06b635c3466f3abebfdad17ef7aa8cc35fb5f79eeca8457f18c2999108b13367eb2a8d7e02 -EBUILD freetds-1.00.54-r1.ebuild 2064 BLAKE2B 6ec6575c86163e8678fbf841fbe8aa85e5fc7fd6e1839ff423dc542718e8ef88c2ef19e178bc7f76493e78b8e6edbbcfec87af85ebad2ca1153e07cdbb15e664 SHA512 48931c5f0e49cdd9f07e413339a0e647a4b48eec562cfe337a6c57243d11a99d47977d8987902a6ecafa3930a94a1102912c57359e146f155f6fcf6ee5753ce0 EBUILD freetds-9999.ebuild 1603 BLAKE2B 4a6149df3ad684b7246fed4f19c457f8a74c12a6ad89114d04890a86f9a41a02f7023c07dc55c139865091aed89a70accf993dc77bae4ffdc1f0bb3ff1698794 SHA512 264144b12f57bd34d1ace56458e4ea2cda0f4f5fd9f789373d8e7b4695cdf910562441359218b0c7c8bac446c8fa5673c56a37d0cfef444fc6d11fe57f2121b9 MISC metadata.xml 167 BLAKE2B e4dadf27fd344484f2bccb5b904909c89aac568c32e5b3c44bdf139eacefd4b4fae74419f503d2b7da0dccc1b68ba05d777d11292c0f89270d1ac5c9c703e8ca SHA512 7c8decb24ee3a850e38186cf3c7f8933a28017426806870ad6ef9ceb2533be147a2681fc789b535a81cb528af8c29d90d3006e4f250aee23bd7dea4561294e33 diff --git a/dev-db/freetds/files/without-flags.patch b/dev-db/freetds/files/without-flags.patch deleted file mode 100644 index 1f04a90ac6af..000000000000 --- a/dev-db/freetds/files/without-flags.patch +++ /dev/null @@ -1,48 +0,0 @@ -From c4b9d766e009273c70d8953767ef2fcb95f65314 Mon Sep 17 00:00:00 2001 -From: Michael Orlitzky <michael@orlitzky.com> -Date: Fri, 11 Aug 2017 16:45:15 -0400 -Subject: [PATCH] configure.ac: support "without" versions of three ./configure - flags. - -The --with-iodbc, --with-unixodbc, and --with-odbc-nodm flags all use -the standard AC_ARG_WITH macro. The resulting ./configure script -accepts e.g. --without-iodbc to indicate that the user does not want -to enable iODBC, and in place of a path the word "no" is placed into -the $with_iodbc variable. The current configure.ac doesn't handle that -and instead treats "no" as a path. This commit updates configure.ac to -ignore "no" as the value of those three flags. ---- - configure.ac | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 4f41033ae..9dfe12bb7 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -546,7 +546,7 @@ esac - - AC_ARG_WITH(iodbc, - AS_HELP_STRING([--with-iodbc=DIR], [build odbc driver against iODBC in DIR])) --if test "$with_iodbc"; then -+if test "x$with_iodbc" != "x" -a "x$with_iodbc" != "xno"; then - if echo "$with_iodbc" | grep -v '^/'; then - with_iodbc="$PWD/$with_iodbc" - fi -@@ -563,7 +563,7 @@ fi - - AC_ARG_WITH(unixodbc, - AS_HELP_STRING([--with-unixodbc=DIR], [build odbc driver against unixODBC in DIR])) --if test "$with_unixodbc"; then -+if test "x$with_unixodbc" != "x" -a "x$with_unixodbc" != "xno"; then - if echo "$with_unixodbc" | grep -v '^/'; then - with_unixodbc="$PWD/$with_unixodbc" - fi -@@ -588,7 +588,7 @@ fi - - AC_ARG_WITH(odbc_nodm, - AS_HELP_STRING([--with-odbc-nodm=DIR], [build odbc using headers in DIR/include])) --if test "$with_odbc_nodm"; then -+if test "x$with_odbc_nodm" != "x" -a "x$with_odbc_nodm" != "xno"; then - if echo "$with_odbc_nodm" | grep -v '^/'; then - with_odbc_nodm="$PWD/$with_odbc_nodm" - fi diff --git a/dev-db/freetds/freetds-1.00.341-r1.ebuild b/dev-db/freetds/freetds-1.00.341-r1.ebuild index 5dc4218c97b3..0f6169b1d435 100644 --- a/dev-db/freetds/freetds-1.00.341-r1.ebuild +++ b/dev-db/freetds/freetds-1.00.341-r1.ebuild @@ -13,7 +13,7 @@ SRC_URI="ftp://ftp.freetds.org/pub/${PN}/current/${MY_PN}.${PV}.tar.gz" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~ppc-macos" +KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~ppc-macos" IUSE="debug gnutls iconv kerberos libressl mssql iodbc odbc ssl static-libs" # iODBC and unixODBC are mutually-exclusive choices for diff --git a/dev-db/freetds/freetds-1.00.341.ebuild b/dev-db/freetds/freetds-1.00.341.ebuild deleted file mode 100644 index 77ec3228c82b..000000000000 --- a/dev-db/freetds/freetds-1.00.341.ebuild +++ /dev/null @@ -1,68 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -# This is from the "current" release series, because the "stable" series -# is a little too stable for us (missing bug fixes, and so on). -MY_PN="${PN}-dev" - -DESCRIPTION="Tabular Datastream Library" -HOMEPAGE="http://www.freetds.org/" -SRC_URI="ftp://ftp.freetds.org/pub/${PN}/current/${MY_PN}.${PV}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~ppc-macos" -IUSE="gnutls iconv kerberos libressl mssql iodbc odbc ssl static-libs" -RESTRICT="test" - -# sed, grep, and awk are used by the build system and the osql script. -COMMON_DEPEND="sys-apps/sed - sys-apps/grep - virtual/awk - gnutls? ( net-libs/gnutls:= ) - iconv? ( virtual/libiconv ) - iodbc? ( dev-db/libiodbc ) - kerberos? ( virtual/krb5 ) - odbc? ( dev-db/unixODBC ) - ssl? ( - !libressl? ( dev-libs/openssl:0= ) - libressl? ( dev-libs/libressl:0= ) - )" -DEPEND="${COMMON_DEPEND}" - -# bind-tools is needed because the osql script calls "host". -# binutils is for "strings". -RDEPEND="${COMMON_DEPEND} - sys-devel/binutils - net-dns/bind-tools" - -# iODBC and unixODBC are mutually-exclusive choices for -# the ODBC driver manager. Future versions of FreeTDS -# will throw an error if you specify both. -REQUIRED_USE="?? ( iodbc odbc )" - -S="${WORKDIR}/${MY_PN}.${PV}" - -src_configure() { - econf \ - --enable-shared \ - $(use_enable iconv libiconv) \ - $(use_enable kerberos krb5) \ - $(use_enable mssql msdblib) \ - $(use_enable static-libs static) \ - $(use_with iodbc) \ - $(use_with odbc unixodbc "${EPREFIX}/usr") \ - $(use_with iconv libiconv-prefix "${EPREFIX}/usr") \ - $(use_with gnutls) \ - $(use_with ssl openssl "${EPREFIX}/usr") -} - -src_install() { - default - - if ! use static-libs; then - find "${D}" -name '*.la' -delete || die - fi -} diff --git a/dev-db/freetds/freetds-1.00.54-r1.ebuild b/dev-db/freetds/freetds-1.00.54-r1.ebuild deleted file mode 100644 index 0032727f6bf8..000000000000 --- a/dev-db/freetds/freetds-1.00.54-r1.ebuild +++ /dev/null @@ -1,72 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit autotools - -DESCRIPTION="Tabular Datastream Library" -HOMEPAGE="http://www.freetds.org/" -SRC_URI="ftp://ftp.freetds.org/pub/freetds/stable/${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~ppc-macos" -IUSE="gnutls iconv kerberos libressl mssql iodbc odbc ssl" -RESTRICT="test" - -# sed, grep, and awk are used by the build system and the osql script. -COMMON_DEPEND="sys-apps/sed - sys-apps/grep - virtual/awk - gnutls? ( net-libs/gnutls ) - iconv? ( virtual/libiconv ) - iodbc? ( dev-db/libiodbc ) - kerberos? ( virtual/krb5 ) - odbc? ( dev-db/unixODBC ) - ssl? ( - !libressl? ( dev-libs/openssl:0 ) - libressl? ( dev-libs/libressl ) - )" - -DEPEND="${COMMON_DEPEND}" - -# bind-tools is needed because the osql script calls "host". -# binutils is for "strings". -RDEPEND="${COMMON_DEPEND} - sys-devel/binutils - net-dns/bind-tools" - -# iODBC and unixODBC are mutually-exclusive choices for -# the ODBC driver manager. Future versions of FreeTDS -# will throw an error if you specify both. -REQUIRED_USE="?? ( iodbc odbc )" - -# Won't be necessary in the next release. -PATCHES=( "${FILESDIR}/without-flags.patch" ) - -src_prepare() { - default - - # Fix the iodbc include path in the configure script. Otherwise, it - # can't find isql.h. - sed -ie 's:with_iodbc/include":with_iodbc/include/iodbc":' \ - configure.ac \ - || die "failed to fix the iodbc include path in configure.ac" - - eautoreconf -} - -src_configure() { - local myconf=( $(use_with iodbc iodbc "${EPREFIX}/usr") ) - myconf+=( $(use_with odbc unixodbc "${EPREFIX}/usr") ) - myconf+=( $(use_enable iconv libiconv) ) - myconf+=( $(use_with iconv libiconv-prefix "${EPREFIX}/usr") ) - myconf+=( $(use_enable kerberos krb5) ) - myconf+=( $(use_enable mssql msdblib) ) - myconf+=( $(use_with gnutls) ) - myconf+=( $(use_with ssl openssl "${EPREFIX}/usr") ) - myconf+=( --docdir="/usr/share/doc/${PF}" ) - - econf "${myconf[@]}" -} diff --git a/dev-db/innotop/Manifest b/dev-db/innotop/Manifest index 6c9b306aab01..b68a02dbf58e 100644 --- a/dev-db/innotop/Manifest +++ b/dev-db/innotop/Manifest @@ -1,5 +1,7 @@ DIST innotop-1.11.1.tar.gz 178295 BLAKE2B d863ca92baf30d8570116892bbb3587233bfaf01cd7a3e20d659a0c6f39016c7f735961a94f2b63db2db9f01ab4ed8f87a767157ec6d4b243790c3d2d33cf460 SHA512 49654e8ed81f5690c7e80fb169ad514caedb8d62e22bddc12cc234701875bc8ca7e2cc79061c10557d63dadbb40f2328a58b38dcf8aa60469c0c1558dbf0bed9 DIST innotop-1.11.4.tar.gz 179683 BLAKE2B 972a5304e97dd430ff59f1683da782b23633a82c47491704b42d46036ca30458ec961b2e071d983905217d18007430f9732e65de2fabf72bf05838af259d30ab SHA512 678d57074fd4fc87c93032052b87dc187cfe273e99fef8ec8f93131f8d885613bacda7b900f56e7572a6cc51c36c26fe1968e55dd1736b8509fb6e269c9d2aff +DIST innotop-1.12.0.tar.gz 182854 BLAKE2B 1470f21fe7882e920966a856365586c37461c955f0d07ea72a9bffa16b1a112fe5daa2dec585f888c90570d28f9af4e88885a36910bf892cc4f69abd044a4494 SHA512 bc650cd8fb5e5b83f12ccccc852802d676500d7241fe0beaa2a67c3dcca90ab06f329f0a6750789b6097ab201630b9ecf494159086d904ce7c1cfe7aefb5a635 EBUILD innotop-1.11.1.ebuild 636 BLAKE2B 885c065db1f297257955835aedf47c51eb768181a3cad3b17b07cae084935f1dd69b5886b2badc9adbf1f2a77acb9041d1308a5c9db35db4bab286c392cf0af0 SHA512 99631c9b1cc35783b526b46ae23cac85603b67f3aa1edee09a0b931adee9b59e67bebb8c79905c41d1447e0dad12ca791e26ff9d5918797db43c4a865fd27556 EBUILD innotop-1.11.4.ebuild 636 BLAKE2B 54eadd7a6fdce16f6e7f61347666e9a1489a8218f4e82c9ac9d65cf927913fc04b92a46d4b6e655f5517e241d150b106244467c32d2baeec09ba35b1a810e46b SHA512 7b6c18ac7149d41b54cdd296ad0431dc291ebb6baa23dbba5a0903ea58a384cece14907238e05f31c64be49f18e6f4eda913a62d01ca06ca37173bd53a6a1d7c +EBUILD innotop-1.12.0.ebuild 633 BLAKE2B 7f987ee26b6f469700f107f5b27b5b15e81790656c326c36fec36c3429dac8aa9c982fc62700bf6004103419e1a96c43aa90be83ce01eaf5d6fd8d3937d0224f SHA512 978a673305506a4abf085f6fa5eb9dc2d895e0f550b1f757589cdd3a512ce8ddb881932b478a6096a6a4ddc38c5608286ad0704eb6681069b4df77c845f71931 MISC metadata.xml 446 BLAKE2B 240fcfb51fe22a85a88ced188db07907943c96264440ac9af750eb071cde67ed3178bc32d402dc40dbd157dead3ed604e3193813be0ab5b460e365428f7296e5 SHA512 788b300a652ef6577b92c1db658937f7db9beffe2ae3a94559f0c3a885fbe0a0cfaef2aa6b7bc8fc907823722d4b9016b2e272b47932628b55d4512a7bfc9bf7 diff --git a/dev-db/innotop/innotop-1.12.0.ebuild b/dev-db/innotop/innotop-1.12.0.ebuild new file mode 100644 index 000000000000..d1f0d89c491b --- /dev/null +++ b/dev-db/innotop/innotop-1.12.0.ebuild @@ -0,0 +1,27 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +inherit perl-module + +DESCRIPTION="A text-mode MySQL and InnoDB monitor like mytop, but with many more features" +HOMEPAGE="https://github.com/innotop/innotop" +SRC_URI="https://github.com/innotop/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="|| ( Artistic GPL-2 )" +KEYWORDS="~alpha ~amd64 ~ppc ~sparc ~x86" +SLOT="0" +IUSE="" + +DEPEND="dev-perl/DBI + dev-perl/DBD-mysql + dev-perl/TermReadKey + virtual/perl-Term-ANSIColor + virtual/perl-Time-HiRes" + +DIST_TEST="do parallel" + +src_install() { + perl-module_src_install +} diff --git a/dev-db/kyotocabinet/Manifest b/dev-db/kyotocabinet/Manifest index 10ea8047c029..27c28c6e4400 100644 --- a/dev-db/kyotocabinet/Manifest +++ b/dev-db/kyotocabinet/Manifest @@ -3,5 +3,7 @@ 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 +DIST kyotocabinet-1.2.77.tar.gz 949326 BLAKE2B faacde57e8c7fed3fb232ea6fd12b668f2d2ee352cd357d5e16e0d1740cd8f73e223964249efeae50f3ea5d0672117b2410b91ba557ebe1ac7ba4075ac28deab SHA512 f38794c11faa3f4b64097a2e314307e1a6b75ddc495103647ebe52786a689336754496e7083697417ea90436e7fad681f16440975abec9ae917874aa25153e0f EBUILD kyotocabinet-1.2.76-r1.ebuild 1314 BLAKE2B 405aefc1e9ec0b79f997a940d69c4368497ac14cbb8a948b3e33f8e1d5864e26ce3cae491d66fa5a23aca9484ad83d8e7d67995e5aeb49b5b804a65742d1e152 SHA512 1562b94093907e7dbfd3044bd94ca5b8a9ce335638402c9382874958f1d9470db0bafb1375e8cd68ca0136c21ccc3b7884fd97065a20a3f1eb3dc23f8cd8ae94 +EBUILD kyotocabinet-1.2.77.ebuild 1530 BLAKE2B 225dde1c2e483dbfd852ef9e53dd7cd47e7bace6b55da5ecf0ba2960aaec0d2509d0c3688eaa05fe52a41c092ed56b17806bffb99532d21d93156620cb1b7436 SHA512 3cab1b19da5f3dc7f05a896220104a3532d3a3fc51d5462d18e4a30d7cda7db6d875ccd5d7fc0554337007c4cb1ba205a9351d86fded80b6c43238c9b824070f MISC metadata.xml 247 BLAKE2B 5a20af3c9732ef7dba68131a08988652f5c93a6d186a82c4deb1bb9c06dc3ae73152a0d241cc346637f7b11caf4676da43301ba596c67b66669535e71db0b03e SHA512 29cf52c16b0cce69899d9c2da8acd9144b7d760442aa323b854dceadb42459e009545193b1df7911ac2241b59f4819b4a6bb1d206d6f57953f770031433bb6b7 diff --git a/dev-db/kyotocabinet/kyotocabinet-1.2.77.ebuild b/dev-db/kyotocabinet/kyotocabinet-1.2.77.ebuild new file mode 100644 index 000000000000..36ee56423060 --- /dev/null +++ b/dev-db/kyotocabinet/kyotocabinet-1.2.77.ebuild @@ -0,0 +1,69 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +inherit autotools toolchain-funcs + +DESCRIPTION="A straightforward implementation of DBM" +HOMEPAGE="https://fallabs.com/kyotocabinet/" +SRC_URI="${HOMEPAGE}pkg/${P}.tar.gz" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris" +IUSE="debug doc examples +lzma +lzo static-libs" + +DEPEND="sys-libs/zlib[static-libs?] + lzma? ( app-arch/xz-utils:=[static-libs?] ) + lzo? ( dev-libs/lzo:=[static-libs?] )" +RDEPEND="${DEPEND}" + +PATCHES=( + "${FILESDIR}"/fix_configure-1.2.62.patch + "${FILESDIR}"/${PN}-1.2.76-configure-8-byte-atomics.patch + "${FILESDIR}"/${PN}-1.2.76-flags.patch +) + +src_prepare() { + default + + sed -i -e "/DOCDIR/d" Makefile.in || die + tc-export AR + + mv configure.in configure.ac || die + eautoreconf +} + +src_configure() { + # We need to set LD_LIBRARY_PATH which will be assigned to RUNENV later + # used by test suite + LD_LIBRARY_PATH=. \ + econf $(use_enable debug) \ + $(use_enable static-libs static) \ + $(use_enable !static-libs shared) \ + $(use_enable lzma) \ + $(use_enable lzo) +} + +src_test() { + emake -j1 check +} + +src_install() { + default + + if ! use static-libs; then + find "${ED}" -name '*.a' -delete || die + fi + + if use examples; then + insinto /usr/share/${PF}/example + doins example/* + fi + + if use doc; then + insinto /usr/share/doc/${PF} + doins -r doc/* + fi +} diff --git a/dev-db/maatkit/Manifest b/dev-db/maatkit/Manifest deleted file mode 100644 index 007c0a341ee9..000000000000 --- a/dev-db/maatkit/Manifest +++ /dev/null @@ -1,3 +0,0 @@ -DIST maatkit-7540.tar.gz 1312812 BLAKE2B fae133ac0fc95b6c824eccdd156941d6cc6693dda21756752b5f9244d4053b0d13d1464ab4dbb09b95da5385638f72f2e0c91c3ac64eeece0ad387324d8d01a9 SHA512 98cb44a5ebce09322b4d9a8cfa9e14e2ccb54ef9e0e8a95ee92b0fee5277f06157415152566497893488967735049d95c6efadc0d57c8a70060c7bc714afef9a -EBUILD maatkit-7540-r1.ebuild 2648 BLAKE2B ff112cd9ecda8f35c52391c3956c9463c19ddd570a7752b4ad1f27307e36b9d3233365f38183d746c81b7654c5fafc4ae735c72031cfdc734c6d07333e1f0da9 SHA512 50bb20b8ed8f7cfe42e672c43803f62cc97756fd268be02e6166e7b184cf2671e8447aa7f12ec29c71872a493fa2b807318faaf62fa1ea94a95aa652bfef33eb -MISC metadata.xml 665 BLAKE2B 564d2c428e52287e471afc42c2aa43516458b3dff6cdba5daa041145ff426d62480e3d0bc5ca9bd408a05cb22691c295616a2c22357ec05cde993e34ac9f356a SHA512 afbdf9167fdf5c3efacbbe3952cede0a377c3f2eb614e1b65e15bfcc1394e586f59c5786ef3e679453a3bf3f40ae54153b9f7d324f5e4d5e07a2d8cd43c3c25b diff --git a/dev-db/maatkit/maatkit-7540-r1.ebuild b/dev-db/maatkit/maatkit-7540-r1.ebuild deleted file mode 100644 index 9cefb50cea68..000000000000 --- a/dev-db/maatkit/maatkit-7540-r1.ebuild +++ /dev/null @@ -1,110 +0,0 @@ -# Copyright 1999-2014 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=5 - -inherit perl-app perl-module toolchain-funcs - -DESCRIPTION="essential command-line utilities for MySQL" -HOMEPAGE="http://www.maatkit.org/" -SRC_URI="https://maatkit.googlecode.com/files/${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux ~ppc-macos" -IUSE="udf" - -COMMON_DEPEND="dev-perl/DBI - dev-perl/DBD-mysql - virtual/perl-Time-HiRes" -RDEPEND="${COMMON_DEPEND} - virtual/perl-Getopt-Long - virtual/perl-Time-Local - virtual/perl-Digest-MD5 - virtual/perl-IO-Compress - virtual/perl-File-Temp - virtual/perl-File-Spec - virtual/perl-Time-HiRes - virtual/perl-Scalar-List-Utils - dev-perl/TermReadKey" -DEPEND="${COMMON_DEPEND} - udf? ( dev-db/mysql ) - virtual/perl-ExtUtils-MakeMaker" - -mysql-udf_src_compile() { - local udfdir="${T}/udf/" - mkdir -p "${udfdir}" - - local udfname udffile udfext udfoutpath - udfname="${1}" - udfext=".so" - udffile="${udfname}${udfext}" - udfoutpath="${udfdir}/${udffile}" - shift - CXX="$(tc-getCXX)" - local src="$@" - if [ -z "$@" ]; then - src="${udfname}.cc" - fi - for f in ${src} ; do - [ -f "${f}" ] || \ - die "UDF ${udfname}: Cannot find source file ${f} to compile" - done - einfo "UDF ${udfname}: compiling from ${src}" - ${CXX} \ - ${CXXFLAGS} -I/usr/include/mysql \ - ${LDFLAGS} -fPIC -shared -o "${udfoutpath}" $src \ - || die "UDF ${udfname}: Failed to compile" -} - -mysql-udf_src_install() { - local udfdir="${T}/udf/" - local udfname udfext udffile udfoutpath - udfname="${1}" - udfext=".so" - udffile="${udfname}${udfext}" - udfoutpath="${udfdir}/${udffile}" - insinto /usr/$(get_libdir)/mysql/plugins - doins "${udfoutpath}" -} - -udf_done_intro=0 -mysql-udf_pkg_postinst() { - local udfname udffile udfext udffunc udfreturn - udfname="${1}" - udfext=".so" - udffile="${udfname}${udfext}" - udffunc="${2}" - udfreturn="${3}" - if [ ${udf_done_intro} -eq 0 ]; then - elog "To use the UDFs that were built:" - elog "Update your configuration to include 'plugin_dir=/usr/$(get_libdir)/mysql/plugins'" - elog "Issue the following commands as a user with FUNCTION privileges:" - udf_done_intro=1 - fi - elog "CREATE FUNCTION ${udffunc} RETURNS ${udfreturn} SONAME '${udffile}'" -} - -src_compile() { - perl-app_src_compile - if use udf; then - cd "${S}"/udf - mysql-udf_src_compile murmur_udf - mysql-udf_src_compile fnv_udf - fi -} - -src_install() { - perl-module_src_install - if use udf; then - mysql-udf_src_install murmur_udf - mysql-udf_src_install fnv_udf - fi -} - -pkg_postinst() { - if use udf; then - mysql-udf_pkg_postinst murmur_udf murmur_hash INTEGER - mysql-udf_pkg_postinst fnv_udf fnv_64 INTEGER - fi -} diff --git a/dev-db/maatkit/metadata.xml b/dev-db/maatkit/metadata.xml deleted file mode 100644 index d3ab294dbcd0..000000000000 --- a/dev-db/maatkit/metadata.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <longdescription>maatkit, formerly MySQL Toolkit, is a collection of command-line utilities that -provide missing functionality for MySQL. Some of the tools implement lacking -server functionality, such as online consistency checks for master/slave -replication; others are client-side utilities such as a query profiler.</longdescription> - <use> - <flag name="udf">Build the MySQL UDFs shipped with maatkit, requires non-minimal MySQL</flag> - </use> - <upstream> - <remote-id type="google-code">maatkit</remote-id> - </upstream> -</pkgmetadata> diff --git a/dev-db/mariadb-connector-c/Manifest b/dev-db/mariadb-connector-c/Manifest index f94bd1350e00..71a72b7d8812 100644 --- a/dev-db/mariadb-connector-c/Manifest +++ b/dev-db/mariadb-connector-c/Manifest @@ -1,6 +1,10 @@ AUX gentoo-layout-3.0.patch 311 BLAKE2B 4c2f0ae8aa53d605bcaf134274d3b549ec970b43cc68eed1ac71cf089c9fa32a1343d7ebfdf428e7f25032f5782aecfb86fb8f78528ffc708ab15dc7285a24e7 SHA512 4d5a48b4dd66aab04ba597b30e96b4601c6745acca21be1daf051ba6ce1e8fef1a0efa46d8e81da1ecdc893a8ee471bd8c7ed0c5436ee33b8b4f7cd18fdca1a5 AUX mariadb-connector-c-3.0.6-provide-pkconfig-file.patch 1838 BLAKE2B 454433d5815e818bb3cb08241b1629e7cb2e8c6b33d09e241db11cc7f18e73a8cbf40567fe47a613c420581f8487c39478bcbef22da4ba21b77a10f71e4b11ef SHA512 a3ec1a1702d2d5ae5ea6ef93e9bc7f01df548c65574b177a20e8b29694b078ebd67a409ed253467d1db38895e66285eaf73e604a507bfb09384bc3d15325cb60 +AUX mariadb-connector-c-3.0.7-fix-pkconfig-file-r1.patch 998 BLAKE2B 7c07b70ec752832d62757ee08a6f56b59d47e11c68d5333308878ef6b030a3b959bf2d6ba6ec37f0960f1e5f0be702c974f53c81886cc7a8348d4eeca4eaaa03 SHA512 06fdd1bdcbe9550257e4947bae25870525f59a729c7b78eee703990b17b9ada152d32f80f1bb57f67455bc143725a7f166cf34f9de1edcd40c49e49a2d2a6826 +AUX mariadb-connector-c-3.0.7-fix-pkconfig-file.patch 630 BLAKE2B 4d087835c14334ebfdbfcf69df16e948dfd0c46c194d56ba44516bfb647ff518d766170d95c3c86f39211555f25993d95b57c516a357bb3db52b8428273aad48 SHA512 9949b6e6ea2fe325279a6459ce6119524444dbec65cd509549bdc89d5a4c9afb6c39abe2d4e1ab64f6c7e917279f83a323f93d3fe7bd79a8d519976f8c786028 DIST mariadb-connector-c-3.0.6-src.tar.gz 666819 BLAKE2B 7245c0e13e569454d1cc70e3579afcbd53c64a0a7e828012b38d73f7d737a81b4fdf0363bd1b156dae783806a51773dbceb2ea06621bd4a73773edb78a70249a SHA512 6a41efacff1840eb8ddd8b34d8894b51f260444c76a1344f9ac9b675fd8492d44716338e4c11594d80118b12d90f75430304282650bce0d5f64179df6cc14d8e +DIST mariadb-connector-c-3.0.7-src.tar.gz 667274 BLAKE2B 75d2d548d51889aecc8af56cbeb61f5eaf21e60924b70dd0559214de464eae209743febdb5d443797f853bc902352f7333aefe84cb367f61f7bf2c341a4a8ac2 SHA512 70facae6234f180d94c0526845a3bf7723d6de3b6871544cb8cea35311fec0537c6342fbf4f024d0dca58ee618642c38748ae73628fcba334064a3c15d307219 EBUILD mariadb-connector-c-3.0.6-r1.ebuild 2816 BLAKE2B 38450ea224a5f0e960abc65ebce37121ed02d1ec0d5bfc7c2d7a124c9ffd77f10090247493eb0c758b991e40cb8a845fe13355ba8e32b64bb2ca90fa957aca76 SHA512 f5670d8174889c3ccc8b7693cdd97d39c1c0d597d5980c6a5d15317662bffebea1e3b6573c438b076362c8c46649dedf8f285d90ac4f5ffb4eed4d4db82b0378 -EBUILD mariadb-connector-c-9999.ebuild 2824 BLAKE2B aeac543f01595fe6995ca8fb59450cfa4381593f7c034beec8f344880bf092f17e40e84fa3fb1e64aa1f8cdb82751bc75916b9d817df6800bcc8a3532c334734 SHA512 9c693876ede71b1ac59be9b10276e193b25497ee5c4411a6260449f31c73f1e7e28310574aa9e97f889f4f0382c167c188d0b3cbf03d2084aac73a1d2e5d2a90 +EBUILD mariadb-connector-c-3.0.7-r1.ebuild 2823 BLAKE2B 3ab0002c67e553d0b247a439db35c3168af1dc2b2dfd272d259b2d9eacd7649afc5d6d1ccead44d4367f046b7f63e2ef0333fcb60d20c7eda7a9a0defc24d771 SHA512 284ef747e42a2ab947e5d59cf150a1d7882b744f4a913a97f6710c9d10937103c469c48a0b8c898b21e3586e198e9a4ac15b376b6fc4db172c26d04c24f74865 +EBUILD mariadb-connector-c-9999.ebuild 2864 BLAKE2B 0bbc75c16ce0544e008b3e49df556b8c54875e93d04b706fd2f8e338295a3d02140a9eb64819c3a7e2b5485b4e17cd80528dd212330d3b9706b84e8529b43441 SHA512 b01b2b8267a532773ca62931572541ad98b13890297e39bf52f28f6d568fa82febe5662b59016fa17691f96207d3152d4f79e46a910a3e94d5455d312d3de0f3 MISC metadata.xml 324 BLAKE2B fab5394015cd337683f65a257556ed0f15e35826bb0a6ce75a7033cd5931455ff2bed527064d698e9b3165f2cfcaff8a4bdfcad0b830482ae2e4389a79d529fb SHA512 1fe9e5d5d9f8e817ce49117fbcc6a6d706a090752606647496f2b7a25de51bfb641a408ff0cdaf626d83eb5c314d2e28c3f29532307d942cb41498edf4b44aa6 diff --git a/dev-db/mariadb-connector-c/files/mariadb-connector-c-3.0.7-fix-pkconfig-file-r1.patch b/dev-db/mariadb-connector-c/files/mariadb-connector-c-3.0.7-fix-pkconfig-file-r1.patch new file mode 100644 index 000000000000..1fe06e2c8e5e --- /dev/null +++ b/dev-db/mariadb-connector-c/files/mariadb-connector-c-3.0.7-fix-pkconfig-file-r1.patch @@ -0,0 +1,32 @@ +https://bugs.gentoo.org/673218 + +--- a/mariadb_config/CMakeLists.txt ++++ b/mariadb_config/CMakeLists.txt +@@ -59,5 +59,5 @@ INSTALL(TARGETS mariadb_config + COMPONENT Development) + + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libmariadb.pc +- DESTINATION "lib/pkgconfig" ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig + COMPONENT Development) +--- a/mariadb_config/libmariadb.pc.in ++++ b/mariadb_config/libmariadb.pc.in +@@ -7,13 +7,12 @@ + # + + prefix=@CMAKE_INSTALL_PREFIX@ +-includedir=${prefix}/@INSTALL_INCLUDEDIR@/@SUFFIX_INSTALL_DIR@ +-libdir=${prefix}/@INSTALL_LIBDIR@/@SUFFIX_INSTALL_DIR@ ++includedir=${prefix}/include ++libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ + + Name: libmariadb + Version: @CPACK_PACKAGE_VERSION@ ++URL: https://mariadb.com/kb/en/library/mariadb-connector-c/ + Description: MariaDB Connector/C dynamic library +-Cflags: -I${includedir} +-Libs: -L${libdir} -lmariadb @extra_dynamic_LDFLAGS@ +- +- ++Cflags: -I${includedir}/mariadb ++Libs: -L${libdir} -lmariadb diff --git a/dev-db/mariadb-connector-c/files/mariadb-connector-c-3.0.7-fix-pkconfig-file.patch b/dev-db/mariadb-connector-c/files/mariadb-connector-c-3.0.7-fix-pkconfig-file.patch new file mode 100644 index 000000000000..1a16a2c01015 --- /dev/null +++ b/dev-db/mariadb-connector-c/files/mariadb-connector-c-3.0.7-fix-pkconfig-file.patch @@ -0,0 +1,21 @@ +--- a/mariadb_config/libmariadb.pc.in ++++ b/mariadb_config/libmariadb.pc.in +@@ -7,13 +7,12 @@ + # + + prefix=@CMAKE_INSTALL_PREFIX@ +-includedir=${prefix}/@INSTALL_INCLUDEDIR@/@SUFFIX_INSTALL_DIR@ +-libdir=${prefix}/@INSTALL_LIBDIR@/@SUFFIX_INSTALL_DIR@ ++includedir=${prefix}/include ++libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ + + Name: libmariadb + Version: @CPACK_PACKAGE_VERSION@ ++URL: https://mariadb.com/kb/en/library/mariadb-connector-c/ + Description: MariaDB Connector/C dynamic library +-Cflags: -I${includedir} +-Libs: -L${libdir} -lmariadb @extra_dynamic_LDFLAGS@ +- +- ++Cflags: -I${includedir}/mariadb ++Libs: -L${libdir} -lmariadb diff --git a/dev-db/mariadb-connector-c/mariadb-connector-c-3.0.7-r1.ebuild b/dev-db/mariadb-connector-c/mariadb-connector-c-3.0.7-r1.ebuild new file mode 100644 index 000000000000..8622a1ea73c0 --- /dev/null +++ b/dev-db/mariadb-connector-c/mariadb-connector-c-3.0.7-r1.ebuild @@ -0,0 +1,102 @@ +# Copyright 1999-2018 Gentoo Authors +# 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/mariadb-connector-c.git" +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 ~arm ~arm64 ~hppa ~ia64 ~ppc64 ~s390 ~sparc ~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="https://mariadb.org/" +LICENSE="LGPL-2.1" + +SLOT="0/3" +IUSE="+curl gnutls kerberos libressl mysqlcompat +ssl static-libs test" + +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 + "${FILESDIR}"/${PN}-3.0.7-fix-pkconfig-file-r1.patch +) + +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) + -DCLIENT_PLUGIN_AUTH_GSSAPI_CLIENT:STRING=$(usex kerberos DYNAMIC OFF) + -DMARIADB_UNIX_ADDR="${EPREFIX%/}/var/run/mysqld/mysqld.sock" + -DINSTALL_LIBDIR="$(get_libdir)" + -DINSTALL_PLUGINDIR="$(get_libdir)/mariadb/plugin" + -DINSTALL_BINDIR=bin + -DWITH_UNIT_TESTS=$(usex test ON OFF) + ) + cmake-utils_src_configure +} + +multilib_src_compile() { + cmake-utils_src_compile +} + +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/mariadb-connector-c-9999.ebuild b/dev-db/mariadb-connector-c/mariadb-connector-c-9999.ebuild index 1b2b77025ff6..2e5ed26b63e0 100644 --- a/dev-db/mariadb-connector-c/mariadb-connector-c-9999.ebuild +++ b/dev-db/mariadb-connector-c/mariadb-connector-c-9999.ebuild @@ -55,7 +55,7 @@ RDEPEND="${DEPEND} " PATCHES=( "${FILESDIR}"/gentoo-layout-3.0.patch - "${FILESDIR}"/${PN}-3.0.6-provide-pkconfig-file.patch + "${FILESDIR}"/${PN}-3.0.7-fix-pkconfig-file.patch ) src_configure() { @@ -72,6 +72,7 @@ multilib_src_configure() { -DCLIENT_PLUGIN_AUTH_GSSAPI_CLIENT:STRING=$(usex kerberos DYNAMIC OFF) -DMARIADB_UNIX_ADDR="${EPREFIX%/}/var/run/mysqld/mysqld.sock" -DINSTALL_LIBDIR="$(get_libdir)" + -DINSTALL_PCDIR="$(get_libdir)/pkgconfig" -DINSTALL_PLUGINDIR="$(get_libdir)/mariadb/plugin" -DINSTALL_BINDIR=bin -DWITH_UNIT_TESTS=$(usex test ON OFF) diff --git a/dev-db/mariadb/Manifest b/dev-db/mariadb/Manifest index 569cf32d1e4d..14a7755dfe6c 100644 --- a/dev-db/mariadb/Manifest +++ b/dev-db/mariadb/Manifest @@ -11,14 +11,18 @@ DIST mariadb-10.1.34.tar.gz 65298561 BLAKE2B 3f3af7b8bad68a08f69befd3f3e7bd88b8c DIST mariadb-10.1.37.tar.gz 63492946 BLAKE2B 0f19b402c597443ef970cbe2a2d85d51743cc2d05ab741897efb150f007d7be8b645706a2d0dc5a9f91c7a380d2313840f77d6e9b15f3335495f275b415e5a33 SHA512 b7c35cd67ad265ce2e3a4db20a2ae2b78745db96dc70a211f027a39b6dbb3dc900991c2ee1021ee6a97d12489c3e2a70252e2adf348a458af38b99c3de5a4f25 DIST mariadb-10.2.19.tar.gz 71856357 BLAKE2B 7e55760b85d7b8b19f9d1afe22e7cf5c3001ab03d64062bd702442cb771b2c76f62cf8794b027098b6fb4ade5bf3de39d68dbede65c72fc9e1482083fb19a9c9 SHA512 7bfd65687c923d50b04d598fccea60a23a3fafc3e57b803b2a06c2f25ae68bd25206e18bd71af4797492792d821f4be05cef19e8075080b82b539afdd8af9f46 DIST mariadb-10.3.10.tar.gz 70493771 BLAKE2B 03540ed111405febb46c27422f957fb6c533ffe7502c56d6eb4fe8a3bc45bfd18fb2b12a16a01780c0bc291ff139132666741df00d4be068fb99e2a63c543cc2 SHA512 dee7789dff359a6352ceacb2db6bcb4730940e9458adda4e23894f9bfa0a7ff8c238060bffca58a60b662275e52a31ea1784d51fae114312b003c024e9412b31 +DIST mariadb-10.3.11.tar.gz 70669435 BLAKE2B e16346519b60aa11a0ffd2c19254ef888c44c054d55b7f98a8d696e3df2c0801c6141adddfb9169098ad5efa5d881c83681c3c5741f68b10c9ce4d15def34254 SHA512 1adc1f9bbabf848726c669a7a0ab01257ba31882758b53fbf3b1316f2295670dba1c3d1f3292d7c1a749c701504588694a55d020839e690595897b0e20435298 DIST mariadb-5.5.62.tar.gz 45938380 BLAKE2B aa17d0e5740805d74f7f74f54605e04c4e29c4208a2efa6da2dde5855dfdc13e3225fe349e2146b11a6cbf5a0ac82a9e6c3e4f31e62afa71fc7ab1381040c68f SHA512 136668a54b404a303ee8f87e736bd14463b2323f0a517e7161c8729f4534bc1d653241d6b79f8cb7ad66ea09cf4190f9b95eceaa209b18a46822a68d9580ba5a DIST mysql-extras-20180809-1700Z.tar.bz2 322999 BLAKE2B 8b5feb32085dc35b2f68dae985b2d266c4eaa0e956b490050a2df04bbff99bf8623b67e75af9326d84e3ad625c4d86b0d21d23c9a96df5a0c9cd5ed730958970 SHA512 fbd7af9284bbf09d55f128361e7cc52d94f24ac491aac800cd6d61f2e444aeca66a4d5e6ae94c2fb4044e00cec9b232bae9a76a229f87f19d90b7aecf70792ec DIST mysql-extras-20181104-2252Z.tar.bz2 328613 BLAKE2B c869dbdd8eb8ab6706b52815fae88e0789b955b9d3e89eac305e6de6e1bc9e78ea10ac58efeac0d6478c7f83587910834e9b4c44e3621224f006daae44dc2bf3 SHA512 e0dff23aa6420a9cfcf2f60464381d4b08194759dcd96910cdf94075fa71e90b74fa3dae700f279f421fee68315af37e47054c9422adeb6cc757fa968a1b65bf +DIST mysql-extras-20181211-1735Z.tar.bz2 330779 BLAKE2B 4a41b9067a8b8bc5b595ff8dfeaa20d6577083ad1f6a0d1b56d29663cd436abc611a2ff394fafb8d466771c8676e2019a415554b830f20828ace31eb5b7e082a SHA512 03db4b1b483395eeba57d049c10a07ef50b26ba97f3fad74aa6a19f8835aea60106bbc86dea2a168ec613d9b2caa016240d8d888e42823d383fa3466f8b262d4 EBUILD mariadb-10.0.35-r2.ebuild 27520 BLAKE2B 09bb435fc35e43e9d5a9f0bb234d7583d8ceb55f19e46176def7d1d4370fe99aedb89e28860cc49134f693bf0f49ff4333916441742da72cf65ad7ef6353c72a SHA512 159b2c09d0da83841f77822b4501cc4302758711c9db9447e6c34ebe6185801cbacb4774060d238f7c5aee4595ccc4e0e05f062300f38e27ff86a54a2dce4a95 -EBUILD mariadb-10.0.37.ebuild 27526 BLAKE2B f41159bb252097eda7e9d5f39b5d8eeb879cc8e8e4c7fa99ef8da8cd6333b5532c8d7a73b4b4defca423d1a5c3469bd35cee30bca1266d43127b202078277ea4 SHA512 4e05fc6fb048592975de40178faaa2120466b48129d80780ff1a1deb05eb0eeeeaf8dba7f224efcc59a10cf72676057b7641df595caf006ecd4d1e6be03acd7b +EBUILD mariadb-10.0.37.ebuild 27521 BLAKE2B 2dee454767b07e9ef957a3d44d3abebb3bace6a7119b81c7662051a3db9315382d3ea1f73dd03380da695ba16d724560d2b03eea3dd09eb206abcaee1358de7a SHA512 d90e140866541db92272855beb315aea7f037304e018efa6ac090b9d838864de0b7efe24d63ffdc2bc605ce659e0a8b722e2c7650ba21d740ab7d337ddd2c9d2 EBUILD mariadb-10.1.34.ebuild 29472 BLAKE2B 859741b70abf8c2347395b26b7543f36be94165141227bb7dc75f054768490bf891eea5bd2f171aa0c0f8caed7603abf1347a0087caa10e55ce920aaa9c6677b SHA512 ff30a1fcdcc72b8324dec1be29db63a1792ca58474744f0c02014b1fba28d856ac0f154235b0889aedcc95cf24c4b58fcfd681458be726609861ba6f4220ad8f -EBUILD mariadb-10.1.37.ebuild 29478 BLAKE2B b22351b19402a3536bb7c154b0ef917366fef4ea72122518b30cf5e85753b80b29642f6829d05cd66718745b1f01b7545e67b8cd538abca9df1c909e2bbcf6e8 SHA512 c6dd0e9974ca67ba0750e86fcfb9e9afea283c1817c3284ef24c6a25c5d61fa35f993041e6b086a8632943da4c8f1b592e95e6e9923089f472ceaae2a3f25671 +EBUILD mariadb-10.1.37.ebuild 29474 BLAKE2B dba8dc78e78319041edbf8583ed9584f74964ee114a55a2e77702b086e878905d098dacbf01a8fa802f69c8252cfc0a763fbce7412fc69ccdb8dc78b20bd1a56 SHA512 0cc0d703727393dd5c601027c156b194ff6957e46935077fda1312da37ae6b0aa4282b51666b849ac7414ed3d4ead2640b530ffc8e6cd04bc5c9df2d3502848a +EBUILD mariadb-10.2.19-r1.ebuild 31815 BLAKE2B f0253639ed06bcb91807a014a7f2fe5958564324cd349399a54a3c8ed2269bbdca514da31ca0cb91738f7fe163ed4753497f24376d7e6d5e8d93c4122496d386 SHA512 48d092550452370f677e3a74b9a560187fb9d26e5664132c94e7acae825d09972957a922c504eab2f3c7a5eac50bf3db97bd5a5503bf9e6ff3013a552e14d04d EBUILD mariadb-10.2.19.ebuild 34504 BLAKE2B f6269aa1a93d89d39ffd0fe57a67899692ee5ad670a308aee8e7d4cbaa7878064db879fca718e65ec1343ab85649eab7fe29ec03a4e4d9670905034dcb07e170 SHA512 766367854b21972954736c450a39759f545b24ca60ec3f6d015bb117de40cf38af5144998cd63e2afef0d4a5d0d395a69c42bfb5e6eb67ded64b1863bd7512db EBUILD mariadb-10.3.10.ebuild 32157 BLAKE2B 9d3229c8de1910799d951b8a57315fba6271b70ec11810f2c0df2bb39a47e2b80e2046b06187a276ae85bf21c9c0b90283a626f065f4da983b4b72bd595be988 SHA512 9f1c3412ab863fa2b70371bdd4c090b9d4ded4e8a3575e2a8e0ea48cf0b3a78f5a9c154e0eb67bdae5e4a28ab5a7a3ad9db08d89678af511a93948a638cd85f0 +EBUILD mariadb-10.3.11.ebuild 32092 BLAKE2B 4f0791e2953cb29f2fa00eaaba33bde0c3caa3cbc3f08e4c9064e0295f7f159d147bb5c0e3fcf639b437262c16d7e7fa6047183adefdaff1a34699dd308f95fc SHA512 3bc6fee26921b11ee1a8a7bf9d1478bb3ec899284f3cf8aa501598e45ffd75f9d84205f68a7f5c20b88c6b66197d86ae8e8effbb28b64e45da340564aa29271e EBUILD mariadb-5.5.62.ebuild 27071 BLAKE2B 528f4e740b597cad24ecfd5c03137bae7fd65fb6adaa615a9b5ceeeb9f8d138ad47e2c034f9b4a2727d0059148b06985e3dc9cc9223ef756959d730f319c4b07 SHA512 e79e999633aef9b04558d71ed6e3398d372816b3a343429c521c44b33d3bf7e0afece3723d2557aaf03106dfc880fcc0c1504e6d12eb2dbff9c08927af716b2e MISC metadata.xml 2611 BLAKE2B d1b6b11359e92a3d9cb2c58ed35a15e3cf42ab616ed907fa36a5f777168a805ffd03d01bd13fcd30352ef6c5e8b1d80f4e882ffaf8f6445ed3fce2bcc2a92923 SHA512 80395b35839acebbb18ac8d01e8c806bd89f18d32f85fcba41f41ecfc4f1f869dc8c51c90bb21ebd3c9ac30d51d47869a4dcf3b8ce73967e337e6e396b267c97 diff --git a/dev-db/mariadb/mariadb-10.0.37.ebuild b/dev-db/mariadb/mariadb-10.0.37.ebuild index fe61ec153cb0..ea2124331e47 100644 --- a/dev-db/mariadb/mariadb-10.0.37.ebuild +++ b/dev-db/mariadb/mariadb-10.0.37.ebuild @@ -40,7 +40,7 @@ REQUIRED_USE="jdbc? ( extraengine server !static ) ?? ( tcmalloc jemalloc ) static? ( yassl !pam )" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris" +KEYWORDS="alpha amd64 arm ~arm64 ~hppa ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris" # Shorten the path because the socket path length must be shorter than 107 chars # and we will run a mysql server during test phase diff --git a/dev-db/mariadb/mariadb-10.1.37.ebuild b/dev-db/mariadb/mariadb-10.1.37.ebuild index c2b7bcbd247b..2e9377e50577 100644 --- a/dev-db/mariadb/mariadb-10.1.37.ebuild +++ b/dev-db/mariadb/mariadb-10.1.37.ebuild @@ -40,7 +40,7 @@ REQUIRED_USE="jdbc? ( extraengine server !static ) ?? ( tcmalloc jemalloc ) static? ( yassl !pam )" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris" +KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris" # Shorten the path because the socket path length must be shorter than 107 chars # and we will run a mysql server during test phase diff --git a/dev-db/mysql/mysql-5.6.41.ebuild b/dev-db/mariadb/mariadb-10.2.19-r1.ebuild index d4052c130f80..7ed2c00ee4ab 100644 --- a/dev-db/mysql/mysql-5.6.41.ebuild +++ b/dev-db/mariadb/mariadb-10.2.19-r1.ebuild @@ -2,18 +2,17 @@ # Distributed under the terms of the GNU General Public License v2 EAPI="6" -MY_EXTRAS_VER="20181111-2314Z" +MY_EXTRAS_VER="20181211-1735Z" +SUBSLOT="18" -CMAKE_MAKEFILE_GENERATOR=emake +JAVA_PKG_OPT_USE="jdbc" # Keeping eutils in EAPI=6 for emktemp in pkg_config -inherit eutils flag-o-matic prefix toolchain-funcs \ - user cmake-utils multilib-build +inherit eutils systemd flag-o-matic prefix toolchain-funcs \ + java-pkg-opt-2 user cmake-utils -SRC_URI="http://cdn.mysql.com/Downloads/MySQL-5.6/${P}.tar.gz - https://cdn.mysql.com/archives/mysql-5.6/${P}.tar.gz - http://downloads.mysql.com/archives/MySQL-5.6/${P}.tar.gz" +SRC_URI="https://downloads.mariadb.org/interstitial/${P}/source/${P}.tar.gz " # Gentoo patches to MySQL if [[ "${MY_EXTRAS_VER}" != "live" && "${MY_EXTRAS_VER}" != "none" ]]; then @@ -25,19 +24,25 @@ if [[ "${MY_EXTRAS_VER}" != "live" && "${MY_EXTRAS_VER}" != "none" ]]; then https://dev.gentoo.org/~jmbsvicetto/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2" fi -HOMEPAGE="https://www.mysql.com/" -DESCRIPTION="A fast, multi-threaded, multi-user SQL database server" -LICENSE="GPL-2" -SLOT="0/18" -IUSE="client-libs cracklib debug jemalloc latin1 libressl numa +perl profiling selinux - +server static static-libs systemtap tcmalloc test yassl" +HOMEPAGE="https://mariadb.org/" +DESCRIPTION="An enhanced, drop-in replacement for MySQL" +LICENSE="GPL-2 LGPL-2.1+" +SLOT="0/${SUBSLOT:-0}" +IUSE="+backup bindist client-libs cracklib debug extraengine galera innodb-lz4 + innodb-lzo innodb-snappy jdbc jemalloc kerberos latin1 libressl mroonga + numa odbc oqgraph pam +perl profiling rocksdb selinux +server sphinx + sst-rsync sst-mariabackup sst-xtrabackup static systemd systemtap tcmalloc + test tokudb xml yassl" # Tests always fail when libressl is enabled due to hard-coded ciphers in the tests -RESTRICT="libressl? ( test )" +RESTRICT="!bindist? ( bindist ) libressl? ( test )" -REQUIRED_USE="?? ( tcmalloc jemalloc ) static? ( yassl )" +REQUIRED_USE="jdbc? ( extraengine server !static ) + server? ( tokudb? ( jemalloc !tcmalloc ) ) + ?? ( tcmalloc jemalloc ) + static? ( yassl !pam )" -KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris" # Shorten the path because the socket path length must be shorter than 107 chars # and we will run a mysql server during test phase @@ -46,25 +51,20 @@ S="${WORKDIR}/mysql" if [[ "${MY_EXTRAS_VER}" == "live" ]] ; then inherit git-r3 EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/mysql-extras.git" - EGIT_CHECKOUT_DIR="${WORKDIR}/mysql-extras" + EGIT_CHECKOUT_DIR="${WORKDIR%/}/mysql-extras" EGIT_CLONE_TYPE=shallow - MY_PATCH_DIR="${WORKDIR}/mysql-extras" + MY_PATCH_DIR="${WORKDIR%/}/mysql-extras" else - MY_PATCH_DIR="${WORKDIR}/mysql-extras-${MY_EXTRAS_VER}" + MY_PATCH_DIR="${WORKDIR%/}/mysql-extras-${MY_EXTRAS_VER}" fi PATCHES=( - "${MY_PATCH_DIR}"/01050_all_mysql_config_cleanup-5.6.patch - "${MY_PATCH_DIR}"/02040_all_embedded-library-shared-5.5.10.patch - "${MY_PATCH_DIR}"/20006_all_cmake_elib-mysql-5.6.35.patch - "${MY_PATCH_DIR}"/20007_all_cmake-debug-werror-5.6.22.patch - "${MY_PATCH_DIR}"/20008_all_mysql-tzinfo-symlink-5.6.37.patch - "${MY_PATCH_DIR}"/20009_all_mysql_myodbc_symbol_fix-5.6.patch - "${MY_PATCH_DIR}"/20018_all_mysql-5.6.25-without-clientlibs-tools.patch - "${MY_PATCH_DIR}"/20027_all_mysql-5.5-perl5.26-includes.patch - "${MY_PATCH_DIR}"/20028_all_mysql-5.6-gcc7.patch - "${MY_PATCH_DIR}"/20031_all_mysql-5.6-fix-monitor.test.patch - "${MY_PATCH_DIR}"/20036_all_mysql-5.6-fix-rpl_semi_sync_shutdown_hang.test.patch + "${MY_PATCH_DIR}"/20015_all_mariadb-pkgconfig-location.patch + "${MY_PATCH_DIR}"/20018_all_mariadb-10.2.16-without-clientlibs-tools.patch + "${MY_PATCH_DIR}"/20024_all_mariadb-10.2.6-mysql_st-regression.patch + "${MY_PATCH_DIR}"/20025_all_mariadb-10.2.6-gssapi-detect.patch + "${MY_PATCH_DIR}"/20035_all_mariadb-10.2-atomic-detection.patch + "${MY_PATCH_DIR}"/20037_all_mariadb-10.2-restore-jemalloc.patch ) # Be warned, *DEPEND are version-dependant @@ -74,41 +74,83 @@ COMMON_DEPEND=" sys-process/procps:0= dev-libs/libaio:0= ) - net-misc/curl >=sys-apps/sed-4 >=sys-apps/texinfo-4.7-r1 jemalloc? ( dev-libs/jemalloc:0= ) tcmalloc? ( dev-util/google-perftools:0= ) systemtap? ( >=dev-util/systemtap-1.3:0= ) + >=sys-libs/zlib-1.2.3:0= + kerberos? ( virtual/krb5 ) + yassl? ( net-libs/gnutls:0= ) !yassl? ( !libressl? ( >=dev-libs/openssl-1.0.0:0= ) libressl? ( dev-libs/libressl:0= ) ) - >=sys-libs/zlib-1.2.3:0= sys-libs/ncurses:0= + !bindist? ( + sys-libs/binutils-libs:0= + >=sys-libs/readline-4.1:0= + ) server? ( + backup? ( app-arch/libarchive:0= ) + cracklib? ( sys-libs/cracklib:0= ) + extraengine? ( + odbc? ( dev-db/unixODBC:0= ) + xml? ( dev-libs/libxml2:2= ) + ) + innodb-lz4? ( app-arch/lz4 ) + innodb-lzo? ( dev-libs/lzo ) + innodb-snappy? ( app-arch/snappy ) + mroonga? ( app-text/groonga-normalizer-mysql >=app-text/groonga-7.0.4 ) numa? ( sys-process/numactl ) + oqgraph? ( >=dev-libs/boost-1.40.0:0= dev-libs/judy:0= ) + pam? ( virtual/pam:0= ) + systemd? ( sys-apps/systemd:= ) + tokudb? ( app-arch/snappy ) ) - !client-libs? ( dev-db/mysql-connector-c[${MULTILIB_USEDEP},static-libs?] ) + >=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 ) - client-libs? ( !dev-db/mariadb-connector-c[mysqlcompat] !dev-db/mysql-connector-c ) - !dev-db/mariadb !dev-db/mariadb-galera !dev-db/percona-server !dev-db/mysql-cluster + !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 -PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )" +# percona-xtrabackup-bin causes a circular dependency if DBD-mysql is not already installed +PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 ) + server? ( ~virtual/mysql-5.6[static=] + galera? ( sst-xtrabackup? ( || ( >=dev-db/percona-xtrabackup-bin-2.2.4 dev-db/percona-xtrabackup ) ) ) )" pkg_setup() { if [[ ${MERGE_TYPE} != binary ]] ; then local GCC_MAJOR_SET=$(gcc-major-version) local GCC_MINOR_SET=$(gcc-minor-version) + if use tokudb && [[ ${GCC_MAJOR_SET} -lt 4 || \ + ${GCC_MAJOR_SET} -eq 4 && ${GCC_MINOR_SET} -lt 7 ]] ; then + eerror "${PN} with tokudb needs to be built with gcc-4.7 or later." + eerror "Please use gcc-config to switch to gcc-4.7 or later version." + die + fi # Bug 565584. InnoDB now requires atomic functions introduced with gcc-4.7 on # non x86{,_64} arches if ! use amd64 && ! use x86 && [[ ${GCC_MAJOR_SET} -lt 4 || \ @@ -118,6 +160,7 @@ pkg_setup() { 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." @@ -129,11 +172,13 @@ pkg_setup() { } 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 use client-libs && [[ -z ${REPLACING_VERSIONS} && -e "${EROOT%/}/usr/$(get_libdir)/libmysqlclient.so" ]] ; then - libpath=$(readlink "${EROOT%/}/usr/$(get_libdir)/libmysqlclient.so") + 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}" @@ -149,6 +194,14 @@ pkg_postinst() { [[ -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:" @@ -164,47 +217,59 @@ pkg_postinst() { elog "mysql_upgrade tool." einfo fi + + if use galera ; then + einfo + elog "Be sure to edit the my.cnf file to activate your cluster settings." + elog "This should be done after running \"emerge --config =${CATEGORY}/${PF}\"" + elog "The first time the cluster is activated, you should add" + elog "--wsrep-new-cluster to the options in /etc/conf.d/mysql for one node." + elog "This option should then be removed for subsequent starts." + einfo + fi fi + + # Note about configuration change + einfo + elog "This version of mariadb reorganizes the configuration from a single my.cnf" + elog "to several files in /etc/mysql/${PN}.d." + elog "Please backup any changes you made to /etc/mysql/my.cnf" + elog "and add them as a new file under /etc/mysql/${PN}.d with a .cnf extension." + elog "You may have as many files as needed and they are read alphabetically." + elog "Be sure the options have the appropriate section headers, i.e. [mysqld]." + einfo } src_unpack() { unpack ${A} # Grab the patches - [[ "${MY_EXTRAS_VER}" == "live" ]] && S="${WORKDIR}/mysql-extras" git-r3_src_unpack + [[ "${MY_EXTRAS_VER}" == "live" ]] && S="${WORKDIR%/}/mysql-extras" git-r3_src_unpack - mv -f "${WORKDIR}/${P}" "${S}" || die + mv -f "${WORKDIR%/}/${P}" "${S}" || die } src_prepare() { - _disable_engine() { - echo > "${S%/}/storage/${1}/CMakeLists.txt" || die - } - _disable_plugin() { echo > "${S%/}/plugin/${1}/CMakeLists.txt" || die } + _disable_engine() { + echo > "${S%/}/storage/${1}/CMakeLists.txt" || die + } - if use jemalloc ; then - echo "TARGET_LINK_LIBRARIES(mysqld jemalloc)" >> "${S}/sql/CMakeLists.txt" || die - fi if use tcmalloc; then - echo "TARGET_LINK_LIBRARIES(mysqld tcmalloc)" >> "${S}/sql/CMakeLists.txt" || die - fi - # Remove the centos and rhel selinux policies to support mysqld_safe under SELinux - if [[ -d "${S}/support-files/SELinux" ]] ; then - echo > "${S}/support-files/SELinux/CMakeLists.txt" || die - fi - - if use libressl ; then - sed -i 's/OPENSSL_MAJOR_VERSION STREQUAL "1"/OPENSSL_MAJOR_VERSION STREQUAL "2"/' \ - "${S}/cmake/ssl.cmake" || die + echo "TARGET_LINK_LIBRARIES(mysqld tcmalloc)" >> "${S}/sql/CMakeLists.txt" fi - sed -i 's~ADD_SUBDIRECTORY(storage/ndb)~~' CMakeLists.txt || die + # Don't build bundled xz-utils for tokudb + echo > "${S}/storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake" || die + sed -i -e 's/ build_lzma//' -e 's/ build_snappy//' "${S}/storage/tokudb/PerconaFT/ft/CMakeLists.txt" || die + sed -i -e 's/add_dependencies\(tokuportability_static_conv build_jemalloc\)//' "${S}/storage/tokudb/PerconaFT/portability/CMakeLists.txt" || die local plugin - local server_plugins=( semisync ) - local test_plugins=( audit_null daemon_example fulltext ) + local server_plugins=( handler_socket auth_socket feedback metadata_lock_info + locale_info qc_info server_audit sql_errlog ) + local test_plugins=( audit_null auth_examples daemon_example fulltext + debug_key_management example_key_management ) if ! use server; then # These plugins are for the server for plugin in "${server_plugins[@]}" ; do _disable_plugin "${plugin}" @@ -215,14 +280,25 @@ src_prepare() { for plugin in "${test_plugins[@]}" ; do _disable_plugin "${plugin}" done + _disable_engine test_sql_discovery fi - # Don't build example _disable_engine example - _disable_engine ndb - _disable_plugin innodb_memcached + + if ! use oqgraph ; then # avoids extra library checks + _disable_engine oqgraph + fi + + if use mroonga ; then + # Remove the bundled groonga + # There is no CMake flag, it simply checks for existance + rm -r "${S}"/storage/mroonga/vendor/groonga || die "could not remove packaged groonga" + else + _disable_engine mroonga + fi cmake-utils_src_prepare + java-pkg-opt-2_src_prepare } src_configure(){ @@ -252,35 +328,107 @@ src_configure(){ -DINSTALL_INFODIR=share/info -DINSTALL_LIBDIR=$(get_libdir) -DINSTALL_MANDIR=share/man - -DINSTALL_MYSQLSHAREDIR=share/mysql - -DINSTALL_PLUGINDIR=$(get_libdir)/mysql/plugin - -DINSTALL_SCRIPTDIR=share/mysql/scripts + -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/mysql" - -DCOMPILATION_COMMENT="Gentoo Linux ${PF}" + -DINSTALL_SUPPORTFILESDIR="${EPREFIX}/usr/share/mariadb" + -DWITH_COMMENT="Gentoo Linux ${PF}" -DWITH_UNIT_TESTS=$(usex test ON OFF) - ### TODO: make this system but issues with UTF-8 prevent it - -DWITH_EDITLINE=bundled + -DWITH_LIBEDIT=0 -DWITH_ZLIB=system - -DWITH_LIBWRAP=0 + -DWITHOUT_LIBWRAP=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_UNIX_ADDR="${EPREFIX}/var/run/mysqld/mysqld.sock" + -DINSTALL_UNIX_ADDRDIR="${EPREFIX}/var/run/mysqld/mysqld.sock" -DWITH_DEFAULT_COMPILER_OPTIONS=0 -DWITH_DEFAULT_FEATURE_SET=0 + -DINSTALL_SYSTEMD_UNITDIR="$(systemd_get_systemunitdir)" # The build forces this to be defined when cross-compiling. We pass it # all the time for simplicity and to make sure it is actually correct. -DSTACK_DIRECTION=$(tc-stack-grows-down && echo -1 || echo 1) - -DWITH_LIBEVENT=NO + -DPKG_CONFIG_EXECUTABLE="${EPREFIX}/usr/bin/$(tc-getPKG_CONFIG)" + -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO) + -DAUTH_GSSAPI_PLUGIN_TYPE=$(usex kerberos DYNAMIC OFF) + -DCONC_WITH_EXTERNAL_ZLIB=YES + -DWITH_EXTERNAL_ZLIB=YES + -DSUFFIX_INSTALL_DIR="" + -DWITH_UNITTEST=OFF -DWITHOUT_CLIENTLIBS=YES + -DCLIENT_PLUGIN_DIALOG=OFF + -DCLIENT_PLUGIN_AUTH_GSSAPI_CLIENT=OFF + -DCLIENT_PLUGIN_MYSQL_CLEAR_PASSWORD=STATIC + ) + if use test ; then + mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mariadb/mysql-test ) + else + mycmakeargs+=( -DINSTALL_MYSQLTESTDIR='' ) + fi + + if ! use yassl ; then + mycmakeargs+=( -DWITH_SSL=system -DCLIENT_PLUGIN_SHA256_PASSWORD=STATIC ) + else + mycmakeargs+=( -DWITH_SSL=bundled ) + fi + + # bfd.h is only used starting with 10.1 and can be controlled by NOT_FOR_DISTRIBUTION + mycmakeargs+=( + -DWITH_READLINE=$(usex bindist 1 0) + -DNOT_FOR_DISTRIBUTION=$(usex bindist 0 1) -DENABLE_DTRACE=$(usex systemtap) - -DWITH_SSL=$(usex yassl bundled system) - -DINSTALL_MYSQLTESTDIR=$(usex test 'share/mysql/mysql-test' '') - -DWITHOUT_VALIDATE_PASSWORD=1 ) if use server ; then + # Federated{,X} must be treated special otherwise they will not be built as plugins + if ! use extraengine ; then + mycmakeargs+=( + -DPLUGIN_FEDERATED=NO + -DPLUGIN_FEDERATEDX=NO ) + fi + + mycmakeargs+=( + -DWITH_JEMALLOC=$(usex jemalloc system) + -DWITH_PCRE=system + -DPLUGIN_OQGRAPH=$(usex oqgraph DYNAMIC NO) + -DPLUGIN_SPHINX=$(usex sphinx YES NO) + -DPLUGIN_TOKUDB=$(usex tokudb YES NO) + -DPLUGIN_AUTH_PAM=$(usex pam YES NO) + -DPLUGIN_CRACKLIB_PASSWORD_CHECK=$(usex cracklib YES NO) + -DPLUGIN_CASSANDRA=NO + -DPLUGIN_SEQUENCE=$(usex extraengine YES NO) + -DPLUGIN_SPIDER=$(usex extraengine YES NO) + -DPLUGIN_CONNECT=$(usex extraengine YES NO) + -DCONNECT_WITH_MYSQL=1 + -DCONNECT_WITH_LIBXML2=$(usex xml) + -DCONNECT_WITH_ODBC=$(usex odbc) + -DCONNECT_WITH_JDBC=$(usex jdbc) + # Build failure and autodep wrt bug 639144 + -DCONNECT_WITH_MONGO=OFF + -DWITH_WSREP=$(usex galera) + -DWITH_INNODB_LZ4=$(usex innodb-lz4 ON OFF) + -DWITH_INNODB_LZO=$(usex innodb-lzo ON OFF) + -DWITH_INNODB_SNAPPY=$(usex innodb-snappy ON OFF) + -DPLUGIN_MROONGA=$(usex mroonga DYNAMIC NO) + -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO) + -DWITH_MARIABACKUP=$(usex backup ON OFF) + -DWITH_LIBARCHIVE=$(usex backup ON OFF) + -DINSTALL_SQLBENCHDIR=share/mariadb + -DPLUGIN_ROCKSDB=$(usex rocksdb DYNAMIC NO) + # systemd is only linked to for server notification + -DWITH_SYSTEMD=$(usex systemd yes no) + -DWITH_NUMA=$(usex numa ON OFF) + ) + + # Workaround for MDEV-14524 + use tokudb && mycmakeargs+=( -DTOKUDB_OK=1 ) + + if use test ; then + # This is needed for the new client lib which tests a real, open server + mycmakeargs+=( -DSKIP_TESTS=ON ) + fi + if [[ ( -n ${MYSQL_DEFAULT_CHARSET} ) && ( -n ${MYSQL_DEFAULT_COLLATION} ) ]]; then ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}" ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}." @@ -303,18 +451,22 @@ src_configure(){ ) fi mycmakeargs+=( - -DWITH_NUMA=$(usex numa ON OFF) -DEXTRA_CHARSETS=all + -DMYSQL_USER=mysql -DDISABLE_SHARED=$(usex static YES NO) -DWITH_DEBUG=$(usex debug) -DWITH_EMBEDDED_SERVER=OFF - -DENABLED_PROFILING=$(usex profiling) + -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 @@ -325,7 +477,6 @@ src_configure(){ -DWITH_MYISAMMRG_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 - -DWITH_INNODB_MEMCACHED=0 ) else @@ -333,6 +484,8 @@ src_configure(){ -DWITHOUT_SERVER=1 -DWITH_EMBEDDED_SERVER=OFF -DEXTRA_CHARSETS=none + -DINSTALL_SQLBENCHDIR= + -DWITH_SYSTEMD=no ) fi @@ -346,8 +499,11 @@ src_compile() { src_install() { cmake-utils_src_install - # Kill old libmysqclient_r symlinks if they exist. Time to fix what depends on them. - find "${D}" -name 'libmysqlclient_r.*' -type l -delete || die + # Remove an unnecessary, private config header which will never match between ABIs and is not meant to be used + if [[ -f "${ED}/usr/include/mysql/server/private/config.h" ]] ; then + rm "${ED}/usr/include/mysql/server/private/config.h" || die + fi + # Make sure the vars are correctly initialized mysql_init_vars @@ -372,21 +528,32 @@ src_install() { # Configuration stuff einfo "Building default configuration ..." insinto "${MY_SYSCONFDIR#${EPREFIX}}" - [[ -f "${S%/}/scripts/mysqlaccess.conf" ]] && doins "${S%/}"/scripts/mysqlaccess.conf - local mycnf_src="my.cnf-5.6" - sed -e "s!@DATADIR@!${MY_DATADIR}!g" \ - "${FILESDIR%/}/${mycnf_src}" \ - > "${TMPDIR%/}/my.cnf.ok" || die - use prefix && sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' "${TMPDIR%/}/my.cnf.ok" - if use latin1 ; then - sed -i \ - -e "/character-set/s|utf8|latin1|g" \ - "${TMPDIR%/}/my.cnf.ok" || die - fi - eprefixify "${TMPDIR%/}/my.cnf.ok" - newins "${TMPDIR}/my.cnf.ok" my.cnf + [[ -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 @@ -400,6 +567,10 @@ src_install() { for script in "${S}"/scripts/mysql* ; do [[ ( -f "$script" ) && ( "${script%.sh}" == "${script}" ) ]] && dodoc "${script}" done + # Manually install supporting files that conflict with other packages + # but are needed for galera and initial installation + exeinto /usr/libexec/mariadb + doexe "${BUILD_DIR}/extra/my_print_defaults" "${BUILD_DIR}/extra/perror" fi #Remove mytop if perl is not selected @@ -407,9 +578,9 @@ src_install() { } # Official test instructions: -# USE='perl server static-libs' \ +# USE='extraengine perl server' \ # FEATURES='test userpriv -usersandbox' \ -# ebuild mysql-X.X.XX.ebuild \ +# ebuild mariadb-X.X.XX.ebuild \ # digest clean package src_test() { @@ -459,15 +630,25 @@ src_test() { pushd "${TESTDIR}" > /dev/null || die touch "${T}/disabled.def" - # These are failing in MySQL 5.7 for now and are believed to be + # 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 auth_sec.keyring_udf federated.federated_plugin ; do + for t in main.mysql_client_test main.mysql_client_test_nonblock \ + main.mysql_client_test_comp rpl.rpl_extra_col_master_myisam ; do _disable_test "$t" "False positives in Gentoo" done + _disable_test main.plugin_auth "Needs client libraries built" + # 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=$? @@ -487,10 +668,10 @@ src_test() { } mysql_init_vars() { - MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR="${EPREFIX%/}/usr/share/mysql"} - MY_SYSCONFDIR=${MY_SYSCONFDIR="${EPREFIX%/}/etc/mysql"} - MY_LOCALSTATEDIR=${MY_LOCALSTATEDIR="${EPREFIX%/}/var/lib/mysql"} - MY_LOGDIR=${MY_LOGDIR="${EPREFIX%/}/var/log/mysql"} + 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="" @@ -544,7 +725,7 @@ mysql_init_vars() { pkg_config() { _getoptval() { - local mypd="${EROOT%/}"/usr/bin/my_print_defaults + local mypd="${EROOT}"/usr/bin/my_print_defaults local section="$1" local flag="--${2}=" local extra_options="${3}" @@ -553,20 +734,20 @@ pkg_config() { 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 + 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 + 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}" + local MY_DATADIR_s="${ROOT}/${MY_DATADIR}" MY_DATADIR_s="${MY_DATADIR_s%%/}" - local old_MY_DATADIR_s="${ROOT%/}/${old_MY_DATADIR}" + 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 @@ -625,22 +806,22 @@ pkg_config() { MYSQL_LOG_BIN="$(_getoptval mysqld log-bin)" MYSQL_LOG_BIN=${MYSQL_LOG_BIN%/*} - if [[ ! -d "${EROOT%/}/$MYSQL_TMPDIR" ]]; then + if [[ ! -d "${ROOT}/$MYSQL_TMPDIR" ]]; then einfo "Creating MySQL tmpdir $MYSQL_TMPDIR" - install -d -m 770 -o mysql -g mysql "${EROOT%/}/$MYSQL_TMPDIR" + install -d -m 770 -o mysql -g mysql "${EROOT}/$MYSQL_TMPDIR" fi - if [[ ! -d "${EROOT%/}/$MYSQL_LOG_BIN" ]]; then + 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" + install -d -m 770 -o mysql -g mysql "${EROOT}/$MYSQL_LOG_BIN" fi - if [[ ! -d "${EROOT%/}/$MYSQL_RELAY_LOG" ]]; then + 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" + install -d -m 770 -o mysql -g mysql "${EROOT}/$MYSQL_RELAY_LOG" fi - if [[ -d "${ROOT%/}/${MY_DATADIR}/mysql" ]] ; then + if [[ -d "${ROOT}/${MY_DATADIR}/mysql" ]] ; then ewarn "You have already a MySQL database in place." - ewarn "(${ROOT%/}/${MY_DATADIR}/*)" + ewarn "(${ROOT}/${MY_DATADIR}/*)" ewarn "Please rename or delete it if you wish to replace it." die "MySQL database already exists!" fi @@ -670,19 +851,13 @@ pkg_config() { 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 + # see https://bugs.mysql.com/bug.php?id=31312 use prefix && options="${options} '--defaults-file=${MY_SYSCONFDIR}/my.cnf'" - local help_tables="${EROOT%/}${MY_SHAREDSTATEDIR}/fill_help_tables.sql" - [[ -r "${help_tables}" ]] \ - && cp "${help_tables}" "${TMPDIR}/fill_help_tables.sql" \ - || touch "${TMPDIR}/fill_help_tables.sql" - help_tables="${TMPDIR}/fill_help_tables.sql" - # 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 host-cache name-resolve networking slave-start \ + 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 @@ -693,7 +868,7 @@ pkg_config() { 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" + 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 @@ -705,37 +880,32 @@ pkg_config() { 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 - chown mysql "${sqltmp}" || die + # https://dev.mysql.com/doc/mysql/en/time-zone-support.html + "${EROOT}/usr/bin/mysql_tzinfo_to_sql" "${EROOT}/usr/share/zoneinfo" > "${sqltmp}" 2>/dev/null - local cmd=( "${EROOT%/}/usr/share/mysql/scripts/mysql_install_db" ) - [[ -f "${cmd}" ]] || cmd=( "${EROOT%/}/usr/bin/mysql_install_db" ) - if [[ -r "${help_tables}" ]] ; then - cat "${help_tables}" >> "${sqltmp}" - fi - cmd+=( "--basedir=${EPREFIX%/}/usr" ${options} "--datadir=${ROOT%/}${MY_DATADIR}" "--tmpdir=${ROOT%/}${MYSQL_TMPDIR}" ) + 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 + >"${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" + 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" ]] \ + [[ -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 \ + 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} \ - $(use prefix || echo --user=mysql) \ --log-warnings=0 \ - --basedir=${EROOT%/}/usr \ - --datadir=${ROOT%/}/${MY_DATADIR} \ + --basedir=${EROOT}/usr \ + --datadir=${ROOT}/${MY_DATADIR} \ --max_allowed_packet=8M \ --net_buffer_length=16K \ --socket=${socket} \ @@ -759,9 +929,8 @@ pkg_config() { ebegin "Setting root password" # Do this from memory, as we don't want clear text passwords in temp files - local sql="SET PASSWORD FOR 'root'@'localhost' = PASSWORD('${MYSQL_ROOT_PASSWORD}');" - "${EROOT%/}/usr/bin/mysql" \ - --no-defaults \ + 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}" @@ -769,8 +938,8 @@ pkg_config() { if [[ -n "${sqltmp}" ]] ; then ebegin "Loading \"zoneinfo\", this step may require a few seconds" - "${EROOT%/}/usr/bin/mysql" \ - --socket="${socket}" \ + "${EROOT}/usr/bin/mysql" \ + "--socket=${socket}" \ -hlocalhost \ -uroot \ --password="${MYSQL_ROOT_PASSWORD}" \ diff --git a/dev-db/mariadb/mariadb-10.3.11.ebuild b/dev-db/mariadb/mariadb-10.3.11.ebuild new file mode 100644 index 000000000000..f13182f68fa2 --- /dev/null +++ b/dev-db/mariadb/mariadb-10.3.11.ebuild @@ -0,0 +1,967 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" +MY_EXTRAS_VER="20181211-1735Z" +SUBSLOT="18" + +JAVA_PKG_OPT_USE="jdbc" + +# Keeping eutils in EAPI=6 for emktemp in pkg_config + +inherit eutils systemd flag-o-matic prefix toolchain-funcs \ + java-pkg-opt-2 user cmake-utils + +SRC_URI="https://downloads.mariadb.org/interstitial/${P}/source/${P}.tar.gz " + +# Gentoo patches to MySQL +if [[ "${MY_EXTRAS_VER}" != "live" && "${MY_EXTRAS_VER}" != "none" ]]; then + SRC_URI="${SRC_URI} + mirror://gentoo/mysql-extras-${MY_EXTRAS_VER}.tar.bz2 + https://gitweb.gentoo.org/proj/mysql-extras.git/snapshot/mysql-extras-${MY_EXTRAS_VER}.tar.bz2 + https://dev.gentoo.org/~grknight/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2 + https://dev.gentoo.org/~robbat2/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2 + https://dev.gentoo.org/~jmbsvicetto/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2" +fi + +HOMEPAGE="https://mariadb.org/" +DESCRIPTION="An enhanced, drop-in replacement for MySQL" +LICENSE="GPL-2 LGPL-2.1+" +SLOT="0/${SUBSLOT:-0}" +IUSE="+backup bindist client-libs cracklib debug extraengine galera innodb-lz4 + innodb-lzo innodb-snappy jdbc jemalloc kerberos latin1 libressl mroonga + numa odbc oqgraph pam +perl profiling rocksdb selinux +server sphinx + sst-rsync sst-mariabackup sst-xtrabackup static systemd systemtap tcmalloc + test tokudb xml yassl" + +# Tests always fail when libressl is enabled due to hard-coded ciphers in the tests +RESTRICT="!bindist? ( bindist ) libressl? ( test )" + +REQUIRED_USE="jdbc? ( extraengine server !static ) + server? ( tokudb? ( jemalloc !tcmalloc ) ) + ?? ( tcmalloc jemalloc ) + static? ( yassl !pam )" + +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris" + +# Shorten the path because the socket path length must be shorter than 107 chars +# and we will run a mysql server during test phase +S="${WORKDIR}/mysql" + +if [[ "${MY_EXTRAS_VER}" == "live" ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/mysql-extras.git" + EGIT_CHECKOUT_DIR="${WORKDIR%/}/mysql-extras" + EGIT_CLONE_TYPE=shallow + MY_PATCH_DIR="${WORKDIR%/}/mysql-extras" +else + MY_PATCH_DIR="${WORKDIR%/}/mysql-extras-${MY_EXTRAS_VER}" +fi + +PATCHES=( + "${MY_PATCH_DIR}"/20015_all_mariadb-pkgconfig-location.patch + "${MY_PATCH_DIR}"/20018_all_mariadb-10.2.16-without-clientlibs-tools.patch + "${MY_PATCH_DIR}"/20024_all_mariadb-10.2.6-mysql_st-regression.patch + "${MY_PATCH_DIR}"/20025_all_mariadb-10.2.6-gssapi-detect.patch + "${MY_PATCH_DIR}"/20035_all_mariadb-10.3-atomic-detection.patch + "${MY_PATCH_DIR}"/20037_all_mariadb-10.3-restore-jemalloc.patch +) + +# Be warned, *DEPEND are version-dependant +# These are used for both runtime and compiletime +COMMON_DEPEND=" + kernel_linux? ( + sys-process/procps:0= + dev-libs/libaio:0= + ) + >=sys-apps/sed-4 + >=sys-apps/texinfo-4.7-r1 + jemalloc? ( dev-libs/jemalloc:0= ) + tcmalloc? ( dev-util/google-perftools:0= ) + systemtap? ( >=dev-util/systemtap-1.3:0= ) + >=sys-libs/zlib-1.2.3:0= + kerberos? ( virtual/krb5 ) + yassl? ( net-libs/gnutls:0= ) + !yassl? ( + !libressl? ( >=dev-libs/openssl-1.0.0:0= ) + libressl? ( dev-libs/libressl:0= ) + ) + sys-libs/ncurses:0= + !bindist? ( + sys-libs/binutils-libs:0= + >=sys-libs/readline-4.1:0= + ) + server? ( + backup? ( app-arch/libarchive:0= ) + cracklib? ( sys-libs/cracklib:0= ) + extraengine? ( + odbc? ( dev-db/unixODBC:0= ) + xml? ( dev-libs/libxml2:2= ) + ) + innodb-lz4? ( app-arch/lz4 ) + innodb-lzo? ( dev-libs/lzo ) + innodb-snappy? ( app-arch/snappy ) + mroonga? ( app-text/groonga-normalizer-mysql >=app-text/groonga-7.0.4 ) + numa? ( sys-process/numactl ) + oqgraph? ( >=dev-libs/boost-1.40.0:0= dev-libs/judy:0= ) + pam? ( 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 ) + !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 +# percona-xtrabackup-bin causes a circular dependency if DBD-mysql is not already installed +PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 ) + server? ( ~virtual/mysql-5.6[static=] + galera? ( sst-xtrabackup? ( || ( >=dev-db/percona-xtrabackup-bin-2.2.4 dev-db/percona-xtrabackup ) ) ) )" + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]] ; then + local GCC_MAJOR_SET=$(gcc-major-version) + local GCC_MINOR_SET=$(gcc-minor-version) + if use tokudb && [[ ${GCC_MAJOR_SET} -lt 4 || \ + ${GCC_MAJOR_SET} -eq 4 && ${GCC_MINOR_SET} -lt 7 ]] ; then + eerror "${PN} with tokudb needs to be built with gcc-4.7 or later." + eerror "Please use gcc-config to switch to gcc-4.7 or later version." + die + fi + # Bug 565584. InnoDB now requires atomic functions introduced with gcc-4.7 on + # non x86{,_64} arches + if ! use amd64 && ! use x86 && [[ ${GCC_MAJOR_SET} -lt 4 || \ + ${GCC_MAJOR_SET} -eq 4 && ${GCC_MINOR_SET} -lt 7 ]] ; then + eerror "${PN} needs to be built with gcc-4.7 or later." + eerror "Please use gcc-config to switch to gcc-4.7 or later version." + die + fi + fi + java-pkg-opt-2_pkg_setup + if has test ${FEATURES} && \ + use server && ! has userpriv ${FEATURES} ; then + eerror "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root." + fi + + # This should come after all of the die statements + enewgroup mysql 60 || die "problem adding 'mysql' group" + enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user" +} + +pkg_preinst() { + java-pkg-opt-2_pkg_preinst + + # Here we need to see if the implementation switched client libraries + # We check if this is a new instance of the package and a client library already exists + local SHOW_ABI_MESSAGE libpath + if [[ -z ${REPLACING_VERSIONS} && -e "${EROOT}usr/$(get_libdir)/libmysqlclient.so" ]] ; then + libpath=$(readlink "${EROOT}usr/$(get_libdir)/libmysqlclient.so") + elog "Due to ABI changes when switching between different client libraries," + elog "revdep-rebuild must find and rebuild all packages linking to libmysqlclient." + elog "Please run: revdep-rebuild --library ${libpath}" + ewarn "Failure to run revdep-rebuild may cause issues with other programs or libraries" + fi +} + +pkg_postinst() { + # Make sure the vars are correctly initialized + mysql_init_vars + + # Create log directory securely if it does not exist + [[ -d "${ROOT}${MY_LOGDIR}" ]] || install -d -m0750 -o mysql -g mysql "${ROOT}${MY_LOGDIR}" + + if use server ; then + if use pam; then + einfo + elog "This install includes the PAM authentication plugin." + elog "To activate and configure the PAM plugin, please read:" + elog "https://mariadb.com/kb/en/mariadb/pam-authentication-plugin/" + einfo + fi + + if [[ -z "${REPLACING_VERSIONS}" ]] ; then + einfo + elog "You might want to run:" + elog "\"emerge --config =${CATEGORY}/${PF}\"" + elog "if this is a new install." + elog + elog "If you are switching server implentations, you should run the" + elog "mysql_upgrade tool." + einfo + else + einfo + elog "If you are upgrading major versions, you should run the" + elog "mysql_upgrade tool." + einfo + fi + + if use galera ; then + einfo + elog "Be sure to edit the my.cnf file to activate your cluster settings." + elog "This should be done after running \"emerge --config =${CATEGORY}/${PF}\"" + elog "The first time the cluster is activated, you should add" + elog "--wsrep-new-cluster to the options in /etc/conf.d/mysql for one node." + elog "This option should then be removed for subsequent starts." + einfo + fi + fi + + # Note about configuration change + einfo + elog "This version of mariadb reorganizes the configuration from a single my.cnf" + elog "to several files in /etc/mysql/${PN}.d." + elog "Please backup any changes you made to /etc/mysql/my.cnf" + elog "and add them as a new file under /etc/mysql/${PN}.d with a .cnf extension." + elog "You may have as many files as needed and they are read alphabetically." + elog "Be sure the options have the appropriate section headers, i.e. [mysqld]." + einfo +} + +src_unpack() { + unpack ${A} + # Grab the patches + [[ "${MY_EXTRAS_VER}" == "live" ]] && S="${WORKDIR}/mysql-extras" git-r3_src_unpack + + mv -f "${WORKDIR}/${P/_rc/}" "${S}" || die +} + +src_prepare() { + _disable_plugin() { + echo > "${S%/}/plugin/${1}/CMakeLists.txt" || die + } + _disable_engine() { + echo > "${S%/}/storage/${1}/CMakeLists.txt" || die + } + + if use tcmalloc; then + echo "TARGET_LINK_LIBRARIES(mysqld tcmalloc)" >> "${S}/sql/CMakeLists.txt" + fi + + # Don't build bundled xz-utils for tokudb + echo > "${S}/storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake" || die + sed -i -e 's/ build_lzma//' -e 's/ build_snappy//' "${S}/storage/tokudb/PerconaFT/ft/CMakeLists.txt" || die + sed -i -e 's/add_dependencies\(tokuportability_static_conv build_jemalloc\)//' "${S}/storage/tokudb/PerconaFT/portability/CMakeLists.txt" || die + + local plugin + local server_plugins=( handler_socket auth_socket feedback metadata_lock_info + locale_info qc_info server_audit sql_errlog ) + local test_plugins=( audit_null auth_examples daemon_example fulltext + debug_key_management example_key_management versioning ) + if ! use server; then # These plugins are for the server + for plugin in "${server_plugins[@]}" ; do + _disable_plugin "${plugin}" + done + fi + + if ! use test; then # These plugins are only used during testing + for plugin in "${test_plugins[@]}" ; do + _disable_plugin "${plugin}" + done + _disable_engine test_sql_discovery + fi + + _disable_engine example + + if ! use oqgraph ; then # avoids extra library checks + _disable_engine oqgraph + fi + + if use mroonga ; then + # Remove the bundled groonga + # There is no CMake flag, it simply checks for existance + rm -r "${S}"/storage/mroonga/vendor/groonga || die "could not remove packaged groonga" + else + _disable_engine mroonga + fi + + cmake-utils_src_prepare + java-pkg-opt-2_src_prepare +} + +src_configure(){ + # bug 508724 mariadb cannot use ld.gold + tc-ld-disable-gold + # Bug #114895, bug #110149 + filter-flags "-O" "-O[01]" + + append-cxxflags -felide-constructors + + # bug #283926, with GCC4.4, this is required to get correct behavior. + append-flags -fno-strict-aliasing + + CMAKE_BUILD_TYPE="RelWithDebInfo" + + # debug hack wrt #497532 + mycmakeargs=( + -DCMAKE_C_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')" + -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')" + -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr" + -DMYSQL_DATADIR="${EPREFIX}/var/lib/mysql" + -DSYSCONFDIR="${EPREFIX}/etc/mysql" + -DINSTALL_BINDIR=bin + -DINSTALL_DOCDIR=share/doc/${PF} + -DINSTALL_DOCREADMEDIR=share/doc/${PF} + -DINSTALL_INCLUDEDIR=include/mysql + -DINSTALL_INFODIR=share/info + -DINSTALL_LIBDIR=$(get_libdir) + -DINSTALL_MANDIR=share/man + -DINSTALL_MYSQLSHAREDIR=share/mariadb + -DINSTALL_PLUGINDIR=$(get_libdir)/mariadb/plugin + -DINSTALL_SCRIPTDIR=share/mariadb/scripts + -DINSTALL_MYSQLDATADIR="${EPREFIX}/var/lib/mysql" + -DINSTALL_SBINDIR=sbin + -DINSTALL_SUPPORTFILESDIR="${EPREFIX}/usr/share/mariadb" + -DWITH_COMMENT="Gentoo Linux ${PF}" + -DWITH_UNIT_TESTS=$(usex test ON OFF) + -DWITH_LIBEDIT=0 + -DWITH_ZLIB=system + -DWITHOUT_LIBWRAP=1 + -DENABLED_LOCAL_INFILE=1 + -DMYSQL_UNIX_ADDR="${EPREFIX}/var/run/mysqld/mysqld.sock" + -DINSTALL_UNIX_ADDRDIR="${EPREFIX}/var/run/mysqld/mysqld.sock" + -DWITH_DEFAULT_COMPILER_OPTIONS=0 + -DWITH_DEFAULT_FEATURE_SET=0 + -DINSTALL_SYSTEMD_UNITDIR="$(systemd_get_systemunitdir)" + # The build forces this to be defined when cross-compiling. We pass it + # all the time for simplicity and to make sure it is actually correct. + -DSTACK_DIRECTION=$(tc-stack-grows-down && echo -1 || echo 1) + -DPKG_CONFIG_EXECUTABLE="${EPREFIX}/usr/bin/$(tc-getPKG_CONFIG)" + -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO) + -DAUTH_GSSAPI_PLUGIN_TYPE=$(usex kerberos DYNAMIC OFF) + -DCONC_WITH_EXTERNAL_ZLIB=YES + -DWITH_EXTERNAL_ZLIB=YES + -DSUFFIX_INSTALL_DIR="" + -DWITH_UNITTEST=OFF + -DWITHOUT_CLIENTLIBS=YES + -DCLIENT_PLUGIN_DIALOG=OFF + -DCLIENT_PLUGIN_AUTH_GSSAPI_CLIENT=OFF + -DCLIENT_PLUGIN_MYSQL_CLEAR_PASSWORD=STATIC + ) + if use test ; then + mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mariadb/mysql-test ) + else + mycmakeargs+=( -DINSTALL_MYSQLTESTDIR='' ) + fi + + if ! use yassl ; then + mycmakeargs+=( -DWITH_SSL=system -DCLIENT_PLUGIN_SHA256_PASSWORD=STATIC ) + else + mycmakeargs+=( -DWITH_SSL=bundled ) + fi + + # bfd.h is only used starting with 10.1 and can be controlled by NOT_FOR_DISTRIBUTION + mycmakeargs+=( + -DWITH_READLINE=$(usex bindist 1 0) + -DNOT_FOR_DISTRIBUTION=$(usex bindist 0 1) + -DENABLE_DTRACE=$(usex systemtap) + ) + + if use server ; then + + # Federated{,X} must be treated special otherwise they will not be built as plugins + if ! use extraengine ; then + mycmakeargs+=( + -DPLUGIN_FEDERATED=NO + -DPLUGIN_FEDERATEDX=NO ) + fi + + mycmakeargs+=( + -DWITH_JEMALLOC=$(usex jemalloc system) + -DWITH_PCRE=system + -DPLUGIN_OQGRAPH=$(usex oqgraph DYNAMIC NO) + -DPLUGIN_SPHINX=$(usex sphinx YES NO) + -DPLUGIN_TOKUDB=$(usex tokudb YES NO) + -DPLUGIN_AUTH_PAM=$(usex pam YES NO) + -DPLUGIN_CRACKLIB_PASSWORD_CHECK=$(usex cracklib YES NO) + -DPLUGIN_CASSANDRA=NO + -DPLUGIN_SEQUENCE=$(usex extraengine YES NO) + -DPLUGIN_SPIDER=$(usex extraengine YES NO) + -DPLUGIN_CONNECT=$(usex extraengine YES NO) + -DCONNECT_WITH_MYSQL=1 + -DCONNECT_WITH_LIBXML2=$(usex xml) + -DCONNECT_WITH_ODBC=$(usex odbc) + -DCONNECT_WITH_JDBC=$(usex jdbc) + # Build failure and autodep wrt bug 639144 + -DCONNECT_WITH_MONGO=OFF + -DWITH_WSREP=$(usex galera) + -DWITH_INNODB_LZ4=$(usex innodb-lz4 ON OFF) + -DWITH_INNODB_LZO=$(usex innodb-lzo ON OFF) + -DWITH_INNODB_SNAPPY=$(usex innodb-snappy ON OFF) + -DPLUGIN_MROONGA=$(usex mroonga DYNAMIC NO) + -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO) + -DWITH_MARIABACKUP=$(usex backup ON OFF) + -DWITH_LIBARCHIVE=$(usex backup ON OFF) + -DINSTALL_SQLBENCHDIR="" + -DPLUGIN_ROCKSDB=$(usex rocksdb DYNAMIC NO) + # systemd is only linked to for server notification + -DWITH_SYSTEMD=$(usex systemd yes no) + -DWITH_NUMA=$(usex numa ON OFF) + ) + + # Workaround for MDEV-14524 + use tokudb && mycmakeargs+=( -DTOKUDB_OK=1 ) + + if use test ; then + # This is needed for the new client lib which tests a real, open server + mycmakeargs+=( -DSKIP_TESTS=ON ) + fi + + if [[ ( -n ${MYSQL_DEFAULT_CHARSET} ) && ( -n ${MYSQL_DEFAULT_COLLATION} ) ]]; then + ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}" + ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}." + ewarn "You MUST file bugs without these variables set." + + mycmakeargs+=( + -DDEFAULT_CHARSET=${MYSQL_DEFAULT_CHARSET} + -DDEFAULT_COLLATION=${MYSQL_DEFAULT_COLLATION} + ) + + elif ! use latin1 ; then + mycmakeargs+=( + -DDEFAULT_CHARSET=utf8 + -DDEFAULT_COLLATION=utf8_general_ci + ) + else + mycmakeargs+=( + -DDEFAULT_CHARSET=latin1 + -DDEFAULT_COLLATION=latin1_swedish_ci + ) + fi + mycmakeargs+=( + -DEXTRA_CHARSETS=all + -DMYSQL_USER=mysql + -DDISABLE_SHARED=$(usex static YES NO) + -DWITH_DEBUG=$(usex debug) + -DWITH_EMBEDDED_SERVER=OFF + -DWITH_PROFILING=$(usex profiling) + ) + + if use static; then + mycmakeargs+=( -DWITH_PIC=1 ) + fi + + if use jemalloc || use tcmalloc ; then + mycmakeargs+=( -DWITH_SAFEMALLOC=OFF ) + fi + + # Storage engines + mycmakeargs+=( + -DWITH_ARCHIVE_STORAGE_ENGINE=1 + -DWITH_BLACKHOLE_STORAGE_ENGINE=1 + -DWITH_CSV_STORAGE_ENGINE=1 + -DWITH_HEAP_STORAGE_ENGINE=1 + -DWITH_INNOBASE_STORAGE_ENGINE=1 + -DWITH_MYISAMMRG_STORAGE_ENGINE=1 + -DWITH_MYISAM_STORAGE_ENGINE=1 + -DWITH_PARTITION_STORAGE_ENGINE=1 + ) + + else + mycmakeargs+=( + -DWITHOUT_SERVER=1 + -DWITH_EMBEDDED_SERVER=OFF + -DEXTRA_CHARSETS=none + -DINSTALL_SQLBENCHDIR= + -DWITH_SYSTEMD=no + ) + fi + + cmake-utils_src_configure +} + +src_compile() { + cmake-utils_src_compile +} + +src_install() { + cmake-utils_src_install + + # Remove an unnecessary, private config header which will never match between ABIs and is not meant to be used + if [[ -f "${ED}/usr/include/mysql/server/private/config.h" ]] ; then + rm "${ED}/usr/include/mysql/server/private/config.h" || die + fi + + # Make sure the vars are correctly initialized + mysql_init_vars + + # Convenience links + einfo "Making Convenience links for mysqlcheck multi-call binary" + dosym "mysqlcheck" "/usr/bin/mysqlanalyze" + dosym "mysqlcheck" "/usr/bin/mysqlrepair" + dosym "mysqlcheck" "/usr/bin/mysqloptimize" + + # INSTALL_LAYOUT=STANDALONE causes cmake to create a /usr/data dir + if [[ -d "${ED}/usr/data" ]] ; then + rm -Rf "${ED}/usr/data" || die + fi + + # Unless they explicitly specific USE=test, then do not install the + # testsuite. It DOES have a use to be installed, esp. when you want to do a + # validation of your database configuration after tuning it. + if ! use test ; then + rm -rf "${D}/${MY_SHAREDSTATEDIR}/mysql-test" + fi + + # Configuration stuff + einfo "Building default configuration ..." + insinto "${MY_SYSCONFDIR#${EPREFIX}}" + [[ -f "${S}/scripts/mysqlaccess.conf" ]] && doins "${S}"/scripts/mysqlaccess.conf + cp "${FILESDIR}/my.cnf-10.2" "${TMPDIR}/my.cnf" || die + eprefixify "${TMPDIR}/my.cnf" + doins "${TMPDIR}/my.cnf" + insinto "${MY_SYSCONFDIR#${EPREFIX}}/mariadb.d" + cp "${FILESDIR}/my.cnf.distro-client" "${TMPDIR}/50-distro-client.cnf" || die + eprefixify "${TMPDIR}/50-distro-client.cnf" + doins "${TMPDIR}/50-distro-client.cnf" + + if use server ; then + mycnf_src="my.cnf.distro-server" + sed -e "s!@DATADIR@!${MY_DATADIR}!g" \ + "${FILESDIR}/${mycnf_src}" \ + > "${TMPDIR}/my.cnf.ok" || die + if use prefix ; then + sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' \ + "${TMPDIR}/my.cnf.ok" || die + fi + if use latin1 ; then + sed -i \ + -e "/character-set/s|utf8|latin1|g" \ + "${TMPDIR}/my.cnf.ok" || die + fi + eprefixify "${TMPDIR}/my.cnf.ok" + newins "${TMPDIR}/my.cnf.ok" 50-distro-server.cnf + + einfo "Including support files and sample configurations" + docinto "support-files" + local script + for script in \ + "${S}"/support-files/magic + do + [[ -f "$script" ]] && dodoc "${script}" + done + + docinto "scripts" + for script in "${S}"/scripts/mysql* ; do + [[ ( -f "$script" ) && ( "${script%.sh}" == "${script}" ) ]] && dodoc "${script}" + done + # Manually install supporting files that conflict with other packages + # but are needed for galera and initial installation + exeinto /usr/libexec/mariadb + doexe "${BUILD_DIR}/extra/my_print_defaults" "${BUILD_DIR}/extra/perror" + fi + + # Remove mytop if perl is not selected + if [[ -e "${ED}/usr/bin/mytop" ]] && ! use perl ; then + rm -f "${ED}/usr/bin/mytop" || die + fi + + # Fix a dangling symlink when galera is not built + if [[ -L "${ED}/usr/bin/wsrep_sst_rsync_wan" ]] && ! use galera ; then + rm "${ED}/usr/bin/wsrep_sst_rsync_wan" || die + fi +} + +# Official test instructions: +# USE='extraengine perl server' \ +# FEATURES='test userpriv -usersandbox' \ +# ebuild mariadb-X.X.XX.ebuild \ +# digest clean package +src_test() { + + _disable_test() { + local rawtestname reason + rawtestname="${1}" ; shift + reason="${@}" + ewarn "test '${rawtestname}' disabled: '${reason}'" + echo ${rawtestname} : ${reason} >> "${T}/disabled.def" + } + + local TESTDIR="${BUILD_DIR}/mysql-test" + local retstatus_unit + local retstatus_tests + + if ! use server ; then + einfo "Skipping server tests due to minimal build." + return 0 + fi + + # Bug #213475 - MySQL _will_ object strenously if your machine is named + # localhost. Also causes weird failures. + [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost" + + if [[ $UID -eq 0 ]]; then + die "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root." + fi + has usersandbox $FEATURES && ewarn "Some tests may fail with FEATURES=usersandbox" + + einfo ">>> Test phase [test]: ${CATEGORY}/${PF}" + + # Run CTest (test-units) + cmake-utils_src_test + retstatus_unit=$? + + # Ensure that parallel runs don't die + export MTR_BUILD_THREAD="$((${RANDOM} % 100))" + # Enable parallel testing, auto will try to detect number of cores + # You may set this by hand. + # The default maximum is 8 unless MTR_MAX_PARALLEL is increased + export MTR_PARALLEL="${MTR_PARALLEL:-auto}" + + # create directories because mysqladmin might run out of order + mkdir -p "${T}"/var-tests{,/log} || die + + # Run mysql tests + pushd "${TESTDIR}" > /dev/null || die + + touch "${T}/disabled.def" + # These are failing in MariaDB 10.0 for now and are believed to be + # false positives: + # + # main.mysql_client_test, main.mysql_client_test_nonblock + # main.mysql_client_test_comp: + # segfaults at random under Portage only, suspect resource limits. + + local t + for t in plugins.cracklib_password_check plugins.two_password_validations ; do + _disable_test "$t" "False positive due to varying policies" + done + + for t in main.mysql_client_test main.mysql_client_test_nonblock \ + main.mysql_client_test_comp rpl.rpl_extra_col_master_myisam ; do + _disable_test "$t" "False positives in Gentoo" + done + + _disable_test main.plugin_auth "Needs client libraries built" + + _disable_test main.func_time "Dependent on time test was written" + + # run mysql-test tests + perl mysql-test-run.pl --force --vardir="${T}/var-tests" --reorder --skip-test=tokudb --skip-test-list="${T}/disabled.def" + retstatus_tests=$? + + popd > /dev/null || die + + # Cleanup is important for these testcases. + pkill -9 -f "${S}/ndb" 2>/dev/null + pkill -9 -f "${S}/sql" 2>/dev/null + + local failures="" + [[ $retstatus_unit -eq 0 ]] || failures="${failures} test-unit" + [[ $retstatus_tests -eq 0 ]] || failures="${failures} tests" + + [[ -z "$failures" ]] || die "Test failures: $failures" + einfo "Tests successfully completed" +} + +mysql_init_vars() { + MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR="${EPREFIX}/usr/share/mariadb"} + MY_SYSCONFDIR=${MY_SYSCONFDIR="${EPREFIX}/etc/mysql"} + MY_LOCALSTATEDIR=${MY_LOCALSTATEDIR="${EPREFIX}/var/lib/mysql"} + MY_LOGDIR=${MY_LOGDIR="${EPREFIX}/var/log/mysql"} + + if [[ -z "${MY_DATADIR}" ]] ; then + MY_DATADIR="" + if [[ -f "${MY_SYSCONFDIR}/my.cnf" ]] ; then + MY_DATADIR=`"my_print_defaults" mysqld 2>/dev/null \ + | sed -ne '/datadir/s|^--datadir=||p' \ + | tail -n1` + if [[ -z "${MY_DATADIR}" ]] ; then + MY_DATADIR=`grep ^datadir "${MY_SYSCONFDIR}/my.cnf" \ + | sed -e 's/.*=\s*//' \ + | tail -n1` + fi + fi + if [[ -z "${MY_DATADIR}" ]] ; then + MY_DATADIR="${MY_LOCALSTATEDIR}" + einfo "Using default MY_DATADIR" + fi + elog "MySQL MY_DATADIR is ${MY_DATADIR}" + + if [[ -z "${PREVIOUS_DATADIR}" ]] ; then + if [[ -e "${MY_DATADIR}" ]] ; then + # If you get this and you're wondering about it, see bug #207636 + elog "MySQL datadir found in ${MY_DATADIR}" + elog "A new one will not be created." + PREVIOUS_DATADIR="yes" + else + PREVIOUS_DATADIR="no" + fi + export PREVIOUS_DATADIR + fi + else + if [[ ${EBUILD_PHASE} == "config" ]]; then + local new_MY_DATADIR + new_MY_DATADIR=`"my_print_defaults" mysqld 2>/dev/null \ + | sed -ne '/datadir/s|^--datadir=||p' \ + | tail -n1` + + if [[ ( -n "${new_MY_DATADIR}" ) && ( "${new_MY_DATADIR}" != "${MY_DATADIR}" ) ]]; then + ewarn "MySQL MY_DATADIR has changed" + ewarn "from ${MY_DATADIR}" + ewarn "to ${new_MY_DATADIR}" + MY_DATADIR="${new_MY_DATADIR}" + fi + fi + fi + + export MY_SHAREDSTATEDIR MY_SYSCONFDIR + export MY_LOCALSTATEDIR MY_LOGDIR + export MY_DATADIR +} + +pkg_config() { + _getoptval() { + local mypd="${EROOT}"usr/libexec/mariadb/my_print_defaults + local section="$1" + local flag="--${2}=" + local extra_options="${3}" + "${mypd}" $extra_options $section | sed -n "/^${flag}/s,${flag},,gp" + } + local old_MY_DATADIR="${MY_DATADIR}" + local old_HOME="${HOME}" + # my_print_defaults needs to read stuff in $HOME/.my.cnf + export HOME=${EPREFIX}/root + + # Make sure the vars are correctly initialized + mysql_init_vars + + [[ -z "${MY_DATADIR}" ]] && die "Sorry, unable to find MY_DATADIR" + if [[ ! -x "${EROOT}/usr/sbin/mysqld" ]] ; then + die "Minimal builds do NOT include the MySQL server" + fi + + if [[ ( -n "${MY_DATADIR}" ) && ( "${MY_DATADIR}" != "${old_MY_DATADIR}" ) ]]; then + local MY_DATADIR_s="${ROOT}/${MY_DATADIR}" + MY_DATADIR_s="${MY_DATADIR_s%%/}" + local old_MY_DATADIR_s="${ROOT}/${old_MY_DATADIR}" + old_MY_DATADIR_s="${old_MY_DATADIR_s%%/}" + + if [[ ( -d "${old_MY_DATADIR_s}" ) && ( "${old_MY_DATADIR_s}" != / ) ]]; then + if [[ -d "${MY_DATADIR_s}" ]]; then + ewarn "Both ${old_MY_DATADIR_s} and ${MY_DATADIR_s} exist" + ewarn "Attempting to use ${MY_DATADIR_s} and preserving ${old_MY_DATADIR_s}" + else + elog "Moving MY_DATADIR from ${old_MY_DATADIR_s} to ${MY_DATADIR_s}" + mv --strip-trailing-slashes -T "${old_MY_DATADIR_s}" "${MY_DATADIR_s}" \ + || die "Moving MY_DATADIR failed" + fi + else + ewarn "Previous MY_DATADIR (${old_MY_DATADIR_s}) does not exist" + if [[ -d "${MY_DATADIR_s}" ]]; then + ewarn "Attempting to use ${MY_DATADIR_s}" + else + eerror "New MY_DATADIR (${MY_DATADIR_s}) does not exist" + die "Configuration Failed! Please reinstall ${CATEGORY}/${PN}" + fi + fi + fi + + local pwd1="a" + local pwd2="b" + local maxtry=15 + + if [ -z "${MYSQL_ROOT_PASSWORD}" ]; then + local tmp_mysqld_password_source= + + for tmp_mysqld_password_source in mysql client; do + einfo "Trying to get password for mysql 'root' user from '${tmp_mysqld_password_source}' section ..." + MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password)" + if [[ -n "${MYSQL_ROOT_PASSWORD}" ]]; then + if [[ ${MYSQL_ROOT_PASSWORD} == *$'\n'* ]]; then + ewarn "Ignoring password from '${tmp_mysqld_password_source}' section due to newline character (do you have multiple password options set?)!" + MYSQL_ROOT_PASSWORD= + continue + fi + + einfo "Found password in '${tmp_mysqld_password_source}' section!" + break + fi + done + + # Sometimes --show is required to display passwords in some implementations of my_print_defaults + if [[ "${MYSQL_ROOT_PASSWORD}" == '*****' ]]; then + MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password --show)" + fi + + unset tmp_mysqld_password_source + fi + MYSQL_TMPDIR="$(_getoptval mysqld tmpdir)" + # 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 https://bugs.mysql.com/bug.php?id=31312 + use prefix && options="${options} '--defaults-file=${MY_SYSCONFDIR}/my.cnf'" + + # Figure out which options we need to disable to do the setup + local helpfile="${TMPDIR}/mysqld-help" + "${EROOT}/usr/sbin/mysqld" --verbose --help >"${helpfile}" 2>/dev/null + for opt in grant-tables host-cache name-resolve networking slave-start \ + federated ssl log-bin relay-log slow-query-log external-locking \ + log-slave-updates \ + ; do + optexp="--(skip-)?${opt}" optfull="--loose-skip-${opt}" + egrep -sq -- "${optexp}" "${helpfile}" && options="${options} ${optfull}" + done + + einfo "Creating the mysql database and setting proper permissions on it ..." + + # Now that /var/run is a tmpfs mount point, we need to ensure it exists before using it + PID_DIR="${EROOT}/var/run/mysqld" + if [[ ! -d "${PID_DIR}" ]]; then + install -d -m 755 -o mysql -g mysql "${PID_DIR}" || die "Could not create pid directory" + fi + + if [[ ! -d "${MY_DATADIR}" ]]; then + install -d -m 750 -o mysql -g mysql "${MY_DATADIR}" || die "Could not create data directory" + fi + + pushd "${TMPDIR}" &>/dev/null || die + + # Filling timezones, see + # https://dev.mysql.com/doc/mysql/en/time-zone-support.html + "${EROOT}/usr/bin/mysql_tzinfo_to_sql" "${EROOT}/usr/share/zoneinfo" > "${sqltmp}" 2>/dev/null + + local cmd=( "${EROOT}usr/share/mariadb/scripts/mysql_install_db" ) + [[ -f "${cmd}" ]] || cmd=( "${EROOT}usr/bin/mysql_install_db" ) + cmd+=( "--basedir=${EPREFIX}/usr" ${options} "--datadir=${ROOT}/${MY_DATADIR}" "--tmpdir=${ROOT}/${MYSQL_TMPDIR}" ) + einfo "Command: ${cmd[*]}" + su -s /bin/sh -c "${cmd[*]}" mysql \ + >"${TMPDIR}"/mysql_install_db.log 2>&1 + if [ $? -ne 0 ]; then + grep -B5 -A999 -i "ERROR" "${TMPDIR}"/mysql_install_db.log 1>&2 + die "Failed to initialize mysqld. Please review ${EPREFIX}/var/log/mysql/mysqld.err AND ${TMPDIR}/mysql_install_db.log" + fi + popd &>/dev/null || die + [[ -f "${ROOT}/${MY_DATADIR}/mysql/user.frm" ]] \ + || die "MySQL databases not installed" + + use prefix || options="${options} --user=mysql" + + local socket="${EROOT}/var/run/mysqld/mysqld${RANDOM}.sock" + local pidfile="${EROOT}/var/run/mysqld/mysqld${RANDOM}.pid" + local mysqld="${EROOT}/usr/sbin/mysqld \ + ${options} \ + --log-warnings=0 \ + --basedir=${EROOT}/usr \ + --datadir=${ROOT}/${MY_DATADIR} \ + --max_allowed_packet=8M \ + --net_buffer_length=16K \ + --socket=${socket} \ + --pid-file=${pidfile} \ + --tmpdir=${ROOT}/${MYSQL_TMPDIR}" + #einfo "About to start mysqld: ${mysqld}" + ebegin "Starting mysqld" + einfo "Command ${mysqld}" + ${mysqld} & + rc=$? + while ! [[ -S "${socket}" || "${maxtry}" -lt 1 ]] ; do + maxtry=$((${maxtry}-1)) + echo -n "." + sleep 1 + done + eend $rc + + if ! [[ -S "${socket}" ]]; then + die "Completely failed to start up mysqld with: ${mysqld}" + fi + + ebegin "Setting root password" + # Do this from memory, as we don't want clear text passwords in temp files + local sql="UPDATE mysql.user SET Password = PASSWORD('${MYSQL_ROOT_PASSWORD}') WHERE USER='root'; FLUSH PRIVILEGES" + "${EROOT}/usr/bin/mysql" \ + "--socket=${socket}" \ + -hlocalhost \ + -e "${sql}" + eend $? + + if [[ -n "${sqltmp}" ]] ; then + ebegin "Loading \"zoneinfo\", this step may require a few seconds" + "${EROOT}/usr/bin/mysql" \ + "--socket=${socket}" \ + -hlocalhost \ + -uroot \ + --password="${MYSQL_ROOT_PASSWORD}" \ + mysql < "${sqltmp}" + rc=$? + eend $? + [[ $rc -ne 0 ]] && ewarn "Failed to load zoneinfo!" + fi + + # Stop the server and cleanup + einfo "Stopping the server ..." + kill $(< "${pidfile}" ) + rm -f "${sqltmp}" + wait %1 + einfo "Done" +} diff --git a/dev-db/mongodb/Manifest b/dev-db/mongodb/Manifest index 466889144a43..3e39a2720fe5 100644 --- a/dev-db/mongodb/Manifest +++ b/dev-db/mongodb/Manifest @@ -15,10 +15,12 @@ AUX mongos.confd-r3 470 BLAKE2B 9cf6f201d337430901d957a5a0811ff11ac2e81814aac212 AUX mongos.initd-r3 422 BLAKE2B 90872d0d8cdc5e33e3eebee848f58a2db0511d48b496ba9318117b74ad9265ead53a21b7d1790729a62d61839099bee315ace8ff3646c01e096a943c2251bf88 SHA512 bf5897614d59c6b4e72529b126408a62ea37d9e9368e5ff69c8fcf2bad3ec09065cff09467f82117a892c51090018706d2f38c03cb9a974a61a49bd9efa0f144 DIST mongodb-src-r3.4.16.tar.gz 40093657 BLAKE2B 7123444dbdd0b2ad3adfb3391e0177d33c1b6c6a4ea83027821c564faad047a736e52926bc15c58bef59c18282436e913fd3bc9963705e030da01356f83ea367 SHA512 e22eb1fe2a832fed8305200614988c5ecfd619cee44fe2263bffa151732c0e26584084e64065dbc65152be6e5c1767a538193770359bea92f3703c72239075db DIST mongodb-src-r3.6.8.tar.gz 40428295 BLAKE2B cc02f73cfb49fb38ccabaad5a02610ce73fc41895ce944e48669e254bcbc70c8872a1bd7f8e04371fae4fcd9af2466fd8550367dd1d1da5cee50b86fc5023bf2 SHA512 c981f3269be3bafb59aa89d36c39a801fd7007b60db6c09b4616a559aaf8e50b34cabbdac2b59f23552c0a5112913fba468f7e2ed9a5f4daa3702dcffdf34999 +DIST mongodb-src-r3.6.9.tar.gz 40515460 BLAKE2B 5637e7b5cc4b3c7874fedacbe0b05dac1b3dde3ae1c58ecbfc8caf9526c0a8696bdfa1b9b40ffd1adfc81ef90fcb7a41de2c53ccce09da8b7879b9ab2f238eb7 SHA512 00202820570ba5cdc16951b1cb0e9b52bcb8362cee252c857b84d9107761f4061496fc3379ceae6e052f14477d702714384ad1b24eca2c4173af2506a8d1f39f DIST mongodb-src-r4.0.3.tar.gz 49435646 BLAKE2B 1663823d48ec6d93b30b4d68a09bab164291530fd4966fcdd07ffbaceaf25d9fc5c7480d0d794fdd374fa3a2d11f19d87556cf0c47198a13f9d8fb5ccf7f0343 SHA512 c77a01d8d16322514f42030c46a0aa9cedb90f186375222eeb31648060265006b5e929bdde6ca8e7ecd71018f7c19f5bade463d98db0f053d586ffc8adc99550 DIST mongodb-src-r4.0.4.tar.gz 49462543 BLAKE2B a1193ebc6ed818d4e5f27bff1792b6c6c193ff063cae36f2f7adcf63a3b780658d221691c58f42e494ec514d78c81d093067ea7dce8c7158a28846434f493821 SHA512 7e434c8ac715793d7b0015116af72cde766bae953cdc38653a2746ef4a76898dec58f8ee607d9357b87fa11e5a1f0248ae739473ded2d3dcca2b2801434b07e2 EBUILD mongodb-3.4.16.ebuild 4086 BLAKE2B 09d968fc68f4a3c717ce1e4b2f714464c04251fa8c241c9492a26f3777fcc458d7d27810530129753756012341924773c46bea0474900dd7289edb7778283187 SHA512 6f29c0d7dcb54403fe689f168652586bc4fae81de2b0d28f284046ab33c1e3ad94fbed3815ba2fd2164eacd12e9f43bdd1943179778175d6fe3097165a2410e0 EBUILD mongodb-3.6.8.ebuild 4196 BLAKE2B 5c5a72caa94102818cc03de85afc8d4c2818775814a9dd04555db4c1676dda953c8e64e3d222e35e96dfa90a26a18d9825c910f48102c6d574e8de816749523e SHA512 f6f83c1dd60eb8887457135b82194dd16c874678369a3b3a29907406b921502100e6d52d08b4dca6d9777d6d6c6453e6f134b08550304b0321138fb296e259dd +EBUILD mongodb-3.6.9.ebuild 4185 BLAKE2B 12daa13a2537b60508d13fcdc12de00c124570bdd419ba885d3614dfaa7f5307fd2d2cb4f3a1e2cc18d3d08c3014d649eb62fe0435f966a9b2680a91360a69c3 SHA512 f33ec6397321b79db8fb8d4fd7aeff2c8942045d088a9599bacf43c18a91c80e11eb55deed3f77f08cbac009a89939702a3dec7de69f8253b237224d109d62a6 EBUILD mongodb-4.0.3.ebuild 4198 BLAKE2B 8ecf5ad9712f6c5f3257df6dbd7dba686206c5498287cd39082920a9bbdaaf75585bb205cf09c515d27331a404f2b493d222bcf22d15c6904933bf753db04d01 SHA512 1f0932d7f192b2526d48389375aacc1f73e4b388f6ad46014d47eb18583940c13c9356288db29270d199f5e8930882842128df42c98171a7abf1cc582ffcb210 EBUILD mongodb-4.0.4.ebuild 4196 BLAKE2B 74791aaa39a513dabf0f5f21bf7fc0fb2a9baf63ba7ca7221f18b631e366b24ca3f59d3d2ed55886478ccab5bd836e11fc5b99e30c1e4866be90132a002a4d31 SHA512 45910cb89a28eb11f0e9d37311feca1cfbc5a6f5c22d7ea2c057d44849dc722e2322b6b3de77dddf1af9daa5af4b21817d4a94e6401dc5e6470a813ee3c2da74 MISC metadata.xml 835 BLAKE2B 6aaa10090846882c813db2fcbec27e9bb8d8ab5b34bbb0f5ac7b0de922606a6382be60f30a19502694022a38dc7c67f03b986d5cd1473e530ab4d05f5ee233a0 SHA512 8d190ebb08b6951c9c9ce39872c0c76b6236a0687980577eae7b2181c0bccacc60ccc67cccc4edc05aa21f4d9d65621eb57f803aab91c7ace6ab794559c9d08a diff --git a/dev-db/mongodb/mongodb-3.6.9.ebuild b/dev-db/mongodb/mongodb-3.6.9.ebuild new file mode 100644 index 000000000000..ceeb89c1f239 --- /dev/null +++ b/dev-db/mongodb/mongodb-3.6.9.ebuild @@ -0,0 +1,163 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python2_7 ) + +SCONS_MIN_VERSION="2.5.0" +CHECKREQS_DISK_BUILD="2400M" +CHECKREQS_DISK_USR="512M" +CHECKREQS_MEMORY="1024M" + +inherit check-reqs flag-o-matic multiprocessing pax-utils python-single-r1 scons-utils systemd toolchain-funcs user + +MY_P=${PN}-src-r${PV/_rc/-rc} + +DESCRIPTION="A high-performance, open source, schema-free document-oriented database" +HOMEPAGE="https://www.mongodb.com" +SRC_URI="https://fastdl.mongodb.org/src/${MY_P}.tar.gz" + +LICENSE="Apache-2.0 SSPL" +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:= + kerberos? ( dev-libs/cyrus-sasl[kerberos] ) + mms-agent? ( app-admin/mms-agent ) + ssl? ( + !libressl? ( >=dev-libs/openssl-1.0.1g:0= ) + libressl? ( dev-libs/libressl:0= ) + )" +DEPEND="${RDEPEND} + ${PYTHON_DEPS} + dev-python/cheetah[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + virtual/python-typing[${PYTHON_USEDEP}] + sys-libs/ncurses:0= + sys-libs/readline:0= + debug? ( dev-util/valgrind ) + test? ( + 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} ]]; then + if ver_test "$REPLACING_VERSIONS" -lt 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." + else + ewarn "Be sure to set featureCompatibilityVersion to 3.4 before upgrading." + fi + 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 -r src/third_party/{boost-*,pcre-*,scons-*,snappy-*,yaml-cpp-*,zlib-*} || die + + # remove compass + rm -r src/mongo/installer/compass || die +} + +src_configure() { + # https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source + # --use-system-icu fails tests + # --use-system-tcmalloc is strongly NOT recommended: + scons_opts=( + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + + --disable-warnings-as-errors + --use-system-boost + --use-system-pcre + --use-system-snappy + --use-system-stemmer + --use-system-yaml + --use-system-zlib + ) + + use debug && scons_opts+=( --dbg=on ) + use kerberos && scons_opts+=( --use-sasl-client ) + use ssl && scons_opts+=( --ssl ) + + # respect mongoDB upstream's basic recommendations + # see bug #536688 and #526114 + if ! use debug; then + filter-flags '-m*' + filter-flags '-O?' + fi + + default +} + +src_compile() { + escons "${scons_opts[@]}" core tools +} + +# FEATURES="test -usersandbox" emerge dev-db/mongodb +src_test() { + "${EPYTHON}" ./buildscripts/resmoke.py --dbpathPrefix=test --suites core --jobs=$(makeopts_jobs) || die "Tests failed" +} + +src_install() { + escons "${scons_opts[@]}" --nostrip install --prefix="${ED}"/usr + + doman debian/mongo*.1 + dodoc README docs/building.md + + newinitd "${FILESDIR}/${PN}.initd-r3" ${PN} + newconfd "${FILESDIR}/${PN}.confd-r3" ${PN} + newinitd "${FILESDIR}/mongos.initd-r3" mongos + newconfd "${FILESDIR}/mongos.confd-r3" mongos + + insinto /etc + newins "${FILESDIR}/${PN}.conf-r3" ${PN}.conf + newins "${FILESDIR}/mongos.conf-r2" mongos.conf + + systemd_dounit "${FILESDIR}/${PN}.service" + + insinto /etc/logrotate.d/ + newins "${FILESDIR}/${PN}.logrotate" ${PN} + + # see bug #526114 + pax-mark emr "${ED}"/usr/bin/{mongo,mongod,mongos} + + local x + for x in /var/{lib,log}/${PN}; do + diropts -m0750 -o mongodb -g mongodb + keepdir "${x}" + done +} + +pkg_postinst() { + ewarn "Make sure to read the release notes and follow the upgrade process:" + ewarn " https://docs.mongodb.com/manual/release-notes/$(ver_cut 1-2)/" + ewarn " https://docs.mongodb.com/manual/release-notes/$(ver_cut 1-2)/#upgrade-procedures" +} diff --git a/dev-db/mysql++/Manifest b/dev-db/mysql++/Manifest index 5af88c8080f4..604bf023abf1 100644 --- a/dev-db/mysql++/Manifest +++ b/dev-db/mysql++/Manifest @@ -11,6 +11,6 @@ DIST mysql++-3.2.3.tar.gz 3241023 BLAKE2B 5faa5711c7ed7c64346013bd1ca6e7dc20e5b2 DIST mysql++-3.2.4.tar.gz 4594696 BLAKE2B 7e0553b0e22bb3607a914fc7756ec192465af546749b0147a97558fb3d397e504f4552dcbc783f5bcc934e51fd1dac863e5479c4af3053d394a51c94cd825ee0 SHA512 69e23c211240854b59951bdb1cecc57f2f818d822a977942177e65195900dbdcc62d598c3e90c18f4a0a37e5340df7a149719c45b791de59c03d1f1259c5f4fd EBUILD mysql++-2.3.2-r1.ebuild 1410 BLAKE2B 6acbf4805dc44570d1d1b9df9a1c8769d3c13c9658b74cbad2052313d0538552693da45f2558be1afea78f80d6492ec36a9c02389ecbc054c60610ad521030eb SHA512 badefe7d214bd55b81965070b814b94c15fe3635d87c265225d2f9fef02360c3e09adeeb79a75c9990e89d596f111fc958c2a5fcec63624f14404192e4a26884 EBUILD mysql++-3.2.1.ebuild 901 BLAKE2B 0e6c3feef947f749d7124284dad8ce91d14fed57d7a24730482dea19646a8b675113577138d4d81dd3e803df74f13a91fe40b1959fa145bf676b8d301a24d588 SHA512 6a2029dab230cf4c1e4c344362ef7ae8204775a1dd898da6d5bbe274c3b5ad1b1d223eb6e4b4c5915b87b7c6b401c40b3630c8aa0546d4c0192ba418f4d1cf31 -EBUILD mysql++-3.2.3.ebuild 1561 BLAKE2B c55bc278056abe36b0ab2eb902882ad97b2d99230b50bc55ab0d426b9342b98a9fbb46fba0767fad520d0cce3bda9ed31457ced665d436df511abf9ff2fd9b41 SHA512 9cb3fb85b33b17ad94861dff4970a18e537b13e6b1d72b10ff21d93deb5d773a7529be4dca96ee75e877d5bb8da10f75960ffbea49fe22f22634b448a40c31ea +EBUILD mysql++-3.2.3.ebuild 1557 BLAKE2B 4d6e6743162da47c5af3f50f460a383de1b893f878d100d298e9af3e0dd520c197c551923195374a469cebe8b0662986f31e3531f51e1f9da8e4c13cff7fd1bd SHA512 c937096617395b6ea1fc9058037a9e7e7357bffed51c9d543cac61567effef511ab4767dfb0116115ea005929a5930b3d732cb7bcffb90fd48a263527dbf2470 EBUILD mysql++-3.2.4.ebuild 1704 BLAKE2B c67e5a1e752602037503871f061f6a0430af178beab1c8fe293b19f903afbc78a62f602e8fa1af1c2812c0c938b540a99f0c25dd37ea782b9815237cfe8b4036 SHA512 7358abde75d8f9b57487955a75c7718d383b2ef0aea9094a9bce3affd8151ed94c509e884dea6b10b9d8d709fa893fcb0153e26520375410661045ed198013b2 MISC metadata.xml 239 BLAKE2B c4d6706d083b72927d239f41a644a4009c054c1c1a388af7733d3a2daf47d354009eb472573304a6be272601f05535297bcd9ceaea811a741cd905577ffe53d1 SHA512 e6e2fafe2f503db1d12e3d2368a99631ee8d014b7ea802d9879e7e3e2c0f9378675fffccd78ed09b914ae781ac3902567b1a53a721906e3ea63ceb51d0a1654b diff --git a/dev-db/mysql++/mysql++-3.2.3.ebuild b/dev-db/mysql++/mysql++-3.2.3.ebuild index 4e9adb043372..09d80aa43cdf 100644 --- a/dev-db/mysql++/mysql++-3.2.3.ebuild +++ b/dev-db/mysql++/mysql++-3.2.3.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -11,7 +11,7 @@ SRC_URI="http://www.tangentsoft.net/mysqlpp/releases/${P}.tar.gz" LICENSE="LGPL-2" SLOT="0/3" -KEYWORDS="alpha amd64 ~hppa ~mips ppc ~sparc x86 ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" +KEYWORDS="alpha amd64 ~hppa ~mips ppc sparc x86 ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" IUSE="doc" RDEPEND="virtual/libmysqlclient:=" diff --git a/dev-db/mysql-proxy/Manifest b/dev-db/mysql-proxy/Manifest deleted file mode 100644 index 2f94ea4a276e..000000000000 --- a/dev-db/mysql-proxy/Manifest +++ /dev/null @@ -1,7 +0,0 @@ -AUX mysql-proxy.cnf 1120 BLAKE2B 5e1bd66b984948dfde35be6709e0e6c175ff2685f708f34a98b1ee27bacb624b57a4be5775318663c0996dd780e8b05797b0320cedd5165135533042a04721ad SHA512 5f889422d7232608dcde5f332577c563b0c29b0db5a327659ce7b30cef7e4d498eca641159d49671b7368080ff2113511b6b362b44fb75ddd781a00e2879246b -AUX mysql-proxy.confd 365 BLAKE2B 064bd99f0b233109fffb65dace18df9a6803cec6c6dbe7e47e3043eb1e4c627a875c07300bef2446968e3f493caa0426ee4f58f4b1dc59652eb89e2ac5330d7c SHA512 9a4a6499e03d939fcc5fbd5f71d1e377a1d003e542be7fab47d810899649f58e518aa34617c67b207477c7b1a85b75ce3045eb5959156c673b4c28c2c101185b -AUX mysql-proxy.confd-0.8.0-r1 391 BLAKE2B 7896a8f6e4aa8edf8dfcee3e8a29f0aa30bfd1b4fcbb76dad92eafe1c42b1a9eff4a050ea71d1b98196459da39eaf843ec849e9dfc0d2b81f0bca77c34e94be0 SHA512 e07afd8502d87006cfd4640e83c1ecab98b862d0916ee351c9c60aaaa01f0766d51d0749d3f63f33df9f8bbbbc45ef21517fa0dbc87bf3ade8e3e6c4048c8a5b -AUX mysql-proxy.initd 431 BLAKE2B fd9b3512056162470cb331cade13ee9d83ad91398bc7d907540606fbdf9c8139bec25aad9c2d8ad58d91bb39a406218ddb42d948b21d5a2aa03f714d43ac66b6 SHA512 184850991fbc7c2c625e28f217b12a6e44a38392d1f054dfd25ab6b4c298fb5c53177d6590f536ec3b23bf03b127ae7ee144cc5402bcd2cc8be44a478bc82af3 -DIST mysql-proxy-0.8.2.tar.gz 861995 BLAKE2B 2f6071d5c2a63462dc619ade0ce92db6845d0e010d4d5022314157b3cdac553b5ccff8149763844d42892eaa444f132587f02b8495ddd446ed02953909e59b5a SHA512 e083ea6344bf2d3b85a38127e42cbab659a959684f7f0f63272fa0df926d6d32dbbaaab2b6479ee8fc227fbc9af6f24e855d19700ec1ab4b904c5e638b4d64c8 -EBUILD mysql-proxy-0.8.2-r1.ebuild 1268 BLAKE2B fdaebbcb3663055180073a77f7868ea49b9d888bf72075696151d49a692c5692d50163473068f0184b734cf5d9aede13acd055b07f485c76a2b8f47e1a537f86 SHA512 491326aa07da2e83e440420950c687162d33c3393dd33ae845259a4e663726258f2bc2ba4783ad03289e99cd4164d008d0c8805e36358fa519fe528697d95c76 -MISC metadata.xml 553 BLAKE2B cbbc397ac51dc4760dcd482204ea2d1eca1ea479b9b46cb6681eb642143204d1d4e11da9483c1775d25f89419bbb263975606c3874d01f924df8bbdfd1b80195 SHA512 ea9b0711830e204234c0395e2637005cbf83187c7554435351447871ca99595756893ab4113adcac3deaa6df5495fdf9bf4d3091140c6d2ef498e832cc520388 diff --git a/dev-db/mysql-proxy/files/mysql-proxy.cnf b/dev-db/mysql-proxy/files/mysql-proxy.cnf deleted file mode 100644 index 7d15674f6b9d..000000000000 --- a/dev-db/mysql-proxy/files/mysql-proxy.cnf +++ /dev/null @@ -1,47 +0,0 @@ -# MySQL Proxy's configuration file (mysql-proxy.cnf) -# This file must be 0660 or more restrictive -# otherwise mysql-proxy will refuse to load -[mysql-proxy] -#basedir = ... -#daemon = true -#defaults-file = ... -#event-threads = ... -keepalive = true -log-backtrace-on-crash = true -log-file = /var/log/mysql/mysql-proxy.log -log-level = warning -#log-use-syslog = true -#lua-cpath = ... -#lua-path = ... -#max-open-files = ... -pid-file = /var/run/mysql-proxy.pid -#plugin-dir = ... -#plugins = admin,proxy,debug,replicant -#plugins = admin,proxy -plugins = proxy -#user = ... - -# module: admin -admin-address = 127.0.0.1:4041 -#admin-lua-script = ... -#admin-password = ... -#admin-username = ... - -# module: proxy -#no-proxy = false -proxy-address = 127.0.0.1:4040 -proxy-backend-addresses = 127.0.0.1:3306 -proxy-fix-bug-25371 = false -#proxy-lua-script = ... -#proxy-pool-no-change-user = ... -#proxy-read-only-backend-addresses = ... -proxy-skip-profiling = false - -# module: replicant -#replicant-master-address = ... -#replicant-username = ... -#replicant-password = ... -#replicant-read-binlogs = ... - -# module: debug -debug-address = 127.0.0.1:4043 diff --git a/dev-db/mysql-proxy/files/mysql-proxy.confd b/dev-db/mysql-proxy/files/mysql-proxy.confd deleted file mode 100644 index 079530159f82..000000000000 --- a/dev-db/mysql-proxy/files/mysql-proxy.confd +++ /dev/null @@ -1,12 +0,0 @@ -# /etc/conf.d/mysql-proxy: config file for /etc/init.d/mysql-proxy - -# location of pidfile -PIDFILE="/var/run/mysql-proxy.pid" - -# general options for mysql-proxy -# do NOT specify --daemon or --pid-file=... here! -OPTS="--log-use-syslog" - -# if you want mysql-proxy to depend on mysql, enable this: -#RC_NEED="mysql" # baselayout-1 -#rc_need="mysql" # baselayout-2/OpenRC diff --git a/dev-db/mysql-proxy/files/mysql-proxy.confd-0.8.0-r1 b/dev-db/mysql-proxy/files/mysql-proxy.confd-0.8.0-r1 deleted file mode 100644 index 8b86431a3d8f..000000000000 --- a/dev-db/mysql-proxy/files/mysql-proxy.confd-0.8.0-r1 +++ /dev/null @@ -1,12 +0,0 @@ -# /etc/conf.d/mysql-proxy: config file for /etc/init.d/mysql-proxy - -# location of pidfile -PIDFILE="/var/run/mysql-proxy.pid" - -# general options for mysql-proxy -# do NOT specify --daemon or --pid-file=... here! -OPTS="--defaults-file=/etc/mysql/mysql-proxy.cnf" - -# if you want mysql-proxy to depend on mysql, enable this: -#RC_NEED="mysql" # baselayout-1 -#rc_need="mysql" # baselayout-2/OpenRC diff --git a/dev-db/mysql-proxy/files/mysql-proxy.initd b/dev-db/mysql-proxy/files/mysql-proxy.initd deleted file mode 100644 index 7107facfd6f8..000000000000 --- a/dev-db/mysql-proxy/files/mysql-proxy.initd +++ /dev/null @@ -1,22 +0,0 @@ -#!/sbin/openrc-run -# Copyright 1999-2007 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -depend() { - need net -} - -start() { - ebegin "Starting MySQL Proxy" - start-stop-daemon --start --quiet \ - --exec /usr/bin/mysql-proxy \ - -- --daemon --pid-file="${PIDFILE}" ${OPTS} - eend $? -} - -stop() { - ebegin "Stopping MySQL Proxy" - start-stop-daemon --stop --quiet \ - --pidfile "${PIDFILE}" - eend $? -} diff --git a/dev-db/mysql-proxy/metadata.xml b/dev-db/mysql-proxy/metadata.xml deleted file mode 100644 index dc0c708273db..000000000000 --- a/dev-db/mysql-proxy/metadata.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <longdescription> -MySQL Proxy is a simple program that sits between your client and MySQL -server(s) that can monitor, analyze or transform their communication. Its -flexibility allows for unlimited uses; common ones include: load balancing; -failover; query analysis; query filtering and modification; and many more. -</longdescription> - <upstream> - <remote-id type="launchpad">mysql-proxy</remote-id> - </upstream> -</pkgmetadata> diff --git a/dev-db/mysql-proxy/mysql-proxy-0.8.2-r1.ebuild b/dev-db/mysql-proxy/mysql-proxy-0.8.2-r1.ebuild deleted file mode 100644 index 6a7abae6bab8..000000000000 --- a/dev-db/mysql-proxy/mysql-proxy-0.8.2-r1.ebuild +++ /dev/null @@ -1,51 +0,0 @@ -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=5 - -inherit eutils versionator - -MY_PV=$(get_version_component_range 1-2) -DESCRIPTION="A Proxy for the MySQL Client/Server protocol" -HOMEPAGE="http://dev.mysql.com/doc/mysql-proxy/en/" -SRC_URI="https://launchpad.net/${PN}/${MY_PV}/${PV}/+download/${P}.tar.gz" -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="examples" -RDEPEND=">=dev-libs/libevent-2.1 - >=dev-libs/glib-2.16 - >=dev-lang/lua-5.1:0" -DEPEND="${RDEPEND} - >=virtual/mysql-5.0 - virtual/pkgconfig" - -src_prepare() { - sed -i \ - -e 's|_EVENT_VERSION|LIBEVENT_VERSION|g' \ - src/chassis-mainloop.c || die -} - -src_configure() { - econf \ - --includedir=/usr/include/${PN} \ - --with-mysql \ - --with-lua \ - || die "econf failed" -} - -src_install() { - emake DESTDIR="${D}" install || die "emake install failed" - newinitd "${FILESDIR}"/${PN}.initd ${PN} || die - newconfd "${FILESDIR}"/${PN}.confd-0.8.0-r1 ${PN} || die - dodoc ChangeLog NEWS README - if use examples; then - docinto examples - dodoc examples/*.lua || die - dodoc lib/*.lua || die - fi - # mysql-proxy will refuse to start unless the config file is at most 0660. - insinto /etc/mysql - insopts -m0660 - doins "${FILESDIR}"/${PN}.cnf || die -} diff --git a/dev-db/mysql-workbench/Manifest b/dev-db/mysql-workbench/Manifest index cb16cb13ebd4..a4cf786bf5ac 100644 --- a/dev-db/mysql-workbench/Manifest +++ b/dev-db/mysql-workbench/Manifest @@ -9,11 +9,8 @@ DIST antlr-3.4-complete.jar 2388361 BLAKE2B 561c1dffe464bbc387075df6d95bbdcab273 DIST antlr-4.7.1-complete.jar 2240116 BLAKE2B 3acf99b3701b2092cad2fb6e91f27791cbedd82f26888d7329e481be29fce4ec644eb57f663e515b92dea46c24222d4fb090aae5cae30c57c412a38932ea72ed SHA512 de1c230d7294e05ac7b451cbc639bab9d416a674b281e21092fb4a9329ca8b6d4b92b9ad78a9771cff475a1610f1d0419819c4619bdff36c683019da67ef13b1 DIST mysql-workbench-community-6.3.10-src.tar.gz 14969443 BLAKE2B 57f7b0d661bc8211e123a027ce12e71be5637c189cc6e3b949df4f8e5a7edfc8c78f3c6e85b7292347dce2b720ee79070ac8fb91224396a3afae4104583d4325 SHA512 f892853a5f8b000c424b945c38680e17b041699fe2b03743b71c803de6cedeb12e3f69ad94d1c737e23f26d8608026e18fb29d31be6b3a2ffea1d78229212a4d DIST mysql-workbench-community-6.3.4-src.tar.gz 14954524 BLAKE2B 54941a760cc44b745039a59d0ad88e109605c47285b34098d7ebc9e7a32758027c07219f7b8dc96fad198fbc68086582ccfa5ba7e7a35fa1fff8ff57b467f91f SHA512 8d7eacd46fd3cac912dac2fdbc0669759f9411796507cca76b0ad47228381b15b7f88e60a7a5a8763e704b456884828783cb0c7ed218025edb35aa5033d7d02f -DIST mysql-workbench-community-6.3.9-src.tar.gz 14634678 BLAKE2B 0991036cedc3198e789369a40641cc318fdc4230c2b6242b923e836c50248e3e1f5b891c1ce7465d132c30e482ef5458a19ed8b9e4a9865719be8eda61eeb1dc SHA512 a3df060114adb0c4f95423dc2732a39917be4eb2281cc2d811cc68c2d43cfa28eea52c4ab743018e91c8c58b0ad7d4b34a9936df8c17381accee8159afe19901 DIST mysql-workbench-community-8.0.13-src.tar.gz 16047080 BLAKE2B c31560a978620ae04210b452bcf90b75e7eb2ec20335470054b2640220ed29c3476f5ee1bacd86575f9b42481de5452e94b8d7a5e8f56eb17ea0770be19dc296 SHA512 d6f7aeb85e1bb59474d432f8088fd5603e5b539f3fce9c78db2aeaa8de3bc9356de09a6486138e07a29dd62b971e7601cce12a2e4a9f7309364081ee5db4b55d -EBUILD mysql-workbench-6.3.10.ebuild 2709 BLAKE2B 7bafff793dcc713d9a3cb87d118bb3e1831a1888de1d0783ab571631af0f6576bb55be6ce523330b5b3d88db43d63440c50662889a3d6ae52fb4809303d2bf02 SHA512 3d8218213530fa62ab192ef2ec57027c92049edbf5d735bb440c8e3e825041e0530d5351911c0b7838053a3b49df3d7efe23139e3e578f0d515c48f1c1c4a451 +EBUILD mysql-workbench-6.3.10.ebuild 2858 BLAKE2B 09cfdc16accc4772a41b3f0de95982bd5aae411309bcc0b17efb7f4cb801ba94f4f9898226b7ddec30ff4544094f9526b4f93c34e535a4a306e65d021a57acfb SHA512 abe0d26d0e9424262d58b9063cfc2f979af87bd084339fc7a2d9384d188d7f762401ba6223b86a3ba73de9774d2eaef16c8b7d08d2bca4dc177684dd3828bd97 EBUILD mysql-workbench-6.3.4-r1.ebuild 2798 BLAKE2B 20f49f347c9c3300de21e66e851e43670f78e128187287931a6eff0d3fb242ec5ef114d5b6749614895e146332220ce7d11be19a2c27ac153e1de457a18e7baf SHA512 9c9556b5dc88f38381357fdb9991ff94ac6d827db5c9e8320d4d665d1df9b779742364d52a1e1924f8cdd4579eb71e1f8c62af5cf5130ef7aaeab396a7138f54 -EBUILD mysql-workbench-6.3.4-r2.ebuild 2639 BLAKE2B 3ec26fc7bc62e5b4ca9840a7d2f0116566fd4af7d848f89175e67d07ebff340466221a6226d632fc960e6a8f41cae60cb8a8d50317ceb00d049b395c6ab0c493 SHA512 da097fc7e58b6d3383aa66d37cfa0b734c203db43904c0aa8266e51f160a61f649f6bd08136569076eb0ad5b56bdbb855139a58a9adbb8736ff419574e05702a -EBUILD mysql-workbench-6.3.9.ebuild 2621 BLAKE2B 1a2583c3a0cf268ab0c0d52203773612fa115a1c6096d4a4571ca40bedbeff4cf3fe95bccf75512705d4c3eed7cf72a0358b1dd6acccbb95fa1e1eb2d6c154ef SHA512 26f05929ce84c1e64e5d3aadf95d19431ba129528bff947646a9b952a155887f773370caca1d44d68f7d09d7b0b9184d77d44ef3eb6ceb016976a549369bc1cb -EBUILD mysql-workbench-8.0.13.ebuild 2622 BLAKE2B 9956ab1b7eb3af674393e18c47443531fc2316e06b45f9a4a4c4c19fe8c4d3678ef504b2e5feb3cf587005aa3b1eaa744c79d9a353f87ad3025bec5b9f8b3e8b SHA512 1858cdde3fb74e212dce8d2c90975598a03c9515293c5df638930868f380dcb72a2f8e632a9291116fb3a50fd553db2cbb4b209e72042d8fe0124df82a80e2a5 +EBUILD mysql-workbench-8.0.13.ebuild 2676 BLAKE2B 5ad4a670e549174be069f984eacd450b4970fe3654c1b9ee1b832094616b9bf84352a38e606f01a1e662d3dcf88cbc1640c31d98007ada0dace758081600768f SHA512 2205d02eebf2bc3fdf95d1d80b5f94597eb000da73d5db0965728d0e50e16e98e121d75786f48d56b0b4b4e7f8d2f01042848c31ef765347c5c1fbd09fa85842 MISC metadata.xml 310 BLAKE2B b0d985e39bb17865a05907e5449723c2bf862d9f3ae7f8570173c9cff443171feef6694db26a51880f8c1a4b1e3834ca7ab9bc7c2057fd6f8930b9d1c1c02cdd SHA512 f284063d72f2218f8ed60a74b43f252d608865682b8c0447f52016a02a7cbf6d45a226787d893328dd31946ade1cca78ff7556896183b4422c4142a8935a2193 diff --git a/dev-db/mysql-workbench/mysql-workbench-6.3.10.ebuild b/dev-db/mysql-workbench/mysql-workbench-6.3.10.ebuild index 4e80549449d4..772ccb85d543 100644 --- a/dev-db/mysql-workbench/mysql-workbench-6.3.10.ebuild +++ b/dev-db/mysql-workbench/mysql-workbench-6.3.10.ebuild @@ -17,7 +17,7 @@ SRC_URI="mirror://mysql/Downloads/MySQLGUITools/${MY_P}.tar.gz https://github.co LICENSE="GPL-2" SLOT="0" -KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" +KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux" IUSE="debug doc gnome-keyring" REQUIRED_USE="${PYTHON_REQUIRED_USE}" @@ -88,10 +88,16 @@ src_prepare() { } src_configure() { + if has_version dev-db/libiodbc ; then + IODBC="-DIODBC_CONFIG_PATH=/usr/bin/iodbc-config" + fi + append-cxxflags -std=c++11 local mycmakeargs=( -DUSE_GNOME_KEYRING="$(usex gnome-keyring)" -DLIB_INSTALL_DIR="/usr/$(get_libdir)" + -DIODBC_INCLUDE_PATH="/usr/include/iodbc" + ${IODBC} -DPYTHON_INCLUDE_DIR="$(python_get_includedir)" -DPYTHON_LIBRARY="$(python_get_library_path)" -DMySQL_CONFIG_PATH="/usr/bin/mysql_config" diff --git a/dev-db/mysql-workbench/mysql-workbench-6.3.4-r2.ebuild b/dev-db/mysql-workbench/mysql-workbench-6.3.4-r2.ebuild deleted file mode 100644 index 84f314bf0128..000000000000 --- a/dev-db/mysql-workbench/mysql-workbench-6.3.4-r2.ebuild +++ /dev/null @@ -1,106 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=5 -GCONF_DEBUG="no" - -PYTHON_COMPAT=( python2_7 ) -PYTHON_REQ_USE="sqlite" - -inherit gnome2 eutils flag-o-matic python-single-r1 cmake-utils - -MY_P="${PN}-community-${PV}-src" - -DESCRIPTION="MySQL Workbench" -HOMEPAGE="http://dev.mysql.com/workbench/" -SRC_URI="mirror://mysql/Downloads/MySQLGUITools/${MY_P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" -IUSE="debug doc gnome-keyring" -REQUIRED_USE="${PYTHON_REQUIRED_USE}" - -# glibc: deprecated mutex functions, removed in 2.36.0 -CDEPEND="${PYTHON_DEPS} - dev-libs/glib:2 - dev-cpp/atkmm - dev-cpp/pangomm - >=dev-cpp/glibmm-2.14:2 - >=dev-cpp/gtkmm-2.14:2.4 - dev-libs/atk - x11-libs/pango - >=x11-libs/gtk+-2.20:2 - gnome-base/libglade:2.0 - >=x11-libs/cairo-1.5.12[glib,svg] - dev-libs/libsigc++:2 - >=dev-libs/boost-1.55.0[nls] - >=dev-cpp/ctemplate-0.95 - >=dev-libs/libxml2-2.6.2:2 - dev-libs/libzip - >=virtual/mysql-5.1 - dev-libs/libpcre[cxx] - >=sci-libs/gdal-1.11.1-r1[-mdb] - virtual/opengl - >=dev-lang/lua-5.1:0[deprecated] - || ( sys-libs/e2fsprogs-libs dev-libs/ossp-uuid ) - dev-libs/tinyxml[stl] - dev-db/mysql-connector-c++ - dev-db/vsqlite++ - || ( dev-db/libiodbc dev-db/unixODBC ) - gnome-keyring? ( gnome-base/libgnome-keyring ) - dev-python/pexpect - >=dev-python/paramiko-1.7.4 - " - -# lua perhaps no longer needed? Was used via libgrt only - -RDEPEND="${CDEPEND} - app-admin/sudo - >=sys-apps/net-tools-1.60_p20120127084908" - -DEPEND="${CDEPEND} - dev-lang/swig - virtual/pkgconfig" - -S="${WORKDIR}"/"${MY_P}" - -src_unpack() { - unpack ${PN}-community-${PV}-src.tar.gz -} - -src_prepare() { - ## Patch CMakeLists.txt - epatch "${FILESDIR}/${PN}-6.2.3-CMakeLists.patch" \ - "${FILESDIR}/${PN}-6.2.5-wbcopytables.patch" \ - "${FILESDIR}/${PN}-6.3.3-mysql_options4.patch" \ - "${FILESDIR}/${PN}-6.3.4-cxx11.patch" \ - "${FILESDIR}/${PN}-6.3.4-gtk.patch" - - sed -i -e '/target_link_libraries/ s/sqlparser.grt/sqlparser.grt sqlparser/' \ - modules/db.mysql.sqlparser/CMakeLists.txt - - ## remove hardcoded CXXFLAGS - sed -i -e 's/-O0 -g3//' ext/scintilla/gtk/CMakeLists.txt || die - - ## package is very fragile... - strip-flags - - cmake-utils_src_prepare -} - -src_configure() { - append-cxxflags -std=c++11 - local mycmakeargs=( - $(cmake-utils_use_use gnome-keyring GNOME_KEYRING) - -DLIB_INSTALL_DIR="/usr/$(get_libdir)" - -DPYTHON_INCLUDE_DIR="$(python_get_includedir)" - -DPYTHON_LIBRARY="$(python_get_library_path)" - ) - cmake-utils_src_configure -} - -src_compile() { - # Work around parallel build issues, bug 507838 - cmake-utils_src_compile -j1 -} diff --git a/dev-db/mysql-workbench/mysql-workbench-6.3.9.ebuild b/dev-db/mysql-workbench/mysql-workbench-6.3.9.ebuild deleted file mode 100644 index efa53cd769f5..000000000000 --- a/dev-db/mysql-workbench/mysql-workbench-6.3.9.ebuild +++ /dev/null @@ -1,103 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -GCONF_DEBUG="no" - -PYTHON_COMPAT=( python2_7 ) -PYTHON_REQ_USE="sqlite" - -inherit gnome2 eutils flag-o-matic python-single-r1 cmake-utils - -MY_P="${PN}-community-${PV}-src" - -DESCRIPTION="MySQL Workbench" -HOMEPAGE="https://www.mysql.com/products/workbench/" -SRC_URI="mirror://mysql/Downloads/MySQLGUITools/${MY_P}.tar.gz https://github.com/antlr/website-antlr3/blob/gh-pages/download/antlr-3.4-complete.jar?raw=true -> antlr-3.4-complete.jar" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" -IUSE="debug doc gnome-keyring" -REQUIRED_USE="${PYTHON_REQUIRED_USE}" - -# glibc: deprecated mutex functions, removed in 2.36.0 -CDEPEND="${PYTHON_DEPS} - dev-libs/glib:2 - dev-cpp/atkmm - dev-cpp/pangomm - >=dev-cpp/glibmm-2.14:2 - dev-cpp/gtkmm:3.0 - dev-libs/atk - x11-libs/pango - x11-libs/gtk+:3 - gnome-base/libglade:2.0 - >=x11-libs/cairo-1.5.12[glib,svg] - dev-libs/libsigc++:2 - >=dev-libs/boost-1.55.0[nls] - >=dev-cpp/ctemplate-0.95 - >=dev-libs/libxml2-2.6.2:2 - dev-libs/libzip - >=virtual/mysql-5.6 - dev-libs/libpcre[cxx] - >=sci-libs/gdal-1.11.1-r1[-mdb] - virtual/opengl - || ( sys-libs/e2fsprogs-libs dev-libs/ossp-uuid ) - dev-libs/tinyxml[stl] - >=dev-db/mysql-connector-c++-1.1.8 - dev-db/vsqlite++ - || ( dev-db/libiodbc dev-db/unixODBC ) - gnome-keyring? ( gnome-base/libgnome-keyring ) - dev-python/pexpect - >=dev-python/paramiko-1.7.4 - " - -RDEPEND="${CDEPEND} - app-admin/sudo - >=sys-apps/net-tools-1.60_p20120127084908" - -DEPEND="${CDEPEND} - dev-lang/swig - virtual/jre - virtual/pkgconfig" - -S="${WORKDIR}"/"${MY_P}" - -PATCHES=( - "${FILESDIR}/${PN}-6.2.5-wbcopytables.patch" - "${FILESDIR}/${PN}-6.3.9-mariadb-json.patch" -) - -src_unpack() { - unpack ${PN}-community-${PV}-src.tar.gz -} - -src_prepare() { - sed -i -e '/target_link_libraries/ s/sqlparser.grt/sqlparser.grt sqlparser/' \ - modules/db.mysql.sqlparser/CMakeLists.txt - - ## remove hardcoded CXXFLAGS - sed -i -e 's/-O0 -g3//' ext/scintilla/gtk/CMakeLists.txt || die - - ## package is very fragile... - strip-flags - - cmake-utils_src_prepare -} - -src_configure() { - append-cxxflags -std=c++11 - local mycmakeargs=( - -DUSE_GNOME_KEYRING="$(usex gnome-keyring)" - -DLIB_INSTALL_DIR="/usr/$(get_libdir)" - -DPYTHON_INCLUDE_DIR="$(python_get_includedir)" - -DPYTHON_LIBRARY="$(python_get_library_path)" - -DMySQL_CONFIG_PATH="/usr/bin/mysql_config" - ) - ANTLR_JAR_PATH="${DISTDIR}/antlr-3.4-complete.jar" cmake-utils_src_configure -} - -src_compile() { - # Work around parallel build issues, bug 507838 - cmake-utils_src_compile -j1 -} diff --git a/dev-db/mysql-workbench/mysql-workbench-8.0.13.ebuild b/dev-db/mysql-workbench/mysql-workbench-8.0.13.ebuild index df7e12b90286..ab3a1f466f1f 100644 --- a/dev-db/mysql-workbench/mysql-workbench-8.0.13.ebuild +++ b/dev-db/mysql-workbench/mysql-workbench-8.0.13.ebuild @@ -89,19 +89,20 @@ src_prepare() { } src_configure() { + if has_version dev-db/libiodbc ; then + IODBC="-DIODBC_CONFIG_PATH=/usr/bin/iodbc-config" + fi + append-cxxflags -std=c++11 ANTLR_JAR_PATH="${DISTDIR}/antlr-4.7.1-complete.jar" local mycmakeargs=( -DWITH_ANTLR_JAR=${ANTLR_JAR_PATH} - -DUSE_GNOME_KEYRING="$(usex gnome-keyring)" -DLIB_INSTALL_DIR="/usr/$(get_libdir)" + -DIODBC_INCLUDE_PATH="/usr/include/iodbc" + ${IODBC} -DPYTHON_INCLUDE_DIR="$(python_get_includedir)" -DPYTHON_LIBRARY="$(python_get_library_path)" -DMySQL_CONFIG_PATH="/usr/bin/mysql_config" ) cmake-utils_src_configure } - -#src_compile() { -# cmake-utils_src_compile -j1 -#} diff --git a/dev-db/mysql/Manifest b/dev-db/mysql/Manifest index b4e6479bf20a..11b19c8e6fa4 100644 --- a/dev-db/mysql/Manifest +++ b/dev-db/mysql/Manifest @@ -7,7 +7,6 @@ AUX my.cnf.distro-server 994 BLAKE2B 41dceff58edf748f9f60ac3c0d1682d2fc2f026fc1f DIST mysql-5.5.61.tar.gz 21027098 BLAKE2B b7589f632a211349fc34cec94e333b878e07113969bf5cf6f78cd37435d95b15c03eaf188ed09768033b182de125c9f018a5fe902094f17ab891f94cab9de6dd SHA512 978384915c145ec8f0d85deb764154d8d4a9764f2d342928bda6ad43a00bc110aa888895416d2ba5684a4432e433037990dd3fe8c5caf024faa487bc2e153f49 DIST mysql-5.5.62.tar.gz 21111902 BLAKE2B f1cbb1c6b4dfac11c2c517a57a5c6216ce43766cc247b3c9b387326a7f6446cbc21ddb42bd95afa658c3b0ed2568a29563ceea248c6ec63364ce210119d39cc2 SHA512 1080a3989c20bbbfe98739f99dacd183f2087ceee5147845852144240386808568af4c908ecdbccdcb6114000ab760ed7257492834d50018eff9520260fd91ce DIST mysql-5.6.40.tar.gz 32083035 BLAKE2B efcc078341bae239df28ac0504111aa34926885ae47edb5011352b56552a5a3abd1f824f8cbdc23d8d667592b8f5510946ef18c3efa61865dbbc7f4bb8a2d4a0 SHA512 c8e458b4cd34cae87f1b088ed2188bd00de8cdc42709d5964e82fa2e4aaecfc12a75ae006c54ffa0d3d286fbdef9704d0cbb83436437d5705fb8921d960e758c -DIST mysql-5.6.41.tar.gz 32111985 BLAKE2B 5ccad59333525b354db4fa892857e237cddf8fe1a4d289c6e410c31d6142a71d3ce4dab8d954fa9932ec1f83b50e8eccd5845e082deaaa56f1c0c5e21b2ce6c0 SHA512 a62d7a68c6bb49de33f8c9e634bce53cb453a87238e92967115e8e928fa9ed291727b8bd5a5271a0b5b634d957eb310c745edfb14b6be1deb9099bb757aa2cff DIST mysql-5.6.42.tar.gz 32201731 BLAKE2B c573328b37225dac090c32178f90e1419fc1848612e304bddc11eafdd48228981a846857be680978b72ef76edbd5d2422a98b5d20b4d082fabcc2b072e2b8fde SHA512 3104e6a3145a119f2b012de6af2a92fc37134aa402b889a562f5fc2391705d0bc2f718166c5fa8387d973fff5ecd9544c8b389b6d0c81d98bdcaf2acfb9b55e8 DIST mysql-boost-5.7.23.tar.gz 49025014 BLAKE2B 669f10779bc2cda866d6bd876b4efe55fb4b0c796f596f66513a3ca85f322e2a03e9879eecd72a69729a0cb71d408c46cdd9086ae456712b4adff6ae7c584c97 SHA512 e4317f89d108a68652cd95e41ffd670c37b6663aabd6af3985d18052fb7e8d8879b5822399caf9091cecc0a949ec588c121c87cfd60d69941f68d0ecbedd0953 DIST mysql-boost-5.7.24.tar.gz 49110448 BLAKE2B 1cf64712d84cbb2dfd31f2a530470b6f7cbf5ae9107106d86705575ea9739fa582e1f079447d9a58c4762fffc636d69e448ebdec9172ee15dc09245bc39c3525 SHA512 bbd411e15cd9e6053a353146808b74881d2d950f09e94794a699e7604dadf767b58b661a8321fbe1424f2c2e6cfc3adaa388242183e759082eae47b64cbfbcde @@ -15,10 +14,9 @@ DIST mysql-extras-20180804-2323Z.tar.bz2 322215 BLAKE2B cca9e502e375bf4347333586 DIST mysql-extras-20181023-0012Z.tar.bz2 327834 BLAKE2B 91a82cbcecbbbe94933da0d8c26cdfee0171602785b2f717fbfec7da422f0ec36f26e897a3c21695f4748017d36c9956cbef03d0852246468368b812a604df82 SHA512 94996708a9da4d55c3aab74f75b74fa4aa80e3fbbb87d9dfe6c1596a934aceed466b7c853e38d9b63f59660763ccef617defc4e6e8770451c21a252250f4e7fa DIST mysql-extras-20181111-2314Z.tar.bz2 329013 BLAKE2B fa928b699ef0e6f092e028fc1331cc33953d9855e784998fb2f8c1f1712e9424567b2d2b6b7c5ca375f178309522b3596fcba7babdbed7c85b87ae4b85e5db22 SHA512 5cc4d16c5c6b0491fb9532469ec0b9c65e27e1514d561ea4180845a1578fc8e7ba00fca479b9a784646846f5147e4f676340f639b78c3f5ee140dda26bd5bff2 EBUILD mysql-5.5.61.ebuild 25515 BLAKE2B 2e8a5ff36ec6003ff7e4d746157afe8af9d462537d2808ab6cfe4d469cee1a594df38aafddcb010d0157335b42253f12474614f4eec85729f79d2e05a28cb8b3 SHA512 9ea05d2509c6693d71c5ce048e11393a77cf50570fa19f40500900284b9e5e5d1097de5c82fa518058ea773ac8fd30131a9c153b4effb371f4ce04f454e8867e -EBUILD mysql-5.5.62.ebuild 25662 BLAKE2B 88668c4e8deda3bb3cd4fd000457f0eade2b35b60bfb3ed82c56dfaa7e4e092aa7115ba997061086a958c72575042f846774ad34a9f9f71fdf87f2a8387686f0 SHA512 1c0360dd22cdc207775fd2bfdf37baebb25736ee15311ae946b62a4d557ffaceee5a2b33bc9c24bf8af8fcb18cffa9cf65304438eb49bd355e7cfa7e5df5c030 +EBUILD mysql-5.5.62.ebuild 25693 BLAKE2B abb1400994767e1a29259fda70531e27e9160b849a6228802baa440f8a5c8244393cb155ac9985f04353c8b35516e653a563c2eb84b72a714c5ee81d016e5d27 SHA512 759b82802fdeb7840b0da3e4ef1d6e7b1f32d7bd815ba780b11e57143b52bcb7eb483c008d25670f4626968028a46f7080abff247e5d2047f6b500ac67888ad4 EBUILD mysql-5.6.40-r2.ebuild 25714 BLAKE2B c78b1d8b2a77d095302f7e203c3ee6c0c2014770944072b87bd77f97972fcb6db52b05088adacbc821ce2e8f3dbb780bd40d850e381b866458b0d530fd11ea5d SHA512 b6301834c7813714f18f9763922d10e6faa33675705ba479c6d76e3c5673d903b0683f64a8281836bd6be396f398ed1bee14f9e6c8ddfe30b84ad1ac66a8be48 -EBUILD mysql-5.6.41.ebuild 25721 BLAKE2B babbbcf2b0004de259843b201af56ed5513d3c61e484164aff8ff8dc8266bad491628b5f4805a2deda373af6a39e0b086e23dec53799546e35dbb4f51a3c645e SHA512 5933bf59434bf7fdc2ff8d119d2c1cf58284bfda94ec2adbd4340e2958a6ac325bcbdd2106f538e26bcddf8c93ac3d9d0646757ba3e4c32f7dbc5336320a6df1 -EBUILD mysql-5.6.42.ebuild 25935 BLAKE2B 76cbf8b06b40ed74841ad1f10a31a2ea46f0a7f13cfddc65a8756ba222c3c893a92e0cb1a523120400b10911a56ff506fc94cfae0635711e409d4c9b0a826cfe SHA512 2125f86ca1245b86f41438a2fb4c08076e71f11ef8ca6365e48b979d075b9b24bf5c20163a38ee53029dada7f45a3e4ae71310f13e9eef5c97828f68db23df2e +EBUILD mysql-5.6.42.ebuild 25955 BLAKE2B de075ce30850d5f2fe17a5aaf02e5888d62634028a042105ac4bff9a90dbec7803c6b1d348e35267be6b4b12afa8f12f4a02f969c536890bf7970cb4e466907c SHA512 56aa82fe363e091a6db7b307318f14ff93ded6eba2a61142eb3e026205740b02dca8587e23accf2ff757e941b0d4b2a0e7ab386b879d7cee35976facbb7aec94 EBUILD mysql-5.7.23-r2.ebuild 30078 BLAKE2B 57bf58e862639e651335a10a8c4dfc5f7f0f76bfb0545414d697875906d917131fedd3e9d0e58f57b886d8cae55adbd2a104ee3632d49b4ba0669b93a1a68bff SHA512 dfbb88e79b717ceb615246a806123ee2d30c1632cfb40d0bb9e04a9204565a92afbb2b37245794c15985e99a60d2adc46723b97e455fb85e137079d6192b148c -EBUILD mysql-5.7.24.ebuild 30085 BLAKE2B bd5de2f76e2c2b908a2b7f316ead2f7daa6b652394fcfe84d099f006b9b82f8225c6babdce75db77370765d6ae26bbecaa433d86299477f2b58917fd87bf292c SHA512 b60aa816475f58f8603249d693d107115fb6778eeb8b5ee3335328bfcad19140344247dc9fba9bc0a13bcf743a90a1f293a045a492da3072fbceb63c16fb15c7 +EBUILD mysql-5.7.24.ebuild 30386 BLAKE2B ecf0c03821af6a21467b53a02e6e0a0ae2f7e5d267ff4669266d34cdb9fddb7defbd8a4013dd3a1f8a103c84da4c6eddafae06fc1ebc4bf94c9769e64dbbfc1b SHA512 f8b372573d82b513ea1d82a1e00d728501c483ef949a2411c05ac93a8d2d90162d6992b58d3a101fefcbac541f9f37dcfa2263ac49231839d338af158557153f MISC metadata.xml 1539 BLAKE2B 0bc66c5855bd1f4353a7f0b551229d68a940478687b4f38653f973e4a5cfcb946c86bdc2d8318aa96aba43598eb476b995005f26727dfa176ced00fbe2b129a1 SHA512 bc0ce8a3de5e55d954f65eec657930af069d3550f485334f80dfa4c6d17c6298d0609d1ba4fe8b6c988f8ad007858f147c17f1354c207891ac1a062a36af50ad diff --git a/dev-db/mysql/mysql-5.5.62.ebuild b/dev-db/mysql/mysql-5.5.62.ebuild index 630c5076e7d4..cb229697802e 100644 --- a/dev-db/mysql/mysql-5.5.62.ebuild +++ b/dev-db/mysql/mysql-5.5.62.ebuild @@ -476,7 +476,8 @@ src_test() { # segfaults at random under Portage only, suspect resource limits. local t - for t in main.mysql_client_test main.mysql_client_test_nonblock \ + for t in federated.federated_plugin \ + main.mysql_client_test main.mysql_client_test_nonblock \ main.mysql_client_test_comp rpl.rpl_extra_col_master_myisam \ main.mysqlhotcopy_archive main.mysqlhotcopy_myisam main.openssl_1 \ rpl.rpl_semi_sync_uninstall_plugin ; do diff --git a/dev-db/mysql/mysql-5.6.42.ebuild b/dev-db/mysql/mysql-5.6.42.ebuild index a7c2b5d4d840..1ec7ebd88269 100644 --- a/dev-db/mysql/mysql-5.6.42.ebuild +++ b/dev-db/mysql/mysql-5.6.42.ebuild @@ -37,7 +37,7 @@ RESTRICT="libressl? ( test )" REQUIRED_USE="?? ( tcmalloc jemalloc ) static? ( yassl )" -KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris" +KEYWORDS="alpha amd64 arm ~hppa ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris" # Shorten the path because the socket path length must be shorter than 107 chars # and we will run a mysql server during test phase @@ -93,6 +93,7 @@ COMMON_DEPEND=" " DEPEND="virtual/yacc static? ( sys-libs/ncurses[static-libs] ) + test? ( dev-perl/JSON ) || ( >=sys-devel/gcc-3.4.6 >=sys-devel/gcc-apple-4.0 ) ${COMMON_DEPEND}" RDEPEND="selinux? ( sec-policy/selinux-mysql ) diff --git a/dev-db/mysql/mysql-5.7.24.ebuild b/dev-db/mysql/mysql-5.7.24.ebuild index d42e62682c48..f178d936fc9a 100644 --- a/dev-db/mysql/mysql-5.7.24.ebuild +++ b/dev-db/mysql/mysql-5.7.24.ebuild @@ -34,7 +34,7 @@ RESTRICT="libressl? ( test )" REQUIRED_USE="?? ( tcmalloc jemalloc ) static? ( yassl )" -KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris" +KEYWORDS="alpha amd64 arm ~hppa ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris" # Shorten the path because the socket path length must be shorter than 107 chars # and we will run a mysql server during test phase @@ -111,6 +111,7 @@ DEPEND="${COMMON_DEPEND} experimental? ( net-libs/rpcsvc-proto ) ) static? ( sys-libs/ncurses[static-libs] ) + test? ( dev-perl/JSON ) " RDEPEND="${COMMON_DEPEND} !dev-db/mariadb !dev-db/mariadb-galera !dev-db/percona-server !dev-db/mysql-cluster @@ -544,10 +545,16 @@ src_test() { # Unstable tests # - main.xa_prepared_binlog_off: https://bugs.mysql.com/bug.php?id=83340 - for t in main.xa_prepared_binlog_off ; do + # - rpl.rpl_non_direct_stm_mixing_engines: MDEV-14489 + for t in main.xa_prepared_binlog_off rpl.rpl_non_direct_stm_mixing_engines ; do _disable_test "$t" "Unstable test" done + if ! use amd64 ; then + # fixed in >=mysql-8 via commit 0a417e84 + _disable_test "gis.gis_bugs_crashes" "Unstable results on non-amd64 architectures due to floating-point operation" + fi + if use numa && use kernel_linux ; then # bug 584880 if ! linux_config_exists || ! linux_chkconfig_present NUMA ; then diff --git a/dev-db/percona-server/Manifest b/dev-db/percona-server/Manifest index b62ff3a18f58..12450ee7c23f 100644 --- a/dev-db/percona-server/Manifest +++ b/dev-db/percona-server/Manifest @@ -9,8 +9,12 @@ DIST percona-server-5.6.40-84.0.tar.gz 52684007 BLAKE2B 11658be2319880f7e8815c7b DIST percona-server-5.6.41-84.1.tar.gz 52736448 BLAKE2B 1ec5e17f08274caa3882f829f25bbf74a3b37d2ba208f62376106f0d89e5470f461f7852e365d5da9503d5500702e28f08461e5aa0c5ae6b1a30a0e98dbb426b SHA512 60783154f9ab097083a484c34e584b396eeba4aa53dc8616c467ca9c85cc626be08e3165740703453cc4fb35f3af94ac34260f1e2bb133d60f832661251cbb3c DIST percona-server-5.7.23-23.tar.gz 79165468 BLAKE2B a460ac88886fa2be65abb0520d541db54413274599e02d8de3a01a68f8c3da431bfe819eb32bf80518fdff69bbcfae90ee089d2a096ee6210f9e4efe60dbab25 SHA512 351d40d3f7c3fe72f733443a6ef3902e1455390835e52e73d7eb48698ac6f2363e07811d40b22af5b1c7607622017d613279581940522c5e99660fac89d4d4c6 DIST percona-server-5.7.23-24.tar.gz 81641623 BLAKE2B f23e8787f7c3b38517e22b8b12da38f549b03343091cdb7ff17b0b719036a10aa954f30162fdf032fa4813f6ee59881fa9334f7ce6d1a646fa2c338b4bf3f2cb SHA512 9449cf4f5e6b9abb062b17652a258ddf99397d82efd89c9b0c1b20ddfef3d3531c2c1b71cb91664ea6ee897c136310af58fcc900d5f80d37e8eb73a2a616fa41 +DIST percona-server-5.7.23-25.tar.gz 81600024 BLAKE2B 5db3f3abe5a88b4178bb7f93801a8169994a75caa3677e7653a169e380c221a9bd8c390254207b0104e3b74bd751476720ba25f65cd965d7e4b0ad86174f749d SHA512 1ce27b4a08f1e882e8635c688d44f593d95bfe30dc0678a0e6779381e80c081bf147047b40d990613893cfcb5e0d870ac3fcec1f24cd52b64efd0ed78ed05ccb +DIST percona-server-5.7.24-27.tar.gz 81757023 BLAKE2B 80c28ca3195874133b127ba7268aa6a6af89f4d1a38ee34f0a761e8c35b8da2c8a94781e7672e241164b9887549846875fc294e36e4229f8e2c4d3f65562350e SHA512 f2a5af3c75577da911bcee5bf962e5b6d723ede1a21f19f9211cda1a7e37a3523d904ea0af6fa9787418959c8824c0cf48726b8b0a426b81df01e5a51214b70d EBUILD percona-server-5.6.40.84.0.ebuild 31731 BLAKE2B fcceabd0a8346cdae61fc980ec94e87a1da1a2a4ea638a436eec4e9fdaccd9d2cd121b4b3373c45be7d3c1002d721fb25f600d84801db36c8fbe84bccae9edf4 SHA512 72979e5ee1be9ef964df0fce7a334baaa549879b566d44cc66106ce121d0043fa469417efef5e179c8e237d43d3650edb71fed96637196d1e6060986503ebe8a EBUILD percona-server-5.6.41.84.1.ebuild 31632 BLAKE2B e1c3c7c21210fe2208c5b66e141859f9cf2f77fc5f80d829b6b5f6fa653a6219c1f6bea0bbe1d18886ac57d8925911b8027ffdae20d99753baf56aafbfa8a03b SHA512 28746c8ea7b36a974d5e9004eea7b9b10f0cc3740d0752247ce99f876176e709357078da02f7682888bbcb006aaa995c301e9725aed78f420fc931fc53d7ada9 EBUILD percona-server-5.7.23.23-r1.ebuild 33819 BLAKE2B 9296bad3b209d628f7afe202f3cea1f14b6a23395ba2a3090e48cdf0d558b6c39a5fe54b6031b69deec5498c032d4253ead7f2a7848d1d4c3f75f143e5598b5e SHA512 27a6f6c5f7cafb3a1cb34bf411ac101bca18bf0a5b6ca0dbb05f0604cb07998f44899850f13f2b1418da90232723c391e74528668943860af10818a4a5429dc6 -EBUILD percona-server-5.7.23.24.ebuild 35267 BLAKE2B 3f01d4ca699c13f3fdb92bc29b1cfe0c704e942c47810734531ae842ef085c30841212219169c99dde6028f9611d6f16f74c5e8d0d1272d274df1ac29e4e0dbc SHA512 01af980140cb55480c1665bfb612f009853688a12e0bcf2ca17835877ef1c417cc418914796032c2b5a9c72be3fc26de243af5e09dd24103d44d3399be0580da +EBUILD percona-server-5.7.23.24.ebuild 35551 BLAKE2B 2e890be0c59ba78f1a08fa531e437aa28cb778fe6b7b71c1acc4b488f3a897dabaab2a68908a9297b084410e9627ed4b72307775646a881af1d8cf3a3ad07064 SHA512 ad98f7723ac8907d6cf885ddd19211a8b91e02eb72cf86f6a5e9e895aa6582faea28fb2abe2be58df012243347aa50f825ff9d00433914042c442b753ece999d +EBUILD percona-server-5.7.23.25.ebuild 35551 BLAKE2B 2e890be0c59ba78f1a08fa531e437aa28cb778fe6b7b71c1acc4b488f3a897dabaab2a68908a9297b084410e9627ed4b72307775646a881af1d8cf3a3ad07064 SHA512 ad98f7723ac8907d6cf885ddd19211a8b91e02eb72cf86f6a5e9e895aa6582faea28fb2abe2be58df012243347aa50f825ff9d00433914042c442b753ece999d +EBUILD percona-server-5.7.24.27.ebuild 35329 BLAKE2B c55fdfe8e6a642527223991fba51c1538d0b9bc1dab3aa371f205177f9f89790b96c14a0203269a87f6ee4ee950097bcee770b5f78e9d262025549b7aefe50fc SHA512 7450b66e5db69026a17f5da743948af9c23f5f759a2b5416ab077cc85c6e2141ee5aa312bf2bcbf77f30c0cd4e9f87ccf288469307038516cb8a6d4887f131c6 MISC metadata.xml 1490 BLAKE2B 8e9d17e8f501a86cf8293f3112ce98b920833fb8bf71d9c9ff3a8d6e452fd486cd2bb665ba9d7938dfc6b94551becdd498993c69f0647a6b64ccab417467d5e0 SHA512 8e75680e685703072f2628cf812e884eaf47974ed088f44445b8476caf38a97c91b525555f25b4279b73cae78be21af6f8dd173be51cc1e1b1e03a2c779355e5 diff --git a/dev-db/percona-server/percona-server-5.7.23.24.ebuild b/dev-db/percona-server/percona-server-5.7.23.24.ebuild index 9887b0d1eb4f..2c75a45d8e37 100644 --- a/dev-db/percona-server/percona-server-5.7.23.24.ebuild +++ b/dev-db/percona-server/percona-server-5.7.23.24.ebuild @@ -608,6 +608,8 @@ src_test() { # rocksdb.rocksdb: https://jira.percona.com/browse/PS-5034 # rocksdb.show_engine: https://jira.percona.com/browse/PS-5033 # rocksdb.show_table_status: https://jira.percona.com/browse/PS-5035 + # rpl.rpl_innodb_info_tbl_slave_tmp_tbl_mismatch: https://bugs.mysql.com/bug.php?id=89223 + # rpl.rpl_multi_source_mts_reset_worker_info: https://jira.percona.com/browse/PS-3786 # x.crud_insert_cast: https://jira.percona.com/browse/PS-5032 # x.insert_table_bad_column: https://jira.percona.com/browse/PS-5032 # x.insert_table_bad_numcolumns: https://jira.percona.com/browse/PS-5032 @@ -628,6 +630,8 @@ src_test() { rocksdb.rocksdb \ rocksdb.show_engine \ rocksdb.show_table_status \ + rpl.rpl_innodb_info_tbl_slave_tmp_tbl_mismatch \ + rpl.rpl_multi_source_mts_reset_worker_info \ x.crud_insert_cast \ x.insert_table_bad_column \ x.insert_table_bad_numcolumns \ diff --git a/dev-db/percona-server/percona-server-5.7.23.25.ebuild b/dev-db/percona-server/percona-server-5.7.23.25.ebuild new file mode 100644 index 000000000000..2c75a45d8e37 --- /dev/null +++ b/dev-db/percona-server/percona-server-5.7.23.25.ebuild @@ -0,0 +1,1066 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" +MY_EXTRAS_VER="20181017-2201Z" + +CMAKE_MAKEFILE_GENERATOR=emake + +# Python2 required for innodb_stress.innodb_stress{,_blob,_crash} test +PYTHON_COMPAT=( python2_7 ) + +# Keeping eutils in EAPI=6 for emktemp in pkg_config + +inherit eapi7-ver cmake-utils eutils flag-o-matic linux-info \ + prefix python-any-r1 toolchain-funcs user multilib-minimal + +MY_PV=$(ver_rs 3 '-') +MY_PN="Percona-Server" +MY_P="${PN}-${MY_PV}" +MY_MAJOR_PV=$(ver_cut 1-2) +MY_RELEASE_NOTES_URI="https://www.percona.com/doc/percona-server/5.7/release-notes/release-notes_index.html" + +SRC_URI="https://www.percona.com/downloads/${MY_PN}-${MY_MAJOR_PV}/${MY_PN}-${MY_PV}/source/tarball/${PN}-${MY_PV}.tar.gz + mirror://sourceforge/boost/boost_1_59_0.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" +fi + +HOMEPAGE="https://www.percona.com/software/mysql-database/percona-server" +DESCRIPTION="A fast, multi-threaded, multi-user SQL database server" +LICENSE="GPL-2" +SLOT="0/18" +IUSE="cjk client-libs cracklib debug experimental jemalloc latin1 libressl numa pam +perl profiling rocksdb + selinux +server static static-libs systemtap tcmalloc test tokudb tokudb-backup-plugin yassl" + +# Tests always fail when libressl is enabled due to hard-coded ciphers in the tests +RESTRICT="libressl? ( test )" + +REQUIRED_USE="?? ( tcmalloc jemalloc ) static? ( yassl )" + +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris" + +# Shorten the path because the socket path length must be shorter than 107 chars +# and we will run a mysql server during test phase +S="${WORKDIR}/mysql" + +if [[ "${MY_EXTRAS_VER}" == "live" ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/mysql-extras.git" + EGIT_CHECKOUT_DIR="${WORKDIR}/mysql-extras" + EGIT_CLONE_TYPE=shallow + MY_PATCH_DIR="${WORKDIR}/mysql-extras" +else + MY_PATCH_DIR="${WORKDIR}/mysql-extras-${MY_EXTRAS_VER}" +fi + +PATCHES=( + "${MY_PATCH_DIR}"/20001_all_fix-minimal-build-cmake-mysql-5.7.patch + "${MY_PATCH_DIR}"/20007_all_cmake-debug-werror-5.7.patch + "${MY_PATCH_DIR}"/20009_all_mysql_myodbc_symbol_fix-5.7.10.patch + "${MY_PATCH_DIR}"/20018_all_percona-server-5.7.23-without-clientlibs-tools.patch + "${MY_PATCH_DIR}"/20018_all_percona-server-5.7.23-fix-libressl-support.patch + "${MY_PATCH_DIR}"/20018_all_mysql-5.7.23-add-missing-gcc-8-fix.patch + "${MY_PATCH_DIR}"/20018_all_mysql-5.7.23-fix-grant_user_lock-a-root.patch + "${MY_PATCH_DIR}"/20018_all_mysql-5.7.23-round-off-test-values-for-same-output-on-all-architectures.patch + "${MY_PATCH_DIR}"/20018_all_mysql-5.7.23-fix-mips-ASM.patch + "${MY_PATCH_DIR}"/20018_all_percona-server-5.7.23-rocksdb-use-system-libs.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="net-misc/curl:= + >=sys-apps/sed-4 + >=sys-apps/texinfo-4.7-r1 + sys-libs/ncurses:0= + client-libs? ( >=sys-libs/zlib-1.2.3:0=[${MULTILIB_USEDEP},static-libs?] ) + !client-libs? ( + dev-db/mysql-connector-c[${MULTILIB_USEDEP},static-libs?] + >=sys-libs/zlib-1.2.3:0= + ) + jemalloc? ( dev-libs/jemalloc:0= ) + kernel_linux? ( + dev-libs/libaio:0= + sys-process/procps:0= + ) + server? ( + >=app-arch/lz4-0_p131:= + cjk? ( app-text/mecab:= ) + experimental? ( + dev-libs/libevent:= + dev-libs/protobuf:= + net-libs/libtirpc:= + ) + numa? ( sys-process/numactl ) + pam? ( virtual/pam:0= ) + rocksdb? ( + app-arch/zstd:= + dev-libs/protobuf:= + ) + tokudb? ( + app-arch/snappy:= + app-arch/xz-utils:= + ) + tokudb-backup-plugin? ( dev-util/valgrind ) + ) + systemtap? ( >=dev-util/systemtap-1.3:0= ) + tcmalloc? ( dev-util/google-perftools:0= ) + !yassl? ( + client-libs? ( + !libressl? ( >=dev-libs/openssl-1.0.0:0=[${MULTILIB_USEDEP},static-libs?] ) + libressl? ( dev-libs/libressl:0=[${MULTILIB_USEDEP},static-libs?] ) + ) + !client-libs? ( + !libressl? ( >=dev-libs/openssl-1.0.0:0= ) + libressl? ( dev-libs/libressl:0= ) + ) + ) +" +DEPEND="${COMMON_DEPEND} + || ( >=sys-devel/gcc-3.4.6 >=sys-devel/gcc-apple-4.0 ) + dev-libs/protobuf + virtual/yacc + server? ( + dev-libs/libevent + experimental? ( net-libs/rpcsvc-proto ) + ) + static? ( sys-libs/ncurses[static-libs] ) + test? ( + $(python_gen_any_dep 'dev-python/mysql-python[${PYTHON_USEDEP}]') + dev-perl/JSON + ) +" +RDEPEND="${COMMON_DEPEND} + !dev-db/mariadb !dev-db/mariadb-galera !dev-db/mysql !dev-db/mysql-cluster + client-libs? ( !dev-db/mariadb-connector-c[mysqlcompat] !dev-db/mysql-connector-c dev-libs/protobuf:= ) + selinux? ( sec-policy/selinux-mysql ) + server? ( !prefix? ( dev-db/mysql-init-scripts ) ) +" +# For other stuff to bring us in +# dev-perl/DBD-mysql is needed by some scripts installed by MySQL +PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )" + +python_check_deps() { + has_version "dev-python/mysql-python[${PYTHON_USEDEP}]" +} + +mysql_init_vars() { + MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR="${EPREFIX%/}/usr/share/mysql"} + 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_pretend() { + if use numa ; then + local CONFIG_CHECK="~NUMA" + + local WARNING_NUMA="This package expects NUMA support in kernel which this system does not have at the moment;" + WARNING_NUMA+=" Either expect runtime errors, enable NUMA support in kernel or rebuild the package without NUMA support" + + check_extra_config + fi +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]] ; then + local GCC_MAJOR_SET=$(gcc-major-version) + local GCC_MINOR_SET=$(gcc-minor-version) + # 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 + + use test && python-any-r1_pkg_setup + fi + + if has test ${FEATURES} && \ + use server && ! has userpriv ${FEATURES} ; then + eerror "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root." + fi + + # This should come after all of the die statements + enewgroup mysql 60 || die "problem adding 'mysql' group" + enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user" +} + +pkg_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 use client-libs && [[ -z ${REPLACING_VERSIONS} && -e "${EROOT%/}/usr/$(get_libdir)/libperconaserverclient.so" ]] ; then + libpath=$(readlink "${EROOT%/}/usr/$(get_libdir)/libperconaserverclient.so") + elog "Due to ABI changes when switching between different client libraries," + elog "revdep-rebuild must find and rebuild all packages linking to libperconaserverclient." + 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 [[ -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 + fi + + # Note about configuration change + einfo + elog "This version of ${PN} reorganizes the configuration from a single my.cnf" + elog "to several files in /etc/mysql/mysql.d." + elog "Please backup any changes you made to /etc/mysql/my.cnf" + elog "and add them as a new file under /etc/mysql/mysql.d with a .cnf extension." + elog "You may have as many files as needed and they are read alphabetically." + elog "Be sure the options have the appropriate section headers, i.e. [mysqld]." + einfo +} + +src_unpack() { + unpack ${A} + # Grab the patches + [[ "${MY_EXTRAS_VER}" == "live" ]] && S="${WORKDIR}/mysql-extras" git-r3_src_unpack + + mv -f "${WORKDIR}/${MY_P}" "${S}" || die +} + +src_prepare() { + cmake-utils_src_prepare + + if use jemalloc ; then + echo "TARGET_LINK_LIBRARIES(mysqld jemalloc)" >> "${S}/sql/CMakeLists.txt" || die + fi + + if use tcmalloc ; then + echo "TARGET_LINK_LIBRARIES(mysqld tcmalloc)" >> "${S}/sql/CMakeLists.txt" || die + fi + + # Don't build bundled xz-utils + if [[ -d "${S}/storage/tokudb/ft-index" ]] ; then + echo > "${S}/storage/tokudb/ft-index/cmake_modules/TokuThirdParty.cmake" || die + sed -i 's/ build_lzma//' "${S}/storage/tokudb/ft-index/ft/CMakeLists.txt" || die + elif [[ -d "${S}/storage/tokudb/PerconaFT" ]] ; then + 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 + fi + + if [[ -d "${S}/plugin/tokudb-backup-plugin" ]] && ! use tokudb-backup-plugin ; then + rm -r "${S}/plugin/tokudb-backup-plugin/Percona-TokuBackup" || die + fi + + # Remove bundled libs so we cannot accidentally use them + # We keep extra/lz4 directory because we use extra/lz4/xxhash.c via sql/CMakeLists.txt:394 + rm -rv \ + "${S}"/extra/protobuf \ + "${S}"/libevent \ + "${S}"/storage/rocksdb/third_party \ + "${S}"/storage/tokudb/PerconaFT/third_party \ + "${S}"/zlib \ + || die + + # Remove the centos and rhel selinux policies to support mysqld_safe under SELinux + if [[ -d "${S}/support-files/SELinux" ]] ; then + echo > "${S}/support-files/SELinux/CMakeLists.txt" || die + fi + + if use libressl ; then + sed -i 's/OPENSSL_MAJOR_VERSION STREQUAL "1"/OPENSSL_MAJOR_VERSION STREQUAL "2"/' \ + "${S}/cmake/ssl.cmake" || die + fi + + sed -i 's~ADD_SUBDIRECTORY(storage/ndb)~~' CMakeLists.txt || die +} + +src_configure(){ + # 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 tokudb ; then + # https://jira.percona.com/browse/PS-4399 + append-cxxflags -Wno-error=shadow + fi + + 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/mysql + -DINSTALL_PLUGINDIR=$(get_libdir)/mysql/plugin + -DINSTALL_SCRIPTDIR=share/mysql/scripts + -DINSTALL_MYSQLDATADIR="${EPREFIX%/}/var/lib/mysql" + -DINSTALL_SBINDIR=sbin + -DINSTALL_SUPPORTFILESDIR="${EPREFIX%/}/usr/share/mysql" + -DCOMPILATION_COMMENT="Gentoo Linux ${PF}" + -DWITH_UNIT_TESTS=$(usex test ON OFF) + ### TODO: make this system but issues with UTF-8 prevent it + -DWITH_EDITLINE=bundled + -DWITH_ZLIB=system + -DWITH_LIBWRAP=0 + -DENABLED_LOCAL_INFILE=1 + -DMYSQL_UNIX_ADDR="${EPREFIX%/}/var/run/mysqld/mysqld.sock" + -DWITH_DEFAULT_COMPILER_OPTIONS=0 + -DWITH_DEFAULT_FEATURE_SET=0 + # 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) + -DWITH_CURL=system + -DWITH_BOOST="${WORKDIR}/boost_1_59_0" + -DWITH_PROTOBUF=system + ) + + if use test ; then + mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mysql/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+=( + -DENABLE_DTRACE=$(usex systemtap) + ) + else + mycmakeargs+=( + -DWITHOUT_TOOLS=1 + -DWITH_READLINE=1 + -DENABLE_DTRACE=0 + ) + fi + + if multilib_is_native_abi && use server ; then + mycmakeargs+=( + -DWITH_LIBEVENT=system + -DWITH_LZ4=system + -DWITH_MECAB=$(usex cjk system OFF) + -DWITH_NUMA=$(usex numa ON OFF) + -DWITH_RAPID=$(usex experimental ON OFF) + ) + + if [[ ( -n ${MYSQL_DEFAULT_CHARSET} ) && ( -n ${MYSQL_DEFAULT_COLLATION} ) ]] ; then + ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}" + ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}." + ewarn "You MUST file bugs without these variables set." + + mycmakeargs+=( + -DDEFAULT_CHARSET=${MYSQL_DEFAULT_CHARSET} + -DDEFAULT_COLLATION=${MYSQL_DEFAULT_COLLATION} + ) + elif ! use latin1 ; then + mycmakeargs+=( + -DDEFAULT_CHARSET=utf8 + -DDEFAULT_COLLATION=utf8_general_ci + ) + else + mycmakeargs+=( + -DDEFAULT_CHARSET=latin1 + -DDEFAULT_COLLATION=latin1_swedish_ci + ) + fi + + mycmakeargs+=( + -DEXTRA_CHARSETS=all + -DDISABLE_SHARED=$(usex static YES NO) + -DWITH_DEBUG=$(usex debug) + -DWITH_EMBEDDED_SERVER=OFF + ) + + if use profiling ; then + # Setting to OFF doesn't work: Once set, profiling options will be added + # to `mysqld --help` output via sql/sys_vars.cc causing + # "main.mysqld--help-notwin" test to fail + mycmakeargs+=( -DENABLED_PROFILING=ON ) + fi + + if use static ; then + mycmakeargs+=( -DWITH_PIC=1 ) + fi + + # Storage engines + mycmakeargs+=( + -DWITH_EXAMPLE_STORAGE_ENGINE=0 + -DWITH_ARCHIVE_STORAGE_ENGINE=1 + -DWITH_BLACKHOLE_STORAGE_ENGINE=1 + -DWITH_CSV_STORAGE_ENGINE=1 + -DWITH_FEDERATED_STORAGE_ENGINE=1 + -DWITH_HEAP_STORAGE_ENGINE=1 + -DWITH_INNOBASE_STORAGE_ENGINE=1 + -DWITH_INNODB_MEMCACHED=0 + -DWITH_MYISAMMRG_STORAGE_ENGINE=1 + -DWITH_MYISAM_STORAGE_ENGINE=1 + -DWITH_PARTITION_STORAGE_ENGINE=1 + -DWITH_ROCKSDB=$(usex rocksdb 1 0) + $(usex tokudb '' -DWITHOUT_TOKUDB=1) + ) + + if use tokudb ; then + # TokuDB Backup plugin requires valgrind unconditionally + mycmakeargs+=( + $(usex tokudb-backup-plugin '' -DTOKUDB_BACKUP_DISABLED=1) + ) + fi + + else + mycmakeargs+=( + -DWITHOUT_SERVER=1 + -DWITH_EMBEDDED_SERVER=OFF + -DEXTRA_CHARSETS=none + ) + 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 +} + +# Official test instructions: +# ulimit -n 16500 && \ +# USE='latin1 perl server' \ +# FEATURES='test userpriv -usersandbox' \ +# ebuild percona-server-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 Percona-Server 5.7 for now and are believed to be + # false positives or are known to fail: + # + # encryption.innodb_encryption_tables: https://jira.percona.com/browse/PS-5036 + # group_replication.gr_communication_configuration: requires a valid local network address + # which clashes with FEATURES=network-sandbox + # main.mysqlshow: https://jira.percona.com/browse/PS-5017 + # main.percona_bug1289599: https://jira.percona.com/browse/PS-2072 + # keyring_vault.keyring_vault_timeout: requires network access to vault.public-ci.percona.com + # which clashes with FEATURES=network-sandbox + # perfschema.show_sanity: https://jira.percona.com/browse/PS-5018 + # rocksdb.rocksdb: https://jira.percona.com/browse/PS-5034 + # rocksdb.show_engine: https://jira.percona.com/browse/PS-5033 + # rocksdb.show_table_status: https://jira.percona.com/browse/PS-5035 + # rpl.rpl_innodb_info_tbl_slave_tmp_tbl_mismatch: https://bugs.mysql.com/bug.php?id=89223 + # rpl.rpl_multi_source_mts_reset_worker_info: https://jira.percona.com/browse/PS-3786 + # x.crud_insert_cast: https://jira.percona.com/browse/PS-5032 + # x.insert_table_bad_column: https://jira.percona.com/browse/PS-5032 + # x.insert_table_bad_numcolumns: https://jira.percona.com/browse/PS-5032 + # x.insert_table_bad_column_type: https://jira.percona.com/browse/PS-5032 + # x.insert_table: https://jira.percona.com/browse/PS-5032 + # x.update_crud_arrayappend_o: https://jira.percona.com/browse/PS-5032 + # x.update_crud_arrayinsert_o: https://jira.percona.com/browse/PS-5032 + # + local t + + for t in \ + encryption.innodb_encryption_tables \ + group_replication.gr_communication_configuration \ + main.mysqlshow \ + main.percona_bug1289599 \ + keyring_vault.keyring_vault_timeout \ + perfschema.show_sanity \ + rocksdb.rocksdb \ + rocksdb.show_engine \ + rocksdb.show_table_status \ + rpl.rpl_innodb_info_tbl_slave_tmp_tbl_mismatch \ + rpl.rpl_multi_source_mts_reset_worker_info \ + x.crud_insert_cast \ + x.insert_table_bad_column \ + x.insert_table_bad_numcolumns \ + x.insert_table_bad_column_type \ + x.insert_table \ + x.update_crud_arrayappend_o \ + x.update_crud_arrayinsert_o \ + ; do + _disable_test "$t" "False positives in Gentoo / Known bug" + done + + if use numa && use kernel_linux ; then + # bug 584880 + if ! linux_config_exists || ! linux_chkconfig_present NUMA ; then + for t in sys_vars.innodb_numa_interleave_basic ; do + _disable_test "$t" "Test $t requires system with NUMA support" + done + fi + fi + + if use tokudb ; then + if [[ -f "/sys/kernel/mm/transparent_hugepage/enabled" ]] ; then + if grep -q -E "\[always\]" /sys/kernel/mm/transparent_hugepage/enabled &>/dev/null ; then + # TokuDB refuses to start when transparent hugepages are enabled + for t in \ + tokudb.rows-32m-rand-insert \ + tokudb.savepoint-2 \ + tokudb.savepoint-3 \ + tokudb.savepoint-4 \ + tokudb.savepoint-1078 \ + tokudb.savepoint-1078-2 \ + tokudb.savepoint-1078-3 \ + tokudb.savepoint-1078-4 \ + ; do + _disable_test "$t" "TokuDB will not work with transparent hugepages enabled" + done + fi + else + einfo "Cannot determine transparent hugepage status." + einfo "Please note that TokuDB refuses to start when transparent hugepages are enabled!" + fi + fi + + if ! use latin1 ; then + # The following tests will fail if DEFAULT_CHARSET + # isn't set to latin1: + for t in \ + binlog.binlog_mysqlbinlog_filter \ + binlog.binlog_xa_prepared_disconnect \ + funcs_1.is_columns_mysql \ + funcs_1.is_tables_mysql \ + funcs_1.is_triggers \ + innodb.innodb_pagesize_max_recordsize \ + innodb.innodb-system-table-view \ + innodb.mysqldump_max_recordsize \ + main.mysql_client_test \ + main.mysqld--help-notwin \ + main.type_string \ + main.information_schema \ + perfschema.binlog_edge_mix \ + perfschema.binlog_edge_stmt \ + rpl.rpl_xa_survive_disconnect \ + rpl.rpl_xa_survive_disconnect_lsu_off \ + rpl.rpl_xa_survive_disconnect_table \ + ; do + _disable_test "$t" "requires DEFAULT_CHARSET=latin1 but USE=-latin1 is set" + done + fi + + # Try to increase file limits to increase test coverage + if ! ulimit -n 16500 1>/dev/null 2>&1 ; then + # Upper limit comes from parts.partition_* tests + ewarn "For maximum test coverage please raise open file limit to 16500 (ulimit -n 16500) before calling the package manager." + + if ! ulimit -n 4162 1>/dev/null 2>&1 ; then + # Medium limit comes from '[Warning] Buffered warning: Could not increase number of max_open_files to more than 3000 (request: 4162)' + ewarn "For medium test coverage please raise open file limit to 4162 (ulimit -n 4162) before calling the package manager." + + if ! ulimit -n 3000 1>/dev/null 2>&1 ; then + ewarn "For minimum test coverage please raise open file limit to 3000 (ulimit -n 3000) before calling the package manager." + else + einfo "Will run test suite with open file limit set to 3000 (minimum test coverage)." + fi + else + einfo "Will run test suite with open file limit set to 4162 (medium test coverage)." + fi + else + einfo "Will run test suite with open file limit set to 16500 (best test coverage)." + fi + + # run mysql-test tests + perl mysql-test-run.pl --force --vardir="${T}/var-tests" --reorder --skip-test=tokudb --skip-test-list="${T}/disabled.def" + retstatus_tests=$? + + popd &>/dev/null || die + + # Cleanup is important for these testcases. + pkill -9 -f "${S}/ndb" 2>/dev/null + pkill -9 -f "${S}/sql" 2>/dev/null + + local failures="" + [[ $retstatus_unit -eq 0 ]] || failures="${failures} test-unit" + [[ $retstatus_tests -eq 0 ]] || failures="${failures} tests" + + [[ -z "$failures" ]] || die "Test failures: $failures" + einfo "Tests successfully completed" +} + +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/mysql_version.h ) + + # wrap the config scripts + MULTILIB_CHOST_TOOLS=( /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 + + # 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-5.7" "${TMPDIR}/my.cnf" || die + eprefixify "${TMPDIR}/my.cnf" + doins "${TMPDIR}/my.cnf" + insinto "${MY_SYSCONFDIR#${EPREFIX}}/mysql.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 + + if use tokudb ; then + # Remove some unwanted files + rm -fv \ + "${ED%/}"/usr/COPYING.AGPLv3 \ + "${ED%/}"/usr/COPYING.GPLv2 \ + "${ED%/}"/usr/PATENTS \ + "${ED%/}"/usr/README.md \ + || die + fi + fi + + #Remove mytop if perl is not selected + [[ -e "${ED}/usr/bin/mytop" ]] && ! use perl && rm -f "${ED}/usr/bin/mytop" +} + +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 "${EROOT%/}/$MYSQL_TMPDIR" ]] ; then + einfo "Creating MySQL tmpdir $MYSQL_TMPDIR" + install -d -m 770 -o mysql -g mysql "${EROOT%/}/$MYSQL_TMPDIR" + fi + + if [[ ! -d "${EROOT%/}/$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 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 + echo "USE mysql;" >"${sqltmp}" + "${EROOT%/}/usr/bin/mysql_tzinfo_to_sql" "${EROOT%/}/usr/share/zoneinfo" >> "${sqltmp}" 2>/dev/null + chown mysql "${sqltmp}" || die + + # --initialize-insecure will not set root password + # --initialize would set a random one in the log which we don't need as we set it ourselves + local cmd=( "${EROOT%/}/usr/sbin/mysqld" "--initialize-insecure" "--init-file='${sqltmp}'" ) + 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} \ + $(use prefix || echo --user=mysql) \ + --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="ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '${MYSQL_ROOT_PASSWORD}'" + "${EROOT%/}/usr/bin/mysql" \ + --no-defaults \ + "--socket=${socket}" \ + -hlocalhost \ + -e "${sql}" + eend $? + + # Stop the server and cleanup + einfo "Stopping the server ..." + kill $(< "${pidfile}" ) + rm -f "${sqltmp}" + wait %1 + einfo "Done" +} diff --git a/dev-db/percona-server/percona-server-5.7.24.27.ebuild b/dev-db/percona-server/percona-server-5.7.24.27.ebuild new file mode 100644 index 000000000000..a980f25cd9d7 --- /dev/null +++ b/dev-db/percona-server/percona-server-5.7.24.27.ebuild @@ -0,0 +1,1062 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" +MY_EXTRAS_VER="20181017-2201Z" + +CMAKE_MAKEFILE_GENERATOR=emake + +# Python2 required for innodb_stress.innodb_stress{,_blob,_crash} test +PYTHON_COMPAT=( python2_7 ) + +# Keeping eutils in EAPI=6 for emktemp in pkg_config + +inherit eapi7-ver cmake-utils eutils flag-o-matic linux-info \ + prefix python-any-r1 toolchain-funcs user multilib-minimal + +MY_PV=$(ver_rs 3 '-') +MY_PN="Percona-Server" +MY_P="${PN}-${MY_PV}" +MY_MAJOR_PV=$(ver_cut 1-2) +MY_RELEASE_NOTES_URI="https://www.percona.com/doc/percona-server/5.7/release-notes/release-notes_index.html" + +SRC_URI="https://www.percona.com/downloads/${MY_PN}-${MY_MAJOR_PV}/${MY_PN}-${MY_PV}/source/tarball/${PN}-${MY_PV}.tar.gz + mirror://sourceforge/boost/boost_1_59_0.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" +fi + +HOMEPAGE="https://www.percona.com/software/mysql-database/percona-server" +DESCRIPTION="A fast, multi-threaded, multi-user SQL database server" +LICENSE="GPL-2" +SLOT="0/18" +IUSE="cjk client-libs cracklib debug experimental jemalloc latin1 libressl numa pam +perl profiling rocksdb + selinux +server static static-libs systemtap tcmalloc test tokudb tokudb-backup-plugin yassl" + +# Tests always fail when libressl is enabled due to hard-coded ciphers in the tests +RESTRICT="libressl? ( test )" + +REQUIRED_USE="?? ( tcmalloc jemalloc ) static? ( yassl )" + +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris" + +# Shorten the path because the socket path length must be shorter than 107 chars +# and we will run a mysql server during test phase +S="${WORKDIR}/mysql" + +if [[ "${MY_EXTRAS_VER}" == "live" ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/mysql-extras.git" + EGIT_CHECKOUT_DIR="${WORKDIR}/mysql-extras" + EGIT_CLONE_TYPE=shallow + MY_PATCH_DIR="${WORKDIR}/mysql-extras" +else + MY_PATCH_DIR="${WORKDIR}/mysql-extras-${MY_EXTRAS_VER}" +fi + +PATCHES=( + "${MY_PATCH_DIR}"/20001_all_fix-minimal-build-cmake-mysql-5.7.patch + "${MY_PATCH_DIR}"/20007_all_cmake-debug-werror-5.7.patch + "${MY_PATCH_DIR}"/20009_all_mysql_myodbc_symbol_fix-5.7.10.patch + "${MY_PATCH_DIR}"/20018_all_percona-server-5.7.23-without-clientlibs-tools.patch + "${MY_PATCH_DIR}"/20018_all_percona-server-5.7.23-fix-libressl-support.patch + "${MY_PATCH_DIR}"/20018_all_mysql-5.7.23-add-missing-gcc-8-fix.patch + "${MY_PATCH_DIR}"/20018_all_mysql-5.7.23-fix-grant_user_lock-a-root.patch + "${MY_PATCH_DIR}"/20018_all_mysql-5.7.23-round-off-test-values-for-same-output-on-all-architectures.patch + "${MY_PATCH_DIR}"/20018_all_mysql-5.7.23-fix-mips-ASM.patch + "${MY_PATCH_DIR}"/20018_all_percona-server-5.7.23-rocksdb-use-system-libs.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="net-misc/curl:= + >=sys-apps/sed-4 + >=sys-apps/texinfo-4.7-r1 + sys-libs/ncurses:0= + client-libs? ( >=sys-libs/zlib-1.2.3:0=[${MULTILIB_USEDEP},static-libs?] ) + !client-libs? ( + dev-db/mysql-connector-c[${MULTILIB_USEDEP},static-libs?] + >=sys-libs/zlib-1.2.3:0= + ) + jemalloc? ( dev-libs/jemalloc:0= ) + kernel_linux? ( + dev-libs/libaio:0= + sys-process/procps:0= + ) + server? ( + >=app-arch/lz4-0_p131:= + cjk? ( app-text/mecab:= ) + experimental? ( + dev-libs/libevent:= + dev-libs/protobuf:= + net-libs/libtirpc:= + ) + numa? ( sys-process/numactl ) + pam? ( virtual/pam:0= ) + rocksdb? ( + app-arch/zstd:= + dev-libs/protobuf:= + ) + tokudb? ( + app-arch/snappy:= + app-arch/xz-utils:= + ) + tokudb-backup-plugin? ( dev-util/valgrind ) + ) + systemtap? ( >=dev-util/systemtap-1.3:0= ) + tcmalloc? ( dev-util/google-perftools:0= ) + !yassl? ( + client-libs? ( + !libressl? ( >=dev-libs/openssl-1.0.0:0=[${MULTILIB_USEDEP},static-libs?] ) + libressl? ( dev-libs/libressl:0=[${MULTILIB_USEDEP},static-libs?] ) + ) + !client-libs? ( + !libressl? ( >=dev-libs/openssl-1.0.0:0= ) + libressl? ( dev-libs/libressl:0= ) + ) + ) +" +DEPEND="${COMMON_DEPEND} + || ( >=sys-devel/gcc-3.4.6 >=sys-devel/gcc-apple-4.0 ) + dev-libs/protobuf + virtual/yacc + server? ( + dev-libs/libevent + experimental? ( net-libs/rpcsvc-proto ) + ) + static? ( sys-libs/ncurses[static-libs] ) + test? ( + $(python_gen_any_dep 'dev-python/mysql-python[${PYTHON_USEDEP}]') + dev-perl/JSON + ) +" +RDEPEND="${COMMON_DEPEND} + !dev-db/mariadb !dev-db/mariadb-galera !dev-db/mysql !dev-db/mysql-cluster + client-libs? ( !dev-db/mariadb-connector-c[mysqlcompat] !dev-db/mysql-connector-c dev-libs/protobuf:= ) + selinux? ( sec-policy/selinux-mysql ) + server? ( !prefix? ( dev-db/mysql-init-scripts ) ) +" +# For other stuff to bring us in +# dev-perl/DBD-mysql is needed by some scripts installed by MySQL +PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )" + +python_check_deps() { + has_version "dev-python/mysql-python[${PYTHON_USEDEP}]" +} + +mysql_init_vars() { + MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR="${EPREFIX%/}/usr/share/mysql"} + 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_pretend() { + if use numa ; then + local CONFIG_CHECK="~NUMA" + + local WARNING_NUMA="This package expects NUMA support in kernel which this system does not have at the moment;" + WARNING_NUMA+=" Either expect runtime errors, enable NUMA support in kernel or rebuild the package without NUMA support" + + check_extra_config + fi +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]] ; then + local GCC_MAJOR_SET=$(gcc-major-version) + local GCC_MINOR_SET=$(gcc-minor-version) + # 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 + + use test && python-any-r1_pkg_setup + fi + + if has test ${FEATURES} && \ + use server && ! has userpriv ${FEATURES} ; then + eerror "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root." + fi + + # This should come after all of the die statements + enewgroup mysql 60 || die "problem adding 'mysql' group" + enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user" +} + +pkg_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 use client-libs && [[ -z ${REPLACING_VERSIONS} && -e "${EROOT%/}/usr/$(get_libdir)/libperconaserverclient.so" ]] ; then + libpath=$(readlink "${EROOT%/}/usr/$(get_libdir)/libperconaserverclient.so") + elog "Due to ABI changes when switching between different client libraries," + elog "revdep-rebuild must find and rebuild all packages linking to libperconaserverclient." + 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 [[ -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 + fi + + # Note about configuration change + einfo + elog "This version of ${PN} reorganizes the configuration from a single my.cnf" + elog "to several files in /etc/mysql/mysql.d." + elog "Please backup any changes you made to /etc/mysql/my.cnf" + elog "and add them as a new file under /etc/mysql/mysql.d with a .cnf extension." + elog "You may have as many files as needed and they are read alphabetically." + elog "Be sure the options have the appropriate section headers, i.e. [mysqld]." + einfo +} + +src_unpack() { + unpack ${A} + # Grab the patches + [[ "${MY_EXTRAS_VER}" == "live" ]] && S="${WORKDIR}/mysql-extras" git-r3_src_unpack + + mv -f "${WORKDIR}/${MY_P}" "${S}" || die +} + +src_prepare() { + cmake-utils_src_prepare + + if use jemalloc ; then + echo "TARGET_LINK_LIBRARIES(mysqld jemalloc)" >> "${S}/sql/CMakeLists.txt" || die + fi + + if use tcmalloc ; then + echo "TARGET_LINK_LIBRARIES(mysqld tcmalloc)" >> "${S}/sql/CMakeLists.txt" || die + fi + + # Don't build bundled xz-utils + if [[ -d "${S}/storage/tokudb/ft-index" ]] ; then + echo > "${S}/storage/tokudb/ft-index/cmake_modules/TokuThirdParty.cmake" || die + sed -i 's/ build_lzma//' "${S}/storage/tokudb/ft-index/ft/CMakeLists.txt" || die + elif [[ -d "${S}/storage/tokudb/PerconaFT" ]] ; then + 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 + fi + + if [[ -d "${S}/plugin/tokudb-backup-plugin" ]] && ! use tokudb-backup-plugin ; then + rm -r "${S}/plugin/tokudb-backup-plugin/Percona-TokuBackup" || die + fi + + # Remove bundled libs so we cannot accidentally use them + # We keep extra/lz4 directory because we use extra/lz4/xxhash.c via sql/CMakeLists.txt:394 + rm -rv \ + "${S}"/extra/protobuf \ + "${S}"/libevent \ + "${S}"/storage/rocksdb/third_party \ + "${S}"/storage/tokudb/PerconaFT/third_party \ + "${S}"/zlib \ + || die + + # Remove the centos and rhel selinux policies to support mysqld_safe under SELinux + if [[ -d "${S}/support-files/SELinux" ]] ; then + echo > "${S}/support-files/SELinux/CMakeLists.txt" || die + fi + + if use libressl ; then + sed -i 's/OPENSSL_MAJOR_VERSION STREQUAL "1"/OPENSSL_MAJOR_VERSION STREQUAL "2"/' \ + "${S}/cmake/ssl.cmake" || die + fi + + sed -i 's~ADD_SUBDIRECTORY(storage/ndb)~~' CMakeLists.txt || die +} + +src_configure(){ + # 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 tokudb ; then + # https://jira.percona.com/browse/PS-4399 + append-cxxflags -Wno-error=shadow + fi + + 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/mysql + -DINSTALL_PLUGINDIR=$(get_libdir)/mysql/plugin + -DINSTALL_SCRIPTDIR=share/mysql/scripts + -DINSTALL_MYSQLDATADIR="${EPREFIX%/}/var/lib/mysql" + -DINSTALL_SBINDIR=sbin + -DINSTALL_SUPPORTFILESDIR="${EPREFIX%/}/usr/share/mysql" + -DCOMPILATION_COMMENT="Gentoo Linux ${PF}" + -DWITH_UNIT_TESTS=$(usex test ON OFF) + ### TODO: make this system but issues with UTF-8 prevent it + -DWITH_EDITLINE=bundled + -DWITH_ZLIB=system + -DWITH_LIBWRAP=0 + -DENABLED_LOCAL_INFILE=1 + -DMYSQL_UNIX_ADDR="${EPREFIX%/}/var/run/mysqld/mysqld.sock" + -DWITH_DEFAULT_COMPILER_OPTIONS=0 + -DWITH_DEFAULT_FEATURE_SET=0 + # 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) + -DWITH_CURL=system + -DWITH_BOOST="${WORKDIR}/boost_1_59_0" + -DWITH_PROTOBUF=system + ) + + if use test ; then + mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mysql/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+=( + -DENABLE_DTRACE=$(usex systemtap) + ) + else + mycmakeargs+=( + -DWITHOUT_TOOLS=1 + -DWITH_READLINE=1 + -DENABLE_DTRACE=0 + ) + fi + + if multilib_is_native_abi && use server ; then + mycmakeargs+=( + -DWITH_LIBEVENT=system + -DWITH_LZ4=system + -DWITH_MECAB=$(usex cjk system OFF) + -DWITH_NUMA=$(usex numa ON OFF) + -DWITH_RAPID=$(usex experimental ON OFF) + ) + + if [[ ( -n ${MYSQL_DEFAULT_CHARSET} ) && ( -n ${MYSQL_DEFAULT_COLLATION} ) ]] ; then + ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}" + ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}." + ewarn "You MUST file bugs without these variables set." + + mycmakeargs+=( + -DDEFAULT_CHARSET=${MYSQL_DEFAULT_CHARSET} + -DDEFAULT_COLLATION=${MYSQL_DEFAULT_COLLATION} + ) + elif ! use latin1 ; then + mycmakeargs+=( + -DDEFAULT_CHARSET=utf8 + -DDEFAULT_COLLATION=utf8_general_ci + ) + else + mycmakeargs+=( + -DDEFAULT_CHARSET=latin1 + -DDEFAULT_COLLATION=latin1_swedish_ci + ) + fi + + mycmakeargs+=( + -DEXTRA_CHARSETS=all + -DDISABLE_SHARED=$(usex static YES NO) + -DWITH_DEBUG=$(usex debug) + -DWITH_EMBEDDED_SERVER=OFF + ) + + if use profiling ; then + # Setting to OFF doesn't work: Once set, profiling options will be added + # to `mysqld --help` output via sql/sys_vars.cc causing + # "main.mysqld--help-notwin" test to fail + mycmakeargs+=( -DENABLED_PROFILING=ON ) + fi + + if use static ; then + mycmakeargs+=( -DWITH_PIC=1 ) + fi + + # Storage engines + mycmakeargs+=( + -DWITH_EXAMPLE_STORAGE_ENGINE=0 + -DWITH_ARCHIVE_STORAGE_ENGINE=1 + -DWITH_BLACKHOLE_STORAGE_ENGINE=1 + -DWITH_CSV_STORAGE_ENGINE=1 + -DWITH_FEDERATED_STORAGE_ENGINE=1 + -DWITH_HEAP_STORAGE_ENGINE=1 + -DWITH_INNOBASE_STORAGE_ENGINE=1 + -DWITH_INNODB_MEMCACHED=0 + -DWITH_MYISAMMRG_STORAGE_ENGINE=1 + -DWITH_MYISAM_STORAGE_ENGINE=1 + -DWITH_PARTITION_STORAGE_ENGINE=1 + -DWITH_ROCKSDB=$(usex rocksdb 1 0) + $(usex tokudb '' -DWITHOUT_TOKUDB=1) + ) + + if use tokudb ; then + # TokuDB Backup plugin requires valgrind unconditionally + mycmakeargs+=( + $(usex tokudb-backup-plugin '' -DTOKUDB_BACKUP_DISABLED=1) + ) + fi + + else + mycmakeargs+=( + -DWITHOUT_SERVER=1 + -DWITH_EMBEDDED_SERVER=OFF + -DEXTRA_CHARSETS=none + ) + 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 +} + +# Official test instructions: +# ulimit -n 16500 && \ +# USE='latin1 perl server' \ +# FEATURES='test userpriv -usersandbox' \ +# ebuild percona-server-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 Percona-Server 5.7 for now and are believed to be + # false positives or are known to fail: + # + # encryption.innodb_encryption_tables: https://jira.percona.com/browse/PS-5036 + # group_replication.gr_communication_configuration: requires a valid local network address + # which clashes with FEATURES=network-sandbox + # main.mysqlshow: https://jira.percona.com/browse/PS-5017 + # main.percona_bug1289599: https://jira.percona.com/browse/PS-2072 + # keyring_vault.keyring_vault_timeout: requires network access to vault.public-ci.percona.com + # which clashes with FEATURES=network-sandbox + # perfschema.show_sanity: https://jira.percona.com/browse/PS-5018 + # rocksdb.prefix_extractor_override: https://jira.percona.com/browse/PS-5199 + # rpl.rpl_innodb_info_tbl_slave_tmp_tbl_mismatch: https://bugs.mysql.com/bug.php?id=89223 + # rpl.rpl_multi_source_mts_reset_worker_info: https://jira.percona.com/browse/PS-3786 + # x.crud_insert_cast: https://jira.percona.com/browse/PS-5032 + # x.insert_table_bad_column: https://jira.percona.com/browse/PS-5032 + # x.insert_table_bad_numcolumns: https://jira.percona.com/browse/PS-5032 + # x.insert_table_bad_column_type: https://jira.percona.com/browse/PS-5032 + # x.insert_table: https://jira.percona.com/browse/PS-5032 + # x.update_crud_arrayappend_o: https://jira.percona.com/browse/PS-5032 + # x.update_crud_arrayinsert_o: https://jira.percona.com/browse/PS-5032 + # + local t + + for t in \ + encryption.innodb_encryption_tables \ + group_replication.gr_communication_configuration \ + main.mysqlshow \ + main.percona_bug1289599 \ + keyring_vault.keyring_vault_timeout \ + perfschema.show_sanity \ + rocksdb.prefix_extractor_override \ + rpl.rpl_innodb_info_tbl_slave_tmp_tbl_mismatch \ + rpl.rpl_multi_source_mts_reset_worker_info \ + x.crud_insert_cast \ + x.insert_table_bad_column \ + x.insert_table_bad_numcolumns \ + x.insert_table_bad_column_type \ + x.insert_table \ + x.update_crud_arrayappend_o \ + x.update_crud_arrayinsert_o \ + ; do + _disable_test "$t" "False positives in Gentoo / Known bug" + done + + if use numa && use kernel_linux ; then + # bug 584880 + if ! linux_config_exists || ! linux_chkconfig_present NUMA ; then + for t in sys_vars.innodb_numa_interleave_basic ; do + _disable_test "$t" "Test $t requires system with NUMA support" + done + fi + fi + + if use tokudb ; then + if [[ -f "/sys/kernel/mm/transparent_hugepage/enabled" ]] ; then + if grep -q -E "\[always\]" /sys/kernel/mm/transparent_hugepage/enabled &>/dev/null ; then + # TokuDB refuses to start when transparent hugepages are enabled + for t in \ + tokudb.rows-32m-rand-insert \ + tokudb.savepoint-2 \ + tokudb.savepoint-3 \ + tokudb.savepoint-4 \ + tokudb.savepoint-1078 \ + tokudb.savepoint-1078-2 \ + tokudb.savepoint-1078-3 \ + tokudb.savepoint-1078-4 \ + ; do + _disable_test "$t" "TokuDB will not work with transparent hugepages enabled" + done + fi + else + einfo "Cannot determine transparent hugepage status." + einfo "Please note that TokuDB refuses to start when transparent hugepages are enabled!" + fi + fi + + if ! use latin1 ; then + # The following tests will fail if DEFAULT_CHARSET + # isn't set to latin1: + for t in \ + binlog.binlog_mysqlbinlog_filter \ + binlog.binlog_xa_prepared_disconnect \ + funcs_1.is_columns_mysql \ + funcs_1.is_tables_mysql \ + funcs_1.is_triggers \ + innodb.innodb_pagesize_max_recordsize \ + innodb.innodb-system-table-view \ + innodb.mysqldump_max_recordsize \ + main.mysql_client_test \ + main.mysqld--help-notwin \ + main.type_string \ + main.information_schema \ + perfschema.binlog_edge_mix \ + perfschema.binlog_edge_stmt \ + rpl.rpl_xa_survive_disconnect \ + rpl.rpl_xa_survive_disconnect_lsu_off \ + rpl.rpl_xa_survive_disconnect_table \ + ; do + _disable_test "$t" "requires DEFAULT_CHARSET=latin1 but USE=-latin1 is set" + done + fi + + # Try to increase file limits to increase test coverage + if ! ulimit -n 16500 1>/dev/null 2>&1 ; then + # Upper limit comes from parts.partition_* tests + ewarn "For maximum test coverage please raise open file limit to 16500 (ulimit -n 16500) before calling the package manager." + + if ! ulimit -n 4162 1>/dev/null 2>&1 ; then + # Medium limit comes from '[Warning] Buffered warning: Could not increase number of max_open_files to more than 3000 (request: 4162)' + ewarn "For medium test coverage please raise open file limit to 4162 (ulimit -n 4162) before calling the package manager." + + if ! ulimit -n 3000 1>/dev/null 2>&1 ; then + ewarn "For minimum test coverage please raise open file limit to 3000 (ulimit -n 3000) before calling the package manager." + else + einfo "Will run test suite with open file limit set to 3000 (minimum test coverage)." + fi + else + einfo "Will run test suite with open file limit set to 4162 (medium test coverage)." + fi + else + einfo "Will run test suite with open file limit set to 16500 (best test coverage)." + fi + + # run mysql-test tests + perl mysql-test-run.pl --force --vardir="${T}/var-tests" --reorder --skip-test=tokudb --skip-test-list="${T}/disabled.def" + retstatus_tests=$? + + popd &>/dev/null || die + + # Cleanup is important for these testcases. + pkill -9 -f "${S}/ndb" 2>/dev/null + pkill -9 -f "${S}/sql" 2>/dev/null + + local failures="" + [[ $retstatus_unit -eq 0 ]] || failures="${failures} test-unit" + [[ $retstatus_tests -eq 0 ]] || failures="${failures} tests" + + [[ -z "$failures" ]] || die "Test failures: $failures" + einfo "Tests successfully completed" +} + +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/mysql_version.h ) + + # wrap the config scripts + MULTILIB_CHOST_TOOLS=( /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 + + # 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-5.7" "${TMPDIR}/my.cnf" || die + eprefixify "${TMPDIR}/my.cnf" + doins "${TMPDIR}/my.cnf" + insinto "${MY_SYSCONFDIR#${EPREFIX}}/mysql.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 + + if use tokudb ; then + # Remove some unwanted files + rm -fv \ + "${ED%/}"/usr/COPYING.AGPLv3 \ + "${ED%/}"/usr/COPYING.GPLv2 \ + "${ED%/}"/usr/PATENTS \ + "${ED%/}"/usr/README.md \ + || die + fi + fi + + #Remove mytop if perl is not selected + [[ -e "${ED}/usr/bin/mytop" ]] && ! use perl && rm -f "${ED}/usr/bin/mytop" +} + +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 "${EROOT%/}/$MYSQL_TMPDIR" ]] ; then + einfo "Creating MySQL tmpdir $MYSQL_TMPDIR" + install -d -m 770 -o mysql -g mysql "${EROOT%/}/$MYSQL_TMPDIR" + fi + + if [[ ! -d "${EROOT%/}/$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 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 + echo "USE mysql;" >"${sqltmp}" + "${EROOT%/}/usr/bin/mysql_tzinfo_to_sql" "${EROOT%/}/usr/share/zoneinfo" >> "${sqltmp}" 2>/dev/null + chown mysql "${sqltmp}" || die + + # --initialize-insecure will not set root password + # --initialize would set a random one in the log which we don't need as we set it ourselves + local cmd=( "${EROOT%/}/usr/sbin/mysqld" "--initialize-insecure" "--init-file='${sqltmp}'" ) + 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} \ + $(use prefix || echo --user=mysql) \ + --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="ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '${MYSQL_ROOT_PASSWORD}'" + "${EROOT%/}/usr/bin/mysql" \ + --no-defaults \ + "--socket=${socket}" \ + -hlocalhost \ + -e "${sql}" + eend $? + + # Stop the server and cleanup + einfo "Stopping the server ..." + kill $(< "${pidfile}" ) + rm -f "${sqltmp}" + wait %1 + einfo "Done" +} diff --git a/dev-db/pgpool2/Manifest b/dev-db/pgpool2/Manifest index 48871115c897..72b5d35736ff 100644 --- a/dev-db/pgpool2/Manifest +++ b/dev-db/pgpool2/Manifest @@ -9,9 +9,13 @@ DIST pgpool-II-3.7.0.tar.gz 3269076 BLAKE2B f7a396e82022a35e5f46fb644ca4a9007db3 DIST pgpool-II-3.7.1.tar.gz 3237755 BLAKE2B ec196e384c9c4c03a28081fbb74b820c7480e2a98427441572142bd80bff6d2adbbda9bc19df1c70f4699af28fcac5f09161a5938df633bb9eba52c0d9dc24ac SHA512 2a83f573ca2a720ee7beb75d8d1380747e29b2bb3c809f51bd0f8e4423d67f882ce2acb7d9ea118c55313e969aba3bf94a0d5b190eb905123d43c09df25e00ef DIST pgpool-II-3.7.3.tar.gz 3259752 BLAKE2B 398257b2a647039a634d52b0e23ab1584aaa67f58d6f234f03bf2e99380b346b4ff51647f876d0789c484e88fc149a2af5a5b1b8fd3aa48323aada064ea3421d SHA512 c7fea570f11dfc348b0099fde074f61a15e6979b6f16526d24d73b26d723edfdbadbcf10e90c2111aeb72599970718d3cda4abed3e99e8a711cf03b715c29624 DIST pgpool-II-3.7.5.tar.gz 3276279 BLAKE2B d9c52684985e0a74ef115792f79a71305fbcc5f44663971e5fee41d543c7c290999091c387f5da6c73c88466880a24b21d469046de7981983d9984a606ae357e SHA512 4840047f11b5e176803c03073d1ef6ef54f9d0be3d9bd622fedc9fd0ad4f835090fbf671bfd71cda0d994af6ea9a1658b0d5e5d09ec317b345c41fb0fa4b7b70 +DIST pgpool-II-3.7.7.tar.gz 3325039 BLAKE2B 47f4d48b811af0fb6626a6ea4b46bd81d13997fa8756f533711f733eed7526ea79bbc929cf894911cc5697c37fd5fde0306eaee485f00b6c41c2701bf08c972c SHA512 9766d011f8a93ae292770b24915f6825d037d55ad3f75be131a58a9dcfb4d1a61f572f2c48f69ee0d3c6cbdfe76da15e417c26f102c646c3d9e1a2f71d205374 +DIST pgpool-II-4.0.2.tar.gz 3576212 BLAKE2B 4027b8d02f4422900e674ee49a1946521b0737e73c9cd73363cd1ad1328de294bdec219bb8df55db58c6b2da365f8094e6b2228e13f1d24f35f7fb373280bd66 SHA512 9014c34f69cdcb3064a3713ed97fa0847f5572866db709c53f703b2ff996dbb31988d6573fcd85c9bb715bb54b9c215adaf11eb2f90193371be804ec37ac955e EBUILD pgpool2-3.7.0.ebuild 2489 BLAKE2B 79706764ecb54cd2e682bb200640f6635f9a2f6ff8d26f9129a290ea68cb43adef5ba6f6622c591bd9cd5e996456f396d2f936ed8d4d303367fef0032bf2cd56 SHA512 7f74ded58782b8657b3c3f1de92a7a268a806019978e73ed3f4ed93c160d75d9e251acc2bbc39ee266dbc23f662fad8678b98f31b9a476d1b9f0c6b6719377c6 EBUILD pgpool2-3.7.1.ebuild 2491 BLAKE2B f31a347236dacc779b0c019663205b5472a994da5be4136919a4fc3c86cf730a48abbb2741224855a3fd284a937ad97b1b1a7f0b8e6741ea6570974841d5d6e6 SHA512 42026cf2f0d76578b8324b14af12b0fb53c21a75b33d04ef997589878943fb29887488219f175d4481833854dfdf3f6d91c804b54f73157b72d6f786173d6950 EBUILD pgpool2-3.7.3.ebuild 2491 BLAKE2B f31a347236dacc779b0c019663205b5472a994da5be4136919a4fc3c86cf730a48abbb2741224855a3fd284a937ad97b1b1a7f0b8e6741ea6570974841d5d6e6 SHA512 42026cf2f0d76578b8324b14af12b0fb53c21a75b33d04ef997589878943fb29887488219f175d4481833854dfdf3f6d91c804b54f73157b72d6f786173d6950 EBUILD pgpool2-3.7.5.ebuild 2636 BLAKE2B 1d4b4147857c2d5f181d455ade1bc8c2879c6b368b5394cdd0ec01afc68af668855432bafd76d1f01832908323efbbd2532c13b65109288ff32cb4e1983258b9 SHA512 ff1fbf75a9bd7281166546e9f04462062c033a052fb83a299e6fe266b5e018d76819ad9a347f1130015f784718f636ea3f070fffadde299219cb04301e2de845 +EBUILD pgpool2-3.7.7.ebuild 2638 BLAKE2B 554f9cf5bba88a23e09efec63bb6daaa24a29cf31738f2d177750bcfe3b5c2d938a01c28f0a37ac2aa0c2a20e6722050e8a69c52c6f7336dc01e3326ae982311 SHA512 7e150e36e77df5c44c991a51aa34a87762dddd9e15953f676c10ce5eb2d8107064a8a50247cb1d18062c5fbbc421f256a022c134683906fa73a0103f5860da7f +EBUILD pgpool2-4.0.2.ebuild 2644 BLAKE2B b2f3c100bd902c2e7d1c937544c5199fa3b47ff67aa71ee29f8ecc79701dabba4fd1ab6dc3b5e50cb68bb90a4153e554fd022b04e5cf02b25ea5f36869c33346 SHA512 da03de0e0d76641814ca1de20e8b90e0ab14ae8b7561997e1692f827a6b8e4afbc3f4ab25bffa8d1f6486805649beff57c9b9aee7e71943fe5c096766a5ab52a EBUILD pgpool2-9999.ebuild 2722 BLAKE2B a9589fdfa37dc5650bce8cc5c7758b6956fba3670e5629308bc34d1b9e9642bb92fdc7e069231cd7fad1d2185afe8b763de6093b0e97446ddb4a7186915149e5 SHA512 ea19202c508243bb2801266cae49d7e8939a6d7ee51fc4d9a02fe7ba3c7464cf440dd712c098ddb183c56839b9e8093f9222f8348bb52bac921003f601a8514b MISC metadata.xml 390 BLAKE2B d6a0560051449e95bb43e81589eee966a477a75d7ec8211ae96b15f2d51ce9555181b8640d9d830f2b42f8159989e9126423c6ccbbc2bf2dd8121f4920a87a16 SHA512 ce26ee116c3c7ff77a771294ed07f38d8f940dc380915c339eb4c543d86fa5bde025ba83e70af2b7bf4a1bef1e51957f151131836855e0dae2e1daed73ffae8d diff --git a/dev-db/pgpool2/pgpool2-3.7.7.ebuild b/dev-db/pgpool2/pgpool2-3.7.7.ebuild new file mode 100644 index 000000000000..79ac82b65293 --- /dev/null +++ b/dev-db/pgpool2/pgpool2-3.7.7.ebuild @@ -0,0 +1,104 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +POSTGRES_COMPAT=( 9.{3..6} 10 ) + +inherit autotools postgres-multi + +MY_P="${PN/2/-II}-${PV}" + +DESCRIPTION="Connection pool server for PostgreSQL" +HOMEPAGE="http://www.pgpool.net/" +SRC_URI="http://www.pgpool.net/download.php?f=${MY_P}.tar.gz -> ${MY_P}.tar.gz" +LICENSE="BSD" +SLOT="0" + +KEYWORDS="~amd64 ~x86" + +IUSE="doc libressl memcached pam ssl static-libs" + +RDEPEND=" + ${POSTGRES_DEP} + net-libs/libnsl:0= + memcached? ( dev-libs/libmemcached ) + pam? ( sys-auth/pambase ) + ssl? ( + !libressl? ( dev-libs/openssl:* ) + libressl? ( dev-libs/libressl:= ) + ) +" +DEPEND="${RDEPEND} + !!dev-db/pgpool + sys-devel/bison + virtual/pkgconfig +" + +S=${WORKDIR}/${MY_P} + +pkg_setup() { + postgres_new_user pgpool + + postgres-multi_pkg_setup +} + +src_prepare() { + eapply \ + "${FILESDIR}/pgpool-configure-memcached.patch" \ + "${FILESDIR}/pgpool-configure-pam.patch" \ + "${FILESDIR}/pgpool-configure-pthread.patch" \ + "${FILESDIR}/pgpool_run_paths-3.6.5.patch" + + eautoreconf + + postgres-multi_src_prepare +} + +src_configure() { + postgres-multi_foreach econf \ + --disable-rpath \ + --sysconfdir="${EROOT%/}/etc/${PN}" \ + --with-pgsql-includedir='/usr/include/postgresql-@PG_SLOT@' \ + --with-pgsql-libdir="/usr/$(get_libdir)/postgresql-@PG_SLOT@/$(get_libdir)" \ + $(use_enable static-libs static) \ + $(use_with memcached) \ + $(use_with pam) \ + $(use_with ssl openssl) +} + +src_compile() { + # Even though we're only going to do an install for the best slot + # available, the extension bits in src/sql need some things outside + # of that directory built, too. + postgres-multi_foreach emake + postgres-multi_foreach emake -C src/sql +} + +src_install() { + # We only need the best stuff installed + postgres-multi_forbest emake DESTDIR="${D}" install + + # Except for the extension and .so files that each PostgreSQL slot needs + postgres-multi_foreach emake DESTDIR="${D}" -C src/sql install + + newinitd "${FILESDIR}/${PN}.initd" ${PN} + newconfd "${FILESDIR}/${PN}.confd" ${PN} + + # Documentation! + dodoc NEWS TODO + doman doc/src/sgml/man{1,8}/* + use doc && dodoc -r doc/src/sgml/html + + # Examples and extras + # mv some files that get installed to /usr/share/pgpool-II so that + # they all wind up in the same place + mv "${ED%/}/usr/share/${PN/2/-II}" "${ED%/}/usr/share/${PN}" || die + into "/usr/share/${PN}" + dobin src/sample/{pgpool_recovery,pgpool_recovery_pitr,pgpool_remote_start} + insinto "/usr/share/${PN}" + doins src/sample/{{pcp,pgpool,pool_hba}.conf.sample*,pgpool.pam} + + # One more thing: Evil la files! + find "${ED}" -name '*.la' -exec rm -f {} + +} diff --git a/dev-db/pgpool2/pgpool2-4.0.2.ebuild b/dev-db/pgpool2/pgpool2-4.0.2.ebuild new file mode 100644 index 000000000000..099a14d08702 --- /dev/null +++ b/dev-db/pgpool2/pgpool2-4.0.2.ebuild @@ -0,0 +1,104 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +POSTGRES_COMPAT=( 9.{3..6} {10..11} ) + +inherit autotools postgres-multi + +MY_P="${PN/2/-II}-${PV}" + +DESCRIPTION="Connection pool server for PostgreSQL" +HOMEPAGE="http://www.pgpool.net/" +SRC_URI="http://www.pgpool.net/download.php?f=${MY_P}.tar.gz -> ${MY_P}.tar.gz" +LICENSE="BSD" +SLOT="0" + +KEYWORDS="~amd64 ~x86" + +IUSE="doc libressl memcached pam ssl static-libs" + +RDEPEND=" + ${POSTGRES_DEP} + net-libs/libnsl:0= + memcached? ( dev-libs/libmemcached ) + pam? ( sys-auth/pambase ) + ssl? ( + !libressl? ( dev-libs/openssl:* ) + libressl? ( dev-libs/libressl:= ) + ) +" +DEPEND="${RDEPEND} + !!dev-db/pgpool + sys-devel/bison + virtual/pkgconfig +" + +S=${WORKDIR}/${MY_P} + +pkg_setup() { + postgres_new_user pgpool + + postgres-multi_pkg_setup +} + +src_prepare() { + eapply \ + "${FILESDIR}/pgpool-configure-memcached.patch" \ + "${FILESDIR}/pgpool-configure-pam.patch" \ + "${FILESDIR}/pgpool-configure-pthread.patch" \ + "${FILESDIR}/pgpool_run_paths-3.6.5.patch" + + eautoreconf + + postgres-multi_src_prepare +} + +src_configure() { + postgres-multi_foreach econf \ + --disable-rpath \ + --sysconfdir="${EROOT%/}/etc/${PN}" \ + --with-pgsql-includedir='/usr/include/postgresql-@PG_SLOT@' \ + --with-pgsql-libdir="/usr/$(get_libdir)/postgresql-@PG_SLOT@/$(get_libdir)" \ + $(use_enable static-libs static) \ + $(use_with memcached) \ + $(use_with pam) \ + $(use_with ssl openssl) +} + +src_compile() { + # Even though we're only going to do an install for the best slot + # available, the extension bits in src/sql need some things outside + # of that directory built, too. + postgres-multi_foreach emake + postgres-multi_foreach emake -C src/sql +} + +src_install() { + # We only need the best stuff installed + postgres-multi_forbest emake DESTDIR="${D}" install + + # Except for the extension and .so files that each PostgreSQL slot needs + postgres-multi_foreach emake DESTDIR="${D}" -C src/sql install + + newinitd "${FILESDIR}/${PN}.initd" ${PN} + newconfd "${FILESDIR}/${PN}.confd" ${PN} + + # Documentation! + dodoc NEWS TODO + doman doc/src/sgml/man{1,8}/* + use doc && dodoc -r doc/src/sgml/html + + # Examples and extras + # mv some files that get installed to /usr/share/pgpool-II so that + # they all wind up in the same place + mv "${ED%/}/usr/share/${PN/2/-II}" "${ED%/}/usr/share/${PN}" || die + into "/usr/share/${PN}" + dobin src/sample/{pgpool_recovery,pgpool_recovery_pitr,pgpool_remote_start} + insinto "/usr/share/${PN}" + doins src/sample/{{pcp,pgpool,pool_hba}.conf.sample*,pgpool.pam} + + # One more thing: Evil la files! + find "${ED}" -name '*.la' -exec rm -f {} + +} diff --git a/dev-db/pgtap/Manifest b/dev-db/pgtap/Manifest index a1904b193094..cfddeffc5832 100644 --- a/dev-db/pgtap/Manifest +++ b/dev-db/pgtap/Manifest @@ -1,3 +1,5 @@ DIST pgtap-0.98.0.zip 270583 BLAKE2B 25d409f5fc63bc7059e8a4ffd3cb460885648f8569cd10ca05d4c5fbe09af323ecc719d663f81389d45f4a4910ca77beef968e264a0d3f4fabf63fa30b8b98ac SHA512 478841aa9cf378120713b90f33dc16d40fdd030ee1856edd4bfa288a7803cabad09661cf5219925335d9220e12b6202a1fcd8cc0fc55d1974d1e98dc0f6ddac0 +DIST pgtap-0.99.0.zip 275915 BLAKE2B 33499dacc0019ecbe85ff3dc4fcc243b6102e0b7e7018d70b17cda44b8d22d8260229ab732db9900296232e0801070722bf97a752734ea7d389dc8ae57198b6f SHA512 c1b39bf2c041d759006d692229a67af1520b6a3d23fdac43f0781cac9ce69e7714fc854d1e45f1cb3ee188a20dccfb7904bc4dd1513699189fae70f425c13b5f EBUILD pgtap-0.98.0.ebuild 488 BLAKE2B 4c9e215882a272b5cfd2c58c75cc3e589cabf79f1653d1eaf259fb198316dd3fb98b0d7792e742af88e9931039c29a5c459205c9624d15f8cb1e212bb39b46a7 SHA512 ccb8d89695c5ac7d4eaf8cd281bb4f29fdd85e490e7d6aac4a78b62c09c4d1a6f0601f728ed52a83e0cac543e1f862836872ea9717967190f06f169e31353e9b +EBUILD pgtap-0.99.0.ebuild 590 BLAKE2B e9a8511a2ee4a2f5c251a2a4ccbe2e12f3d7185640b8de221bca1189db0638a17fc1d0606da728aa938fd1acd9f5e1e3b61a2a01256fac3e0a368e14b186f82b SHA512 9c27784cd2eae449e43427adb38db81150cb0a8441e0961fd80c3786ea27fc2519379f84c9a1af26c6ace6aece7f4fc5c5055e58c955f49e2389cfc1f092e922 MISC metadata.xml 628 BLAKE2B 8a671273bb0de6f11d5ea56a3bf38e9eee05c0a70ff8cefe183f0eb798afbead29e96d5a45f764e2afc437cc97d91590e648c6716a8dd8fa7a6cc9f072332e0c SHA512 1c06c14ea5af9248950e6c10ab877b0725c4885082211db94b8a195fdf0dd115dc584a325655b7155895ec4382008e03511aa238d43179310fbe3dc835f5270a diff --git a/dev-db/pgtap/pgtap-0.99.0.ebuild b/dev-db/pgtap/pgtap-0.99.0.ebuild new file mode 100644 index 000000000000..2be40ea3ba4a --- /dev/null +++ b/dev-db/pgtap/pgtap-0.99.0.ebuild @@ -0,0 +1,30 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +POSTGRES_COMPAT=( 9.{3..6} {10..11} ) + +inherit postgres-multi + +DESCRIPTION="Unit testing for PostgreSQL" +HOMEPAGE="https://pgtap.org/" +SRC_URI="https://api.pgxn.org/dist/${PN}/${PV}/${P}.zip" + +LICENSE="POSTGRESQL" +SLOT="0" +KEYWORDS="~amd64" +IUSE="" + +DEPEND="${POSTGRES_DEP} + app-arch/unzip + dev-perl/TAP-Parser-SourceHandler-pgTAP +" +RDEPEND="${DEPEND}" + +# Tests requires a running database that match up with the current testing slot. +RESTRICT="test" + +src_configure() { + : +} diff --git a/dev-db/phpmyadmin/Manifest b/dev-db/phpmyadmin/Manifest index ee4a49a6255e..eda9e03b17bd 100644 --- a/dev-db/phpmyadmin/Manifest +++ b/dev-db/phpmyadmin/Manifest @@ -1,8 +1,8 @@ AUX postinstall-en-3.1.txt 1160 BLAKE2B 0aa21601490830f93a784c1a3c09b90986d606d0086b128b37d6598c946e9ebe43f575f12ca5ee571db8520841a2c08624b567b721567d26ee02e1e3c4c9124e SHA512 7b50ab9f9e3a828bd9bff600550ea97712c28804467ab5900a52710d4adb0581fe33155a965dd3956fcd36cc153b1a18a1f001d88ac52d70c8288faf695f01ec -DIST phpMyAdmin-4.7.0-all-languages.tar.xz 7600296 BLAKE2B 10e1168ab7a1d8dfccf5837c211a2e6455d767e27f11aec870a9c4a1a19e8a4a1df67b82a7a83ff3c184c8a111dc272da5c876150615a9fd9a32a643bba84007 SHA512 03f3b56d3fed846e8e27e38a1bf32175b267a3cc2784ee499b64a48b6a37f0352302a9c150e1db1c99f633aabd8a373a834ad7ab2b694146b0ac13dd05bd27e3 DIST phpMyAdmin-4.7.8-all-languages.tar.xz 6218056 BLAKE2B 879ef6703711725781fcf3b4c9ab607741c4df0d2f1955f632087e33b599e54128c0811dbd125d9015a0ec597dd6d9af54e7136e91f8637badf698ad7a30b8ba SHA512 ae6edcfba72413a6e0af0b120a99809320a840ab332ae77263f21e14f3b34a38cca70591628ba5818d6732ff6d23551ea51cbf6a75012d2326d0fab1c2a1b9ae DIST phpMyAdmin-4.8.3-all-languages.tar.xz 5996528 BLAKE2B cf00bab32547c5a6e8c81f529e5b074e3a7c576a7991d6823239172f91cebad7e1b10e2baee589043bf8a5d1d37470a7614a038a0054eaa18e74028bf3cecfd4 SHA512 95998eda6a2db9020671073c62458d819cbd5e54c5f56f467b109401f6b9ebd2dfbc34cc840980bf2d3a7ee3bc93683b7fe20d9bd72b537d8aa066d39089ff89 -EBUILD phpmyadmin-4.7.0.ebuild 1569 BLAKE2B 8582b641380f4a9c47dc3ff62a32774b35f2c252774c91a8ddfa8e7470c8649a192984ccf4124d21af09a3843c1a8d0d520907eb51d50c368d166f1b570ffb1a SHA512 dbc88883d5605423c3ed17563736c1f7e862fcf60e9f162d057229dbd8e372b056072fca592063349361be2a2baeab0ca3ca3a36b4af7130758836a95f1988b7 -EBUILD phpmyadmin-4.7.8.ebuild 1564 BLAKE2B 771fd31cb0188c4d229e7bb9af796cbc3ca6d90d03502fae7cdc0b038d3e9e723cfdf72db72952155d5bfbc37bd7d61b669ceac7a5b11304ad283e32321b51a0 SHA512 3b7fe1cd8b766138e569a82e3161c9c21a0853254f0392d94e9cdb3af3e8934a3cbc689bd14d5b04881dd6cde8dc057585417a1d5dd18ad9d250c2c66f35c9af -EBUILD phpmyadmin-4.8.3-r1.ebuild 1561 BLAKE2B 7f8bae1983e7f2194765edf45842c45b3be557e97b0803b899acbeb368f625345a0473231221d5cadfceecceaa8a3e51bde23720c640de7a54ba49de7063426b SHA512 a5dc139da13c1c5397cca03789b8453ff80c0df60773d5a840eebe62958cd3e02a91af2d4c7355f44aaef79f12f7ce6f4596d48c3345db0e35e36a333519e633 +DIST phpMyAdmin-4.8.4-all-languages.tar.xz 6012216 BLAKE2B 3e6503a7f2d76c6c9e7d8064ef2eb3ea21ee5ef040c0439e24afe9388f8f47aef4fbd8cbe27ae809f45f2c789a289f529a3eda1cf91ef80681d1f76147d753ee SHA512 4f7018416fb925b28d5e061ebba4d99c45497f0e33c6a4bfa32aaa74197a429d61469d8084fd5ea6b23a34444c81905e072b5508f9a87c75e18e0ac596ff2121 +EBUILD phpmyadmin-4.7.8.ebuild 1560 BLAKE2B 5f4cfc1b75bf5c23897c14c46bf952f1dd2021a8be3e4e022305eae14f6155c14a5b4f6db74518e0df24d7529dc6362f83614b859f51599c62c8a7135cfb0602 SHA512 b53a8697b1a16a8ddaac4240639d81fe1d9e35130892949cb95fdbabdf4839d23d2cdf077a2dc43bcddc836e015c28b922648ea1e8ac3f5f981ecc07a4b235e6 +EBUILD phpmyadmin-4.8.3-r1.ebuild 1558 BLAKE2B 841f68f731b7f0c0c21b718ce1ee7823c151ec936c3060c6e61e75181efa1bf4cdfea8619a1a93e89f9fb2c04d36cad759d6dea2d6ceaebc418be0b2270e7a15 SHA512 8eb64005bf20bb5740207fc3e217a5e68daa0c0eb28a48c518dfcccd211ebb9e5578433edc364bd13f8096e6e112afca34556b4bf5f408d813e3938e6d2aa5a4 +EBUILD phpmyadmin-4.8.4.ebuild 1564 BLAKE2B 5ac1abd3d55453b52b0eb5c9a6c32427e15ee221f7641222c999396b7efeb1dc3c0e6af8949661106d3e49d0a78c1532cfad1b6bfb2743c08d7f8a54e9bfff11 SHA512 247d39125762dd7117b05d4655364784e717a5ff536ef730327e3e83f6fb5ae14eabbf42839c5f568b3ef5e9caa474fb1e8e5b2c21243de651b6d0d750aba50e 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 cab151563aaa..1d0f18f80395 100644 --- a/dev-db/phpmyadmin/phpmyadmin-4.7.8.ebuild +++ b/dev-db/phpmyadmin/phpmyadmin-4.7.8.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="5" @@ -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/phpmyadmin/phpmyadmin-4.8.3-r1.ebuild b/dev-db/phpmyadmin/phpmyadmin-4.8.3-r1.ebuild index 507ccf8cc7e9..044f2857fe2c 100644 --- a/dev-db/phpmyadmin/phpmyadmin-4.8.3-r1.ebuild +++ b/dev-db/phpmyadmin/phpmyadmin-4.8.3-r1.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/phpmyadmin/phpmyadmin-4.7.0.ebuild b/dev-db/phpmyadmin/phpmyadmin-4.8.4.ebuild index 4cfb0dc84d8f..646226a38ba1 100644 --- a/dev-db/phpmyadmin/phpmyadmin-4.7.0.ebuild +++ b/dev-db/phpmyadmin/phpmyadmin-4.8.4.ebuild @@ -1,7 +1,7 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI="5" +EAPI=6 inherit eutils webapp @@ -14,11 +14,11 @@ 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=" - dev-lang/php[crypt,ctype,filter,json,session,unicode] + dev-lang/php[ctype,filter,json,session,unicode] || ( dev-lang/php[mysqli] dev-lang/php[mysql] diff --git a/dev-db/postgis/Manifest b/dev-db/postgis/Manifest index 72f2e45d5c64..502272b6f141 100644 --- a/dev-db/postgis/Manifest +++ b/dev-db/postgis/Manifest @@ -2,7 +2,12 @@ AUX postgis-2.2.0-arflags.patch 535 BLAKE2B 6420573e9623d4e2115ed3616bc3b8648ae7 AUX postgis-2.4.2-jsonc_0.13.patch 786 BLAKE2B c55fd81f28b9a4db965ef3f4bb3ca6fcf2cd6ba44d4f7a93c35ade90ffdcb195325ce219348aa6dc3645f6822214b4bc75263c02fc316f3dd9b4369114eb5493 SHA512 9088304bb77db2d86dd077510f94ae8b3796474a02377f1f076476c739d9506f0b7c7c6dcf6e90ad51e84bc528302a6ecda4bedc6eac42dfeba3a71c0144a399 DIST postgis-2.4.2.tar.gz 12470881 BLAKE2B 116bb5d1c8f6066d537cac950254923a681babac456d155139dbdd2853b80499f4f9445dad985b94bffffd1d1285a6c78fee0fccb24e301d18147f3cd9230416 SHA512 e268572d5cd009754ef05f5d2eedcac7e362fa47199459c637cd4d9050d2b648d4b2b3746cde0dce5a42be2606a432b64dc905f193e12cf0869e3dd6f820b425 DIST postgis-2.4.3.tar.gz 12601055 BLAKE2B 662b2afe145bc23c77ebda7306d07a20e39c1a598316cee58e1591e65ce1b2d2a3f727f5463ba144711faa55f7c11e4a038b6ad2a76cab760b4fdd43647f09c3 SHA512 95b2c925cb10943e7136aa3b7b08a9ad3d6ff59a3994c653bba52e4c65193d519daa49684b924f68945dd596187aa17e0c713bf0b9e29f8c5973346b279dba1b +DIST postgis-2.4.6.tar.gz 12616474 BLAKE2B 8e33ae7e8ca5ef2a4dd90f64a8e9910118e4ef711444b196f46e4a63f98ff6044709d65a853c5c10de91308658a206965503b6a85a16438ea422becdbbd9bb40 SHA512 eec4276a58549f3cc57d6574186aebc72df0dd7dc2ab9acbaf410604b4d271dee6d5154caacd7297d20493d879434ca78050672e8197ff0fc63a36100c20c66c +DIST postgis-2.5.1.tar.gz 16041872 BLAKE2B 589cf7168d3698737a19d817b8efb91695c2c3f63d6c3aa24189d9a37459a28ca8a7db0450aa2d557699f76cd8e3ab1eec198bd332b294d976330fdc9d8a7f60 SHA512 c6c9c8c5befd945614e92d1062df1d753ca8b7fd69b70226065c2dac77a59783b14ece4da994187079b683ee090ba5a79389ba679f22fce8c20a5afc2c8dfca0 EBUILD postgis-2.4.2.ebuild 3111 BLAKE2B 5e73b003ce160340df936ffc7571fa4873b1e3cc6519fae8f7f452d98c2c5786c2ecedb96a544bef39f566a28db8089b7f9dfd37e97b910cf33fa83fb0307bcf SHA512 0cd08ef2930688412f1ffe4846ac88a9037f68dda0cde535c810fbbb218f2c033fec74a2f7b1539f0ff42ea40f085ea290fcdd3892fcc27a38fad25085686152 EBUILD postgis-2.4.3.ebuild 3113 BLAKE2B 4ea7488d7c87a8d946d074d36f306db9791bca9d0d63f7ad67622defd797052fad8d4b0652ef2a3445ee1da436450e2f30683870dcf54de3255db9b61095e2b3 SHA512 a7f5e10d00f67a6f6c322ed59937ccd103e3491b9ae9ffc516240c5185b10ed808b4044e44ab276576e07a5bc34e3f9464abf242623b85e9a718733713cbeb1b +EBUILD postgis-2.4.6.ebuild 3064 BLAKE2B 0db79ef8795463982620e44522a0eeafbaff89ad9da666ee0be4a5f30e1fac7d45b6cf79340289f0a8ebe49ec2fffbd0157aa576f63807e1b055547c196e13ef SHA512 e8c8f804684886fac800d8c9fb3f325203f8ebe1f0852eaee6eb3be7255038d9b9bba59a04be5a32de13c65f65d054194f4919946860edda8209c01254f089a4 +EBUILD postgis-2.5.1-r1.ebuild 3046 BLAKE2B 27e063256480698c255088e1e4ba53a8355ed325a228829f93d2606a8110f5315362cd1b52f7774c0fd3e2f28b95376d5dc2b8f7267115eb53dbaeedce893898 SHA512 154b19f8dd6b06c32f28e62cb6fd14af2b9ea46b126b61285790542f79d2168dff6ec765f4c423e38917f4fa364527e760592b25a1c8f9c90f6e15fd66f0c4e3 +EBUILD postgis-2.5.1.ebuild 3064 BLAKE2B 0db79ef8795463982620e44522a0eeafbaff89ad9da666ee0be4a5f30e1fac7d45b6cf79340289f0a8ebe49ec2fffbd0157aa576f63807e1b055547c196e13ef SHA512 e8c8f804684886fac800d8c9fb3f325203f8ebe1f0852eaee6eb3be7255038d9b9bba59a04be5a32de13c65f65d054194f4919946860edda8209c01254f089a4 EBUILD postgis-9999.ebuild 2647 BLAKE2B b379c0ebfd30c407817139b72264bbb70c0cae3ba281b2f2ffda38c61c851bb363266e2675437e32dd3ffc80a6c1dca4608e34833d7a729cbd6997eb2501411d SHA512 4b654b604752b9e30ea0662e89429e0deb74e1ce6cfb8beef34f8bf33ea2aeb28e07398828fc5ddc3d27a520258313cb552b7ef24069ca5b9001a4db7aaa1cec MISC metadata.xml 779 BLAKE2B 9dfbc86514c5f6e0c859dc41a46890e4f518f23c572786bf340112eadf21b35f5f583a3835f6ba58bef8c99a7ef8483f3a98898d372d1c0e5cc537bb9ecc2b12 SHA512 33ad2ddabf49e97af2cf188f2c0f72e1a936c228b43d8d3637230c43be0df82ec2aa20b63cb5f2385e936c215263fcd009332afe504bc5f30746a387b9b37ada diff --git a/dev-db/postgis/postgis-2.4.6.ebuild b/dev-db/postgis/postgis-2.4.6.ebuild new file mode 100644 index 000000000000..c78f3e5ac27d --- /dev/null +++ b/dev-db/postgis/postgis-2.4.6.ebuild @@ -0,0 +1,125 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +POSTGRES_COMPAT=( 9.{3..6} {10..11} ) +POSTGRES_USEDEP="server" + +inherit autotools eutils postgres-multi versionator + +MY_PV=$(replace_version_separator 3 '') +MY_P="${PN}-${MY_PV}" +S="${WORKDIR}/${MY_P}" + +DESCRIPTION="Geographic Objects for PostgreSQL" +HOMEPAGE="http://postgis.net" +SRC_URI="http://download.osgeo.org/postgis/source/${MY_P}.tar.gz" +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" +IUSE="address-standardizer doc gtk static-libs mapbox test topology" + +RDEPEND=" + ${POSTGRES_DEP} + dev-libs/json-c:= + dev-libs/libxml2:2 + >=sci-libs/geos-3.5.0 + >=sci-libs/proj-4.6.0 + >=sci-libs/gdal-1.10.0 + address-standardizer? ( dev-libs/libpcre ) + gtk? ( x11-libs/gtk+:2 ) + mapbox? ( dev-libs/protobuf ) +" + +DEPEND="${RDEPEND} + doc? ( + app-text/docbook-xsl-stylesheets + app-text/docbook-xml-dtd:4.5 + dev-libs/libxslt + || ( + media-gfx/imagemagick[png] + media-gfx/graphicsmagick[imagemagick,png] + ) + ) + virtual/pkgconfig + test? ( dev-util/cunit ) +" + +PGIS="$(get_version_component_range 1-2)" + +REQUIRED_USE="test? ( doc ) ${POSTGRES_REQ_USE}" + +# Needs a running psql instance, doesn't work out of the box +RESTRICT="test" + +MAKEOPTS+=' -j1' + +# These modules are built using the same *FLAGS that were used to build +# dev-db/postgresql. The right thing to do is to ignore the current +# *FLAGS settings. +QA_FLAGS_IGNORED="usr/lib(64)?/(rt)?postgis-${PGIS}\.so" + +src_prepare() { + eapply "${FILESDIR}/${PN}-2.2.0-arflags.patch" + + local AT_M4DIR="macros" + eautoreconf + + postgres-multi_src_prepare +} + +src_configure() { + local myargs="" + + use gtk && myargs+=" --with-gui" + + use address-standardizer || myargs+=" --without-address-standardizer" + use mapbox || myargs+=" --without-protobuf" + use topology || myargs+=" --without-topology" + + postgres-multi_foreach econf ${myargs} +} + +src_compile() { + postgres-multi_foreach emake + postgres-multi_foreach emake -C topology + + if use doc ; then + postgres-multi_foreach emake comments + postgres-multi_foreach emake cheatsheets + postgres-multi_forbest emake -C doc html + fi +} + +src_install() { + postgres-multi_foreach emake DESTDIR="${D}" install + postgres-multi_foreach emake -C topology DESTDIR="${D}" install + postgres-multi_forbest dobin ./utils/postgis_restore.pl + + dodoc CREDITS TODO loader/README.* doc/*txt + + docinto topology + dodoc topology/{TODO,README} + + if use doc ; then + postgres-multi_foreach emake DESTDIR="${D}" comments-install + + docinto html + postgres-multi_forbest dodoc doc/html/{postgis.html,style.css} + + docinto html/images + postgres-multi_forbest dodoc doc/html/images/* + fi + + use static-libs || find "${ED}" -name '*.a' -delete +} + +pkg_postinst() { + ebegin "Refreshing PostgreSQL symlinks" + postgresql-config update + eend $? + + elog "To finish installing PostGIS, follow the directions detailed at:" + elog "http://postgis.net/docs/manual-${PGIS}/postgis_installation.html#create_new_db_extensions" +} diff --git a/dev-db/postgis/postgis-2.5.1-r1.ebuild b/dev-db/postgis/postgis-2.5.1-r1.ebuild new file mode 100644 index 000000000000..5d81ec77f469 --- /dev/null +++ b/dev-db/postgis/postgis-2.5.1-r1.ebuild @@ -0,0 +1,123 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +POSTGRES_COMPAT=( 9.{3..6} {10..11} ) +POSTGRES_USEDEP="server" + +inherit autotools eutils postgres-multi versionator + +MY_PV=$(replace_version_separator 3 '') +MY_P="${PN}-${MY_PV}" +S="${WORKDIR}/${MY_P}" + +DESCRIPTION="Geographic Objects for PostgreSQL" +HOMEPAGE="http://postgis.net" +SRC_URI="http://download.osgeo.org/postgis/source/${MY_P}.tar.gz" +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" +IUSE="address-standardizer doc gtk static-libs mapbox test topology" + +RDEPEND=" + ${POSTGRES_DEP} + dev-libs/json-c:= + dev-libs/libxml2:2 + >=sci-libs/geos-3.5.0 + >=sci-libs/proj-4.6.0 + >=sci-libs/gdal-1.10.0 + address-standardizer? ( dev-libs/libpcre ) + gtk? ( x11-libs/gtk+:2 ) + mapbox? ( dev-libs/protobuf ) +" + +DEPEND="${RDEPEND} + doc? ( + app-text/docbook-xsl-stylesheets + app-text/docbook-xml-dtd:4.5 + dev-libs/libxslt + || ( + media-gfx/imagemagick[png] + media-gfx/graphicsmagick[imagemagick,png] + ) + ) + virtual/pkgconfig + test? ( dev-util/cunit ) +" + +PGIS="$(get_version_component_range 1-2)" + +REQUIRED_USE="test? ( doc ) ${POSTGRES_REQ_USE}" + +# Needs a running psql instance, doesn't work out of the box +RESTRICT="test" + +# These modules are built using the same *FLAGS that were used to build +# dev-db/postgresql. The right thing to do is to ignore the current +# *FLAGS settings. +QA_FLAGS_IGNORED="usr/lib(64)?/(rt)?postgis-${PGIS}\.so" + +src_prepare() { + eapply "${FILESDIR}/${PN}-2.2.0-arflags.patch" + + local AT_M4DIR="macros" + eautoreconf + + postgres-multi_src_prepare +} + +src_configure() { + local myargs="" + + use gtk && myargs+=" --with-gui" + + use address-standardizer || myargs+=" --without-address-standardizer" + use mapbox || myargs+=" --without-protobuf" + use topology || myargs+=" --without-topology" + + postgres-multi_foreach econf ${myargs} +} + +src_compile() { + postgres-multi_foreach emake + postgres-multi_foreach emake -C topology + + if use doc ; then + postgres-multi_foreach emake comments + postgres-multi_foreach emake cheatsheets + postgres-multi_forbest emake -C doc html + fi +} + +src_install() { + postgres-multi_foreach emake DESTDIR="${D}" install + postgres-multi_foreach emake -C topology DESTDIR="${D}" install + postgres-multi_forbest dobin ./utils/postgis_restore.pl + + dodoc CREDITS TODO loader/README.* doc/*txt + + docinto topology + dodoc topology/{TODO,README} + + if use doc ; then + postgres-multi_foreach emake DESTDIR="${D}" comments-install + + docinto html + postgres-multi_forbest dodoc doc/html/{postgis.html,style.css} + + docinto html/images + postgres-multi_forbest dodoc doc/html/images/* + fi + + use static-libs || find "${ED}" -name '*.a' -delete +} + +pkg_postinst() { + ebegin "Refreshing PostgreSQL symlinks" + postgresql-config update + eend $? + + elog "To finish installing PostGIS, follow the directions detailed at:" + elog "http://postgis.net/docs/manual-${PGIS}/postgis_installation.html#create_new_db_extensions" +} diff --git a/dev-db/postgis/postgis-2.5.1.ebuild b/dev-db/postgis/postgis-2.5.1.ebuild new file mode 100644 index 000000000000..c78f3e5ac27d --- /dev/null +++ b/dev-db/postgis/postgis-2.5.1.ebuild @@ -0,0 +1,125 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +POSTGRES_COMPAT=( 9.{3..6} {10..11} ) +POSTGRES_USEDEP="server" + +inherit autotools eutils postgres-multi versionator + +MY_PV=$(replace_version_separator 3 '') +MY_P="${PN}-${MY_PV}" +S="${WORKDIR}/${MY_P}" + +DESCRIPTION="Geographic Objects for PostgreSQL" +HOMEPAGE="http://postgis.net" +SRC_URI="http://download.osgeo.org/postgis/source/${MY_P}.tar.gz" +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" +IUSE="address-standardizer doc gtk static-libs mapbox test topology" + +RDEPEND=" + ${POSTGRES_DEP} + dev-libs/json-c:= + dev-libs/libxml2:2 + >=sci-libs/geos-3.5.0 + >=sci-libs/proj-4.6.0 + >=sci-libs/gdal-1.10.0 + address-standardizer? ( dev-libs/libpcre ) + gtk? ( x11-libs/gtk+:2 ) + mapbox? ( dev-libs/protobuf ) +" + +DEPEND="${RDEPEND} + doc? ( + app-text/docbook-xsl-stylesheets + app-text/docbook-xml-dtd:4.5 + dev-libs/libxslt + || ( + media-gfx/imagemagick[png] + media-gfx/graphicsmagick[imagemagick,png] + ) + ) + virtual/pkgconfig + test? ( dev-util/cunit ) +" + +PGIS="$(get_version_component_range 1-2)" + +REQUIRED_USE="test? ( doc ) ${POSTGRES_REQ_USE}" + +# Needs a running psql instance, doesn't work out of the box +RESTRICT="test" + +MAKEOPTS+=' -j1' + +# These modules are built using the same *FLAGS that were used to build +# dev-db/postgresql. The right thing to do is to ignore the current +# *FLAGS settings. +QA_FLAGS_IGNORED="usr/lib(64)?/(rt)?postgis-${PGIS}\.so" + +src_prepare() { + eapply "${FILESDIR}/${PN}-2.2.0-arflags.patch" + + local AT_M4DIR="macros" + eautoreconf + + postgres-multi_src_prepare +} + +src_configure() { + local myargs="" + + use gtk && myargs+=" --with-gui" + + use address-standardizer || myargs+=" --without-address-standardizer" + use mapbox || myargs+=" --without-protobuf" + use topology || myargs+=" --without-topology" + + postgres-multi_foreach econf ${myargs} +} + +src_compile() { + postgres-multi_foreach emake + postgres-multi_foreach emake -C topology + + if use doc ; then + postgres-multi_foreach emake comments + postgres-multi_foreach emake cheatsheets + postgres-multi_forbest emake -C doc html + fi +} + +src_install() { + postgres-multi_foreach emake DESTDIR="${D}" install + postgres-multi_foreach emake -C topology DESTDIR="${D}" install + postgres-multi_forbest dobin ./utils/postgis_restore.pl + + dodoc CREDITS TODO loader/README.* doc/*txt + + docinto topology + dodoc topology/{TODO,README} + + if use doc ; then + postgres-multi_foreach emake DESTDIR="${D}" comments-install + + docinto html + postgres-multi_forbest dodoc doc/html/{postgis.html,style.css} + + docinto html/images + postgres-multi_forbest dodoc doc/html/images/* + fi + + use static-libs || find "${ED}" -name '*.a' -delete +} + +pkg_postinst() { + ebegin "Refreshing PostgreSQL symlinks" + postgresql-config update + eend $? + + elog "To finish installing PostGIS, follow the directions detailed at:" + elog "http://postgis.net/docs/manual-${PGIS}/postgis_installation.html#create_new_db_extensions" +} diff --git a/dev-db/postgresql/Manifest b/dev-db/postgresql/Manifest index 85406009372f..0f9dd85cec24 100644 --- a/dev-db/postgresql/Manifest +++ b/dev-db/postgresql/Manifest @@ -10,27 +10,17 @@ AUX postgresql.init-9.3-r1 4999 BLAKE2B f2bc23a51b6d9643bbc14320aaa9c41b7eb1df86 AUX postgresql.service-9.2 1666 BLAKE2B d4b81415539db3d78e0f5908185f903b70966ce3a27feed9bdf80eb6a9065ca6bd4b49e4bb822c41548b7efa9de37656378c395a8bd00a7a3daaa52911a2f674 SHA512 8c64b59f1e80096382a7166e1e8f183a5b9cf14c75138c15a39de74b983bfbed2f41cf9b33b2c72c3b9c79130c10104836a3505c96cb18ac1be1297c0fce1af0 AUX postgresql.service-9.6-r1 1477 BLAKE2B 2a652d5b2892f3a52f484fcc0b4f4dad09cf4b46c3739c3f805072040a26128cb2ad9a25d4a7c9f109a95696d739538d379af6bac53c656f5c41af45b6110de5 SHA512 9e2b04923f6ebec1424c0f276c58a6a0c4933f2de5e2a9776169227729afd06ce5284461be8b6ed70e5aaff2a68b9f96c6893d867d35761c9977f9847ccfe93d AUX postgresql.tmpfiles 39 BLAKE2B 25a5725af53c8e4e4009887e998172dd863ce218a5438351194548c4fc8ea15308dfba3602d5a922cf49b46015198268a4a4528119d8a74dcef4cc4c1767c052 SHA512 498060f2a597cf374f4fb31deaa2d6c5b00edef68efc0e71b82bfc20b717ae12518ba18fcb455a0c518ebba1a0868f38321470616151d02fa79b889a66dcb9f8 -DIST postgresql-10.5.tar.bz2 20284578 BLAKE2B af2bc5bdc7e69682dac38785ce4a10c2c5c04202f2c3cd4acbb9200dbae7eec75d83813ac4df84b5a8064e77167f22a4dd54c6e84a68e564642cb5d75effd0ac SHA512 1bad30ae88beca66f7e8b99b82e7f02aac1e9230b328e6e5a762a704cdd9dc767d924f5a66c68c93586badfef91b7ff336120a567ce970eaa58bb44c662ad48c DIST postgresql-10.6.tar.bz2 20350612 BLAKE2B b751085b8fce73efb2531378a553c8c956f5e05a0002de8fdc58c0f2a6cf2b9dfaff6bd621047a094a51e459bc8fc5b1658d6a754a396fa3b7aedc1024ea3b4c SHA512 5d4d5cee2a19ad1820c3411bc4851904e3059cdcacc837350694d54d7d59260b66c565c72cc14a3a10541a8fc49c5185f08f57b7a8c7e4c64ed2614da6e1201f DIST postgresql-11.1.tar.bz2 21263173 BLAKE2B d762b6e8b0e7b08b16ed252687118a0a4516172e38e8940879fd050f72d19ff045af949e72977a62c2ce0a788af7d42c9bde7748347566bec3694e337bba6f73 SHA512 35d00984e9f5f063a5b96e97aa1b40381ab76d07b2336bda5981fd80bef1324f56eefca5069ae78770ecd6ece5df85264e599fdb3478ecb71d4fdd0d7b6becca -DIST postgresql-9.3.24.tar.bz2 17042985 BLAKE2B 976debbc2a072cc307e22beac1d59352ecc214b9879284e635f30295d1f46ad2e0542ffc5f62639527be870afe46ea5daf5b8b2d3da9a069adf1701218def968 SHA512 3d457b6218eeb8da2d8dd134dabc7ec8000cad5863870079b85ce00d94218fa049146290a8389fec15e57d586b0edee9810cdad85f36cbabce49b6b4378ce1ee DIST postgresql-9.3.25.tar.bz2 17067593 BLAKE2B fd9ca5685e5511dcaa72da882b674846dcd5a16227e5b33ae06701fe7881df71847666c37925033c6cb01c916111a8f76df134491645f4d1e1dd48a008bd2831 SHA512 319e12b73853b74f5ef2c520d64795bb586ffd495ceab6518f7844de6e0a054aea821976c470108d346f8090c7d3949920d9c435432e33004b7caa7a77a5cdca -DIST postgresql-9.4.19.tar.bz2 17879273 BLAKE2B 775a8748218c40440df91307107d46a35bcb3b2baf1c383014684c15d06c0026548770f88dccb1c26c3247813761e4a43003c50fe930041afc5701cddabfbde3 SHA512 38e2f1f25bd80fdfdec728cd4a3fee6696ca051e496f0629a0a554ea013bfb9bb83ef5659b00130666462a45036a648cf880a2f49693a8ef2edbde938e4dd830 DIST postgresql-9.4.20.tar.bz2 17905682 BLAKE2B cb65228f8e78dc8b6303a06480a68de58ecac1fefa1342e4563f2c4051c9f5506b366b36c2dbd54207d25ae497625f8fc5e3e771174a6b3ec33c3c19d2c9ea08 SHA512 664c6e97979f38d263d1dc75a7db442f193a230435cad43ddfa2afcd42ac0d73b2aef0e846fddcc9008cd6d89cba2d5c0a4db93b111665646d3ff4d8f6fbe1e8 -DIST postgresql-9.5.14.tar.bz2 18687959 BLAKE2B ac377b5e279d9e8179a94eb91d0cf1a7e3f6443c860d68a4540357d80128fbc54ac1ffec198725b2a783a80448f8a625556f2e6018162304d65659982890d46f SHA512 9b5ebc8dc13bbdbd5b5bc02552e2b9b5029d899a80e82b653542c735868590ebe57d586951bf036c5abd28aae325c71cc69536f88321d50dd3d254f8ee0cfe35 DIST postgresql-9.5.15.tar.bz2 18707696 BLAKE2B f1be26085953d5a15a6545aed3527b9eec6eb57c72f2e05401e43200e628b3a42ee824dd1cb0138556b97fe4922a991489dffa77329b653475874766c1d5b944 SHA512 2ea241b6751a2812c689da9bde40151ebb7cdabdd14e93d92f8bea1e3fcf5bc0d4854834999f33270329e22a09c5aeaf8d59d36ca6e8860704f81f3adcfb30d5 -DIST postgresql-9.6.10.tar.bz2 19991204 BLAKE2B 3d99296b5045a0b56b89257b2aa3f0c8be1108428acd77469b8db94200ad6b0b8d2fa84c73f652f79db56620c46928524d2f3a1a265ac332eb36c0625b800f76 SHA512 960a32c86466f9d5f5491ef163f5c4a99cb5de7312d13371e2223b1d156e31eb2a23ed478e6654bcbb7bd19db9470aaf63473ff661c11c60971b92af5e9daf82 DIST postgresql-9.6.11.tar.bz2 20009048 BLAKE2B aa3e5b1e63c983226ea71737982e62eaff655af7e0f55f20ec886f5d7406b1e30e2fe5378b0dd1ef59e777f862ccc2386121653853d4c186a1b4853a9bbb1591 SHA512 a4314f92d1a661af4076d8c120533ecae76d91461043b8a6ad22dd6e5b562e0bf019bc7f3157a26d9666ba5866e254613ae5b690310168b029795dc088f8c060 -EBUILD postgresql-10.5.ebuild 13694 BLAKE2B cbc3b1250d2b50dd7a9c318a9c610506db4b2593b013b2d89a573276ab8604cff741a1a3ca03a97e3c9a6bd7392762f821caf90d642c9a05cc9ca0b411340bbf SHA512 4b6fb894e8d5196139a56b897d3a06169c35def0d7e472ac8332987445f7c7ce72568b3b7a45bd7e8dac651108731761c413296864b0c9be4a617217d49ef3ec -EBUILD postgresql-10.6.ebuild 13817 BLAKE2B bb4a8acc19b31031663f88c98206de6db356bc911ae7c332ec7c69795892d33e0046d7de6b0aedea5f8314897424527b44d5dfa5acb0505a74574fb59f88934d SHA512 354b7a202b7fb13a9f49a86e6680bc5d5ec3cc1a292c9edac85e8e7700c04cab00546cfa294ebfaf8e3bfceaca476ff76fca15377df73b6205043d81896d9068 +EBUILD postgresql-10.6.ebuild 13813 BLAKE2B c5b6ef7c257632a9c296a40c845c9b147c6b04e327e0706629b9e832775013208cf0f03585a57d6a4979d005f8bb17dd6160cc6669085869748a9c433b9a2ec5 SHA512 8196ba1dc122a0d1c88aa428322f56eea3b6ec5f6e3588b07da2082780dbda5f78df8d095d850fe9ad72e7590c356ebe563662b13d32ab5a0178305b8ccdcd2b EBUILD postgresql-11.1.ebuild 13751 BLAKE2B c86eb35ea10ad4cdb7910fb89b6fdb733bb2594960257d2023aee0741389818f339f0dc646a1b4d8310d84982c95a1ccac7ae90dda126dd9a8e8999f20a8ad11 SHA512 f74e3d23c3c8b4abb6fba146199dad2be2014d950d2cc7038782a4c2d78cb73389e7332b43ae216a5fd3baa0bac763fe4d343aa7b2e4f118da53095d1886d29f -EBUILD postgresql-9.3.24.ebuild 13747 BLAKE2B 12e74f2f7bc2b18507b5c4e07d093cebd96406c6d981fbcaa6c2851004183acfac3e3fb882e1eea662e8cf1d35c10a1bcd6ad2820a5770874f04ad9cf508c387 SHA512 c89150f9b09e18b196d267dbec2c6539d3eb1ed6326193681249770c5d1ad42e48cffcad160121497dc8dbdd692994bd2704f581d52d029ba4dff5178a773746 -EBUILD postgresql-9.3.25.ebuild 13565 BLAKE2B d9c011373e4bf60577f8b54ff4008effbd800d0598f600f071bee0d109b83930556bde74649905b86951978775240525ab45a2e66e1ba6a23dd8a9a94dc68d68 SHA512 0ee0f0f5c2ad70fa97d2aa792e4e86d463f90b96483b91b11553f1382b75b9fcb4c76f9fd105351a3ab1e419d1cb937e83b30bb1a29d7cfcab849075266b1207 -EBUILD postgresql-9.4.19.ebuild 14557 BLAKE2B 57446276df8b11ebe12ef5a4b3e95dfc2892cdf93cb1a40117f0e7ae5774e0ba1a4a08b2306d971625636d4f0bddb4d0395bc6671397ef291c0251a31bc37256 SHA512 05b6604f17b63442a1eda4673a702eab7bb0ac4af87dce7c9f56085573768aec408aa441873317cf610e379972221f68d49c19f47f7be48b1e6a74809d13c407 -EBUILD postgresql-9.4.20.ebuild 14375 BLAKE2B 334af76498eec538a8af8bf9b0b318f8708f89f3489fc93aaa56b272a703f31953a1f0a03a9fa58e12f4ab32368b93ba2bc6cfa3936067dcf53a083ec0387c45 SHA512 fcfecc1e6255a00b829584eea10bea4ad7fdada2543a73cbb67385d2f02a44b2406c44eddd3e1b691043b00caa2bf40dc07b749113d1dd31036d644f93e9d73d -EBUILD postgresql-9.5.14.ebuild 14785 BLAKE2B bbd02c18eb7e6b6c9bb2f3e4b4010bc1aadc0aaabe158accac75b1f692c8905d565647bac95c46b69003f70ce6608017a877e74e37e915a2827f5a6f35a732a5 SHA512 2ae77b20602445192062ab5930cc518c3524aa8c57c4aaa4923ec15b924f3b166dcd51dca32a19618d3055214bfed7977c4630dd40b6967aaf491f1688aaf717 -EBUILD postgresql-9.5.15.ebuild 14603 BLAKE2B e43248abb32608d97b6d900ce2de1fdebdcbb673deec0fc40f76de1eab02074789de4476b8b22e1a7bd3987c40e03adf398f43e93f8f4c699d84c077f8f26169 SHA512 c2d274e2083c1ec45c09a9738d56ae6d10c91f9756a4e6110e5167816f40573866ca6264ac4050ef168d85b9c816ad26097d94f4c0b81db2c17b5395a8c3d42d -EBUILD postgresql-9.6.10.ebuild 14927 BLAKE2B 36ba33cfc700526cd716243a838a9b52a3823feabf53fe7045aca86e54c048a0c1e5c7c4950e33d131e29a96e7f00eebe2a366e46912a942c871b799c5df8a29 SHA512 0e547e8a39b0c96ff4d100d42ba1113aa87f537f14ccd242436270a6972db3c09690a9925d869c0256342e89687421b26e18fd210313dce3b23dd4062c1ad1c6 -EBUILD postgresql-9.6.11.ebuild 14745 BLAKE2B 864b2bd0e3e38eec48e79c31c65d59cddb42daf9fa61d9c7d4089ca5c22a955ce944fe655959ed5bca65ba59cb3eba04e38aa0afb578e836a5511c87d84630a9 SHA512 b193e427dba98a7f4b1abb2138c06a00d1d13fa41e401f96374ce3cce2048309c4ffe9112eb102e80541aa4b6a28f0e6834e2c195f10471529abb68285dd3798 +EBUILD postgresql-9.3.25.ebuild 13561 BLAKE2B 8f3e75179dec828e49786bb1fb52ecb5488c5edab4dcc775b42e2343261f1f1cc55088121d40074cca5b89c243cbad42d8468b175a17bd86f8042e8b191f04c1 SHA512 7bddfe493a2295730e690f431f94b6f2d713cf9261fbea08c1dc380ebc7f29e60c96a045144d10ef6183473a340c2b8668f52e5fa05107822ba0e5493c208c40 +EBUILD postgresql-9.4.20.ebuild 14371 BLAKE2B 7f595656f7d398f89e9c34423dfefc97b5474dc8ff2cec61734041b62b1681e7055210eee5ccbad1a2e0ab364a44438310e93ec9d7937dd8910e03320ad88204 SHA512 e720d9f3bc8d4791cf38b7015498f90a2408ac5d243bd0ec3471fa3ad5ec1587fdab17fdb244cde35ae80b7bc322bf639c7160e84b7d64cda6a5cd1fd8af3f21 +EBUILD postgresql-9.5.15.ebuild 14599 BLAKE2B 8f0b7fc2b6b49a04996ed19cdf6a6b212c8f1aea60cbc9ea6809ed6913e67831cfe98ebc266ff7379f69be58b1f672ce0028e9d453932244759f75598c04d8a7 SHA512 522a170ce59a87e09ad8656ba1047b41ba41104edfcf5950260389e278725f076cd4ebb02ea5a95c8d9c8b372a80ec66d18be9bb7e08c70fea7116bf09a8fd1a +EBUILD postgresql-9.6.11.ebuild 14741 BLAKE2B b720b399b96f67923906a3dc1ddaa71610113d42eb3c301f03ef9fc67dbf7dc46b7ddfb2d252b8685b16382813b7e4890f838e8660988c334d457f1d2c7784fa SHA512 ceb1cf6e13e24dfc80d68c5af141adf04b8abfddc11aad9ec7433ea28625071a10cf89241842b7f087f564c0666592413110711fafa66f455cd1dd3bac11b218 EBUILD postgresql-9999.ebuild 14262 BLAKE2B 43b6b2ab7b5137e8a0ca2edf28781d30f7a27afbf01ab718f4742c4ec981071797074f6dcad9995796d30bbd0b1e39d4ee7a63a404e7246a9bafbb5298a12c47 SHA512 29e5bcb9463c6cb8a43e8ba04840aacda074ddbfdcccd1dafcbd66e13d5c20a765c53f637e1c8993fe6647c286f7ef40254f3211f3341054c96bec1f327393fa MISC metadata.xml 715 BLAKE2B 59ad51ae06a697fe649054d9fe13040423f425b95abdcf3797e1d0d5abba8c62d54cc8c1afb0be0d0a29d1a39d379912bd931925b5df480fb0bb9b238c36e598 SHA512 03027757eaf95313a6825710b1054a9671aa8396381789397006dfe2f66cd41e85cde418e792bf7d71d7db2413905816ff39685774219c1ea5e8b8d35c5cffd0 diff --git a/dev-db/postgresql/postgresql-10.5.ebuild b/dev-db/postgresql/postgresql-10.5.ebuild deleted file mode 100644 index 7170883aee52..000000000000 --- a/dev-db/postgresql/postgresql-10.5.ebuild +++ /dev/null @@ -1,460 +0,0 @@ -# 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="https://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 "https://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 " https://www.postgresql.org/docs/${SLOT}/static/creating-cluster.html" - einfo " https://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-10.6.ebuild b/dev-db/postgresql/postgresql-10.6.ebuild index 8996fc7b18ba..46440b2e9c30 100644 --- a/dev-db/postgresql/postgresql-10.6.ebuild +++ b/dev-db/postgresql/postgresql-10.6.ebuild @@ -11,7 +11,7 @@ PLOCALES="af cs de en es fa fr hr hu it ko nb pl pt_BR ro ru sk sl sv tr zh_CN inherit flag-o-matic l10n 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" +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) diff --git a/dev-db/postgresql/postgresql-9.3.24.ebuild b/dev-db/postgresql/postgresql-9.3.24.ebuild deleted file mode 100644 index e1ed1641a5fc..000000000000 --- a/dev-db/postgresql/postgresql-9.3.24.ebuild +++ /dev/null @@ -1,450 +0,0 @@ -# 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="https://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 "https://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 " https://www.postgresql.org/docs/${SLOT}/static/creating-cluster.html" - einfo " https://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.3.25.ebuild b/dev-db/postgresql/postgresql-9.3.25.ebuild index 20a0e225cdcf..323262f88679 100644 --- a/dev-db/postgresql/postgresql-9.3.25.ebuild +++ b/dev-db/postgresql/postgresql-9.3.25.ebuild @@ -11,7 +11,7 @@ PLOCALES="af cs de en es fa fr hr hu it ko nb pl pt_BR ro ru sk sl sv tr zh_CN inherit flag-o-matic l10n 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" +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)" diff --git a/dev-db/postgresql/postgresql-9.4.19.ebuild b/dev-db/postgresql/postgresql-9.4.19.ebuild deleted file mode 100644 index 6e9dd5d11fe6..000000000000 --- a/dev-db/postgresql/postgresql-9.4.19.ebuild +++ /dev/null @@ -1,482 +0,0 @@ -# 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="https://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 "https://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 " https://www.postgresql.org/docs/${SLOT}/static/creating-cluster.html" - einfo " https://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.20.ebuild b/dev-db/postgresql/postgresql-9.4.20.ebuild index bb3638e9fbaf..0bff71b93931 100644 --- a/dev-db/postgresql/postgresql-9.4.20.ebuild +++ b/dev-db/postgresql/postgresql-9.4.20.ebuild @@ -11,7 +11,7 @@ PLOCALES="af cs de en es fa fr hr hu it ko nb pl pt_BR ro ru sk sl sv tr zh_CN inherit flag-o-matic l10n 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" +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)" diff --git a/dev-db/postgresql/postgresql-9.5.14.ebuild b/dev-db/postgresql/postgresql-9.5.14.ebuild deleted file mode 100644 index 003f5398f4ef..000000000000 --- a/dev-db/postgresql/postgresql-9.5.14.ebuild +++ /dev/null @@ -1,488 +0,0 @@ -# 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="https://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 "https://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 " https://www.postgresql.org/docs/${SLOT}/static/creating-cluster.html" - einfo " https://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.15.ebuild b/dev-db/postgresql/postgresql-9.5.15.ebuild index 2e76e7fce77f..6d1dea2a84be 100644 --- a/dev-db/postgresql/postgresql-9.5.15.ebuild +++ b/dev-db/postgresql/postgresql-9.5.15.ebuild @@ -11,7 +11,7 @@ PLOCALES="af cs de en es fa fr hr hu it ko nb pl pt_BR ro ru sk sl sv tr zh_CN inherit flag-o-matic l10n 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" +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)" diff --git a/dev-db/postgresql/postgresql-9.6.10.ebuild b/dev-db/postgresql/postgresql-9.6.10.ebuild deleted file mode 100644 index c5669d4179fc..000000000000 --- a/dev-db/postgresql/postgresql-9.6.10.ebuild +++ /dev/null @@ -1,493 +0,0 @@ -# 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="https://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 "https://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 " https://www.postgresql.org/docs/${SLOT}/static/creating-cluster.html" - einfo " https://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.6.11.ebuild b/dev-db/postgresql/postgresql-9.6.11.ebuild index 6da19879ca11..6fed77d2d3f4 100644 --- a/dev-db/postgresql/postgresql-9.6.11.ebuild +++ b/dev-db/postgresql/postgresql-9.6.11.ebuild @@ -11,7 +11,7 @@ PLOCALES="af cs de en es fa fr hr hu it ko nb pl pt_BR ro ru sk sl sv tr zh_CN inherit flag-o-matic l10n 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" +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)" diff --git a/dev-db/redis/Manifest b/dev-db/redis/Manifest index c924700a2eeb..a4d2e5209d1f 100644 --- a/dev-db/redis/Manifest +++ b/dev-db/redis/Manifest @@ -17,10 +17,12 @@ AUX redis.service-2 253 BLAKE2B 0b78b45eaed3c7adbc68703968e1c843eeff785261cf7f46 AUX redis.tmpfiles 61 BLAKE2B 1c3bf8aa105940c408163f61c63ed16b86de7a979cb5143d15700cac329970f351cb9b9377aa82e6f4dae377b00c1710a1e0f54334f007cfed64551f761034d4 SHA512 741ff5a4df5b04e7af4e81357812bf5b6cf992bc18b6052074aef134401d0a92703a2e41f52966012c05ea80fac5636435c8d3e6ed55e62a5711526ba67ee738 DIST redis-4.0.10.tar.gz 1738465 BLAKE2B 572cbb3d2d5d7209f81ebd53ee68f40b404d0e4623bd1864845bf1f47135d4e097a6974d346ffd845d848c39ace6d3fb9f1a347e0c9d16d06d22aed7a8b3ae7b SHA512 0978dabaf637e61889d492fd3629acd58ca8fb0c0088cdd7036ffd1a7ed3f018c107039d4c96bd61d0b7d35757df2366d051f57d77ffb5642aca0e5651b30603 DIST redis-4.0.11.tar.gz 1739656 BLAKE2B d94f380ad1600e58942cc5b27b512984396cdbb06ea6e947c7d7ce5b8ecdb8a2a56c6356af2caa82a96887a610716c9575b78eb2f46da89efb940febc1c30f22 SHA512 f0054af9ca2143731a397b2b21285387707b7f40d9326ba15225feb1a2ff470fab5194308342f63bbe1081f84c7e9ef19543c5a8e3eae49e17bfc515c64201f0 +DIST redis-4.0.12.tar.gz 1740544 BLAKE2B 620dba8b81fc76a46880c3a4a7ee9d9835e7b19e6d321598a717892f6f03fa805db79847442744a2af8f77ae403b6e1df02299da9a0835f6092a74e3804dde48 SHA512 d19020f7ebed9ad5d04c6e1cb7e2a49dd1e226fe17d86e860df11bcb798c61c09f6f9fc3572a7ee32232ac34ec5eb1d6189f8139b5991bd87297c5243c3b54d2 DIST redis-4.0.2.tar.gz 1713990 BLAKE2B 307ab76b336f7520e14a23a1577c46e1b63cc5a5a5b6afb725cb87934fbcb62107085671fd1072d1142ce8e92f069e6b6064c9f4468335bc6997897c8f494471 SHA512 1458909c6fc16cff8ca5e6dddff23b988ee1e447f2d0bccf5941553b22bab6abb851732b3fe53dafb8a69d6c0939c3ce7e0686d51e03be720fb018c038d3b1b4 -DIST redis-5.0.1.tar.gz 1951542 BLAKE2B 6081acf2ed6af5a5790ad3164fa0008f934360c8b2b88794a60593dd954a0104b38b826f3de92add609b803c87c80266d1494c47e879c797525bb4a6f1a095fc SHA512 eb0f10903a8e87c0ca33597060b611a11c42576c64dd6d648b59cd9007d4ee6fe7c3762daf428c2d19ab05576a4b44dc3663fe1267c60acca58eeb2bba709e58 +DIST redis-5.0.3.tar.gz 1959445 BLAKE2B d1c3247d77aa3b1076d0e1a0dcce74dcfb14a0ad3776603ef8154d7868f9f3efcf2138cb08581eee1974e9d76658d07456d6e9795391321b1f1f8bca7f9d40f5 SHA512 5915b14502438bf7c3f56e38640dda54b095bd87501aefa6e386c9cef48e8d1e625e980643d128d91b8cab26dd51d5d99ca66fa638dc04e5ba315fe43f11f58b EBUILD redis-4.0.10.ebuild 4069 BLAKE2B 33bf7fbd67db2035d3bdc92f01f1252c9a27a1a3c736f555d21c6670920e03057b30bc51594898414dc5a18312c1af5f74f01b86ede936025cb44d6f0e478855 SHA512 52c9a38d8823fa87ddb8aea6db611bf43b0e3543eddb275a991da075095e27758de2f5456685a01eb79e3166a642a38256cd95f75d5cf7b1a432dcb3af29f671 EBUILD redis-4.0.11.ebuild 4074 BLAKE2B 609631167471b07d3caccad80d601e4d73a594a97979b25f828c171c341f2f8d24c12e2399ad81b8952e5f459f0a340726a4e8ee69a1f51b0626b52d18e7ce3c SHA512 86c003235c630c87a551b31f359a5fe824d7114016f22788cf8dc84dec56d5bea24c3fdbc86efd15734ccb636394bb6fc4f4d757566ac857605fa23c841db4d4 +EBUILD redis-4.0.12.ebuild 4071 BLAKE2B 712cefef53f55c9e60a1461a5bc843866fdf60815ecb42675b929b6b4fdd98dc270fa3544e6739ce22616f5f5a15efac7ecb4f78a910271bb15acaeacde07516 SHA512 2df15597298b24a7c2f317ce52d9efdb810a558da8f40902cda5865e43a8f59d699f0c92f025bfdfae183ac6b019eb0ad130a745ace48d8865a9642c0bacd7c1 EBUILD redis-4.0.2-r1.ebuild 3807 BLAKE2B 7dbd27ad7593b53f1f7184321ba33f140072ef946859b33cf8dacf7eb98c9d7398c512ce403132bf3b9fece12e73cc0e4dd5cca1dbc220d50dea105ea87ef774 SHA512 d7744c01cbf4b6f1fec17ce7733a31f4deb3e925afbafb3a9aaa360d9598aff78b44c3bcadc54e82c809ff6ba0211e475d32f96ec4244f6081e3f5cfde1b1daa -EBUILD redis-5.0.1.ebuild 4011 BLAKE2B b99054eb7a1cf93cfd293b4884098eb12e41564f2505ba49d179c824a7e78a236f03f31198d3073ea882c6df327f2d5668f4e043632da55b5a25ef2c865000d6 SHA512 cf61adaa5d6e003abdd5e507f9d540699fe5d3ef593a1cd63507de9e8475a44265ad2385fb8f794e11f3f0908509b8552748f5280810a5ae2bc2d84d41110a16 +EBUILD redis-5.0.3.ebuild 4011 BLAKE2B b99054eb7a1cf93cfd293b4884098eb12e41564f2505ba49d179c824a7e78a236f03f31198d3073ea882c6df327f2d5668f4e043632da55b5a25ef2c865000d6 SHA512 cf61adaa5d6e003abdd5e507f9d540699fe5d3ef593a1cd63507de9e8475a44265ad2385fb8f794e11f3f0908509b8552748f5280810a5ae2bc2d84d41110a16 MISC metadata.xml 440 BLAKE2B b853160a8483ff59c413a37b8fd1703283cc80c5ea9de092654dd1809bdc6ed3dc98fb6285a3f33bfea136bdf3db4065b3e22c34f7458e9e83aa63e137a13eb3 SHA512 7c125eed761e5f4c868a3fd5539d5182b9c4da6ddeb0cb82a46dc6d0cc682410eb100168ddb4b5fb214d6092395394cefef5bc8fd3dcce818542d30748f9bd17 diff --git a/dev-db/redis/redis-4.0.12.ebuild b/dev-db/redis/redis-4.0.12.ebuild new file mode 100644 index 000000000000..596754bc3a07 --- /dev/null +++ b/dev-db/redis/redis-4.0.12.ebuild @@ -0,0 +1,141 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit autotools eutils flag-o-matic systemd toolchain-funcs user + +DESCRIPTION="A persistent caching system, key-value and data structures database" +HOMEPAGE="https://redis.io" +SRC_URI="http://download.redis.io/releases/${P}.tar.gz" + +LICENSE="BSD" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~x86-macos ~x86-solaris" +IUSE="+jemalloc tcmalloc luajit test" +SLOT="0" + +# Redis does NOT build with Lua 5.2 or newer at this time. +# This should link correctly with both unslotted & slotted Lua, without +# changes. +RDEPEND=" + luajit? ( dev-lang/luajit:2 ) + !luajit? ( || ( dev-lang/lua:5.1 =dev-lang/lua-5.1*:0 ) ) + tcmalloc? ( dev-util/google-perftools ) + jemalloc? ( >=dev-libs/jemalloc-3.2 )" + +DEPEND=" + ${RDEPEND} + virtual/pkgconfig + >=sys-devel/autoconf-2.63 + test? ( dev-lang/tcl:0= )" + +REQUIRED_USE="?? ( tcmalloc jemalloc )" + +S="${WORKDIR}/${PN}-${PV/_/-}" + +pkg_setup() { + enewgroup redis 75 + enewuser redis 75 -1 /var/lib/redis redis +} + +src_prepare() { + eapply \ + "${FILESDIR}"/${PN}-3.2.3-config.patch \ + "${FILESDIR}"/${PN}-4.0.1-shared.patch \ + "${FILESDIR}"/${PN}-4.0.1-sharedlua.patch \ + "${FILESDIR}"/${PN}-sentinel-4.0.6-config.patch + eapply_user + + # Copy lua modules into build dir + cp "${S}"/deps/lua/src/{fpconv,lua_bit,lua_cjson,lua_cmsgpack,lua_struct,strbuf}.c "${S}"/src || die + cp "${S}"/deps/lua/src/{fpconv,strbuf}.h "${S}"/src || die + # Append cflag for lua_cjson + # https://github.com/antirez/redis/commit/4fdcd213#diff-3ba529ae517f6b57803af0502f52a40bL61 + append-cflags "-DENABLE_CJSON_GLOBAL" + + # now we will rewrite present Makefiles + local makefiles="" MKF + for MKF in $(find -name 'Makefile' | cut -b 3-); do + mv "${MKF}" "${MKF}.in" + sed -i -e 's:$(CC):@CC@:g' \ + -e 's:$(CFLAGS):@AM_CFLAGS@:g' \ + -e 's: $(DEBUG)::g' \ + -e 's:$(OBJARCH)::g' \ + -e 's:ARCH:TARCH:g' \ + -e '/^CCOPT=/s:$: $(LDFLAGS):g' \ + "${MKF}.in" \ + || die "Sed failed for ${MKF}" + makefiles+=" ${MKF}" + done + # autodetection of compiler and settings; generates the modified Makefiles + cp "${FILESDIR}"/configure.ac-3.2 configure.ac || die + + # Use the correct pkgconfig name for Lua + has_version 'dev-lang/lua:5.1' \ + && LUAPKGCONFIG=lua5.1 \ + || LUAPKGCONFIG=lua + sed -i \ + -e "/^AC_INIT/s|, [0-9].+, |, $PV, |" \ + -e "s:AC_CONFIG_FILES(\[Makefile\]):AC_CONFIG_FILES([${makefiles}]):g" \ + -e "/PKG_CHECK_MODULES.*\<LUA\>/s,lua5.1,${LUAPKGCONFIG},g" \ + configure.ac || die "Sed failed for configure.ac" + eautoreconf +} + +src_configure() { + econf \ + $(use_with luajit) + + # Linenoise can't be built with -std=c99, see https://bugs.gentoo.org/451164 + # also, don't define ANSI/c99 for lua twice + sed -i -e "s:-std=c99::g" deps/linenoise/Makefile deps/Makefile || die +} + +src_compile() { + tc-export CC AR RANLIB + + local myconf="" + + if use tcmalloc; then + myconf="${myconf} USE_TCMALLOC=yes" + elif use jemalloc; then + myconf="${myconf} JEMALLOC_SHARED=yes" + else + myconf="${myconf} MALLOC=yes" + fi + + emake ${myconf} V=1 CC="${CC}" AR="${AR} rcu" RANLIB="${RANLIB}" +} + +src_install() { + insinto /etc/ + doins redis.conf sentinel.conf + use prefix || fowners redis:redis /etc/{redis,sentinel}.conf + fperms 0644 /etc/{redis,sentinel}.conf + + newconfd "${FILESDIR}/redis.confd-r1" redis + newinitd "${FILESDIR}/redis.initd-5" redis + + systemd_newunit "${FILESDIR}/redis.service-2" redis.service + systemd_newtmpfilesd "${FILESDIR}/redis.tmpfiles" redis.conf + + newconfd "${FILESDIR}/redis-sentinel.confd" redis-sentinel + newinitd "${FILESDIR}/redis-sentinel.initd" redis-sentinel + + insinto /etc/logrotate.d/ + newins "${FILESDIR}/${PN}.logrotate" ${PN} + + dodoc 00-RELEASENOTES BUGS CONTRIBUTING MANIFESTO README.md + + dobin src/redis-cli + dosbin src/redis-benchmark src/redis-server src/redis-check-aof src/redis-check-rdb + fperms 0750 /usr/sbin/redis-benchmark + dosym redis-server /usr/sbin/redis-sentinel + + if use prefix; then + diropts -m0750 + else + diropts -m0750 -o redis -g redis + fi + keepdir /var/{log,lib}/redis +} diff --git a/dev-db/redis/redis-5.0.1.ebuild b/dev-db/redis/redis-5.0.3.ebuild index 2b13aad0139e..2b13aad0139e 100644 --- a/dev-db/redis/redis-5.0.1.ebuild +++ b/dev-db/redis/redis-5.0.3.ebuild diff --git a/dev-db/sqlite/Manifest b/dev-db/sqlite/Manifest index dcfe922632bc..e7e73adb93d1 100644 --- a/dev-db/sqlite/Manifest +++ b/dev-db/sqlite/Manifest @@ -11,20 +11,25 @@ AUX sqlite-3.25.0-nonfull_archive-build.patch 416 BLAKE2B 37faa30235c1b668d3cf51 AUX sqlite-3.25.2-full_archive-disallow_window_functions_in_recursive_queries.patch 1481 BLAKE2B 01c7d129328820c2c0ad8ebd74bf4222eae131f493d6db968312d8b76def9c024b654de5d2a4d0c87119a1d073717879d4610a7819244a72d8894218123347cc SHA512 7ef354b8633d2a6d58e7a99acbd41d353ab83eac6f08a1998763a366a2cbbac3e2fdd6be24903e1fe403180a512d5fa7311db2299001be4e7583ea70069a980a AUX sqlite-3.25.2-full_archive-tests.patch 1549 BLAKE2B e17fa8e556518f6c4d22b225b721e9f2592a111f8960374c4aee326daf7a1bdfcefc7c6415f8d03a0f6c1f69544ea031a067b5c24bc24bbf20e9d20c9a56a0c6 SHA512 f448c8b77f01ede8b6b63a583916bd1ef9d75d6b71340e43a694dd0d888e4de0bd7cd10c1de0ee64903048f86544c9a88de5fb7b9c0aebfa159e62aae6df4f4b AUX sqlite-3.25.2-nonfull_archive-disallow_window_functions_in_recursive_queries.patch 572 BLAKE2B cc91956ea6d2187c3a3f2f15384173624383958e222b4a6d5f5f16494fa2a602a952054b1d670e043a8eab46c338404101ef6d58f50584999d6d3edf3997ed43 SHA512 e8461af692241475501b291754479e035a38edcdde99c086f069d75b6c2527e74abd606d4fb1551a5d7be4c80d9b21aea10d6dae6fb5b0b7fcbb003ac94b3583 +AUX sqlite-3.26.0-full_archive-build.patch 13843 BLAKE2B 4850ddf89e129fe3d71844caf9b7914e9df9fd38452c39f6b19c5a2c5e510ff0e80a376d90688da4bfccb9a460f65db1fc2001ac315336a705d67f52ffefce40 SHA512 01a1ccd3aa3e622c395fcc61810bd658894eec8c20bd004994ab0ed90b9f7c565405a1dbb2395b7b1df241b709a9f730e6453190d8c4a82abfa754d5df0db597 DIST sqlite-autoconf-3230100.tar.gz 2675362 BLAKE2B 2dd075f0dc05425563a8e679bb463724296294b5845746f06b51a24c9601be203ee0f2213f43eaca0757fcbb54b777cee746d873c98f377a0b010d8066d7fcb5 SHA512 52cae7ed0678b763d40373ae260672b906861379428529a58a017cbc82419a6b109e0b2ac7ff5532e6d941693cc4ab68e6563f424b92b3b27c8916859a6e4826 DIST sqlite-autoconf-3240000.tar.gz 2699252 BLAKE2B c8beb3b90bdd06f76cafeba859cbf91cf4d0cb313fc9202d210ccbad5fca7f9a062ede63387e814d664f0ae38bcfa48db222f466dbcd429fecfb53cfdac155c4 SHA512 eaec866de26003ec36559aab15dd18dc0e6029453002a4eec5e176bb35a712b8b06c235436e6c1a226b67c7eb90d7a26c2b3b3d9a5e6e92a5af485236b77c878 DIST sqlite-autoconf-3250200.tar.gz 2763876 BLAKE2B 3d97cc60edf8f91855215bd59260362665c8ec7699510f2e07c7ba57e10c400dcc99bb392e216f798bef1ffa7120b48ee62ce144a871741ef57b3aefeab875d6 SHA512 5ef9a6dfbb0822257af1a3a379785a95ab02edecbbb53b57074ddd0b8dc294fc07cbb9a8a7acc4e1640fb1743525ed6331fecebbddce01bc017330b20e127ad9 DIST sqlite-autoconf-3250300.tar.gz 2764429 BLAKE2B 6a79a8785c1e84002c031a86c6563e937a45d6ef4aae1b941d42c06cb8630210c33583f25e41f3f90b181ce47da650f81845ad88cafbf9c764164cf8b5d92e81 SHA512 5bc501d15367e097f4070185974b0c3a8246c06b205fb2258ed18870ff3fbf120ac5e0ba031a6744af89f7659206e28e7de2f0367bdb190b8412e453b43de4ba +DIST sqlite-autoconf-3260000.tar.gz 2779667 BLAKE2B f4d737eb2249ce32fcb7541ba92f7362d417e84adb5f5c63778b6f427b3270b7e0b16e19daaef7fc7e4fca9ab462c96cdb00c65a731a90102f6bb256a27d84ae SHA512 8c3306b3814a0e9bc69b741f62bdb6efc9f1e07163ca3e3a1581994465de163a7924223522e812d6b3663c1525c7012a6f6d73ad333556eba9f97ce9326fbdb8 DIST sqlite-doc-3230100.zip 8882546 BLAKE2B 1e80647e3789b9130a93e881933fb1260794d9ccf359969a16bdeb0df5a51787eaf8404641c4b760bedd45063d46f8874fd74a4da1fef0234f3d8e92db754d76 SHA512 d3a42621480a928446c5f71d0f2ee68e245b071971da38438f9070bd5bcbe1930ea5bd20e06c68543df75badd2e4565abc94420df50b7152c9cd129587471471 DIST sqlite-doc-3240000.zip 9030826 BLAKE2B 4444e3dd0ce782e19fa01c881e0b5453723419ef1cf95cbe751d759a264bbe288a5c23a2b6514ed459b99b11637349c02def68fed7df8625bfc161307e44564c SHA512 31e9046cea569d7ad1b3af176e1bb18cd59474afb6849871ead6e7c9c096f046162fb313a38684a8c944fad9f689c4c3c692be1d7dc6a8ef5a6685bbc7dfdab6 DIST sqlite-doc-3250200.zip 9229732 BLAKE2B 9bc4499c2934d15428dd30e0522362a2c2e703061c293f1b657f01d3945612760be3b4f145ddf76d9cf87953fae26884646887e53c0c55683ce42bc239dcf952 SHA512 a0b764ca0eea0e9719d46b6e1f92db78578457c8331976d4712c56cd10fc062fd73629686a0e45dfdeb505fbfbe0c53652a5e64507702ff4e12b62a2fc8d8211 DIST sqlite-doc-3250300.zip 9265285 BLAKE2B 0722f00d849b18dabf82d317eb0deeb5567534a9cb55e189f28b18e7a26b863190911a02a26e21cf39b3106e7e1a872c445a3d8b53876a16d245e77affb6abc4 SHA512 a57cefbb2338a87721fb34f7a0d19129a58fbce026f80719af7dbbeb7512c91ab59e07719d860cc1cf742807ab7b0b5f92cff3bf52f4dbbad8c6ca34ad0a68ac +DIST sqlite-doc-3260000.zip 9321276 BLAKE2B 8e3802212eb938a3997bf8eef971baf8802895a8c38e959b2409857228e9a92b24c3f51679f7dc4847df8d9800f0fff2c09e391b3e30de8b2782bbc5267d5d40 SHA512 e59f74369adb3ffe3afc235e4369101b8ba077f9cac34d524e2425278c3a30f63340613e5baa0fc3c693265525377b6830a1c6b5e97fb06702b89eb604b1eade DIST sqlite-src-3230100.zip 10849436 BLAKE2B 6bed0a45c83ddb51d665835d174f623b30b1c3b81562fdea2317b58d876a0852136fe4f8a3ebc7679676f366e19c84d0ad2f54d3d8c73712145099975f80cf1a SHA512 69a87b76860c3b172d9e68b0fc0b8c157b606375e2b7d793ce4bd4b898ef737cd721189bc6a3342c749e224e60fa96203d449668c49dff2ebdc682b49630a59b DIST sqlite-src-3240000.zip 10980065 BLAKE2B 201a59cb34271e5ac79e96e4e2ea64f8b61aa99c44eedf61c0a21752ad4376caaf7980a6923dca66266b1a315d9867871d0d172c17907b4147c15431aa212a70 SHA512 812c2df7179abb1e445b5b3e161c940b120c53366a7b2c1f0bfc3599cd9921e5543ba39ca3f297eeaefec318f10c15f630f00f9cf04133c7cd419a04f3bbdd0e DIST sqlite-src-3250200.zip 11381811 BLAKE2B 6183436f66c862c32d1dfd59ea4ccb5eaf3dd516ffcf9d7edf786e8fbf56eff3cb84d08e291b2e86fae25e537bed452aed693bdb0f0d6bb6581da86641013557 SHA512 7354af2d45c574ba867fab8aabc6ff903279f028aebed50c71019066df78f61a0b941564c572c87b0f3ed3e5783bf325a690a9957d775228fbbb293dd9a5ad37 DIST sqlite-src-3250300.zip 11384253 BLAKE2B dbc1d989b1f7ae26e34d629ae7926cfebacc0e3b9e07abb98ac6e6d2d801f111624d5b3f5a1d486580559ff0b42140bb798aa862df60946efa77d8b26c47fbd0 SHA512 7d6a38aea5626f7a32960fcdd109c647dd24a22ecf0772f01ffdba389f70fdfe6455f69733b22c220d4114a7d61d3d10097c23859d303e02d126988a1f663b65 +DIST sqlite-src-3260000.zip 11939787 BLAKE2B 89fc5294c203473a8817d23496b05b743aa9d64ac7c67c258432b6a48dfe41d554b09ed14820854333fe555442029e9c9ccea736be7b10be42d9184502938557 SHA512 02faacd831781f25a12ffc8858d648f481d8bbdb68814b18c4c96e3a661233d0e25d675b95feeb35eee4b5ea88e5e0a1fc5fbaecbe434d3f7246d80e81bff6a3 EBUILD sqlite-3.23.1.ebuild 9703 BLAKE2B 4e6cb6336b1bad31d56cdb3a1ea3ca32323b4280caaaa053221e1e405ea2edbd552860ee89934f66d68d19425f0632bea45eea33595cfb6f7e95c5b4bf5eb1d5 SHA512 7fa4f6ab562af73f00338da2e6aaef80751dfd7071c21abf64647cbf68b8e2180e524574c2f0bc38cf138bc8dd3edb7c75f4b3f2a28f788fe0cf108a158ef44f EBUILD sqlite-3.24.0.ebuild 9524 BLAKE2B dd5bd95346b77d111c1784a69feb6d44170375c82d7734420587d00fcc1f987fdb7676200f988c683606b856008f198b22999a8dd208a275b625702ba0341fae SHA512 0393124beded522a17bdd4f5690d0022f9646069ce735d79c316597743b036a06c0bd5a77635b428a78954920551876e10e55d1498305ec857b5d7eb2d4b05fd EBUILD sqlite-3.25.2.ebuild 9870 BLAKE2B 235bbb1eec1d35a1babb2bcfd4daa3f34fe69d4e5973b5fda452df9965bd083a64d15c273d89f25eb2168a72efb615606dcc0698e5e35787e070b16e186e491e SHA512 f467e23b508f8a2d7729f6bf02529b151b15d8b90dbf432512a1f2b122f2a3b2ce1135378dc57b7335d20153309e50df950e3150e05b01d9f068fd18a5a25575 -EBUILD sqlite-3.25.3.ebuild 9663 BLAKE2B b0ee178f7f720b440adf8f08309df9e9c12017bc80326207f734112a7323b8c8b5e3c68140c8c21263f91c6ec4fef5619277e7045da44d2e3bdd218fb20eee42 SHA512 0c0c1cc32b590b76c3b276f0e363240f4a70b1b2e1d594da4d0264c0968e92a86ddd958704cfc8ea709f3b9b0bf02244bae38ea00dc5f6ddf3427e8aabbb08a9 +EBUILD sqlite-3.25.3.ebuild 9655 BLAKE2B 1782d46088e9f933cc8405fd3fbef4dce951a7d93941ae971d5117bbde974d1769e5032e87ec997804593068935f61af7bbf0373f791db37f5a9c080feb427ea SHA512 df6d29c97c99ffc4ef6d482298b54c88cc7152aea0bdca5ca6459e5a72b82f908c28a2cced28bfcefc23cd896a7ccba18c71bd8fa85b90ef93c454d8d7f729b1 +EBUILD sqlite-3.26.0.ebuild 9793 BLAKE2B 6d6a788f176bd582d6030bc1e814d672c3add3e2d96abc49b4aa1655aed406d8c1dd1dbb83f4d599ffa32a0d833af1d99eb06078962fdce5a4190bfc350ca760 SHA512 6e047df4a21c4aa94e2e9248bb21ed5b3b97537db2b71a80de245b04fc4e017687afb53e336fd086d838253d46a69d28ddfd2babbb8b83d8bb2b92806db13268 MISC metadata.xml 723 BLAKE2B 8866fbde770e7b8582de27303c72df047db80e0d70b1a1ceca0951a05b51bb704452071ceb6c29ecf3704d523888351615d1798aaab092e6b7505d4c6e3698ad SHA512 40616710b1d4edd3e24b5ac0797c1c9b606aeacac9f9543722bc9529e7c2c704a0c10b0ca68a5ba6e0a0ee8bc605212e8a49a050c8687afbdd7dbf28d6d4506a diff --git a/dev-db/sqlite/files/sqlite-3.26.0-full_archive-build.patch b/dev-db/sqlite/files/sqlite-3.26.0-full_archive-build.patch new file mode 100644 index 000000000000..602582cf3345 --- /dev/null +++ b/dev-db/sqlite/files/sqlite-3.26.0-full_archive-build.patch @@ -0,0 +1,405 @@ +Move some code to libsqlite3.so to avoid duplication. +Link executables against libsqlite3.so. +Increase timeout for fuzzcheck. +Fix building with dlopen() not available. + +--- /Makefile.in ++++ /Makefile.in +@@ -311,6 +311,9 @@ + # Source code for extensions + # + SRC += \ ++ $(TOP)/ext/expert/sqlite3expert.c \ ++ $(TOP)/ext/expert/sqlite3expert.h ++SRC += \ + $(TOP)/ext/fts1/fts1.c \ + $(TOP)/ext/fts1/fts1.h \ + $(TOP)/ext/fts1/fts1_hash.c \ +@@ -363,8 +366,11 @@ + $(TOP)/ext/rbu/sqlite3rbu.h \ + $(TOP)/ext/rbu/sqlite3rbu.c + SRC += \ ++ $(TOP)/ext/misc/appendvfs.c \ + $(TOP)/ext/misc/json1.c \ +- $(TOP)/ext/misc/stmt.c ++ $(TOP)/ext/misc/sqlar.c \ ++ $(TOP)/ext/misc/stmt.c \ ++ $(TOP)/ext/misc/zipfile.c + + # Generated source code files + # +@@ -434,7 +440,6 @@ + # Statically linked extensions + # + TESTSRC += \ +- $(TOP)/ext/expert/sqlite3expert.c \ + $(TOP)/ext/expert/test_expert.c \ + $(TOP)/ext/misc/amatch.c \ + $(TOP)/ext/misc/carray.c \ +@@ -459,7 +464,6 @@ + $(TOP)/ext/misc/totype.c \ + $(TOP)/ext/misc/unionvtab.c \ + $(TOP)/ext/misc/wholenumber.c \ +- $(TOP)/ext/misc/zipfile.c \ + $(TOP)/ext/userauth/userauth.c + + # Source code to the library files needed by the test fixture +@@ -631,25 +635,25 @@ + + libtclsqlite3.la: tclsqlite.lo libsqlite3.la + $(LTLINK) -no-undefined -o $@ tclsqlite.lo \ +- libsqlite3.la @TCL_STUB_LIB_SPEC@ $(TLIBS) \ ++ libsqlite3.la @TCL_STUB_LIB_SPEC@ \ + -rpath "$(TCLLIBDIR)" \ + -version-info "8:6:8" \ + -avoid-version + +-sqlite3$(TEXE): shell.c sqlite3.c +- $(LTLINK) $(READLINE_FLAGS) $(SHELL_OPT) -o $@ \ +- shell.c sqlite3.c \ +- $(LIBREADLINE) $(TLIBS) -rpath "$(libdir)" ++sqlite3$(TEXE): shell.c libsqlite3.la ++ $(LTLINK) $(READLINE_FLAGS) -o $@ \ ++ shell.c libsqlite3.la \ ++ $(LIBREADLINE) + +-sqldiff$(TEXE): $(TOP)/tool/sqldiff.c sqlite3.lo sqlite3.h +- $(LTLINK) -o $@ $(TOP)/tool/sqldiff.c sqlite3.lo $(TLIBS) ++sqldiff$(TEXE): $(TOP)/tool/sqldiff.c libsqlite3.la ++ $(LTLINK) -o $@ $(TOP)/tool/sqldiff.c libsqlite3.la + +-dbhash$(TEXE): $(TOP)/tool/dbhash.c sqlite3.lo sqlite3.h +- $(LTLINK) -o $@ $(TOP)/tool/dbhash.c sqlite3.lo $(TLIBS) ++dbhash$(TEXE): $(TOP)/tool/dbhash.c libsqlite3.la ++ $(LTLINK) -o $@ $(TOP)/tool/dbhash.c libsqlite3.la + +-scrub$(TEXE): $(TOP)/ext/misc/scrub.c sqlite3.lo ++scrub$(TEXE): $(TOP)/ext/misc/scrub.c libsqlite3.la + $(LTLINK) -o $@ -I. -DSCRUB_STANDALONE \ +- $(TOP)/ext/misc/scrub.c sqlite3.lo $(TLIBS) ++ $(TOP)/ext/misc/scrub.c libsqlite3.la + + srcck1$(BEXE): $(TOP)/tool/srcck1.c + $(BCC) -o srcck1$(BEXE) $(TOP)/tool/srcck1.c +@@ -744,7 +748,7 @@ + # Rule to build the amalgamation + # + sqlite3.lo: sqlite3.c +- $(LTCOMPILE) $(TEMP_STORE) -c sqlite3.c ++ $(LTCOMPILE) $(SHELL_OPT) $(TEMP_STORE) -c sqlite3.c + + # Rules to build the LEMON compiler generator + # +@@ -1044,14 +1048,9 @@ + # Source files that go into making shell.c + SHELL_SRC = \ + $(TOP)/src/shell.c.in \ +- $(TOP)/ext/misc/appendvfs.c \ + $(TOP)/ext/misc/shathree.c \ + $(TOP)/ext/misc/fileio.c \ + $(TOP)/ext/misc/completion.c \ +- $(TOP)/ext/misc/sqlar.c \ +- $(TOP)/ext/expert/sqlite3expert.c \ +- $(TOP)/ext/expert/sqlite3expert.h \ +- $(TOP)/ext/misc/zipfile.c \ + $(TOP)/src/test_windirent.c + + shell.c: $(SHELL_SRC) $(TOP)/tool/mkshellc.tcl +@@ -1217,15 +1216,15 @@ + + # Fuzz testing + fuzztest: fuzzcheck$(TEXE) $(FUZZDATA) sessionfuzz$(TEXE) $(TOP)/test/sessionfuzz-data1.db +- ./fuzzcheck$(TEXE) $(FUZZDATA) ++ ./fuzzcheck$(TEXE) --timeout 3600 $(FUZZDATA) + ./sessionfuzz$(TEXE) run $(TOP)/test/sessionfuzz-data1.db + + fastfuzztest: fuzzcheck$(TEXE) $(FUZZDATA) sessionfuzz$(TEXE) $(TOP)/test/sessionfuzz-data1.db +- ./fuzzcheck$(TEXE) --limit-mem 100M $(FUZZDATA) ++ ./fuzzcheck$(TEXE) --limit-mem 100M --timeout 3600 $(FUZZDATA) + ./sessionfuzz$(TEXE) run $(TOP)/test/sessionfuzz-data1.db + + valgrindfuzz: fuzzcheck$(TEXT) $(FUZZDATA) sessionfuzz$(TEXE) $(TOP)/test/sessionfuzz-data1.db +- valgrind ./fuzzcheck$(TEXE) --cell-size-check --limit-mem 10M --timeout 600 $(FUZZDATA) ++ valgrind ./fuzzcheck$(TEXE) --cell-size-check --limit-mem 10M --timeout 3600 $(FUZZDATA) + valgrind ./sessionfuzz$(TEXE) run $(TOP)/test/sessionfuzz-data1.db + + # The veryquick.test TCL tests. +@@ -1256,24 +1255,23 @@ + smoketest: $(TESTPROGS) fuzzcheck$(TEXE) + ./testfixture$(TEXE) $(TOP)/test/main.test $(TESTOPTS) + +-sqlite3_analyzer.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in ++sqlite3_analyzer.c: $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in + $(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqlite3_analyzer.c.in >sqlite3_analyzer.c + +-sqlite3_analyzer$(TEXE): sqlite3_analyzer.c +- $(LTLINK) sqlite3_analyzer.c -o $@ $(LIBTCL) $(TLIBS) ++sqlite3_analyzer$(TEXE): sqlite3_analyzer.c libsqlite3.la ++ $(LTLINK) sqlite3_analyzer.c -o $@ libsqlite3.la $(LIBTCL) + +-sqltclsh.c: sqlite3.c $(TOP)/src/tclsqlite.c $(TOP)/tool/sqltclsh.tcl $(TOP)/ext/misc/appendvfs.c $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in ++sqltclsh.c: $(TOP)/src/tclsqlite.c $(TOP)/tool/sqltclsh.tcl $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in + $(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/tool/sqltclsh.c.in >sqltclsh.c + +-sqltclsh$(TEXE): sqltclsh.c +- $(LTLINK) sqltclsh.c -o $@ $(LIBTCL) $(TLIBS) ++sqltclsh$(TEXE): sqltclsh.c libsqlite3.la ++ $(LTLINK) sqltclsh.c -o $@ libsqlite3.la $(LIBTCL) + +-sqlite3_expert$(TEXE): $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/sqlite3expert.c $(TOP)/ext/expert/expert.c sqlite3.c +- $(LTLINK) $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/sqlite3expert.c $(TOP)/ext/expert/expert.c sqlite3.c -o sqlite3_expert $(TLIBS) ++sqlite3_expert$(TEXE): $(TOP)/ext/expert/sqlite3expert.h $(TOP)/ext/expert/expert.c libsqlite3.la ++ $(LTLINK) $(TOP)/ext/expert/expert.c -o sqlite3_expert libsqlite3.la + + CHECKER_DEPS =\ + $(TOP)/tool/mkccode.tcl \ +- sqlite3.c \ + $(TOP)/src/tclsqlite.c \ + $(TOP)/ext/repair/sqlite3_checker.tcl \ + $(TOP)/ext/repair/checkindex.c \ +@@ -1284,30 +1282,30 @@ + sqlite3_checker.c: $(CHECKER_DEPS) + $(TCLSH_CMD) $(TOP)/tool/mkccode.tcl $(TOP)/ext/repair/sqlite3_checker.c.in >$@ + +-sqlite3_checker$(TEXE): sqlite3_checker.c +- $(LTLINK) sqlite3_checker.c -o $@ $(LIBTCL) $(TLIBS) ++sqlite3_checker$(TEXE): sqlite3_checker.c libsqlite3.la ++ $(LTLINK) sqlite3_checker.c -o $@ libsqlite3.la $(LIBTCL) + +-dbdump$(TEXE): $(TOP)/ext/misc/dbdump.c sqlite3.lo ++dbdump$(TEXE): $(TOP)/ext/misc/dbdump.c libsqlite3.la + $(LTLINK) -DDBDUMP_STANDALONE -o $@ \ +- $(TOP)/ext/misc/dbdump.c sqlite3.lo $(TLIBS) ++ $(TOP)/ext/misc/dbdump.c libsqlite3.la + +-showdb$(TEXE): $(TOP)/tool/showdb.c sqlite3.lo +- $(LTLINK) -o $@ $(TOP)/tool/showdb.c sqlite3.lo $(TLIBS) ++showdb$(TEXE): $(TOP)/tool/showdb.c libsqlite3.la ++ $(LTLINK) -o $@ $(TOP)/tool/showdb.c libsqlite3.la + +-showstat4$(TEXE): $(TOP)/tool/showstat4.c sqlite3.lo +- $(LTLINK) -o $@ $(TOP)/tool/showstat4.c sqlite3.lo $(TLIBS) ++showstat4$(TEXE): $(TOP)/tool/showstat4.c libsqlite3.la ++ $(LTLINK) -o $@ $(TOP)/tool/showstat4.c libsqlite3.la + +-showjournal$(TEXE): $(TOP)/tool/showjournal.c sqlite3.lo +- $(LTLINK) -o $@ $(TOP)/tool/showjournal.c sqlite3.lo $(TLIBS) ++showjournal$(TEXE): $(TOP)/tool/showjournal.c ++ $(LTLINK) -o $@ $(TOP)/tool/showjournal.c + +-showwal$(TEXE): $(TOP)/tool/showwal.c sqlite3.lo +- $(LTLINK) -o $@ $(TOP)/tool/showwal.c sqlite3.lo $(TLIBS) ++showwal$(TEXE): $(TOP)/tool/showwal.c ++ $(LTLINK) -o $@ $(TOP)/tool/showwal.c + + showshm$(TEXE): $(TOP)/tool/showshm.c + $(LTLINK) -o $@ $(TOP)/tool/showshm.c + +-changeset$(TEXE): $(TOP)/ext/session/changeset.c sqlite3.lo +- $(LTLINK) -o $@ $(TOP)/ext/session/changeset.c sqlite3.lo $(TLIBS) ++changeset$(TEXE): $(TOP)/ext/session/changeset.c libsqlite3.la ++ $(LTLINK) -o $@ $(TOP)/ext/session/changeset.c libsqlite3.la + + changesetfuzz$(TEXE): $(TOP)/ext/session/changesetfuzz.c sqlite3.lo + $(LTLINK) -o $@ $(TOP)/ext/session/changesetfuzz.c sqlite3.lo $(TLIBS) +@@ -1332,11 +1330,11 @@ + kvtest$(TEXE): $(TOP)/test/kvtest.c sqlite3.c + $(LTLINK) $(KV_OPT) -o $@ $(TOP)/test/kvtest.c sqlite3.c $(TLIBS) + +-rbu$(EXE): $(TOP)/ext/rbu/rbu.c $(TOP)/ext/rbu/sqlite3rbu.c sqlite3.lo +- $(LTLINK) -I. -o $@ $(TOP)/ext/rbu/rbu.c sqlite3.lo $(TLIBS) ++rbu$(EXE): $(TOP)/ext/rbu/rbu.c libsqlite3.la ++ $(LTLINK) -I. -o $@ $(TOP)/ext/rbu/rbu.c libsqlite3.la + +-loadfts$(EXE): $(TOP)/tool/loadfts.c libsqlite3.la +- $(LTLINK) $(TOP)/tool/loadfts.c libsqlite3.la -o $@ $(TLIBS) ++loadfts$(EXE): $(TOP)/tool/loadfts.c libsqlite3.la ++ $(LTLINK) $(TOP)/tool/loadfts.c libsqlite3.la -o $@ + + # This target will fail if the SQLite amalgamation contains any exported + # symbols that do not begin with "sqlite3_". It is run as part of the +--- /configure.ac ++++ /configure.ac +@@ -587,6 +587,9 @@ + if test "${enable_load_extension}" = "yes" ; then + OPT_FEATURE_FLAGS="" + AC_SEARCH_LIBS(dlopen, dl) ++ if test "${ac_cv_search_dlopen}" = "no" ; then ++ OPT_FEATURE_FLAGS="-DSQLITE_OMIT_LOAD_EXTENSION=1" ++ fi + else + OPT_FEATURE_FLAGS="-DSQLITE_OMIT_LOAD_EXTENSION=1" + fi +--- /ext/misc/sqlar.c ++++ /ext/misc/sqlar.c +@@ -14,6 +14,8 @@ + ** for working with sqlar archives and used by the shell tool's built-in + ** sqlar support. + */ ++#ifdef SQLITE_HAVE_ZLIB ++ + #include "sqlite3ext.h" + SQLITE_EXTENSION_INIT1 + #include <zlib.h> +@@ -119,3 +121,5 @@ + } + return rc; + } ++ ++#endif /* SQLITE_HAVE_ZLIB */ +--- /ext/misc/zipfile.c ++++ /ext/misc/zipfile.c +@@ -24,6 +24,8 @@ + ** * No support for zip64 extensions + ** * Only the "inflate/deflate" (zlib) compression method is supported + */ ++#ifdef SQLITE_HAVE_ZLIB ++ + #include "sqlite3ext.h" + SQLITE_EXTENSION_INIT1 + #include <stdio.h> +@@ -2176,3 +2178,5 @@ + (void)pzErrMsg; /* Unused parameter */ + return zipfileRegister(db); + } ++ ++#endif /* SQLITE_HAVE_ZLIB */ +--- /ext/repair/sqlite3_checker.c.in ++++ /ext/repair/sqlite3_checker.c.in +@@ -2,6 +2,7 @@ + ** Read an SQLite database file and analyze its space utilization. Generate + ** text on standard output. + */ ++#define SQLITE_CORE 1 + #define TCLSH_INIT_PROC sqlite3_checker_init_proc + #define SQLITE_ENABLE_DBPAGE_VTAB 1 + #define SQLITE_ENABLE_JSON1 1 +@@ -14,7 +15,7 @@ + #define SQLITE_OMIT_SHARED_CACHE 1 + #define SQLITE_DEFAULT_MEMSTATUS 0 + #define SQLITE_MAX_EXPR_DEPTH 0 +-INCLUDE sqlite3.c ++#include "sqlite3.h" + INCLUDE $ROOT/src/tclsqlite.c + INCLUDE $ROOT/ext/misc/btreeinfo.c + INCLUDE $ROOT/ext/repair/checkindex.c +--- /src/shell.c.in ++++ /src/shell.c.in +@@ -61,6 +61,7 @@ + #include <stdio.h> + #include <assert.h> + #include "sqlite3.h" ++#include "ext/expert/sqlite3expert.h" + typedef sqlite3_int64 i64; + typedef sqlite3_uint64 u64; + typedef unsigned char u8; +@@ -127,6 +128,10 @@ + # define SHELL_USE_LOCAL_GETLINE 1 + #endif + ++#ifdef SQLITE_HAVE_ZLIB ++#include <zlib.h> ++#endif ++ + + #if defined(_WIN32) || defined(WIN32) + # include <io.h> +@@ -936,13 +941,6 @@ + INCLUDE ../ext/misc/shathree.c + INCLUDE ../ext/misc/fileio.c + INCLUDE ../ext/misc/completion.c +-INCLUDE ../ext/misc/appendvfs.c +-#ifdef SQLITE_HAVE_ZLIB +-INCLUDE ../ext/misc/zipfile.c +-INCLUDE ../ext/misc/sqlar.c +-#endif +-INCLUDE ../ext/expert/sqlite3expert.h +-INCLUDE ../ext/expert/sqlite3expert.c + + #if defined(SQLITE_ENABLE_SESSION) + /* +@@ -3765,7 +3763,9 @@ + sqlite3_shathree_init(p->db, 0, 0); + sqlite3_completion_init(p->db, 0, 0); + #ifdef SQLITE_HAVE_ZLIB ++ extern int sqlite3_zipfile_init(sqlite3 *, char **, const sqlite3_api_routines *); + sqlite3_zipfile_init(p->db, 0, 0); ++ extern int sqlite3_sqlar_init(sqlite3 *, char **, const sqlite3_api_routines *); + sqlite3_sqlar_init(p->db, 0, 0); + #endif + sqlite3_create_function(p->db, "shell_add_schema", 3, SQLITE_UTF8, 0, +@@ -5649,6 +5649,7 @@ + goto end_ar_command; + } + sqlite3_fileio_init(cmd.db, 0, 0); ++ extern int sqlite3_sqlar_init(sqlite3 *, char **, const sqlite3_api_routines *); + sqlite3_sqlar_init(cmd.db, 0, 0); + sqlite3_create_function(cmd.db, "shell_putsnl", 1, SQLITE_UTF8, cmd.p, + shellPutsFunc, 0, 0); +@@ -8705,6 +8706,7 @@ + #endif + } + data.out = stdout; ++ extern int sqlite3_appendvfs_init(sqlite3 *, char **, const sqlite3_api_routines *); + sqlite3_appendvfs_init(0,0,0); + + /* Go ahead and open the database file if it already exists. If the +--- /tool/mksqlite3c.tcl ++++ /tool/mksqlite3c.tcl +@@ -117,6 +117,7 @@ + rtree.h + sqlite3session.h + sqlite3.h ++ sqlite3expert.h + sqlite3ext.h + sqlite3rbu.h + sqliteicu.h +@@ -403,6 +404,10 @@ + sqlite3session.c + fts5.c + stmt.c ++ appendvfs.c ++ sqlar.c ++ sqlite3expert.c ++ zipfile.c + } { + copy_file tsrc/$file + } +--- /tool/sqlite3_analyzer.c.in ++++ /tool/sqlite3_analyzer.c.in +@@ -14,9 +14,6 @@ + #define SQLITE_DEFAULT_MEMSTATUS 0 + #define SQLITE_MAX_EXPR_DEPTH 0 + #define SQLITE_OMIT_LOAD_EXTENSION 1 +-#ifndef USE_EXTERNAL_SQLITE +-INCLUDE sqlite3.c +-#endif + INCLUDE $ROOT/src/tclsqlite.c + + const char *sqlite3_analyzer_init_proc(Tcl_Interp *interp){ +--- /tool/sqltclsh.c.in ++++ /tool/sqltclsh.c.in +@@ -27,19 +27,17 @@ + #define SQLITE_OMIT_SHARED_CACHE 1 + #define SQLITE_DEFAULT_MEMSTATUS 0 + #define SQLITE_MAX_EXPR_DEPTH 0 +-INCLUDE sqlite3.c +-INCLUDE $ROOT/ext/misc/appendvfs.c +-#ifdef SQLITE_HAVE_ZLIB +-INCLUDE $ROOT/ext/misc/zipfile.c +-INCLUDE $ROOT/ext/misc/sqlar.c +-#endif ++#include "sqlite3.h" + INCLUDE $ROOT/src/tclsqlite.c + + const char *sqlite3_tclapp_init_proc(Tcl_Interp *interp){ + (void)interp; ++ extern int sqlite3_appendvfs_init(sqlite3 *,char **, const sqlite3_api_routines *); + sqlite3_appendvfs_init(0,0,0); + #ifdef SQLITE_HAVE_ZLIB ++ extern int sqlite3_sqlar_init(sqlite3 *, char **, const sqlite3_api_routines *); + sqlite3_auto_extension((void(*)(void))sqlite3_sqlar_init); ++ extern int sqlite3_zipfile_init(sqlite3 *, char **, const sqlite3_api_routines *); + sqlite3_auto_extension((void(*)(void))sqlite3_zipfile_init); + #endif + diff --git a/dev-db/sqlite/sqlite-3.25.3.ebuild b/dev-db/sqlite/sqlite-3.25.3.ebuild index 87da0102ad5f..e77904944e43 100644 --- a/dev-db/sqlite/sqlite-3.25.3.ebuild +++ b/dev-db/sqlite/sqlite-3.25.3.ebuild @@ -19,7 +19,7 @@ SRC_URI="doc? ( https://sqlite.org/2018/${PN}-doc-${DOC_PV}.zip ) LICENSE="public-domain" SLOT="3" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +KEYWORDS="alpha amd64 ~arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" IUSE="debug doc icu +readline secure-delete static-libs tcl test tools" RESTRICT="!test? ( test )" diff --git a/dev-db/sqlite/sqlite-3.26.0.ebuild b/dev-db/sqlite/sqlite-3.26.0.ebuild new file mode 100644 index 000000000000..64c23846b1d8 --- /dev/null +++ b/dev-db/sqlite/sqlite-3.26.0.ebuild @@ -0,0 +1,325 @@ +# Copyright 1999-2018 Arfrever Frehtes Taifersar Arahesis and others +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +inherit autotools flag-o-matic multilib-minimal toolchain-funcs + +SRC_PV="$(printf "%u%02u%02u%02u" $(ver_rs 1- " "))" +DOC_PV="${SRC_PV}" +# DOC_PV="$(printf "%u%02u%02u00" $(ver_rs 1-3 " "))" + +DESCRIPTION="SQL database engine" +HOMEPAGE="https://sqlite.org/" +SRC_URI="doc? ( https://sqlite.org/2018/${PN}-doc-${DOC_PV}.zip ) + tcl? ( https://sqlite.org/2018/${PN}-src-${SRC_PV}.zip ) + test? ( https://sqlite.org/2018/${PN}-src-${SRC_PV}.zip ) + tools? ( https://sqlite.org/2018/${PN}-src-${SRC_PV}.zip ) + !tcl? ( !test? ( !tools? ( https://sqlite.org/2018/${PN}-autoconf-${SRC_PV}.tar.gz ) ) )" + +LICENSE="public-domain" +SLOT="3" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="debug doc icu +readline secure-delete static-libs tcl test tools" +RESTRICT="!test? ( test )" + +BDEPEND="doc? ( app-arch/unzip ) + tcl? ( + app-arch/unzip + >=dev-lang/tcl-8.6:0 + ) + test? ( + app-arch/unzip + >=dev-lang/tcl-8.6:0 + ) + tools? ( + app-arch/unzip + >=dev-lang/tcl-8.6:0 + )" +RDEPEND="sys-libs/zlib:0=[${MULTILIB_USEDEP}] + icu? ( dev-libs/icu:0=[${MULTILIB_USEDEP}] ) + readline? ( sys-libs/readline:0=[${MULTILIB_USEDEP}] ) + tcl? ( dev-lang/tcl:0=[${MULTILIB_USEDEP}] ) + tools? ( dev-lang/tcl:0=[${MULTILIB_USEDEP}] )" +DEPEND="${RDEPEND} + test? ( >=dev-lang/tcl-8.6:0[${MULTILIB_USEDEP}] )" + +full_archive() { + use tcl || use test || use tools +} + +pkg_setup() { + if full_archive; then + S="${WORKDIR}/${PN}-src-${SRC_PV}" + else + S="${WORKDIR}/${PN}-autoconf-${SRC_PV}" + fi +} + +src_prepare() { + if full_archive; then + eapply "${FILESDIR}/${PN}-3.26.0-full_archive-build.patch" + + eapply_user + + # Fix AC_CHECK_FUNCS. + # https://mailinglists.sqlite.org/cgi-bin/mailman/private/sqlite-dev/2016-March/002762.html + sed -e "s/AC_CHECK_FUNCS(.*)/AC_CHECK_FUNCS([fdatasync fullfsync gmtime_r isnan localtime_r localtime_s malloc_usable_size posix_fallocate pread pread64 pwrite pwrite64 strchrnul usleep utime])/" -i configure.ac || die "sed failed" + else + eapply "${FILESDIR}/${PN}-3.25.0-nonfull_archive-build.patch" + + eapply_user + + # Fix AC_CHECK_FUNCS. + # https://mailinglists.sqlite.org/cgi-bin/mailman/private/sqlite-dev/2016-March/002762.html + sed \ + -e "s/AC_CHECK_FUNCS(\[fdatasync.*/AC_CHECK_FUNCS([fdatasync fullfsync gmtime_r isnan localtime_r localtime_s malloc_usable_size posix_fallocate pread pread64 pwrite pwrite64 strchrnul usleep utime])/" \ + -e "/AC_CHECK_FUNCS(posix_fallocate)/d" \ + -i configure.ac || die "sed failed" + fi + + eautoreconf + + multilib_copy_sources +} + +multilib_src_configure() { + local CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" options=() + + options+=( + --enable-$(full_archive && echo load-extension || echo dynamic-extensions) + --enable-threadsafe + ) + if ! full_archive; then + options+=(--disable-static-shell) + fi + + # Support detection of misuse of SQLite API. + # https://sqlite.org/compile.html#enable_api_armor + append-cppflags -DSQLITE_ENABLE_API_ARMOR + + # Support column metadata functions. + # https://sqlite.org/c3ref/column_database_name.html + append-cppflags -DSQLITE_ENABLE_COLUMN_METADATA + + # Support sqlite_dbpage virtual table. + # https://sqlite.org/compile.html#enable_dbpage_vtab + append-cppflags -DSQLITE_ENABLE_DBPAGE_VTAB + + # Support dbstat virtual table. + # https://sqlite.org/dbstat.html + append-cppflags -DSQLITE_ENABLE_DBSTAT_VTAB + + # Support sqlite3_serialize() and sqlite3_deserialize() functions. + # https://sqlite.org/compile.html#enable_deserialize + # https://sqlite.org/c3ref/serialize.html + # https://sqlite.org/c3ref/deserialize.html + append-cppflags -DSQLITE_ENABLE_DESERIALIZE + + # Support comments in output of EXPLAIN. + # https://sqlite.org/compile.html#enable_explain_comments + append-cppflags -DSQLITE_ENABLE_EXPLAIN_COMMENTS + + # Support Full-Text Search versions 3, 4 and 5. + # https://sqlite.org/fts3.html + # https://sqlite.org/fts5.html + append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4 + options+=(--enable-fts5) + + # Support hidden columns. + append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS + + # Support JSON1 extension. + # https://sqlite.org/json1.html + append-cppflags -DSQLITE_ENABLE_JSON1 + + # Support memsys5 memory allocator. + # https://sqlite.org/malloc.html#memsys5 + append-cppflags -DSQLITE_ENABLE_MEMSYS5 + + # Support sqlite3_normalized_sql() function. + # https://sqlite.org/c3ref/expanded_sql.html + append-cppflags -DSQLITE_ENABLE_NORMALIZE + + # Support sqlite_offset() function. + # https://sqlite.org/lang_corefunc.html#sqlite_offset + append-cppflags -DSQLITE_ENABLE_OFFSET_SQL_FUNC + + # Support pre-update hook functions. + # https://sqlite.org/c3ref/preupdate_count.html + append-cppflags -DSQLITE_ENABLE_PREUPDATE_HOOK + + # Support Resumable Bulk Update extension. + # https://sqlite.org/rbu.html + append-cppflags -DSQLITE_ENABLE_RBU + + # Support R*Trees. + # https://sqlite.org/rtree.html + # https://sqlite.org/geopoly.html + append-cppflags -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_GEOPOLY + + # Support scan status functions. + # https://sqlite.org/c3ref/stmt_scanstatus.html + # https://sqlite.org/c3ref/stmt_scanstatus_reset.html + append-cppflags -DSQLITE_ENABLE_STMT_SCANSTATUS + + # Support sqlite_stmt virtual table. + # https://sqlite.org/stmt.html + append-cppflags -DSQLITE_ENABLE_STMTVTAB + + # Support Session extension. + # https://sqlite.org/sessionintro.html + options+=(--enable-session) + + # Support unknown() function. + # https://sqlite.org/compile.html#enable_unknown_sql_function + append-cppflags -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION + + # Support unlock notification. + # https://sqlite.org/unlock_notify.html + append-cppflags -DSQLITE_ENABLE_UNLOCK_NOTIFY + + # Support LIMIT and ORDER BY clauses on DELETE and UPDATE statements. + # https://sqlite.org/compile.html#enable_update_delete_limit + append-cppflags -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT + + # Support PRAGMA function_list, PRAGMA module_list and PRAGMA pragma_list statements. + # https://sqlite.org/pragma.html#pragma_function_list + # https://sqlite.org/pragma.html#pragma_module_list + # https://sqlite.org/pragma.html#pragma_pragma_list + append-cppflags -DSQLITE_INTROSPECTION_PRAGMAS + + # Support soundex() function. + # https://sqlite.org/lang_corefunc.html#soundex + append-cppflags -DSQLITE_SOUNDEX + + # Support URI filenames. + # https://sqlite.org/uri.html + append-cppflags -DSQLITE_USE_URI + + # debug USE flag. + if full_archive; then + options+=($(use_enable debug)) + else + if use debug; then + append-cppflags -DSQLITE_DEBUG + else + append-cppflags -DNDEBUG + fi + fi + + # icu USE flag. + if use icu; then + # Support ICU extension. + # https://sqlite.org/compile.html#enable_icu + append-cppflags -DSQLITE_ENABLE_ICU + if full_archive; then + sed -e "s/^TLIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed" + else + sed -e "s/^LIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed" + fi + fi + + # readline USE flag. + options+=( + --disable-editline + $(use_enable readline) + ) + if full_archive && use readline; then + options+=(--with-readline-inc="-I${EPREFIX}/usr/include/readline") + fi + + # secure-delete USE flag. + if use secure-delete; then + # Enable secure_delete pragma by default. + # https://sqlite.org/pragma.html#pragma_secure_delete + append-cppflags -DSQLITE_SECURE_DELETE + fi + + # static-libs USE flag. + options+=($(use_enable static-libs static)) + + # tcl, test, tools USE flags. + if full_archive; then + options+=(--enable-tcl) + fi + + if [[ "${CHOST}" == *-mint* ]]; then + append-cppflags -DSQLITE_OMIT_WAL + fi + + if [[ "${ABI}" == "x86" ]]; then + if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then + append-cflags -mfpmath=sse + else + append-cflags -ffloat-store + fi + fi + + econf "${options[@]}" +} + +multilib_src_compile() { + emake HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" + + if use tools && multilib_is_native_abi; then + emake changeset dbdump dbhash rbu scrub showdb showjournal showshm showstat4 showwal sqldiff sqlite3_analyzer sqlite3_checker sqlite3_expert sqltclsh + fi +} + +multilib_src_test() { + if [[ "${EUID}" -eq 0 ]]; then + ewarn "Skipping tests due to root permissions" + return + fi + + local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}" + + emake HAVE_TCL="$(usex tcl 1 "")" $(use debug && echo fulltest || echo test) +} + +multilib_src_install() { + emake DESTDIR="${D}" HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" install + + if use tools && multilib_is_native_abi; then + install_tool() { + if [[ -f ".libs/${1}" ]]; then + newbin ".libs/${1}" "${2}" + else + newbin "${1}" "${2}" + fi + } + + install_tool changeset sqlite3-changeset + install_tool dbdump sqlite3-db-dump + install_tool dbhash sqlite3-db-hash + install_tool rbu sqlite3-rbu + install_tool scrub sqlite3-scrub + install_tool showdb sqlite3-show-db + install_tool showjournal sqlite3-show-journal + install_tool showshm sqlite3-show-shm + install_tool showstat4 sqlite3-show-stat4 + install_tool showwal sqlite3-show-wal + install_tool sqldiff sqlite3-diff + install_tool sqlite3_analyzer sqlite3-analyzer + install_tool sqlite3_checker sqlite3-checker + install_tool sqlite3_expert sqlite3-expert + install_tool sqltclsh sqlite3-tclsh + + unset -f install_tool + fi +} + +multilib_src_install_all() { + find "${D}" -name "*.la" -delete || die + + doman sqlite3.1 + + if use doc; then + rm "${WORKDIR}/${PN}-doc-${DOC_PV}/"*.{db,txt} + ( + docinto html + dodoc -r "${WORKDIR}/${PN}-doc-${DOC_PV}/"* + ) + fi +} diff --git a/dev-db/sqlitebrowser/Manifest b/dev-db/sqlitebrowser/Manifest index 9cc37817da14..7f6964671b3e 100644 --- a/dev-db/sqlitebrowser/Manifest +++ b/dev-db/sqlitebrowser/Manifest @@ -5,4 +5,4 @@ DIST sqlitebrowser-3.10.1.tar.gz 1992186 BLAKE2B 105333118a404aab48abe5ecbe83b42 DIST sqlitebrowser-3.9.1.tar.gz 1704713 BLAKE2B 447a9e20fe4236feea2684703ac7f38b1c03f0ded352653b41bbec7d6380691776177fee1428fd67ac96190ed6752cedd76a9883cfa12584fec464cbf98707d3 SHA512 c1e88063fac864f60a9802ae378e13d6f3a09e2f4e71e50c6abca4967a941c444a64617bad2dfc743cf9a6be554af9c73e4c61533300ed9a51652234ffdbd225 EBUILD sqlitebrowser-3.10.1.ebuild 1378 BLAKE2B 9ec28580c7efa201ae7907eed123ba36fdf497e67adcb75ebfa43f1fef3e7956fed44390d02161aba91e8085bb44e872f912c61ff2b6311eb7ddd9f77890bb28 SHA512 5918375456ecfa90e12f8784c3e0e5300f5cd056741a762096f9b65656f3d026015e26f338ba40a48ea1ad7a8649f83067272092ccb7de919ad758bae03e8096 EBUILD sqlitebrowser-3.9.1-r1.ebuild 1439 BLAKE2B 355dc9a6af52f1879559b7774d93f226e46a9998de3557c0f52d2b8ecde160e9c777bcc7ac4c8d33d74337972d6def9ada5d404b36d456133df000ca552623da SHA512 ad218ab7dc42f42487868aeba8fef1f282369bfc2508e6cbd20f0da1c6101f93ff3b157970e34046be20dfd98a2418763941c679d31dde82940cfc2a480b0cee -MISC metadata.xml 740 BLAKE2B 43e5727769b3fa3fee9fe4514993988877b08a3a21816031cd21ae497a66801d6ba4993236e656b7de4161d22837975bb6d8e9cf93ebfd416235dd622a0b8758 SHA512 697ae7be911f1ce3a8b0c0f9f8509ac5fd338463b7b692ca320ab41ed7676fcc3d7db59e759cfbe82c6d2a1fa9d85a1eeefeda3bca702f56832f336ee7fd0369 +MISC metadata.xml 659 BLAKE2B bf5f352f0227c1408cd9c0720fea6b7bf35e6f843f4e1f6fb3e340d3e7e5ddc09843484da6c54254345cde615993acaeba50027f44f33e0134ac05414e80e8ca SHA512 defe9a90cbcdee9750f9a5dffb8620445efd4d855fa789bad01d80151f4e64676245c2a51670c7418d2e19faa72bf26f4322c3953d610933a5b479985acedca2 diff --git a/dev-db/sqlitebrowser/metadata.xml b/dev-db/sqlitebrowser/metadata.xml index 778d9bfc7286..45409a91f1e5 100644 --- a/dev-db/sqlitebrowser/metadata.xml +++ b/dev-db/sqlitebrowser/metadata.xml @@ -1,10 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="person"> - <email>xmw@gentoo.org</email> - <name>Michael Weber</name> - </maintainer> + <!-- maintainer-needed --> <longdescription lang="en"> SQLite Database Browser is a freeware, public domain, open source visual tool used to create, design and edit database files compatible with SQLite. It is |