Sync with portage [Tue Aug 16 08:09:06 MSK 2022].

akrasnyh 2315
root 2 years ago
parent 2d2bfd1d4a
commit aa89e7e9e5

Binary file not shown.

Binary file not shown.

@ -3,7 +3,6 @@
EAPI=8
KDE_GEAR="true"
KFMIN=5.92.0
QTMIN=5.15.4
inherit ecm gear.kde.org

Binary file not shown.

@ -1,2 +1 @@
DIST hcloud-1.29.5.tar.xz 1416952 BLAKE2B 4b1c9e1df9bb3fdb63c28890e7f9cfb8c4c628fd22b765d8265e63415b8feee0466f32fd6a87a5cd981d231f93a60c28c140c1efa7ea33c327b234f1a4d6b0cf SHA512 fbe395c47cf1bef800c162b8c44359dab173c636ec4d7e8e4629fa95b323731c7c3d8a9045dd77692b7beb8a3554cdce567f2285640a5b410262be69442fe99e
DIST hcloud-1.30.1.tar.xz 1688764 BLAKE2B b1044a3d9e5dd28d6010763dd2c3322e56418bd2b8b48669fd2bfb4297a0a75def85a63c08f99f0bacb78bee976438af72feae2d8d38982cfc5ce2bd3a978569 SHA512 808eb06718f1e9e3ecc6de37683cc632b822e1ef9236011fba7b72ba3cd4be238c01ae66651bae304e5118d930898635116488517ca7ec3124e4bc2f987e24e6

@ -1,34 +0,0 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DESCRIPTION="A command-line interface for Hetzner Cloud"
HOMEPAGE="https://github.com/hetznercloud/cli"
SRC_URI="https://dev.gentoo.org/~ago/distfiles/${P}.tar.xz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="amd64"
IUSE=""
DEPEND="dev-lang/go:="
RESTRICT="strip"
QA_FLAGS_IGNORED=".*"
src_compile() {
go build -mod vendor -o ${PN} -ldflags "-w -X github.com/hetznercloud/cli/internal/version.Version=${PV}-gentoo" ./cmd/${PN} || die "build failed"
}
src_test() {
# For upstream a simple test is run 'hcloud version'
./hcloud version
if [[ $? -ne 0 ]]
then
die "Test failed"
fi
}
src_install() {
dobin ${PN}
}

@ -9,7 +9,7 @@ SRC_URI="https://dev.gentoo.org/~ago/distfiles/${P}.tar.xz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64"
KEYWORDS="amd64"
IUSE=""
DEPEND="dev-lang/go:="

@ -1,2 +1,3 @@
DIST mcelog-182.tar.gz 314857 BLAKE2B fc0716a468ce3eb4fd08806913c7e5e7481f0181f1217bf6e7bc6d675651dd04adac3cd0927428a6f88b15ddd919fbb1c26a4cfd977c3d902906fc09170bb1b3 SHA512 546fd30d16b00efb79e0df49c4c2d7cff08280762f04c4f67c3ceed500dcd19ba63a6eeb55f6ee444f9bbae04431745eb8aa3ded609c10e6be69cf5dd7722443
DIST mcelog-187.tar.gz 314380 BLAKE2B bc9ea27af67c9dfe5efc9b47d392d25b87e6da781b04bfa9553119f78a524200222c95236f30281414434b97e0d99d2d4cd231275d86d51fe718571bf102e3ff SHA512 dc9c7279e115ca9f2611b80662b015044ecfe43602b17681ef6f3211902bfbc3fc58a7490f65ec46448ec9a1c0a80f018b45ae53d56c96789e41ae5186d0b0e3
DIST mcelog-188.tar.gz 314373 BLAKE2B 379ff871026de9c1c6bfd474ccf2a9a670af8e97027811ac30f27172759b809d6b00c38d2f473860482936ede3e566f25b23e707b38715ea33e2720da8e89ae7 SHA512 6d06671649a40327a1d6e27c5df5b46d5696c9d38b7f39273835db7f4a74530df96a83fec63a84c593ba5043a0b11b3d947d4e7ec7c3d5e7483577938b70cfb3

@ -0,0 +1,51 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{9..11} )
inherit linux-info python-any-r1 systemd toolchain-funcs
DESCRIPTION="A tool to log and decode Machine Check Exceptions"
HOMEPAGE="http://mcelog.org/"
SRC_URI="https://github.com/andikleen/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="selinux"
RDEPEND="selinux? ( sec-policy/selinux-mcelog )"
DEPEND="${PYTHON_DEPS}"
# TODO: add mce-inject to the tree to support test phase
RESTRICT="test"
pkg_pretend() {
if [[ ${MERGE_TYPE} != buildonly ]]; then
local CONFIG_CHECK="~X86_MCE"
kernel_is -ge 4 12 && CONFIG_CHECK+=" ~X86_MCELOG_LEGACY"
check_extra_config
fi
}
src_prepare() {
eapply "${FILESDIR}"/${PN}-0.8_pre1-timestamp-${PN}.patch \
"${FILESDIR}"/${PN}-129-debugflags.patch
eapply_user
tc-export CC
python_fix_shebang genconfig.py
}
src_install() {
default
insinto /etc/logrotate.d/
newins ${PN}.logrotate ${PN}
newinitd "${FILESDIR}"/${PN}.init-r1 ${PN}
systemd_dounit ${PN}.service
dodoc *.pdf
}

Binary file not shown.

@ -11,7 +11,7 @@ SRC_URI="https://github.com/apple-oss-distributions/xar/archive/xar-${APPLE_PV}.
LICENSE="BSD-2"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~ppc ppc64 ~riscv sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
DEPEND="
elibc_musl? ( sys-libs/fts-standalone )

Binary file not shown.

@ -1,3 +1,2 @@
DIST borgmatic-1.6.1.tar.gz 300375 BLAKE2B b56c31da62591b8bfd3c0146e77cab7ab28f942c59ca0f6cf7342d80bc31249dfcbd59fae13025a0fe464de326b6758169be983d2b741ecc37062961541fb892 SHA512 c48fb89167ce188feeb9d51ae9caabf985f9c583d09840d3dd4aaf772a4acbd3c22399958740820b9fbf61603769a604dc92b72448e2c7196fae855549f3c6d5
DIST borgmatic-1.6.5.tar.gz 322857 BLAKE2B 8d342800ad92a9bddae95eb7b0ee8aabdf792f4b36e696ae15c7dd1318f18c983dad4984c7a7a0a0aeab21760533655d97bc199cd3066dbb01f329cc1c7d15d2 SHA512 26438886b9b22760c12565a58e2337a45fad5d54e3fb061119c73b2a2ac36b3decdff656303796649107a74de8a5a09f8edd70b4e1d94533a662a67d2f124b95
DIST borgmatic-1.6.6.tar.gz 323601 BLAKE2B b40d8f00e3b7bbd343336cf4c6992e34d8289de451c184717827e8e43519b84d4bb9b8cff6a835a7cc502d2e93045f0196d744e4b6ad800de1276e11c3189cec SHA512 f1a6dfa344ebee89e88f1aa6b43d8493c80815c637d8e0f7f6314462fd511b576e62246d957023ab2f9a68875d2818e2b8ef00cbf3339dc35a93d6ebad0bed19

@ -1,65 +0,0 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{8..11} )
DISTUTILS_SINGLE_IMPL=1
DISTUTILS_USE_PEP517=setuptools
inherit distutils-r1 systemd
DESCRIPTION="Automatically create, prune and verify backups with borgbackup"
HOMEPAGE="https://torsion.org/borgmatic/"
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~riscv"
# borg is called as an external tool, hence no pythonic stuff
RDEPEND="app-backup/borgbackup
$(python_gen_cond_dep '
<dev-python/colorama-0.5[${PYTHON_USEDEP}]
dev-python/jsonschema[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
<dev-python/ruamel-yaml-0.18.0[${PYTHON_USEDEP}]
dev-python/setuptools[${PYTHON_USEDEP}]
')"
BDEPEND="
test? (
$(python_gen_cond_dep '
>=dev-python/flexmock-0.10.10[${PYTHON_USEDEP}]
')
)"
PATCHES=(
"${FILESDIR}"/${PN}-1.5.1-no_test_coverage.patch
"${FILESDIR}"/${PN}-1.5.16-systemd_service_bin_path.patch
)
# test_borgmatic_version_matches_news_version tries to run the 'borgmatic'
# executable so making it work would require passing --install
# to distutils_enable_tests. Given that this is the only test requiring
# this and that all it does is make sure the NEWS file has been updated
# for the current version, just skip it.
EPYTEST_DESELECT=(
tests/integration/commands/test_borgmatic.py::test_borgmatic_version_matches_news_version
)
distutils_enable_tests pytest
src_install() {
distutils-r1_src_install
systemd_dounit sample/systemd/borgmatic.{service,timer}
keepdir /etc/borgmatic
}
pkg_postinst() {
if [[ -z "${REPLACING_VERSIONS}" ]]; then
elog "To generate a sample configuration file, run:"
elog " generate-borgmatic-config"
fi
elog
elog "Systemd users wishing to periodically run borgmatic can use the provided timer and service units."
}

Binary file not shown.

@ -31,6 +31,7 @@ CONFIG_CHECK="~PROC_EVENTS ~TASKSTATS ~TASK_DELAY_ACCT ~TMPFS"
PATCHES=(
"${FILESDIR}"/${PN}-0.14.8-no-compressed-man.patch
"${FILESDIR}"/${P}-glibc-2.36.patch
)
src_prepare() {

@ -0,0 +1,24 @@
https://bugs.gentoo.org/864205
https://github.com/xrmx/bootchart/commit/8591c1e3edaea8f17396e3d2819d9064b2818cfb
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 6 Aug 2022 20:39:01 -0700
Subject: [PATCH] Do not include linux/fs.h
This header is not needed to be included anymore, moreover it conflicts
with sys/mount.h from glibc 2.36+ see [1]
[1] https://sourceware.org/glibc/wiki/Release/2.36
Signed-off-by: Khem Raj <raj.khem@gmail.com>
--- a/collector/collector.c
+++ b/collector/collector.c
@@ -34,7 +34,6 @@
#include <sys/mount.h>
#include <sys/sysmacros.h>
-#include <linux/fs.h>
#include <linux/genetlink.h>
#include <linux/taskstats.h>
#include <linux/cgroupstats.h>

Binary file not shown.

@ -4,7 +4,6 @@
EAPI=8
ECM_HANDBOOK="false"
KDE_GEAR="true"
KDE_ORG_CATEGORY="sdk"
KDE_ORG_NAME="dolphin-plugins"
MY_PLUGIN_NAME="mountiso"

Binary file not shown.

@ -11,7 +11,7 @@ SRC_URI="https://github.com/apptainer/${PN}/releases/download/v${PV}/${P}.tar.gz
SLOT="0"
LICENSE="BSD"
KEYWORDS="~amd64 ~riscv ~x86 ~amd64-linux ~x86-linux"
KEYWORDS="amd64 ~riscv ~x86 ~amd64-linux ~x86-linux"
IUSE="examples +network +suid"
# Do not complain about CFLAGS etc. since go projects do not use them.

@ -26,6 +26,7 @@ COMMON_DEPEND="
dev-libs/libassuan:=
dev-libs/libgpg-error:=
>=app-containers/cni-plugins-0.8.6
sys-apps/shadow:=
sys-fs/lvm2
sys-libs/libseccomp:=

@ -26,6 +26,7 @@ COMMON_DEPEND="
dev-libs/libassuan:=
dev-libs/libgpg-error:=
>=app-containers/cni-plugins-0.8.6
sys-apps/shadow:=
sys-fs/lvm2
sys-libs/libseccomp:=

@ -26,6 +26,7 @@ COMMON_DEPEND="
dev-libs/libassuan:=
dev-libs/libgpg-error:=
>=app-containers/cni-plugins-0.8.6
sys-apps/shadow:=
sys-fs/lvm2
sys-libs/libseccomp:=

Binary file not shown.

@ -1,2 +1,4 @@
DIST gpgme-1.17.1.tar.bz2 1747692 BLAKE2B 44cf9309cbad038f23aa7c5c77fd85be23faf3d8e1eb7abdb87a737ad1ade1ee269a95ce618dba327bbd06e6f4b2a91e2446744ee08f09ea6fb3b2dad44431c5 SHA512 e6399c3de1e430e38f2692bf5ec0c02ecb36ea3dbb56ff29dc3a438a5be4900a77a0559dc5b673dc1ffbff5e7f589e548e19176b2644fe8f63e00c6b9181b920
DIST gpgme-1.17.1.tar.bz2.sig 119 BLAKE2B 31832424c0e029dc520d3302a71b086d9fcb044c74344cc0fb4b6c6a02d0dd840e62e7eb60acfaf004e6f3650d58436b58e645ef2a50b948ecaf3ca162bf577a SHA512 e1a4213d0d39f2efd0d5c007a0449c76bd650e76e002a9acb673eef0579912db06d844df11a4f7cb821e1d8468d2d6c1303f1c5d915a5c3c9cb5abacfbd004fc
DIST gpgme-1.18.0.tar.bz2 1762323 BLAKE2B a071b839eb75455378514f003920cd387320e9fae416e71151cf6ac1b4a058b58ed054450b79e3eeaf820ff5324ea14efa003612867477b7379a776942d62be6 SHA512 c0cb0b337d017793a15dd477a7f5eaef24587fcda3d67676bf746bb342398d04792c51abe3c26ae496e799c769ce667d4196d91d86e8a690d02c6718c8f6b4ac
DIST gpgme-1.18.0.tar.bz2.sig 119 BLAKE2B 968f8b24ec71b4157214dd026aed83c96894ef353a9cb171f268d640a62fe464ba43540f318abf95dcfc19dffab177a0c3ad8a6e9937dc80e4ececbc8ceb3203 SHA512 02958d86cc037fffc787c6611ace8676d4e04cc1f65fd117eb911d3bfd665dddb7849bcd838af598465be78960f54883eac09c29c42f891f2e4b9713095aed7d

@ -0,0 +1,27 @@
Sent upstream to gnupg-devel@ but not yet in archive.
From: Sam James <sam@gentoo.org>
Date: Mon, 15 Aug 2022 19:29:06 +0100
Subject: [PATCH] tests/start-stop-agent: use 'command -v' instead of 'which'
`which` is an external command which isn't required by POSIX.
Debian and other distributions (like Gentoo!) are looking
to drop it from their base set of packages.
Switch to `command -v` which should always work instead.
Note we already use `command -v` at the start of this test anyway.
Signed-off-by: Sam James <sam@gentoo.org>
--- a/tests/start-stop-agent
+++ b/tests/start-stop-agent
@@ -15,7 +15,7 @@ fi
GPG_AGENT_INFO=
export GPG_AGENT_INFO
-GPG_AGENT=$(which gpg-agent)
+GPG_AGENT=$(command -v gpg-agent)
token=$(echo "gpgme-$(pwd)" | tr ' ' '_')

@ -0,0 +1,132 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{8..11} )
DISTUTILS_OPTIONAL=1
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/gnupg.asc
inherit distutils-r1 libtool flag-o-matic qmake-utils toolchain-funcs verify-sig
DESCRIPTION="GnuPG Made Easy is a library for making GnuPG easier to use"
HOMEPAGE="https://www.gnupg.org/related_software/gpgme"
SRC_URI="mirror://gnupg/gpgme/${P}.tar.bz2
verify-sig? ( mirror://gnupg/gpgme/${P}.tar.bz2.sig )"
LICENSE="GPL-2 LGPL-2.1"
# Please check ABI on each bump, even if SONAMEs didn't change: bug #833355
# Use e.g. app-portage/iwdevtools integration with dev-libs/libabigail's abidiff.
# Subslot: SONAME of each: <libgpgme.libgpgmepp.libqgpgme.FUDGE>
# Bump FUDGE if a release is made which breaks ABI without changing SONAME.
# (Reset to 0 if FUDGE != 0 if libgpgme/libgpgmepp/libqpggme change.)
SLOT="1/11.6.15.1"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="common-lisp static-libs +cxx python qt5 test"
RESTRICT="!test? ( test )"
# Note: On each bump, update dep bounds on each version from configure.ac!
RDEPEND=">=app-crypt/gnupg-2
>=dev-libs/libassuan-2.5.3:=
>=dev-libs/libgpg-error-1.36:=
python? ( ${PYTHON_DEPS} )
qt5? ( dev-qt/qtcore:5 )"
#doc? ( app-doc/doxygen[dot] )
DEPEND="${RDEPEND}
test? (
qt5? ( dev-qt/qttest:5 )
)"
BDEPEND="python? ( dev-lang/swig )
verify-sig? ( sec-keys/openpgp-keys-gnupg )"
REQUIRED_USE="qt5? ( cxx ) python? ( ${PYTHON_REQUIRED_USE} )"
PATCHES=(
"${FILESDIR}"/${PN}-1.18.0-tests-start-stop-agent-use-command-v.patch
)
do_python() {
if use python; then
pushd "lang/python" > /dev/null || die
top_builddir="../.." srcdir="." CPP="$(tc-getCPP)" distutils-r1_src_${EBUILD_PHASE}
popd > /dev/null || die
fi
}
src_prepare() {
default
elibtoolize
# bug #697456
addpredict /run/user/$(id -u)/gnupg
local MAX_WORKDIR=66
if use test && [[ "${#WORKDIR}" -gt "${MAX_WORKDIR}" ]]; then
eerror "Unable to run tests as WORKDIR='${WORKDIR}' is longer than ${MAX_WORKDIR} which causes failure!"
die "Could not run tests as requested with too-long WORKDIR."
fi
# Make best effort to allow longer PORTAGE_TMPDIR
# as usock limitation fails build/tests
ln -s "${P}" "${WORKDIR}/b" || die
S="${WORKDIR}/b"
}
src_configure() {
local languages=()
use common-lisp && languages+=( "cl" )
use cxx && languages+=( "cpp" )
if use qt5; then
languages+=( "qt" )
#use doc ||
export DOXYGEN=true
export MOC="$(qt5_get_bindir)/moc"
fi
# bug #847955
append-lfs-flags
# bug #811933 for libassuan prefix
econf \
$(use test || echo "--disable-gpgconf-test --disable-gpg-test --disable-gpgsm-test --disable-g13-test") \
--enable-languages="${languages[*]}" \
--with-libassuan-prefix="${ESYSROOT}"/usr \
$(use_enable static-libs static)
use python && emake -C lang/python prepare
do_python
}
src_compile() {
default
do_python
}
src_test() {
default
use python && distutils-r1_src_test
}
python_test() {
emake -C lang/python/tests check \
PYTHON=${EPYTHON} \
PYTHONS=${EPYTHON} \
TESTFLAGS="--python-libdir=${BUILD_DIR}/lib"
}
src_install() {
default
do_python
find "${ED}" -type f -name '*.la' -delete || die
# Backward compatibility for gentoo
# (in the past, we had slots)
dodir /usr/include/gpgme
dosym ../gpgme.h /usr/include/gpgme/gpgme.h
}

@ -11,7 +11,7 @@ SRC_URI="https://developers.yubico.com/${PN}/Releases/${P}.tar.xz"
LICENSE="LGPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
KEYWORDS="amd64 ~arm64 ~ppc64 ~x86"
IUSE="systemd"
DEPEND="dev-libs/hidapi

@ -35,7 +35,12 @@ DEPEND="${RDEPEND}
dev-qt/qttest:5
)
"
BDEPEND="doc? ( app-doc/doxygen )"
BDEPEND="
doc? (
app-doc/doxygen[dot]
virtual/latex-base
)
"
PATCHES=( "${FILESDIR}/${PN}-disable-pgp-test.patch" )

Binary file not shown.

@ -293,7 +293,9 @@ src_test() {
# Too sensitive to leaked environment variables.
# - Test_term_mouse_multiple_clicks_to_select_mode
# Hangs.
export TEST_SKIP_PAT='\(Test_expand_star_star\|Test_exrc\|Test_job_tty_in_out\|Test_spelldump_bang\|Test_fuzzy_completion_env\|Test_term_mouse_multiple_clicks_to_select_mode\)'
# - Test_spelldump
# Hangs.
export TEST_SKIP_PAT='\(Test_expand_star_star\|Test_exrc\|Test_job_tty_in_out\|Test_spelldump_bang\|Test_fuzzy_completion_env\|Test_term_mouse_multiple_clicks_to_select_mode\|Test_spelldump\)'
emake -j1 -C src/testdir nongui
}

@ -293,7 +293,9 @@ src_test() {
# Too sensitive to leaked environment variables.
# - Test_term_mouse_multiple_clicks_to_select_mode
# Hangs.
export TEST_SKIP_PAT='\(Test_expand_star_star\|Test_exrc\|Test_job_tty_in_out\|Test_spelldump_bang\|Test_fuzzy_completion_env\|Test_term_mouse_multiple_clicks_to_select_mode\)'
# - Test_spelldump
# Hangs.
export TEST_SKIP_PAT='\(Test_expand_star_star\|Test_exrc\|Test_job_tty_in_out\|Test_spelldump_bang\|Test_fuzzy_completion_env\|Test_term_mouse_multiple_clicks_to_select_mode\|Test_spelldump\)'
emake -j1 -C src/testdir nongui
}

Binary file not shown.

@ -0,0 +1 @@
DIST nginx-mode-1.1.9.tar.gz 3290 BLAKE2B 7a20632ed860e1e4f0f379f8c489bdb3f6a1eb09cf790ca4124dd08b631a101796fb96efc73672cc59b812c0136015d955a9d6bab2ccb223d777f299dd1c04c7 SHA512 a209b83f39696ccea8d45b0d90a25b4cdb56f85f1288ca9a7bf83b24a7d69ae2a1caea5e71f7c62ef693f8aac3e74e5dce7761b69ded7da037904df1c9d43536

@ -0,0 +1,2 @@
(add-to-list 'load-path "@SITELISP@")
(load "nginx-mode-autoloads" nil t)

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>gnu-emacs@gentoo.org</email>
<name>Gentoo GNU Emacs project</name>
</maintainer>
<upstream>
<bugs-to>https://github.com/ajc/nginx-mode/issues/</bugs-to>
<remote-id type="github">ajc/nginx-mode</remote-id>
</upstream>
</pkgmetadata>

@ -0,0 +1,22 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit elisp
DESCRIPTION="Emacs editing mode for Nginx config files"
HOMEPAGE="http://github.com/ajc/nginx-mode"
SRC_URI="https://github.com/ajc/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-2+"
KEYWORDS="~amd64 ~x86"
SLOT="0"
DOCS=( README.md )
SITEFILE="50${PN}-gentoo.el"
src_compile() {
elisp_src_compile
elisp-make-autoload-file
}

Binary file not shown.

@ -15,7 +15,7 @@ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64"
KEYWORDS="amd64"
IUSE="+gui"
RDEPEND="app-emulation/winetricks

Binary file not shown.

@ -4,7 +4,6 @@
EAPI=8
KDE_ORG_CATEGORY="pim"
KDE_GEAR="true"
ECM_TEST="forceoptional"
PVCUT=$(ver_cut 1-3)
KFMIN=5.92.0

@ -1,18 +1,9 @@
DIST amd64-debug-libreoffice-7.3.3.2-r3.tar.xz 1497663004 BLAKE2B 50a3083f4faf1b10887f41cdfb0f263751d3e35ad8bece5df1a30e04a18d9b9cb04593bdf514a59600eaa3912f44d6699be0ad41e8317372c0b8b8605a3a2f0e SHA512 20b727e7912026248a5de940bf3072b00ad668be5501f54a2d93afa13e9bc4bace004771e7137dfabe94a789a6591323e06938b247d8ed5124b243f0acce8d7e
DIST amd64-debug-libreoffice-7.3.4.2.tar.xz 1497883572 BLAKE2B 079fbc4e59aaf3b9ff613194f7c17122046c5389f344be5a504a94781e882ce94079686fda5c399868abe10da9f757fb953a4f90d77ac6337397e0244b56c632 SHA512 9e71642bff4086cb5f63d1088768e6a55e1090c3bfad2da019942be08f396780e7945803a7f6ad9d265a7f16d83b233daa685bfb1e80ccca6513368dedc54797
DIST amd64-debug-libreoffice-gnome-7.3.3.2-r3.xd3 1426942 BLAKE2B 4065ec4424c66cecb63a2c565e7622e822d0111d7791810ba7611626c188202b6213b5d61ac51e053b7a9b149de265b28d2a97891aa90269821fac780567a190 SHA512 470acdf23a0a63f5e3e70c050df421693674196019ef2f4f7e4238c8d8aca489b33748bc8ab3682b5b63a773c30c124219e1017ff58552ead31ca9091015c289
DIST amd64-debug-libreoffice-gnome-7.3.4.2.xd3 1426754 BLAKE2B 81e61d78f1943cdbae2ed7b4ffb5baa3144dfae8a3b8b9aeb9b893b020a85dc5ee2472548958df98c5b628674e73fcd6624884d394a0251bedcf19b321896e20 SHA512 ef77b52a56753225b7d31f63705af90cf5f693de595383e93d4731d10f654ed3135b50d7f582d968c359c75a3348937e45089e7e47aa1e76025e266fc07b120c
DIST amd64-debug-libreoffice-gnome-java-7.3.3.2-r3.xd3 781950066 BLAKE2B 9029d5962874b841b331449809b89ef0e7558bd5c7417953c460489697b8eb3892e66d9d66c19906a76dd94f203e9e81b41e9df4a90f62fe4453c56f7c16d1cd SHA512 87099de1886084f238fa85bbfdeec4057fb8d59e9d6284b46d9a9a3f5abbf2c5715b2b685af3d2198fb1be0b2ada0c5f350b9cc26faf98094acb363d3f38a5e9
DIST amd64-debug-libreoffice-gnome-java-7.3.4.2.xd3 782367431 BLAKE2B 1cb5e9812164d3069c2196b3d52e3b871114789fb1d1e24599a0b12e51ce7bef4d5902ed7589e77df1c1271f25c00192e1742ce43b6ce3a3796fa5448241de27 SHA512 1068effa4b0b0eaa9fb03c06f556a9dc89c22f1702e6aa20690e16a787a557f794e6de726ba2d2280498a7d71e75c67d648f6e7bb36473a4504acba951b1f7c1
DIST amd64-debug-libreoffice-java-7.3.3.2-r3.xd3 780540993 BLAKE2B d684f08931576e798847ccd8eeda1b2c9f46fd9af89d1b5c3b1c3d6b27e086d11e86946c6c628348666a19af23f11bdea6b4159fba400bbe2341ea2b52baf02b SHA512 a5c742c60d380585759ee5710c86559fe5e0b777f6b54e1c3b5fee0c6888b9a905f4272ca584765212d082aeae787ad4868d556d604047a63a494adb8eda8174
DIST amd64-debug-libreoffice-java-7.3.4.2.xd3 780949590 BLAKE2B 17bc92b792c19fa89331f2d232888c52bf1c5ee7310143b7ecf3839bd3c9af2406662869c6208d5a99b9506b128fc9fc03bfb889d2c76671f7627d4d1c7f935a SHA512 409d42e47e01f33850616d9bc8aed06e3ab6b19240abab7774e82680fcc7b22f9818d8a037a12d0f9a311a471920bbbf974ae64231395018329232cf6b71ed4a
DIST amd64-debug-libreoffice-kde-7.3.3.2-r3.xd3 475252964 BLAKE2B f201b68122d03628110f71b6b6ccbb9281e9efc023c0034b2ed620667c7f51156ca3c7f13609faca4e5e0bc8ba13612f8d7b2ca5867dfa6f1a3ff82c524c9af1 SHA512 f2f737a627226ce80c1ccb12a69d8eacc762cba52eba77c3017efdb4bf4a609956626024e4cd9a15dee3aa0090ac7a47795c3b01c0723eb6584f3c12753ded5e
DIST amd64-debug-libreoffice-kde-7.3.4.2.xd3 474987720 BLAKE2B 1c1aa0ff471339655f376cfc711bfe2c18ade7eebedd89e2157927a06567892687d5281318097b939b9f21e67dd4a9661a2ef3880f7071cadf484e838f2802e1 SHA512 15dc56a6980795898217b0698931b7abc3abc45e766791eb22f1800f1771e29d41719d7fed0a2afad556704db2cea531a2eb743ea1e4886a7ebc14e30630ea62
DIST amd64-debug-libreoffice-kde-java-7.3.3.2-r3.xd3 785272796 BLAKE2B 6c4678af64da1913b52733fedce5ef544f18f78616d056eb42793e2fad17a1d5c4ec331dd4c9d1a5c0f5d65e59237d41cdcad324b6adda7bf1ff5c22ad28b3d6 SHA512 fac9fbf9a3185035a2132a9bcb8f0fb57bc2540b3f1758ad043563c74b51ad17b42d760a61b1fe07826a25d0c9e2e59be3fc607c3e9e80e16fe4e7d7e2934c82
DIST amd64-debug-libreoffice-kde-java-7.3.4.2.xd3 785653723 BLAKE2B e99cc01dd938e4a84b71e0597bebd1d14ab452051c5f4f0c4a582266fcaa0af8fb52c9f4ecfb7ce157a622c0a676e996160c43b3a5b82c14b954615bdf4e0db3 SHA512 4ce0fcc0f093a18448773a5342e114635461f42ab3517957f507d061e9e84ff34ef75bc28b6b42886fe61f1f6d5ace2a81229c4b62ceefb644910e7ab1003807
DIST x86-debug-libreoffice-7.3.3.2-r3.tar.xz 1466296624 BLAKE2B 2978c81e86af058a583b97992de6a8e453f7c1825eeb7b71354dbc11b115803234dce7df88996372e8f1c317bfda9f3b0c3cda563af71b6c6cd66177cabd1978 SHA512 28c9d2a25661c066178559569e00966b277f78776762b4ff104c3ee4e6eeffe59683b1c17f4a102cedb0ab88b1311b5d70cb991376b08102c2c811ecf37cb612
DIST x86-debug-libreoffice-7.3.4.2.tar.xz 1466311484 BLAKE2B fe6dd69d7475e9b8df48667ed904d694204d6f4a8172c0c7f361031b19356c573a7d72b89e09726257d02ff3e15157ac17dc82d5be04be646032a2d4bc2d982d SHA512 ab3c7fdb00cf235ed0a10898589ed23819ba450ac52d5bda65be92af22a0541994fb178ae6cd478ca0d512b9853f7fa8abae8c5e49cb4914104e006d47eb854f
DIST x86-debug-libreoffice-gnome-7.3.3.2-r3.xd3 1385520 BLAKE2B 6275a12d860f493d0838e8cac518cd0a2a840a6be99d89b7964a44f81f26312c87bded4e67d33e4e6e4223ce14b4428e399da60b25f96e24085eef618cddd43b SHA512 ef35204b09b0ea62620950dd7f17cc012a31508963c6442fae2b36d39d468223d28fd251ac82ba26416b17bb3f89c3b4ed38165942da5b271192b525f08eb37b
DIST x86-debug-libreoffice-gnome-7.3.4.2.xd3 1385099 BLAKE2B 078b2d57f31ac2a78304ff84d97e6dc27d05905652c5e5430f833987a3967c9322765767ccc56a88d3656b2e84a06d99d5902fcfc65d047537182fb33b3d7a4c SHA512 03b03497bfa7edd180e2f501f16a48f8100eb74f9e5d324d9b998b22304ae6273868a848697c923dafbaba6e93c77d91bb90c69c1a4e69a25b92d330a97e7887
DIST x86-debug-libreoffice-kde-7.3.3.2-r3.xd3 452781808 BLAKE2B 7f4ec8aa2723949aa56170803e451639a3e6608449e465c817166ff8ffc9552a111186bccdd835449090786a7add2898445559368fb5a8c71b600f30a31ed968 SHA512 853a9cfd782077a86d9e34f1df9ae1718e36f628877a6aa7b311e82e56beca86322959d95beceaa2a4b760fc28bb1191fd4d9d8a4063acc648165e786f58033c
DIST x86-debug-libreoffice-kde-7.3.4.2.xd3 452751390 BLAKE2B 503af0a857842f7654f775c0775d5ccfbcfba6e7367e0b73abe9dd62c4ff74126d73e51ed8ad4dfce44376bb999dd066cb346220072044d40d7288d11743a88b SHA512 f39a58170fef3ab7044327298a8033e62856c23ca5632107a6ca6614111a9bf2a2dd22818f2696359bb3d5981dd641f153d44e433d47ef6ab1f71e83403ed4e8

@ -1,85 +0,0 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
BASE_PACKAGENAME="debug"
BASE_AMD64_URI="https://tamiko.43-1.org/distfiles/amd64-${BASE_PACKAGENAME}-"
BASE_X86_URI="https://tamiko.43-1.org/distfiles/x86-${BASE_PACKAGENAME}-"
DESCRIPTION="LibreOffice, a full office productivity suite. Binary package, debug info"
HOMEPAGE="https://www.libreoffice.org"
SRC_URI_AMD64="
${BASE_AMD64_URI}libreoffice-${PVR}.tar.xz
kde? (
!java? ( ${BASE_AMD64_URI}libreoffice-kde-${PVR}.xd3 )
java? ( ${BASE_AMD64_URI}libreoffice-kde-java-${PVR}.xd3 )
)
gnome? (
!java? ( ${BASE_AMD64_URI}libreoffice-gnome-${PVR}.xd3 )
java? ( ${BASE_AMD64_URI}libreoffice-gnome-java-${PVR}.xd3 )
)
!kde? ( !gnome? (
java? ( ${BASE_AMD64_URI}libreoffice-java-${PVR}.xd3 )
) )
"
SRC_URI_X86="
${BASE_X86_URI}libreoffice-${PVR}.tar.xz
kde? (
${BASE_X86_URI}libreoffice-kde-${PVR}.xd3
)
gnome? (
${BASE_X86_URI}libreoffice-gnome-${PVR}.xd3
)
"
SRC_URI="
amd64? ( ${SRC_URI_AMD64} )
x86? ( ${SRC_URI_X86} )
"
IUSE="gnome java kde"
LICENSE="LGPL-3"
SLOT="0"
KEYWORDS="-* amd64 x86"
# the = is correct, the debug info needs to fit the exact binary
RDEPEND="=app-office/${PN/-debug}-${PVR}[gnome=,java=,kde=]"
DEPEND="dev-util/xdelta:3"
RESTRICT="test strip"
S="${WORKDIR}"
QA_PREBUILT="/usr/*"
src_unpack() {
einfo "Uncompressing distfile ${ARCH}-${BASE_PACKAGENAME}-libreoffice-${PVR}.tar.xz"
xz -cd "${DISTDIR}/${ARCH}-${BASE_PACKAGENAME}-libreoffice-${PVR}.tar.xz" > "${WORKDIR}/${ARCH}-${BASE_PACKAGENAME}-libreoffice-${PVR}.tar" || die
use x86 && use java && die "There is no build for x86 with Java support."
local patchname
use kde && patchname="-kde"
use gnome && patchname="-gnome"
use java && patchname="${patchname}-java"
if [[ -n "${patchname}" ]]; then
einfo "Patching distfile ${ARCH}-${BASE_PACKAGENAME}-libreoffice-${PVR}.tar using ${ARCH}-${BASE_PACKAGENAME}-libreoffice${patchname}-${PVR}.xd3"
xdelta3 -d -s "${WORKDIR}/${ARCH}-${BASE_PACKAGENAME}-libreoffice-${PVR}.tar" "${DISTDIR}/${ARCH}-${BASE_PACKAGENAME}-libreoffice${patchname}-${PVR}.xd3" "${WORKDIR}/tmpdist.tar" || die
mv "${WORKDIR}/tmpdist.tar" "${WORKDIR}/${ARCH}-${BASE_PACKAGENAME}-libreoffice-${PVR}.tar" || die
fi
einfo "Unpacking new ${ARCH}-${BASE_PACKAGENAME}-libreoffice-${PVR}.tar"
unpack "./${ARCH}-${BASE_PACKAGENAME}-libreoffice-${PVR}.tar"
}
src_configure() { :; }
src_compile() { :; }
src_install() {
dodir /usr
cp -aR "${S}"/usr/* "${ED}"/usr/ || die
}

@ -1,18 +1,9 @@
DIST amd64-bin-libreoffice-7.3.3.2-r3.tar.xz 142385916 BLAKE2B a46f7f3efa4db9a3a341cd69d445a4a82806880e6e14eec5bcc621fd9396f7d3ca68c05be6651169099f553412192ffeb7e3d5f127cd926ac408e465bb82036e SHA512 400a7d08907f86d48d28c392377ad02790f79bbe4b1147de70b21622cb622118e9e62c90ccc8f750e63f7efdc67209c789f63df49d7a388066ff4b5a375d54b3
DIST amd64-bin-libreoffice-7.3.4.2.tar.xz 142347312 BLAKE2B 0db00b707b7c7bd86ef4406eb36958fc7425a1ea1e2783a0e1d2ff0ace9da2633f2e2ea6f6fe1c363f2e31f11cdd1d897da941c5af8133598ad7fedf944d9ea6 SHA512 60559fbcadb97429b9e5b982317ed22bd2501462ad73ad9dd38e32beb197b590898d417fa224288cc8910a6e2701c2ab61ae37d44649612de0f74c9521c7a744
DIST amd64-bin-libreoffice-gnome-7.3.3.2-r3.xd3 1485486 BLAKE2B 617fd8ae2496353cee690336fc3cfb5f5fbaf497d35d50b1bc26cd6cbb29a9e2f5b461157e8da8e3cec15d9dba9519dd388acd90144f25d46590b052b10cd394 SHA512 81dcd57dae4a20b8d629825155bb4c024bb9796e5e1deb44caaf4bc7aed4447a19eb396c33c96a1b04ebd908d69e24820e0415de46d1999331f70d4cfe18935b
DIST amd64-bin-libreoffice-gnome-7.3.4.2.xd3 1483443 BLAKE2B 400a147efa62b6caef172785ec83a6767ab0a1d0faacf86f063e2dbd5f7eaca1258d5f7467943cb89bb1678de9ddc04a0c49884938d554897ebd3eaa5ee1bb57 SHA512 7325a943ec884a4b4048788c5417f380ee4f3130f142a38084c07014dde338bc9fc352eb4a36cd744d3ddb1acdd0e3c59b73751413df6897e7e940a18f93e2c8
DIST amd64-bin-libreoffice-gnome-java-7.3.3.2-r3.xd3 30886601 BLAKE2B 469e1f72bb8bc8a5707edf33fd5e67cd717d4a540d48598c165376a67e039bde84e5756ba4eafe3246e1755777e82cb9c55012a8d57dd2ae28003a280f3bb9f7 SHA512 e2816bcfb63d0602f0f4a840c9ddecf23868aca277efa59e74e60aa478236e93332b743ea4185a9c27f8d5f43db3874051f1bbbfc183d1c245b004e24e6a993b
DIST amd64-bin-libreoffice-gnome-java-7.3.4.2.xd3 30944697 BLAKE2B 60af115380b3a0edde5b9ae0efec431b02f4f63e869fc2542c4cf8732b504f6881c0c13cd9c5d9c1e9f4611b3756aba162a07ec3a95022917b587fdede12436f SHA512 937a08b3aa145c794514752082a09037303c3bf5be2e3c4d2da4f0cd6c5e45f627921e814701317f3f7b38dcf9c76e722512268be09ebcf2488563a3403cd95f
DIST amd64-bin-libreoffice-java-7.3.3.2-r3.xd3 30751415 BLAKE2B 325deb2c13dff85682f4927cfd04c9699ec9c79564e602646f68e89a3b6e72c76aad972a60dd70b36ba7f20455964f670ad0673a408fc95a59aee8961888d547 SHA512 f5d696c984c2eaf4f28b7e44eeab199bc294b323d5215d71b9dff73797726ec24d20d18fac146d79d2e306868d8e8bd6773956a43dd7f3c03cb5ffd82b938f9b
DIST amd64-bin-libreoffice-java-7.3.4.2.xd3 30817504 BLAKE2B 5769439f397ee2917efc700d9d576d1a4429a3b60bc11470141b5e38e31f47b4c17ce3d867d76fccd5c16f3e789eb985e0b916a036f63609b477f0abcb8b01d7 SHA512 705738589b069e392551ae93509a1be7c97f0b0a8b13232a2fd60a1dc01b905b4db1eaada349a79b0529994b117dd1ffd402da14de28bdd32c959d5023a16c54
DIST amd64-bin-libreoffice-kde-7.3.3.2-r3.xd3 20923444 BLAKE2B 1f50b67b66f21a3e83012ba6a203cd75003ef13e33d820e921ff3e91ead6df72b2f8bc0adddd61401deba647748e5d2f8b490e673f9bb5bc8eb5d0f64a62c588 SHA512 bf55af25bf7ac82b126c1be243c4e64b23d9b836c173a65c986cc8d09431f270cf99cb377228bd96407be36d365aa19014a2d19a003c99bc20c043b00f2c0859
DIST amd64-bin-libreoffice-kde-7.3.4.2.xd3 20934862 BLAKE2B 201b250685d2b936ab158db74d4a136aba4cd48c1432da8574b6be2d64d7bdab08605f3903fe9611ca604e4cbaf72b5a9639184dcf2e6de0f30b63619a9a4264 SHA512 90827fcba878a1f5168e7a0d97ad7825b9d8fa2d1b15c0eb050ff13f35f3a8539f9df511a7bb1006974893cad936f5470308314d522c4d8da3ebef9ec2b219e4
DIST amd64-bin-libreoffice-kde-java-7.3.3.2-r3.xd3 30867686 BLAKE2B 352c47ec2b1b4b528cc727fb24fc8ebaa5c94339d8a9d2fae97f103d6ed6485485b1e61fdac6a1ed6958c658ee9ee92e636caf33e65d9417c871cf85f653f968 SHA512 e397779754c2a0e95d7cc1d3575774810d968d0b1ce5906cb374b0e7e534127b342636666b83dc29bf52e0eb049c2fd93da80c312f0470b39befd6bd5e0812c9
DIST amd64-bin-libreoffice-kde-java-7.3.4.2.xd3 30964144 BLAKE2B fb98d727cf9d8479e44f48148d06bd956eafcaec4f0f06ff62f50a8297d20adabb8a076979986326dbe9882ad2ec17eb97f7abadc47d523153c85ad8f874c215 SHA512 178b4583c63eff69a384f7a1805e029199a066c70aa8488fffde2e61242a45e1cec99f7c02c57087b66df029db7968e5f3c56ecc81282cd75faedbf6aac06a79
DIST x86-bin-libreoffice-7.3.3.2-r3.tar.xz 144159236 BLAKE2B 2987cfb61eaa37c7c0eec8f58efaf0c464c1e6311dc207cf9aaee85790930eacd12d38ca83684714392f20954fb07d427b3a994b61c2ecb50096f9ba22079e8d SHA512 3bbd3624d7381cc8e09035098901214dceb2c6ab985eedb219cd333b32faf80e9b12cf6bfe3e3cd148cb21d868cab276f400816f45d8b19c4fc539b42f47705a
DIST x86-bin-libreoffice-7.3.4.2.tar.xz 144147140 BLAKE2B 8505f1e18bad0c63b16a1663947c27d336525b92d307279bc705f814d8ee93183153b487fb2373788d4147d73fdd6ef9995ff6a3046145bca1a0293b3376b4fe SHA512 34e446882e87fe049056e7bfc5e9ead8bfa3c07823dcdfebba61e2b589ffac0f1797d49bea7f19c462ccfd36bb654653b58cdcee2cb596a9ef3253b4ed08f3a7
DIST x86-bin-libreoffice-gnome-7.3.3.2-r3.xd3 1446875 BLAKE2B 4d2c700c42c81422ec9834d119d141c8a255578245bb74eecaf3a785e874b20ef0dec98544ac9fb9d28bd7e2bd35e3b822793f7e86c61e04c1953cf52cba327c SHA512 b33eefe0233f7f68ca1706eacc92631fa9f45e639615449d877ef7f3716db60bf3d3166525cb298881c5c80d387ced6f19a2b87b9e295bc48669bc5998855763
DIST x86-bin-libreoffice-gnome-7.3.4.2.xd3 1448866 BLAKE2B da76f7fb0503e8cd8c074ef07a84a11b43363d4be75ff287a3a87e53d8185d31e4ca206c5161b989722f7f4e8e6c385380532ecf33a499fc5d38da9687bb9baa SHA512 a391be42e12afb2c78df70e20875433846f19183bc598674d099dc8d4d57f47b455d33f6911822bc4dd0028655d2dbbc8e592085144128ae7a4ee2d4bee10439
DIST x86-bin-libreoffice-kde-7.3.3.2-r3.xd3 18547991 BLAKE2B 09d3f38a7592ab487a241c2c4a427fa57405d95796f5ba5e1ca8036cb89630edcdab902308f89e616d1d3a0981200626c465d0465800b334c3d9f5886d09d3f6 SHA512 1fbfe49bd25f219d7ec9168aeaa9c0c8aef9303027fcc8491c5a69ce7d2ea582e02445b644a3db6f3cc3964aafda8ec6f08292617e7983680f448cd1dfffb336
DIST x86-bin-libreoffice-kde-7.3.4.2.xd3 18531900 BLAKE2B e3ed162a68a6fef8b2be6adb0be68a015290ec7c8ec1ba3cdd1a2a33f88a69f3100d1beb89c7dc0b9e4bbc78097316d8a0f7d4edf8294154ebd98cf51836d2b3 SHA512 467e661741fa40643c7a53f7980b44872a6c9bdf654456fecc66d38828928f745922a8dcccc835aa722bd0814cdbd99e4e5e51f4d35c29263e44269574d6a49d

@ -1,256 +0,0 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
BASE_PACKAGENAME="bin"
BASE_AMD64_URI="https://tamiko.43-1.org/distfiles/amd64-${BASE_PACKAGENAME}-"
BASE_X86_URI="https://tamiko.43-1.org/distfiles/x86-${BASE_PACKAGENAME}-"
PYTHON_COMPAT=( python3_10 )
PYTHON_REQ_USE="xml(+)"
inherit java-pkg-opt-2 python-single-r1 prefix toolchain-funcs xdg-utils
DESCRIPTION="A full office productivity suite. Binary package"
HOMEPAGE="https://www.libreoffice.org"
SRC_URI_AMD64="
${BASE_AMD64_URI}libreoffice-${PVR}.tar.xz
kde? (
!java? ( ${BASE_AMD64_URI}libreoffice-kde-${PVR}.xd3 )
java? ( ${BASE_AMD64_URI}libreoffice-kde-java-${PVR}.xd3 )
)
gnome? (
!java? ( ${BASE_AMD64_URI}libreoffice-gnome-${PVR}.xd3 )
java? ( ${BASE_AMD64_URI}libreoffice-gnome-java-${PVR}.xd3 )
)
!kde? ( !gnome? (
java? ( ${BASE_AMD64_URI}libreoffice-java-${PVR}.xd3 )
) )
"
SRC_URI_X86="
${BASE_X86_URI}libreoffice-${PVR}.tar.xz
kde? (
${BASE_X86_URI}libreoffice-kde-${PVR}.xd3
)
gnome? (
${BASE_X86_URI}libreoffice-gnome-${PVR}.xd3
)
"
SRC_URI="
amd64? ( ${SRC_URI_AMD64} )
x86? ( ${SRC_URI_X86} )
"
IUSE="gnome java kde"
LICENSE="LGPL-3"
SLOT="0"
KEYWORDS="-* amd64 x86"
BIN_COMMON_DEPEND="
app-text/hunspell:0/1.7
=app-text/libexttextcat-3.4*
=app-text/libmwaw-0.3*
dev-cpp/abseil-cpp:0/20211102
dev-libs/boost:0/1.79.0
dev-libs/icu:0/71.1
dev-libs/liborcus:0/0.17
>=media-gfx/graphite2-1.3.10
media-libs/harfbuzz:0/4.0.0[icu]
media-libs/libjpeg-turbo:0/0.2
media-libs/libpng:0/16
media-libs/openjpeg:2/7
>=sys-devel/gcc-11.2.1
>=sys-libs/glibc-2.34
"
# PLEASE place any restrictions that are specific to the binary builds
# into the BIN_COMMON_DEPEND block above.
# All dependencies below this point should remain identical to those in
# the source ebuilds.
COMMON_DEPEND="
${BIN_COMMON_DEPEND}
${PYTHON_DEPS}
app-arch/unzip
app-arch/zip
app-crypt/gpgme[cxx]
app-text/hunspell:=
>=app-text/libabw-0.1.0
>=app-text/libebook-0.1
app-text/libepubgen
>=app-text/libetonyek-0.1
app-text/libexttextcat
app-text/liblangtag
>=app-text/libmspub-0.1.0
>=app-text/libmwaw-0.3.1
>=app-text/libnumbertext-1.0.6
>=app-text/libodfgen-0.1.0
app-text/libqxp
app-text/libstaroffice
app-text/libwpd:0.10[tools]
app-text/libwpg:0.3
>=app-text/libwps-0.4
app-text/mythes
dev-cpp/abseil-cpp:=
>=dev-cpp/clucene-2.3.3.4-r2
>=dev-cpp/libcmis-0.5.2
dev-db/unixODBC
>=games-engines/box2d-2.4.1:0
dev-lang/perl
>=dev-libs/boost-1.72.0:=[nls]
dev-libs/expat
dev-libs/hyphen
dev-libs/icu:=
dev-libs/libassuan
dev-libs/libgpg-error
>=dev-libs/liborcus-0.17.2:0/0.17
dev-libs/librevenge
dev-libs/libxml2
dev-libs/libxslt
dev-libs/nspr
dev-libs/nss
>=dev-libs/redland-1.0.16
>=dev-libs/xmlsec-1.2.28[nss]
media-gfx/fontforge
media-gfx/graphite2
media-libs/fontconfig
>=media-libs/freetype-2.11.0-r1:2
>=media-libs/harfbuzz-0.9.42:=[graphite,icu]
media-libs/lcms:2
>=media-libs/libcdr-0.1.0
>=media-libs/libepoxy-1.3.1[X]
>=media-libs/libfreehand-0.1.0
media-libs/libjpeg-turbo:=
media-libs/libpagemaker
>=media-libs/libpng-1.4:0=
>=media-libs/libvisio-0.1.0
media-libs/libzmf
media-libs/openjpeg:=
media-libs/zxing-cpp
>=net-libs/neon-0.31.1:=
net-misc/curl
sci-mathematics/lpsolve
sys-libs/zlib
virtual/glu
virtual/opengl
x11-libs/cairo[X]
x11-libs/libXinerama
x11-libs/libXrandr
x11-libs/libXrender
net-print/cups
sys-apps/dbus[X]
gnome? (
dev-libs/glib:2
gnome-base/dconf
gnome-extra/evolution-data-server
)
media-libs/gstreamer:1.0
media-libs/gst-plugins-base:1.0
!kde? (
dev-libs/glib:2
dev-libs/gobject-introspection
gnome-base/dconf
media-libs/mesa[egl(+)]
x11-libs/gtk+:3[X]
x11-libs/pango
)
kde? (
dev-qt/qtcore:5
dev-qt/qtgui:5
dev-qt/qtwidgets:5
dev-qt/qtx11extras:5
kde-frameworks/kconfig:5
kde-frameworks/kcoreaddons:5
kde-frameworks/ki18n:5
kde-frameworks/kio:5
kde-frameworks/kwindowsystem:5
)
dev-db/mariadb-connector-c
"
RDEPEND="${COMMON_DEPEND}
acct-group/libreoffice
acct-user/libreoffice
!app-office/libreoffice
!app-office/openoffice
media-fonts/liberation-fonts
|| ( x11-misc/xdg-utils kde-plasma/kde-cli-tools )
java? ( virtual/jre:11 )
kde? ( kde-frameworks/breeze-icons:* )
"
PDEPEND="
=app-office/libreoffice-l10n-$(ver_cut 1-4)*
"
DEPEND="dev-util/xdelta:3"
# only one flavor at a time
REQUIRED_USE="kde? ( !gnome ) gnome? ( !kde ) ${PYTHON_REQUIRED_USE}"
RESTRICT="test strip"
S="${WORKDIR}"
PYTHON_UPDATER_IGNORE="1"
QA_PREBUILT="/usr/*"
pkg_setup() {
python-single-r1_pkg_setup
}
src_unpack() {
einfo "Uncompressing distfile ${ARCH}-${BASE_PACKAGENAME}-libreoffice-${PVR}.tar.xz"
xz -cd "${DISTDIR}/${ARCH}-${BASE_PACKAGENAME}-libreoffice-${PVR}.tar.xz" > "${WORKDIR}/${ARCH}-${BASE_PACKAGENAME}-libreoffice-${PVR}.tar" || die
use x86 && use java && die "There is no build for x86 with Java support."
local patchname
use kde && patchname="-kde"
use gnome && patchname="-gnome"
use java && patchname="${patchname}-java"
if [[ -n "${patchname}" ]]; then
einfo "Patching distfile ${ARCH}-${BASE_PACKAGENAME}-libreoffice-${PVR}.tar using ${ARCH}-${BASE_PACKAGENAME}-libreoffice${patchname}-${PVR}.xd3"
xdelta3 -d -s "${WORKDIR}/${ARCH}-${BASE_PACKAGENAME}-libreoffice-${PVR}.tar" "${DISTDIR}/${ARCH}-${BASE_PACKAGENAME}-libreoffice${patchname}-${PVR}.xd3" "${WORKDIR}/tmpdist.tar" || die
mv "${WORKDIR}/tmpdist.tar" "${WORKDIR}/${ARCH}-${BASE_PACKAGENAME}-libreoffice-${PVR}.tar" || die
fi
einfo "Unpacking new ${ARCH}-${BASE_PACKAGENAME}-libreoffice-${PVR}.tar"
unpack "./${ARCH}-${BASE_PACKAGENAME}-libreoffice-${PVR}.tar"
}
src_prepare() {
cp "${FILESDIR}"/50-${PN} "${T}"
eprefixify "${T}"/50-${PN}
default
}
src_configure() { :; }
src_compile() { :; }
src_install() {
dodir /usr
cp -aR "${S}"/usr/* "${ED}"/usr/
# prevent revdep-rebuild from attempting to rebuild all the time
insinto /etc/revdep-rebuild && doins "${T}/50-${PN}"
}
pkg_postinst() {
xdg_icon_cache_update
xdg_desktop_database_update
xdg_mimeinfo_database_update
ewarn 'If you plan to use the Base application you should use a source build and enable java and firebird.'
}
pkg_postrm() {
xdg_icon_cache_update
xdg_desktop_database_update
xdg_mimeinfo_database_update
}

@ -265,6 +265,7 @@ RDEPEND="${COMMON_DEPEND}
"
BDEPEND="
dev-util/intltool
sys-apps/which
sys-devel/bison
sys-devel/flex
sys-devel/gettext
@ -583,6 +584,9 @@ src_configure() {
myeconfargs+=( --with-rhino-jar=$(java-pkg_getjar rhino-1.6 rhino.jar) )
fi
# Workaround to fix build w/ gpgme 1.18.0, bug #865321
export ac_cv_lib_gpgmepp_progress_callback=yes
is-flagq "-flto*" && myeconfargs+=( --enable-lto )
MARIADBCONFIG="$(type -p $(usex mariadb mariadb mysql)_config)" \

@ -258,6 +258,7 @@ RDEPEND="${COMMON_DEPEND}
"
BDEPEND="
dev-util/intltool
sys-apps/which
sys-devel/bison
sys-devel/flex
sys-devel/gettext
@ -570,6 +571,9 @@ src_configure() {
myeconfargs+=( --with-rhino-jar=$(java-pkg_getjar rhino-1.6 rhino.jar) )
fi
# Workaround to fix build w/ gpgme 1.18.0, bug #865321
export ac_cv_lib_gpgmepp_progress_callback=yes
is-flagq "-flto*" && myeconfargs+=( --enable-lto )
MARIADBCONFIG="$(type -p $(usex mariadb mariadb mysql)_config)" \

@ -258,6 +258,7 @@ RDEPEND="${COMMON_DEPEND}
"
BDEPEND="
dev-util/intltool
sys-apps/which
sys-devel/bison
sys-devel/flex
sys-devel/gettext
@ -564,6 +565,9 @@ src_configure() {
myeconfargs+=( --with-rhino-jar=$(java-pkg_getjar rhino-1.6 rhino.jar) )
fi
# Workaround to fix build w/ gpgme 1.18.0, bug #865321
export ac_cv_lib_gpgmepp_progress_callback=yes
is-flagq "-flto*" && myeconfargs+=( --enable-lto )
MARIADBCONFIG="$(type -p $(usex mariadb mariadb mysql)_config)" \

@ -258,6 +258,7 @@ RDEPEND="${COMMON_DEPEND}
"
BDEPEND="
dev-util/intltool
sys-apps/which
sys-devel/bison
sys-devel/flex
sys-devel/gettext
@ -564,6 +565,9 @@ src_configure() {
myeconfargs+=( --with-rhino-jar=$(java-pkg_getjar rhino-1.6 rhino.jar) )
fi
# Workaround to fix build w/ gpgme 1.18.0, bug #865321
export ac_cv_lib_gpgmepp_progress_callback=yes
is-flagq "-flto*" && myeconfargs+=( --enable-lto )
MARIADBCONFIG="$(type -p $(usex mariadb mariadb mysql)_config)" \

@ -258,6 +258,7 @@ RDEPEND="${COMMON_DEPEND}
"
BDEPEND="
dev-util/intltool
sys-apps/which
sys-devel/bison
sys-devel/flex
sys-devel/gettext
@ -564,6 +565,9 @@ src_configure() {
myeconfargs+=( --with-rhino-jar=$(java-pkg_getjar rhino-1.6 rhino.jar) )
fi
# Workaround to fix build w/ gpgme 1.18.0, bug #865321
export ac_cv_lib_gpgmepp_progress_callback=yes
is-flagq "-flto*" && myeconfargs+=( --enable-lto )
MARIADBCONFIG="$(type -p $(usex mariadb mariadb mysql)_config)" \

Binary file not shown.

@ -10,7 +10,7 @@ HOMEPAGE="https://gitlab.gnome.org/GNOME/gspell"
LICENSE="LGPL-2.1+"
SLOT="0/2" # subslot = libgspell-1 soname version
KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc x86"
KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~ia64 ppc ppc64 ~riscv ~sparc x86"
IUSE="+introspection +vala"
REQUIRED_USE="vala? ( introspection )"

@ -1,6 +1,3 @@
DIST poppler-22.05.0.tar.xz 1828628 BLAKE2B d1757893c841d35cbdeda493afea92046c447dfa0d519ab9a872a75fdb7edbb06bbde78b2e7d41757f5bbff8d1f46c81f7314dff8386d4d686ded4d2cc85d65e SHA512 629098793050f7a901c2a2cf1efcad83c58d26164cf94f4aa3985465f016a8875c62be4fb8ab8005ca00ef061402962e6d6c14eb611ce29f2d71d3ae83f24737
DIST poppler-22.06.0.tar.xz 1834980 BLAKE2B 6988480dc30f5fe67be0170f8f006bdb4d3e6b0e0ad8643aa6cbf4fe017d52d8747f108267a30aee5ec4567aa5d2fcc9ce9824fc4dac45a1d37291fa668c2dfe SHA512 79e1a1440a0903ea6238dcc7afc4ecdf1f8cc53af94ec5649f631fca568711d48a7ec4046fccb8520818420dc21e4ad1aaf602c22b13f9ce22f4d06edc83c8a3
DIST poppler-22.06.0.tar.xz.sig 833 BLAKE2B e2a842fac83b5c42713aa45072d8ea1de5219cbbc35d04142a902f569fc7c558cbda9a2379fde6f9f933b701fabe98f93de71a0676837b2a21104f919a097bc8 SHA512 b61f706e52c57209bb180fbe5a65e366e2a841743ac2c24fc0828dc4bab8ae52da12330e4694e8dade1e1963112fc7b01c0c1b30141be2b7c8c0cf2aaab059c5
DIST poppler-22.07.0.tar.xz 1838796 BLAKE2B 401573c3bd1e4801ee331e97a3787c88c0c3f0a10ca59f234622cee22760cd18a566c952f94a1e7263294d6f43c34c861cf53bde59b4bd92f806efe136f92197 SHA512 d3d8a0f50ddcf2020bbbc3c21c6fcdd6f31b431d984622c2a4ae4986b82a14d79969d7113588ba5d9a672babe4dc01fe2f5e8d9ce73a9fbce14685220d914f02
DIST poppler-22.07.0.tar.xz.sig 833 BLAKE2B a73cc36e0c1c20c4f55e4896ae8d880d62d458a0d256022cdac50e48c7993fbf617e9c4de704958d103fae1ccb619d6122a06d2b51e0389f15338d67e34cefdb SHA512 252c34d4f8b7b43255ea5371c35348ac2d3044860d850fd510213a4785c633e230f61aab06b706b173e8e3482c7028a433fccae982adc18681f0da2b6e2bed3d
DIST poppler-22.08.0.tar.xz 1840700 BLAKE2B 7e27eb1e41afb83633288d2d923a58e94590780f6f558e403928582de11c742781a12df11dcd7d9aadbfcbdae2662c83ae23f683552fba9e1984d3a0c4577f53 SHA512 bbff6d51eaafe58891357069c83e43ea25b4077755fa715a17b38660cd3cd546fa21d2e17a272d9b375f7e440e6e3661e84a20f18d445e0f28d06971abc04666

@ -1,18 +0,0 @@
https://github.com/freedesktop/poppler/commit/5d543e801d304e4cdbe12506f62c340d509f12f3
From: "Tobias C. Berner" <tcberner@gmail.com>
Date: Thu, 5 May 2022 04:59:42 +0000
Subject: [PATCH] Fix c_time usage
In 2656d986d01da5aea4f51c75e4deee569ca88064 the time type was switched
to time_t, without including the necessary ctime header.
--- a/cpp/poppler-global.h
+++ b/cpp/poppler-global.h
@@ -25,6 +25,7 @@
#include "poppler_cpp_export.h"
+#include <ctime>
#include <iosfwd>
#include <string>
#include <vector>

@ -1,127 +0,0 @@
# Copyright 2005-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake toolchain-funcs xdg-utils
if [[ ${PV} == *9999* ]] ; then
inherit git-r3
EGIT_REPO_URI="https://anongit.freedesktop.org/git/poppler/poppler.git"
SLOT="0/9999"
else
SRC_URI="https://poppler.freedesktop.org/${P}.tar.xz"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
SLOT="0/121" # CHECK THIS WHEN BUMPING!!! SUBSLOT IS libpoppler.so SOVERSION
fi
DESCRIPTION="PDF rendering library based on the xpdf-3.0 code base"
HOMEPAGE="https://poppler.freedesktop.org/"
LICENSE="GPL-2"
IUSE="boost cairo cjk curl +cxx debug doc +introspection +jpeg +jpeg2k +lcms nss png qt5 tiff +utils"
# No test data provided
RESTRICT="test"
DEPEND="
media-libs/fontconfig
>=media-libs/freetype-2.8
sys-libs/zlib
cairo? (
dev-libs/glib:2
x11-libs/cairo
introspection? ( dev-libs/gobject-introspection:= )
)
curl? ( net-misc/curl )
jpeg? ( media-libs/libjpeg-turbo:= )
jpeg2k? ( >=media-libs/openjpeg-2.3.0-r1:2= )
lcms? ( media-libs/lcms:2 )
nss? ( >=dev-libs/nss-3.19:0 )
png? ( media-libs/libpng:0= )
qt5? (
dev-qt/qtcore:5
dev-qt/qtgui:5
dev-qt/qtxml:5
)
tiff? ( media-libs/tiff:0 )
"
RDEPEND="${DEPEND}
cjk? ( app-text/poppler-data )
"
DEPEND+="
boost? ( dev-libs/boost )
"
BDEPEND="
dev-util/glib-utils
virtual/pkgconfig
"
DOCS=( AUTHORS NEWS README.md README-XPDF )
PATCHES=(
"${FILESDIR}/${PN}-20.12.1-qt5-deps.patch"
"${FILESDIR}/${PN}-21.09.0-respect-cflags.patch"
"${FILESDIR}/${PN}-0.57.0-disable-internal-jpx.patch"
"${FILESDIR}/${P}-missing-include.patch"
)
src_prepare() {
cmake_src_prepare
# Clang doesn't grok this flag, the configure nicely tests that, but
# cmake just uses it, so remove it if we use clang
if tc-is-clang ; then
sed -e 's/-fno-check-new//' -i cmake/modules/PopplerMacros.cmake || die
fi
if ! grep -Fq 'cmake_policy(SET CMP0002 OLD)' CMakeLists.txt ; then
sed -e '/^cmake_minimum_required/acmake_policy(SET CMP0002 OLD)' \
-i CMakeLists.txt || die
else
einfo "policy(SET CMP0002 OLD) - workaround can be removed"
fi
}
src_configure() {
xdg_environment_reset
local mycmakeargs=(
-DBUILD_GTK_TESTS=OFF
-DBUILD_QT5_TESTS=OFF
-DBUILD_CPP_TESTS=OFF
-DBUILD_MANUAL_TESTS=OFF
-DRUN_GPERF_IF_PRESENT=OFF
-DENABLE_BOOST="$(usex boost)"
-DENABLE_ZLIB=ON
-DENABLE_ZLIB_UNCOMPRESS=OFF
-DENABLE_UNSTABLE_API_ABI_HEADERS=ON
-DUSE_FLOAT=OFF
-DWITH_Cairo=$(usex cairo)
-DENABLE_LIBCURL=$(usex curl)
-DENABLE_CPP=$(usex cxx)
-DWITH_JPEG=$(usex jpeg)
-DENABLE_DCTDECODER=$(usex jpeg libjpeg none)
-DENABLE_LIBOPENJPEG=$(usex jpeg2k openjpeg2 none)
-DENABLE_CMS=$(usex lcms lcms2 none)
-DWITH_NSS3=$(usex nss)
-DWITH_PNG=$(usex png)
$(cmake_use_find_package qt5 Qt5Core)
-DWITH_TIFF=$(usex tiff)
-DENABLE_UTILS=$(usex utils)
-DENABLE_QT6=OFF
)
use cairo && mycmakeargs+=( -DWITH_GObjectIntrospection=$(usex introspection) )
cmake_src_configure
}
src_install() {
cmake_src_install
# live version doesn't provide html documentation
if use cairo && use doc && [[ ${PV} != *9999* ]]; then
# For now install gtk-doc there
insinto /usr/share/gtk-doc/html/poppler
doins -r "${S}"/glib/reference/html/*
fi
}

@ -1,134 +0,0 @@
# Copyright 2005-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake toolchain-funcs xdg-utils
if [[ ${PV} == *9999* ]] ; then
inherit git-r3
EGIT_REPO_URI="https://anongit.freedesktop.org/git/poppler/poppler.git"
SLOT="0/9999"
else
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/aacid.asc
inherit verify-sig
SRC_URI="https://poppler.freedesktop.org/${P}.tar.xz"
SRC_URI+=" verify-sig? ( https://poppler.freedesktop.org/${P}.tar.xz.sig )"
KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
SLOT="0/122" # CHECK THIS WHEN BUMPING!!! SUBSLOT IS libpoppler.so SOVERSION
fi
DESCRIPTION="PDF rendering library based on the xpdf-3.0 code base"
HOMEPAGE="https://poppler.freedesktop.org/"
LICENSE="GPL-2"
IUSE="boost cairo cjk curl +cxx debug doc +introspection +jpeg +jpeg2k +lcms nss png qt5 tiff +utils"
# No test data provided
RESTRICT="test"
DEPEND="
media-libs/fontconfig
>=media-libs/freetype-2.8
sys-libs/zlib
cairo? (
dev-libs/glib:2
x11-libs/cairo
introspection? ( dev-libs/gobject-introspection:= )
)
curl? ( net-misc/curl )
jpeg? ( media-libs/libjpeg-turbo:= )
jpeg2k? ( >=media-libs/openjpeg-2.3.0-r1:2= )
lcms? ( media-libs/lcms:2 )
nss? ( >=dev-libs/nss-3.19:0 )
png? ( media-libs/libpng:0= )
qt5? (
dev-qt/qtcore:5
dev-qt/qtgui:5
dev-qt/qtxml:5
)
tiff? ( media-libs/tiff:0 )
"
RDEPEND="${DEPEND}
cjk? ( app-text/poppler-data )
"
DEPEND+="
boost? ( dev-libs/boost )
"
BDEPEND="
dev-util/glib-utils
virtual/pkgconfig
"
if [[ ${PV} != *9999* ]] ; then
BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-aacid )"
fi
DOCS=( AUTHORS NEWS README.md README-XPDF )
PATCHES=(
"${FILESDIR}/${PN}-20.12.1-qt5-deps.patch"
"${FILESDIR}/${PN}-21.09.0-respect-cflags.patch"
"${FILESDIR}/${PN}-0.57.0-disable-internal-jpx.patch"
)
src_prepare() {
cmake_src_prepare
# Clang doesn't grok this flag, the configure nicely tests that, but
# cmake just uses it, so remove it if we use clang
if tc-is-clang ; then
sed -e 's/-fno-check-new//' -i cmake/modules/PopplerMacros.cmake || die
fi
if ! grep -Fq 'cmake_policy(SET CMP0002 OLD)' CMakeLists.txt ; then
sed -e '/^cmake_minimum_required/acmake_policy(SET CMP0002 OLD)' \
-i CMakeLists.txt || die
else
einfo "policy(SET CMP0002 OLD) - workaround can be removed"
fi
}
src_configure() {
xdg_environment_reset
local mycmakeargs=(
-DBUILD_GTK_TESTS=OFF
-DBUILD_QT5_TESTS=OFF
-DBUILD_CPP_TESTS=OFF
-DBUILD_MANUAL_TESTS=OFF
-DRUN_GPERF_IF_PRESENT=OFF
-DENABLE_BOOST="$(usex boost)"
-DENABLE_ZLIB=ON
-DENABLE_ZLIB_UNCOMPRESS=OFF
-DENABLE_UNSTABLE_API_ABI_HEADERS=ON
-DUSE_FLOAT=OFF
-DWITH_Cairo=$(usex cairo)
-DENABLE_LIBCURL=$(usex curl)
-DENABLE_CPP=$(usex cxx)
-DWITH_JPEG=$(usex jpeg)
-DENABLE_DCTDECODER=$(usex jpeg libjpeg none)
-DENABLE_LIBOPENJPEG=$(usex jpeg2k openjpeg2 none)
-DENABLE_CMS=$(usex lcms lcms2 none)
-DWITH_NSS3=$(usex nss)
-DWITH_PNG=$(usex png)
$(cmake_use_find_package qt5 Qt5Core)
-DWITH_TIFF=$(usex tiff)
-DENABLE_UTILS=$(usex utils)
-DENABLE_QT6=OFF
)
use cairo && mycmakeargs+=( -DWITH_GObjectIntrospection=$(usex introspection) )
cmake_src_configure
}
src_install() {
cmake_src_install
# live version doesn't provide html documentation
if use cairo && use doc && [[ ${PV} != *9999* ]]; then
# For now install gtk-doc there
insinto /usr/share/gtk-doc/html/poppler
doins -r "${S}"/glib/reference/html/*
fi
}

Binary file not shown.

@ -1 +1,3 @@
DIST edencommon-0_pre20220808.tar.gz 142458 BLAKE2B 0dd501069bc511973e89b21b9dbdce7eeb0e87e31ecd05e585fe83c515894691a02e5725de8c912c4bd0fb70f4172445070ef8fec205243e1df9c35a3ccaffe4 SHA512 63f60e1c406d834cf618e2747c21f928e43fe2a475a97152070aecb61b11b5e515bdfd1c9571a93a159d91fa185c9f89caebe8d41421a94e636e8ff43fd11a3a
DIST edencommon-0_pre20220815.tar.gz 142456 BLAKE2B 64e2b8e155e56ff50ca348ae53f3e55e123b32816ec199cebf760dcd4b08da920b15b56aab1254a782d202b89e1d119a8180f7d5382da8a94f67752ecb6924db SHA512 7263fb3f85c6142862eac9472c2de2ac94a2b3c5205e0d87ca2f6694d4ed3c5b9f2643c35266141e6bbbb1d45079a59cf5803de3065ef46a9a8d7f321b15bc99
DIST edencommon-2022.08.15.00.gh.tar.gz 142467 BLAKE2B e3d72f1ae5845db2c18003202ca6360cc9496c3544eff2cad8eee486098dae3649bc54a0b7b9ea57fb72a1669a1f4307a017a85693499ca353f553f0de79dc6b SHA512 211a6f0e22b662e743cc944b7bc3d9ad63c1e4dd55b515db958fdfc04463357caef39ad43a9089417ac61929a8f32375f2fd673a113c04a162e94f6419737e81

@ -0,0 +1,44 @@
# Copyright 2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# These must be bumped together:
# dev-cpp/edencommon
# dev-cpp/folly
# dev-util/watchman
inherit cmake
# No proper tags yet (https://github.com/facebookexperimental/edencommon/issues/2)
MY_COMMIT="ca22cf964f1163c2a198d7cd3545f0c9b04b3c75"
DESCRIPTION="Shared library for Watchman and Eden projects"
HOMEPAGE="https://github.com/facebookexperimental/edencommon"
SRC_URI="https://github.com/facebookexperimental/edencommon/archive/${MY_COMMIT}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}"/${PN}-${MY_COMMIT}
LICENSE="MIT"
SLOT="0/${PV}"
KEYWORDS="~amd64"
IUSE="llvm-libunwind"
RDEPEND="
dev-cpp/gflags:=
dev-cpp/glog:=[gflags]
dev-cpp/folly:=
llvm-libunwind? ( sys-libs/llvm-libunwind:= )
!llvm-libunwind? ( sys-libs/libunwind:= )
"
DEPEND="
${RDEPEND}
dev-cpp/gtest
"
src_configure() {
local mycmakeargs=(
-DCMAKE_INSTALL_DIR="$(get_libdir)/cmake/${PN}"
-DLIB_INSTALL_DIR="$(get_libdir)"
)
cmake_src_configure
}

@ -0,0 +1,41 @@
# Copyright 2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# These must be bumped together:
# dev-cpp/edencommon
# dev-cpp/folly
# dev-util/watchman
inherit cmake
DESCRIPTION="Shared library for Watchman and Eden projects"
HOMEPAGE="https://github.com/facebookexperimental/edencommon"
SRC_URI="https://github.com/facebookexperimental/edencommon/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz"
LICENSE="MIT"
SLOT="0/${PV}"
KEYWORDS="~amd64"
IUSE="llvm-libunwind"
RDEPEND="
dev-cpp/gflags:=
dev-cpp/glog:=[gflags]
dev-cpp/folly:=
llvm-libunwind? ( sys-libs/llvm-libunwind:= )
!llvm-libunwind? ( sys-libs/libunwind:= )
"
DEPEND="
${RDEPEND}
dev-cpp/gtest
"
src_configure() {
local mycmakeargs=(
-DCMAKE_INSTALL_DIR="$(get_libdir)/cmake/${PN}"
-DLIB_INSTALL_DIR="$(get_libdir)"
)
cmake_src_configure
}

@ -2,3 +2,4 @@ DIST folly-2022.03.28.00.tar.gz 3616507 BLAKE2B da003701abe599f20ac87a2785fe9a4c
DIST folly-2022.04.11.00.tar.gz 3632587 BLAKE2B 13820f6dc600727fa97603181be97a568cc8b3c713659717592853827dac050d5f1f6d98178e3054871233b48ac18f713589bf43b36ea29445cad557ce13bacf SHA512 7aa0be95d6f8b21aaa88558cf5921c526ab5a8c8121b858eb6e7ea19946d7a82dff06d90b7a365cef5c56a43d8d57af8d01b8b11b27262fbed9ee8c9e701b5ac
DIST folly-v2022.07.04.00.tar.gz 3647988 BLAKE2B ab8916ff4be1468d44dc0892126448682554ea95ce879166f457b621c3157cb22d0292fe2c58744494efe0fbabbf77732184335cd22244724c740910cf3a8303 SHA512 11fc32768539d8d42c7396eeac522238450617c8dde302b45c64bb93fd6ceaef7bb193b897802962782e8211c3931d31bf8df68e06741ce855d9725510677d7a
DIST folly-v2022.08.08.00.tar.gz 3684846 BLAKE2B 462c183effea452ca706a7a14ebba820f377bc5ba6fd1475b15ca10e3c21df60a16b529b6599cf5dd5df2913b1fbd0432a3c411ab0aa400a9c84bb6aecd2f70f SHA512 f44dbf96f42a86d44cad46129750ae2bc0abb6702e148de10def4b241a3c7afa62ad19acca96609e8a9bfdfeeb7eda3f19d8eb161b5e41702c943ca87a75c88e
DIST folly-v2022.08.15.00.tar.gz 3691439 BLAKE2B 96ba34a18b51ea91aacd2bbcdbfef855a8924004850534ef342799d1c36d6ece04b77100b8901053fd3d0a997d1764ffdfd5bcd60928b4a4f8c9480f5a6d8ee6 SHA512 72d8d29a1f26f5af33d13e1d2f7ed5ce439bc7345daecc3ed1d30e33b802e0aa4f1ca59fae16db25079e55da14f60cd6a548f0f31eef48abad49b71baa6e6307

@ -0,0 +1,102 @@
Fix build w/ older kernel headers.
https://github.com/facebook/folly/commit/ae20efa9fa8cea81079df519d93dcbd1523c8dc3
From ae20efa9fa8cea81079df519d93dcbd1523c8dc3 Mon Sep 17 00:00:00 2001
From: Dylan Yudaken <dylany@fb.com>
Date: Mon, 15 Aug 2022 08:32:53 -0700
Subject: [PATCH] io_uring: support older versions of liburing
Summary: Some #if to support older versions of liburing as reported here; https://github.com/facebook/folly/issues/1832
Reviewed By: Orvid
Differential Revision: D38650359
fbshipit-source-id: eb78a7607eaaf151dc394cef72df3826c83fdfbc
--- a/folly/experimental/io/IoUringBackend.cpp
+++ b/folly/experimental/io/IoUringBackend.cpp
@@ -40,6 +40,16 @@ extern "C" FOLLY_ATTR_WEAK void eb_poll_loop_pre_hook(uint64_t* call_time);
extern "C" FOLLY_ATTR_WEAK void eb_poll_loop_post_hook(
uint64_t call_time, int ret);
+// there is no builtin macro we can use in liburing to tell what version we are
+// on or if features are supported. We will try and get this into the next
+// release but for now in the latest release there was also added multishot
+// accept - and so we can use it's pressence to suggest that we can safely use
+// newer features
+#if defined(IORING_ACCEPT_MULTISHOT)
+#define FOLLY_IO_URING_UP_TO_DATE 1
+#else
+#define FOLLY_IO_URING_UP_TO_DATE 0
+#endif
namespace folly {
namespace {
@@ -296,11 +306,7 @@ std::chrono::time_point<std::chrono::steady_clock> getTimerExpireTime(
return now + us;
}
-// there is no builtin macro we can use in liburing to tell if buffer rings are
-// supported. However in the release that added them, there was also added
-// multishot accept - and so we can use it's pressence to suggest that we can
-// safely use provided buffer rings
-#if defined(IORING_ACCEPT_MULTISHOT)
+#if FOLLY_IO_URING_UP_TO_DATE
class ProvidedBuffersBuffer {
public:
@@ -738,7 +744,11 @@ IoUringBackend::IoUringBackend(Options options)
params_.flags |= IORING_SETUP_CQSIZE;
params_.cq_entries = options.capacity;
if (options_.taskRunCoop) {
+#if FOLLY_IO_URING_UP_TO_DATE
params_.flags |= IORING_SETUP_COOP_TASKRUN;
+#else
+ // this has no functional change so just leave it
+#endif
}
// poll SQ options
@@ -1237,9 +1247,12 @@ int IoUringBackend::eb_event_base_loop(int flags) {
}
if (options_.registerRingFd) {
+ // registering just has some perf impact, so no need to fall back
+#if FOLLY_IO_URING_UP_TO_DATE
if (io_uring_register_ring_fd(&ioRing_) < 0) {
LOG(ERROR) << "unable to register io_uring ring fd";
}
+#endif
}
}
@@ -1496,9 +1509,11 @@ void IoUringBackend::cancel(IoSqeBase* ioSqe) {
auto* sqe = get_sqe();
io_uring_prep_cancel64(sqe, (uint64_t)ioSqe, 0);
io_uring_sqe_set_data(sqe, (void*)&ioSqeNop); // just need something unique
+#if FOLLY_IO_URING_UP_TO_DATE
if (params_.features & IORING_FEAT_CQE_SKIP) {
sqe->flags |= IOSQE_CQE_SKIP_SUCCESS;
}
+#endif
}
int IoUringBackend::cancelOne(IoSqe* ioSqe) {
@@ -1848,9 +1863,15 @@ void IoUringBackend::processFileOp(IoSqe* sqe, int64_t res) noexcept {
}
bool IoUringBackend::kernelHasNonBlockWriteFixes() const {
+#if FOLLY_IO_URING_UP_TO_DATE
// this was fixed in 5.18, which introduced linked file
// fixed in "io_uring: only wake when the correct events are set"
return params_.features & IORING_FEAT_LINKED_FILE;
+#else
+ // this indicates that sockets have to manually remove O_NONBLOCK
+ // which is a bit slower but shouldnt cause any functional changes
+ return false;
+#endif
}
namespace {

@ -0,0 +1,99 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# These must be bumped together:
# dev-cpp/edencommon
# dev-cpp/folly
# dev-util/watchman
inherit cmake toolchain-funcs
DESCRIPTION="An open-source C++ library developed and used at Facebook"
HOMEPAGE="https://github.com/facebook/folly"
SRC_URI="https://github.com/facebook/folly/releases/download/v${PV}/${PN}-v${PV}.tar.gz"
S="${WORKDIR}"
LICENSE="Apache-2.0"
SLOT="0/${PV}"
KEYWORDS="~amd64"
IUSE="llvm-libunwind test"
RESTRICT="!test? ( test )"
RDEPEND="app-arch/bzip2
app-arch/lz4:=
app-arch/snappy:=
app-arch/xz-utils
app-arch/zstd:=
dev-cpp/gflags:=
dev-cpp/glog:=[gflags]
dev-libs/boost:=[context,threads(+)]
dev-libs/double-conversion:=
dev-libs/libaio
dev-libs/libevent:=
dev-libs/libfmt:=
dev-libs/libsodium:=
dev-libs/openssl:=
>=sys-libs/liburing-2.2:=
sys-libs/zlib
llvm-libunwind? ( sys-libs/llvm-libunwind:= )
!llvm-libunwind? ( sys-libs/libunwind:= )"
# libiberty is linked statically
DEPEND="${RDEPEND}
sys-libs/binutils-libs
test? ( dev-cpp/gtest )"
BDEPEND="test? ( sys-devel/clang )"
PATCHES=(
"${FILESDIR}"/${PN}-2022.07.04.00-musl-fix.patch
"${FILESDIR}"/${P}-liburing-headers.patch
)
pkg_setup() {
[[ ${BUILD_TYPE} == binary ]] && return
if use test && ! tc-is-clang ; then
# Always build w/ Clang for now to avoid gcc ICE
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106230
#if [[ $(gcc-major-version) -eq 12 ]] ; then
# return
#fi
## Only older GCC 11 is broken
#if [[ $(gcc-major-version) -eq 11 && $(gcc-minor-version) -ge 3 && $(gcc-micro-version) -ge 1 ]] ; then
# return
#fi
ewarn "Forcing build with Clang due to GCC bug (because tests are enabled)"
#ewarn "(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104008)"
export CC=${CHOST}-clang
export CXX=${CHOST}-clang++
fi
}
src_configure() {
# TODO: liburing could in theory be optional but fails to link
local mycmakeargs=(
-DLIB_INSTALL_DIR="$(get_libdir)"
-DBUILD_TESTS=$(usex test)
)
cmake_src_configure
}
src_test() {
local myctestargs=(
# - timeseries_histogram_test.TimeseriesHistogram.Percentile|HHWheelTimerTest
# Long-standing known test failure
# TODO: report upstream
# - HHWheelTimerTest.HHWheelTimerTest.CancelTimeout
# Timeouts are fragile
-E "(timeseries_histogram_test.TimeseriesHistogram.Percentile|HHWheelTimerTest.HHWheelTimerTest.CancelTimeout)"
)
cmake_src_test
}

@ -6,7 +6,6 @@ EAPI=8
# Python is required for tests and some build tasks.
PYTHON_COMPAT=( python3_{8..10} )
CMAKE_ECLASS=cmake
inherit cmake-multilib python-any-r1
if [[ ${PV} == "9999" ]]; then

@ -1,4 +1,4 @@
# Copyright 1999-2021 Gentoo Authors
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@ -6,7 +6,6 @@ EAPI=8
# Python is required for tests and some build tasks.
PYTHON_COMPAT=( python3_{8..10} )
CMAKE_ECLASS=cmake
inherit cmake-multilib python-any-r1
if [[ ${PV} == "9999" ]]; then

@ -3,7 +3,6 @@
EAPI=8
CMAKE_ECLASS=cmake
inherit cmake-multilib
DESCRIPTION="Performance-portable, length-agnostic SIMD with runtime dispatch"

@ -3,7 +3,6 @@
EAPI=8
CMAKE_ECLASS=cmake
inherit cmake-multilib
DESCRIPTION="Performance-portable, length-agnostic SIMD with runtime dispatch"

@ -3,7 +3,6 @@
EAPI=8
CMAKE_ECLASS=cmake
inherit cmake-multilib
DESCRIPTION="Performance-portable, length-agnostic SIMD with runtime dispatch"

@ -3,7 +3,6 @@
EAPI=8
CMAKE_ECLASS=cmake
inherit cmake-multilib
DESCRIPTION="Performance-portable, length-agnostic SIMD with runtime dispatch"

@ -3,7 +3,6 @@
EAPI=8
CMAKE_ECLASS="cmake"
inherit cmake-multilib
DESCRIPTION="Blingful TUIs and character graphics"

Binary file not shown.

@ -14,7 +14,6 @@ else
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
fi
CMAKE_ECLASS=cmake
inherit cmake-multilib toolchain-funcs
MULTILIB_CHOST_TOOLS=( /usr/bin/mariadb_config )

@ -14,7 +14,6 @@ else
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
fi
CMAKE_ECLASS=cmake
inherit cmake-multilib toolchain-funcs
MULTILIB_CHOST_TOOLS=( /usr/bin/mariadb_config )

@ -1,3 +1,2 @@
DIST mariadb-connector-odbc-3.1.12-src.tar.gz 542918 BLAKE2B b770d79d1724480589b941ded1552bcfedb85eb1f59256269c8cd219e395dc5c151ab6762ea49c062900187ec4ae6a161a33a15ea3ffd4addc542f1c9f846121 SHA512 9723555c598c3ec77c41a617d9960c8d0fb9ee9d0b70e44b44f55f8842a5966b50ed6c04e8a80d252330b2cd96bdac4e0403100141e827c23af72ed58f747ffb
DIST mariadb-connector-odbc-3.1.13-src.tar.gz 546893 BLAKE2B 7d3f02667ab3c5eb81063a2a2470bd49914cabea79d8756fd4d493b3117a692c9bd3594c00d5c7d8a866ad4677dec2848a08a80b0e97952e6e80edb5d677e93f SHA512 b50949b99207aeef18fc7f8e15ecb8e8c869fcdc85a04ce1922f2ff856d3f07eb6701df8515545e762abbcb97f74605c6b5ac66efa1927e761a80dcd1c29c2d3
DIST mariadb-connector-odbc-3.1.14-src.tar.gz 549698 BLAKE2B 612879086805c57b42036bb224b14ef1ab287d2ff288a5ec5ec6db7334fc8b82acd648476eca1dee282393486d117cadf1bbdcb0e78eae52bab26a0c05cb1fbe SHA512 bb3cb74ccd17a8df39456ccf3091579bbdfc56431954a978f488928df54e3f9ad1c5b67cb411be4b661ba0e0bdd69ccd4d00ea4bfd72c3f448b560031830512d

@ -1,69 +0,0 @@
# Copyright 2018-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
CMAKE_ECLASS=cmake
inherit cmake-multilib flag-o-matic
DESCRIPTION="MariaDB Connector/ODBC"
HOMEPAGE="https://downloads.mariadb.org/connector-odbc/"
SRC_URI="mirror://mariadb/connector-odbc-${PV}/${P}-src.tar.gz"
LICENSE="LGPL-2.1"
SLOT="0/3.1"
KEYWORDS="amd64 x86"
IUSE="ssl"
S="${S}-src"
# USE=ssl merely enables the configuration options (seemingly for interactive
# sessions) and does not cause direct linking to any SSL libraries. However,
# it doesn't make sense enable these configuration options unless the
# underlying mariadb-connector-c has ssl enabled, thus if we have USE=ssl,
# require mariadb-connector-c to have it too.
DEPEND="=dev-db/mariadb-connector-c-$(ver_cut 1-2)*[ssl?]
dev-db/unixODBC"
RDEPEND="${DEPEND}"
src_prepare() {
cmake_src_prepare
sed -e "s,/lib/,/$(get_libdir)/,g" "${FILESDIR}/odbcinst2.ini" > odbcinst.ini || die
}
multilib_src_configure() {
append-cppflags $(mariadb_config --cflags || die)
local mycmakeargs=(
-DWITH_SSL=$(usex ssl OPENSSL OFF)
-DMARIADB_LINK_DYNAMIC=YES
-DUSE_SYSTEM_INSTALLED_LIB=YES
-DINSTALL_DOCDIR="/usr/share/doc/${PF}"
-DINSTALL_LICENSEDIR="/usr/share/doc/${PF}"
#-DCMAKE_C_FLAGS="$(mariadb_config --cflags)"
)
cmake_src_configure
}
multilib_src_install_all() {
insinto /usr/share/${PN}
doins odbcinst.ini
}
pkg_postinst() {
elog "Please remember to use emerge --config =${P} to install the ODBC ini files."
elog "Alternatively run: /usr/bin/odbcinst -i -d -f /usr/share/${PN}/odbcinst.ini"
}
pkg_config() {
[[ -n "${ROOT}" ]] && die "Sorry, non-standard ROOT setting is not supported."
if /usr/bin/odbcinst -q -d -n maodbc &>/dev/null; then
einfo "maodbc (MariaDB ODBC driver) has already been installed."
else
ebegin "Installing maodbc (MariaDB ODBC driver)"
/usr/bin/odbcinst -i -d -f /usr/share/${PN}/odbcinst.ini
eend ${?} || die
fi
}

@ -1,16 +1,22 @@
DIST postgresql-10.19.tar.bz2 19261478 BLAKE2B 3ccd44d68980ddb0e394b811af20c213cf89eb8d4374d2c49c9cda5165f222ca849a2db4fe4d521991f15f9cc84ec35bafa91083b9625f2a6729159f490a94c9 SHA512 41b0f5026be7d563e41b54e9ea7199dd466a132d355be0b71a91d41f533d97fbf550eccf2a2ece3d60c5dab5921ebeea3ac4780c18c54b924df52d7423305a22
DIST postgresql-10.20.tar.bz2 19371473 BLAKE2B 24ce3e3dda749375e999206307154e79bf15d20b3cd598ba0b78bf27976241d71e88e6fa4cd459b675bc9a9047e9315321b1535dbb41ed9e558858c2a7e9dd31 SHA512 44cfca541947d58c70593b767d3c2423f20cc6904f3d4cea8f63c1802ccbc569130c4a2a15f1af152285926f6a200e13d59c21584295dafd6f6e74bd38251428
DIST postgresql-10.21.tar.bz2 19409454 BLAKE2B 5e43abaee8156b9eb99360efeb25ba268f93a60ac2c29044d9025c4faa8753d84cb3c0c8cbcd65eb9e0eb094ebf63e0cc1cbd0ef12c0a2faa360754e63ae106a SHA512 1053e15505c0448df491119c9aad1617889b66118628a2155e3ec87e6648b2071a0a54e10d8fbbe00161b2aa86d1a6194d932a8cf5808c626e7972d135bb05c5
DIST postgresql-10.22.tar.bz2 19455874 BLAKE2B 10a8a894ba6e649abcc68abfd829bd30bca04b6e90f987ae5771fe02474517254ea2b48c7c9f2a899309de7b84aeaf13bac025965a9cc44814727ba257a633d7 SHA512 2e1ea75be7696ffbbb947351a8e8e55aaf067f86ad318308499a6a58797f0bf86227ed33e257e261c5c71ebba2f73ba514ef195a2394b91414ce6a0c3ab62532
DIST postgresql-11.14.tar.bz2 20172910 BLAKE2B a033752fc5fc593c96fe63a258b2cc0d4b896548a366e3fefa8afde1f96ab64aab97eb395b10ae10494709963ed924623279f76f66870c4faee435969400c1b7 SHA512 ab71461ee6fb4cdc5b4240f7ecd8af2497ce6780283fde2abf5951ffdb616bd0c8ed22b26fdfca402a346e663ff77c4d17f3284c9d700e6fd6795b2aec97c9be
DIST postgresql-11.15.tar.bz2 20245750 BLAKE2B f6a632606fe4b34b2a44df2c165ccfa6e890b85f4f6048994f781428bbd1de6888a24493fb5d0c231f3f34e6a4e94cfd23078a9afdaf5925d284b4854847d23f SHA512 1eba7bddee1edf034617102c1d61ad0aa1b58927dad63de1d054817966c4c9a1d7d3fa6f6896af3fe5a6880b09a6ec86be298256ee6ecc3705ff2654d3d00c74
DIST postgresql-11.16.tar.bz2 20347100 BLAKE2B 240e86b68ff8833265f10802da2fb847d72e38ac9325fc56bb6864266b2ad98939170038ccdb7044ae16f9fd29e7a9e1d404456d8bc7d53430067d714b9bb563 SHA512 e1b6be0a97e60cdd95cd0ebc756b1de6abf2f33f41f6a80da3dff25483a30146fb6bf750ab787bb5bb4f2a04718946c7429e71f891cbd491001e9f9c2ea8e63c
DIST postgresql-11.17.tar.bz2 20385599 BLAKE2B d145bc0f5e0f277be91bf46868c78c9ce5bb2eebbbd84fbdcdbb1ec115911d124a0a054df783739fb912eeae1322fb7eb58b7b1b8d40a8f81cffe2f24d3dda01 SHA512 35304279c06577eca134581490710db976edeac8cca169d3436fcdce8eebb18159459ea3b5ef403f6a8efe85542726f9960c4ca653da4619e081ce5869866032
DIST postgresql-12.10.tar.bz2 20990621 BLAKE2B a7a56cf75944c558ae9bb9165dfb17b30cc5f7a865961e0a588677e4dd3e53d1fab15a212a21ec12f8e7b669a448d78efa0dfe985fd4902e16485a298c7adc62 SHA512 befedb14320aa033dc55bbb93bbbec4e67d9cfced63be0e4f631c7495a0fbc6fe280bd6d2fb941d7a2e6b2ac570b7f40d8db7f07a192a81bd9cd63c6c244a9c5
DIST postgresql-12.11.tar.bz2 21086745 BLAKE2B 7062d334f3ef3b98f69e709f5de744324c7ce53ea516384902632a454a2ccadfd7bcc0c9ef4d51a685dd7a06e1fdccc292109294517831181c3db30bc2b7be91 SHA512 705e9e1ccf8202062cce61069b5ddb7db5f804dd0736c620640ce5622b9e42fdcbc1417771e77d51aa54beb4562a09b4307f2ff7dec135bd0e31f4941ca36ac8
DIST postgresql-12.12.tar.bz2 21089064 BLAKE2B 7285dcfc8ed6cf2dbbe29d894dbcef53fad18cbeddbfdb3a43893234a1ee75a9bf5d966968a0c481a8ab15bf8a37400bf6eb4b57a83359501b729e70398e3551 SHA512 eeff79279ac11db04fdddeb2c52ba1ec6b549223b862222540e1f659fbfc3617130699c22694b465bde46b1a4a665c01aef70b68b86d80e58a5657efd019407d
DIST postgresql-12.9.tar.bz2 20904260 BLAKE2B fc88d61d369569a3054b889848eaf1405a4f5137cd8c2cf27282115f70853dd4d5d8b4bf0a9fc60c63db936246a0a64077c9bfdb90685d4dfe375558e4519b2b SHA512 11697d8283f5df5a9c74c2406e94d1b6da6df8358ad48f3b773825aab98e8395f9fd4e3fc8b1e6ebad3743c3dadbda8b795d4fe84a447d7913223e136cf2b88f
DIST postgresql-13.5.tar.bz2 21186674 BLAKE2B 3e51d6d67bba09fb134cd71c48349674e0cacfaefee299620482c93f0b09edbfead578deb63083686ab691563b088fc0ea60a6281a0bcf9145689fb3ce1ec0f0 SHA512 c76effbca8ee63be48fa3aeb39c7038221848fe83ca2afc4e0904ba8c6a50b89aa2ad37080d4e3be75e9bdc2d6ca6dfefcda334ef55a5e1a8954bb955ce905e5
DIST postgresql-13.6.tar.bz2 21257213 BLAKE2B f5ea95fd9ffc8846e0aaf5bac03b02afa71e62e796bbe40f68af727a2f3c74eddd98cb68427bcc13b87b6fa00a8e2a7b18dd7749318f0a4a32cfdbf9b0e0a873 SHA512 2852726a3031b8d469f1c38f3019af02fc5afe40ec27b22288a29acefd30c63a98806bce88a214d0c2f9177f547b0b5010ad64e70bcbe2c2f1d97a27ae1984f8
DIST postgresql-13.7.tar.bz2 21364433 BLAKE2B 2d8a505f6de4eb31cae415529eeac750a60abafcf45e7fde29043597b385a8150fac55df659f8c2ad200822e8063d388ed606dff9108d4407f9e26b893fa62f4 SHA512 9254f21519c8d4e926f70082503bb5593c91064a3d2a4ea18ac503dfd9aa94751d6f01ce00fca9fec9b2b7af40caf8d0951b661dd8be4d6aa87c1e35b6fa7a41
DIST postgresql-13.8.tar.bz2 21397381 BLAKE2B eb076382027a175789652a6ae8579d9b9c8856918741e8058456d22f1ef89525cff5fafe863bf615f658bc94b740b00d1268825969e37a7cefed6b5c90f402c5 SHA512 3b39448b291342a5e9b610d410c222aeb85f8acf95632e73e138ae316133af3dadc795a6e706f6447f543cf10df3c786da4f1afa1d91489b50eb77e2d9ed5d84
DIST postgresql-14.1.tar.bz2 21887101 BLAKE2B a496dfd513c52339d1b3cb72773f9611721fd7c5d2a702d6fd71f650a1d41c3d7bf6574eba23671c7f9f11718e007f51f9547949bdc3d7fe1ea2248ebfb8d70b SHA512 4a0bec157d5464bb9e5f5c0eb0efdede55526e03f6f4d660b87d161a47705eb152fa0878960b1581bce42a5ed28a1f457825ea54e8d22e34b5b8eb36473ceefd
DIST postgresql-14.2.tar.bz2 21964841 BLAKE2B 6460533a40064404f18642147b949cf7c85d036c45ede478fb9af8919895ee7b09dc78b89ed08a292226911f07cfc9e46d7f2d42e0aaea546c5e97a291d599b9 SHA512 19aeb6528605dbcf5df84048b2eed8f54b202576134d3fe3900bb8f073179c4258d2581acd745887e7e6fa86ebdb5f7b159ffaa0a645d601efee7c5f7730456b
DIST postgresql-14.4.tar.bz2 22094218 BLAKE2B 05b65083d826ed2f451b31b29b4b247dfd76b3d24ef05f6be128ee9e58d521d506a3ec4ae4839cbb74d8e217dfae81a95bd97894a778ef3c47b907b85b1fb25e SHA512 dd2f80248684e331d2ffb1e26cd2a285df1fb18710807a0c31aedabf917912ce9267f8ca26318e5371d916c6fe476f8a17886d82d3ff86a974e6f24c19a6aafb
DIST postgresql-14.5.tar.bz2 22132996 BLAKE2B 6d303850ef1e8f9f5d66a53275fc814475646c762b9747a4f0401a472ebaf59be06d6e7c08e9c1c5ad5d3b9dbc3bb3c06d58bae137806e1a437c86bcc8cae501 SHA512 3051c5ab729f6a55952c6108098b022517398b1de64f7fefbdd6c806c7e2eb0637d00f3c98a6203c5bee654656528c4ff3530db5a69470e7888864c77900178a
DIST postgresql-15beta2.tar.bz2 23511057 BLAKE2B d1e6d8ce67998d4295587780c2cb75f33b930556e11fd95bbd4d828086f63faed6bbddbb809ebc1fddf0980c83c7cf51e3d37f110d7bb68959dab34f61b5b8c9 SHA512 139bf4f95e2bc8942666009c6680d2b61d8ea2898e9e7eb3a0afb118f0bf6acfac5f21676525cccd82e9ee5c43ad79e07e23a55333e1318426d8b9bc95a4f00d
DIST postgresql-15beta3.tar.bz2 23585136 BLAKE2B cdea196fb62587800f7fceafcbbd781f5636323fc6b205a0e5e0081964f2d08fcb421d0d66f710150dba37f30c2b0e7f7b3119a9a83a0cc573104968b16fc043 SHA512 caf79b889ca1325bcbdce3bbbcb3a0707b8928c8bd7b97f594cfedaedc06826e829a561b2fde73210c1e2596a0201305fa350bb3f12c05783014fc0c8564298a

@ -0,0 +1,144 @@
--- a/contrib/Makefile
+++ b/contrib/Makefile
@@ -5,56 +5,9 @@
include $(top_builddir)/src/Makefile.global
SUBDIRS = \
- adminpack \
- amcheck \
- auth_delay \
- auto_explain \
- bloom \
- btree_gin \
- btree_gist \
- citext \
- cube \
- dblink \
- dict_int \
- dict_xsyn \
- earthdistance \
- file_fdw \
- fuzzystrmatch \
- hstore \
- intagg \
- intarray \
- isn \
- lo \
- ltree \
oid2name \
- pageinspect \
- passwordcheck \
- pg_buffercache \
- pg_freespacemap \
- pg_prewarm \
- pg_standby \
- pg_stat_statements \
- pg_trgm \
- pgcrypto \
- pgrowlocks \
- pgstattuple \
- pg_visibility \
- postgres_fdw \
- seg \
- spi \
- tablefunc \
- tcn \
- test_decoding \
- tsm_system_rows \
- tsm_system_time \
- unaccent \
vacuumlo
-ifeq ($(with_openssl),yes)
-SUBDIRS += sslinfo
-else
-ALWAYS_SUBDIRS += sslinfo
-endif
ifneq ($(with_uuid),no)
SUBDIRS += uuid-ossp
--- a/src/backend/Makefile
+++ b/src/backend/Makefile
@@ -56,7 +56,7 @@
##########################################################################
-all: submake-libpgport submake-catalog-headers submake-utils-headers postgres $(POSTGRES_IMP)
+all: generated-headers
ifneq ($(PORTNAME), cygwin)
ifneq ($(PORTNAME), win32)
@@ -195,23 +195,7 @@
##########################################################################
-install: all installdirs install-bin
-ifeq ($(PORTNAME), cygwin)
-ifeq ($(MAKE_DLL), true)
- $(INSTALL_DATA) libpostgres.a '$(DESTDIR)$(libdir)/libpostgres.a'
-endif
-endif
-ifeq ($(PORTNAME), win32)
-ifeq ($(MAKE_DLL), true)
- $(INSTALL_DATA) libpostgres.a '$(DESTDIR)$(libdir)/libpostgres.a'
-endif
-endif
- $(MAKE) -C catalog install-data
- $(MAKE) -C tsearch install-data
- $(MAKE) -C utils install-data
- $(INSTALL_DATA) $(srcdir)/libpq/pg_hba.conf.sample '$(DESTDIR)$(datadir)/pg_hba.conf.sample'
- $(INSTALL_DATA) $(srcdir)/libpq/pg_ident.conf.sample '$(DESTDIR)$(datadir)/pg_ident.conf.sample'
- $(INSTALL_DATA) $(srcdir)/utils/misc/postgresql.conf.sample '$(DESTDIR)$(datadir)/postgresql.conf.sample'
+install:
ifeq ($(with_llvm), yes)
install-bin: install-postgres-bitcode
--- a/src/bin/Makefile
+++ b/src/bin/Makefile
@@ -14,21 +14,8 @@
include $(top_builddir)/src/Makefile.global
SUBDIRS = \
- initdb \
- pg_archivecleanup \
- pg_basebackup \
- pg_checksums \
pg_config \
- pg_controldata \
- pg_ctl \
pg_dump \
- pg_resetwal \
- pg_rewind \
- pg_test_fsync \
- pg_test_timing \
- pg_upgrade \
- pg_verifybackup \
- pg_waldump \
pgbench \
psql \
scripts
--- a/src/Makefile
+++ b/src/Makefile
@@ -15,21 +15,12 @@
SUBDIRS = \
common \
port \
- timezone \
backend \
- backend/utils/mb/conversion_procs \
- backend/snowball \
include \
interfaces \
- backend/replication/libpqwalreceiver \
- backend/replication/pgoutput \
fe_utils \
bin \
- pl \
- makefiles \
- test/regress \
- test/isolation \
- test/perl
+ makefiles
ifeq ($(with_llvm), yes)
SUBDIRS += backend/jit/llvm

@ -0,0 +1,146 @@
--- a/contrib/Makefile
+++ b/contrib/Makefile
@@ -5,57 +5,9 @@
include $(top_builddir)/src/Makefile.global
SUBDIRS = \
- adminpack \
- amcheck \
- auth_delay \
- auto_explain \
- bloom \
- btree_gin \
- btree_gist \
- citext \
- cube \
- dblink \
- dict_int \
- dict_xsyn \
- earthdistance \
- file_fdw \
- fuzzystrmatch \
- hstore \
- intagg \
- intarray \
- isn \
- lo \
- ltree \
oid2name \
- old_snapshot \
- pageinspect \
- passwordcheck \
- pg_buffercache \
- pg_freespacemap \
- pg_prewarm \
- pg_stat_statements \
- pg_surgery \
- pg_trgm \
- pgcrypto \
- pgrowlocks \
- pgstattuple \
- pg_visibility \
- postgres_fdw \
- seg \
- spi \
- tablefunc \
- tcn \
- test_decoding \
- tsm_system_rows \
- tsm_system_time \
- unaccent \
vacuumlo
-ifeq ($(with_ssl),openssl)
-SUBDIRS += sslinfo
-else
-ALWAYS_SUBDIRS += sslinfo
-endif
ifneq ($(with_uuid),no)
SUBDIRS += uuid-ossp
--- a/src/backend/Makefile
+++ b/src/backend/Makefile
@@ -56,7 +56,7 @@
##########################################################################
-all: submake-libpgport submake-catalog-headers submake-utils-headers postgres $(POSTGRES_IMP)
+all: generated-headers
ifneq ($(PORTNAME), cygwin)
ifneq ($(PORTNAME), win32)
@@ -194,23 +194,7 @@
##########################################################################
-install: all installdirs install-bin
-ifeq ($(PORTNAME), cygwin)
-ifeq ($(MAKE_DLL), true)
- $(INSTALL_DATA) libpostgres.a '$(DESTDIR)$(libdir)/libpostgres.a'
-endif
-endif
-ifeq ($(PORTNAME), win32)
-ifeq ($(MAKE_DLL), true)
- $(INSTALL_DATA) libpostgres.a '$(DESTDIR)$(libdir)/libpostgres.a'
-endif
-endif
- $(MAKE) -C catalog install-data
- $(MAKE) -C tsearch install-data
- $(MAKE) -C utils install-data
- $(INSTALL_DATA) $(srcdir)/libpq/pg_hba.conf.sample '$(DESTDIR)$(datadir)/pg_hba.conf.sample'
- $(INSTALL_DATA) $(srcdir)/libpq/pg_ident.conf.sample '$(DESTDIR)$(datadir)/pg_ident.conf.sample'
- $(INSTALL_DATA) $(srcdir)/utils/misc/postgresql.conf.sample '$(DESTDIR)$(datadir)/postgresql.conf.sample'
+install:
ifeq ($(with_llvm), yes)
install-bin: install-postgres-bitcode
--- a/src/bin/Makefile
+++ b/src/bin/Makefile
@@ -14,22 +14,8 @@
include $(top_builddir)/src/Makefile.global
SUBDIRS = \
- initdb \
- pg_amcheck \
- pg_archivecleanup \
- pg_basebackup \
- pg_checksums \
pg_config \
- pg_controldata \
- pg_ctl \
pg_dump \
- pg_resetwal \
- pg_rewind \
- pg_test_fsync \
- pg_test_timing \
- pg_upgrade \
- pg_verifybackup \
- pg_waldump \
pgbench \
psql \
scripts
--- a/src/Makefile
+++ b/src/Makefile
@@ -15,21 +15,12 @@
SUBDIRS = \
common \
port \
- timezone \
backend \
- backend/utils/mb/conversion_procs \
- backend/snowball \
include \
interfaces \
- backend/replication/libpqwalreceiver \
- backend/replication/pgoutput \
fe_utils \
bin \
- pl \
- makefiles \
- test/regress \
- test/isolation \
- test/perl
+ makefiles
ifeq ($(with_llvm), yes)
SUBDIRS += backend/jit/llvm

@ -0,0 +1,146 @@
--- a/contrib/Makefile
+++ b/contrib/Makefile
@@ -5,59 +5,9 @@
include $(top_builddir)/src/Makefile.global
SUBDIRS = \
- adminpack \
- amcheck \
- auth_delay \
- auto_explain \
- basic_archive \
- basebackup_to_shell \
- bloom \
- btree_gin \
- btree_gist \
- citext \
- cube \
- dblink \
- dict_int \
- dict_xsyn \
- earthdistance \
- file_fdw \
- fuzzystrmatch \
- hstore \
- intagg \
- intarray \
- isn \
- lo \
- ltree \
oid2name \
- old_snapshot \
- pageinspect \
- passwordcheck \
- pg_buffercache \
- pg_freespacemap \
- pg_prewarm \
- pg_stat_statements \
- pg_surgery \
- pg_trgm \
- pgrowlocks \
- pgstattuple \
- pg_visibility \
- pg_walinspect \
- postgres_fdw \
- seg \
- spi \
- tablefunc \
- tcn \
- test_decoding \
- tsm_system_rows \
- tsm_system_time \
- unaccent \
vacuumlo
-ifeq ($(with_ssl),openssl)
-SUBDIRS += pgcrypto sslinfo
-else
-ALWAYS_SUBDIRS += pgcrypto sslinfo
-endif
ifneq ($(with_uuid),no)
SUBDIRS += uuid-ossp
--- a/src/backend/Makefile
+++ b/src/backend/Makefile
@@ -56,7 +56,7 @@
##########################################################################
-all: submake-libpgport submake-catalog-headers submake-utils-headers postgres $(POSTGRES_IMP)
+all: generated-headers
ifneq ($(PORTNAME), cygwin)
ifneq ($(PORTNAME), win32)
@@ -194,23 +194,7 @@
##########################################################################
-install: all installdirs install-bin
-ifeq ($(PORTNAME), cygwin)
-ifeq ($(MAKE_DLL), true)
- $(INSTALL_DATA) libpostgres.a '$(DESTDIR)$(libdir)/libpostgres.a'
-endif
-endif
-ifeq ($(PORTNAME), win32)
-ifeq ($(MAKE_DLL), true)
- $(INSTALL_DATA) libpostgres.a '$(DESTDIR)$(libdir)/libpostgres.a'
-endif
-endif
- $(MAKE) -C catalog install-data
- $(MAKE) -C tsearch install-data
- $(MAKE) -C utils install-data
- $(INSTALL_DATA) $(srcdir)/libpq/pg_hba.conf.sample '$(DESTDIR)$(datadir)/pg_hba.conf.sample'
- $(INSTALL_DATA) $(srcdir)/libpq/pg_ident.conf.sample '$(DESTDIR)$(datadir)/pg_ident.conf.sample'
- $(INSTALL_DATA) $(srcdir)/utils/misc/postgresql.conf.sample '$(DESTDIR)$(datadir)/postgresql.conf.sample'
+install:
ifeq ($(with_llvm), yes)
install-bin: install-postgres-bitcode
--- a/src/bin/Makefile
+++ b/src/bin/Makefile
@@ -14,22 +14,8 @@
include $(top_builddir)/src/Makefile.global
SUBDIRS = \
- initdb \
- pg_amcheck \
- pg_archivecleanup \
- pg_basebackup \
- pg_checksums \
pg_config \
- pg_controldata \
- pg_ctl \
pg_dump \
- pg_resetwal \
- pg_rewind \
- pg_test_fsync \
- pg_test_timing \
- pg_upgrade \
- pg_verifybackup \
- pg_waldump \
pgbench \
psql \
scripts
--- a/src/Makefile
+++ b/src/Makefile
@@ -17,19 +17,11 @@
port \
timezone \
backend \
- backend/utils/mb/conversion_procs \
- backend/snowball \
include \
interfaces \
- backend/replication/libpqwalreceiver \
- backend/replication/pgoutput \
fe_utils \
bin \
- pl \
- makefiles \
- test/regress \
- test/isolation \
- test/perl
+ makefiles
ifeq ($(with_llvm), yes)
SUBDIRS += backend/jit/llvm

@ -0,0 +1,453 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{8,9,10,11} )
inherit flag-o-matic linux-info pam python-single-r1 systemd tmpfiles
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~ppc-macos ~x86-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 nls pam perl
python +readline selinux +server systemd ssl static-libs tcl
threads uuid xml zlib"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
CDEPEND="
>=app-eselect/eselect-postgresql-2.0
acct-group/postgres
acct-user/postgres
sys-apps/less
virtual/libcrypt:=
virtual/libintl
icu? ( dev-libs/icu:= )
kerberos? ( virtual/krb5 )
ldap? ( net-nds/openldap:= )
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
sys-devel/flex
nls? ( sys-devel/gettext )
xml? ( virtual/pkgconfig )
"
RDEPEND="${CDEPEND}
selinux? ( sec-policy/selinux-postgresql )
"
pkg_setup() {
use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup
use python && python-single-r1_pkg_setup
}
src_prepare() {
# Work around PPC{,64} compilation bug where bool is already defined
sed '/#ifndef __cplusplus/a #undef bool' -i src/include/c.h || die
# Set proper run directory
sed "s|\(PGSOCKET_DIR\s\+\)\"/tmp\"|\1\"${EPREFIX}/run/postgresql\"|" \
-i src/include/pg_config_manual.h || die
# Rely on $PATH being in the proper order so that the correct
# install program is used for modules utilizing PGXS in both
# hardened and non-hardened environments. (Bug #528786)
sed 's/@install_bin@/install -c/' -i src/Makefile.global.in || die
use server || eapply "${FILESDIR}/${PN}-10.2-no-server.patch"
if use pam ; then
sed -e "s/\(#define PGSQL_PAM_SERVICE \"postgresql\)/\1-${SLOT}/" \
-i src/backend/libpq/auth.c || \
die 'PGSQL_PAM_SERVICE rename failed.'
fi
# https://bugs.gentoo.org/753257
# https://bugs.gentoo.org/766225
eapply "${FILESDIR}"/postgresql-10.0-icu68.patch
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_enable threads thread-safety) \
$(use_with icu) \
$(use_with kerberos gssapi) \
$(use_with ldap) \
$(use_with pam) \
$(use_with perl) \
$(use_with python) \
$(use_with readline) \
$(use_with ssl openssl) \
$(usex server "$(use_with systemd)" '--without-systemd') \
$(use_with tcl) \
${uuid_config} \
$(use_with xml libxml) \
$(use_with xml libxslt) \
$(use_with zlib) \
$(use_enable nls)
}
src_compile() {
emake
emake -C contrib
}
src_install() {
emake DESTDIR="${D}" install
emake DESTDIR="${D}" install -C contrib
dodoc README HISTORY doc/{TODO,bug.template}
# man pages are already built, but if we have the target make them,
# they'll be generated from source before being installed so we
# manually install man pages.
# We use ${SLOT} instead of doman for postgresql.eselect
insinto /usr/share/postgresql-${SLOT}/man/
doins -r doc/src/sgml/man{1,3,7}
if ! use server; then
# Remove man pages for non-existent binaries
serverman=(
initdb
pg_{archivecleanup,controldata,ctl,resetwal,rewind,standby}
pg_{test_{fsync,timing},upgrade,waldump}
post{gres,master}
)
for m in ${serverman[@]} ; do
rm "${ED}/usr/share/postgresql-${SLOT}/man/man1/${m}.1"
done
fi
docompress /usr/share/postgresql-${SLOT}/man/man{1,3,7}
# Create slot specific man pages
local bn f mansec slotted_name
for mansec in 1 3 7 ; do
local rel_manpath="../../postgresql-${SLOT}/man/man${mansec}"
mkdir -p "${ED}"/usr/share/man/man${mansec} || die "making man dir"
pushd "${ED}"/usr/share/man/man${mansec} > /dev/null || die "pushd failed"
for f in "${ED}/usr/share/postgresql-${SLOT}/man/man${mansec}"/* ; do
bn=$(basename "${f}")
slotted_name=${bn%.${mansec}}${SLOT}.${mansec}
case ${bn} in
TABLE.7|WITH.7)
echo ".so ${rel_manpath}/SELECT.7" > ${slotted_name}
;;
*)
echo ".so ${rel_manpath}/${bn}" > ${slotted_name}
;;
esac
done
popd > /dev/null
done
insinto /etc/postgresql-${SLOT}
newins src/bin/psql/psqlrc.sample psqlrc
# 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 "${DATA_DIR}"
chown -Rf postgres:postgres "${DATA_DIR}"
chmod 0700 "${DATA_DIR}"
fi
einfo "Initializing the database ..."
if [[ ${EUID} == 0 ]] ; then
su - postgres -c "${EROOT}/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -D \"${DATA_DIR}\" ${PG_INITDB_OPTS}"
else
"${EROOT}"/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -U postgres -D "${DATA_DIR}" ${PG_INITDB_OPTS}
fi
if [[ "${DATA_DIR%/}" != "${PGDATA%/}" ]] ; then
mv "${DATA_DIR%/}"/{pg_{hba,ident},postgresql}.conf "${PGDATA}"
ln -s "${PGDATA%/}"/{pg_{hba,ident},postgresql}.conf "${DATA_DIR%/}"
fi
# unix_socket_directory has no effect in postgresql.conf as it's
# overridden in the initscript
sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf
cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
# This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
# On the off-chance that you might need to work with UTF-8 encoded
# characters in PL/Perl
plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
EOF
einfo "The autovacuum function, which was in contrib, has been moved to the main"
einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
einfo "by default. You can disable it in the cluster's:"
einfo " ${PGDATA%/}/postgresql.conf"
einfo
if ! use systemd; then
einfo "The PostgreSQL server, by default, will log events to:"
einfo " ${DATA_DIR%/}/postmaster.log"
einfo
fi
if use prefix ; then
einfo "The location of the configuration files have moved to:"
einfo " ${PGDATA}"
einfo "To start the server:"
einfo " pg_ctl start -D ${DATA_DIR} -o '-D ${PGDATA} --data-directory=${DATA_DIR}'"
einfo "To stop:"
einfo " pg_ctl stop -D ${DATA_DIR}"
einfo
einfo "Or move the configuration files back:"
einfo "mv ${PGDATA}*.conf ${DATA_DIR}"
elif use systemd; then
einfo "You should use the 'postgresql-${SLOT}.service' unit to run PostgreSQL"
einfo "instead of 'pg_ctl'."
else
einfo "You should use the '${EROOT}/etc/init.d/postgresql-${SLOT}' script to run PostgreSQL"
einfo "instead of 'pg_ctl'."
fi
}
src_test() {
if use server && [[ ${UID} -ne 0 ]] ; then
emake check
einfo "If you think other tests besides the regression tests are necessary, please"
einfo "submit a bug including a patch for this ebuild to enable them."
else
use server || \
ewarn 'Tests cannot be run without the "server" use flag enabled.'
[[ ${UID} -eq 0 ]] || \
ewarn 'Tests cannot be run as root. Enable "userpriv" in FEATURES.'
ewarn 'Skipping.'
fi
}

@ -0,0 +1,453 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{8,9,10,11} )
LLVM_MAX_SLOT=13
inherit flag-o-matic linux-info llvm pam python-single-r1 systemd tmpfiles
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-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
threads 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? (
<sys-devel/llvm-14:=
<sys-devel/clang-14:=
)
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
sys-devel/flex
nls? ( sys-devel/gettext )
xml? ( virtual/pkgconfig )
"
RDEPEND="${CDEPEND}
selinux? ( sec-policy/selinux-postgresql )
"
pkg_setup() {
use llvm && llvm_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}-11_beta1-no-server.patch"
if use pam ; then
sed "s/\(#define PGSQL_PAM_SERVICE \"postgresql\)/\1-${SLOT}/" \
-i src/backend/libpq/auth.c || \
die 'PGSQL_PAM_SERVICE rename failed.'
fi
eapply_user
}
src_configure() {
case ${CHOST} in
*-darwin*|*-solaris*)
use nls && append-libs intl
;;
esac
export LDFLAGS_SL="${LDFLAGS}"
export LDFLAGS_EX="${LDFLAGS}"
local PO="${EPREFIX}"
local i uuid_config=""
if use uuid; then
for i in ${UTIL_LINUX_LIBC[@]}; do
use ${i} && uuid_config="--with-uuid=e2fs"
done
[[ -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_enable threads thread-safety) \
$(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 doc/{TODO,bug.template}
# man pages are already built, but if we have the target make them,
# they'll be generated from source before being installed so we
# manually install man pages.
# We use ${SLOT} instead of doman for postgresql.eselect
insinto /usr/share/postgresql-${SLOT}/man/
doins -r doc/src/sgml/man{1,3,7}
if ! use server; then
# Remove man pages for non-existent binaries
serverman=(
initdb
pg_{archivecleanup,controldata,ctl,resetwal,rewind,standby}
pg_{test_{fsync,timing},upgrade,waldump}
post{gres,master}
)
for m in ${serverman[@]} ; do
rm "${ED}/usr/share/postgresql-${SLOT}/man/man1/${m}.1"
done
fi
docompress /usr/share/postgresql-${SLOT}/man/man{1,3,7}
# Create slot specific man pages
local bn f mansec slotted_name
for mansec in 1 3 7 ; do
local rel_manpath="../../postgresql-${SLOT}/man/man${mansec}"
mkdir -p "${ED}"/usr/share/man/man${mansec} || die "making man dir"
pushd "${ED}"/usr/share/man/man${mansec} > /dev/null || die "pushd failed"
for f in "${ED}/usr/share/postgresql-${SLOT}/man/man${mansec}"/* ; do
bn=$(basename "${f}")
slotted_name=${bn%.${mansec}}${SLOT}.${mansec}
case ${bn} in
TABLE.7|WITH.7)
echo ".so ${rel_manpath}/SELECT.7" > ${slotted_name}
;;
*)
echo ".so ${rel_manpath}/${bn}" > ${slotted_name}
;;
esac
done
popd > /dev/null
done
insinto /etc/postgresql-${SLOT}
newins src/bin/psql/psqlrc.sample psqlrc
# 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
cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
# This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
# On the off-chance that you might need to work with UTF-8 encoded
# characters in PL/Perl
plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
EOF
einfo "The autovacuum function, which was in contrib, has been moved to the main"
einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
einfo "by default. You can disable it in the cluster's:"
einfo " ${PGDATA%/}/postgresql.conf"
einfo
if ! use systemd; then
einfo "The PostgreSQL server, by default, will log events to:"
einfo " ${DATA_DIR%/}/postmaster.log"
einfo
fi
if use prefix ; then
einfo "The location of the configuration files have moved to:"
einfo " ${PGDATA}"
einfo "To start the server:"
einfo " pg_ctl start -D ${DATA_DIR} -o '-D ${PGDATA} --data-directory=${DATA_DIR}'"
einfo "To stop:"
einfo " pg_ctl stop -D ${DATA_DIR}"
einfo
einfo "Or move the configuration files back:"
einfo "mv ${PGDATA}*.conf ${DATA_DIR}"
elif use systemd; then
einfo "You should use the 'postgresql-${SLOT}.service' unit to run PostgreSQL"
einfo "instead of 'pg_ctl'."
else
einfo "You should use the '${EROOT}/etc/init.d/postgresql-${SLOT}' script to run PostgreSQL"
einfo "instead of 'pg_ctl'."
fi
}
src_test() {
if use server && [[ ${UID} -ne 0 ]] ; then
emake check
einfo "If you think other tests besides the regression tests are necessary, please"
einfo "submit a bug including a patch for this ebuild to enable them."
else
use server || \
ewarn 'Tests cannot be run without the "server" use flag enabled.'
[[ ${UID} -eq 0 ]] || \
ewarn 'Tests cannot be run as root. Enable "userpriv" in FEATURES.'
ewarn 'Skipping.'
fi
}

@ -0,0 +1,453 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{8,9,10,11} )
LLVM_MAX_SLOT=14
inherit flag-o-matic linux-info llvm pam python-single-r1 systemd tmpfiles
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-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
threads 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? (
<sys-devel/llvm-15:=
<sys-devel/clang-15:=
)
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
sys-devel/flex
nls? ( sys-devel/gettext )
xml? ( virtual/pkgconfig )
"
RDEPEND="${CDEPEND}
selinux? ( sec-policy/selinux-postgresql )
"
pkg_setup() {
use llvm && llvm_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_enable threads thread-safety) \
$(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
cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
# This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
# On the off-chance that you might need to work with UTF-8 encoded
# characters in PL/Perl
plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
EOF
einfo "The autovacuum function, which was in contrib, has been moved to the main"
einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
einfo "by default. You can disable it in the cluster's:"
einfo " ${PGDATA%/}/postgresql.conf"
einfo
if ! use systemd; then
einfo "The PostgreSQL server, by default, will log events to:"
einfo " ${DATA_DIR%/}/postmaster.log"
einfo
fi
if use prefix ; then
einfo "The location of the configuration files have moved to:"
einfo " ${PGDATA}"
einfo "To start the server:"
einfo " pg_ctl start -D ${DATA_DIR} -o '-D ${PGDATA} --data-directory=${DATA_DIR}'"
einfo "To stop:"
einfo " pg_ctl stop -D ${DATA_DIR}"
einfo
einfo "Or move the configuration files back:"
einfo "mv ${PGDATA}*.conf ${DATA_DIR}"
elif use systemd; then
einfo "You should use the 'postgresql-${SLOT}.service' unit to run PostgreSQL"
einfo "instead of 'pg_ctl'."
else
einfo "You should use the '${EROOT}/etc/init.d/postgresql-${SLOT}' script to run PostgreSQL"
einfo "instead of 'pg_ctl'."
fi
}
src_test() {
if use server && [[ ${UID} -ne 0 ]] ; then
emake check
einfo "If you think other tests besides the regression tests are necessary, please"
einfo "submit a bug including a patch for this ebuild to enable them."
else
use server || \
ewarn 'Tests cannot be run without the "server" use flag enabled.'
[[ ${UID} -eq 0 ]] || \
ewarn 'Tests cannot be run as root. Enable "userpriv" in FEATURES.'
ewarn 'Skipping.'
fi
}

@ -0,0 +1,465 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{8,9,10,11} )
LLVM_MAX_SLOT=14
inherit flag-o-matic linux-info llvm pam python-single-r1 systemd tmpfiles
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-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
threads 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? (
<sys-devel/llvm-15:=
<sys-devel/clang-15:=
)
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
sys-devel/flex
nls? ( sys-devel/gettext )
xml? ( virtual/pkgconfig )
"
RDEPEND="${CDEPEND}
selinux? ( sec-policy/selinux-postgresql )
"
pkg_setup() {
use llvm && llvm_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_enable threads thread-safety) \
$(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
cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
# This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
# On the off-chance that you might need to work with UTF-8 encoded
# characters in PL/Perl
plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
EOF
einfo "The autovacuum function, which was in contrib, has been moved to the main"
einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
einfo "by default. You can disable it in the cluster's:"
einfo " ${PGDATA%/}/postgresql.conf"
einfo
if ! use systemd; then
einfo "The PostgreSQL server, by default, will log events to:"
einfo " ${DATA_DIR%/}/postmaster.log"
einfo
fi
if use prefix ; then
einfo "The location of the configuration files have moved to:"
einfo " ${PGDATA}"
einfo "To start the server:"
einfo " pg_ctl start -D ${DATA_DIR} -o '-D ${PGDATA} --data-directory=${DATA_DIR}'"
einfo "To stop:"
einfo " pg_ctl stop -D ${DATA_DIR}"
einfo
einfo "Or move the configuration files back:"
einfo "mv ${PGDATA}*.conf ${DATA_DIR}"
elif use systemd; then
einfo "You should use the 'postgresql-${SLOT}.service' unit to run PostgreSQL"
einfo "instead of 'pg_ctl'."
else
einfo "You should use the '${EROOT}/etc/init.d/postgresql-${SLOT}' script to run PostgreSQL"
einfo "instead of 'pg_ctl'."
fi
}
src_test() {
if use server && [[ ${UID} -ne 0 ]] ; then
# 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
}

@ -0,0 +1,462 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{8,9,10,11} )
inherit flag-o-matic linux-info pam python-single-r1 systemd tmpfiles
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-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
threads 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? (
sys-devel/llvm:=
sys-devel/clang:=
)
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
sys-devel/flex
nls? ( sys-devel/gettext )
xml? ( virtual/pkgconfig )
"
RDEPEND="${CDEPEND}
selinux? ( sec-policy/selinux-postgresql )
"
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_enable threads thread-safety) \
$(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
cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
# This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
# On the off-chance that you might need to work with UTF-8 encoded
# characters in PL/Perl
plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
EOF
einfo "The autovacuum function, which was in contrib, has been moved to the main"
einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
einfo "by default. You can disable it in the cluster's:"
einfo " ${PGDATA%/}/postgresql.conf"
einfo
if ! use systemd; then
einfo "The PostgreSQL server, by default, will log events to:"
einfo " ${DATA_DIR%/}/postmaster.log"
einfo
fi
if use prefix ; then
einfo "The location of the configuration files have moved to:"
einfo " ${PGDATA}"
einfo "To start the server:"
einfo " pg_ctl start -D ${DATA_DIR} -o '-D ${PGDATA} --data-directory=${DATA_DIR}'"
einfo "To stop:"
einfo " pg_ctl stop -D ${DATA_DIR}"
einfo
einfo "Or move the configuration files back:"
einfo "mv ${PGDATA}*.conf ${DATA_DIR}"
elif use systemd; then
einfo "You should use the 'postgresql-${SLOT}.service' unit to run PostgreSQL"
einfo "instead of 'pg_ctl'."
else
einfo "You should use the '${EROOT}/etc/init.d/postgresql-${SLOT}' script to run PostgreSQL"
einfo "instead of 'pg_ctl'."
fi
}
src_test() {
if use server && [[ ${UID} -ne 0 ]] ; then
# 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
}

@ -0,0 +1,464 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{8,9,10,11} )
inherit flag-o-matic linux-info pam python-single-r1 systemd tmpfiles
KEYWORDS=""
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
threads 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? (
sys-devel/llvm:=
sys-devel/clang:=
)
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
sys-devel/flex
nls? ( sys-devel/gettext )
xml? ( virtual/pkgconfig )
"
RDEPEND="${CDEPEND}
selinux? ( sec-policy/selinux-postgresql )
"
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_enable threads thread-safety) \
$(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
cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
# This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
# On the off-chance that you might need to work with UTF-8 encoded
# characters in PL/Perl
plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
EOF
einfo "The autovacuum function, which was in contrib, has been moved to the main"
einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
einfo "by default. You can disable it in the cluster's:"
einfo " ${PGDATA%/}/postgresql.conf"
einfo
if ! use systemd; then
einfo "The PostgreSQL server, by default, will log events to:"
einfo " ${DATA_DIR%/}/postmaster.log"
einfo
fi
if use prefix ; then
einfo "The location of the configuration files have moved to:"
einfo " ${PGDATA}"
einfo "To start the server:"
einfo " pg_ctl start -D ${DATA_DIR} -o '-D ${PGDATA} --data-directory=${DATA_DIR}'"
einfo "To stop:"
einfo " pg_ctl stop -D ${DATA_DIR}"
einfo
einfo "Or move the configuration files back:"
einfo "mv ${PGDATA}*.conf ${DATA_DIR}"
elif use systemd; then
einfo "You should use the 'postgresql-${SLOT}.service' unit to run PostgreSQL"
einfo "instead of 'pg_ctl'."
else
einfo "You should use the '${EROOT}/etc/init.d/postgresql-${SLOT}' script to run PostgreSQL"
einfo "instead of 'pg_ctl'."
fi
}
src_test() {
if use server && [[ ${UID} -ne 0 ]] ; then
# 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
}

@ -1,12 +1,11 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
EAPI=8
PYTHON_COMPAT=( python3_{8,9,10} )
PYTHON_COMPAT=( python3_{8,9,10,11} )
inherit flag-o-matic git-r3 linux-info multilib pam prefix python-single-r1 \
systemd tmpfiles
inherit flag-o-matic git-r3 linux-info pam python-single-r1 systemd tmpfiles
KEYWORDS=""

Binary file not shown.

@ -0,0 +1,2 @@
DIST godot-3.5-stable.tar.xz 24044340 BLAKE2B 9d77ecdfa6bd90065fff26c2334f13c32bbbc4b26aad111b5aab2563d1e4782457ea6cf2115f1a809e0d8aac3d3ee9a138ad224998068983ad36e54a577d89c3 SHA512 23785e39ccc7e1406c97ee33b5e90f7f397aa907d79d72ed08ea3f4b7e68788030a1bcdd07c9f782a21ee3a84636a2cea47a57dcfc94c24e327fa210ae0515b0
DIST godot-4.0-alpha14.tar.xz 30970116 BLAKE2B 213616f3a80f97c09580324bf9296d12b6213a2941b3070353b45e160dc7d7bfd32fcae3fc2b64a91fa7d935c23d97fd02a015bc3501441d67261ee6e45e85e1 SHA512 511cb5d3f48c747232350bee25765c17032b99179fd70877f906bcd1a09449260a928c3df9f84c6f3afb47f564b8f4bf75d0a07d37f5a22dd5f5a96d1b1f4df5

@ -0,0 +1,9 @@
crash handler requires glibc or libexecinfo (not packaged),
and is always enabled if build the editor (release_debug)
--- a/platform/x11/crash_handler_x11.cpp
+++ b/platform/x11/crash_handler_x11.cpp
@@ -38,3 +38,3 @@
-#ifdef DEBUG_ENABLED
+#if defined(DEBUG_ENABLED) && defined(__GLIBC__)
#define CRASH_HANDLER_ENABLED 1

@ -0,0 +1,74 @@
* add option to respect AR
(respecting PKG_CONFIG is handled in the ebuild)
* handle recastnavigation unbundling
* remove unnecessary opusfile
* remove unnecessary -no-pie
* remove -pipe from LDFLAGS, may "possibly" be relevant to:
https://bugs.gentoo.org/861689
https://github.com/godotengine/godot/commit/f035e784
--- a/SConstruct
+++ b/SConstruct
@@ -192,4 +192,5 @@
opts.Add("CXX", "C++ compiler")
opts.Add("CC", "C compiler")
+opts.Add("AR", "Archiver")
opts.Add("LINK", "Linker")
opts.Add("CCFLAGS", "Custom flags for both the C and C++ compilers")
--- a/platform/server/detect.py
+++ b/platform/server/detect.py
@@ -135,5 +135,4 @@
env.Append(CCFLAGS=["-pipe"])
- env.Append(LINKFLAGS=["-pipe"])
## Dependencies
@@ -178,4 +177,7 @@
env.ParseConfig("pkg-config libenet --cflags --libs")
+ if not env["builtin_recast"]:
+ env.ParseConfig("pkg-config recastnavigation --cflags --libs")
+
if not env["builtin_squish"]:
env.ParseConfig("pkg-config libsquish --cflags --libs")
@@ -205,5 +207,5 @@
if not env["builtin_opus"]:
env["builtin_libogg"] = False # Needed to link against system opus
- env.ParseConfig("pkg-config opus opusfile --cflags --libs")
+ env.ParseConfig("pkg-config opus --cflags --libs")
if not env["builtin_libogg"]:
--- a/platform/x11/detect.py
+++ b/platform/x11/detect.py
@@ -232,17 +232,5 @@
env.Append(CCFLAGS=["-pipe"])
- env.Append(LINKFLAGS=["-pipe"])
- # Check for gcc version >= 6 before adding -no-pie
- version = get_compiler_version(env) or [-1, -1]
- if using_gcc(env):
- if version[0] >= 6:
- env.Append(CCFLAGS=["-fpie"])
- env.Append(LINKFLAGS=["-no-pie"])
- # Do the same for clang should be fine with Clang 4 and higher
- if using_clang(env):
- if version[0] >= 4:
- env.Append(CCFLAGS=["-fpie"])
- env.Append(LINKFLAGS=["-no-pie"])
## Dependencies
@@ -298,4 +286,7 @@
env.ParseConfig("pkg-config libenet --cflags --libs")
+ if not env["builtin_recast"]:
+ env.ParseConfig("pkg-config recastnavigation --cflags --libs")
+
if not env["builtin_squish"]:
env.ParseConfig("pkg-config libsquish --cflags --libs")
@@ -325,5 +316,5 @@
if not env["builtin_opus"]:
env["builtin_libogg"] = False # Needed to link against system opus
- env.ParseConfig("pkg-config opus opusfile --cflags --libs")
+ env.ParseConfig("pkg-config opus --cflags --libs")
if not env["builtin_libogg"]:

@ -0,0 +1,9 @@
crash handler requires glibc or libexecinfo (not packaged),
and is always enabled if build the editor (release_debug)
--- a/platform/linuxbsd/crash_handler_linuxbsd.cpp
+++ b/platform/linuxbsd/crash_handler_linuxbsd.cpp
@@ -38,3 +38,3 @@
-#ifdef DEBUG_ENABLED
+#if defined(DEBUG_ENABLED) && defined(__GLIBC__)
#define CRASH_HANDLER_ENABLED 1

@ -0,0 +1,29 @@
* add option to respect AR
(respecting PKG_CONFIG is handled in the ebuild)
* fix icu unbundling underlinking
* handle recastnavigation unbundling
--- a/SConstruct
+++ b/SConstruct
@@ -233,4 +233,5 @@
opts.Add("CXX", "C++ compiler")
opts.Add("CC", "C compiler")
+opts.Add("AR", "Archiver")
opts.Add("LINK", "Linker")
opts.Add("CCFLAGS", "Custom flags for both the C and C++ compilers")
--- a/platform/linuxbsd/detect.py
+++ b/platform/linuxbsd/detect.py
@@ -238,5 +238,5 @@
if not env["builtin_icu"]:
- env.ParseConfig("pkg-config icu-uc --cflags --libs")
+ env.ParseConfig("pkg-config icu-i18n --cflags --libs")
if not env["builtin_harfbuzz"]:
@@ -249,4 +249,7 @@
env.ParseConfig("pkg-config libenet --cflags --libs")
+ if not env["builtin_recast"]:
+ env.ParseConfig("pkg-config recastnavigation --cflags --libs")
+
if not env["builtin_squish"]:
env.ParseConfig("pkg-config libsquish --cflags --libs")

@ -0,0 +1,218 @@
# Copyright 2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{8..10} )
inherit bash-completion-r1 desktop python-any-r1 scons-utils toolchain-funcs xdg
DESCRIPTION="Multi-platform 2D and 3D game engine with a feature-rich editor"
HOMEPAGE="https://godotengine.org/"
SRC_URI="https://downloads.tuxfamily.org/godotengine/${PV}/${P}-stable.tar.xz"
S="${WORKDIR}/${P}-stable"
LICENSE="
MIT
Apache-2.0 BSD Boost-1.0 CC0-1.0 Unlicense ZLIB
gui? ( CC-BY-4.0 ) tools? ( BitstreamVera OFL-1.1 )"
SLOT="3"
KEYWORDS="~amd64"
# Enable roughly same as upstream by default so it works as expected,
# except raycast (tools-only heavy dependency), and deprecated.
IUSE="
+bullet debug deprecated +gui pulseaudio raycast +runner +theora
+tools +udev +upnp +webm +webp"
# dlopen: alsa-lib,pulseaudio,udev
RDEPEND="
app-arch/zstd:=
dev-games/recastnavigation:=
dev-libs/libpcre2:=[pcre32]
media-libs/freetype[brotli]
media-libs/libpng:=
<net-libs/mbedtls-3:=
net-libs/wslay
sys-libs/zlib:=
bullet? ( sci-physics/bullet:= )
gui? (
media-libs/alsa-lib
media-libs/libglvnd[X]
x11-libs/libX11
x11-libs/libXcursor
x11-libs/libXext
x11-libs/libXi
x11-libs/libXinerama
x11-libs/libXrandr
x11-libs/libXrender
pulseaudio? ( media-libs/libpulse )
tools? ( raycast? ( media-libs/embree:3 ) )
udev? ( virtual/udev )
)
theora? (
media-libs/libogg
media-libs/libtheora
media-libs/libvorbis
)
tools? ( app-misc/ca-certificates )
upnp? ( net-libs/miniupnpc:= )
webm? (
media-libs/libvorbis
media-libs/libvpx:=
media-libs/opus
)
webp? ( media-libs/libwebp:= )"
DEPEND="
${RDEPEND}
gui? ( x11-base/xorg-proto )"
BDEPEND="virtual/pkgconfig"
PATCHES=(
"${FILESDIR}"/${PN}-3.5-musl.patch
"${FILESDIR}"/${PN}-3.5-scons.patch
)
src_prepare() {
default
sed -i "1,5s/ godot/&${SLOT}/i" misc/dist/linux/godot.6 || die
sed -i "/id/s/Godot/&${SLOT}/" misc/dist/linux/org.godotengine.Godot.appdata.xml || die
sed -e "s/=godot/&${SLOT}/" -e "/^Name=/s/$/ ${SLOT}/" \
-i misc/dist/linux/org.godotengine.Godot.desktop || die
sed -i "s|pkg-config |$(tc-getPKG_CONFIG) |" platform/{x11,server}/detect.py || die
# use of builtin_ switches can be messy (see below), delete to be sure
local unbundle=(
bullet embree freetype libogg libpng libtheora libvorbis libvpx
libwebp mbedtls miniupnpc opus pcre2 recastnavigation wslay zlib zstd
# certs: unused by generated header, but scons panics if not found
)
rm -r "${unbundle[@]/#/thirdparty/}" || die
}
src_compile() {
local -x BUILD_NAME=gentoo # replaces "custom_build" in version string
local esconsargs=(
AR="$(tc-getAR)" CC="$(tc-getCC)" CXX="$(tc-getCXX)"
platform=$(usex gui x11 server)
progress=no
verbose=yes
deprecated=$(usex deprecated)
#execinfo=$(usex !elibc_glibc) # libexecinfo is not packaged
minizip=yes # uses a modified bundled copy
pulseaudio=$(usex gui $(usex pulseaudio))
udev=$(usex gui $(usex udev))
system_certs_path="${EPREFIX}"/etc/ssl/certs/ca-certificates.crt
# platform/*/detect.py uses builtin_* switches to check if need
# to link with system libraries, but ignores whether the dep is
# actually used, so "enable" deleted builtins on disabled deps
builtin_bullet=$(usex !bullet)
builtin_certs=no
builtin_embree=$(usex !gui yes $(usex !tools yes $(usex !raycast)))
builtin_enet=yes # bundled copy is patched for IPv6+DTLS support
builtin_freetype=no
builtin_libogg=yes # unused
builtin_libpng=no
builtin_libtheora=$(usex !theora)
builtin_libvorbis=$(usex !theora $(usex !webm))
builtin_libvpx=$(usex !webm)
builtin_libwebp=$(usex !webp)
builtin_mbedtls=no
builtin_miniupnpc=$(usex !upnp)
builtin_opus=$(usex !webm)
builtin_pcre2=no
builtin_recast=no
builtin_rvo2=yes # bundled copy has godot-specific changes
builtin_squish=yes # ^ likewise, may not be safe to unbundle
builtin_wslay=no
builtin_xatlas=yes # not wired for unbundling nor packaged
builtin_zlib=no
builtin_zstd=no
# also bundled but lacking a builtin_* switch:
# cvtt, etc2comp, fonts, glad, jpeg-compressor, libsimplewebm,
# minimp3, minizip (patched to seek in archives), nanosvg, oidn,
# pvrtccompressor, stb_rect_pack, tinyexr, vhacd, and the misc
# directory.
# modules with optional dependencies, "possible" to disable more but
# gets messy and breaks all sorts of features (expected enabled)
module_bullet_enabled=$(usex bullet)
module_mono_enabled=no # unhandled
module_ogg_enabled=no # unused
module_opus_enabled=no # unused, support is gone and webm uses system's
# note raycast is disabled on many arches, see raycast/config.py
module_raycast_enabled=$(usex gui $(usex tools $(usex raycast)))
module_theora_enabled=$(usex theora)
module_upnp_enabled=$(usex upnp)
module_vorbis_enabled=no # unused, non-theora/webm uses stb_vorbis
module_webm_enabled=$(usex webm)
module_webp_enabled=$(usex webp)
# let *FLAGS handle these, e.g. can pass -flto as-is
debug_symbols=no
optimize=none
use_lto=no
use_static_cpp=no
)
if use runner && use tools; then
# build alternate faster + ~60% smaller binary for running
# games or servers without game development debug paths
escons extra_suffix=runner target=release tools=no "${esconsargs[@]}"
fi
esconsargs+=(
# debug: debug for godot itself
# release_debug: debug for game development
# release: no debugging paths, only available with tools=no
target=$(usex debug{,} $(usex tools release_debug release))
tools=$(usex tools)
)
escons extra_suffix=main "${esconsargs[@]}"
}
src_install() {
local s=godot${SLOT}
newbin bin/godot*.main ${s}
if use runner && use tools; then
newbin bin/godot*.runner ${s}-runner
else
# always available, revdeps shouldn't depend on [runner]
dosym ${s} /usr/bin/${s}-runner
fi
newman misc/dist/linux/godot.6 ${s}.6
dodoc AUTHORS.md CHANGELOG.md DONORS.md README.md
if use gui; then
newicon icon.svg ${s}.svg
newmenu misc/dist/linux/org.godotengine.Godot.desktop \
org.godotengine.${s^}.desktop
insinto /usr/share/metainfo
newins misc/dist/linux/org.godotengine.Godot.appdata.xml \
org.godotengine.${s^}.appdata.xml
insinto /usr/share/mime/application
newins misc/dist/linux/org.godotengine.Godot.xml \
org.godotengine.${s^}.xml
fi
newbashcomp misc/dist/shell/godot.bash-completion ${s}
bashcomp_alias ${s}{,-runner}
insinto /usr/share/fish/vendor_completions.d
newins misc/dist/shell/godot.fish ${s}.fish
dosym ${s}.fish /usr/share/fish/vendor_completions.d/${s}-runner.fish
insinto /usr/share/zsh/site-functions
newins misc/dist/shell/_godot.zsh-completion _${s}
dosym _${s} /usr/share/zsh/site-functions/_${s}-runner
}

@ -0,0 +1,246 @@
# Copyright 2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{8..10} )
inherit bash-completion-r1 desktop python-any-r1 scons-utils toolchain-funcs xdg
MY_P="${PN}-$(ver_rs 2 -)"
DESCRIPTION="Multi-platform 2D and 3D game engine with a feature-rich editor"
HOMEPAGE="https://godotengine.org/"
SRC_URI="https://downloads.tuxfamily.org/godotengine/$(ver_rs 2 /)/${MY_P}.tar.xz"
S="${WORKDIR}/${MY_P}"
LICENSE="
MIT
Apache-2.0 BSD Boost-1.0 CC0-1.0 Unlicense ZLIB
gui? ( CC-BY-4.0 ) tools? ( OFL-1.1 )"
SLOT="4"
#KEYWORDS="~amd64" # leaving 4 unkeyworded until at least first _beta
# Enable roughly same as upstream by default so it works as expected,
# except raycast (tools-only heavy dependency), and deprecated.
IUSE="
+dbus debug deprecated +fontconfig +gui pulseaudio raycast
+runner speech test +theora +tools +udev +upnp +webp"
RESTRICT="!test? ( test ) !tools? ( test )"
# dlopen: alsa-lib,dbus,fontconfig,pulseaudio,speech-dispatcher,udev
RDEPEND="
app-arch/zstd:=
dev-games/recastnavigation:=
dev-libs/icu:=
dev-libs/libpcre2:=[pcre32]
media-libs/freetype[brotli,harfbuzz]
media-libs/harfbuzz:=[icu]
media-libs/libogg
media-libs/libpng:=
media-libs/libvorbis
<net-libs/mbedtls-3:=
net-libs/wslay
sys-libs/zlib:=
fontconfig? ( media-libs/fontconfig )
gui? (
dev-util/glslang
media-libs/alsa-lib
media-libs/libglvnd[X]
media-libs/vulkan-loader[X]
x11-libs/libX11
x11-libs/libXcursor
x11-libs/libXext
x11-libs/libXi
x11-libs/libXinerama
x11-libs/libXrandr
x11-libs/libXrender
dbus? ( sys-apps/dbus )
pulseaudio? ( media-libs/libpulse )
tools? ( raycast? ( media-libs/embree:3 ) )
udev? ( virtual/udev )
)
speech? ( app-accessibility/speech-dispatcher )
theora? ( media-libs/libtheora )
tools? ( app-misc/ca-certificates )
upnp? ( net-libs/miniupnpc:= )
webp? ( media-libs/libwebp:= )"
DEPEND="
${RDEPEND}
gui? (
dev-util/vulkan-headers
x11-base/xorg-proto
)
tools? ( test? ( dev-cpp/doctest ) )"
BDEPEND="virtual/pkgconfig"
PATCHES=(
"${FILESDIR}"/${PN}-4.0-musl.patch
"${FILESDIR}"/${PN}-4.0_alpha14-scons.patch
)
src_prepare() {
default
sed -i "1,5s/ godot/&${SLOT}/i" misc/dist/linux/godot.6 || die
sed -i "/id/s/Godot/&${SLOT}/" misc/dist/linux/org.godotengine.Godot.appdata.xml || die
sed -e "s/=godot/&${SLOT}/" -e "/^Name=/s/$/ ${SLOT}/" \
-i misc/dist/linux/org.godotengine.Godot.desktop || die
sed -i "s|pkg-config |$(tc-getPKG_CONFIG) |" platform/linuxbsd/detect.py || die
# use of builtin_ switches can be messy (see below), delete to be sure
local unbundle=(
doctest embree freetype glslang graphite harfbuzz icu4c libogg libpng
libtheora libvorbis libwebp mbedtls miniupnpc pcre2 recastnavigation
volk vulkan/include wslay zlib zstd
# certs: unused by generated header, but scons panics if not found
)
rm -r "${unbundle[@]/#/thirdparty/}" || die
# do symlinks to avoid too much patching with hardcoded header paths
mkdir thirdparty/lib{vorbis,ogg} || die
ln -s "${ESYSROOT}"/usr/include thirdparty/zstd || die
ln -s "${ESYSROOT}"/usr/include/doctest thirdparty/ || die
ln -s "${ESYSROOT}"/usr/include/ogg thirdparty/libogg/ || die
ln -s "${ESYSROOT}"/usr/include/vorbis thirdparty/libvorbis/ || die
}
src_compile() {
local -x GODOT_VERSION_STATUS=$(ver_cut 3-4) # for dev versions only
local -x BUILD_NAME=gentoo # replaces "custom_build" in version string
local esconsargs=(
AR="$(tc-getAR)" CC="$(tc-getCC)" CXX="$(tc-getCXX)"
progress=no
verbose=yes
deprecated=$(usex deprecated)
#execinfo=$(usex !elibc_glibc) # libexecinfo is not packaged
fontconfig=$(usex fontconfig)
minizip=yes # uses a modified bundled copy
opengl3=$(usex gui)
pulseaudio=$(usex gui $(usex pulseaudio))
speechd=$(usex speech)
udev=$(usex gui $(usex udev))
use_dbus=$(usex gui $(usex dbus))
use_volk=no # unnecessary when linking directly to libvulkan
vulkan=$(usex gui) # hard-required and favored by upstream over gles3
x11=$(usex gui)
system_certs_path="${EPREFIX}"/etc/ssl/certs/ca-certificates.crt
# platform/*/detect.py uses builtin_* switches to check if need
# to link with system libraries, but ignores whether the dep is
# actually used, so "enable" deleted builtins on disabled deps
builtin_certs=no
builtin_embree=$(usex !gui yes $(usex !tools yes $(usex !raycast)))
builtin_enet=yes # bundled copy is patched for IPv6+DTLS support
builtin_freetype=no
builtin_glslang=$(usex !gui)
builtin_graphite=no
builtin_harfbuzz=no
builtin_icu=no
builtin_libogg=no
builtin_libpng=no
builtin_libtheora=$(usex !theora)
builtin_libvorbis=no
builtin_libwebp=$(usex !webp)
builtin_mbedtls=no
builtin_miniupnpc=$(usex !upnp)
builtin_msdfgen=yes # not wired for unbundling nor packaged
builtin_pcre2=no
builtin_recast=no
builtin_rvo2=yes # bundled copy has godot-specific changes
builtin_squish=yes # ^ likewise, may not be safe to unbundle
builtin_wslay=no
builtin_xatlas=yes # not wired for unbundling nor packaged
builtin_zlib=no
builtin_zstd=no
# also bundled but lacking a builtin_* switch:
# amd-fsr, basis_universal, cvtt, etcpak, fonts, glad,
# jpeg-compressor, meshoptimizer, minimp3, minizip (patched to
# seek in archives), noise, oidn, openxr, spirv-reflect, thorvg,
# tinyexr, vhacd, vulkan (minus include/) and the misc directory.
# modules with optional dependencies, "possible" to disable more but
# gets messy and breaks all sorts of features (expected enabled)
module_glslang_enabled=$(usex gui)
module_gridmap_enabled=$(usex deprecated) # fails without deprecated
module_mono_enabled=no # unhandled
# note raycast is disabled on many arches, see raycast/config.py
module_raycast_enabled=$(usex gui $(usex tools $(usex raycast)))
module_theora_enabled=$(usex theora)
module_upnp_enabled=$(usex upnp)
module_webp_enabled=$(usex webp)
# let *FLAGS handle these, e.g. can pass -flto as-is
debug_symbols=no
optimize=none
use_lto=no
use_static_cpp=no
)
if use runner && use tools; then
# build alternate faster + ~60% smaller binary for running
# games or servers without game development debug paths
escons extra_suffix=runner target=release tools=no "${esconsargs[@]}"
fi
esconsargs+=(
# debug: debug for godot itself
# release_debug: debug for game development
# release: no debugging paths, only available with tools=no
target=$(usex debug{,} $(usex tools release_debug release))
tools=$(usex tools)
# harmless but note this bakes in --test in the final binary
tests=$(usex tools $(usex test))
)
escons extra_suffix=main "${esconsargs[@]}"
}
src_test() {
xdg_environment_reset
bin/godot*.main --headless --test || die
}
src_install() {
local s=godot${SLOT}
newbin bin/godot*.main ${s}
if use runner && use tools; then
newbin bin/godot*.runner ${s}-runner
else
# always available, revdeps shouldn't depend on [runner]
dosym ${s} /usr/bin/${s}-runner
fi
newman misc/dist/linux/godot.6 ${s}.6
dodoc AUTHORS.md CHANGELOG.md DONORS.md README.md
if use gui; then
newicon icon.svg ${s}.svg
newmenu misc/dist/linux/org.godotengine.Godot.desktop \
org.godotengine.${s^}.desktop
insinto /usr/share/metainfo
newins misc/dist/linux/org.godotengine.Godot.appdata.xml \
org.godotengine.${s^}.appdata.xml
insinto /usr/share/mime/application
newins misc/dist/linux/org.godotengine.Godot.xml \
org.godotengine.${s^}.xml
fi
newbashcomp misc/dist/shell/godot.bash-completion ${s}
bashcomp_alias ${s}{,-runner}
insinto /usr/share/fish/vendor_completions.d
newins misc/dist/shell/godot.fish ${s}.fish
dosym ${s}.fish /usr/share/fish/vendor_completions.d/${s}-runner.fish
insinto /usr/share/zsh/site-functions
newins misc/dist/shell/_godot.zsh-completion _${s}
dosym _${s} /usr/share/zsh/site-functions/_${s}-runner
}

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>ionen@gentoo.org</email>
<name>Ionen Wolkens</name>
</maintainer>
<maintainer type="project">
<email>games@gentoo.org</email>
<name>Gentoo Games Project</name>
</maintainer>
<longdescription>
Godot Engine is a feature-packed, cross-platform game engine
to create 2D and 3D games from a unified interface. It provides
a comprehensive set of common tools, so that users can focus on
making games without having to reinvent the wheel. Games can be
exported with one click to a number of platforms, including the
major desktop platforms (Linux, macOS, Windows), mobile
platforms (Android, iOS), as well as Web-based platforms (HTML5)
and consoles.
</longdescription>
<use>
<flag name="bullet">Enable the <pkg>sci-physics/bullet</pkg> module</flag>
<flag name="deprecated">Enable support for deprecated features</flag>
<flag name="raycast">Enable the raycast Editor module using <pkg>media-libs/embree</pkg></flag>
<flag name="runner">Build an additional binary optimized for running games (only relevant with USE=tools)</flag>
<flag name="speech">Enable text-to-speech support</flag>
<flag name="tools">Enable the Godot Editor for game development</flag>
<flag name="webm">Enable the WebM module</flag>
</use>
<upstream>
<doc>https://docs.godotengine.org/</doc>
<remote-id type="github">godotengine/godot</remote-id>
</upstream>
</pkgmetadata>

Binary file not shown.

@ -1,2 +1 @@
DIST postgresql-jdbc-42.4.0.src.tar.gz 966868 BLAKE2B 0a8bffcfbba4ddedcbd77717b6bca2f4e7cd9fe4597c6edb5a2ac8fbea788c692377ae713723aa7342895f857aff7eca0825eedd36cff69f3760b11cbb7b666c SHA512 816967923f54d5c2ad856e3ae2612987fa52234acc6b487f492d56614ac241d9542abd40a1f868ad6d895a45de28f7a0d586f8486dc719600238bcc3ef40819a
DIST postgresql-jdbc-42.4.1.src.tar.gz 969554 BLAKE2B 76035b2362c304d6263b9549b2ecbedc6e1cfedeba9c2c35f07d29dada39e5bce93e939abb8cb2232a428b0341c5cd5e6ae22de6106292c4d28243e3e0e6fc00 SHA512 a49c5b68a26ba6fd1b150c45da2ec58ea4435b7c36b8aa9bf6c3d33b6a265dabe7da51705e9d7234a640c8f6ccb5c3abb639db2d7bc38e6f4e26550b05b4a844

@ -1,59 +0,0 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Skeleton command:
# java-ebuilder --generate-ebuild --workdir . --pom pom.xml --download-uri https://jdbc.postgresql.org/download/postgresql-jdbc-42.4.0.src.tar.gz --slot 0 --keywords "~amd64 ~ppc64 ~x86" --ebuild jdbc-postgresql-42.4.0.ebuild
EAPI=8
JAVA_PKG_IUSE="doc source"
MAVEN_ID="org.postgresql:postgresql:42.4.0"
# We don't have junit-vintage and junit-jupiter.
# JAVA_TESTING_FRAMEWORKS="junit-vintage junit-jupiter junit-4"
inherit java-pkg-2 java-pkg-simple
DESCRIPTION="Java JDBC 4.2 (JRE 8+) driver for PostgreSQL database"
HOMEPAGE="https://github.com/pgjdbc/pgjdbc"
SRC_URI="https://jdbc.postgresql.org/download/postgresql-jdbc-${PV}.src.tar.gz"
LICENSE="BSD-2"
SLOT="0"
KEYWORDS="amd64 ppc64 x86"
# Common dependencies
# POM: pom.xml
# com.ongres.scram:client:2.1 -> !!!groupId-not-found!!!
# uk.org.webcompere:system-stubs-jupiter:1.2.0 -> !!!groupId-not-found!!!
CP_DEPEND="dev-java/scram:0"
# Compile dependencies
# POM: pom.xml
# test? junit:junit:4.13 -> >=dev-java/junit-4.13.2:4
# test? org.junit.jupiter:junit-jupiter-api:5.6.0 -> !!!groupId-not-found!!!
# test? org.junit.jupiter:junit-jupiter-engine:5.6.0 -> !!!groupId-not-found!!!
# test? org.junit.jupiter:junit-jupiter-params:5.6.0 -> !!!groupId-not-found!!!
# test? org.junit.vintage:junit-vintage-engine:5.6.0 -> !!!groupId-not-found!!!
# test? se.jiderhamn:classloader-leak-test-framework:1.1.1 -> !!!groupId-not-found!!!
DEPEND="
>=virtual/jdk-1.8:*
${CP_DEPEND}"
# test? (
# !!!groupId-not-found!!!
# )
# "
RDEPEND="
>=virtual/jre-1.8:*
${CP_DEPEND}"
S="${WORKDIR}/postgresql-${PV}-jdbc-src"
JAVA_SRC_DIR="src/main/java"
JAVA_RESOURCE_DIRS="src/main/resources"
# JAVA_TEST_GENTOO_CLASSPATH="junit-4,!!!groupId-not-found!!!,!!!groupId-not-found!!!,!!!groupId-not-found!!!,!!!groupId-not-found!!!,!!!groupId-not-found!!!"
# JAVA_TEST_SRC_DIR="src/test/java"
# JAVA_TEST_RESOURCE_DIRS="src/test/resources"

@ -9,7 +9,7 @@ DESCRIPTION="Allows Tomcat to use certain native resources for better performanc
HOMEPAGE="https://tomcat.apache.org/native-doc/"
SRC_URI="mirror://apache/tomcat/tomcat-connectors/native/${PV}/source/${P}-src.tar.gz"
KEYWORDS="~amd64 ~x86"
KEYWORDS="amd64 ~x86"
LICENSE="Apache-2.0"
SLOT="0"
IUSE="static-libs test"

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save