diff options
Diffstat (limited to 'dev-db')
44 files changed, 3053 insertions, 3163 deletions
diff --git a/dev-db/Manifest.gz b/dev-db/Manifest.gz Binary files differindex 1dfc483af839..616ebe79a214 100644 --- a/dev-db/Manifest.gz +++ b/dev-db/Manifest.gz diff --git a/dev-db/libiodbc/Manifest b/dev-db/libiodbc/Manifest index 2177fb608c1d..fa9e5216ff9b 100644 --- a/dev-db/libiodbc/Manifest +++ b/dev-db/libiodbc/Manifest @@ -1,15 +1,8 @@ AUX fix-runpaths-r1.patch 438 BLAKE2B 0089f678dea14f4f1f3cf0e6fdaa9863b2659b3a93208404fbf29939a7d797cbac75a9f128d625fd4a8691807507bc69e42894bae19cacc680d202616d0e3de1 SHA512 2c64890a2e61f7fd3c6c053a35308b57eb7c50bf070d4833bd0b8a4182d3581cfb358ee315cc26cb26d6b11941d4e9265b38f59732f7b679d3b2d23d0dda0035 -AUX fix-runpaths.patch 434 BLAKE2B 064257ff2c1cdb15ab7bf3c2536d530d3803aa8dcab21a27f34c43c5095bf319b6eb9bce035a3c70675e5f5ecac5d529c63875ba64abb95150e3fd6494c09d94 SHA512 48364d6004c0f2dadb71a8b6838a4c4b1caf4d2df59e2f4acca82f6203704c4ad4aa4b3d0d4f33fdab4e8d01d7c70dad916b6bc4455dfa1581ff80f9f48468fa AUX libiodbc-3.52.12-multilib.patch 934 BLAKE2B e98b6bb650605154c251752d2208237a45dbc794ca141a292628192765020b33a3d6b331194d9f204657d06e590446b2809a91ad24944221005afae557c1d361 SHA512 718f564371d962283525f946b60b9028e66b3477d4bf20fd6f5363d08635c2d2603d9de5fb157e6039c124324578e5367e985d83623a3b1cd4dd0de7605f1911 AUX libiodbc-3.52.7-debian_bug501100.patch 408 BLAKE2B 6fb1e24cb2d4f32eca6cde6d50bf9ce77e6a55e3e09c491f971863067b402e7f77bc5238750062094b4092d172909ff592fa36c31e50db122bb85bdfa0eaaaeb SHA512 e36a2b936b36af3cbdf125725628a2c5ca1f4d246c7b7eaf8c08a97e96fa25915b2b03bdd33f7a1c42b08d54f89174edbcb7f1ebaaa1a2e9777ff33023ac2575 AUX libiodbc-3.52.7-debian_bug508480.patch 577 BLAKE2B 0d605b754b6b4b970a15a236be6eebdc6e24dcb1231cacf10e859b22eb577ac49b26ffcdae437cf05de26850de33ed10cfbbffb9b54ab79fada2525a6de939a3 SHA512 2e3a0ab2284b0b302e2eb5d27e1cc952810c5ec2d123491047cda15d1e0b2aa651a1d3357fb330be24fa72ec855a89143eb88bd4b87ce079b469b6ab8647ce74 -AUX libiodbc-3.52.7-gtk.patch 445 BLAKE2B 5992d5965ef3e5bb929825611be9d3dce723f9a80787022894adbe52b9100d4ce6e962a3cb4c413c8235ff51ff6d21e41ab599a3e5a4c8ad90fa71d892215c1a SHA512 ec7d682846103ac67274eb145c8501bdc8fdc2f0a7bda650302713e785ca428c75ad29230301e455ec2ad967aa272b13ad5283e8d5b01ff0dfca6beeac7dd0fb -AUX libiodbc-3.52.7-multilib.patch 853 BLAKE2B cc0db746618d4b6120ac19ee5b99ca7901452130bb6a79b391620e1ea4639bc88ef45364b8a766507d8dbcf2ef2c9fef0187c6a75a88235618e25e861a88625f SHA512 b91644eb58110cc429458ce372441e76655171ffa52904e0629f238bc6df21793875a6f4b524dddaa9f68f1f2ebc773db56d6da08643e4054299d09f38517849 AUX libiodbc-3.52.7-unicode_includes.patch 432 BLAKE2B 3f9c833c223fb5d5dd94530501b5403732b88b420a6cf6a0453734d1cacd9eebdb0e69d7cf265b4ce2da4baa2faad32b467beffdf76d6c339316323b2ba9237c SHA512 b4bd56e88199ed06ec7ce64bbf53c3d792c501cdadee44a1c52d95336c36e93c2379d312b14c576a138210f2cf277e895ded18e80db4e5bb3f664ccb5695a305 -AUX libiodbc-3.52.8-gtk-parallel-make.patch 661 BLAKE2B f77c1184d648e4da54c05b3f72c4761a73d574bd6a19f07d15e70d707ba49065e2fedf748b48a01506434b9e6ba01f33d6c8f516c95bffdc213ea4858d2049f5 SHA512 5378bba53eea8c45a13631b5b8d0d4efed78ea2f786835d509431da3813924cbc07aae3d19053efef6fc052d351193f576ed4fcc301956f59f3e36e18280d537 -AUX libiodbc-3.52.8-runtime-failures.patch 2033 BLAKE2B 943726b96d59fb560e1e42392d4d03c149ab55d4e237ad956f9b56d5f0a06abbab9e103412cb25423e9a1612ac2b74ff20a08e05d1561a3559559c80284e5298 SHA512 a6b921a85bf4076cf5af8744987cdd98ebc570043344e681def5a83e677e64ddc6457f86c135b33162f7248de6c9897b65978699582e0ad71cb9e696f6270142 DIST libiodbc-3.52.12.zip 1248801 BLAKE2B e19b740904a332df7d7f510a6ef7414121e99bcbce0b89db94f4b7a09c0de09f39a8f8abdbec40029b79140fab6e1e1d319ad146cc7d74872a7fe69852a3f710 SHA512 240f6f7dc406fcc6688499bac8800b81380d32e8443e4f098875fabc649da1b86567b67d2259206be64cced8537d3171040d16be39845b9009cd90be62ae97db -DIST libiodbc-3.52.8.zip 1188493 BLAKE2B 8439d0268b64d847c2bbb733fb203b3c2811f14dcd1cf2993472244e6430c2dac042f2b5056aed04049ba2cd139c83cd9c6c7ac6d4e1576dea58fc6e6aa0a5f0 SHA512 76da1e69a6e7ab1b7ba103547070c5dfe7c40fa88d82c243640d862c93c19e731d5a35d0575038491a148bb1d1cb7c5168dc30bf3f9600b31f4e014350f16551 -EBUILD libiodbc-3.52.12.ebuild 1646 BLAKE2B 232161ee58bb82901510cb90fd567d0f25dd80cd2934977c6c8f2d04f6459f8385363c5d1460bc60c5b7bd691a73e8ae83537bb178fd42fcd930255c6649d622 SHA512 a3b709aef88949fe04df0de1856ad7600f7cd04b1ce839c57dcc32b1ed266c36e1b4c48762daf2cab3607c9b4c214944daa350642a65e3e0d744101d861cd4aa -EBUILD libiodbc-3.52.8-r2.ebuild 1711 BLAKE2B 5b4e8870a2e2a782bed3e1b05e22fbfac3489900320c4b73263c7e722b21136a3299219859d5788b2eb56685b76190c3fedbefbd1dceeb6871a3fe83d492b1cb SHA512 9ac4fa353299828cd7419ee5c5502434a3390db1a3f6c3558bda884cf091fa31cec34c69d2e2612985bd73c0ad97ee8dfa6bf6d96af59424f34148706475c8b1 +EBUILD libiodbc-3.52.12.ebuild 1643 BLAKE2B e781fdb6626744f97fdf0fb2f848a0bdaa59d06562c04149751b149aef89472f6487f34c20fdaa5a98b720d210dda49c4a5aa5afd52af675d1b3e19c1a91aec0 SHA512 a48f52132d39b7a4b98111abdf1de68e3e14853105b722631e32c77ca8651ad0f465fa1403fe0c2b768bd65c83ba61ce47b04d706131ea74adbefa5a8f4f7465 MISC metadata.xml 251 BLAKE2B de1fe040cd23515516e31a81c78089f5fb4b9240f43a659d0e6981665bec427ebfe5f68bbea534b92dd4352f42e366c2070d3ef3e7fc0d3beee880445d973bef SHA512 ec0eb5cbc30d0a7ad8c74612255d84a473c370d977f9be4c95904eb5281060bbe3c23d97fb9537e844bbaf90c2f6dd1fae891d44628bbca29fbecb0fe0cb8bbd diff --git a/dev-db/libiodbc/files/fix-runpaths.patch b/dev-db/libiodbc/files/fix-runpaths.patch deleted file mode 100644 index e913b4c7c4cc..000000000000 --- a/dev-db/libiodbc/files/fix-runpaths.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- samples/Makefile.am 2012-03-27 05:15:02.000000000 +0200 -+++ samples/Makefile.am.new 2013-04-09 14:07:48.303789999 +0200 -@@ -78,12 +78,10 @@ - # - iodbctest_SOURCES = iodbctest.c - iodbctest_LDADD = ../iodbc/libiodbc.la --iodbctest_LDFLAGS = -static - - iodbctestw_CFLAGS = -DUNICODE - iodbctestw_SOURCES = iodbctest.c - iodbctestw_LDADD = ../iodbc/libiodbc.la --iodbctestw_LDFLAGS = -static - - EXTRA_DIST = $(srcdir)/Makefile.sample - diff --git a/dev-db/libiodbc/files/libiodbc-3.52.7-gtk.patch b/dev-db/libiodbc/files/libiodbc-3.52.7-gtk.patch deleted file mode 100644 index 83fc954d46c9..000000000000 --- a/dev-db/libiodbc/files/libiodbc-3.52.7-gtk.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff -pruN 3.52.6-1/configure.in 3.52.6-1ubuntu1/configure.in ---- 3.52.6-1/configure.in 2007-10-08 14:04:32.000000000 +0100 -+++ 3.52.6-1ubuntu1/configure.in 2007-12-06 00:12:00.000000000 +0000 -@@ -315,12 +315,6 @@ then - no_gtk="" - # Check for GTK+ 2.x - AM_PATH_GTK_2_0(2.0.0) -- if test x$no_gtk != x -- then -- # Try GTK 1.2.x instead -- no_gtk="" -- AM_PATH_GTK(1.2.3) -- fi - if test x$no_gtk = x - then - USE_GTK=true diff --git a/dev-db/libiodbc/files/libiodbc-3.52.7-multilib.patch b/dev-db/libiodbc/files/libiodbc-3.52.7-multilib.patch deleted file mode 100644 index 73e81d30aec0..000000000000 --- a/dev-db/libiodbc/files/libiodbc-3.52.7-multilib.patch +++ /dev/null @@ -1,35 +0,0 @@ ---- bin/iodbc-config.in.orig 2006-01-23 11:29:22.000000000 +0100 -+++ bin/iodbc-config.in 2009-06-04 17:48:19.000000000 +0200 -@@ -145,10 +145,10 @@ - echo_libs=yes - ;; - --static-libs) -- echo_staticlibs=yes -+ echo_libs=yes - ;; - --libtool-libs) -- echo_libtoollibs=yes -+ echo_libs=yes - ;; - --data-dir) - echo_data_dir=yes -@@ -196,19 +196,5 @@ - if test "$lib_iodbc" = "yes"; then - libs="$libs -liodbc -liodbcinst" - fi -- echo "-L@libdir@ $libs" --fi --if test "$echo_staticlibs" = "yes"; then -- libs="" -- if test "$lib_iodbc" = "yes"; then -- libs="@libdir@/libiodbc.a @libdir@/libiodbcinst.a @LIBADD_DL@" -- fi -- echo "$libs" --fi --if test "$echo_libtoollibs" = "yes"; then -- libs="" -- if test "$lib_iodbc" = "yes"; then -- libs="@libdir@/libiodbc.la @libdir@/libiodbcinst.la" -- fi - echo "$libs" - fi diff --git a/dev-db/libiodbc/files/libiodbc-3.52.8-gtk-parallel-make.patch b/dev-db/libiodbc/files/libiodbc-3.52.8-gtk-parallel-make.patch deleted file mode 100644 index 7278499aff35..000000000000 --- a/dev-db/libiodbc/files/libiodbc-3.52.8-gtk-parallel-make.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -u -r iODBC-3.52.8.orig/iodbcadm/Makefile.am iODBC-3.52.8/iodbcadm/Makefile.am ---- iODBC-3.52.8.orig/iodbcadm/Makefile.am 2012-03-27 05:15:02.000000000 -0500 -+++ iODBC-3.52.8/iodbcadm/Makefile.am 2013-01-08 08:12:58.639414826 -0600 -@@ -96,7 +96,7 @@ - - if GTK - libiodbcadm_la_LIBADD = \ -- ../iodbcadm/gtk/libiodbcadm-gtk.la \ -+ gtk/libiodbcadm-gtk.la \ - $(LIBADD_DL) \ - @GTK_LIBS@ \ - ../iodbcinst/libiodbc_common.la \ -@@ -117,8 +117,8 @@ - - iodbcadm_gtk_SOURCES = - iodbcadm_gtk_LDADD = \ -- ../iodbcadm/gtk/main.lo \ -- ../iodbcadm/libiodbcadm.la \ -+ gtk/main.lo \ -+ libiodbcadm.la \ - ../iodbcinst/libiodbcinst.la \ - ../iodbc/libiodbc.la \ - @GTK_LIBS@ diff --git a/dev-db/libiodbc/files/libiodbc-3.52.8-runtime-failures.patch b/dev-db/libiodbc/files/libiodbc-3.52.8-runtime-failures.patch deleted file mode 100644 index 50724ba46b48..000000000000 --- a/dev-db/libiodbc/files/libiodbc-3.52.8-runtime-failures.patch +++ /dev/null @@ -1,56 +0,0 @@ -diff -u -r iODBC-3.52.8.orig/configure.in iODBC-3.52.8/configure.in ---- iODBC-3.52.8.orig/configure.in 2012-03-27 05:15:02.000000000 -0500 -+++ iODBC-3.52.8/configure.in 2013-01-08 10:31:39.740041040 -0600 -@@ -87,7 +87,7 @@ - AC_CONFIG_SRCDIR([include/isql.h]) - AC_CONFIG_AUX_DIR(admin) - AC_CONFIG_MACRO_DIR(admin) --AM_CONFIG_HEADER(include/config.h) -+AC_CONFIG_HEADER(include/config.h) - AM_INIT_AUTOMAKE(AC_PACKAGE_TARNAME, AC_PACKAGE_VERSION) - AC_CANONICAL_HOST - AM_MAINTAINER_MODE -diff -u -r iODBC-3.52.8.orig/iodbcadm/gtk/administrator.c iODBC-3.52.8/iodbcadm/gtk/administrator.c ---- iODBC-3.52.8.orig/iodbcadm/gtk/administrator.c 2012-03-27 05:15:02.000000000 -0500 -+++ iODBC-3.52.8/iodbcadm/gtk/administrator.c 2013-01-08 10:29:51.758462953 -0600 -@@ -72,6 +72,13 @@ - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -+#ifdef __linux -+# ifndef _GNU_SOURCE -+# define _GNU_SOURCE /* make sure dladdr is declared */ -+# endif -+# define HAVE_DL_INFO 1 -+#endif -+ - #include <iodbc.h> - #include <dlfcn.h> - #include <sys/stat.h> -@@ -82,7 +89,7 @@ - #include "odbc4.xpm" - - --#if !defined(HAVE_DL_INFO) -+#if defined (HAVE_DLADDR) && !defined(HAVE_DL_INFO) - typedef struct - { - const char *dli_fname; /* File name of defining object. */ -@@ -90,6 +97,7 @@ - const char *dli_sname; /* Name of nearest symbol. */ - void *dli_saddr; /* Exact value of nearest symbol. */ - } Dl_info; -+ - #endif /* HAVE_DL_INFO */ - - static char *szDriverButtons[] = { -diff -u -r iODBC-3.52.8.orig/iodbcadm/gtk/gui.h iODBC-3.52.8/iodbcadm/gtk/gui.h ---- iODBC-3.52.8.orig/iodbcadm/gtk/gui.h 2012-03-27 05:15:02.000000000 -0500 -+++ iODBC-3.52.8/iodbcadm/gtk/gui.h 2013-01-08 10:30:48.124240299 -0600 -@@ -219,5 +219,6 @@ - void addlistofdir_to_optionmenu(GtkWidget* widget, LPCSTR path, TDSNCHOOSER *choose_t); - LPSTR create_keyval (HWND wnd, LPCSTR attrs, BOOL *verify_conn); - LPSTR create_fgensetup (HWND hwnd, LPCSTR dsn, LPCSTR attrs, BOOL add, BOOL *verify_conn); -+void create_message (HWND hwnd, LPCSTR dsn, LPCSTR text); - - #endif diff --git a/dev-db/libiodbc/libiodbc-3.52.12.ebuild b/dev-db/libiodbc/libiodbc-3.52.12.ebuild index e7fc9a2c6ecd..a43ae9ed6523 100644 --- a/dev-db/libiodbc/libiodbc-3.52.12.ebuild +++ b/dev-db/libiodbc/libiodbc-3.52.12.ebuild @@ -11,7 +11,7 @@ DESCRIPTION="ODBC Interface for Linux" HOMEPAGE="http://www.iodbc.org/" SRC_URI="https://github.com/openlink/${MY_PN}/archive/v${PV}.zip -> ${P}.zip" -KEYWORDS="alpha ~amd64 ~arm arm64 hppa ia64 ~mips ppc ppc64 s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos" +KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos" LICENSE="|| ( LGPL-2 BSD )" SLOT="0" IUSE="gtk" diff --git a/dev-db/libiodbc/libiodbc-3.52.8-r2.ebuild b/dev-db/libiodbc/libiodbc-3.52.8-r2.ebuild deleted file mode 100644 index 364fe91e946c..000000000000 --- a/dev-db/libiodbc/libiodbc-3.52.8-r2.ebuild +++ /dev/null @@ -1,67 +0,0 @@ -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI="5" - -inherit autotools eutils multilib-minimal - -MY_PN="iODBC" - -DESCRIPTION="ODBC Interface for Linux" -HOMEPAGE="http://www.iodbc.org/" -SRC_URI="https://github.com/openlink/${MY_PN}/archive/v${PV}.zip -> ${P}.zip" - -KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos" -LICENSE="|| ( LGPL-2 BSD )" -SLOT="0" -IUSE="gtk" - -RDEPEND="gtk? ( x11-libs/gtk+:2[${MULTILIB_USEDEP}] )" - -DEPEND="${RDEPEND}" - -DOCS="AUTHORS ChangeLog NEWS README" - -S="${WORKDIR}/${MY_PN}-${PV}" - -MULTILIB_CHOST_TOOLS=( - /usr/bin/iodbc-config -) - -src_prepare() { - sed -i.orig \ - -e '/^cd "$PREFIX"/,/^esac/d' \ - iodbc/install_libodbc.sh || die "sed failed" - epatch \ - "${FILESDIR}"/libiodbc-3.52.7-debian_bug501100.patch \ - "${FILESDIR}"/libiodbc-3.52.7-debian_bug508480.patch \ - "${FILESDIR}"/libiodbc-3.52.7-gtk.patch \ - "${FILESDIR}"/libiodbc-3.52.7-multilib.patch \ - "${FILESDIR}"/libiodbc-3.52.7-unicode_includes.patch \ - "${FILESDIR}"/libiodbc-3.52.8-gtk-parallel-make.patch \ - "${FILESDIR}"/libiodbc-3.52.8-runtime-failures.patch \ - "${FILESDIR}"/fix-runpaths.patch - chmod -x include/*.h || die - eautoreconf -} - -multilib_src_configure() { - ECONF_SOURCE=${S} \ - econf \ - --disable-static \ - --enable-odbc3 \ - --enable-pthreads \ - --with-layout=gentoo \ - --with-iodbc-inidir=yes \ - $(use_enable gtk gui) -} - -multilib_src_install_all() { - einstalldocs - prune_libtool_files - - # Install lintian overrides - insinto /usr/share/lintian/overrides - newins debian/iodbc.lintian-overrides iodbc - newins debian/libiodbc2.lintian-overrides libiodbc2 -} diff --git a/dev-db/mariadb/Manifest b/dev-db/mariadb/Manifest index 3fec74bd28e8..944f02b4212a 100644 --- a/dev-db/mariadb/Manifest +++ b/dev-db/mariadb/Manifest @@ -7,12 +7,11 @@ AUX my.cnf.distro-client 637 BLAKE2B b9b6b01195a4e2523a0a1cb7efdf5c35579d394b12b AUX my.cnf.distro-server 998 BLAKE2B a7f2977a96d394cb7e24d72d82a1c21095c4b55607e5ca4a2c10619278796c328931a5ec076c15b60afef370c2e5da02ca0c628f330e876b4d2c984eeb54df5f SHA512 d9ab6f7fdfe08e6c242f84410ec680ef6aa6778c4bd55fee67c644e1a7d997446d8ef2129be6fc9833d16fe40cf17e09cdf0cf015f06bb145bbf9cfecb51e882 DIST mariadb-10.0.35.tar.gz 66551252 BLAKE2B 69cc9c78f7c47a4b1760940cb0f395b4053fcc47c1087a0c2af873d4a998ee60915e1f4e64f7fe6474c7c1fa3dabe48a3b6621c67893b20526f01e56b0542e7a SHA512 01fc8d48be3f3847bb222835436ab938c6c5b5ac8ba6cc87b3b6d2a2201b7ab4b152dc1f7d9749c89de90097d50052714ac08aafbbb117fffac32bfb47e74779 DIST mariadb-10.0.37.tar.gz 64728382 BLAKE2B 3d794633cc400013be05c326681f11f8b27c7d6758b43f357ca93976a75ff931f6f6d205510b5df305c6f487485864d346e4fa14383be32dafcf2b8756eb045a SHA512 c3ba749f519cce3bb63fec6ee6819ad931f72d54258d4b7700c515cfeb137453271a408a9a353bf78715fe66a0c06539bdbf15f1c556a7b89a5c01af84f7fd49 +DIST mariadb-10.0.38.tar.gz 64755921 BLAKE2B 64ea08a2256063639021204f8c92d8f27b2bc0df6c9733255220df5728c128bd971bb907f2a30623a1c2cc536d47b8759781f2ccd97075ebace7c759b5cf0c14 SHA512 020c9b8bed5f5ff4e8f621665cc37f56fe9fbb4bda1f64d4bd9fe1bcaaf79dc2c254e582ee690c9aa4f810cf3eeb96249cb3b4b54a6604d035accf03846ba4a9 DIST mariadb-10.1.34.tar.gz 65298561 BLAKE2B 3f3af7b8bad68a08f69befd3f3e7bd88b8cf058feb20309dc2cdbd16bf5d015c2cb0d1d9d2fdf831f6183c0b9bb25405124c24b2940467489e05d42c57f7b0a6 SHA512 3c18359006b340dcf724d1fce36dcc19916c42492269a7545e0726172b8f7b84860e10725c74e4458dae34572395f1650bf17838e9058544e0a6cfcbffd54f6d 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.2.20.tar.gz 71876032 BLAKE2B cb170dc8e341dd4406112ec66aa3d9754662f2a5fa986e3ebc7ebfc96f475cd993189bb2b9b60b2258299e363376c2c50bfdd1abbcf09525b951c2cac9c5ed0b SHA512 24f5ec7381aa3c9dc8862260e5ed2296034c41286fe81aa2e2547b3d02e1a3b6146cbde7396c6ef803e7aebb98a59c24c815dd0cc4fae462789f2362690c6ba6 -DIST mariadb-10.2.21.tar.gz 71878359 BLAKE2B cad6a24480b476128d419ad85cfa67777bc0641c8cc30884f90ba61e73e2e009e51742bbe132b2c9736478ee6997fd576bd5c96660bf4f321617382716881cee SHA512 b723ddda5fb22ff41ec8a031a1a0f15bbd13ffec09099c7e0138d7b25028d0807b0bd3ac71957b825516386088bba28b0bf561706e99a6396e599ef21e720cda -DIST mariadb-10.3.11.tar.gz 70669435 BLAKE2B e16346519b60aa11a0ffd2c19254ef888c44c054d55b7f98a8d696e3df2c0801c6141adddfb9169098ad5efa5d881c83681c3c5741f68b10c9ce4d15def34254 SHA512 1adc1f9bbabf848726c669a7a0ab01257ba31882758b53fbf3b1316f2295670dba1c3d1f3292d7c1a749c701504588694a55d020839e690595897b0e20435298 +DIST mariadb-10.1.38.tar.gz 63535685 BLAKE2B c179ea2f60287c2bc1c0d1c47ae989ac2653a24063e8344cef2f3062fc6798e18b969e8f9aa8287104ce2518e6c644cb8d3a4650b5a0bc5dfde973e76e618955 SHA512 184582f3a902a989ba3d9c4d21288c014c8b469adbbb4cbabc621c5006022cef29baed8c1140ed4476b124da83b76dfa414295ed0c3374be826e75aca953a77b +DIST mariadb-10.2.22.tar.gz 71907765 BLAKE2B e7781a9e1bb0becca543ebb0b9e03912fbafa9de45bbd5c7232f92d29b934148dd124ad462bf8aa5aec2e4ee0bf75a03fae5e5fe97a77e1d93095052a577c14b SHA512 cd61d0c2d528b23b975e6ea142560d9b9ebff7ecda6fa9b3659b25b3406e8cc925918f4c3bb0e200ddb8d0520bcaa4d4f70d245b4731896f9ba2f1bdf0a817b2 DIST mariadb-10.3.12.tar.gz 70666408 BLAKE2B 90e734a5617e44e2c273a1cd22ed2f81493e9458249dc0eb478c3b2b106dd7a0f81d130841be7632272bf6dc01e64350057c2d3e8162e8e8cef1f5a4ac2fb18c SHA512 9dd2939684c4591db306be6afb34663626dfaae133f88dd31125c759dce16b9e9d767a9254e30d9ee5fa2ea027e223dd4799effba8a8b0e4638d5de9e2512003 DIST mariadb-5.5.63.tar.gz 45946425 BLAKE2B bddfd67d8393ec22c4bc8d7dab2838825394636bd690c04574bdc4da84fbf6c779fcae7f6be5d596458baa732cb5278475f308f03df083cdfcecffc486950d81 SHA512 4699d8af2210e12d0eea659a4d3fd4bfa68ce11a38cffaf939a96cb7a1fe64dd0827d39c3a0a36fa7cc1981a804a9af7a6d5cfaf23a8cfc8440e54c0163c2acb DIST mysql-extras-20180809-1700Z.tar.bz2 322999 BLAKE2B 8b5feb32085dc35b2f68dae985b2d266c4eaa0e956b490050a2df04bbff99bf8623b67e75af9326d84e3ad625c4d86b0d21d23c9a96df5a0c9cd5ed730958970 SHA512 fbd7af9284bbf09d55f128361e7cc52d94f24ac491aac800cd6d61f2e444aeca66a4d5e6ae94c2fb4044e00cec9b232bae9a76a229f87f19d90b7aecf70792ec @@ -20,13 +19,11 @@ DIST mysql-extras-20181104-2252Z.tar.bz2 328613 BLAKE2B c869dbdd8eb8ab6706b52815 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 27521 BLAKE2B 2dee454767b07e9ef957a3d44d3abebb3bace6a7119b81c7662051a3db9315382d3ea1f73dd03380da695ba16d724560d2b03eea3dd09eb206abcaee1358de7a SHA512 d90e140866541db92272855beb315aea7f037304e018efa6ac090b9d838864de0b7efe24d63ffdc2bc605ce659e0a8b722e2c7650ba21d740ab7d337ddd2c9d2 +EBUILD mariadb-10.0.38.ebuild 27526 BLAKE2B a54b23cb96de54e5cde1f901d1d818245c1c1e5db84f819306a5a38240e8c5f5635bd2c81081213a20a14bf6f4175a1e24acaac4a6e1ec3613804b019e3a5d46 SHA512 0e97dc59e03cef47825e2829166064ecff46f410314e0ddacbe6552a3504318fa6ef01008ab13d437cd384418baaf5ad58b96290093f55c14319305fa5967a06 EBUILD mariadb-10.1.34.ebuild 29472 BLAKE2B 859741b70abf8c2347395b26b7543f36be94165141227bb7dc75f054768490bf891eea5bd2f171aa0c0f8caed7603abf1347a0087caa10e55ce920aaa9c6677b SHA512 ff30a1fcdcc72b8324dec1be29db63a1792ca58474744f0c02014b1fba28d856ac0f154235b0889aedcc95cf24c4b58fcfd681458be726609861ba6f4220ad8f 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.2.20.ebuild 32055 BLAKE2B 931c5143464274e5121a0b42caa7ccf3cb0f3cba57e06f5ba05e470a4166f5b3d6819ca288da1af7fe96e14262eda0ac6713ec1782cadcbe3d272d27d30f9fa9 SHA512 5cf12a500ef814871513f803b4e294fdfc4db3d149ec13999d57abac5502df496cd661595079a7c83db62ff579bef5c6515922524257f4c0dcbacbec1da7678c -EBUILD mariadb-10.2.21.ebuild 32138 BLAKE2B 66e09920cd144d53ef3e8f34c24395348cb13b1751c796d83cab4fe7f9da63a85380c7249d4f31e40c08d63c1d2213fa7a84da155ed9386392de483e5e4b5ec7 SHA512 6f95abb7c46b434516aa82815be7bc43ca5c744952addfcc2ef20ddece0a1654a4ea15c4c2c677e3b5161cd64bcf7dbdd8b8d209846239f1878e5e38e0de2993 -EBUILD mariadb-10.3.11.ebuild 32121 BLAKE2B 369dc311230cd6a9d8ee2b3db819168c1b5c31321d39e8aaf462ddb5a5b66076ee1bc6e29a2f8eb477b0d2b45b58042c679ffda72beabe645f53db36dcdc10f9 SHA512 d1718981da061de1923f06dda39e75b61feaf5c2886bc0782d697b6867aec6184907a81fa8f5b48bf3c4f7f643fe8430890b22ed10af6b6175bd115b96b936ad +EBUILD mariadb-10.1.38.ebuild 29468 BLAKE2B 508bc25ea3b8a0f9275d82bb591ccf48aed66f63290f910570ab8019a7f9b7e9ecb1863bb8d71ff2fcb2318c91e1387b5bd9e679314c682531662f9a59da9cec SHA512 880d95e14d4034b8f2a5d13fd39cffdd33b37bc3f40901c4477aafc4656beadba14fab7585bceb809c61c2ab228451835c4b75e8774aa572411a91a14b0cd7f7 +EBUILD mariadb-10.2.22.ebuild 32138 BLAKE2B 66e09920cd144d53ef3e8f34c24395348cb13b1751c796d83cab4fe7f9da63a85380c7249d4f31e40c08d63c1d2213fa7a84da155ed9386392de483e5e4b5ec7 SHA512 6f95abb7c46b434516aa82815be7bc43ca5c744952addfcc2ef20ddece0a1654a4ea15c4c2c677e3b5161cd64bcf7dbdd8b8d209846239f1878e5e38e0de2993 EBUILD mariadb-10.3.12.ebuild 32159 BLAKE2B e88a0109fec3ed85753d5e7bb907a1f675fb323340d0e8ba6cb8ae2cee01646f8a94bf894dfaafaa69b7928e391a2a4638de4ac3fc714ef4d3eca16e611e7371 SHA512 c0bb9f9634cf7c6a961310648d871f7df95a82c39f38856df9692835b07a1b90f533cbea6b8e164e62be7a1e395efdffbb8bdd0b6c4d92877ca6ab942840a4ed EBUILD mariadb-5.5.63.ebuild 27054 BLAKE2B fb6b085846137c6607ccb1b58fdaac6abe8999ad67102b3993b52340dd4c7805640379b79c0a0fe300b237438f836a8b62794c423ebc47707b414f7712214919 SHA512 d9356369a5e93dc1dd1a6c6c332ceac7306cc14b33068739d5fef621ea6f14bf2a36e0b8a9f39500ccb8fb7cf35dae013c9303ade0002459971f48d28097d3de MISC metadata.xml 2611 BLAKE2B d1b6b11359e92a3d9cb2c58ed35a15e3cf42ab616ed907fa36a5f777168a805ffd03d01bd13fcd30352ef6c5e8b1d80f4e882ffaf8f6445ed3fce2bcc2a92923 SHA512 80395b35839acebbb18ac8d01e8c806bd89f18d32f85fcba41f41ecfc4f1f869dc8c51c90bb21ebd3c9ac30d51d47869a4dcf3b8ce73967e337e6e396b267c97 diff --git a/dev-db/mariadb/mariadb-10.2.20.ebuild b/dev-db/mariadb/mariadb-10.0.38.ebuild index d5c662d9c0de..141158d014bd 100644 --- a/dev-db/mariadb/mariadb-10.2.20.ebuild +++ b/dev-db/mariadb/mariadb-10.0.38.ebuild @@ -2,15 +2,14 @@ # Distributed under the terms of the GNU General Public License v2 EAPI="6" -MY_EXTRAS_VER="20181211-1735Z" +MY_EXTRAS_VER="20180809-1700Z" 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 +inherit eutils flag-o-matic prefix toolchain-funcs java-pkg-opt-2 user cmake-utils multilib-build SRC_URI="https://downloads.mariadb.org/interstitial/${P}/source/${P}.tar.gz " @@ -26,12 +25,11 @@ fi HOMEPAGE="https://mariadb.org/" DESCRIPTION="An enhanced, drop-in replacement for MySQL" -LICENSE="GPL-2 LGPL-2.1+" +LICENSE="GPL-2" 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 +IUSE="bindist client-libs debug extraengine jdbc jemalloc latin1 libressl + numa odbc oqgraph pam +perl profiling selinux +server sphinx + static static-libs systemtap tcmalloc test tokudb xml yassl" # Tests always fail when libressl is enabled due to hard-coded ciphers in the tests @@ -49,21 +47,20 @@ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~ S="${WORKDIR}/mysql" if [[ "${MY_EXTRAS_VER}" == "live" ]] ; then + MY_PATCH_DIR="${WORKDIR%/}/mysql-extras" inherit git-r3 - EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/mysql-extras.git" + EGIT_REPO_URI="git://anongit.gentoo.org/proj/mysql-extras.git" EGIT_CHECKOUT_DIR="${WORKDIR%/}/mysql-extras" EGIT_CLONE_TYPE=shallow - MY_PATCH_DIR="${WORKDIR%/}/mysql-extras" else MY_PATCH_DIR="${WORKDIR%/}/mysql-extras-${MY_EXTRAS_VER}" fi PATCHES=( - "${MY_PATCH_DIR}"/20015_all_mariadb-pkgconfig-location.patch - "${MY_PATCH_DIR}"/20018_all_mariadb-10.2.16-without-clientlibs-tools.patch - "${MY_PATCH_DIR}"/20024_all_mariadb-10.2.6-mysql_st-regression.patch - "${MY_PATCH_DIR}"/20025_all_mariadb-10.2.6-gssapi-detect.patch - "${MY_PATCH_DIR}"/20035_all_mariadb-10.2-atomic-detection.patch + "${MY_PATCH_DIR}/01050_all_mariadb_mysql_config_cleanup-5.5.41.patch" + "${MY_PATCH_DIR}/20006_all_cmake_elib-mariadb-10.0.33.patch" + "${MY_PATCH_DIR}/20009_all_mariadb_myodbc_symbol_fix-5.5.38.patch" + "${MY_PATCH_DIR}/20018_all_mariadb-10.0.20-without-clientlibs-tools.patch" ) # Be warned, *DEPEND are version-dependant @@ -78,36 +75,27 @@ COMMON_DEPEND=" 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/openssl:0= !>=dev-libs/openssl-1.1 ) libressl? ( dev-libs/libressl:0= ) ) + >=sys-libs/zlib-1.2.3:0= sys-libs/ncurses:0= !bindist? ( - sys-libs/binutils-libs:0= >=sys-libs/readline-4.1:0= ) server? ( - backup? ( app-arch/libarchive:0= ) - cracklib? ( sys-libs/cracklib:0= ) extraengine? ( odbc? ( dev-db/unixODBC:0= ) xml? ( dev-libs/libxml2:2= ) ) - 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= + !client-libs? ( dev-db/mysql-connector-c[${MULTILIB_USEDEP},static-libs?] ) " DEPEND="virtual/yacc static? ( sys-libs/ncurses[static-libs] ) @@ -115,17 +103,10 @@ DEPEND="virtual/yacc server? ( extraengine? ( jdbc? ( >=virtual/jdk-1.6 ) ) ) ${COMMON_DEPEND}" RDEPEND="selinux? ( sec-policy/selinux-mysql ) + client-libs? ( !dev-db/mariadb-connector-c[mysqlcompat] !dev-db/mysql-connector-c ) !dev-db/mysql !dev-db/mariadb-galera !dev-db/percona-server !dev-db/mysql-cluster server? ( !prefix? ( dev-db/mysql-init-scripts ) ) - !<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 @@ -135,10 +116,7 @@ RDEPEND="selinux? ( sec-policy/selinux-mysql ) " # 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 ) ) ) )" +PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )" pkg_setup() { if [[ ${MERGE_TYPE} != binary ]] ; then @@ -172,17 +150,6 @@ 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 [[ -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() { @@ -217,26 +184,14 @@ pkg_postinst() { 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 + 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 - - # 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() { @@ -248,30 +203,27 @@ src_unpack() { } src_prepare() { - _disable_plugin() { - echo > "${S%/}/plugin/${1}/CMakeLists.txt" || die - } _disable_engine() { echo > "${S%/}/storage/${1}/CMakeLists.txt" || die } - local malloc - for malloc in jemalloc tcmalloc ; do - if use ${malloc}; then - echo "TARGET_LINK_LIBRARIES(mysqld ${malloc})" >> "${S}/sql/CMakeLists.txt" - fi - done + _disable_plugin() { + echo > "${S%/}/plugin/${1}/CMakeLists.txt" || die + } + + if use tcmalloc; then + echo "TARGET_LINK_LIBRARIES(mysqld tcmalloc)" >> "${S%/}/sql/CMakeLists.txt" || die + fi # Don't build bundled xz-utils for tokudb - echo > "${S}/storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake" || die - sed -i -e 's/ build_lzma//' -e 's/ build_snappy//' "${S}/storage/tokudb/PerconaFT/ft/CMakeLists.txt" || die - sed -i -e 's/add_dependencies\(tokuportability_static_conv build_jemalloc\)//' "${S}/storage/tokudb/PerconaFT/portability/CMakeLists.txt" || die + 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 ) + locale_info qc_info server_audit semisync sql_errlog ) + local test_plugins=( audit_null auth_examples daemon_example fulltext ) if ! use server; then # These plugins are for the server for plugin in "${server_plugins[@]}" ; do _disable_plugin "${plugin}" @@ -282,23 +234,19 @@ src_prepare() { for plugin in "${test_plugins[@]}" ; do _disable_plugin "${plugin}" done - _disable_engine test_sql_discovery fi + # Collides with mariadb-connector-c bug 655980 + _disable_plugin auth_dialog + + # Don't build Mroonga or example + _disable_engine mroonga _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 } @@ -320,9 +268,8 @@ src_configure(){ 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" + -DCMAKE_INSTALL_PREFIX="${EPREFIX%/}/usr" + -DDEFAULT_SYSCONFDIR="${EPREFIX%/}/etc/mysql" -DINSTALL_BINDIR=bin -DINSTALL_DOCDIR=share/doc/${PF} -DINSTALL_DOCREADMEDIR=share/doc/${PF} @@ -333,35 +280,22 @@ src_configure(){ -DINSTALL_MYSQLSHAREDIR=share/mariadb -DINSTALL_PLUGINDIR=$(get_libdir)/mariadb/plugin -DINSTALL_SCRIPTDIR=share/mariadb/scripts - -DINSTALL_MYSQLDATADIR="${EPREFIX}/var/lib/mysql" + -DINSTALL_MYSQLDATADIR="${EPREFIX%/}/var/lib/mysql" -DINSTALL_SBINDIR=sbin - -DINSTALL_SUPPORTFILESDIR="${EPREFIX}/usr/share/mariadb" - -DWITH_COMMENT="Gentoo Linux ${PF}" + -DINSTALL_SUPPORTFILESDIR="${EPREFIX%/}/usr/share/mariadb" + -DCOMPILATION_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)" + -DMYSQL_UNIX_ADDR="${EPREFIX%/}/var/run/mysqld/mysqld.sock" + -DINSTALL_UNIX_ADDRDIR="${EPREFIX%/}/var/run/mysqld/mysqld.sock" # The build forces this to be defined when cross-compiling. We pass it # all the time for simplicity and to make sure it is actually correct. -DSTACK_DIRECTION=$(tc-stack-grows-down && echo -1 || echo 1) - -DPKG_CONFIG_EXECUTABLE="${EPREFIX}/usr/bin/$(tc-getPKG_CONFIG)" - -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO) - -DAUTH_GSSAPI_PLUGIN_TYPE=$(usex kerberos DYNAMIC OFF) - -DCONC_WITH_EXTERNAL_ZLIB=YES - -DWITH_EXTERNAL_ZLIB=YES - -DSUFFIX_INSTALL_DIR="" - -DWITH_UNITTEST=OFF -DWITHOUT_CLIENTLIBS=YES - -DCLIENT_PLUGIN_DIALOG=OFF - -DCLIENT_PLUGIN_AUTH_GSSAPI_CLIENT=OFF - -DCLIENT_PLUGIN_MYSQL_CLEAR_PASSWORD=STATIC - -DCLIENT_PLUGIN_CACHING_SHA2_PASSWORD=OFF + -DWITH_READLINE=$(usex bindist 1 0) + -DNOT_FOR_DISTRIBUTION=$(usex bindist 0 1) + -DENABLE_DTRACE=$(usex systemtap) ) if use test ; then mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mariadb/mysql-test ) @@ -370,68 +304,37 @@ src_configure(){ fi if ! use yassl ; then - mycmakeargs+=( -DWITH_SSL=system -DCLIENT_PLUGIN_SHA256_PASSWORD=STATIC ) + mycmakeargs+=( -DWITH_SSL=system ) 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 ) + -DWITHOUT_FEDERATED_STORAGE_ENGINE=1 + -DWITHOUT_FEDERATEDX_STORAGE_ENGINE=1 ) 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 + -D$(usex sphinx WITH WITHOUT)_SPHINX_STORAGE_ENGINE=1 + -D$(usex tokudb WITH WITHOUT)_TOKUDB_STORAGE_ENGINE=1 + -D$(usex oqgraph WITH WITHOUT)_AUTH_PAM=1 + -D$(usex extraengine WITH WITHOUT)_SEQUENCE_STORAGE_ENGINE=1 + -D$(usex extraengine WITH WITHOUT)_SPIDER_STORAGE_ENGINE=1 + -D$(usex extraengine WITH WITHOUT)_CONNECT_STORAGE_ENGINE=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}." @@ -455,11 +358,9 @@ src_configure(){ 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) + -DENABLED_PROFILING=$(usex profiling) ) if use static; then @@ -485,10 +386,8 @@ src_configure(){ else mycmakeargs+=( -DWITHOUT_SERVER=1 - -DWITH_EMBEDDED_SERVER=OFF -DEXTRA_CHARSETS=none -DINSTALL_SQLBENCHDIR= - -DWITH_SYSTEMD=no ) fi @@ -503,8 +402,8 @@ 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 + 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 @@ -517,57 +416,46 @@ src_install() { 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 + 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" + 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" + [[ -f "${S%/}/scripts/mysqlaccess.conf" ]] && doins "${S%/}"/scripts/mysqlaccess.conf + local mycnf_src="my.cnf-5.6-r1" + sed -e "s!@DATADIR@!${MY_DATADIR}!g" \ + "${FILESDIR%/}/${mycnf_src}" \ + > "${TMPDIR%/}/my.cnf.ok" || die + use prefix && sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' "${TMPDIR%/}/my.cnf.ok" + if use latin1 ; then + sed -i \ + -e "/character-set/s|utf8|latin1|g" \ + "${TMPDIR%/}/my.cnf.ok" || die + fi + eprefixify "${TMPDIR%/}/my.cnf.ok" + newins "${TMPDIR}/my.cnf.ok" my.cnf if use server ; then - 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 + "${S%/}"/support-files/magic do [[ -f "$script" ]] && dodoc "${script}" done docinto "scripts" - for script in "${S}"/scripts/mysql* ; do + for script in "${S%/}"/scripts/mysql* ; do [[ ( -f "$script" ) && ( "${script%.sh}" == "${script}" ) ]] && dodoc "${script}" done # Manually install supporting files that conflict with other packages @@ -577,7 +465,7 @@ src_install() { fi #Remove mytop if perl is not selected - [[ -e "${ED}/usr/bin/mytop" ]] && ! use perl && rm -f "${ED}/usr/bin/mytop" + [[ -e "${ED%/}/usr/bin/mytop" ]] && ! use perl && rm -f "${ED%/}/usr/bin/mytop" } # Official test instructions: @@ -641,20 +529,15 @@ src_test() { # 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 + main.mysql_client_test_comp rpl.rpl_extra_col_master_myisam \ + rpl.rpl_semi_sync_uninstall_plugin ; do _disable_test "$t" "False positives in Gentoo" done - _disable_test main.plugin_auth "Needs client libraries built" - - # Likely environment issues as only number of clients connected fails - _disable_test rpl.rpl_semi_sync_uninstall_plugin \ - "Fails intermittently on parallel testing" + if ! use client-libs ; then + _disable_test main.plugin_auth "Needs client libraries built" + fi # run mysql-test tests perl mysql-test-run.pl --force --vardir="${T}/var-tests" --reorder --skip-test=tokudb --skip-test-list="${T}/disabled.def" diff --git a/dev-db/mariadb/mariadb-10.2.19-r1.ebuild b/dev-db/mariadb/mariadb-10.1.38.ebuild index 7ed2c00ee4ab..4f84cf1ee6fc 100644 --- a/dev-db/mariadb/mariadb-10.2.19-r1.ebuild +++ b/dev-db/mariadb/mariadb-10.1.38.ebuild @@ -1,16 +1,15 @@ -# Copyright 1999-2018 Gentoo Authors +# Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="6" -MY_EXTRAS_VER="20181211-1735Z" +MY_EXTRAS_VER="20181104-2252Z" 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 +inherit eutils systemd flag-o-matic prefix toolchain-funcs java-pkg-opt-2 user cmake-utils multilib-build SRC_URI="https://downloads.mariadb.org/interstitial/${P}/source/${P}.tar.gz " @@ -26,13 +25,12 @@ fi HOMEPAGE="https://mariadb.org/" DESCRIPTION="An enhanced, drop-in replacement for MySQL" -LICENSE="GPL-2 LGPL-2.1+" +LICENSE="GPL-2" 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" +IUSE="+backup bindist client-libs cracklib debug extraengine galera jdbc jemalloc kerberos + innodb-lz4 innodb-lzo innodb-snappy latin1 libressl mroonga numa odbc oqgraph pam + +perl profiling selinux +server sphinx sst-rsync sst-mariabackup sst-xtrabackup + systemd systemtap static static-libs tcmalloc test tokudb xml yassl" # Tests always fail when libressl is enabled due to hard-coded ciphers in the tests RESTRICT="!bindist? ( bindist ) libressl? ( test )" @@ -42,29 +40,30 @@ REQUIRED_USE="jdbc? ( extraengine server !static ) ?? ( 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" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris" # Shorten the path because the socket path length must be shorter than 107 chars # and we will run a mysql server during test phase S="${WORKDIR}/mysql" if [[ "${MY_EXTRAS_VER}" == "live" ]] ; then + MY_PATCH_DIR="${WORKDIR%/}/mysql-extras" inherit git-r3 - EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/mysql-extras.git" + EGIT_REPO_URI="git://anongit.gentoo.org/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}"/20006_all_cmake_elib-mariadb-10.1.27.patch + "${MY_PATCH_DIR}"/20009_all_mariadb_myodbc_symbol_fix-5.5.38.patch "${MY_PATCH_DIR}"/20015_all_mariadb-pkgconfig-location.patch - "${MY_PATCH_DIR}"/20018_all_mariadb-10.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 + "${MY_PATCH_DIR}"/20018_all_mariadb-10.1.16-without-clientlibs-tools.patch + "${MY_PATCH_DIR}"/20025_all_mariadb-10.1.26-gssapi-detect.patch + "${MY_PATCH_DIR}"/20029_all_mariadb-10.1.37-enable-numa.patch + "${MY_PATCH_DIR}"/20035_all_mariadb-10.1-atomic-detection.patch ) # Be warned, *DEPEND are version-dependant @@ -79,13 +78,11 @@ COMMON_DEPEND=" 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/openssl:0= !>=dev-libs/openssl-1.1 ) libressl? ( dev-libs/libressl:0= ) ) + >=sys-libs/zlib-1.2.3:0= sys-libs/ncurses:0= !bindist? ( sys-libs/binutils-libs:0= @@ -97,10 +94,12 @@ COMMON_DEPEND=" extraengine? ( odbc? ( dev-db/unixODBC:0= ) xml? ( dev-libs/libxml2:2= ) + sys-libs/zlib[minizip] ) innodb-lz4? ( app-arch/lz4 ) innodb-lzo? ( dev-libs/lzo ) innodb-snappy? ( app-arch/snappy ) + kerberos? ( virtual/krb5 ) mroonga? ( app-text/groonga-normalizer-mysql >=app-text/groonga-7.0.4 ) numa? ( sys-process/numactl ) oqgraph? ( >=dev-libs/boost-1.40.0:0= dev-libs/judy:0= ) @@ -108,7 +107,9 @@ COMMON_DEPEND=" systemd? ( sys-apps/systemd:= ) tokudb? ( app-arch/snappy ) ) + !yassl? ( !libressl? ( !>=dev-libs/openssl-1.1.0 ) ) >=dev-libs/libpcre-8.41-r1:3= + !client-libs? ( dev-db/mysql-connector-c[${MULTILIB_USEDEP},static-libs?] ) " DEPEND="virtual/yacc static? ( sys-libs/ncurses[static-libs] ) @@ -116,9 +117,9 @@ DEPEND="virtual/yacc server? ( extraengine? ( jdbc? ( >=virtual/jdk-1.6 ) ) ) ${COMMON_DEPEND}" RDEPEND="selinux? ( sec-policy/selinux-mysql ) + client-libs? ( !dev-db/mariadb-connector-c[mysqlcompat] !dev-db/mysql-connector-c ) !dev-db/mysql !dev-db/mariadb-galera !dev-db/percona-server !dev-db/mysql-cluster server? ( !prefix? ( dev-db/mysql-init-scripts ) ) - !<virtual/mysql-5.6-r11 ${COMMON_DEPEND} server? ( galera? ( sys-apps/iproute2 @@ -138,8 +139,7 @@ RDEPEND="selinux? ( sec-policy/selinux-mysql ) # 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 ) ) ) )" + server? ( galera? ( sst-xtrabackup? ( || ( >=dev-db/percona-xtrabackup-bin-2.2.4 dev-db/percona-xtrabackup ) ) ) )" pkg_setup() { if [[ ${MERGE_TYPE} != binary ]] ; then @@ -173,17 +173,6 @@ 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 [[ -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() { @@ -218,26 +207,14 @@ pkg_postinst() { 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 + 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 - - # 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() { @@ -245,31 +222,31 @@ src_unpack() { # Grab the patches [[ "${MY_EXTRAS_VER}" == "live" ]] && S="${WORKDIR%/}/mysql-extras" git-r3_src_unpack - mv -f "${WORKDIR%/}/${P}" "${S}" || die + mv -f "${WORKDIR%/}/${PN%%-galera}-${PV}" "${S}" || die } src_prepare() { - _disable_plugin() { - echo > "${S%/}/plugin/${1}/CMakeLists.txt" || die - } _disable_engine() { echo > "${S%/}/storage/${1}/CMakeLists.txt" || die } + _disable_plugin() { + echo > "${S%/}/plugin/${1}/CMakeLists.txt" || die + } + if use tcmalloc; then - echo "TARGET_LINK_LIBRARIES(mysqld tcmalloc)" >> "${S}/sql/CMakeLists.txt" + echo "TARGET_LINK_LIBRARIES(mysqld tcmalloc)" >> "${S%/}/sql/CMakeLists.txt" || die fi # Don't build bundled xz-utils for tokudb - echo > "${S}/storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake" || die - sed -i -e 's/ build_lzma//' -e 's/ build_snappy//' "${S}/storage/tokudb/PerconaFT/ft/CMakeLists.txt" || die - sed -i -e 's/add_dependencies\(tokuportability_static_conv build_jemalloc\)//' "${S}/storage/tokudb/PerconaFT/portability/CMakeLists.txt" || die + 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 ) + locale_info qc_info server_audit semisync sql_errlog ) + local test_plugins=( audit_null auth_examples daemon_example fulltext ) if ! use server; then # These plugins are for the server for plugin in "${server_plugins[@]}" ; do _disable_plugin "${plugin}" @@ -280,22 +257,15 @@ src_prepare() { 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 + # Collides with mariadb-connector-c bug 655980 + _disable_plugin auth_dialog - 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 + # Avoid useless library checks + use mroonga || _disable_engine mroonga + use oqgraph || _disable_engine oqgraph + _disable_engine example cmake-utils_src_prepare java-pkg-opt-2_src_prepare @@ -318,9 +288,8 @@ src_configure(){ 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" + -DCMAKE_INSTALL_PREFIX="${EPREFIX%/}/usr" + -DDEFAULT_SYSCONFDIR="${EPREFIX%/}/etc/mysql" -DINSTALL_BINDIR=bin -DINSTALL_DOCDIR=share/doc/${PF} -DINSTALL_DOCREADMEDIR=share/doc/${PF} @@ -329,54 +298,29 @@ src_configure(){ -DINSTALL_LIBDIR=$(get_libdir) -DINSTALL_MANDIR=share/man -DINSTALL_MYSQLSHAREDIR=share/mariadb + -DINSTALL_MYSQLTESTDIR=$(usex test 'share/mariadb/mysql-test' '') -DINSTALL_PLUGINDIR=$(get_libdir)/mariadb/plugin -DINSTALL_SCRIPTDIR=share/mariadb/scripts - -DINSTALL_MYSQLDATADIR="${EPREFIX}/var/lib/mysql" + -DINSTALL_MYSQLDATADIR="${EPREFIX%/}/var/lib/mysql" -DINSTALL_SBINDIR=sbin - -DINSTALL_SUPPORTFILESDIR="${EPREFIX}/usr/share/mariadb" - -DWITH_COMMENT="Gentoo Linux ${PF}" + -DINSTALL_SUPPORTFILESDIR="${EPREFIX%/}/usr/share/mariadb" + -DCOMPILATION_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" + -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) + -DWITH_SSL=$(usex yassl bundled system) ) if use server ; then @@ -412,23 +356,14 @@ src_configure(){ -DWITH_INNODB_SNAPPY=$(usex innodb-snappy ON OFF) -DPLUGIN_MROONGA=$(usex mroonga DYNAMIC NO) -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO) + -DPLUGIN_AUTH_GSSAPI_CLIENT=NO -DWITH_MARIABACKUP=$(usex backup ON OFF) -DWITH_LIBARCHIVE=$(usex backup ON OFF) - -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) + -DINSTALL_SQLBENCHDIR='' ) - # 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}." @@ -456,7 +391,7 @@ src_configure(){ -DDISABLE_SHARED=$(usex static YES NO) -DWITH_DEBUG=$(usex debug) -DWITH_EMBEDDED_SERVER=OFF - -DWITH_PROFILING=$(usex profiling) + -DENABLED_PROFILING=$(usex profiling) ) if use static; then @@ -529,31 +464,20 @@ src_install() { 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" + local mycnf_src="my.cnf-5.6-r1" + sed -e "s!@DATADIR@!${MY_DATADIR}!g" \ + "${FILESDIR}/${mycnf_src}" \ + > "${TMPDIR}/my.cnf.ok" || die + use prefix && sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' "${TMPDIR}/my.cnf.ok" + if use latin1 ; then + sed -i \ + -e "/character-set/s|utf8|latin1|g" \ + "${TMPDIR}/my.cnf.ok" || die + fi + eprefixify "${TMPDIR}/my.cnf.ok" + newins "${TMPDIR}/my.cnf.ok" my.cnf if use server ; then - 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 @@ -613,8 +537,8 @@ src_test() { einfo ">>> Test phase [test]: ${CATEGORY}/${PF}" # Run CTest (test-units) - cmake-utils_src_test - retstatus_unit=$? +# cmake-utils_src_test +# retstatus_unit=$? # Ensure that parallel runs don't die export MTR_BUILD_THREAD="$((${RANDOM} % 100))" @@ -643,11 +567,16 @@ src_test() { done for t in main.mysql_client_test main.mysql_client_test_nonblock \ + rpl.rpl_semi_sync_uninstall_plugin \ 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" + if ! use client-libs ; then + _disable_test main.plugin_auth "Needs client libraries built" + fi + + _disable_test sys_vars.sysvars_server_notembedded "Broken test" # bug #661700 required profiling always on # run mysql-test tests perl mysql-test-run.pl --force --vardir="${T}/var-tests" --reorder --skip-test=tokudb --skip-test-list="${T}/disabled.def" diff --git a/dev-db/mariadb/mariadb-10.2.19.ebuild b/dev-db/mariadb/mariadb-10.2.19.ebuild deleted file mode 100644 index da01e09871b4..000000000000 --- a/dev-db/mariadb/mariadb-10.2.19.ebuild +++ /dev/null @@ -1,1048 +0,0 @@ -# Copyright 1999-2018 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="6" -MY_EXTRAS_VER="20180809-1700Z" -SUBSLOT="18" - -JAVA_PKG_OPT_USE="jdbc" - -# Keeping eutils in EAPI=6 for emktemp in pkg_config - -inherit eutils systemd flag-o-matic prefix toolchain-funcs \ - java-pkg-opt-2 user cmake-utils multilib-minimal - -SRC_URI="https://downloads.mariadb.org/interstitial/${P}/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 static-libs systemd systemtap tcmalloc - test tokudb xml yassl" - -# Tests always fail when libressl is enabled due to hard-coded ciphers in the tests -RESTRICT="!bindist? ( bindist ) libressl? ( test )" - -REQUIRED_USE="jdbc? ( extraengine server !static ) - server? ( tokudb? ( jemalloc !tcmalloc ) ) - ?? ( 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 - MY_PATCH_DIR="${WORKDIR%/}/mysql-extras" - inherit git-r3 - EGIT_REPO_URI="git://anongit.gentoo.org/proj/mysql-extras.git" - EGIT_CHECKOUT_DIR="${WORKDIR%/}/mysql-extras" - EGIT_CLONE_TYPE=shallow -else - MY_PATCH_DIR="${WORKDIR%/}/mysql-extras-${MY_EXTRAS_VER}" -fi - -PATCHES=( - "${MY_PATCH_DIR}"/20015_all_mariadb-pkgconfig-location.patch - "${MY_PATCH_DIR}"/20018_all_mariadb-10.2.16-without-clientlibs-tools.patch - "${MY_PATCH_DIR}"/20024_all_mariadb-10.2.6-mysql_st-regression.patch - "${MY_PATCH_DIR}"/20025_all_mariadb-10.2.6-gssapi-detect.patch - "${MY_PATCH_DIR}"/20035_all_mariadb-10.2-atomic-detection.patch -) - -# Be warned, *DEPEND are version-dependant -# These are used for both runtime and compiletime -# MULTILIB_USEDEP only set for libraries used by the client library -COMMON_DEPEND=" - kernel_linux? ( - sys-process/procps:0= - dev-libs/libaio:0= - ) - >=sys-apps/sed-4 - >=sys-apps/texinfo-4.7-r1 - jemalloc? ( dev-libs/jemalloc:0= ) - tcmalloc? ( dev-util/google-perftools:0= ) - systemtap? ( >=dev-util/systemtap-1.3:0= ) - client-libs? ( >=sys-libs/zlib-1.2.3:0=[${MULTILIB_USEDEP},static-libs?] - kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) - yassl? ( net-libs/gnutls:0=[${MULTILIB_USEDEP},static-libs?] ) - !yassl? ( - !libressl? ( >=dev-libs/openssl-1.0.0:0=[${MULTILIB_USEDEP},static-libs?] ) - libressl? ( dev-libs/libressl:0=[${MULTILIB_USEDEP},static-libs?] ) - ) - ) - !client-libs? ( >=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= - !client-libs? ( dev-db/mariadb-connector-c[${MULTILIB_USEDEP}] dev-db/mysql-connector-c[${MULTILIB_USEDEP}] ) -" -DEPEND="virtual/yacc - static? ( sys-libs/ncurses[static-libs] ) - || ( >=sys-devel/gcc-3.4.6 >=sys-devel/gcc-apple-4.0 ) - server? ( extraengine? ( jdbc? ( >=virtual/jdk-1.6 ) ) ) - ${COMMON_DEPEND}" -RDEPEND="selinux? ( sec-policy/selinux-mysql ) - client-libs? ( !dev-db/mariadb-connector-c[mysqlcompat] !dev-db/mysql-connector-c ) - !dev-db/mysql !dev-db/mariadb-galera !dev-db/percona-server !dev-db/mysql-cluster - server? ( !prefix? ( dev-db/mysql-init-scripts ) ) - !<virtual/mysql-5.6-r9 - ${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}" "${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 ) - 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 - - if use client-libs ; then - multilib-minimal_src_configure - else - multilib_src_configure - fi -} - -multilib_src_configure() { - debug-print-function ${FUNCNAME} "$@" - - if ! multilib_is_native_abi && ! use client-libs ; then - return - fi - - CMAKE_BUILD_TYPE="RelWithDebInfo" - - # debug hack wrt #497532 - mycmakeargs=( - -DCMAKE_C_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')" - -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')" - -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr" - -DMYSQL_DATADIR="${EPREFIX}/var/lib/mysql" - -DSYSCONFDIR="${EPREFIX}/etc/mysql" - -DINSTALL_BINDIR=bin - -DINSTALL_DOCDIR=share/doc/${PF} - -DINSTALL_DOCREADMEDIR=share/doc/${PF} - -DINSTALL_INCLUDEDIR=include/mysql - -DINSTALL_INFODIR=share/info - -DINSTALL_LIBDIR=$(get_libdir) - -DINSTALL_MANDIR=share/man - -DINSTALL_MYSQLSHAREDIR=share/mariadb - -DINSTALL_PLUGINDIR=$(get_libdir)/mariadb/plugin - -DINSTALL_SCRIPTDIR=share/mariadb/scripts - -DINSTALL_MYSQLDATADIR="${EPREFIX}/var/lib/mysql" - -DINSTALL_SBINDIR=sbin - -DINSTALL_SUPPORTFILESDIR="${EPREFIX}/usr/share/mariadb" - -DWITH_COMMENT="Gentoo Linux ${PF}" - -DWITH_UNIT_TESTS=$(usex test ON OFF) - -DWITH_LIBEDIT=0 - -DWITH_ZLIB=system - -DWITHOUT_LIBWRAP=1 - -DENABLED_LOCAL_INFILE=1 - -DMYSQL_UNIX_ADDR="${EPREFIX}/var/run/mysqld/mysqld.sock" - -DINSTALL_UNIX_ADDRDIR="${EPREFIX}/var/run/mysqld/mysqld.sock" - -DWITH_DEFAULT_COMPILER_OPTIONS=0 - -DWITH_DEFAULT_FEATURE_SET=0 - -DINSTALL_SYSTEMD_UNITDIR="$(systemd_get_systemunitdir)" - -DENABLE_STATIC_LIBS=$(usex static-libs ON OFF) - # The build forces this to be defined when cross-compiling. We pass it - # all the time for simplicity and to make sure it is actually correct. - -DSTACK_DIRECTION=$(tc-stack-grows-down && echo -1 || echo 1) - -DPKG_CONFIG_EXECUTABLE="${EPREFIX}/usr/bin/$(tc-getPKG_CONFIG)" - -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO) - -DAUTH_GSSAPI_PLUGIN_TYPE=$(usex kerberos DYNAMIC OFF) - -DCONC_WITH_EXTERNAL_ZLIB=YES - -DWITH_EXTERNAL_ZLIB=YES - -DSUFFIX_INSTALL_DIR="" - -DWITH_UNITTEST=OFF - -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 - - if ! use client-libs ; then - mycmakeargs+=( -DWITHOUT_CLIENTLIBS=YES ) - fi - - # bfd.h is only used starting with 10.1 and can be controlled by NOT_FOR_DISTRIBUTION - # systemtap only works on native ABI bug 530132 - if multilib_is_native_abi; then - mycmakeargs+=( - -DWITH_READLINE=$(usex bindist 1 0) - -DNOT_FOR_DISTRIBUTION=$(usex bindist 0 1) - -DENABLE_DTRACE=$(usex systemtap) - ) - else - mycmakeargs+=( - -DWITHOUT_TOOLS=1 - -DWITH_READLINE=1 - -DNOT_FOR_DISTRIBUTION=0 - -DENABLE_DTRACE=0 - ) - fi - - if multilib_is_native_abi && use server ; then - - # Federated{,X} must be treated special otherwise they will not be built as plugins - if ! use extraengine ; then - mycmakeargs+=( - -DPLUGIN_FEDERATED=NO - -DPLUGIN_FEDERATEDX=NO ) - fi - - mycmakeargs+=( - -DWITH_JEMALLOC=$(usex jemalloc system) - -DWITH_PCRE=system - -DPLUGIN_OQGRAPH=$(usex oqgraph DYNAMIC NO) - -DPLUGIN_SPHINX=$(usex sphinx YES NO) - -DPLUGIN_TOKUDB=$(usex tokudb YES NO) - -DPLUGIN_AUTH_PAM=$(usex pam YES NO) - -DPLUGIN_CRACKLIB_PASSWORD_CHECK=$(usex cracklib YES NO) - -DPLUGIN_CASSANDRA=NO - -DPLUGIN_SEQUENCE=$(usex extraengine YES NO) - -DPLUGIN_SPIDER=$(usex extraengine YES NO) - -DPLUGIN_CONNECT=$(usex extraengine YES NO) - -DCONNECT_WITH_MYSQL=1 - -DCONNECT_WITH_LIBXML2=$(usex xml) - -DCONNECT_WITH_ODBC=$(usex odbc) - -DCONNECT_WITH_JDBC=$(usex jdbc) - # Build failure and autodep wrt bug 639144 - -DCONNECT_WITH_MONGO=OFF - -DWITH_WSREP=$(usex galera) - -DWITH_INNODB_LZ4=$(usex innodb-lz4 ON OFF) - -DWITH_INNODB_LZO=$(usex innodb-lzo ON OFF) - -DWITH_INNODB_SNAPPY=$(usex innodb-snappy ON OFF) - -DPLUGIN_MROONGA=$(usex mroonga DYNAMIC NO) - -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO) - -DWITH_MARIABACKUP=$(usex backup ON OFF) - -DWITH_LIBARCHIVE=$(usex backup ON OFF) - -DINSTALL_SQLBENCHDIR=share/mariadb - -DPLUGIN_ROCKSDB=$(usex rocksdb DYNAMIC NO) - # systemd is only linked to for server notification - -DWITH_SYSTEMD=$(usex systemd yes no) - -DWITH_NUMA=$(usex numa ON OFF) - ) - - # Workaround for MDEV-14524 - use tokudb && mycmakeargs+=( -DTOKUDB_OK=1 ) - - if use test ; then - # This is needed for the new client lib which tests a real, open server - mycmakeargs+=( -DSKIP_TESTS=ON ) - fi - - if [[ ( -n ${MYSQL_DEFAULT_CHARSET} ) && ( -n ${MYSQL_DEFAULT_COLLATION} ) ]]; then - ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}" - ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}." - ewarn "You MUST file bugs without these variables set." - - mycmakeargs+=( - -DDEFAULT_CHARSET=${MYSQL_DEFAULT_CHARSET} - -DDEFAULT_COLLATION=${MYSQL_DEFAULT_COLLATION} - ) - - elif ! use latin1 ; then - mycmakeargs+=( - -DDEFAULT_CHARSET=utf8 - -DDEFAULT_COLLATION=utf8_general_ci - ) - else - mycmakeargs+=( - -DDEFAULT_CHARSET=latin1 - -DDEFAULT_COLLATION=latin1_swedish_ci - ) - fi - mycmakeargs+=( - -DEXTRA_CHARSETS=all - -DMYSQL_USER=mysql - -DDISABLE_SHARED=$(usex static YES NO) - -DWITH_DEBUG=$(usex debug) - -DWITH_EMBEDDED_SERVER=OFF - -DWITH_PROFILING=$(usex profiling) - ) - - if use static; then - mycmakeargs+=( -DWITH_PIC=1 ) - fi - - if use jemalloc || use tcmalloc ; then - mycmakeargs+=( -DWITH_SAFEMALLOC=OFF ) - fi - - # Storage engines - mycmakeargs+=( - -DWITH_ARCHIVE_STORAGE_ENGINE=1 - -DWITH_BLACKHOLE_STORAGE_ENGINE=1 - -DWITH_CSV_STORAGE_ENGINE=1 - -DWITH_HEAP_STORAGE_ENGINE=1 - -DWITH_INNOBASE_STORAGE_ENGINE=1 - -DWITH_MYISAMMRG_STORAGE_ENGINE=1 - -DWITH_MYISAM_STORAGE_ENGINE=1 - -DWITH_PARTITION_STORAGE_ENGINE=1 - ) - - else - mycmakeargs+=( - -DWITHOUT_SERVER=1 - -DWITH_EMBEDDED_SERVER=OFF - -DEXTRA_CHARSETS=none - -DINSTALL_SQLBENCHDIR= - -DWITH_SYSTEMD=no - ) - fi - - cmake-utils_src_configure -} - -src_compile() { - if use client-libs ; then - multilib-minimal_src_compile - else - multilib_src_compile - fi -} - -multilib_src_compile() { - cmake-utils_src_compile -} - -src_install() { - local MULTILIB_WRAPPED_HEADERS - local MULTILIB_CHOST_TOOLS - if use client-libs ; then - # headers with ABI specific data - MULTILIB_WRAPPED_HEADERS=( - /usr/include/mysql/server/my_config.h - /usr/include/mysql/server/private/embedded_priv.h - /usr/include/mysql/server/mysql_version.h - /usr/include/mariadb/mariadb_version.h - /usr/include/mysql/mariadb_version.h - /usr/include/mysql/server/private/probes_mysql_nodtrace.h - /usr/include/mysql/server/private/probes_mysql_dtrace.h ) - - # wrap the config scripts - MULTILIB_CHOST_TOOLS=( /usr/bin/mariadb_config /usr/bin/mysql_config ) - multilib-minimal_src_install - else - multilib_src_install - multilib_src_install_all - fi -} - -# Intentionally override eclass function -multilib_src_install() { - - cmake-utils_src_install - - # 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 - - if ! multilib_is_native_abi && use server ; then - insinto /usr/include/mysql/server/private - doins "${S}"/sql/*.h - fi - - if use client-libs ; then - # Install compatible symlinks to libmysqlclient -# use static-libs && dosym libmariadbclient.a "/usr/$(get_libdir)/libmysqlclient.a" -# dosym libmariadb.so.3 "/usr/$(get_libdir)/libmysqlclient.so" - dosym libmariadb.so.3 "/usr/$(get_libdir)/libmysqlclient.so.${SUBSLOT}" - fi - - # Kill old libmysqclient_r symlinks if they exist. Time to fix what depends on them. - find "${D}" -name 'libmysqlclient_r.*' -type l -delete || die -} - -multilib_src_install_all() { - # Make sure the vars are correctly initialized - mysql_init_vars - - # Convenience links - einfo "Making Convenience links for mysqlcheck multi-call binary" - dosym "mysqlcheck" "/usr/bin/mysqlanalyze" - dosym "mysqlcheck" "/usr/bin/mysqlrepair" - dosym "mysqlcheck" "/usr/bin/mysqloptimize" - - # INSTALL_LAYOUT=STANDALONE causes cmake to create a /usr/data dir - if [[ -d "${ED}/usr/data" ]] ; then - rm -Rf "${ED}/usr/data" || die - fi - - # Unless they explicitly specific USE=test, then do not install the - # testsuite. It DOES have a use to be installed, esp. when you want to do a - # validation of your database configuration after tuning it. - if ! use test ; then - rm -rf "${D}/${MY_SHAREDSTATEDIR}/mysql-test" - fi - - # Configuration stuff - einfo "Building default configuration ..." - insinto "${MY_SYSCONFDIR#${EPREFIX}}" - [[ -f "${S}/scripts/mysqlaccess.conf" ]] && doins "${S}"/scripts/mysqlaccess.conf - cp "${FILESDIR}/my.cnf-10.2" "${TMPDIR}/my.cnf" || die - eprefixify "${TMPDIR}/my.cnf" - doins "${TMPDIR}/my.cnf" - insinto "${MY_SYSCONFDIR#${EPREFIX}}/mariadb.d" - cp "${FILESDIR}/my.cnf.distro-client" "${TMPDIR}/50-distro-client.cnf" || die - eprefixify "${TMPDIR}/50-distro-client.cnf" - doins "${TMPDIR}/50-distro-client.cnf" - - if use server ; then - mycnf_src="my.cnf.distro-server" - sed -e "s!@DATADIR@!${MY_DATADIR}!g" \ - "${FILESDIR}/${mycnf_src}" \ - > "${TMPDIR}/my.cnf.ok" || die - if use prefix ; then - sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' \ - "${TMPDIR}/my.cnf.ok" || die - fi - if use latin1 ; then - sed -i \ - -e "/character-set/s|utf8|latin1|g" \ - "${TMPDIR}/my.cnf.ok" || die - fi - eprefixify "${TMPDIR}/my.cnf.ok" - newins "${TMPDIR}/my.cnf.ok" 50-distro-server.cnf - - einfo "Including support files and sample configurations" - docinto "support-files" - local script - for script in \ - "${S}"/support-files/magic - do - [[ -f "$script" ]] && dodoc "${script}" - done - - docinto "scripts" - for script in "${S}"/scripts/mysql* ; do - [[ ( -f "$script" ) && ( "${script%.sh}" == "${script}" ) ]] && dodoc "${script}" - done - # Manually install supporting files that conflict with other packages - # but are needed for galera and initial installation - exeinto /usr/libexec/mariadb - doexe "${BUILD_DIR}/extra/my_print_defaults" "${BUILD_DIR}/extra/perror" - fi - - #Remove mytop if perl is not selected - [[ -e "${ED}/usr/bin/mytop" ]] && ! use perl && rm -f "${ED}/usr/bin/mytop" -} - -# Official test instructions: -# USE='extraengine perl server' \ -# FEATURES='test userpriv -usersandbox' \ -# ebuild mariadb-X.X.XX.ebuild \ -# digest clean package -src_test() { - - _disable_test() { - local rawtestname reason - rawtestname="${1}" ; shift - reason="${@}" - ewarn "test '${rawtestname}' disabled: '${reason}'" - echo ${rawtestname} : ${reason} >> "${T}/disabled.def" - } - - local TESTDIR="${BUILD_DIR}/mysql-test" - local retstatus_unit - local retstatus_tests - - if ! use server ; then - einfo "Skipping server tests due to minimal build." - return 0 - fi - - # Bug #213475 - MySQL _will_ object strenously if your machine is named - # localhost. Also causes weird failures. - [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost" - - if [[ $UID -eq 0 ]]; then - die "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root." - fi - has usersandbox $FEATURES && ewarn "Some tests may fail with FEATURES=usersandbox" - - einfo ">>> Test phase [test]: ${CATEGORY}/${PF}" - - # Run CTest (test-units) - cmake-utils_src_test - retstatus_unit=$? - - # Ensure that parallel runs don't die - export MTR_BUILD_THREAD="$((${RANDOM} % 100))" - # Enable parallel testing, auto will try to detect number of cores - # You may set this by hand. - # The default maximum is 8 unless MTR_MAX_PARALLEL is increased - export MTR_PARALLEL="${MTR_PARALLEL:-auto}" - - # create directories because mysqladmin might run out of order - mkdir -p "${T}"/var-tests{,/log} || die - - # Run mysql tests - pushd "${TESTDIR}" > /dev/null || die - - touch "${T}/disabled.def" - # These are failing in MariaDB 10.0 for now and are believed to be - # false positives: - # - # main.mysql_client_test, main.mysql_client_test_nonblock - # main.mysql_client_test_comp: - # segfaults at random under Portage only, suspect resource limits. - - local t - for t in plugins.cracklib_password_check plugins.two_password_validations ; do - _disable_test "$t" "False positive due to varying policies" - done - - for t in main.mysql_client_test main.mysql_client_test_nonblock \ - main.mysql_client_test_comp rpl.rpl_extra_col_master_myisam ; do - _disable_test "$t" "False positives in Gentoo" - done - - if ! use client-libs ; then - _disable_test main.plugin_auth "Needs client libraries built" - fi - - # run mysql-test tests - perl mysql-test-run.pl --force --vardir="${T}/var-tests" --reorder --skip-test=tokudb --skip-test-list="${T}/disabled.def" - retstatus_tests=$? - - popd > /dev/null || die - - # Cleanup is important for these testcases. - pkill -9 -f "${S}/ndb" 2>/dev/null - pkill -9 -f "${S}/sql" 2>/dev/null - - local failures="" - [[ $retstatus_unit -eq 0 ]] || failures="${failures} test-unit" - [[ $retstatus_tests -eq 0 ]] || failures="${failures} tests" - - [[ -z "$failures" ]] || die "Test failures: $failures" - einfo "Tests successfully completed" -} - -mysql_init_vars() { - MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR="${EPREFIX}/usr/share/mariadb"} - MY_SYSCONFDIR=${MY_SYSCONFDIR="${EPREFIX}/etc/mysql"} - MY_LOCALSTATEDIR=${MY_LOCALSTATEDIR="${EPREFIX}/var/lib/mysql"} - MY_LOGDIR=${MY_LOGDIR="${EPREFIX}/var/log/mysql"} - - if [[ -z "${MY_DATADIR}" ]] ; then - MY_DATADIR="" - if [[ -f "${MY_SYSCONFDIR}/my.cnf" ]] ; then - MY_DATADIR=`"my_print_defaults" mysqld 2>/dev/null \ - | sed -ne '/datadir/s|^--datadir=||p' \ - | tail -n1` - if [[ -z "${MY_DATADIR}" ]] ; then - MY_DATADIR=`grep ^datadir "${MY_SYSCONFDIR}/my.cnf" \ - | sed -e 's/.*=\s*//' \ - | tail -n1` - fi - fi - if [[ -z "${MY_DATADIR}" ]] ; then - MY_DATADIR="${MY_LOCALSTATEDIR}" - einfo "Using default MY_DATADIR" - fi - elog "MySQL MY_DATADIR is ${MY_DATADIR}" - - if [[ -z "${PREVIOUS_DATADIR}" ]] ; then - if [[ -e "${MY_DATADIR}" ]] ; then - # If you get this and you're wondering about it, see bug #207636 - elog "MySQL datadir found in ${MY_DATADIR}" - elog "A new one will not be created." - PREVIOUS_DATADIR="yes" - else - PREVIOUS_DATADIR="no" - fi - export PREVIOUS_DATADIR - fi - else - if [[ ${EBUILD_PHASE} == "config" ]]; then - local new_MY_DATADIR - new_MY_DATADIR=`"my_print_defaults" mysqld 2>/dev/null \ - | sed -ne '/datadir/s|^--datadir=||p' \ - | tail -n1` - - if [[ ( -n "${new_MY_DATADIR}" ) && ( "${new_MY_DATADIR}" != "${MY_DATADIR}" ) ]]; then - ewarn "MySQL MY_DATADIR has changed" - ewarn "from ${MY_DATADIR}" - ewarn "to ${new_MY_DATADIR}" - MY_DATADIR="${new_MY_DATADIR}" - fi - fi - fi - - export MY_SHAREDSTATEDIR MY_SYSCONFDIR - export MY_LOCALSTATEDIR MY_LOGDIR - export MY_DATADIR -} - -pkg_config() { - _getoptval() { - local mypd="${EROOT}"/usr/bin/my_print_defaults - local section="$1" - local flag="--${2}=" - local extra_options="${3}" - "${mypd}" $extra_options $section | sed -n "/^${flag}/s,${flag},,gp" - } - local old_MY_DATADIR="${MY_DATADIR}" - local old_HOME="${HOME}" - # my_print_defaults needs to read stuff in $HOME/.my.cnf - export HOME=${EPREFIX}/root - - # Make sure the vars are correctly initialized - mysql_init_vars - - [[ -z "${MY_DATADIR}" ]] && die "Sorry, unable to find MY_DATADIR" - if [[ ! -x "${EROOT}/usr/sbin/mysqld" ]] ; then - die "Minimal builds do NOT include the MySQL server" - fi - - if [[ ( -n "${MY_DATADIR}" ) && ( "${MY_DATADIR}" != "${old_MY_DATADIR}" ) ]]; then - local MY_DATADIR_s="${ROOT}/${MY_DATADIR}" - MY_DATADIR_s="${MY_DATADIR_s%%/}" - local old_MY_DATADIR_s="${ROOT}/${old_MY_DATADIR}" - old_MY_DATADIR_s="${old_MY_DATADIR_s%%/}" - - if [[ ( -d "${old_MY_DATADIR_s}" ) && ( "${old_MY_DATADIR_s}" != / ) ]]; then - if [[ -d "${MY_DATADIR_s}" ]]; then - ewarn "Both ${old_MY_DATADIR_s} and ${MY_DATADIR_s} exist" - ewarn "Attempting to use ${MY_DATADIR_s} and preserving ${old_MY_DATADIR_s}" - else - elog "Moving MY_DATADIR from ${old_MY_DATADIR_s} to ${MY_DATADIR_s}" - mv --strip-trailing-slashes -T "${old_MY_DATADIR_s}" "${MY_DATADIR_s}" \ - || die "Moving MY_DATADIR failed" - fi - else - ewarn "Previous MY_DATADIR (${old_MY_DATADIR_s}) does not exist" - if [[ -d "${MY_DATADIR_s}" ]]; then - ewarn "Attempting to use ${MY_DATADIR_s}" - else - eerror "New MY_DATADIR (${MY_DATADIR_s}) does not exist" - die "Configuration Failed! Please reinstall ${CATEGORY}/${PN}" - fi - fi - fi - - local pwd1="a" - local pwd2="b" - local maxtry=15 - - if [ -z "${MYSQL_ROOT_PASSWORD}" ]; then - local tmp_mysqld_password_source= - - for tmp_mysqld_password_source in mysql client; do - einfo "Trying to get password for mysql 'root' user from '${tmp_mysqld_password_source}' section ..." - MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password)" - if [[ -n "${MYSQL_ROOT_PASSWORD}" ]]; then - if [[ ${MYSQL_ROOT_PASSWORD} == *$'\n'* ]]; then - ewarn "Ignoring password from '${tmp_mysqld_password_source}' section due to newline character (do you have multiple password options set?)!" - MYSQL_ROOT_PASSWORD= - continue - fi - - einfo "Found password in '${tmp_mysqld_password_source}' section!" - break - fi - done - - # Sometimes --show is required to display passwords in some implementations of my_print_defaults - if [[ "${MYSQL_ROOT_PASSWORD}" == '*****' ]]; then - MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password --show)" - fi - - unset tmp_mysqld_password_source - fi - MYSQL_TMPDIR="$(_getoptval mysqld tmpdir)" - # These are dir+prefix - MYSQL_RELAY_LOG="$(_getoptval mysqld relay-log)" - MYSQL_RELAY_LOG=${MYSQL_RELAY_LOG%/*} - MYSQL_LOG_BIN="$(_getoptval mysqld log-bin)" - MYSQL_LOG_BIN=${MYSQL_LOG_BIN%/*} - - if [[ ! -d "${ROOT}/$MYSQL_TMPDIR" ]]; then - einfo "Creating MySQL tmpdir $MYSQL_TMPDIR" - install -d -m 770 -o mysql -g mysql "${EROOT}/$MYSQL_TMPDIR" - fi - if [[ ! -d "${ROOT}/$MYSQL_LOG_BIN" ]]; then - einfo "Creating MySQL log-bin directory $MYSQL_LOG_BIN" - install -d -m 770 -o mysql -g mysql "${EROOT}/$MYSQL_LOG_BIN" - fi - if [[ ! -d "${EROOT}/$MYSQL_RELAY_LOG" ]]; then - einfo "Creating MySQL relay-log directory $MYSQL_RELAY_LOG" - install -d -m 770 -o mysql -g mysql "${EROOT}/$MYSQL_RELAY_LOG" - fi - - if [[ -d "${ROOT}/${MY_DATADIR}/mysql" ]] ; then - ewarn "You have already a MySQL database in place." - ewarn "(${ROOT}/${MY_DATADIR}/*)" - ewarn "Please rename or delete it if you wish to replace it." - die "MySQL database already exists!" - fi - - # Bug #213475 - MySQL _will_ object strenously if your machine is named - # localhost. Also causes weird failures. - [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost" - - if [ -z "${MYSQL_ROOT_PASSWORD}" ]; then - - einfo "Please provide a password for the mysql 'root' user now" - einfo "or through the ${HOME}/.my.cnf file." - ewarn "Avoid [\"'\\_%] characters in the password" - read -rsp " >" pwd1 ; echo - - einfo "Retype the password" - read -rsp " >" pwd2 ; echo - - if [[ "x$pwd1" != "x$pwd2" ]] ; then - die "Passwords are not the same" - fi - MYSQL_ROOT_PASSWORD="${pwd1}" - unset pwd1 pwd2 - fi - - local options - local sqltmp="$(emktemp)" - - # Fix bug 446200. Don't reference host my.cnf, needs to come first, - # see 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/mariadb/mariadb-10.2.21.ebuild b/dev-db/mariadb/mariadb-10.2.22.ebuild index 1097aad248b3..1097aad248b3 100644 --- a/dev-db/mariadb/mariadb-10.2.21.ebuild +++ b/dev-db/mariadb/mariadb-10.2.22.ebuild diff --git a/dev-db/mariadb/mariadb-10.3.11.ebuild b/dev-db/mariadb/mariadb-10.3.11.ebuild deleted file mode 100644 index efedc5a22107..000000000000 --- a/dev-db/mariadb/mariadb-10.3.11.ebuild +++ /dev/null @@ -1,967 +0,0 @@ -# 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="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris" - -# Shorten the path because the socket path length must be shorter than 107 chars -# and we will run a mysql server during test phase -S="${WORKDIR}/mysql" - -if [[ "${MY_EXTRAS_VER}" == "live" ]] ; then - inherit git-r3 - EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/mysql-extras.git" - EGIT_CHECKOUT_DIR="${WORKDIR%/}/mysql-extras" - EGIT_CLONE_TYPE=shallow - MY_PATCH_DIR="${WORKDIR%/}/mysql-extras" -else - MY_PATCH_DIR="${WORKDIR%/}/mysql-extras-${MY_EXTRAS_VER}" -fi - -PATCHES=( - "${MY_PATCH_DIR}"/20015_all_mariadb-pkgconfig-location.patch - "${MY_PATCH_DIR}"/20018_all_mariadb-10.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 3e39a2720fe5..e9c71dfbf2e5 100644 --- a/dev-db/mongodb/Manifest +++ b/dev-db/mongodb/Manifest @@ -20,7 +20,7 @@ DIST mongodb-src-r4.0.3.tar.gz 49435646 BLAKE2B 1663823d48ec6d93b30b4d68a09bab16 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-3.6.9.ebuild 4187 BLAKE2B c491023d742537e146667c049040132f58811e0fa1c051d1cfd13ace7b45330f8ed03f431a18c6e79ad4c9fb4f0b909752332d70d0329275848e2ce06a83eff0 SHA512 44f1661569143ddb3138b0ba04001ae6de049f3269b2fbb3bea0f0a55cdb4ffc616042009c3887945d065f6951b1ff0274607e5cf7a2fc509ce78717bcf0bf74 EBUILD mongodb-4.0.3.ebuild 4198 BLAKE2B 8ecf5ad9712f6c5f3257df6dbd7dba686206c5498287cd39082920a9bbdaaf75585bb205cf09c515d27331a404f2b493d222bcf22d15c6904933bf753db04d01 SHA512 1f0932d7f192b2526d48389375aacc1f73e4b388f6ad46014d47eb18583940c13c9356288db29270d199f5e8930882842128df42c98171a7abf1cc582ffcb210 -EBUILD mongodb-4.0.4.ebuild 4196 BLAKE2B 74791aaa39a513dabf0f5f21bf7fc0fb2a9baf63ba7ca7221f18b631e366b24ca3f59d3d2ed55886478ccab5bd836e11fc5b99e30c1e4866be90132a002a4d31 SHA512 45910cb89a28eb11f0e9d37311feca1cfbc5a6f5c22d7ea2c057d44849dc722e2322b6b3de77dddf1af9daa5af4b21817d4a94e6401dc5e6470a813ee3c2da74 +EBUILD mongodb-4.0.4.ebuild 4198 BLAKE2B b7582d2142231b062780de2503eb1f849ecfc1f033680d8a657c1b6e8f6d3c08a7c2d0855e35cf066f2600193e56c8b2b3dd327e7d3268eadd1a91765f992c6f SHA512 8fe7eeba925e8f91fceb6ec5e7147be6b808dd6df0202ec08eb2e2d416151194537a6a719d75efcee0faa23a03ac9a40e6bd472ce8509173d16d9f42c192e31b 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 index ceeb89c1f239..79aed7408b8f 100644 --- a/dev-db/mongodb/mongodb-3.6.9.ebuild +++ b/dev-db/mongodb/mongodb-3.6.9.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Authors +# Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -18,7 +18,7 @@ DESCRIPTION="A high-performance, open source, schema-free document-oriented data HOMEPAGE="https://www.mongodb.com" SRC_URI="https://fastdl.mongodb.org/src/${MY_P}.tar.gz" -LICENSE="Apache-2.0 SSPL" +LICENSE="Apache-2.0 SSPL-1" SLOT="0" KEYWORDS="~amd64" IUSE="debug kerberos libressl mms-agent ssl test +tools" diff --git a/dev-db/mongodb/mongodb-4.0.4.ebuild b/dev-db/mongodb/mongodb-4.0.4.ebuild index f871bc632f45..60ba0d3ebd75 100644 --- a/dev-db/mongodb/mongodb-4.0.4.ebuild +++ b/dev-db/mongodb/mongodb-4.0.4.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Authors +# Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -18,7 +18,7 @@ DESCRIPTION="A high-performance, open source, schema-free document-oriented data HOMEPAGE="https://www.mongodb.com" SRC_URI="https://fastdl.mongodb.org/src/${MY_P}.tar.gz" -LICENSE="Apache-2.0 SSPL" +LICENSE="Apache-2.0 SSPL-1" SLOT="0" KEYWORDS="~amd64" IUSE="debug kerberos libressl mms-agent ssl test +tools" diff --git a/dev-db/percona-xtrabackup-bin/Manifest b/dev-db/percona-xtrabackup-bin/Manifest index 038b0287eb66..6d47c6f62425 100644 --- a/dev-db/percona-xtrabackup-bin/Manifest +++ b/dev-db/percona-xtrabackup-bin/Manifest @@ -1,7 +1,7 @@ -DIST percona-xtrabackup-2.4.11-Linux-i686.libgcrypt20.tar.gz 85158090 BLAKE2B 3d6565542208d1a9c74154d0a7e23610a34416f4840bcff240a262958fe4e4b0f489883349760934469619d225dccc7a2d531919e716dfdc3c2f10b1f98263e2 SHA512 bd6419f1b2e79e8e41817c677209a0d08912b247314f611689e0208028d4870e1e2a2b559fe8d60a3a369704aaee57e300643d9d355f083bb89c950f13d724bb -DIST percona-xtrabackup-2.4.11-Linux-x86_64.libgcrypt20.tar.gz 87975988 BLAKE2B 850b06d3e063b2884f0731ada7ad20e09816e38f60ee5eef2b1150c2b1f0cd59082d26fa026bf7e80ccebdf6b513ab8af6c7d228ade96d532ef41a74490093e9 SHA512 dc412e3ad65a5d3aed6053e107a79094760b868f008171c9aaee190c97e666a38716b0c7d3e7f3db74eecff98b35c114be29114d50630f554a0c2cb0b1b71cfe DIST percona-xtrabackup-2.4.12-Linux-i686.libgcrypt20.tar.gz 85181957 BLAKE2B b066ff9efa8c57829a441c2e416ac1eeeff60cb0839ccdab4cd685bff9b2ead552ba9b7105541e0a824ca8aaeeb47d89d66180fe428842470c4743dfd149f31d SHA512 adbaae8ad3347e15b13fe360dd5d4721330d6b17e75696128dfe770d03ad85056abeb861ffcbfe1d08020c8b9d726dd9e5650f63b7199804fe4d3cd9806debe2 DIST percona-xtrabackup-2.4.12-Linux-x86_64.libgcrypt20.tar.gz 87975175 BLAKE2B b21ab8dd4fac27ae8c731b5fbd816dfc39572bc52a9273255a4c89ddf99ee490cc66ed4f92945b18f4ec58e731ae036a16e08674cb9837544ca5150cb6b91c7b SHA512 355b9f7f052a1242e502ddcbdc26cb931d16366be4db405730a2bb04de3030e0d0e6d4d15eb87f68fe232648dd435c85505a6d895b7c27b3baea0cb851214766 -EBUILD percona-xtrabackup-bin-2.4.11.ebuild 1530 BLAKE2B 87233dfc8725ce661367ff5d426fdf0b4e1f9335295abbe1f154715a19cc2658a60d84e4040ea837d2c6b0b0d61b493fe1836dd632cec01211e8eb96b803d308 SHA512 87ab06a801645538a5d8a335c22ab16a21a507681ffbefeeaeb2fa0069e231cf8f332ffce63481bd6ffd8a185d451cbdd56f93ce74fd9b70693f62a660efbc29 -EBUILD percona-xtrabackup-bin-2.4.12.ebuild 1530 BLAKE2B 4e0b7346ea30fa263debd715fae3175677ffe3a217db3766b151b489bef906b4c62f0f3428ea1f122da5758a03408bab3ff82c554d80eeafc960b2c077355f4c SHA512 9551643af7e6b93f8ecb164b6f0663f252859222eb0e4f7249708d4f015ee31b29a2d7bbc71868b15bedbad6a9a6644d09b97069e8afca161628e7374ef42f47 +DIST percona-xtrabackup-2.4.13-Linux-i686.libgcrypt20.tar.gz 85192746 BLAKE2B 7df4fee162587830a19499cd692d5e81ba67bb445ad0bea7bb93a9857bae5e4671740d01b817b6d04043abfd436ef88e0983dc7ab80d5d20426d9c05b470c79e SHA512 c2fa43aa4654cfcf06aa47ee20ee48e9b725aa3b0514419c5af5872d7ed37a971d5afe5aa4dc9475cf4d0738354a0ec35e6dd97a24ec00b2330465e94bafb365 +DIST percona-xtrabackup-2.4.13-Linux-x86_64.libgcrypt20.tar.gz 87985226 BLAKE2B 937518b96d948098f2026397947250fbe4952752cf6f83fee5fdda4031564916bbfa07cd77a5db5db16150d446593b52fd82d6ee919ceb9fb0fb41de2f6ca631 SHA512 824ad9e94c38d51291afa1c9f1b9114c88c2b777ac9e5eb41a523463355521233b682920940084f8771820ccad6bd2a9ca280f6397eebd99ca26995712e68007 +EBUILD percona-xtrabackup-bin-2.4.12.ebuild 1555 BLAKE2B c912f2732191d8036ab4b02190ad39f44c344e68879984155d24a58358377539194b2786ba09e08f78af8bedbdc83f2963c6484b82c1eaae01091a68ee52e96a SHA512 ca9acf57354277fc17f22b8b96d37310d9e7b2981bbdf79051e1da23e2ba4bccdbd80f86e7ebc265fc31bf76fc440e44f2fa4a9a2746fcc0439d829b79433401 +EBUILD percona-xtrabackup-bin-2.4.13.ebuild 1555 BLAKE2B c912f2732191d8036ab4b02190ad39f44c344e68879984155d24a58358377539194b2786ba09e08f78af8bedbdc83f2963c6484b82c1eaae01091a68ee52e96a SHA512 ca9acf57354277fc17f22b8b96d37310d9e7b2981bbdf79051e1da23e2ba4bccdbd80f86e7ebc265fc31bf76fc440e44f2fa4a9a2746fcc0439d829b79433401 MISC metadata.xml 139 BLAKE2B b4a59c22790dfec3fbcfaea41ef363401766736b68a85bedae00e1944d0a848aa97104c2f34244c0fe7b6363029281f965fc1b3545301d341cda371eaa976274 SHA512 8be912ace7468a4396eb1da00a9785030a8ce35da4357a01591876a1056fd45e44da65de2af3e1eb0506ce6551714962c40c3ae5a3aefa2ad231de35af2519be diff --git a/dev-db/percona-xtrabackup-bin/percona-xtrabackup-bin-2.4.12.ebuild b/dev-db/percona-xtrabackup-bin/percona-xtrabackup-bin-2.4.12.ebuild index 29a995636cfc..791c5b01275b 100644 --- a/dev-db/percona-xtrabackup-bin/percona-xtrabackup-bin-2.4.12.ebuild +++ b/dev-db/percona-xtrabackup-bin/percona-xtrabackup-bin-2.4.12.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="7" @@ -28,7 +28,8 @@ RDEPEND="dev-libs/libaio dev-libs/libgpg-error dev-perl/DBD-mysql sys-libs/zlib - sys-process/numactl" + sys-process/numactl + !dev-db/percona-xtrabackup" QA_PREBUILT="usr/bin/*" diff --git a/dev-db/percona-xtrabackup-bin/percona-xtrabackup-bin-2.4.11.ebuild b/dev-db/percona-xtrabackup-bin/percona-xtrabackup-bin-2.4.13.ebuild index 2e9e7ddc7525..791c5b01275b 100644 --- a/dev-db/percona-xtrabackup-bin/percona-xtrabackup-bin-2.4.11.ebuild +++ b/dev-db/percona-xtrabackup-bin/percona-xtrabackup-bin-2.4.13.ebuild @@ -1,7 +1,7 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI="6" +EAPI="7" MY_PN="${PN%-bin}" MY_P="${MY_PN}-${PV}" @@ -28,7 +28,8 @@ RDEPEND="dev-libs/libaio dev-libs/libgpg-error dev-perl/DBD-mysql sys-libs/zlib - sys-process/numactl" + sys-process/numactl + !dev-db/percona-xtrabackup" QA_PREBUILT="usr/bin/*" diff --git a/dev-db/percona-xtrabackup/Manifest b/dev-db/percona-xtrabackup/Manifest index 470a10e4a1df..ebb572adae81 100644 --- a/dev-db/percona-xtrabackup/Manifest +++ b/dev-db/percona-xtrabackup/Manifest @@ -2,12 +2,9 @@ AUX percona-xtrabackup-2.4.10-fix-gcc6-isystem.patch 3822 BLAKE2B 796553a8760ecb AUX percona-xtrabackup-2.4.11-fix-gcc6-isystem.patch 4034 BLAKE2B 0ce65196d4679481d3197e95d9efc3783c1e4f37dcd602588fc3e8da5957f63cf68b9222a7ab12fe2e8fd19d69e8a24e9f86cc7dd2ba776d473a95b9279a1f24 SHA512 4dd9352b8d8ae46782925daae27cd5ad1765c5f4ab26f1f5f07fbac68f0cb83e4979009dddacd8a55ba818c93014b46dee997b43f6951820337e0cb79733f60e AUX percona-xtrabackup-2.4.6-fix-gcc6-isystem.patch 3801 BLAKE2B 2494f55253e820c6b9bc079ff96d7894c9c16aedb6ed6017c7d5474007ebf19ef03b735a5b76bc67265b858205285f82f626f1058a216e0094c11a9440a11cd0 SHA512 8ab3cb41092f3ce324213917842d0cf72d2b501c60238007b57702458c572ea0d7faa159dec10367bfef97584b0b2dfc0a153bba5f13ac9efebeae2f1e2c7a39 AUX percona-xtrabackup-2.4.6-remove-boost-version-check.patch 485 BLAKE2B c9330c5b0a163a0d95682a81cee9e3c99cebdb2a6ed124cb5f424ade92728b11b29685e2c1eee0fbf9df613f5a1b08cc4021daec8b60a6c66ab51b08a397b33d SHA512 31277d6bef14a6b642ce425ce9f2c92fe49f905c42c720a583cb45406c1ee18ccbf2bef224b9b89bb02de18aecc1ec48576f5ca0c9bfef0cc683d78218506906 -DIST percona-xtrabackup-2.4.10.tar.gz 59217573 BLAKE2B 3a4485b6d8c5b9ad2ca4b60603383b18ec0a3da7e4cca3b5a1ee2d24b6ca17844cc406123bbaf9313fc17570db0168c13af16d17404e075fc8140731ef9b79c2 SHA512 a4ebbebabc8b9b5fec9777fc3569c530b4a88a1b75d3e78d2edf7627a2e8cadf7aa2d8988963136b331a274c80371ff9b7fafcc7d8a129f446eb58777ce1764f -DIST percona-xtrabackup-2.4.11.tar.gz 59267058 BLAKE2B 1de9905a2c191a58290e87a90e36c263f66935ce0846af205e1a0accc6e9b2938dd8679f65acc4b51ca956f2bcbca831cd10c9d50c01c2ecfd9d059fde500e20 SHA512 2fa4757fe944fb4c8113dca1fa25beaa23de5d5f9fc830b36a6d9eb4efb7e7fb1eec10f91be5e91fd3b7980bc157832ed52c9da59a342f6aae05ceae8ecdf760 +DIST boost_1_59_0.tar.gz 83709983 BLAKE2B 8c6676fa05fa401a6ecb3b890d95aceb4421ec48dd0eab38ce8d170c618e177c82dc67a165938f6be1a01daab24ce41888f5442dbc19ad3dd41368a01a6f89e4 SHA512 05fdbe5637543defdbc630b921515425885593d16db14534ed7b9aa60925ade8fb598d50cb894aed6dae688e789047216daa1bf03fa1aeb6b531060d9dae52ae DIST percona-xtrabackup-2.4.12.tar.gz 57232309 BLAKE2B 71b1dc0448b521b252463fb68ff111def3b71aebe187d3196e3c82f56539db02347d94713bea3dda5978f13b86b88a564ad6f12e3907134edc49a41dcde98e51 SHA512 228a48617eec3b824c7cb33882796ac2beb6ca1895fe73f7004e8dfd0b8bd1df471c39ba1c3fca2a819140d934a8a884f61dafae7cb56023dc7bc844d2846c8a -DIST percona-xtrabackup-2.4.9.tar.gz 58001052 BLAKE2B d2a25a5ca2190ccf82a600245a0e21848abd9a33ea937a81b2ba9c7e518b24291080a3d3c4b8e6d02f51523e5cf2e78680e4b351c4f2bcd8f122c58f62c14418 SHA512 913431f0fa648731efa2e9bc87c9431a28816b0eca12e1c6df6e7ab04a4148ddd8fa03c9792335ad152b05bede5b9fe64ce94a393b5e4e37d4b18f4989b0ccdb -EBUILD percona-xtrabackup-2.4.10.ebuild 2055 BLAKE2B 9fc3b57d1f24e80c5925eff40aa0822a1742756f897f1980341fe2778c47b12a35102422c703cbc44f5734377c8be2678ea0c05a32caf0f0fa34d631eaf31199 SHA512 5fe655f9fba940d50af9b633d4f5f8b6d88eb9add49ee5fa1233bd71e1f67f60b998b3775800e527f54c4f8fd4c39c527eb48fa8badaddac257622615dece9f8 -EBUILD percona-xtrabackup-2.4.11.ebuild 2055 BLAKE2B 99a8568224308799d84c2ccfbebb1935e065b53ae2bdd3ca07e3cb33d5be6b53042389483941e06a7d58284a79bd09b96c15584456fbb051c516b5979c9d8117 SHA512 d353ded350a186cd244e8fdda2081cfe79bc78ee0a5ea4a9104afd4795b7a827096dec0ada7e1d268561cf910da0004b0015ac0b2e20a333bb972b15895c7bde -EBUILD percona-xtrabackup-2.4.12.ebuild 2050 BLAKE2B f37c1023f60f3cc022271c35e5576c7963eb67850d3af46256a18902e1bd422c41727bd82f2ad4610285d96e291c26a5011a868378be954ee03d2ff83db770ff SHA512 c5151f2933edbcdd7e2a6b1c1095a68329d479b1210230564c20854f21167f5a0295355b50df997af47b94f7670415b1b6414dfd7c77324ca512c79f330e68e6 -EBUILD percona-xtrabackup-2.4.9.ebuild 1804 BLAKE2B db219c17e234b628a1730f23fa96f1766353b0de1615f1f93cc3b5ebb45faf405ea31215547fe0c1778dd65e48b743ea2b68727792695ca014e2d6f13bc20839 SHA512 25a54c649707d02e84ae5504122d725b1045fed258ed12d3643022c5d03fa1a008f13982cb7c5dbb02d212225ba8230057634dc867ab082bc9fc9692155c2dc2 +DIST percona-xtrabackup-2.4.13.tar.gz 57254236 BLAKE2B 061cbee03374193359ae557909389ec675ed35edf216afc9deeb0b7880705d03024d380d0d6070aabfdb710bbde3664fd73da65ae5980e58290d8c9af29f351c SHA512 19d5fb3d775f1513b931cb2e736b753c1dd82c42fee382fdfa9f183eaee562c32f635db5d569d991cf1c8f7168de55ed863ba2c59db459ab79b80792b21ab298 +EBUILD percona-xtrabackup-2.4.12.ebuild 2058 BLAKE2B cb0c270a6ae5cb2e22e3a41ae4960861b9ffae184ad2061e7244a436dbd9f3ef26a4c63ed51357d7938930b7a531b6c63a3618ee640b733c3eec30d44b3564ee SHA512 3c768d28b20c21c4edbe8cfa40f45313ea2e2e1e4534f2e04a222953256b34370befb9513e14fd8bccd9a3e516fe3c032e431c0127890d0fd32bca2b3bbfe7c9 +EBUILD percona-xtrabackup-2.4.13.ebuild 2084 BLAKE2B fe6f7ecc7c2c401d0a90aac9df4bb5db85242946676b332c345562c5af9a6484f283131fd3996495ae9843caa3fee2ae317035ecde485f11f7911e3dfa6fe704 SHA512 6ba6a87f46e9661caea8e8741295b61de8c4b77191fc70e9432a780d13f950b6a82b4b5795a6a681dd29516e888cd8b2a10a02ba495d55d49d26c901c65f2fca MISC metadata.xml 563 BLAKE2B 5c657288a3cd0ece118920159db14756bad6a2faa308e5495cdf1eca6dd160dfbd05c979857fd55a031bc0acacdc7a81db628c0ca31a9b2d3dae226838e2abf5 SHA512 050e1a78c8c7f4b024b207754005dcec28188697b3be2d93c30f800f8a91da1a3376b4501a4a6e061dcd096a958a9a4cba62251f5003b2056dfadee5bfda6716 diff --git a/dev-db/percona-xtrabackup/percona-xtrabackup-2.4.10.ebuild b/dev-db/percona-xtrabackup/percona-xtrabackup-2.4.10.ebuild deleted file mode 100644 index ec724c075e65..000000000000 --- a/dev-db/percona-xtrabackup/percona-xtrabackup-2.4.10.ebuild +++ /dev/null @@ -1,86 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit cmake-utils flag-o-matic - -DESCRIPTION="Hot backup utility for MySQL based servers" -HOMEPAGE="https://www.percona.com/software/mysql-database/percona-xtrabackup" -SRC_URI="https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-${PV}/source/tarball/${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~x86" - -DEPEND=" - app-arch/lz4:0= - app-editors/vim-core - <dev-libs/boost-1.65.0:= - dev-libs/libaio - <dev-libs/libedit-20170329.3.1 - dev-libs/libev - dev-libs/libevent:0= - dev-libs/libgcrypt:0= - dev-libs/libgpg-error - dev-python/sphinx - net-misc/curl - sys-libs/zlib:=" - -RDEPEND=" - ${DEPEND} - !dev-db/xtrabackup-bin - dev-perl/DBD-mysql" - -PATCHES=( - "${FILESDIR}"/${PN}-2.4.6-remove-boost-version-check.patch - "${FILESDIR}"/${PN}-2.4.10-fix-gcc6-isystem.patch -) - -src_prepare() { - cmake-utils_src_prepare - - # remove bundled boost, libedit, libevent, zlib - # just to be safe... - # We keep lz4 directory because we use extra/lz4/xxhash.c in cmake/libutils.cmake - rm -rv \ - include/boost_1_59_0 \ - cmd-line-utils/libedit \ - libevent \ - zlib || die -} - -src_configure() { - # Needed, due to broken handling of CMAKE_BUILD_TYPE leading to - # - # error: 'fts_ast_node_type_get' was not declared in this scope - # - append-cppflags -DDBUG_OFF - - # Upstream doesn't support C++14 -- build will fail with -fpermissive error - # https://bugs.mysql.com/bug.php?id=87956 - append-cxxflags $(test-flags-CXX -std=gnu++03) -std=gnu++03 - - local mycmakeargs=( - -DBUILD_CONFIG=xtrabackup_release - -DWITH_EDITLINE=system - -DWITH_LIBEVENT=system - -DWITH_LZ4=system - -DWITH_SSL=bundled # uses yassl, which isn't packaged - -DWITH_ZLIB=system - -DWITH_PIC=ON - ) - - local CMAKE_BUILD_TYPE="Release" - cmake-utils_src_configure -} - -src_install() { - local p="${BUILD_DIR}/storage/innobase/xtrabackup" - - dobin "${p}"/src/{xbcloud,xbcrypt,xbstream,xtrabackup} - dosym xtrabackup /usr/bin/innobackupex - - einstalldocs - doman "${p}"/doc/source/build/man/* -} diff --git a/dev-db/percona-xtrabackup/percona-xtrabackup-2.4.12.ebuild b/dev-db/percona-xtrabackup/percona-xtrabackup-2.4.12.ebuild index 57da1cc8e41e..00fa92ff8fb4 100644 --- a/dev-db/percona-xtrabackup/percona-xtrabackup-2.4.12.ebuild +++ b/dev-db/percona-xtrabackup/percona-xtrabackup-2.4.12.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Authors +# Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -29,7 +29,7 @@ DEPEND=" RDEPEND=" ${DEPEND} - !dev-db/xtrabackup-bin + !dev-db/percona-xtrabackup-bin dev-perl/DBD-mysql" PATCHES=( diff --git a/dev-db/percona-xtrabackup/percona-xtrabackup-2.4.11.ebuild b/dev-db/percona-xtrabackup/percona-xtrabackup-2.4.13.ebuild index 8842c1a74b73..b30c9c1a026b 100644 --- a/dev-db/percona-xtrabackup/percona-xtrabackup-2.4.11.ebuild +++ b/dev-db/percona-xtrabackup/percona-xtrabackup-2.4.13.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -7,7 +7,8 @@ inherit cmake-utils flag-o-matic DESCRIPTION="Hot backup utility for MySQL based servers" HOMEPAGE="https://www.percona.com/software/mysql-database/percona-xtrabackup" -SRC_URI="https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-${PV}/source/tarball/${P}.tar.gz" +SRC_URI="https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-${PV}/source/tarball/${P}.tar.gz + mirror://sourceforge/boost/boost_1_59_0.tar.gz" LICENSE="GPL-2" SLOT="0" @@ -16,9 +17,8 @@ KEYWORDS="~amd64 ~x86" DEPEND=" app-arch/lz4:0= app-editors/vim-core - <dev-libs/boost-1.65.0:= dev-libs/libaio - <dev-libs/libedit-20170329.3.1 + dev-libs/libedit dev-libs/libev dev-libs/libevent:0= dev-libs/libgcrypt:0= @@ -29,7 +29,7 @@ DEPEND=" RDEPEND=" ${DEPEND} - !dev-db/xtrabackup-bin + !dev-db/percona-xtrabackup-bin dev-perl/DBD-mysql" PATCHES=( @@ -44,7 +44,6 @@ src_prepare() { # just to be safe... # We keep lz4 directory because we use extra/lz4/xxhash.c in cmake/libutils.cmake rm -rv \ - include/boost_1_59_0 \ cmd-line-utils/libedit \ libevent \ zlib || die @@ -63,6 +62,7 @@ src_configure() { local mycmakeargs=( -DBUILD_CONFIG=xtrabackup_release + -DWITH_BOOST="${WORKDIR}/boost_1_59_0" -DWITH_EDITLINE=system -DWITH_LIBEVENT=system -DWITH_LZ4=system diff --git a/dev-db/percona-xtrabackup/percona-xtrabackup-2.4.9.ebuild b/dev-db/percona-xtrabackup/percona-xtrabackup-2.4.9.ebuild deleted file mode 100644 index fc4d5f95ea80..000000000000 --- a/dev-db/percona-xtrabackup/percona-xtrabackup-2.4.9.ebuild +++ /dev/null @@ -1,82 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit cmake-utils flag-o-matic - -DESCRIPTION="Hot backup utility for MySQL based servers" -HOMEPAGE="https://www.percona.com/software/mysql-database/percona-xtrabackup" -SRC_URI="https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-${PV}/source/tarball/${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="amd64 x86" - -DEPEND=" - app-arch/lz4:0= - app-editors/vim-core - <dev-libs/boost-1.65.0:= - dev-libs/libaio - <dev-libs/libedit-20170329.3.1 - dev-libs/libev - dev-libs/libevent:0= - dev-libs/libgcrypt:0= - dev-libs/libgpg-error - dev-python/sphinx - net-misc/curl - sys-libs/zlib" - -RDEPEND=" - ${DEPEND} - !dev-db/xtrabackup-bin - dev-perl/DBD-mysql" - -PATCHES=( - "${FILESDIR}"/${PN}-2.4.6-remove-boost-version-check.patch - "${FILESDIR}"/${PN}-2.4.6-fix-gcc6-isystem.patch -) - -src_prepare() { - cmake-utils_src_prepare - - # remove bundled lz4, boost, libedit, libevent, zlib - # just to be safe... - rm -rv \ - extra/lz4 \ - include/boost_1_59_0 \ - cmd-line-utils/libedit \ - libevent \ - zlib || die -} - -src_configure() { - # Needed, due to broken handling of CMAKE_BUILD_TYPE leading to - # - # error: 'fts_ast_node_type_get' was not declared in this scope - # - append-cppflags -DDBUG_OFF - - local mycmakeargs=( - -DBUILD_CONFIG=xtrabackup_release - -DWITH_EDITLINE=system - -DWITH_LIBEVENT=system - -DWITH_LZ4=system - -DWITH_SSL=bundled # uses yassl, which isn't packaged - -DWITH_ZLIB=system - -DWITH_PIC=ON - ) - - local CMAKE_BUILD_TYPE="Release" - cmake-utils_src_configure -} - -src_install() { - local p="${BUILD_DIR}/storage/innobase/xtrabackup" - - dobin "${p}"/src/{xbcloud,xbcrypt,xbstream,xtrabackup} - dosym xtrabackup /usr/bin/innobackupex - - einstalldocs - doman "${p}"/doc/source/build/man/* -} diff --git a/dev-db/pgadmin4/Manifest b/dev-db/pgadmin4/Manifest index 171bdb825bac..592d2beeaa41 100644 --- a/dev-db/pgadmin4/Manifest +++ b/dev-db/pgadmin4/Manifest @@ -1,7 +1,5 @@ DIST pgadmin4-3.0.tar.gz 28915010 BLAKE2B 7e6dccd91f082f7b5514f5d3abdf4653a9961b4efc706e10ce58d817785d514508233e25068762fe0e4bca4c1a3cf10a2515afa38e6f9ba3c99b4af3fa32f3d2 SHA512 5921340176e6748ef13112d906061f195d4bb2f73917d762371bbaeb44ef66cf8e0edcd1cd241eb78dae46ed0b3af014c749468a930fb0c0983b38b2c54dfc3a -DIST pgadmin4-3.4.tar.gz 30743447 BLAKE2B 4476989dc9bd672810ced56f4c3e6b87f27ec28d693ab6a909b1cdd4ddc0ae51552fe7ac5a3db4382ccded433b1dab239de01697c0709474381c117460a45163 SHA512 57160827a7577b89029a3a621653f2fec9f3b5379a554ea8bcaf80225f32f1ed93e4560ce5d5b499aff2091589e641bdfe82987be46b6155bca3fb072cf2c5e2 -DIST pgadmin4-3.5.tar.gz 31501977 BLAKE2B fbb1ab4ffde62f6a62ff74088d32cfbdb147c5599d713eae46b3ff50972aab7c6aa48ef108d360001dcca8d999cdd0526c6db5f8bfe260bda52dfa4b41678a87 SHA512 6971c003a39fdd2f279fa7a652a32e1554d17d1794fa0b84c4aa3394ab128efbb44299890bd69b07a0ca926d918668fba124f99f3d7271c60ee70616eedd6d1c +DIST pgadmin4-4.2.tar.gz 32382384 BLAKE2B c96806302e7c298e9fcdee3ada8fc519431eb3de778c55445de648e2867dc32168c5ad38209da63ac2d181612b2edfdd532f11ccd6020ab187c6fe23ef6272a6 SHA512 d3d242904c65f0af871890954c24005b4849b88599cde9a7cb82e077ff5db5a8c5f015c4af0b135d68f02daad42492af71373831c2212a36672af8d7621c3b2a EBUILD pgadmin4-3.0.ebuild 3481 BLAKE2B 697a5b6250d747aff9b4216603077a977a84c44bd344f935315eb0ca9a41b85527b32df819738d42626759fb8244392c15edd4909c9b8f03cdb82debf24f5172 SHA512 5f14d65bc3dac207fd3ced4105be3115cd0821a6a5054ce9d150d31d19ca5de44c66b3971444e200d79bfc6b11949cd437a0cbec388f26beef94ccdacb1c3b19 -EBUILD pgadmin4-3.4-r1.ebuild 3497 BLAKE2B eaf731dddc9a70f754b9c224dc5ccd69aa11ed05cbaac23b7be38d3c995a8bad81a678ebe823f5747c49e8b13b1b200ed285f082c9e5ac764d4f28cb764af164 SHA512 079991dff7bdb07fb21b8b0e6f9c0749d9d09021afb24265ab907141b80a5d728d6d8d0d5a6f752ceb3cbb7fd340d6bf6ebc65022e1a8b980817e0b17aa9f2d4 -EBUILD pgadmin4-3.5.ebuild 3543 BLAKE2B bd2ef22bb2bea45eabda3f209ea6ba21969cd98535aa9116088b304f7b4fb5c1ade821dc8f195816d1a2b012174653ca3ca7a4594046816ba597018b175fa627 SHA512 53246c0be50d50d171d664bd6235d1df11ae697c04af76f889530e1a1f3858493265617a3763c1c43f68325cebae3f8fa8fbb70946b8e2278319f744e7758e84 +EBUILD pgadmin4-4.2-r1.ebuild 3550 BLAKE2B 33cb384fe3f047cb6be2631a60094e50f103925fae6fc12d4258a4d5127129f664c3eb1ab86b04b739a2308af5fee9811be579ec9a7302459c4406934e39159c SHA512 f27da6b6bc91041bfbcb96e3066baf1467855de8a9862493b5916aecec83125a6e6bbf5d982aea678149b6f7f90b24cc0411690c8af3bd345d2c044168a44137 MISC metadata.xml 266 BLAKE2B 9d5988ab45f9939f9be5ee7f4b7a9950a3d62252aa0d3e6c953265467428c59fb8c05b2bb72085431b7aa9fc18d31f2b3273e8fdb33443d786b2237db697b7e2 SHA512 9f85990c7ce6a1de5c1067e4781af18bede2d3bd02963a7b2927766b70dbe98d3fb63bb01e19b1cf6e2b77038d9788bf38155b3cc33f9e5ff8430b10a4006325 diff --git a/dev-db/pgadmin4/pgadmin4-3.4-r1.ebuild b/dev-db/pgadmin4/pgadmin4-3.4-r1.ebuild deleted file mode 100644 index 18064c0d8eed..000000000000 --- a/dev-db/pgadmin4/pgadmin4-3.4-r1.ebuild +++ /dev/null @@ -1,123 +0,0 @@ -# Copyright 1999-2018 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PYTHON_COMPAT=( python3_{4,5,6} ) -PYTHON_REQ_USE="sqlite" - -inherit python-single-r1 qmake-utils - -DESCRIPTION="GUI administration and development platform for PostgreSQL" -HOMEPAGE="https://www.pgadmin.org/" -SRC_URI="mirror://postgresql/pgadmin/${PN}/v${PV}/source/${P}.tar.gz" - -LICENSE="POSTGRESQL" -KEYWORDS="~amd64 ~x86" -SLOT="0" -IUSE="doc" - -RESTRICT="test" - -REQUIRED_USE="${PYTHON_REQUIRED_USE}" - -COMMON_DEPEND="${PYTHON_DEPS} - dev-qt/qtnetwork:5 - dev-qt/qtwidgets:5 -" - -DEPEND="${COMMON_DEPEND} - doc? ( dev-python/sphinx[${PYTHON_USEDEP}] ) -" - -RDEPEND="${COMMON_DEPEND} - >=app-text/htmlmin-0.1.12[${PYTHON_USEDEP}] - >=dev-python/Babel-2.3.4[${PYTHON_USEDEP}] - >=dev-python/beautifulsoup-4.4.1[${PYTHON_USEDEP}] - >=dev-python/blinker-1.4[${PYTHON_USEDEP}] - >=dev-python/click-6.6[${PYTHON_USEDEP}] - >=dev-python/extras-1.0.0[${PYTHON_USEDEP}] - >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}] - >=dev-python/flask-1.0.2[${PYTHON_USEDEP}] - >=dev-python/flask-babel-0.11.1[${PYTHON_USEDEP}] - >=dev-python/flask-babelex-0.9.3[${PYTHON_USEDEP}] - >=dev-python/flask-gravatar-0.5.0[${PYTHON_USEDEP}] - >=dev-python/flask-htmlmin-1.3.2[${PYTHON_USEDEP}] - >=dev-python/flask-login-0.3.2[${PYTHON_USEDEP}] - >=dev-python/flask-mail-0.9.1[${PYTHON_USEDEP}] - >=dev-python/flask-migrate-2.1.1[${PYTHON_USEDEP}] - >=dev-python/flask-paranoid-0.2.0[${PYTHON_USEDEP}] - >=dev-python/flask-principal-0.4.0[${PYTHON_USEDEP}] - >=dev-python/flask-security-3.0.0[${PYTHON_USEDEP}] - >=dev-python/flask-sqlalchemy-2.3.2[${PYTHON_USEDEP}] - >=dev-python/flask-wtf-0.14.2[${PYTHON_USEDEP}] - >=dev-python/html5lib-1.0.1[${PYTHON_USEDEP}] - >=dev-python/itsdangerous-0.24[${PYTHON_USEDEP}] - >=dev-python/jinja-2.7.3[${PYTHON_USEDEP}] - >=dev-python/linecache2-1.0.0[${PYTHON_USEDEP}] - >=dev-python/markupsafe-0.23[${PYTHON_USEDEP}] - >=dev-python/mimeparse-1.6.0[${PYTHON_USEDEP}] - >=dev-python/passlib-1.7.1[${PYTHON_USEDEP}] - >=dev-python/pbr-3.1.1[${PYTHON_USEDEP}] - >=dev-python/psycopg-2.7.4[${PYTHON_USEDEP}] - >=dev-python/pycrypto-2.6.1[${PYTHON_USEDEP}] - >=dev-python/pyrsistent-0.14.2[${PYTHON_USEDEP}] - >=dev-python/python-dateutil-2.7.1[${PYTHON_USEDEP}] - >=dev-python/python-sqlparse-0.2.4[${PYTHON_USEDEP}] - >=dev-python/pytz-2018.3[${PYTHON_USEDEP}] - >=dev-python/simplejson-3.13.2[${PYTHON_USEDEP}] - >=dev-python/six-1.11.0[${PYTHON_USEDEP}] - >=dev-python/speaklater-1.3[${PYTHON_USEDEP}] - >=dev-python/sqlalchemy-1.2.5[${PYTHON_USEDEP}] - >=dev-python/sshtunnel-0.1.3[${PYTHON_USEDEP}] - >=dev-python/werkzeug-0.9.6[${PYTHON_USEDEP}] - >=dev-python/wtforms-2.1[${PYTHON_USEDEP}] -" - -S="${WORKDIR}"/${P}/runtime - -src_prepare() { - cd "${WORKDIR}"/${P} || die - default -} - -src_configure() { - eqmake5 -} - -src_compile() { - default - if use doc; then - cd "${WORKDIR}"/${P} || die - emake docs - fi -} - -src_install() { - dobin pgAdmin4 - - cd "${WORKDIR}"/${P} || die - - local APP_DIR=/usr/share/${PN}/web - insinto "${APP_DIR}" - doins -r web/* - cat > "${D}${APP_DIR}"/config_local.py <<-EOF - SERVER_MODE = False - UPGRADE_CHECK_ENABLED = False - EOF - python_optimize "${D}${APP_DIR}" - - local CONFIG_DIR="/etc/xdg/pgadmin" - dodir "${CONFIG_DIR}" - cat > "${D}${CONFIG_DIR}"/pgadmin4.conf <<-EOF - [General] - ApplicationPath=${APP_DIR} - PythonPath=$(python_get_sitedir) - EOF - - if use doc; then - rm -r docs/en_US/_build/html/_sources || die - insinto /usr/share/${PN}/docs/en_US/_build - doins -r docs/en_US/_build/html - fi -} diff --git a/dev-db/pgadmin4/pgadmin4-3.5.ebuild b/dev-db/pgadmin4/pgadmin4-4.2-r1.ebuild index f0db6c595531..17dde22510ef 100644 --- a/dev-db/pgadmin4/pgadmin4-3.5.ebuild +++ b/dev-db/pgadmin4/pgadmin4-4.2-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Authors +# Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -36,6 +36,7 @@ RDEPEND="${COMMON_DEPEND} >=dev-python/beautifulsoup-4.4.1[${PYTHON_USEDEP}] >=dev-python/blinker-1.4[${PYTHON_USEDEP}] >=dev-python/click-6.6[${PYTHON_USEDEP}] + >=dev-python/cryptography-2.2.2-r1[${PYTHON_USEDEP}] >=dev-python/extras-1.0.0[${PYTHON_USEDEP}] >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}] >=dev-python/flask-0.12.4[${PYTHON_USEDEP}] @@ -61,7 +62,6 @@ RDEPEND="${COMMON_DEPEND} >=dev-python/pbr-3.1.1[${PYTHON_USEDEP}] >=dev-python/psutil-5.4.7[${PYTHON_USEDEP}] >=dev-python/psycopg-2.7.4[${PYTHON_USEDEP}] - >=dev-python/pycrypto-2.6.1[${PYTHON_USEDEP}] >=dev-python/pyrsistent-0.14.2[${PYTHON_USEDEP}] >=dev-python/python-dateutil-2.7.1[${PYTHON_USEDEP}] >=dev-python/python-sqlparse-0.2.4[${PYTHON_USEDEP}] diff --git a/dev-db/postgresql/Manifest b/dev-db/postgresql/Manifest index 9dd65654aa6c..64be8cdcfad2 100644 --- a/dev-db/postgresql/Manifest +++ b/dev-db/postgresql/Manifest @@ -11,16 +11,28 @@ AUX postgresql.service-9.2 1666 BLAKE2B d4b81415539db3d78e0f5908185f903b70966ce3 AUX postgresql.service-9.6-r1 1477 BLAKE2B 2a652d5b2892f3a52f484fcc0b4f4dad09cf4b46c3739c3f805072040a26128cb2ad9a25d4a7c9f109a95696d739538d379af6bac53c656f5c41af45b6110de5 SHA512 9e2b04923f6ebec1424c0f276c58a6a0c4933f2de5e2a9776169227729afd06ce5284461be8b6ed70e5aaff2a68b9f96c6893d867d35761c9977f9847ccfe93d AUX postgresql.tmpfiles 39 BLAKE2B 25a5725af53c8e4e4009887e998172dd863ce218a5438351194548c4fc8ea15308dfba3602d5a922cf49b46015198268a4a4528119d8a74dcef4cc4c1767c052 SHA512 498060f2a597cf374f4fb31deaa2d6c5b00edef68efc0e71b82bfc20b717ae12518ba18fcb455a0c518ebba1a0868f38321470616151d02fa79b889a66dcb9f8 DIST postgresql-10.6.tar.bz2 20350612 BLAKE2B b751085b8fce73efb2531378a553c8c956f5e05a0002de8fdc58c0f2a6cf2b9dfaff6bd621047a094a51e459bc8fc5b1658d6a754a396fa3b7aedc1024ea3b4c SHA512 5d4d5cee2a19ad1820c3411bc4851904e3059cdcacc837350694d54d7d59260b66c565c72cc14a3a10541a8fc49c5185f08f57b7a8c7e4c64ed2614da6e1201f +DIST postgresql-10.7.tar.bz2 18940030 BLAKE2B ce02d2c4ba97c1845b3708941bb7a9f6ee025fc4a881e35790279aadf5e35464d6716cfdeb4ad145ce4549e639ad01d333cff858f956607c0cd583af65f1cd3e SHA512 2fa8194e9ef540930eecc2a43907a77f7f185590046350d48fd625bdb1ab459095c4e2e0d2faac846935d7231ac672ace760633deeee365572768da619458ba9 DIST postgresql-11.1.tar.bz2 21263173 BLAKE2B d762b6e8b0e7b08b16ed252687118a0a4516172e38e8940879fd050f72d19ff045af949e72977a62c2ce0a788af7d42c9bde7748347566bec3694e337bba6f73 SHA512 35d00984e9f5f063a5b96e97aa1b40381ab76d07b2336bda5981fd80bef1324f56eefca5069ae78770ecd6ece5df85264e599fdb3478ecb71d4fdd0d7b6becca +DIST postgresql-11.2.tar.bz2 19714229 BLAKE2B 459674c08a0435363da29428bef7ec49a012b534b390ce6addafac000ce58ad0ad7ba4e1522f5279da29535399836971c61536827d481af766322935d7c6d01b SHA512 dae00a543fdeed36bc338abd4ccfd9fe9a8b6b2b7eaa00b1078e4f27802de75a461c27da2800bc9dd64e658681e5787bd03764bde79940656cae1e8c8716f011 +DIST postgresql-11rc1.tar.bz2 21193201 BLAKE2B 4ed52937f23d4be92a8b357b608c48b3ee23980269b9a8f88315d2c0019725093087332518d4418592f24b6ab167cc04cb7e9f1c005b9dcb585945e970ea0930 SHA512 a03229b55ae632a7f2bc9f32e918cd38f6bbf8555e50355f50a913790650f2efbb56fab47ed6d3dfe9847d0bd20cb50c27aa9456d2c38ce8e32d3c845ba573c6 DIST postgresql-9.3.25.tar.bz2 17067593 BLAKE2B fd9ca5685e5511dcaa72da882b674846dcd5a16227e5b33ae06701fe7881df71847666c37925033c6cb01c916111a8f76df134491645f4d1e1dd48a008bd2831 SHA512 319e12b73853b74f5ef2c520d64795bb586ffd495ceab6518f7844de6e0a054aea821976c470108d346f8090c7d3949920d9c435432e33004b7caa7a77a5cdca DIST postgresql-9.4.20.tar.bz2 17905682 BLAKE2B cb65228f8e78dc8b6303a06480a68de58ecac1fefa1342e4563f2c4051c9f5506b366b36c2dbd54207d25ae497625f8fc5e3e771174a6b3ec33c3c19d2c9ea08 SHA512 664c6e97979f38d263d1dc75a7db442f193a230435cad43ddfa2afcd42ac0d73b2aef0e846fddcc9008cd6d89cba2d5c0a4db93b111665646d3ff4d8f6fbe1e8 +DIST postgresql-9.4.21.tar.bz2 16871522 BLAKE2B e6b8957f52a95d5fa56bc39756f1de83459882e40eee07c3ddf9e33eab39a0d61ee492864a920e7714ca1914a772dcc9048bc34072349197597cfb116aa94422 SHA512 850d1f59369457d9a8a42de8f0e4811f60e9164d2e7d7605fdabc04cc5ba2e3794d51e155d709419d06b8e070f214f7d3ef2328c6d37f125264ea008ca18ff5a DIST postgresql-9.5.15.tar.bz2 18707696 BLAKE2B f1be26085953d5a15a6545aed3527b9eec6eb57c72f2e05401e43200e628b3a42ee824dd1cb0138556b97fe4922a991489dffa77329b653475874766c1d5b944 SHA512 2ea241b6751a2812c689da9bde40151ebb7cdabdd14e93d92f8bea1e3fcf5bc0d4854834999f33270329e22a09c5aeaf8d59d36ca6e8860704f81f3adcfb30d5 +DIST postgresql-9.5.16.tar.bz2 17506874 BLAKE2B ce5c804315ce5d7ac95af2455322801f581c3aa8e943ffae40b7e14a95a4610b71956568a418f2f22b8a9814ff9fd1f9296efc974716c0096aa22dcdb7609ff7 SHA512 4583c825ed00a5ba915863b41c39cd9580492444ff299e44c3856db55fb4f0607d184534fe8977d915fb0730e6d638d8560be11915ce21b9d1f6971e7a285c7c DIST postgresql-9.6.11.tar.bz2 20009048 BLAKE2B aa3e5b1e63c983226ea71737982e62eaff655af7e0f55f20ec886f5d7406b1e30e2fe5378b0dd1ef59e777f862ccc2386121653853d4c186a1b4853a9bbb1591 SHA512 a4314f92d1a661af4076d8c120533ecae76d91461043b8a6ad22dd6e5b562e0bf019bc7f3157a26d9666ba5866e254613ae5b690310168b029795dc088f8c060 +DIST postgresql-9.6.12.tar.bz2 18759442 BLAKE2B 067b307318f65616651ee4502f420a84df26e906350f07ce5ab4a769608075f0d017b6d84b0ce5045662ab379e236b66cf751f7950d026f011d0915efcdfab3e SHA512 3a7a96caf682461f1f9bffdbe2b72b1ce00cc6680145e00c139e4af8b9dc8b8679fda1626de65921d6e187fa9290efc930584b98f1fd2aba1ba3d790a741a415 EBUILD postgresql-10.6.ebuild 13811 BLAKE2B d182148b6aa53049dc6387b9c18a98248ec6b2a66811c877c05b6c2e08bb3e10669b288fa96d4e39f6b29449cf86424176f3983df8146a4b230ee0e0d59bcf60 SHA512 043bd74949a04514b05058dc699e5876babd6b780c67760fa84a9a73d95c2c209d03c2de0b110083f7779d51815f0f093140ad052fc7ab7cf65a722858c2618f +EBUILD postgresql-10.7.ebuild 13821 BLAKE2B 3ba0ab38b87235a273fd6d0b31d68accc7ac999b397b15bf70bed1220397e31f007230b49ff862784437eeba480eeb560fdab90a3b81ffd0954d0fbec67ff98b SHA512 b69de5991dcf54114ee6628d8fe9cff8706a9774053ff909945c820929079dcc3aeba0acbd9fe290e07d9a87647611307614add6848fe1bd1ae8777e5004e6fb EBUILD postgresql-11.1.ebuild 13833 BLAKE2B c05814f541269f5c38852063e02c37360de5a0903fd5deca35511606e786dd21b73c975e01f569b39988c765d5509e0287d8f797f5d1def322f4ab8830dac51f SHA512 fd55e3fe9de7ac169af0a3f3783038462f3760caaafbfd918e4c552a875c5b3948cfc1d14b157fad69baebd42bdb2b5261ed89a36fcccf2774faa212897152e2 +EBUILD postgresql-11.2.ebuild 13842 BLAKE2B da4259f4cf98bcc6e151891ca20278a665db766634d252731a155324de62ca99d11626ec9324d5a8d6eac216fe034ad89585213fd40083c808609e48b14691be SHA512 9fb379b9250298e73f7231da947ae92fa4c6f2ca76e577357779b8a49390d531facc382cb83f793a89e1f6f0f7bfc07747612c06ff33816f8d69e3eec2e73f2b +EBUILD postgresql-11_rc1.ebuild 13437 BLAKE2B 5a228b2e8cb1ffeefe45cfa4f508f5218d9d349ee1a5191331fd3c137b2faa03d57cad97e84ce3165321bf12aed341b1c3e29675ae5ecb36e16a8b9159ac4dad SHA512 77b1a625ea37d21af231f49a3722f01cef8877f5764fdfafb3a9e8894f8ebae012d059784f4fc53329688bcd86303e0fe5313ca1db747195319cffdd5b86decb EBUILD postgresql-9.3.25.ebuild 13560 BLAKE2B dad258dd261b0db61ae0dab4c94824abf347d2b7c155e49811801b81ac2b3449b377614e940c91d70240a9cb3ee34013494f6dcfce8fe24b1301b7a47160dcec SHA512 43ecdccecd395977956b26c6376f42eb79e7389c87fcca17dd27effe4cc847d5548df8b368572af9f70b80a77f62ec4a7e17c3bb78105ce854faf5343e9e38d6 EBUILD postgresql-9.4.20.ebuild 14370 BLAKE2B a7f2e2bfa0b5ee85c11d525b6f29c3194e040495bf49ebfdbcae4dae5ea915325d98abc672b4727a985e056b0f0e9e9c85eb079164f93e94c55df0be68a04326 SHA512 5745139858d20d62c90a843060f5a57378c7590b1b26cf8a41f84603555973f581d06120b237a0fecf1a9d239a7af885761c75483addb955983528da44dd0d47 +EBUILD postgresql-9.4.21.ebuild 14379 BLAKE2B 31b1a7703f0e21acc50df8fb675843dbe511cbc0f635e36f1eaf72b80bbfb6eea815c90c5d8836284b793392bbe1ad654e98736e9135729abd1735cfa51ec12f SHA512 9d4ebf78f3aa24a603dcae5d6726d556fe89038193010e5018db84678e600185e54c8879f497d90579ee2e19ba074f91876aa004f5395a7f4a4e44ded1ec34c0 EBUILD postgresql-9.5.15.ebuild 14598 BLAKE2B 5b59320bd25c183a251ff9176e774e222a15eb68749f890c16f7657e0968d519229f3498730b26b3b2eca2e76fcb304d96616cf11287ccfdcc62894379771781 SHA512 f11b94faf2376216c5506017108a6282efa4e02106597f9502daaccd14177925aa363eab51f5aafb029ce7f3f5617778f71a26cd9a4d1b830f1176a8c68764da +EBUILD postgresql-9.5.16.ebuild 14607 BLAKE2B 4eeaf5f4fa02d5e481b7c167a1c70458e6624591d8618e35820813433c0fa488a942dccbd093071b07feab79e323a13bc75e3b82a7c5a6c91515e99ea00bdcce SHA512 a33160a2275b0aded06211ed534e792fcf5d46f3bef76dfe95914bf88e7d071a5f195925ea9a3fc68a1717b3c579e44a28da9327806c03cfca2dacfbbf29d23a EBUILD postgresql-9.6.11.ebuild 14831 BLAKE2B 95bcc8d1a47a6970bf5e2d1c89a8bbd3b48e16a4c40916e1d672d32c265711c371adad565a8ea32e15083a0f0f25f39daaefe1825e25ca1ba281067069522478 SHA512 289204e2f689f7ddc001954c784b9a73e035f8dc5960f38a50f38e8af2e82427b3e678f72d9fc11fba1b3e794286441f15a84c91f6d68f4e60f035912374094c +EBUILD postgresql-9.6.12.ebuild 14840 BLAKE2B bf04abdd313ef6ff25bbf462c4031b74eeb5f207667ac87348d9bcf9274de7ad4d2b7dcce78709da8bd66329ad20612fba9eab8e83aa42a575d23760993a8314 SHA512 d6580373dcd7a79ecc144113b51a2ed87c91b4178264bf7b5c66d644bc520908272bfc63c8ddf1ed81bf684a6d981bb5ce18dca52ca9b7b48811dbd4bc752fa8 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.7.ebuild b/dev-db/postgresql/postgresql-10.7.ebuild new file mode 100644 index 000000000000..905d15e31053 --- /dev/null +++ b/dev-db/postgresql/postgresql-10.7.ebuild @@ -0,0 +1,460 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +PYTHON_COMPAT=( python2_7 python3_{4,5,6} ) + +PLOCALES="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" + +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" + +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} )" + +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 "'$(l10n_get_locales)'") +} + +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}" + + if [[ -n ${REPLACING_VERSIONS} ]] ; then + ewarn "If your system is using 'pg_stat_statements' and you are running a" + ewarn "version of PostgreSQL ${SLOT}, we advise that you execute" + ewarn "the following command after upgrading:" + ewarn + ewarn "ALTER EXTENSION pg_stat_statements UPDATE;" + fi + 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-11.2.ebuild b/dev-db/postgresql/postgresql-11.2.ebuild new file mode 100644 index 000000000000..f19bc98f9e9e --- /dev/null +++ b/dev-db/postgresql/postgresql-11.2.ebuild @@ -0,0 +1,460 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +PYTHON_COMPAT=( python2_7 python3_{4,5,6} ) + +PLOCALES="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" + +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 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" + +SLOT=$(get_major_version) + +MY_PV=${PV/_/} +S="${WORKDIR}/${PN}-${MY_PV}" + +SRC_URI="mirror://postgresql/source/v${MY_PV}/postgresql-${MY_PV}.tar.bz2" + +LICENSE="POSTGRESQL GPL-2" +DESCRIPTION="PostgreSQL RDBMS" +HOMEPAGE="http://www.postgresql.org/" + +IUSE="doc kerberos kernel_linux ldap libressl llvm nls pam perl python +readline + selinux +server systemd ssl static-libs tcl threads uuid xml zlib" + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +CDEPEND=" +>=app-eselect/eselect-postgresql-2.0 +sys-apps/less +virtual/libintl +kerberos? ( virtual/krb5 ) +ldap? ( net-nds/openldap ) +llvm? ( sys-devel/llvm:= + sys-devel/clang:= ) +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() { + # 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}-11_beta1-no-server.patch" + + if use pam ; then + sed "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 llvm) \ + $(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 "'$(l10n_get_locales)'") +} + +src_compile() { + emake + emake -C contrib +} + +src_install() { + emake DESTDIR="${D}" install + emake DESTDIR="${D}" install -C contrib + + dodoc README HISTORY doc/{TODO,bug.template} + + # man pages are already built, but if we have the target make them, + # they'll be generated from source before being installed so we + # manually install man pages. + # We use ${SLOT} instead of doman for postgresql.eselect + insinto /usr/share/postgresql-${SLOT}/man/ + doins -r doc/src/sgml/man{1,3,7} + if ! use server; then + # Remove man pages for non-existent binaries + serverman=( + initdb + pg_{archivecleanup,controldata,ctl,resetwal,rewind,standby} + pg_{test_{fsync,timing},upgrade,waldump} + post{gres,master} + ) + for m in ${serverman[@]} ; do + rm "${ED}/usr/share/postgresql-${SLOT}/man/man1/${m}.1" + done + fi + docompress /usr/share/postgresql-${SLOT}/man/man{1,3,7} + + # Create slot specific man pages + local bn f mansec slotted_name + for mansec in 1 3 7 ; do + local rel_manpath="../../postgresql-${SLOT}/man/man${mansec}" + + mkdir -p "${ED}"/usr/share/man/man${mansec} || die "making man dir" + pushd "${ED}"/usr/share/man/man${mansec} > /dev/null || die "pushd failed" + + for f in "${ED}/usr/share/postgresql-${SLOT}/man/man${mansec}"/* ; do + bn=$(basename "${f}") + slotted_name=${bn%.${mansec}}${SLOT}.${mansec} + case ${bn} in + TABLE.7|WITH.7) + echo ".so ${rel_manpath}/SELECT.7" > ${slotted_name} + ;; + *) + echo ".so ${rel_manpath}/${bn}" > ${slotted_name} + ;; + esac + done + + popd > /dev/null + done + + insinto /etc/postgresql-${SLOT} + newins src/bin/psql/psqlrc.sample psqlrc + + use static-libs || find "${ED}" -name '*.a' -delete + + local f bn + for f in $(find "${ED}/usr/$(get_libdir)/postgresql-${SLOT}/bin" \ + -mindepth 1 -maxdepth 1) + do + bn=$(basename "${f}") + # Temporarily tack on tmp to workaround a file collision + # issue. This is only necessary for 9.7 and earlier. 10 never + # had this issue. + dosym "../$(get_libdir)/postgresql-${SLOT}/bin/${bn}" \ + "/usr/bin/${bn}${SLOT/.}" + done + + if use doc ; then + docinto html + dodoc doc/src/sgml/html/* + fi + + if use server; then + sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \ + "${FILESDIR}/${PN}.confd-9.3" | newconfd - ${PN}-${SLOT} + + sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \ + "${FILESDIR}/${PN}.init-9.3-r1" | newinitd - ${PN}-${SLOT} + + if use systemd; then + sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \ + "${FILESDIR}/${PN}.service-9.6-r1" | \ + systemd_newunit - ${PN}-${SLOT}.service + newbin "${FILESDIR}"/${PN}-check-db-dir ${PN}-${SLOT}-check-db-dir + systemd_newtmpfilesd "${FILESDIR}"/${PN}.tmpfiles ${PN}-${SLOT}.conf + fi + + use pam && pamd_mimic system-auth ${PN}-${SLOT} auth account session + + if use prefix ; then + keepdir /run/postgresql + fperms 1775 /run/postgresql + fi + fi +} + +pkg_postinst() { + use server && use systemd && systemd_tmpfiles_create ${PN}-${SLOT}.conf + postgresql-config update + + elog "If you need a global psqlrc-file, you can place it in:" + elog " ${EROOT%/}/etc/postgresql-${SLOT}/" + + if use server ; then + elog + elog "Gentoo specific documentation:" + elog "https://wiki.gentoo.org/wiki/PostgreSQL" + elog + elog "Official documentation:" + elog "http://www.postgresql.org/docs/${SLOT}/static/index.html" + elog + elog "The default location of the Unix-domain socket is:" + elog " ${EROOT%/}/run/postgresql/" + elog + elog "Before initializing the database, you may want to edit PG_INITDB_OPTS" + elog "so that it contains your preferred locale in:" + elog " ${EROOT%/}/etc/conf.d/postgresql-${SLOT}" + elog + elog "Then, execute the following command to setup the initial database" + elog "environment:" + elog " emerge --config =${CATEGORY}/${PF}" + + if [[ -n ${REPLACING_VERSIONS} ]] ; then + ewarn "If your system is using 'pg_stat_statements' and you are running a" + ewarn "version of PostgreSQL ${SLOT}, we advise that you execute" + ewarn "the following command after upgrading:" + ewarn + ewarn "ALTER EXTENSION pg_stat_statements UPDATE;" + fi + fi +} + +pkg_prerm() { + if use server && [[ -z ${REPLACED_BY_VERSION} ]] ; then + ewarn "Have you dumped and/or migrated the ${SLOT} database cluster?" + ewarn "\thttps://wiki.gentoo.org/wiki/PostgreSQL/QuickStart#Migrating_PostgreSQL" + + ebegin "Resuming removal in 10 seconds (Control-C to cancel)" + sleep 10 + eend 0 + fi +} + +pkg_postrm() { + postgresql-config update +} + +pkg_config() { + use server || die "USE flag 'server' not enabled. Nothing to configure." + + [[ -f "${EROOT%/}/etc/conf.d/postgresql-${SLOT}" ]] \ + && source "${EROOT%/}/etc/conf.d/postgresql-${SLOT}" + [[ -z "${PGDATA}" ]] && PGDATA="${EROOT%/}/etc/postgresql-${SLOT}/" + [[ -z "${DATA_DIR}" ]] \ + && DATA_DIR="${EROOT%/}/var/lib/postgresql/${SLOT}/data" + + # environment.bz2 may not contain the same locale as the current system + # locale. Unset and source from the current system locale. + if [ -f "${EROOT%/}/etc/env.d/02locale" ]; then + unset LANG + unset LC_CTYPE + unset LC_NUMERIC + unset LC_TIME + unset LC_COLLATE + unset LC_MONETARY + unset LC_MESSAGES + unset LC_ALL + source "${EROOT%/}/etc/env.d/02locale" + [ -n "${LANG}" ] && export LANG + [ -n "${LC_CTYPE}" ] && export LC_CTYPE + [ -n "${LC_NUMERIC}" ] && export LC_NUMERIC + [ -n "${LC_TIME}" ] && export LC_TIME + [ -n "${LC_COLLATE}" ] && export LC_COLLATE + [ -n "${LC_MONETARY}" ] && export LC_MONETARY + [ -n "${LC_MESSAGES}" ] && export LC_MESSAGES + [ -n "${LC_ALL}" ] && export LC_ALL + fi + + einfo "You can modify the paths and options passed to initdb by editing:" + einfo " ${EROOT%/}/etc/conf.d/postgresql-${SLOT}" + einfo + einfo "Information on options that can be passed to initdb are found at:" + einfo " http://www.postgresql.org/docs/${SLOT}/static/creating-cluster.html" + einfo " http://www.postgresql.org/docs/${SLOT}/static/app-initdb.html" + einfo + einfo "PG_INITDB_OPTS is currently set to:" + if [[ -z "${PG_INITDB_OPTS}" ]] ; then + einfo " (none)" + else + einfo " ${PG_INITDB_OPTS}" + fi + einfo + einfo "Configuration files will be installed to:" + einfo " ${PGDATA}" + einfo + einfo "The database cluster will be created in:" + einfo " ${DATA_DIR}" + einfo + + ebegin "Continuing initialization in 5 seconds (Control-C to cancel)" + sleep 5 + eend 0 + + if [ -n "$(ls -A ${DATA_DIR} 2> /dev/null)" ] ; then + eerror "The given directory, '${DATA_DIR}', is not empty." + eerror "Modify DATA_DIR to point to an empty directory." + die "${DATA_DIR} is not empty." + fi + + einfo "Creating the data directory ..." + if [[ ${EUID} == 0 ]] ; then + mkdir -p "${DATA_DIR}" + chown -Rf postgres:postgres "${DATA_DIR}" + chmod 0700 "${DATA_DIR}" + fi + + einfo "Initializing the database ..." + + if [[ ${EUID} == 0 ]] ; then + su postgres -c "${EROOT%/}/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -D \"${DATA_DIR}\" ${PG_INITDB_OPTS}" + else + "${EROOT%/}"/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -U postgres -D "${DATA_DIR}" ${PG_INITDB_OPTS} + fi + + if [[ "${DATA_DIR%/}" != "${PGDATA%/}" ]] ; then + mv "${DATA_DIR%/}"/{pg_{hba,ident},postgresql}.conf "${PGDATA}" + ln -s "${PGDATA%/}"/{pg_{hba,ident},postgresql}.conf "${DATA_DIR%/}" + fi + + # unix_socket_directory has no effect in postgresql.conf as it's + # overridden in the initscript + sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf + + cat <<- EOF >> "${PGDATA%/}"/postgresql.conf + # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522 + # On the off-chance that you might need to work with UTF-8 encoded + # characters in PL/Perl + plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";' + EOF + + einfo "The autovacuum function, which was in contrib, has been moved to the main" + einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled" + einfo "by default. You can disable it in the cluster's:" + einfo " ${PGDATA%/}/postgresql.conf" + einfo + if ! use systemd; then + einfo "The PostgreSQL server, by default, will log events to:" + einfo " ${DATA_DIR%/}/postmaster.log" + einfo + fi + if use prefix ; then + einfo "The location of the configuration files have moved to:" + einfo " ${PGDATA}" + einfo "To start the server:" + einfo " pg_ctl start -D ${DATA_DIR} -o '-D ${PGDATA} --data-directory=${DATA_DIR}'" + einfo "To stop:" + einfo " pg_ctl stop -D ${DATA_DIR}" + einfo + einfo "Or move the configuration files back:" + einfo "mv ${PGDATA}*.conf ${DATA_DIR}" + elif use systemd; then + einfo "You should use the 'postgresql-${SLOT}.service' unit to run PostgreSQL" + einfo "instead of 'pg_ctl'." + else + einfo "You should use the '${EROOT%/}/etc/init.d/postgresql-${SLOT}' script to run PostgreSQL" + einfo "instead of 'pg_ctl'." + fi +} + +src_test() { + if use server && [[ ${UID} -ne 0 ]] ; then + emake check + + einfo "If you think other tests besides the regression tests are necessary, please" + einfo "submit a bug including a patch for this ebuild to enable them." + else + use server || \ + ewarn 'Tests cannot be run without the "server" use flag enabled.' + [[ ${UID} -eq 0 ]] || \ + ewarn 'Tests cannot be run as root. Enable "userpriv" in FEATURES.' + + ewarn 'Skipping.' + fi +} diff --git a/dev-db/postgresql/postgresql-11_rc1.ebuild b/dev-db/postgresql/postgresql-11_rc1.ebuild new file mode 100644 index 000000000000..7e1c36cd37ac --- /dev/null +++ b/dev-db/postgresql/postgresql-11_rc1.ebuild @@ -0,0 +1,452 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +PYTHON_COMPAT=( python2_7 python3_{4,5,6} ) + +PLOCALES="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" + +inherit flag-o-matic l10n linux-info multilib pam prefix python-single-r1 \ + systemd user versionator + +KEYWORDS="~alpha ~amd64 ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~ppc-macos ~x86-solaris" + +SLOT=$(get_major_version) + +MY_PV=${PV/_/} +S="${WORKDIR}/${PN}-${MY_PV}" + +SRC_URI="mirror://postgresql/source/v${MY_PV}/postgresql-${MY_PV}.tar.bz2" + +LICENSE="POSTGRESQL GPL-2" +DESCRIPTION="PostgreSQL RDBMS" +HOMEPAGE="http://www.postgresql.org/" + +IUSE="doc kerberos kernel_linux ldap libressl llvm nls pam perl python +readline + selinux +server systemd ssl static-libs tcl threads uuid xml zlib" + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +CDEPEND=" +>=app-eselect/eselect-postgresql-2.0 +sys-apps/less +virtual/libintl +kerberos? ( virtual/krb5 ) +ldap? ( net-nds/openldap ) +llvm? ( sys-devel/llvm:= + sys-devel/clang:= ) +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() { + # 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}-11_beta1-no-server.patch" + + if use pam ; then + sed "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 llvm) \ + $(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 "'$(l10n_get_locales)'") +} + +src_compile() { + emake + emake -C contrib +} + +src_install() { + emake DESTDIR="${D}" install + emake DESTDIR="${D}" install -C contrib + + dodoc README HISTORY doc/{TODO,bug.template} + + # man pages are already built, but if we have the target make them, + # they'll be generated from source before being installed so we + # manually install man pages. + # We use ${SLOT} instead of doman for postgresql.eselect + insinto /usr/share/postgresql-${SLOT}/man/ + doins -r doc/src/sgml/man{1,3,7} + if ! use server; then + # Remove man pages for non-existent binaries + serverman=( + initdb + pg_{archivecleanup,controldata,ctl,resetwal,rewind,standby} + pg_{test_{fsync,timing},upgrade,waldump} + post{gres,master} + ) + for m in ${serverman[@]} ; do + rm "${ED}/usr/share/postgresql-${SLOT}/man/man1/${m}.1" + done + fi + docompress /usr/share/postgresql-${SLOT}/man/man{1,3,7} + + # Create slot specific man pages + local bn f mansec slotted_name + for mansec in 1 3 7 ; do + local rel_manpath="../../postgresql-${SLOT}/man/man${mansec}" + + mkdir -p "${ED}"/usr/share/man/man${mansec} || die "making man dir" + pushd "${ED}"/usr/share/man/man${mansec} > /dev/null || die "pushd failed" + + for f in "${ED}/usr/share/postgresql-${SLOT}/man/man${mansec}"/* ; do + bn=$(basename "${f}") + slotted_name=${bn%.${mansec}}${SLOT}.${mansec} + case ${bn} in + TABLE.7|WITH.7) + echo ".so ${rel_manpath}/SELECT.7" > ${slotted_name} + ;; + *) + echo ".so ${rel_manpath}/${bn}" > ${slotted_name} + ;; + esac + done + + popd > /dev/null + done + + insinto /etc/postgresql-${SLOT} + newins src/bin/psql/psqlrc.sample psqlrc + + use static-libs || find "${ED}" -name '*.a' -delete + + local f bn + for f in $(find "${ED}/usr/$(get_libdir)/postgresql-${SLOT}/bin" \ + -mindepth 1 -maxdepth 1) + do + bn=$(basename "${f}") + # Temporarily tack on tmp to workaround a file collision + # issue. This is only necessary for 9.7 and earlier. 10 never + # had this issue. + dosym "../$(get_libdir)/postgresql-${SLOT}/bin/${bn}" \ + "/usr/bin/${bn}${SLOT/.}" + done + + if use doc ; then + docinto html + dodoc doc/src/sgml/html/* + fi + + if use server; then + sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \ + "${FILESDIR}/${PN}.confd-9.3" | newconfd - ${PN}-${SLOT} + + sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \ + "${FILESDIR}/${PN}.init-9.3-r1" | newinitd - ${PN}-${SLOT} + + if use systemd; then + sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \ + "${FILESDIR}/${PN}.service-9.6-r1" | \ + systemd_newunit - ${PN}-${SLOT}.service + newbin "${FILESDIR}"/${PN}-check-db-dir ${PN}-${SLOT}-check-db-dir + systemd_newtmpfilesd "${FILESDIR}"/${PN}.tmpfiles ${PN}-${SLOT}.conf + fi + + use pam && pamd_mimic system-auth ${PN}-${SLOT} auth account session + + if use prefix ; then + keepdir /run/postgresql + fperms 1775 /run/postgresql + fi + fi +} + +pkg_postinst() { + use server && use systemd && systemd_tmpfiles_create ${PN}-${SLOT}.conf + postgresql-config update + + elog "If you need a global psqlrc-file, you can place it in:" + elog " ${EROOT%/}/etc/postgresql-${SLOT}/" + + if use server ; then + elog + elog "Gentoo specific documentation:" + elog "https://wiki.gentoo.org/wiki/PostgreSQL" + elog + elog "Official documentation:" + elog "http://www.postgresql.org/docs/${SLOT}/static/index.html" + elog + elog "The default location of the Unix-domain socket is:" + elog " ${EROOT%/}/run/postgresql/" + elog + elog "Before initializing the database, you may want to edit PG_INITDB_OPTS" + elog "so that it contains your preferred locale in:" + elog " ${EROOT%/}/etc/conf.d/postgresql-${SLOT}" + elog + elog "Then, execute the following command to setup the initial database" + elog "environment:" + elog " emerge --config =${CATEGORY}/${PF}" + fi +} + +pkg_prerm() { + if use server && [[ -z ${REPLACED_BY_VERSION} ]] ; then + ewarn "Have you dumped and/or migrated the ${SLOT} database cluster?" + ewarn "\thttps://wiki.gentoo.org/wiki/PostgreSQL/QuickStart#Migrating_PostgreSQL" + + ebegin "Resuming removal in 10 seconds (Control-C to cancel)" + sleep 10 + eend 0 + fi +} + +pkg_postrm() { + postgresql-config update +} + +pkg_config() { + use server || die "USE flag 'server' not enabled. Nothing to configure." + + [[ -f "${EROOT%/}/etc/conf.d/postgresql-${SLOT}" ]] \ + && source "${EROOT%/}/etc/conf.d/postgresql-${SLOT}" + [[ -z "${PGDATA}" ]] && PGDATA="${EROOT%/}/etc/postgresql-${SLOT}/" + [[ -z "${DATA_DIR}" ]] \ + && DATA_DIR="${EROOT%/}/var/lib/postgresql/${SLOT}/data" + + # environment.bz2 may not contain the same locale as the current system + # locale. Unset and source from the current system locale. + if [ -f "${EROOT%/}/etc/env.d/02locale" ]; then + unset LANG + unset LC_CTYPE + unset LC_NUMERIC + unset LC_TIME + unset LC_COLLATE + unset LC_MONETARY + unset LC_MESSAGES + unset LC_ALL + source "${EROOT%/}/etc/env.d/02locale" + [ -n "${LANG}" ] && export LANG + [ -n "${LC_CTYPE}" ] && export LC_CTYPE + [ -n "${LC_NUMERIC}" ] && export LC_NUMERIC + [ -n "${LC_TIME}" ] && export LC_TIME + [ -n "${LC_COLLATE}" ] && export LC_COLLATE + [ -n "${LC_MONETARY}" ] && export LC_MONETARY + [ -n "${LC_MESSAGES}" ] && export LC_MESSAGES + [ -n "${LC_ALL}" ] && export LC_ALL + fi + + einfo "You can modify the paths and options passed to initdb by editing:" + einfo " ${EROOT%/}/etc/conf.d/postgresql-${SLOT}" + einfo + einfo "Information on options that can be passed to initdb are found at:" + einfo " http://www.postgresql.org/docs/${SLOT}/static/creating-cluster.html" + einfo " http://www.postgresql.org/docs/${SLOT}/static/app-initdb.html" + einfo + einfo "PG_INITDB_OPTS is currently set to:" + if [[ -z "${PG_INITDB_OPTS}" ]] ; then + einfo " (none)" + else + einfo " ${PG_INITDB_OPTS}" + fi + einfo + einfo "Configuration files will be installed to:" + einfo " ${PGDATA}" + einfo + einfo "The database cluster will be created in:" + einfo " ${DATA_DIR}" + einfo + + ebegin "Continuing initialization in 5 seconds (Control-C to cancel)" + sleep 5 + eend 0 + + if [ -n "$(ls -A ${DATA_DIR} 2> /dev/null)" ] ; then + eerror "The given directory, '${DATA_DIR}', is not empty." + eerror "Modify DATA_DIR to point to an empty directory." + die "${DATA_DIR} is not empty." + fi + + einfo "Creating the data directory ..." + if [[ ${EUID} == 0 ]] ; then + mkdir -p "${DATA_DIR}" + chown -Rf postgres:postgres "${DATA_DIR}" + chmod 0700 "${DATA_DIR}" + fi + + einfo "Initializing the database ..." + + if [[ ${EUID} == 0 ]] ; then + su postgres -c "${EROOT%/}/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -D \"${DATA_DIR}\" ${PG_INITDB_OPTS}" + else + "${EROOT%/}"/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -U postgres -D "${DATA_DIR}" ${PG_INITDB_OPTS} + fi + + if [[ "${DATA_DIR%/}" != "${PGDATA%/}" ]] ; then + mv "${DATA_DIR%/}"/{pg_{hba,ident},postgresql}.conf "${PGDATA}" + ln -s "${PGDATA%/}"/{pg_{hba,ident},postgresql}.conf "${DATA_DIR%/}" + fi + + # unix_socket_directory has no effect in postgresql.conf as it's + # overridden in the initscript + sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf + + cat <<- EOF >> "${PGDATA%/}"/postgresql.conf + # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522 + # On the off-chance that you might need to work with UTF-8 encoded + # characters in PL/Perl + plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";' + EOF + + einfo "The autovacuum function, which was in contrib, has been moved to the main" + einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled" + einfo "by default. You can disable it in the cluster's:" + einfo " ${PGDATA%/}/postgresql.conf" + einfo + if ! use systemd; then + einfo "The PostgreSQL server, by default, will log events to:" + einfo " ${DATA_DIR%/}/postmaster.log" + einfo + fi + if use prefix ; then + einfo "The location of the configuration files have moved to:" + einfo " ${PGDATA}" + einfo "To start the server:" + einfo " pg_ctl start -D ${DATA_DIR} -o '-D ${PGDATA} --data-directory=${DATA_DIR}'" + einfo "To stop:" + einfo " pg_ctl stop -D ${DATA_DIR}" + einfo + einfo "Or move the configuration files back:" + einfo "mv ${PGDATA}*.conf ${DATA_DIR}" + elif use systemd; then + einfo "You should use the 'postgresql-${SLOT}.service' unit to run PostgreSQL" + einfo "instead of 'pg_ctl'." + else + einfo "You should use the '${EROOT%/}/etc/init.d/postgresql-${SLOT}' script to run PostgreSQL" + einfo "instead of 'pg_ctl'." + fi +} + +src_test() { + if use server && [[ ${UID} -ne 0 ]] ; then + emake check + + einfo "If you think other tests besides the regression tests are necessary, please" + einfo "submit a bug including a patch for this ebuild to enable them." + else + use server || \ + ewarn 'Tests cannot be run without the "server" use flag enabled.' + [[ ${UID} -eq 0 ]] || \ + ewarn 'Tests cannot be run as root. Enable "userpriv" in FEATURES.' + + ewarn 'Skipping.' + fi +} diff --git a/dev-db/postgresql/postgresql-9.4.21.ebuild b/dev-db/postgresql/postgresql-9.4.21.ebuild new file mode 100644 index 000000000000..89dee23428be --- /dev/null +++ b/dev-db/postgresql/postgresql-9.4.21.ebuild @@ -0,0 +1,475 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +PYTHON_COMPAT=( python2_7 python3_{4,5,6} ) + +PLOCALES="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" + +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" + +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} )" + +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 "'$(l10n_get_locales)'") +} + +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.5.16.ebuild b/dev-db/postgresql/postgresql-9.5.16.ebuild new file mode 100644 index 000000000000..8b0a59867f7b --- /dev/null +++ b/dev-db/postgresql/postgresql-9.5.16.ebuild @@ -0,0 +1,481 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +PYTHON_COMPAT=( python2_7 python3_{4,5,6} ) + +PLOCALES="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" + +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" + +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} )" + +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 "'$(l10n_get_locales)'") +} + +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.6.12.ebuild b/dev-db/postgresql/postgresql-9.6.12.ebuild new file mode 100644 index 000000000000..f9c788a8f2ae --- /dev/null +++ b/dev-db/postgresql/postgresql-9.6.12.ebuild @@ -0,0 +1,486 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +PYTHON_COMPAT=( python2_7 python3_{4,5,6} ) + +PLOCALES="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" + +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 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~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} )" + +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 "'$(l10n_get_locales)'") +} + +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/sqlitebrowser/Manifest b/dev-db/sqlitebrowser/Manifest index f3f764b07819..4086dd807530 100644 --- a/dev-db/sqlitebrowser/Manifest +++ b/dev-db/sqlitebrowser/Manifest @@ -1,4 +1,4 @@ AUX sqlitebrowser-3.10.1-unbundle.patch 3313 BLAKE2B 91dda803cb2eed55a56568f4d2cc0519b33b59447fcdfee49705aa0bfce84009092b0e73ab0ae79b03fc30f20220b1ca8cebbd83b66d1f8fdd36c47669403019 SHA512 71b758dc1f412b1ed5d778e8ca5fc65eb99276acf5c81fc4812bf31251a0380b8e4fbc84a00718e5959ae7cb504cda06339e24cf070b8a2de1b0fce46cfb595f DIST sqlitebrowser-3.10.1.tar.gz 1992186 BLAKE2B 105333118a404aab48abe5ecbe83b425109b60adf40d3a3b7766c7036954996539bd133da4b3e3b1e2d819223842d107710b6b24aada6bb298462e062296dabf SHA512 da9650fff6cd7984e8f438b254318b5da46209eb21a375569ec1b4dd898a41d99d61d6682f2979a56d5c39d552ed42f443215900c1cebe95350e4624415f69c4 -EBUILD sqlitebrowser-3.10.1.ebuild 1378 BLAKE2B 9ec28580c7efa201ae7907eed123ba36fdf497e67adcb75ebfa43f1fef3e7956fed44390d02161aba91e8085bb44e872f912c61ff2b6311eb7ddd9f77890bb28 SHA512 5918375456ecfa90e12f8784c3e0e5300f5cd056741a762096f9b65656f3d026015e26f338ba40a48ea1ad7a8649f83067272092ccb7de919ad758bae03e8096 +EBUILD sqlitebrowser-3.10.1-r1.ebuild 1209 BLAKE2B d615fefd7ae257b4bb803fd866503bdb0619475c25b84995781a0f622a441968eb78752b3a3619baac4ace4c34a8b0875d7d69ecb6ea66416b429035e5165a7e SHA512 234855378d371ee9678688a693379d8212583582bb2b12c5baa82ca4ff13330b87ec333602b2bea4b622dc5e9307faec0832fafeb091ce6183d8c67510716b80 MISC metadata.xml 659 BLAKE2B bf5f352f0227c1408cd9c0720fea6b7bf35e6f843f4e1f6fb3e340d3e7e5ddc09843484da6c54254345cde615993acaeba50027f44f33e0134ac05414e80e8ca SHA512 defe9a90cbcdee9750f9a5dffb8620445efd4d855fa789bad01d80151f4e64676245c2a51670c7418d2e19faa72bf26f4322c3953d610933a5b479985acedca2 diff --git a/dev-db/sqlitebrowser/sqlitebrowser-3.10.1.ebuild b/dev-db/sqlitebrowser/sqlitebrowser-3.10.1-r1.ebuild index fb9278c28228..009bf7b5d948 100644 --- a/dev-db/sqlitebrowser/sqlitebrowser-3.10.1.ebuild +++ b/dev-db/sqlitebrowser/sqlitebrowser-3.10.1-r1.ebuild @@ -1,41 +1,42 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=7 -inherit cmake-utils eutils gnome2-utils xdg-utils +inherit cmake-utils desktop xdg DESCRIPTION="SQLite Database Browser" -HOMEPAGE="http://sqlitebrowser.org" +HOMEPAGE="https://sqlitebrowser.org" SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" LICENSE="GPL-3 MPL-2.0" SLOT="0" -KEYWORDS="amd64 x86" +KEYWORDS="~amd64 ~x86" IUSE="test" -RDEPEND=" +BDEPEND=" + dev-qt/linguist-tools:5 + test? ( dev-qt/qttest:5 ) +" +DEPEND=" dev-cpp/antlr-cpp:2 dev-db/sqlite:3 >=dev-libs/qcustomplot-2.0.0[qt5(+)] dev-qt/qtcore:5 dev-qt/qtgui:5 - dev-qt/qtnetwork:5 + dev-qt/qtnetwork:5[ssl] dev-qt/qtwidgets:5 >=x11-libs/qscintilla-2.10.1:=[qt5(+)] " -DEPEND="${RDEPEND} - dev-qt/linguist-tools:5 - test? ( dev-qt/qttest:5 ) +RDEPEND="${DEPEND} + app-editors/qhexedit2 + dev-qt/qtsvg:5 " -PATCHES=( - "${FILESDIR}"/${PN}-3.10.1-unbundle.patch -) +PATCHES=( "${FILESDIR}"/${PN}-3.10.1-unbundle.patch ) src_prepare() { cmake-utils_src_prepare - # https://github.com/qingfengxia/qhexedit still bundled find libs/{antlr-2.7.7,qcustomplot-source,qscintilla} -delete || die sed -e "/^project/ s/\".*\"/sqlitebrowser/" -i CMakeLists.txt || die @@ -56,13 +57,3 @@ src_install() { cmake-utils_src_install doicon images/sqlitebrowser.svg } - -pkg_postinst() { - gnome2_icon_cache_update - xdg_desktop_database_update -} - -pkg_postrm() { - gnome2_icon_cache_update - xdg_desktop_database_update -} diff --git a/dev-db/sqliteodbc/Manifest b/dev-db/sqliteodbc/Manifest index e957aa540f9b..7efe331d047b 100644 --- a/dev-db/sqliteodbc/Manifest +++ b/dev-db/sqliteodbc/Manifest @@ -1,6 +1,4 @@ AUX sqliteodbc-0.93-respect_LDFLAGS.patch 1180 BLAKE2B b7f80800269febf41e0693faf55bd4698f56ea37e1f585449626b2571c67bcc9f9b43188ba9575b1dcc07b4cf817d953c196ae9254d8eeeb5540ccef8eada843 SHA512 083a9640d89976097a402483ebc16c1e5328e705fcea92d78a8f56988cc73b6f75143cf7f2f67b6a783f1bc9cd5ae5671aaf8d794c3548f764d6726cd78f6531 -DIST sqliteodbc-0.96.tar.gz 670070 BLAKE2B df33d64522fc4b2f63d169995677ce2437e283bb039e4eae8297816a053879e5c8c34867175f2b92785b7e24cd04892b990fb213bfb473fcf7a694a362ec4f65 SHA512 447798bbc018890a784abc6b75909fbf9ecd285d6ead3ed437727041ba3ff20ef3ceb1dfe4efb713717b7df2431fd52933e6bcafc2405674cf76518dd5b39435 DIST sqliteodbc-0.99.tar.gz 696992 BLAKE2B ec5f87b7719573ce533d9bc316e840def5e07f3da65dca822068e57eb0e3f5eb8f1593119d704ad007f015cdf35d85c0cc53cdea5d0688faedccf611fc4d2fae SHA512 adf213acee4ee69c299f39582887fd2adba3856ce6d298d250e3a96744d041c720cefb7fd8acd504c41461751b46b8a729c4fbfa7e56832fb6e4c5a1c537955d -EBUILD sqliteodbc-0.96.ebuild 800 BLAKE2B 27c9e05145d9f791e3e92f9f567ab9b3f2f2e8759d21ad11e997ce10f668e1407e01616de093b6be1330415ec6b261ee843f72b94e5531b6388fd32f404dd03a SHA512 27a9cef0023a198be47f4b4dfdfff8b9d57043d09e35031049cb3520f631f5feec01940ac7a7325e0e478a914c1a53db2298c035acd916d0f1d1d480158a6105 -EBUILD sqliteodbc-0.99.ebuild 819 BLAKE2B 8aa7093c1d84f052357d357d54c9f66e13415036be46f400c930d7a45a073cc1a80d720f63f06fec6099b7e08a4365f7e765deda28ea5bb2bc29da0c18c1efd0 SHA512 159423051d670353f763a3067fb0c1688f08192ff605a3c0395045829b1de5359add3b95bcecb68f33e0f4e0a27d245297fd0c7c0348b224c81058c9c4a5e5dc +EBUILD sqliteodbc-0.99.ebuild 817 BLAKE2B 39848b20a2b2059261f7adf326572bb0934117ead1d91e8a750244a4074b54664d900d9b2aa41886edbdacc5f68d526415fe5d3a972986f228dd0712b332c897 SHA512 db7756cb15fb3f82633cb78bff6180fff2b386f2c070d0c936248dce89e76ef5f6fccdd06ed857b5eafbc059ac3bac51dab6508bd4f68257ea9104184fc190af MISC metadata.xml 166 BLAKE2B c254f1fb642881aba57637be14fb0a89b10384f91a128feaec3a8c870d76efc2cbacb92caccc0dee2dd19a5ac5eaf8643080dafa05c4e2ac96a68568927e5afd SHA512 a56648c974a1d14dd4c18237532773c72057a13ab90c58b5da04f185e3c12a8bd8d5c21fb06053507f31766291a82dc7d87b34cd65fd94cfe2af7295c813ef84 diff --git a/dev-db/sqliteodbc/sqliteodbc-0.96.ebuild b/dev-db/sqliteodbc/sqliteodbc-0.96.ebuild deleted file mode 100644 index 79c2e94b6f81..000000000000 --- a/dev-db/sqliteodbc/sqliteodbc-0.96.ebuild +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright 1999-2014 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=4 - -inherit eutils multilib toolchain-funcs - -DESCRIPTION="ODBC driver to access local SQLite database files" -HOMEPAGE="http://www.ch-werner.de/sqliteodbc/" -SRC_URI="http://www.ch-werner.de/sqliteodbc/${P}.tar.gz" - -LICENSE="BSD" -SLOT="0" -KEYWORDS="amd64 ~arm ppc x86" -IUSE="" - -DEPEND=">=dev-db/sqlite-3.6 - || ( - >=dev-db/unixODBC-2.2 - >=dev-db/libiodbc-3.5 - )" -RDEPEND="${DEPEND}" - -pkg_setup() { - tc-export CC -} - -src_prepare() { - epatch "${FILESDIR}/${PN}-0.93-respect_LDFLAGS.patch" -} - -src_configure() { - econf --disable-static -} - -src_install() { - dodir "/usr/$(get_libdir)" - einstall - find "${D}" -name '*.la' -exec rm -f {} + || die "la file removal failed" - dodoc ChangeLog README -} diff --git a/dev-db/sqliteodbc/sqliteodbc-0.99.ebuild b/dev-db/sqliteodbc/sqliteodbc-0.99.ebuild index b1a7239d1eac..997233a895fe 100644 --- a/dev-db/sqliteodbc/sqliteodbc-0.99.ebuild +++ b/dev-db/sqliteodbc/sqliteodbc-0.99.ebuild @@ -11,7 +11,7 @@ SRC_URI="http://www.ch-werner.de/sqliteodbc/${P}.tar.gz" LICENSE="BSD" SLOT="0" -KEYWORDS="~amd64 ~arm ppc ~x86" +KEYWORDS="amd64 ~arm ppc x86" IUSE="" DEPEND=">=dev-db/sqlite-3.6 diff --git a/dev-db/sqlitestudio/Manifest b/dev-db/sqlitestudio/Manifest index 9aeea8e02a6f..fe9ab4405fc1 100644 --- a/dev-db/sqlitestudio/Manifest +++ b/dev-db/sqlitestudio/Manifest @@ -1,6 +1,3 @@ -AUX sqlitestudio-3.1.1-qt-5.11.patch 737 BLAKE2B 04dcbdc017d483d4d3c9c8565afc6a2679d8f296d224287e882f666b7dfb3d71849efa1d9cb8bd0a471c2a241b851f4eb97c2f3d6a6920bee0ccb53f8b6f6218 SHA512 16697058c404a738d1fb43fe0c9e5f447334c408282b60fab1e097f831db5b83baee26f31ef4e9eeb8d22a20b3fad243e2304bdd2e6f0ed2f658e728570c82ec -DIST sqlitestudio-3.1.1.tar.gz 8610037 BLAKE2B 7f0de65a31a8c25da305cb8d73a03f4215a1134c652e6fb68424ae2153afb1e3655ae3360b2c25b863f105a53cd5fb9909d3f8aa5674f25f0e19a080b15dfa97 SHA512 421247730660e8396f692fd8df9366e6ae834633823004ef3cb7c6f3064e66f420f0517df6a8542b800f7f88dacf2fc646b4224b423ab3994c7d8a083e82e143 DIST sqlitestudio-3.2.1.tar.gz 9405867 BLAKE2B 53cd8465a6140cf17c602094cceef2fdf74f513f33257b22e1a3d7adcb9c78d8eb2cdaff047920836a9d98429ba0025924ce608f2eab97319feabf063de4c9ee SHA512 9c07f0dc50bf35ad04d0cb06cfc1a306d3f0aa9446e7d737c8187c63cb7dd2c44fb4b960693f2c30a15ece3aac0878701874a9ce3cebfe0c6bf48df10814a574 -EBUILD sqlitestudio-3.1.1.ebuild 3545 BLAKE2B 1a1d5d15fadf26d2c54f9c3d53d13e67dbe111ef10e195b6f5ecc2bea566527340efbeb85e34e16278bf8e65ebc30c88c0ffee818e3ce0a6d9e75508e4138a64 SHA512 b2cda1f8321266bd63a8dd4ff92420be7d99eea670c9eeaadcf425df7b9e70f90ed589fdaf3f15bc7448f5bc09218a967963bdebc6888efefc7e118e7eaa3360 EBUILD sqlitestudio-3.2.1.ebuild 3702 BLAKE2B 0c948401a7134af8d8db54ff53689e7d13df1481ca47983c4ceecf0b7e47f69d0ce55df44da1a5dd57dad9cb6823b15287ef29ae72ba13a3eba657b92fedc2f9 SHA512 194b248204b5ffafbc05db47fe161b0177204b40030314e1e720a4163d9002ad1f64bd87d41191a413392bdd1cd833e48651158968bf4b06f9df5e48a4281120 MISC metadata.xml 427 BLAKE2B 937831b3acf561038a945599a81766c4fd1712d889b8bb0ba2c7b8c0d2414c547e270363b6ece7fd7956b66f1eec2e12bb4b83a2adf2718c14d0271d3c0f0155 SHA512 a6948ce576abceb4df085f103e097a720ef5f959c6f4bb79cc1f1d858e43cea625d5af3c5edf47f5e61c0a537368e60abd77ed3fcf39a9526543de315ef125b2 diff --git a/dev-db/sqlitestudio/files/sqlitestudio-3.1.1-qt-5.11.patch b/dev-db/sqlitestudio/files/sqlitestudio-3.1.1-qt-5.11.patch deleted file mode 100644 index 0de9f4a6115a..000000000000 --- a/dev-db/sqlitestudio/files/sqlitestudio-3.1.1-qt-5.11.patch +++ /dev/null @@ -1,21 +0,0 @@ -From 5972e777aeb7e8e127114476c031a681862f8852 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pawe=C5=82=20Salawa?= <pawelsalawa@gmail.com> -Date: Mon, 18 Jun 2018 23:12:18 +0200 -Subject: [PATCH] #3341 Fixed compilation with Qt 5.11. - ---- - SQLiteStudio3/guiSQLiteStudio/mainwindow.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/SQLiteStudio3/guiSQLiteStudio/mainwindow.cpp b/SQLiteStudio3/guiSQLiteStudio/mainwindow.cpp -index 643caa2d..4ca68bce 100644 ---- a/SQLiteStudio3/guiSQLiteStudio/mainwindow.cpp -+++ b/SQLiteStudio3/guiSQLiteStudio/mainwindow.cpp -@@ -47,6 +47,7 @@ - #include <QInputDialog> - #include <QProgressBar> - #include <QLabel> -+#include <QStyle> - - CFG_KEYS_DEFINE(MainWindow) - MainWindow* MainWindow::instance = nullptr; diff --git a/dev-db/sqlitestudio/sqlitestudio-3.1.1.ebuild b/dev-db/sqlitestudio/sqlitestudio-3.1.1.ebuild deleted file mode 100644 index 529a1a6f5e40..000000000000 --- a/dev-db/sqlitestudio/sqlitestudio-3.1.1.ebuild +++ /dev/null @@ -1,141 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PLOCALES="de es fr it pl pt_BR ru sk zh_CN" - -inherit eutils l10n qmake-utils xdg - -DESCRIPTION="Powerful cross-platform SQLite database manager" -HOMEPAGE="https://sqlitestudio.pl" -SRC_URI="https://sqlitestudio.pl/files/sqlitestudio3/complete/tar/${P}.tar.gz" - -KEYWORDS="~amd64 ~x86" -LICENSE="GPL-3" -SLOT="0" -IUSE="cli cups tcl test" - -RDEPEND=" - dev-db/sqlite:3 - dev-qt/qtcore:5 - dev-qt/qtgui:5 - dev-qt/qtnetwork:5 - dev-qt/qtscript:5 - dev-qt/qtsvg:5 - dev-qt/qtwidgets:5 - dev-qt/qtxml:5 - cli? ( sys-libs/readline:* ) - cups? ( dev-qt/qtprintsupport:5 ) - tcl? ( dev-lang/tcl:* ) -" -DEPEND="${RDEPEND} - dev-qt/designer:5 - dev-qt/qtconcurrent:5 - test? ( dev-qt/qttest:5 ) -" - -S="${WORKDIR}" -core_build_dir="${S}/output/build" -plugins_build_dir="${core_build_dir}/Plugins" - -PATCHES=( "${FILESDIR}/${P}-qt-5.11.patch" ) - -src_prepare() { - xdg_src_prepare - - sed -i -e 's/linux|portable/portable/' \ - SQLiteStudio3/sqlitestudio/sqlitestudio.pro || die - - disable_modules() { - [[ $# -lt 2 ]] && die "not enough arguments" - - local pro="$1"; shift - local modules="${@}" - - sed -r -i \ - -e 's/('${modules// /|}')[[:space:]]*(\\?)/\2/' \ - ${pro} || die - } - - use cli || disable_modules SQLiteStudio3/SQLiteStudio3.pro cli - - local mod_lst=( DbSqlite2 ) - use cups || mod_lst+=( Printing ) - use tcl || mod_lst+=( ScriptingTcl ) - disable_modules Plugins/Plugins.pro ${mod_lst[@]} - - local mylrelease="$(qt5_get_bindir)"/lrelease - local ts_dir_lst=$(find * -type f -name "*.qm" -printf '%h\n' | sort -u) - local ts_pro_lst=$(find * -type f -name "*.pro" -exec grep -l 'TRANSLATIONS' {} \;) - local ts_qrc_lst=$(find * -type f -name "*.qrc" -exec grep -l '\.qm' {} \;) - - # delete all "*.qm" - for ts_dir in ${ts_dir_lst[@]}; do - rm "${ts_dir}"/*.qm || die - done - - prepare_locale() { - for ts_dir in ${ts_dir_lst[@]}; do - local ts=$(find "${ts_dir}" -type f -name "*${1}.ts" || continue) - "${mylrelease}" "${ts}" || die "preparing ${1} locale failed" - done - } - - rm_locale() { - for ts_pro in ${ts_pro_lst[@]}; do - sed -i -r -e 's/[^[:space:]]*'${1}'\.ts//' \ - ${ts_pro} || die - done - - for ts_qrc in ${ts_qrc_lst[@]}; do - sed -i -e '/'${1}'\.qm/d' \ - ${ts_qrc} || die - done - } - - local ts_dir_main="SQLiteStudio3/sqlitestudio/translations" - l10n_find_plocales_changes ${ts_dir_main} "sqlitestudio_" '.ts' - l10n_for_each_locale_do prepare_locale - l10n_for_each_disabled_locale_do rm_locale -} - -src_configure() { - # NOTE: QMAKE_CFLAGS_ISYSTEM option prevents - # build error with tcl use enabled (stdlib.h is missing) - local myqmakeargs=( - "BINDIR=${EPREFIX}/usr/bin" - "LIBDIR=${EPREFIX}/usr/$(get_libdir)" - "QMAKE_CFLAGS_ISYSTEM=\"\"" - $(usex test 'DEFINES+=tests' '') - ) - - ## Core - mkdir -p "${core_build_dir}" && cd "${core_build_dir}" || die - eqmake5 "${myqmakeargs[@]}" "${S}/SQLiteStudio3" - - ## Plugins - mkdir -p "${plugins_build_dir}" && cd "${plugins_build_dir}" || die - eqmake5 "${myqmakeargs[@]}" "${S}/Plugins" -} - -src_compile() { - emake -C "${core_build_dir}" - emake -C "${plugins_build_dir}" -} - -src_install() { - emake -C "${core_build_dir}" INSTALL_ROOT="${D}" install - emake -C "${plugins_build_dir}" INSTALL_ROOT="${D}" install - - doicon -s scalable "SQLiteStudio3/guiSQLiteStudio/img/${PN}.svg" - - local make_desktop_entry_args=( - "${PN} -- %F" - 'SQLiteStudio3' - "${PN}" - 'Development;Database;Utility' - ) - make_desktop_entry "${make_desktop_entry_args[@]}" \ - "$( printf '%s\n' "MimeType=application/x-sqlite3;" )" -} |