diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-11-23 03:02:57 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-11-23 03:02:57 +0000 |
commit | 71dd9d29cdaf7cc0ecdb9ea37d128726a941c630 (patch) | |
tree | 4eccd905f575579fe47abb8a83bbdb44ceb8c929 /dev-db | |
parent | c7a7ec40cf928d8fc6a8241aa208272c008c7b4d (diff) |
gentoo auto-resync : 23:11:2024 - 03:02:56
Diffstat (limited to 'dev-db')
-rw-r--r-- | dev-db/Manifest.gz | bin | 16589 -> 16584 bytes | |||
-rw-r--r-- | dev-db/firebird/Manifest | 6 | ||||
-rw-r--r-- | dev-db/firebird/files/firebird-3.0.2.32703.0-cloop-compiler.patch | 15 | ||||
-rw-r--r-- | dev-db/firebird/files/firebird-3.0.2.32703.0-unbundle.patch | 51 | ||||
-rw-r--r-- | dev-db/firebird/files/firebird.init.d.3.0 | 22 | ||||
-rw-r--r-- | dev-db/firebird/firebird-3.0.4.33054.0-r3.ebuild | 232 | ||||
-rw-r--r-- | dev-db/postgresql/Manifest | 12 | ||||
-rw-r--r-- | dev-db/postgresql/postgresql-12.22.ebuild | 445 | ||||
-rw-r--r-- | dev-db/postgresql/postgresql-13.18.ebuild | 457 | ||||
-rw-r--r-- | dev-db/postgresql/postgresql-14.15.ebuild | 457 | ||||
-rw-r--r-- | dev-db/postgresql/postgresql-15.10.ebuild | 459 | ||||
-rw-r--r-- | dev-db/postgresql/postgresql-16.6.ebuild | 460 | ||||
-rw-r--r-- | dev-db/postgresql/postgresql-17.2.ebuild | 477 | ||||
-rw-r--r-- | dev-db/sqlite/Manifest | 1 | ||||
-rw-r--r-- | dev-db/sqlite/files/sqlite-3.45.2-tests-x86.patch | 112 |
15 files changed, 2767 insertions, 439 deletions
diff --git a/dev-db/Manifest.gz b/dev-db/Manifest.gz Binary files differindex 6bfb001cb215..3e333a91b18c 100644 --- a/dev-db/Manifest.gz +++ b/dev-db/Manifest.gz diff --git a/dev-db/firebird/Manifest b/dev-db/firebird/Manifest index 8066097c629e..2be9719fc4d8 100644 --- a/dev-db/firebird/Manifest +++ b/dev-db/firebird/Manifest @@ -2,14 +2,10 @@ AUX firebird-3.0.10.33601.0-configure-autoconf2.72.patch 800 BLAKE2B 4248d574587 AUX firebird-3.0.10.33601.0-configure-clang16.patch 1726 BLAKE2B 58f7a9aaf90ecebf4fac09f9c6a8d080267cd2d5da51b9d8cdeb75ef8ef9b546b1fb989d762b91f8c9aaa86a2d1a634cbdd84c24f639416bb94ebc8358177f02 SHA512 c52a01e889422cff983c273bfc5ea19da227e77c62946aa654ce8ec8ef617cfb3d7a26b23820d1ba6dc5936e962563416f91e6f371ef1fe923740ab07ab3060c AUX firebird-3.0.10.33601.0-flags.patch 1233 BLAKE2B bd669967c2fc04cd62d0dcf8a487e9a7e31a36e177bd8dd4ee48ba8fcb29c88bdbfb4e2e34daa0c4b8fd353fada25d35e42e03802db1a2fe5d6efca3e1bd4075 SHA512 89aaf417e933887ba95dab85001d3e1438308da053018d8c34592c77a2a84b849b50129eb1b5c8aaf156470a70a34197a495033a960ff0578fb8cd8ac6f17606 AUX firebird-3.0.10.33601.0-unbundle.patch 3361 BLAKE2B 8ec60391e1bc72c40a9f6c87e88c26a6d512941cf907a8541d4422e561e276b38e6f4e8096de389d1be2846872218125830564d8d5a5dc798a2ec68dd0c31fa7 SHA512 bf424f10266ac6e67a56316b216266c760d4e3df617ec44b8f0f308425fc1d337496f06790b7afed4a9f29f0108b0ea332ffbfd10f7b812f0b7d098d43b4e128 -AUX firebird-3.0.2.32703.0-cloop-compiler.patch 349 BLAKE2B 6906993819f5aa68c39522d82bb7fb57b910f8f311d173a326147a98e983d8cd95ca90dbb538a5caa696ce4337305ece744306bf88f608cc8639bdda198e4576 SHA512 1d57f26ada2023d8bd04d73dd0f55951cef6b373710c8cf73b6bea0b4d54f879d689644d26541b2366bd1071b08eda2e1b531f3779a88b8fb52d3c9312f0c091 -AUX firebird-3.0.2.32703.0-unbundle.patch 1786 BLAKE2B 660af04975ecfdac0ae12a1ee89e0a4d97d321ac7de7e17ba53484a909962584828c18d1f119ecc1af63c1cb2b93f451b847c9363a25831630a807b89ad13bc8 SHA512 bb0f8cb283ee230f9128a9da16da21933a1709615b34bbfac117a0563e2451a07381b52ffc1fed665e74688ff8e2c2548f86c1413427665914cb3df8500543c5 -AUX firebird.init.d.3.0 642 BLAKE2B 70f9b07a69c01e391ea8b1f1747a35eb303ff43a4923d65f76064257bfe5178601fa0b06dbf332b6a3529df30ddbe3e3c58e170ca33acfeb06a32474f1806938 SHA512 0805311d7e4ceb9cd5266be88fe61fb7d2d7cf5bf3c9482841c6431767cba9960d4f38418629519b23cdf64893173ebd01641056123ddc7f24c1f1bbf969812b AUX firebird.init.d.3.0-r1 637 BLAKE2B 18d947e20229f217ba0fb2d1df2cab8241c1f7e48087c0673cd02c43f3653b3d68fcc99359dffd1c5c6dffec0c0f50ca7ea16eb1042ca4a1fd0deb386c0847b9 SHA512 91393e1dd2a543a0382502897bed38f1d77f20c291e76bf6c27d77bf9e820cae714c6643b7f464d1e3b3294c4fee49e818c8cf57601bdf72221fcf63105fa50a AUX firebird.logrotate 178 BLAKE2B 3ec7db249080dc42ad063d3288d24c0c2c3a1172a48099a7a65d34249b8509ee482bcad964700cc57ed4749715b12ba756440888b81312f3d5695f99fee606fc SHA512 82ce8d2cdb2907f4e2e12cac520ec379a6e748ea4f5cb4c1c88167349a3d653bfaf58ceeaf1ce4acd65bdc8ad49eb0601c7c77527847e1a134cddc397355d98a AUX firebird.xinetd.3.0 193 BLAKE2B 34017b978344bc2b05cfe7b92eafd56ba20dd78d1fa21dfb5455d7972325cedae9a6ac25b4fa491899b19cb3bbe2949b8ca78626467100661767f6c944b01c20 SHA512 e02c011b55c1d6823b051d14dbfabef6d034db32ee8046adc796fdf393c837b995c270e0efdcb97950f6fead82cd73773099a247dc29961b0e8f6c4f6c0723ae DIST Firebird-3.0.10.33601-0.tar.bz2 13270269 BLAKE2B 1c30b002525287b239a6e24e59f146fdb61e1a9880cf66f2c59605b9f2a28c42603e21b2c5275e03a319af24c18f8fa5a7fa73f34c9a0d6c19e36e69864ad122 SHA512 0297a191ea1d0eda9557519d8ce6b7686cc3698a98b9c6c00547c2d36bf098083ae9d34b61614a7232b6195344bea1d66d2cbd3b092844b11f5b139162f8f886 -DIST Firebird-3.0.4.33054-0.tar.bz2 9778106 BLAKE2B 4b9116cbc351e0c2e10d15e6ea8e9754a383da77d8e016337604143eb2677ff2519da34b1a5c2e9b7b071fa9774eddbb535e9f926058ee626573b0411f6c042d SHA512 a346ebd53aeccf0b33eac5d35c3c3356624c1fbd0ad897173b3f68d940143062b28460a2822df807e8e8a1ea8792ebf98ed33e5b3ae273d86e6e36295a7fc8ad DIST firebird-3-quickstartguide.pdf 392796 BLAKE2B ef867664d107a9ee6dba3d724a5696fafe07a84305f1827dbeb5acf33d54aada45fad4e37971419fc7c26dba9b99577844a33c6e566485059329a8717fa79c1d SHA512 480ed2e79f83741c5b0b268f07e1ac1e317fbd9572a6e646411dc7fb94e5f44187e90d50b6ce761fc5e562e5ad2abafe89b2766e651eb7a36dbcb9ed49c3289f DIST firebird-30-developers-guide.pdf 1747057 BLAKE2B 9bde38dd5e997fec7fe69ada2ab1d74b0d59c440dd7a67d49e87a9464d7955f3766dde63aa60caf3e320759c934ec9f4088deed06cfae1b98e4d7ae6de364f02 SHA512 6a2a5ba1334e4a45839a950dd7b9c0a136b71a7626212b8aad5d173e8afd9a89c20ae51bdc5d309ebc206e0ac5af79138c28a10c64585d6f51c497e784445760 DIST firebird-30-language-reference.pdf 3130464 BLAKE2B 975550c77e1b9cfcd53eef023781f1a1bc2282b7ba7bcedd57027399cbd44ad06c35d3f58bdcb2bdb953abe8ab948149ea9c284bc37eb35770dd57369f6838cd SHA512 9f17737733e2dd6e3a3f367c97c7053508621bc97b37b16ba36e6fe3554bf60363e3c06bf55ac6703d65e66039da7c16b71b70187c45b2206f6191c543cc1e95 @@ -24,8 +20,6 @@ DIST firebird-isql.pdf 369327 BLAKE2B 3ea02b7a7b97bf231d43906f2fc8feb79aba525f1c DIST firebird-metadata-security.pdf 117765 BLAKE2B 67075db42cca196f019eef15fd2474be6d92353f0697b134ee5d3bb1e4cc6cd5c38cd978236f289d6c9cc300d9ebc5ee856ad871f1bd1816b7d92d46ee0cffe3 SHA512 8f24ff48ff177fdd98dfc1272f43de979fc405139475bd630a8f1c10feaf773425c85704194b8245235c2c61c0f7ebaf9d0d1741b68323146630a1361ed478a4 DIST firebird-nbackup.pdf 202108 BLAKE2B 5ee794890f69935ec238d946649d05a72c3108674781af546e279e3d6cbbb82bbf81789270ad284a365f05cc6fdbca108baf86c5cb4eeacd242960e12e54d6b2 SHA512 c8e83a8e2bf23f3bcb17277b07eb822d1ae2ed412d6d1881f60c7c3003f60f1b6fe09e5dd52367c62a9311f9a7057fe4c85dd0c64a93554556f31cefc45e18c1 DIST firebird-null-guide.pdf 487359 BLAKE2B 346d942b7d4780496c2c212433660415437f6b17a42bb109aaf1cd8a8de31a394a1d2a3b52bb6dc1c3830bc839a692b611c7fe3289243e86ab874a84d989a7b8 SHA512 b5b9981a3f15fe933a44deb001d1d85b0dc340ae0ff55e79d160da8590406515f0ba73360a3904556aa36d94cdafb17fe2452b5f63138cb1f585d70842511cd3 -DIST ib_b60_doc.zip 10530848 BLAKE2B b4008b3e8b0416014d024cbbc9ac2e648ad671c71b91b7aeb0eedf0f8479aef80e22aff7105c5e7417e88bcf57f2cdacbc2d5f51a2ef7fb870f9d361c5f0ed6d SHA512 59eccf1d6b1f0410eddbc5967fd77a3d00e09749640b3f81e2f8b624f5a45461dffad4af5ec61488e941fb3d3af266fe86c0b56e6b7e023239537cb6557a145a DIST using-firebird.pdf 236646 BLAKE2B 54b296ac8c6281ff501678a24dac76e203a66e569b1cda7dc475a7fe9bbed9fc03923377c320a621a225d0277fc68cfb9820514d3f12191902cdeb18ccb87270 SHA512 ec16c33082524aa5df8907c1143a8707f1193c42882956c220e6c95442d43751ec3e2ba77ded004866f7dab7f58ecf4fac3a0027cf89ec7536c0771260f09cc4 EBUILD firebird-3.0.10.33601.0-r2.ebuild 7583 BLAKE2B 02034a69e21c20f544fd9c4382ce510b6100c9bc7441a9a3d4304bbcdafaab5ed0819ac09313bbbfcb9c8bd2e7e2adc089a8646dd9609008631749dc00e6104e SHA512 6f2d64570889c30039f8e66be20283406d98603b5b742a2acf98dbcb173b048c387c1b16dfdf82819f7d13c9f0c7b3906bef121fa77fd06cbe3fdd718a269bac -EBUILD firebird-3.0.4.33054.0-r3.ebuild 6110 BLAKE2B ab478e5c0d594e636315bc767969d3c7fc528b80e0620bac543a9fc35c2027cadbb2537686d83d3f8fc22d1a6ef3751b2676462a25319cff21f1670471c5f6df SHA512 07a1b3c480218bcafdad9c64cd3e42eb61279132f8bef1cd63890acd95f326eb9a5ce5096c5b903a5f82d7f829b1c50c2d5a5a513d03495f6e20e8cd6796f0b7 MISC metadata.xml 898 BLAKE2B 0233f529337d00c8f0682983bf17e684ecabf35e0def11b284043d3df03d330ac3dfac04ebe613dca6de39628fcbd9f93783cfa537a3fb2943db66ac893cebd9 SHA512 427aa3c158e914471cb3d71058e3a067afce5bb4313fed1ea22f6777443d73dcc88f52c6526aafd69b6f0f8137a340f42676a85c6351c025c45dd91558715070 diff --git a/dev-db/firebird/files/firebird-3.0.2.32703.0-cloop-compiler.patch b/dev-db/firebird/files/firebird-3.0.2.32703.0-cloop-compiler.patch deleted file mode 100644 index 363602bed8f4..000000000000 --- a/dev-db/firebird/files/firebird-3.0.2.32703.0-cloop-compiler.patch +++ /dev/null @@ -1,15 +0,0 @@ -Source: LibreOffice git master - - -diff -ur firebird.org/extern/cloop/Makefile firebird/extern/cloop/Makefile ---- firebird.org/extern/cloop/Makefile 2016-08-17 18:32:59.078044357 +0200 -+++ firebird/extern/cloop/Makefile 2016-08-17 18:33:14.430518561 +0200 -@@ -4,8 +4,6 @@ - - TARGET := release - --CC := gcc --CXX := g++ - LD := $(CXX) - - SRC_DIR := src diff --git a/dev-db/firebird/files/firebird-3.0.2.32703.0-unbundle.patch b/dev-db/firebird/files/firebird-3.0.2.32703.0-unbundle.patch deleted file mode 100644 index 6fdd657223d4..000000000000 --- a/dev-db/firebird/files/firebird-3.0.2.32703.0-unbundle.patch +++ /dev/null @@ -1,51 +0,0 @@ -diff -ruN Firebird-3.0.2.32703-0.orig/builds/posix/Makefile.in Firebird-3.0.2.32703-0/builds/posix/Makefile.in ---- Firebird-3.0.2.32703-0.orig/builds/posix/Makefile.in 2017-03-21 10:11:35.000000000 +0100 -+++ Firebird-3.0.2.32703-0/builds/posix/Makefile.in 2017-05-14 01:32:34.032241679 +0200 -@@ -123,7 +123,6 @@ - # - - extern: -- $(MAKE) -C $(ROOT)/extern/btyacc - $(MAKE) -C $(ROOT)/extern/cloop TARGET=release WITH_FPC=0 BUILD_DIR=$(TMP_ROOT)/cloop OUT_DIR=$(GEN_ROOT)/$(TARGET)/cloop - - ifeq ($(TOMBUILD_FLG),Y) -@@ -648,7 +647,7 @@ - # various cleaning - # - .PHONY: clean clean_objects clean_dependancies clean_extern_objects clean_build \ -- clean_gpre_gen clean_icu clean_dbs clean_examples clean_makefiles \ -+ clean_gpre_gen clean_dbs clean_examples clean_makefiles \ - clean_editline clean_all - - -@@ -669,8 +668,6 @@ - $(RM) $(ROOT)/libtool - $(RM_R) $(ROOT)/autom4te.cache - -$(MAKE) -C $(ROOT)/extern/editline distclean --# -$(MAKE) -C $(ROOT)/extern/icu/source distclean -- -$(MAKE) -C $(ROOT)/extern/btyacc distclean - - clean_dbs: - $(RM) *.fdb *.FDB msg.timestamp -@@ -687,9 +684,6 @@ - clean_editline: - -$(MAKE) -C $(ROOT)/extern/editline clean - --#clean_icu: --# -$(MAKE) -C $(ROOT)/extern/icu/source clean -- - clean_tommath: - -$(MAKE) -C $(ROOT)/extern/libtommath clean - -diff -ruN Firebird-3.0.2.32703-0.orig/builds/posix/make.defaults Firebird-3.0.2.32703-0/builds/posix/make.defaults ---- Firebird-3.0.2.32703-0.orig/builds/posix/make.defaults 2017-03-21 10:11:35.000000000 +0100 -+++ Firebird-3.0.2.32703-0/builds/posix/make.defaults 2017-05-14 01:29:54.590235045 +0200 -@@ -155,7 +155,7 @@ - AR= ar @AR_OPTIONS@ - LN= @LN_S@ - RANLIB= @RANLIB@ --BTYACC=$(ROOT)/extern/btyacc/btyacc -+BTYACC=/usr/bin/btyacc - CLOOP=$(GEN_ROOT)/$(TARGET)/cloop/release/bin/cloop - - CC = @CC@ diff --git a/dev-db/firebird/files/firebird.init.d.3.0 b/dev-db/firebird/files/firebird.init.d.3.0 deleted file mode 100644 index 9fd4f8504769..000000000000 --- a/dev-db/firebird/files/firebird.init.d.3.0 +++ /dev/null @@ -1,22 +0,0 @@ -#!/sbin/openrc-run -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License, v2 or later - -name=${RC_SVCNAME} - -fbhomedir="/var/run/firebird" -fblogdir="/var/log/firebird" -pidfile="${fbhomedir}/firebird.pid" -command="/usr/sbin/fbguard" -command_args="-forever -daemon -pidfile $pidfile" - -start_stop_daemon_args="-p ${pidfile} -u ${FBUSER:-firebird}:${FBGROUP:-firebird}" - -depend() { - need net -} - -start_pre() { - checkpath -q -d -m 0770 -o ${FBUSER:-firebird}:${FBGROUP:-firebird} ${fbhomedir} || return 1 - checkpath -q -d -m 0770 -o ${FBUSER:-firebird}:${FBGROUP:-firebird} ${fblogdir} || return 1 -} diff --git a/dev-db/firebird/firebird-3.0.4.33054.0-r3.ebuild b/dev-db/firebird/firebird-3.0.4.33054.0-r3.ebuild deleted file mode 100644 index 6f2ba7ca3b89..000000000000 --- a/dev-db/firebird/firebird-3.0.4.33054.0-r3.ebuild +++ /dev/null @@ -1,232 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -MY_P=${PN/f/F}-$(ver_rs 4 '-') -inherit autotools flag-o-matic - -DESCRIPTION="Relational database offering many ANSI SQL:2003 and some SQL:2008 features" -HOMEPAGE="https://www.firebirdsql.org/" -SRC_URI=" - https://github.com/FirebirdSQL/firebird/releases/download/R$(ver_rs 1-3 '_' $(ver_cut 1-3))/${MY_P}.tar.bz2 - doc? ( ftp://ftpc.inprise.com/pub/interbase/techpubs/ib_b60_doc.zip ) -" -S="${WORKDIR}/${MY_P}" - -LICENSE="IDPL Interbase-1.0" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="doc examples +server xinetd" - -BDEPEND=" - >=dev-util/btyacc-3.0-r2 - doc? ( app-arch/unzip ) -" -# FIXME: cloop? -DEPEND=" - dev-libs/icu:= - dev-libs/libedit - dev-libs/libtommath -" -RDEPEND=" - ${DEPEND} - acct-group/firebird - acct-user/firebird - xinetd? ( virtual/inetd ) - !sys-cluster/ganglia -" - -PATCHES=( - "${FILESDIR}"/${PN}-3.0.2.32703.0-unbundle.patch - "${FILESDIR}"/${PN}-3.0.2.32703.0-cloop-compiler.patch -) - -pkg_pretend() { - if [[ -e /var/run/${PN}/${PN}.pid ]] ; then - ewarn - ewarn "The presence of server connections may prevent isql or gsec" - ewarn "from establishing an embedded connection. Accordingly," - ewarn "creating employee.fdb or security3.fdb could fail." - ewarn "It is more secure to stop the firebird daemon before running emerge." - ewarn - fi -} - -check_sed() { - MSG="sed of $3, required $2 line(s) modified $1" - einfo "${MSG}" - [[ $1 -ge $2 ]] || die "${MSG}" -} - -src_unpack() { - unpack "${MY_P}.tar.bz2" - if use doc; then - # Unpack docs - mkdir "manuals" || die - cd "manuals" || die - unpack ib_b60_doc.zip - fi -} - -src_prepare() { - default - - # Rename references to isql to fbsql - # sed vs patch for portability and addtional location changes - check_sed "$(sed -i -e 's:"isql :"fbsql :w /dev/stdout' \ - src/isql/isql.epp | wc -l)" "1" "src/isql/isql.epp" # 1 line - check_sed "$(sed -i -e 's:isql :fbsql :w /dev/stdout' \ - src/msgs/history2.sql | wc -l)" "4" "src/msgs/history2.sql" # 4 lines - check_sed "$(sed -i -e 's:--- ISQL:--- FBSQL:w /dev/stdout' \ - -e 's:isql :fbsql :w /dev/stdout' \ - -e 's:ISQL :FBSQL :w /dev/stdout' \ - src/msgs/messages2.sql | wc -l)" "6" "src/msgs/messages2.sql" # 6 lines - - find . -name \*.sh -exec chmod +x {} + || die - rm -r extern/{btyacc,editline,icu} || die - - eautoreconf -} - -src_configure() { - filter-flags -fprefetch-loop-arrays - filter-mfpmath sse - - # bug #917662, bug #924659 - filter-lto - append-flags -fno-strict-aliasing $(test-flags-CXX -fno-lifetime-dse) - - # otherwise this doesnt build with gcc-6 - # http://tracker.firebirdsql.org/browse/CORE-5099 - append-cflags -fno-sized-deallocation -fno-delete-null-pointer-checks - append-cxxflags -fno-sized-deallocation -fno-delete-null-pointer-checks -std=c++11 - - local myeconfargs=( - --prefix=/usr/$(get_libdir)/firebird - --with-editline - --with-system-editline - --with-fbbin=/usr/bin - --with-fbsbin=/usr/sbin - --with-fbconf=/etc/${PN} - --with-fblib=/usr/$(get_libdir) - --with-fbinclude=/usr/include - --with-fbdoc=/usr/share/doc/${PF} - --with-fbudf=/usr/$(get_libdir)/${PN}/UDF - --with-fbsample=/usr/share/doc/${PF}/examples - --with-fbsample-db=/usr/share/doc/${PF}/examples/db - --with-fbhelp=/usr/$(get_libdir)/${PN}/help - --with-fbintl=/usr/$(get_libdir)/${PN}/intl - --with-fbmisc=/usr/share/${PN} - --with-fbsecure-db=/etc/${PN} - --with-fbmsg=/usr/$(get_libdir)/${PN} - --with-fblog=/var/log/${PN}/ - --with-fbglock=/var/run/${PN} - --with-fbplugins=/usr/$(get_libdir)/${PN}/plugins - --with-gnu-ld - ) - econf "${myeconfargs[@]}" -} - -# from linux underground, merging into this here -src_install() { - if use doc; then - dodoc -r doc - find "${WORKDIR}"/manuals -type f -iname "*.pdf" -exec dodoc '{}' + || die - fi - - cd "${S}/gen/Release/${PN}" || die - - doheader include/* - dolib.so lib/*.so* - - # links for backwards compatibility - insinto /usr/$(get_libdir) - dosym libfbclient.so /usr/$(get_libdir)/libgds.so - dosym libfbclient.so /usr/$(get_libdir)/libgds.so.0 - dosym libfbclient.so /usr/$(get_libdir)/libfbclient.so.1 - - insinto /usr/share/${PN}/msg - doins *.msg - - use server || return - - einfo "Renaming isql -> fbsql" - mv bin/isql bin/fbsql || die "failed to rename isql -> fbsql" - - dobin bin/{fb_config,fbsql,fbsvcmgr,fbtracemgr,gbak,gfix,gpre,gsec,gsplit,gstat,nbackup,qli} - dosbin bin/{firebird,fbguard,fb_lock_print} - - insinto /usr/share/${PN}/help - # why??? - insopts -m0660 -o firebird -g firebird - doins help/help.fdb - - exeinto /usr/$(get_libdir)/${PN}/intl - doexe intl/libfbintl.so - dosym libfbintl.so /usr/$(get_libdir)/${PN}/intl/fbintl.so - - insinto /usr/$(get_libdir)/${PN}/intl - insopts -m0644 -o root -g root - doins intl/fbintl.conf - - # plugins - exeinto /usr/$(get_libdir)/${PN}/plugins - doexe plugins/*.so - exeinto /usr/$(get_libdir)/${PN}/plugins/udr - doexe plugins/udr/*.so - - exeinto /usr/$(get_libdir)/${PN}/UDF - doexe UDF/*.so - - # logging (do we really need the perms?) - diropts -m 755 -o firebird -g firebird - dodir /var/log/${PN} - keepdir /var/log/${PN} - - # logrotate - insinto /etc/logrotate.d - newins "${FILESDIR}/${PN}.logrotate" ${PN} - - # configuration files - insinto /etc/${PN}/plugins - doins plugins/udr_engine.conf - insinto /etc/${PN} - doins {databases,fbtrace,firebird,plugins}.conf - - # install secutity3.fdb - insopts -m0660 -o firebird -g firebird - doins security3.fdb - - if use xinetd; then - insinto /etc/xinetd.d - newins "${FILESDIR}/${PN}.xinetd.3.0" ${PN} - else - newinitd "${FILESDIR}/${PN}.init.d.3.0" ${PN} - fi - - if use examples; then - cd examples || die - insinto /usr/share/${PN}/examples - insopts -m0644 -o root -g root - doins -r api - doins -r dbcrypt - doins -r include - doins -r interfaces - doins -r package - doins -r stat - doins -r udf - doins -r udr - doins CMakeLists.txt - doins functions.c - doins README - insinto /usr/share/${PN}/examples/empbuild - insopts -m0660 -o firebird -g firebird - doins empbuild/employee.fdb - fi - - elog "Starting with version 3, server mode is set in firebird.conf" - elog "The default setting is superserver." - elog - elog "If you're using UDFs, please remember to move them to /usr/$(get_libdir)/firebird/UDF" -} diff --git a/dev-db/postgresql/Manifest b/dev-db/postgresql/Manifest index 41645ff18c1c..4f20dabcaa9a 100644 --- a/dev-db/postgresql/Manifest +++ b/dev-db/postgresql/Manifest @@ -10,16 +10,28 @@ AUX postgresql.init-9.3-r1 4999 BLAKE2B f2bc23a51b6d9643bbc14320aaa9c41b7eb1df86 AUX postgresql.service-9.6-r1 1477 BLAKE2B 2a652d5b2892f3a52f484fcc0b4f4dad09cf4b46c3739c3f805072040a26128cb2ad9a25d4a7c9f109a95696d739538d379af6bac53c656f5c41af45b6110de5 SHA512 9e2b04923f6ebec1424c0f276c58a6a0c4933f2de5e2a9776169227729afd06ce5284461be8b6ed70e5aaff2a68b9f96c6893d867d35761c9977f9847ccfe93d AUX postgresql.tmpfiles 39 BLAKE2B 25a5725af53c8e4e4009887e998172dd863ce218a5438351194548c4fc8ea15308dfba3602d5a922cf49b46015198268a4a4528119d8a74dcef4cc4c1767c052 SHA512 498060f2a597cf374f4fb31deaa2d6c5b00edef68efc0e71b82bfc20b717ae12518ba18fcb455a0c518ebba1a0868f38321470616151d02fa79b889a66dcb9f8 DIST postgresql-12.21.tar.bz2 21298608 BLAKE2B f6db7285dbd126755d76d47b8af0657c65bed18ed02287cae4c4f1a9c5630cb8dff33c82b5fd7f400d5321a0a398d560764ba4c3994fc7986ef30ad883b7ca7c SHA512 18bf689fb33db2d1f18035edf36ce475da5677ace663462f9f895312ed83715787f3fb5b7f12686dd2d7b6debc95348e4477c4a44b9cebe7ac5b98de0eb13656 +DIST postgresql-12.22.tar.bz2 21305304 BLAKE2B 136ac89a0f66bdc35b36e8acd7bc9264fab445ac0728e8d4d69903684810b392e1d3fd39f426b31cdceaa953a5de4f63ffe33c86b6643d5ffde12e32c9ecd4be SHA512 45e659e1c2efdaefb1cb467f936f5bdee6d08087089818bc315bbc39978307619d36e8613f65755c96949dbf6079e3efa8cf367e751d1f157d3e3650c3b4a3a8 DIST postgresql-13.17.tar.bz2 21681613 BLAKE2B 027ccfedcf4b32dc1f21ee1668c957f2e43db2299309520a4451a3a59244a8cde4d5a787d26238269be057dbc8ad27b650f307d184f614cf54f5f727d2628957 SHA512 7a9ad8a32b4b156b510d98f6f89dcc4e8e6091281523ee4a4f0ca2cdaf9aba9b3ebffca3572a1ed45d551a4f552b874de389b246a17174c04a3abc5fd1bb2b7c +DIST postgresql-13.18.tar.bz2 21687645 BLAKE2B dd8c5906f7d53b5447e8c307960a5ff7cf25cec711a508acf80609e12f9411c9382753da313e31a546be528ff8263327befadcb5f8a40c3164a56f582710bc43 SHA512 2694ff9402683c90ccfbb53a465f6b6a09702b9b5b44e2db84a3a41175427d889d1b823897fd361b04a53dd3596289822e36a77215cb45dd972d79850fbdb97b DIST postgresql-14.14.tar.bz2 22451431 BLAKE2B cb15c251f613aa617930f787ae83baf2fa5d931ffe01177e2c038c19a2aa439ad04336d4e202f8c19f339fc875e6402d88cd9833d4d03e16f801e536c130cc43 SHA512 993f369fb405d6cf5b5ebc57a970cdc7a6fa08a9324924a5c5e59b3518f13c73362659bfe579e6d0264d1edac540245d876bcc41a7d4bd31559ce202cfa1cdc3 +DIST postgresql-14.15.tar.bz2 22458243 BLAKE2B 4d5a1c253c5b015e68634ebe433dee421c5a1e1bac0cc5be2eb178001755656efd9642be2369d8b7a76fcbd4a127f40dd99d3c4624c137fca531558464df1a5d SHA512 227f9551167ee62e5185d6f6777e100ecc09f497b9ee1b5a8e659de8d4c237b0f9a97005706bbf64c3e839271e2630f6a417ba98dfce47bcb4c27e8641a7c6ef +DIST postgresql-15.10.tar.bz2 23138615 BLAKE2B d187afd9897feb8bb353dee705817781f099e7cc41eb915f096196ad228646fc65d706c488258d5ee9033b20d2204fd11f5e92e33387310394e7cc102f02b72e SHA512 73513f5f688f470aadd95dddef3b39b5d140d539bdf3171e053a89b3eed4c769f7951280468e9f11102f2de9fe8742bb38676c8d5d43418544b9482d83957ef4 DIST postgresql-15.9.tar.bz2 23135232 BLAKE2B ebb0b6bb3dde72ac9c173bab1cd62e92cfedb8ccd698e868774499f6e90d071aad57e02611bf717905205c27fb967252d55ef7908595106e66d5289eb84932ac SHA512 eb8e85e136e5e3f2e9da1fffce06ffda3fdd2001d46153e1a7e02983bd1fcb29a92bec3cbf1fec48a4505b68a9360d24acf45e96a3ce94272833ba45096e8a1b DIST postgresql-16.5.tar.bz2 24854528 BLAKE2B c1a7fb0f46889358bf700ef0ba3e776032433388933293f6582ad9777c30e0912810ad7eefa9fa31068d974156bc623b746061cf9ce9216bee0158a84c9f3a0f SHA512 aec47744284c5a593f4223de26187dd4b00e27a8a8948c6b7d24ca522eb6b4d0098ec956e80f37d5a3a841d18e45e4a21e7323e33af91eff24e1b2c59577bef1 +DIST postgresql-16.6.tar.bz2 24856956 BLAKE2B 2d6d6efcc4cb0027c03422c839856ac024d3824a7e7da42cafbb961616cdd078064e78b6eb1c98565240ab1f78eb52582f38c9ce80b3a98f9e65568b2c14e40c SHA512 ffd6d39fb7aed87241237d68af4934fba1b4ac1be4d3c2833e308e50c21a693796fe54b73e0905365d7557009c40049a23b966aa86765b969797434a0d4bd5f8 DIST postgresql-17.1.tar.bz2 21410991 BLAKE2B 324e64ed2243c70ba6046b4f495cb510943b63b2c5efb52fabc7a3f4101285ad068057a561a5bb64ded7be69bfc10e1d4df7d66d1a589132d14424974ab82f94 SHA512 41bd56ea5d2c3d41bd273894a056bd10244b33186746b63918f03671ba548551e02694f8215f09c6408c4dd6bb6ba0e87dec612560e8a267f5c5734b177e70a0 +DIST postgresql-17.2.tar.bz2 21408880 BLAKE2B 1afafbec5db26ab17f2410c40db38e30fc1413cd518d387bc01640232698407de97123d0c61e1ec4d32d1041055db874f04dd52ad3697f1b9993b1aff3c5156a SHA512 8e15e47c22d21e1cadc31249cf31af5abe34b8ab72930e58e5fe6124795ad237ca7b4fd3bf36b5f18589c4fc439dc2bab3045d9b4ba23d1846b4b2be6fd1cb69 EBUILD postgresql-12.21.ebuild 13080 BLAKE2B 79b0a9391a2c88936a812002bf414f062e0fd2997943503f8d62897173cb6b72216b3f72e531a13f6a1b0bbd6ab2e41273fc7735aad499e41765ea7f1201d205 SHA512 d50cc91e99fffcf7538c5a5c27890f135f7cd09ff126cab2e202ccc3b981c454da36316ba0bd43b6d5a9505484708d6f3101b5bc373f164d25595392e65afacf +EBUILD postgresql-12.22.ebuild 13082 BLAKE2B faf4a4e25971506b957f43d1f85e2cb17c39e58741fc92339ebab13e2b6ec9cd6d416e8f537103829e854d916c0242aedf3ce214931a837a45950f3377dddb91 SHA512 c6f575096f9866dc14f168063e8d3f9695583275866e01c7a2732c9835617617a065aadcbd617bbeda352a5167de75f629d6a1979ba1919d2d7b62f8b93fd216 EBUILD postgresql-13.17.ebuild 13514 BLAKE2B be97706c3cb029252e9392b1af7e604399e675cf9b3f4cda4f1835ce68bc7160628ea107b96dd21d827fa34bc049b569be0b1eb2cb561ed557106bb05198481d SHA512 04d70b63750c9c6c34a33716c868ded77540b92b5928418d773b1d00deda9ee97815308ac9bf640452349219880c9d44ec4e84abb36d1878bda4f3542b10db82 +EBUILD postgresql-13.18.ebuild 13516 BLAKE2B c327d69e884d01c4c0f9f45f09e7c12820682e975717bb9d9746faede025895acf5bd4594458905a4c3b12327f0627ba237989fd1a298b8bf3d6df3f1af20576 SHA512 c3ca3be9ffcdf6acff79f34ce32efa33372d7914bba957e940b1432091da0fb00de3085daa1bc716827490fa95552126ff768c66c54ce89c20b3288919ddf8a2 EBUILD postgresql-14.14.ebuild 13505 BLAKE2B ee4a27cb8a05b11c5ed6d842886ccd523891b445b39156a4d48ab9349ff24cea2bd6489709eb8717149ed5284e2a1090cea7305dc788976182d77d4450861228 SHA512 4568e633f0d4a8b2e121b8b2bf546c23c397765dd3e0eee26ee43e16404574dab5374429ec0e19f0bbd0a611d0c1bb17075d8565667736e87124b48b87c0e8e6 +EBUILD postgresql-14.15.ebuild 13507 BLAKE2B ec18b7868e5ac20e4438bcf0c436bc5b4792da4a9c0f94da9186a0824aa0d5db3ad1d3366b40efcc87b6fe625f9a309224c61f94f29a54b306291116e0a0e234 SHA512 382491888d51c168bd5b830c0ba886194a55a6752a5fc0443ee41cd2b6ccb4d127aebd6cb6875d42600efd01354014e73493ff276e11bcaeff1c8e1477010742 +EBUILD postgresql-15.10.ebuild 13569 BLAKE2B 9a87dde4547b1c1f2937b86194fcf094a07f2424c98829d1e3e122462177427b722ea90b094e02753d10ca66497f1cbf8025f28ad08435f1d7d950268f0137bc SHA512 d0bd053df6e76d020d74e4ea8847a27492c74f7221fd228260f7afbda10765bd3cda10944e560b050a4791d55769002b5100461febe5dff5feaf203c918ef201 EBUILD postgresql-15.9.ebuild 13567 BLAKE2B 1ba99b4e226773e1b1eff53d06111d7e40d2fa6b7c5968e16f580b50f11c5732a086b38b93aebc169400821d1062041515931ea7ce78b48f860953b227bd0970 SHA512 2573684df847cdde89ea43362d7e8e30b3662261ef91674430e92dffd8136e73dbf67e70844661e8612ca6c460c4a5938b43962562dc88d7f3dd5658118fef38 EBUILD postgresql-16.5.ebuild 13577 BLAKE2B 3df7cc1a7a126871a080ecb9af0003c52bd243edcd3a4e0be401fd1c261802f4841a3ba32034fadad8b19e1fd3698f228a0678e373413072cbe3aef7fc1b4ee0 SHA512 dfdef79d01ac1ea126e4124dfab505ccbfe49a62e4f866b987f73edadb283788e2b943d5acc6294039373ec6035d36b07113ec788c6563e113d0d63388e0bc1d +EBUILD postgresql-16.6.ebuild 13579 BLAKE2B 8b980186561ecd89c14f71cafb359ac91dd8f824f0a2885f3435eb2ada2ec66d58f12f2ee0b7563f5daa4637c517a22f7de7c13aea7ef43220eb254944f053db SHA512 87b095d13229bb24f370a4b9b93d24f90f9f9cdd997e42afd837473c3c79ac5e56b111051caa9deac87f66549db01814b55cfd2319dfd708cea60933311ce0c4 EBUILD postgresql-17.1.ebuild 14045 BLAKE2B e8d77abb668c4ac3e223b16e4dd230dd60fb7fc97b4919855a033546866e722efc96a040fd35ca554222b3f9428f34137ac340283482495ab22d57535f1e5abd SHA512 e4a963582b8cf64364801a2e752712bbb834d577d0cec3275703b0482007e736ef3baa27849909cf0500b413c542c944446c70d3e6241e25cd0e261ee79c054a +EBUILD postgresql-17.2.ebuild 14047 BLAKE2B a75dbb45ddab0585f8833c922f639fe301005d33058316d0a00d1b294b2100d38e134138ca9d7d820296db386c9a04e7cffd9b286b8f53cbc66b2880c18c9ba5 SHA512 11d3acf53e0f7dc6f172afad434ba7c1f82eef03d0534e3ec4dbf6fddeae909f435726be1783fbf832f700b89d6eb531e079c4b32589664c6a74c024a1626f10 EBUILD postgresql-9999.ebuild 14411 BLAKE2B c9ad64cdcf781a6fd0f8aceacecc4db91e014d7e35942a0edde23410fc6c0caca164d283a86916213b1a1135040d7362dea803045223b32567a70ff007b8f2ae SHA512 00584cef8a92c6fc44c0f94c09dfbee678d2a96cce305a1eb04d8bc3c9cb10333a7d5cc00f295f0b59fe29a4c667c8da3772fe8939023e1119ff173076a7f74c MISC metadata.xml 653 BLAKE2B b5b85d83ee78ac502e2707d156e2fadf6fea857160e2f48da51c755e221c52a14b9eb04354202287f4aba15c274c07ba7b0911c76fd034bfa774ce3500ccb165 SHA512 fd543af224f6f8677e138cb1db7154d2444295c45df8696e3584911943176023d8d1b179f6b16d88ffc6d290265ec1b2f4c902cf95cc79eb37599ae3635b0942 diff --git a/dev-db/postgresql/postgresql-12.22.ebuild b/dev-db/postgresql/postgresql-12.22.ebuild new file mode 100644 index 000000000000..bc335ee2e5c0 --- /dev/null +++ b/dev-db/postgresql/postgresql-12.22.ebuild @@ -0,0 +1,445 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10,11,12,13} ) +LLVM_COMPAT=( {15..18} ) +LLVM_OPTIONAL=1 + +inherit flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles + +KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~mips ppc ppc64 ~s390 sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" + +SLOT=$(ver_cut 1) + +MY_PV=${PV/_/} +S="${WORKDIR}/${PN}-${MY_PV}" + +SRC_URI="https://ftp.postgresql.org/pub/source/v${MY_PV}/postgresql-${MY_PV}.tar.bz2" + +LICENSE="POSTGRESQL GPL-2" +DESCRIPTION="PostgreSQL RDBMS" +HOMEPAGE="https://www.postgresql.org/" + +IUSE="debug doc icu kerberos ldap llvm nls pam perl python +readline + selinux +server systemd ssl static-libs tcl uuid xml zlib" + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +CDEPEND=" +>=app-eselect/eselect-postgresql-2.0 +acct-group/postgres +acct-user/postgres +sys-apps/less +virtual/libintl +icu? ( dev-libs/icu:= ) +kerberos? ( virtual/krb5 ) +ldap? ( net-nds/openldap:= ) +llvm? ( $(llvm_gen_dep ' + sys-devel/clang:${LLVM_SLOT} + sys-devel/llvm:${LLVM_SLOT} + ') ) +pam? ( sys-libs/pam ) +perl? ( >=dev-lang/perl-5.8:= ) +python? ( ${PYTHON_DEPS} ) +readline? ( sys-libs/readline:0= ) +server? ( systemd? ( sys-apps/systemd ) ) +ssl? ( >=dev-libs/openssl-0.9.6-r1:0= ) +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,musl} ) + +nest_usedep() { + local front back + while [[ ${#} -gt 1 ]]; do + front+="${1}? ( " + back+=" )" + shift + done + echo "${front}${1}${back}" +} + +CDEPEND+=" +uuid? ( + ${UTIL_LINUX_LIBC[@]/%/? ( sys-apps/util-linux )} + $(nest_usedep ${UTIL_LINUX_LIBC[@]/#/!} dev-libs/ossp-uuid) +)" + +DEPEND="${CDEPEND} +sys-devel/bison +app-alternatives/lex +nls? ( sys-devel/gettext ) +xml? ( virtual/pkgconfig ) +" + +RDEPEND="${CDEPEND} +selinux? ( sec-policy/selinux-postgresql ) +" + +pkg_setup() { + use llvm && llvm-r1_pkg_setup + + use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup + + 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}-12.1-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 + [[ -z $uuid_config ]] && uuid_config="--with-uuid=ossp" + fi + + econf \ + --prefix="${PO}/usr/$(get_libdir)/postgresql-${SLOT}" \ + --datadir="${PO}/usr/share/postgresql-${SLOT}" \ + --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 debug) \ + $(use_with icu) \ + $(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) +} + +src_compile() { + emake + emake -C contrib +} + +src_install() { + emake DESTDIR="${D}" install + emake DESTDIR="${D}" install -C contrib + + dodoc README HISTORY + + # 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 + + # Don't delete libpg{port,common}.a (Bug #571046). They're always + # needed by extensions utilizing PGXS. + use static-libs || \ + find "${ED}" -name '*.a' ! -name libpgport.a ! -name libpgcommon.a \ + -delete + + # Make slot specific links to programs + local f bn + for f in $(find "${ED}/usr/$(get_libdir)/postgresql-${SLOT}/bin" \ + -mindepth 1 -maxdepth 1) + do + bn=$(basename "${f}") + 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 + newtmpfiles "${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 && tmpfiles_process ${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 "$(dirname ${DATA_DIR%/})" || die "Couldn't parent dirs" + mkdir -m 0700 "${DATA_DIR%/}" || die "Couldn't make DATA_DIR" + chown -h postgres:postgres "${DATA_DIR%/}" || die "Couldn't chown" + 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 + + 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-13.18.ebuild b/dev-db/postgresql/postgresql-13.18.ebuild new file mode 100644 index 000000000000..81b316ac1254 --- /dev/null +++ b/dev-db/postgresql/postgresql-13.18.ebuild @@ -0,0 +1,457 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10,11,12,13} ) +LLVM_COMPAT=( {15..19} ) +LLVM_OPTIONAL=1 + +inherit flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles + +KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" + +SLOT=$(ver_cut 1) + +MY_PV=${PV/_/} +S="${WORKDIR}/${PN}-${MY_PV}" + +SRC_URI="https://ftp.postgresql.org/pub/source/v${MY_PV}/postgresql-${MY_PV}.tar.bz2" + +LICENSE="POSTGRESQL GPL-2" +DESCRIPTION="PostgreSQL RDBMS" +HOMEPAGE="https://www.postgresql.org/" + +IUSE="debug doc icu kerberos ldap llvm nls pam perl python +readline + selinux +server systemd ssl static-libs tcl uuid xml zlib" + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +CDEPEND=" +>=app-eselect/eselect-postgresql-2.0 +acct-group/postgres +acct-user/postgres +sys-apps/less +virtual/libintl +icu? ( dev-libs/icu:= ) +kerberos? ( virtual/krb5 ) +ldap? ( net-nds/openldap:= ) +llvm? ( $(llvm_gen_dep ' + sys-devel/clang:${LLVM_SLOT} + sys-devel/llvm:${LLVM_SLOT} + ') ) +pam? ( sys-libs/pam ) +perl? ( >=dev-lang/perl-5.8:= ) +python? ( ${PYTHON_DEPS} ) +readline? ( sys-libs/readline:0= ) +server? ( systemd? ( sys-apps/systemd ) ) +ssl? ( >=dev-libs/openssl-0.9.6-r1:0= ) +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,musl} ) + +nest_usedep() { + local front back + while [[ ${#} -gt 1 ]]; do + front+="${1}? ( " + back+=" )" + shift + done + echo "${front}${1}${back}" +} + +CDEPEND+=" +uuid? ( + ${UTIL_LINUX_LIBC[@]/%/? ( sys-apps/util-linux )} + $(nest_usedep ${UTIL_LINUX_LIBC[@]/#/!} dev-libs/ossp-uuid) +)" + +DEPEND="${CDEPEND} +sys-devel/bison +app-alternatives/lex +nls? ( sys-devel/gettext ) +xml? ( virtual/pkgconfig ) +" + +RDEPEND="${CDEPEND} +selinux? ( sec-policy/selinux-postgresql ) +" + +pkg_setup() { + use llvm && llvm-r1_pkg_setup + + use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup + + use python && python-single-r1_pkg_setup +} + +src_prepare() { + eapply "${FILESDIR}"/${PN}-13.3-riscv-spinlocks.patch + + # 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}-13.8-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 + [[ -z $uuid_config ]] && uuid_config="--with-uuid=ossp" + fi + + local myconf="\ + --prefix="${PO}/usr/$(get_libdir)/postgresql-${SLOT}" \ + --datadir="${PO}/usr/share/postgresql-${SLOT}" \ + --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 debug) \ + $(use_with icu) \ + $(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)" + if use alpha; then + myconf+=" --disable-spinlocks" + else + # Should be the default but just in case + myconf+=" --enable-spinlocks" + fi + econf ${myconf} +} + +src_compile() { + emake + emake -C contrib +} + +src_install() { + emake DESTDIR="${D}" install + emake DESTDIR="${D}" install -C contrib + + dodoc README HISTORY + + # 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 + + # Don't delete libpg{port,common}.a (Bug #571046). They're always + # needed by extensions utilizing PGXS. + use static-libs || \ + find "${ED}" -name '*.a' ! -name libpgport.a ! -name libpgcommon.a \ + -delete + + # Make slot specific links to programs + local f bn + for f in $(find "${ED}/usr/$(get_libdir)/postgresql-${SLOT}/bin" \ + -mindepth 1 -maxdepth 1) + do + bn=$(basename "${f}") + 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 + newtmpfiles "${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 && tmpfiles_process ${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 "$(dirname ${DATA_DIR%/})" || die "Couldn't parent dirs" + mkdir -m 0700 "${DATA_DIR%/}" || die "Couldn't make DATA_DIR" + chown -h postgres:postgres "${DATA_DIR%/}" || die "Couldn't chown" + 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 + + 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 + # Some ICU tests fail if LC_CTYPE and LC_COLLATE aren't the same. We set + # LC_CTYPE to be equal to LC_COLLATE since LC_COLLATE is set by Portage. + local old_ctype=${LC_CTYPE} + export LC_CTYPE=${LC_COLLATE} + emake check + export LC_CTYPE=${old_ctype} + 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-14.15.ebuild b/dev-db/postgresql/postgresql-14.15.ebuild new file mode 100644 index 000000000000..5e0046eeef33 --- /dev/null +++ b/dev-db/postgresql/postgresql-14.15.ebuild @@ -0,0 +1,457 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10,11,12,13} ) +LLVM_COMPAT=( {15..19} ) +LLVM_OPTIONAL=1 + +inherit flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles + +KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" + +SLOT=$(ver_cut 1) + +MY_PV=${PV/_/} +S="${WORKDIR}/${PN}-${MY_PV}" + +SRC_URI="https://ftp.postgresql.org/pub/source/v${MY_PV}/postgresql-${MY_PV}.tar.bz2" + +LICENSE="POSTGRESQL GPL-2" +DESCRIPTION="PostgreSQL RDBMS" +HOMEPAGE="https://www.postgresql.org/" + +IUSE="debug doc icu kerberos ldap llvm +lz4 nls pam perl python +readline + selinux +server systemd ssl static-libs tcl uuid xml zlib" + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +CDEPEND=" +>=app-eselect/eselect-postgresql-2.0 +acct-group/postgres +acct-user/postgres +sys-apps/less +virtual/libintl +icu? ( dev-libs/icu:= ) +kerberos? ( virtual/krb5 ) +ldap? ( net-nds/openldap:= ) +llvm? ( $(llvm_gen_dep ' + sys-devel/clang:${LLVM_SLOT} + sys-devel/llvm:${LLVM_SLOT} + ') ) +lz4? ( app-arch/lz4 ) +pam? ( sys-libs/pam ) +perl? ( >=dev-lang/perl-5.8:= ) +python? ( ${PYTHON_DEPS} ) +readline? ( sys-libs/readline:0= ) +server? ( systemd? ( sys-apps/systemd ) ) +ssl? ( >=dev-libs/openssl-0.9.6-r1:0= ) +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,musl} ) + +nest_usedep() { + local front back + while [[ ${#} -gt 1 ]]; do + front+="${1}? ( " + back+=" )" + shift + done + echo "${front}${1}${back}" +} + +CDEPEND+=" +uuid? ( + ${UTIL_LINUX_LIBC[@]/%/? ( sys-apps/util-linux )} + $(nest_usedep ${UTIL_LINUX_LIBC[@]/#/!} dev-libs/ossp-uuid) +)" + +DEPEND="${CDEPEND} +sys-devel/bison +app-alternatives/lex +nls? ( sys-devel/gettext ) +xml? ( virtual/pkgconfig ) +" + +RDEPEND="${CDEPEND} +selinux? ( sec-policy/selinux-postgresql ) +" + +pkg_setup() { + use llvm && llvm-r1_pkg_setup + + use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup + + 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}-14.5-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 + [[ -z $uuid_config ]] && uuid_config="--with-uuid=ossp" + fi + + local myconf="\ + --prefix="${PO}/usr/$(get_libdir)/postgresql-${SLOT}" \ + --datadir="${PO}/usr/share/postgresql-${SLOT}" \ + --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 debug) \ + $(use_with icu) \ + $(use_with kerberos gssapi) \ + $(use_with ldap) \ + $(use_with llvm) \ + $(use_with lz4) \ + $(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)" + if use alpha; then + myconf+=" --disable-spinlocks" + else + # Should be the default but just in case + myconf+=" --enable-spinlocks" + fi + econf ${myconf} +} + +src_compile() { + emake + emake -C contrib +} + +src_install() { + emake DESTDIR="${D}" install + emake DESTDIR="${D}" install -C contrib + + dodoc README HISTORY + + # 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 + + # Don't delete libpg{port,common}.a (Bug #571046). They're always + # needed by extensions utilizing PGXS. + use static-libs || \ + find "${ED}" -name '*.a' ! -name libpgport.a ! -name libpgcommon.a \ + -delete + + # Make slot specific links to programs + local f bn + for f in $(find "${ED}/usr/$(get_libdir)/postgresql-${SLOT}/bin" \ + -mindepth 1 -maxdepth 1) + do + bn=$(basename "${f}") + 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 + newtmpfiles "${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 && tmpfiles_process ${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 "$(dirname ${DATA_DIR%/})" || die "Couldn't parent dirs" + mkdir -m 0700 "${DATA_DIR%/}" || die "Couldn't make DATA_DIR" + chown -h postgres:postgres "${DATA_DIR%/}" || die "Couldn't chown" + 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 + + 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 + # Some ICU tests fail if LC_CTYPE and LC_COLLATE aren't the same. We set + # LC_CTYPE to be equal to LC_COLLATE since LC_COLLATE is set by Portage. + local old_ctype=${LC_CTYPE} + export LC_CTYPE=${LC_COLLATE} + emake check + export LC_CTYPE=${old_ctype} + 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-15.10.ebuild b/dev-db/postgresql/postgresql-15.10.ebuild new file mode 100644 index 000000000000..6ff8395e2520 --- /dev/null +++ b/dev-db/postgresql/postgresql-15.10.ebuild @@ -0,0 +1,459 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10,11,12,13} ) +LLVM_COMPAT=( {15..19} ) +LLVM_OPTIONAL=1 + +inherit flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles + +KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" + +SLOT=$(ver_cut 1) + +MY_PV=${PV/_/} +S="${WORKDIR}/${PN}-${MY_PV}" + +SRC_URI="https://ftp.postgresql.org/pub/source/v${MY_PV}/postgresql-${MY_PV}.tar.bz2" + +LICENSE="POSTGRESQL GPL-2" +DESCRIPTION="PostgreSQL RDBMS" +HOMEPAGE="https://www.postgresql.org/" + +IUSE="debug doc icu kerberos ldap llvm +lz4 nls pam perl python +readline + selinux +server systemd ssl static-libs tcl uuid xml zlib +zstd" + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +CDEPEND=" +>=app-eselect/eselect-postgresql-2.0 +acct-group/postgres +acct-user/postgres +sys-apps/less +virtual/libintl +icu? ( dev-libs/icu:= ) +kerberos? ( virtual/krb5 ) +ldap? ( net-nds/openldap:= ) +llvm? ( $(llvm_gen_dep ' + sys-devel/clang:${LLVM_SLOT} + sys-devel/llvm:${LLVM_SLOT} + ') ) +lz4? ( app-arch/lz4 ) +pam? ( sys-libs/pam ) +perl? ( >=dev-lang/perl-5.8:= ) +python? ( ${PYTHON_DEPS} ) +readline? ( sys-libs/readline:0= ) +server? ( systemd? ( sys-apps/systemd ) ) +ssl? ( >=dev-libs/openssl-0.9.6-r1:0= ) +tcl? ( >=dev-lang/tcl-8:0= ) +xml? ( dev-libs/libxml2 dev-libs/libxslt ) +zlib? ( sys-libs/zlib ) +zstd? ( app-arch/zstd ) +" + +# 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,musl} ) + +nest_usedep() { + local front back + while [[ ${#} -gt 1 ]]; do + front+="${1}? ( " + back+=" )" + shift + done + echo "${front}${1}${back}" +} + +CDEPEND+=" +uuid? ( + ${UTIL_LINUX_LIBC[@]/%/? ( sys-apps/util-linux )} + $(nest_usedep ${UTIL_LINUX_LIBC[@]/#/!} dev-libs/ossp-uuid) +)" + +DEPEND="${CDEPEND} +sys-devel/bison +app-alternatives/lex +nls? ( sys-devel/gettext ) +xml? ( virtual/pkgconfig ) +" + +RDEPEND="${CDEPEND} +selinux? ( sec-policy/selinux-postgresql ) +" + +pkg_setup() { + use llvm && llvm-r1_pkg_setup + + use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup + + 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}-15_beta3-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 + [[ -z $uuid_config ]] && uuid_config="--with-uuid=ossp" + fi + + local myconf="\ + --prefix="${PO}/usr/$(get_libdir)/postgresql-${SLOT}" \ + --datadir="${PO}/usr/share/postgresql-${SLOT}" \ + --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 debug) \ + $(use_with icu) \ + $(use_with kerberos gssapi) \ + $(use_with ldap) \ + $(use_with llvm) \ + $(use_with lz4) \ + $(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_with zstd) \ + $(use_enable nls)" + if use alpha; then + myconf+=" --disable-spinlocks" + else + # Should be the default but just in case + myconf+=" --enable-spinlocks" + fi + econf ${myconf} +} + +src_compile() { + emake + emake -C contrib +} + +src_install() { + emake DESTDIR="${D}" install + emake DESTDIR="${D}" install -C contrib + + dodoc README HISTORY + + # 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 + + # Don't delete libpg{port,common}.a (Bug #571046). They're always + # needed by extensions utilizing PGXS. + use static-libs || \ + find "${ED}" -name '*.a' ! -name libpgport.a ! -name libpgcommon.a \ + -delete + + # Make slot specific links to programs + local f bn + for f in $(find "${ED}/usr/$(get_libdir)/postgresql-${SLOT}/bin" \ + -mindepth 1 -maxdepth 1) + do + bn=$(basename "${f}") + 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 + newtmpfiles "${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 && tmpfiles_process ${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 "$(dirname ${DATA_DIR%/})" || die "Couldn't parent dirs" + mkdir -m 0700 "${DATA_DIR%/}" || die "Couldn't make DATA_DIR" + chown -h postgres:postgres "${DATA_DIR%/}" || die "Couldn't chown" + 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 + + 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 + # Some ICU tests fail if LC_CTYPE and LC_COLLATE aren't the same. We set + # LC_CTYPE to be equal to LC_COLLATE since LC_COLLATE is set by Portage. + local old_ctype=${LC_CTYPE} + export LC_CTYPE=${LC_COLLATE} + emake check + export LC_CTYPE=${old_ctype} + 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-16.6.ebuild b/dev-db/postgresql/postgresql-16.6.ebuild new file mode 100644 index 000000000000..7d38555feb2a --- /dev/null +++ b/dev-db/postgresql/postgresql-16.6.ebuild @@ -0,0 +1,460 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10,11,12,13} ) +LLVM_COMPAT=( {15..19} ) +LLVM_OPTIONAL=1 + +inherit flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles + +KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" + +SLOT=$(ver_cut 1) + +MY_PV=${PV/_/} +S="${WORKDIR}/${PN}-${MY_PV}" + +SRC_URI="https://ftp.postgresql.org/pub/source/v${MY_PV}/postgresql-${MY_PV}.tar.bz2" + +LICENSE="POSTGRESQL GPL-2" +DESCRIPTION="PostgreSQL RDBMS" +HOMEPAGE="https://www.postgresql.org/" + +IUSE="debug doc +icu kerberos ldap llvm +lz4 nls pam perl python + +readline selinux +server systemd ssl static-libs tcl uuid xml + zlib +zstd" + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +CDEPEND=" +>=app-eselect/eselect-postgresql-2.0 +acct-group/postgres +acct-user/postgres +sys-apps/less +virtual/libintl +icu? ( dev-libs/icu:= ) +kerberos? ( app-crypt/mit-krb5 ) +ldap? ( net-nds/openldap:= ) +llvm? ( $(llvm_gen_dep ' + sys-devel/clang:${LLVM_SLOT} + sys-devel/llvm:${LLVM_SLOT} + ') ) +lz4? ( app-arch/lz4 ) +pam? ( sys-libs/pam ) +perl? ( >=dev-lang/perl-5.8:= ) +python? ( ${PYTHON_DEPS} ) +readline? ( sys-libs/readline:0= ) +server? ( systemd? ( sys-apps/systemd ) ) +ssl? ( >=dev-libs/openssl-0.9.6-r1:0= ) +tcl? ( >=dev-lang/tcl-8:0= ) +xml? ( dev-libs/libxml2 dev-libs/libxslt ) +zlib? ( sys-libs/zlib ) +zstd? ( app-arch/zstd ) +" + +# 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,musl} ) + +nest_usedep() { + local front back + while [[ ${#} -gt 1 ]]; do + front+="${1}? ( " + back+=" )" + shift + done + echo "${front}${1}${back}" +} + +CDEPEND+=" +uuid? ( + ${UTIL_LINUX_LIBC[@]/%/? ( sys-apps/util-linux )} + $(nest_usedep ${UTIL_LINUX_LIBC[@]/#/!} dev-libs/ossp-uuid) +)" + +DEPEND="${CDEPEND} +sys-devel/bison +app-alternatives/lex +nls? ( sys-devel/gettext ) +xml? ( virtual/pkgconfig ) +" + +RDEPEND="${CDEPEND} +selinux? ( sec-policy/selinux-postgresql ) +" + +pkg_setup() { + use llvm && llvm-r1_pkg_setup + + use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup + + 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}-15_beta3-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 + [[ -z $uuid_config ]] && uuid_config="--with-uuid=ossp" + fi + + local myconf="\ + --prefix="${PO}/usr/$(get_libdir)/postgresql-${SLOT}" \ + --datadir="${PO}/usr/share/postgresql-${SLOT}" \ + --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 debug) \ + $(use_with icu) \ + $(use_with kerberos gssapi) \ + $(use_with ldap) \ + $(use_with llvm) \ + $(use_with lz4) \ + $(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_with zstd) \ + $(use_enable nls)" + if use alpha; then + myconf+=" --disable-spinlocks" + else + # Should be the default but just in case + myconf+=" --enable-spinlocks" + fi + econf ${myconf} +} + +src_compile() { + emake + emake -C contrib +} + +src_install() { + emake DESTDIR="${D}" install + emake DESTDIR="${D}" install -C contrib + + dodoc README HISTORY + + # 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 + + # Don't delete libpg{port,common}.a (Bug #571046). They're always + # needed by extensions utilizing PGXS. + use static-libs || \ + find "${ED}" -name '*.a' ! -name libpgport.a ! -name libpgcommon.a \ + -delete + + # Make slot specific links to programs + local f bn + for f in $(find "${ED}/usr/$(get_libdir)/postgresql-${SLOT}/bin" \ + -mindepth 1 -maxdepth 1) + do + bn=$(basename "${f}") + 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 + newtmpfiles "${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 && tmpfiles_process ${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 "$(dirname ${DATA_DIR%/})" || die "Couldn't parent dirs" + mkdir -m 0700 "${DATA_DIR%/}" || die "Couldn't make DATA_DIR" + chown -h postgres:postgres "${DATA_DIR%/}" || die "Couldn't chown" + 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 + + 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 + # Some ICU tests fail if LC_CTYPE and LC_COLLATE aren't the same. We set + # LC_CTYPE to be equal to LC_COLLATE since LC_COLLATE is set by Portage. + local old_ctype=${LC_CTYPE} + export LC_CTYPE=${LC_COLLATE} + emake check + export LC_CTYPE=${old_ctype} + 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-17.2.ebuild b/dev-db/postgresql/postgresql-17.2.ebuild new file mode 100644 index 000000000000..4a71e90f6066 --- /dev/null +++ b/dev-db/postgresql/postgresql-17.2.ebuild @@ -0,0 +1,477 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10,11,12,13} ) +LLVM_COMPAT=( {15..19} ) +LLVM_OPTIONAL=1 + +inherit flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles + +KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" + +SLOT=$(ver_cut 1) + +MY_PV=${PV/_/} +S="${WORKDIR}/${PN}-${MY_PV}" + +SRC_URI="https://ftp.postgresql.org/pub/source/v${MY_PV}/postgresql-${MY_PV}.tar.bz2" + +LICENSE="POSTGRESQL GPL-2" +DESCRIPTION="PostgreSQL RDBMS" +HOMEPAGE="https://www.postgresql.org/" + +IUSE="debug doc +icu kerberos ldap llvm +lz4 nls pam perl python + +readline selinux +server systemd ssl static-libs tcl uuid xml + zlib +zstd" + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +CDEPEND=" +>=app-eselect/eselect-postgresql-2.0 +acct-group/postgres +acct-user/postgres +sys-apps/less +virtual/libintl +icu? ( dev-libs/icu:= ) +kerberos? ( app-crypt/mit-krb5 ) +ldap? ( net-nds/openldap:= ) +llvm? ( $(llvm_gen_dep ' + sys-devel/clang:${LLVM_SLOT} + sys-devel/llvm:${LLVM_SLOT} + ') ) +lz4? ( app-arch/lz4 ) +pam? ( sys-libs/pam ) +perl? ( >=dev-lang/perl-5.8:= ) +python? ( ${PYTHON_DEPS} ) +readline? ( sys-libs/readline:0= ) +server? ( systemd? ( sys-apps/systemd ) ) +ssl? ( >=dev-libs/openssl-0.9.6-r1:0= ) +tcl? ( >=dev-lang/tcl-8:0= ) +xml? ( dev-libs/libxml2 dev-libs/libxslt ) +zlib? ( sys-libs/zlib ) +zstd? ( app-arch/zstd ) +" + +# 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,musl} ) + +nest_usedep() { + local front back + while [[ ${#} -gt 1 ]]; do + front+="${1}? ( " + back+=" )" + shift + done + echo "${front}${1}${back}" +} + +CDEPEND+=" +uuid? ( + ${UTIL_LINUX_LIBC[@]/%/? ( sys-apps/util-linux )} + $(nest_usedep ${UTIL_LINUX_LIBC[@]/#/!} dev-libs/ossp-uuid) +)" + +DEPEND="${CDEPEND} +sys-devel/bison +app-alternatives/lex +nls? ( sys-devel/gettext ) +xml? ( virtual/pkgconfig ) +" + +RDEPEND="${CDEPEND} +selinux? ( sec-policy/selinux-postgresql ) +" + +# Openjade, docbook, XML, and XSLT are needed to generate manpages and +# any documentation that may be elected. +BDEPEND=" +app-text/openjade +app-text/docbook-dsssl-stylesheets +app-text/docbook-sgml-dtd:4.5 +app-text/docbook-xml-dtd:4.5 +app-text/docbook-xsl-stylesheets +dev-libs/libxml2 +dev-libs/libxslt +" + +pkg_setup() { + use llvm && llvm-r1_pkg_setup + + use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup + + 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}-17.0-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() { + # Fails to build with C23, fallback to the old default in < GCC 15 + # for now: https://marc.info/?l=pgsql-bugs&m=173185132906874&w=2 + append-cflags -std=gnu17 + + 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 + [[ -z $uuid_config ]] && uuid_config="--with-uuid=ossp" + fi + + local myconf="\ + --prefix="${PO}/usr/$(get_libdir)/postgresql-${SLOT}" \ + --datadir="${PO}/usr/share/postgresql-${SLOT}" \ + --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 debug) \ + $(use_with icu) \ + $(use_with kerberos gssapi) \ + $(use_with ldap) \ + $(use_with llvm) \ + $(use_with lz4) \ + $(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_with zstd) \ + $(use_enable nls)" + if use alpha; then + myconf+=" --disable-spinlocks" + else + # Should be the default but just in case + myconf+=" --enable-spinlocks" + fi + econf ${myconf} +} + +src_compile() { + emake + emake -C contrib + emake -C doc +} + +src_install() { + emake DESTDIR="${D}" install + emake DESTDIR="${D}" install -C contrib + + dodoc HISTORY + + # 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 + + # Don't delete libpg{port,common}.a (Bug #571046). They're always + # needed by extensions utilizing PGXS. + use static-libs || \ + find "${ED}" -name '*.a' ! -name libpgport.a ! -name libpgcommon.a \ + -delete + + # Make slot specific links to programs + local f bn + for f in $(find "${ED}/usr/$(get_libdir)/postgresql-${SLOT}/bin" \ + -mindepth 1 -maxdepth 1) + do + bn=$(basename "${f}") + 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 + newtmpfiles "${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 && tmpfiles_process ${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 "$(dirname ${DATA_DIR%/})" || die "Couldn't parent dirs" + mkdir -m 0700 "${DATA_DIR%/}" || die "Couldn't make DATA_DIR" + chown -h postgres:postgres "${DATA_DIR%/}" || die "Couldn't chown" + 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 + + 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 + # Some ICU tests fail if LC_CTYPE and LC_COLLATE aren't the same. We set + # LC_CTYPE to be equal to LC_COLLATE since LC_COLLATE is set by Portage. + local old_ctype=${LC_CTYPE} + export LC_CTYPE=${LC_COLLATE} + emake check + export LC_CTYPE=${old_ctype} + 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/sqlite/Manifest b/dev-db/sqlite/Manifest index 093186983238..171b2a562575 100644 --- a/dev-db/sqlite/Manifest +++ b/dev-db/sqlite/Manifest @@ -1,5 +1,4 @@ AUX sqlite-3.45.1-ppc64-ptr.patch 986 BLAKE2B 8c97514a67601c1f51459c1d4ea683e023730b3fa66be7a238807f172ce19ebceeed8f81c9f6e4f3621c96eecd8f6ea3bd5669a8a5ee5b14cf2bebdb7338e0db SHA512 12c6384682a36cddfdde7d2cfdba8aad54441b816816abf139bb05c46f65e78548c5a9e4f7f8b8836bd95702455b93ed7e0afb868ab15fead20a84404f075615 -AUX sqlite-3.45.2-tests-x86.patch 3704 BLAKE2B 107828e5cda62c2fc9f6c23efa5a5c1e3993d57fc0a129bc3ec8e24ad8c00770a72768d76b0843b2ed493f738d4fdded31a0efb46dd48bc0e9f78988e42492a8 SHA512 5a867ca23262c7144865fed8e8a088d0494d2e4716990b6ded8c26dab588163d367226f8858cfbdda87bf897bafacf1299d5828ef50c9ca6e02b026b18970965 AUX sqlite-3.47.0-allocator-mismatch.patch 1574 BLAKE2B c9e2a590b418ad009b6434b17e9e67a8ca63e8eb785c93753786bb581d0d0e584a6d73fe35850bb9bd6ed390e5d29e1568ecbe294db99b69978f0b5d38d72878 SHA512 99313357c2f003f15e68332e81e9a78428591255e25e57bf6b597135fd0c532e58dd7d1f0d92e9b3fc51c03a8cde18557e18fcacba1df7fffcd0beeb28cb0150 AUX sqlite-3.47.0-buildtclext.patch 4177 BLAKE2B 653cdd04aa78ce0d66e0fd30e5c0e811617875439804b7967ca550232ce80165f148c289899164600e6b02781e403bf4b29525f2f763ffa241ef13d43a48fd3f SHA512 80f01db442578d301a50f9ae989e3bbb02bcf1b2d8bd9c99a537a90871f06612f135ebee2e44df320fd7c08ab714335a291667a9c566e46e47de88718b8c45af AUX sqlite-3.47.0-nonbash.patch 2086 BLAKE2B d791fe6bcfb115f814608f40500a3a321b7dd519aa5396a5e55fa96bde492356174c4c440e7cde28a477057d5f56453b246a991fd7818de908ed7c671573eec0 SHA512 c5c530cd936b5656d69d87a10704465cfb0b4029850780b613fd2e34b2c046476503e8ca7aef841f9757887757498f8544e3bf1005f3c7a1b9a8056c98ab79e8 diff --git a/dev-db/sqlite/files/sqlite-3.45.2-tests-x86.patch b/dev-db/sqlite/files/sqlite-3.45.2-tests-x86.patch deleted file mode 100644 index 153dd82c1e19..000000000000 --- a/dev-db/sqlite/files/sqlite-3.45.2-tests-x86.patch +++ /dev/null @@ -1,112 +0,0 @@ -https://sqlite.org/forum/forumpost/7dfd585ce1 -https://sqlite.org/src/info/d0fbe779bc2460e1 - -Index: test/func4.test -================================================================== ---- a/test/func4.test -+++ b/test/func4.test -@@ -1,6 +1,6 @@ --# 2013 March 10 -+# 2023-03-10 - # - # The author disclaims copyright to this source code. In place of - # a legal notice, here is a blessing: - # - # May you do good and not evil. -@@ -7,11 +7,14 @@ - # May you find forgiveness for yourself and forgive others. - # May you share freely, never taking more than you give. - # - #*********************************************************************** - # This file implements regression tests for SQLite library. The focus of --# this file is testing the tointeger() and toreal() functions. -+# this file is testing the tointeger() and toreal() functions that are -+# part of the "totype.c" extension. This file does not test the core -+# SQLite library. Failures of tests in this file are related to the -+# ext/misc/totype.c extension. - # - # Several of the toreal() tests are disabled on platforms where floating - # point precision is not high enough to represent their constant integer - # expression arguments as double precision floating point values. - # -@@ -21,10 +24,24 @@ - set tcl_precision 0 - load_static_extension db totype - - set highPrecision(1) [expr \ - {[db eval {SELECT tointeger(9223372036854775807 + 1);}] eq {{}}}] -+set highPrecision(2) [expr \ -+ {[db eval {SELECT toreal(-9223372036854775808 + 1);}] eq {{}}}] -+ -+# highPrecision(3) is only known to be false on i586 with gcc-13 and -O2. -+# It is true on the exact same platform with -O0. Both results seem -+# reasonable, so we'll just very the expectation accordingly. -+# -+set highPrecision(3) [expr \ -+ {[db eval {SELECT toreal(9007199254740992 + 1);}] eq {{}}}] -+ -+if {!$highPrecision(1) || !$highPrecision(2) || !$highPrecision(3)} { -+ puts "NOTICE: use_long_double: [use_long_double] \ -+ highPrecision: $highPrecision(1) $highPrecision(2) $highPrecision(3)" -+} - - do_execsql_test func4-1.1 { - SELECT tointeger(NULL); - } {{}} - do_execsql_test func4-1.2 { -@@ -193,12 +210,10 @@ - do_execsql_test func4-1.55 { - SELECT tointeger(18446744073709551616 + 1); - } {{}} - - ifcapable floatingpoint { -- set highPrecision(2) [expr \ -- {[db eval {SELECT toreal(-9223372036854775808 + 1);}] eq {{}}}] - - do_execsql_test func4-2.1 { - SELECT toreal(NULL); - } {{}} - do_execsql_test func4-2.2 { -@@ -339,14 +354,18 @@ - SELECT toreal(9007199254740992 - 1); - } {9007199254740991.0} - do_execsql_test func4-2.45 { - SELECT toreal(9007199254740992); - } {9007199254740992.0} -- if {$highPrecision(2)} { -+ if {$highPrecision(3)} { -+ do_execsql_test func4-2.46 { -+ SELECT toreal(9007199254740992 + 1); -+ } {{}} -+ } else { - do_execsql_test func4-2.46 { - SELECT toreal(9007199254740992 + 1); -- } {{}} -+ } {9007199254740992.0} - } - do_execsql_test func4-2.47 { - SELECT toreal(9007199254740992 + 2); - } {9007199254740994.0} - do_execsql_test func4-2.48 { -@@ -624,14 +643,18 @@ - SELECT tointeger(toreal(9007199254740992 - 1)); - } {9007199254740991} - do_execsql_test func4-5.22 { - SELECT tointeger(toreal(9007199254740992)); - } {9007199254740992} -- if {$highPrecision(2)} { -+ if {$highPrecision(3)} { - do_execsql_test func4-5.23 { - SELECT tointeger(toreal(9007199254740992 + 1)); - } {{}} -+ } else { -+ do_execsql_test func4-5.23 { -+ SELECT tointeger(toreal(9007199254740992 + 1)); -+ } {9007199254740992} - } - do_execsql_test func4-5.24 { - SELECT tointeger(toreal(9007199254740992 + 2)); - } {9007199254740994} - if {$highPrecision(1)} { - - |