# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # shellcheck disable=SC2016 EAPI=8 RUST_REQ_USE="rustfmt" LLVM_COMPAT=( {15..19} ) POSTGRES_COMPAT=( {12..17} ) POSTGRES_USEDEP="server" EGIT_REPO_URI="https://gitlab.com/dalibo/${PN}.git" inherit cargo git-r3 llvm-r2 postgres DESCRIPTION="Anonymization & Data Masking for PostgreSQL" HOMEPAGE="https://gitlab.com/dalibo/postgresql_anonymizer" LICENSE="Apache-2.0 BSD ISC MIT POSTGRESQL Unicode-DFS-2016" SLOT="0" REQUIRED_USE="${POSTGRES_REQ_USE} ${LLVM_REQUIRED_USE}" RESTRICT="test" # installs extension outside of sandbox RDEPEND="${POSTGRES_DEP}" BDEPEND="dev-util/cargo-pgrx virtual/pkgconfig $(llvm_gen_dep 'llvm-core/clang:${LLVM_SLOT}')" DOCS=( {CHANGELOG,NEWS,README}.md ) QA_FLAGS_IGNORED="usr/lib.*/postgresql-.*/lib.*/anon.so" pkg_setup() { llvm-r2_pkg_setup postgres_pkg_setup rust_pkg_setup } src_unpack() { git-r3_src_unpack cargo_src_unpack } src_prepare() { default # fix warnings (https://github.com/pgcentralfoundation/pgrx/issues/1966) sed -i -e '/pg12/s|#||' \ -e '$a\\n[lints.rust]' \ -e '$aunexpected_cfgs = { level = "warn", check-cfg = ["cfg(pgrx_embed)"] }' \ Cargo.toml || die "sed failed" export PGRX_HOME="${WORKDIR}/${P}"/.pgrx cargo pgrx init --pg"${PG_SLOT}" "${PG_CONFIG}" || die "cargo pgrx failed" } src_compile() { emake extension PGVER=pg"${PG_SLOT}" } src_test() { emake test PGVER=pg"${PG_SLOT}" } src_install() { einstalldocs local PG_LIBDIR PG_SHAREDIR PG_LIBDIR="$($PG_CONFIG --libdir)" PG_SHAREDIR="$($PG_CONFIG --sharedir)" dodir "${PG_SHAREDIR}"/extension "${PG_LIBDIR}" emake install PGVER=pg"${PG_SLOT}" \ PG_SHAREDIR="${ED}/${PG_SHAREDIR}" \ TARGET_SHAREDIR="target/release/anon-pg${PG_SLOT}/${PG_SHAREDIR}" \ PG_LIBDIR="${ED}/${PG_LIBDIR}" \ TARGET_LIBDIR="target/release/anon-pg${PG_SLOT}/${PG_LIBDIR}" }