You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

144 lines
3.2 KiB

# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
POSTGRES_COMPAT=( 9.6 {10..13} )
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-4.9.0:=
>=sci-libs/gdal-1.10.0:=
address-standardizer? ( dev-libs/libpcre )
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}-2.2.0-arflags.patch"
"${FILESDIR}/${PN}-3.0.3-avoid-calling-ar-directly.patch"
"${FILESDIR}/${PN}-3.0.3-detect-only-stdc.patch"
"${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
local AT_M4DIR="macros"
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_foreach 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
docinto html
postgres-multi_forbest dodoc doc/html/{postgis.html,style.css}
docinto html/images
postgres-multi_forbest dodoc doc/html/images/*
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"
}