commit:     cec1876c7d43596990f022e9862040fce1edcf39
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Dec  3 02:42:34 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Dec  3 02:44:25 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cec1876c

dev-db/postgis: don't call eautoheader

Upstream commit their own edits to postgres_config.h(.in) *after* vanilla
autoheader has run which means that running it ourselves clobbers those
changes. Stop doing that.

This would lead to a mismatched version being reported at least at runtime.

Thanks to Timo Gurr for the debugging and help reproducing it.

Closes: https://bugs.gentoo.org/912275
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-db/postgis/postgis-3.5.0-r1.ebuild | 137 +++++++++++++++++++++++++++++++++
 1 file changed, 137 insertions(+)

diff --git a/dev-db/postgis/postgis-3.5.0-r1.ebuild 
b/dev-db/postgis/postgis-3.5.0-r1.ebuild
new file mode 100644
index 000000000000..384e437c41b1
--- /dev/null
+++ b/dev-db/postgis/postgis-3.5.0-r1.ebuild
@@ -0,0 +1,137 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+POSTGRES_COMPAT=( {12..17} )
+POSTGRES_USEDEP="server"
+inherit autotools postgres-multi toolchain-funcs
+
+MY_P="${PN}-$(ver_rs 3 '')"
+
+if [[ ${PV} = *9999* ]] ; then
+       inherit git-r3
+       EGIT_REPO_URI="https://git.osgeo.org/gitea/postgis/postgis.git";
+else
+       PGIS="$(ver_cut 1-2)"
+       SRC_URI="https://download.osgeo.org/postgis/source/${MY_P}.tar.gz";
+       KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+fi
+
+DESCRIPTION="Geographic Objects for PostgreSQL"
+HOMEPAGE="https://postgis.net";
+
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="address-standardizer doc gtk static-libs topology"
+
+REQUIRED_USE="${POSTGRES_REQ_USE}"
+
+# Needs a running psql instance, doesn't work out of the box
+RESTRICT="test"
+
+RDEPEND="${POSTGRES_DEP}
+       dev-libs/json-c:=
+       dev-libs/libxml2:2
+       dev-libs/protobuf-c:=
+       >=sci-libs/geos-3.9.0
+       >=sci-libs/proj-6.1.0:=
+       >=sci-libs/gdal-1.10.0:=
+       address-standardizer? ( dev-libs/libpcre2 )
+       gtk? ( x11-libs/gtk+:2 )
+"
+DEPEND="${RDEPEND}
+       virtual/pkgconfig
+       doc? (
+               app-text/docbook-xsl-stylesheets
+               app-text/docbook-xml-dtd:4.5
+               dev-libs/libxslt
+               virtual/imagemagick-tools[png]
+       )
+"
+
+PATCHES=(
+       "${FILESDIR}/${PN}-3.0.3-try-other-cpp-names.patch"
+)
+
+src_prepare() {
+       default
+
+       if [[ ${PV} = *9999* ]] ; then
+               source "${S}"/Version.config
+               PGIS="${POSTGIS_MAJOR_VERSION}.${POSTGIS_MINOR_VERSION}"
+       fi
+
+       # These modules are built using the same *FLAGS that were used to build
+       # dev-db/postgresql. The right thing to do is to ignore the current
+       # *FLAGS settings.
+       QA_FLAGS_IGNORED="usr/lib(64)?/(rt)?postgis-${PGIS}\.so"
+
+       # bug #775968
+       touch build-aux/ar-lib || die
+
+       # eautoheader MUST be disabled as upstream manually modify its output
+       # rather than using it directly. The version at runtime at least is
+       # broken otherwise. See bug #912275.
+       AT_M4DIR="macros" AT_NOEAUTOHEADER="yes" eautoreconf
+
+       postgres-multi_src_prepare
+}
+
+src_configure() {
+       export CPP=$(tc-getCPP)
+
+       local myeconfargs=(
+               $(use_with address-standardizer)
+               $(use_with gtk gui)
+               $(use_with topology)
+       )
+       postgres-multi_foreach econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+       postgres-multi_foreach emake
+       postgres-multi_foreach emake -C topology
+
+       if use doc ; then
+               postgres-multi_foreach emake comments
+               postgres-multi_forbest emake cheatsheets
+               postgres-multi_forbest emake -C doc html
+       fi
+}
+
+src_install() {
+       postgres-multi_foreach emake DESTDIR="${D}" install
+       postgres-multi_foreach emake -C topology DESTDIR="${D}" install
+       postgres-multi_forbest dobin ./utils/postgis_restore.pl
+
+       dodoc CREDITS TODO loader/README.* doc/*txt
+
+       docinto topology
+       dodoc topology/{TODO,README}
+
+       if use doc ; then
+               postgres-multi_foreach emake DESTDIR="${D}" comments-install
+               postgres-multi_forbest emake DESTDIR="${D}" -C doc 
cheatsheet-install html-install html-assets-install
+       fi
+
+       use static-libs || find "${ED}" -name '*.a' -delete
+}
+
+pkg_postinst() {
+       ebegin "Refreshing PostgreSQL symlinks"
+       postgresql-config update
+       eend $?
+
+       local base_uri="https://postgis.net/docs/manual-";
+       if [[ ${PV} = *9999* ]] ; then
+               base_uri+="dev"
+       else
+               base_uri+="${PGIS}"
+       fi
+
+       elog "To finish installing PostGIS, follow the directions detailed at:"
+       elog "${base_uri}/postgis_installation.html#create_new_db_extensions"
+}

Reply via email to