git: 6324d2d4a8fe - main - Mk/Uses/postgis.mk: Add USES=postgis framework
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 17 Sep 2026 14:19:56 UTC
The branch main has been updated by lbartoletti:
URL: https://cgit.FreeBSD.org/ports/commit/?id=6324d2d4a8fe20ec1c76adcc5a3736e1e6926ef0
commit 6324d2d4a8fe20ec1c76adcc5a3736e1e6926ef0
Author: Loïc Bartoletti <lbartoletti@FreeBSD.org>
AuthorDate: 2026-09-10 03:20:37 +0000
Commit: Loïc Bartoletti <lbartoletti@FreeBSD.org>
CommitDate: 2026-09-17 14:14:48 +0000
Mk/Uses/postgis.mk: Add USES=postgis framework
PR: 213038
Tested by: Martin Birgmeier
Exp-run by: antoine
---
Mk/Uses/postgis.mk | 63 ++++++++++++++++++++++++++++++++++++++++++++++
Mk/bsd.default-versions.mk | 2 ++
2 files changed, 65 insertions(+)
diff --git a/Mk/Uses/postgis.mk b/Mk/Uses/postgis.mk
new file mode 100644
index 000000000000..41586152d862
--- /dev/null
+++ b/Mk/Uses/postgis.mk
@@ -0,0 +1,63 @@
+# Provide support for PostGIS
+#
+# Feature: postgis
+# Usage: USES= postgis[:version] pgsql
+#
+# version PostGIS version to depend on. Valid versions are 33, 34,
+# 35, 36 and 37. If omitted, POSTGIS_DEFAULT is used.
+#
+# WANT_POSTGIS may contain build and/or run to select the dependency type.
+# The default is run.
+#
+# postgis must appear before pgsql in USES so that the PostgreSQL version
+# constraint required by the selected PostGIS version is applied first.
+#
+# MAINTAINER: lbartoletti@FreeBSD.org
+
+.if !defined(_INCLUDE_USES_POSTGIS_MK)
+_INCLUDE_USES_POSTGIS_MK= yes
+
+_VALID_POSTGIS_VER= 33 34 35 36 37
+
+. if defined(_INCLUDE_USES_PGSQL_MK)
+BROKEN= USES=postgis must appear before USES=pgsql
+. endif
+
+. if empty(postgis_ARGS)
+POSTGIS_VER= ${POSTGIS_DEFAULT}
+. elif ${postgis_ARGS:[#]} != 1 || empty(_VALID_POSTGIS_VER:M${postgis_ARGS})
+IGNORE= Invalid PostGIS version ${postgis_ARGS}; valid versions are ${_VALID_POSTGIS_VER}
+. else
+POSTGIS_VER= ${postgis_ARGS}
+. endif
+
+. if empty(_VALID_POSTGIS_VER:M${POSTGIS_DEFAULT})
+IGNORE= Invalid POSTGIS default version ${POSTGIS_DEFAULT}; valid versions are ${_VALID_POSTGIS_VER}
+. endif
+
+_POSTGIS_PGSQL_RANGE_33= 14-17
+_POSTGIS_PGSQL_RANGE_34= 14-17
+_POSTGIS_PGSQL_RANGE_35= 14-18
+_POSTGIS_PGSQL_RANGE_36= 14-18
+_POSTGIS_PGSQL_RANGE_37= 14-19
+
+. if defined(pgsql_ARGS) && !empty(pgsql_ARGS)
+BROKEN= USES=postgis supplies the PostgreSQL version constraint; do not add arguments to USES=pgsql
+. else
+pgsql_ARGS= ${_POSTGIS_PGSQL_RANGE_${POSTGIS_VER}}
+. endif
+
+WANT_POSTGIS?= run
+_POSTGIS_DEP= ${LOCALBASE}/share/postgresql/extension/postgis.control:databases/postgis${POSTGIS_VER}
+
+. if ${WANT_POSTGIS:Mbuild}
+BUILD_DEPENDS+= ${_POSTGIS_DEP}
+. endif
+. if ${WANT_POSTGIS:Mrun}
+RUN_DEPENDS+= ${_POSTGIS_DEP}
+. endif
+. if empty(WANT_POSTGIS:Mbuild) && empty(WANT_POSTGIS:Mrun)
+BROKEN= Invalid WANT_POSTGIS value: ${WANT_POSTGIS}; valid values are build and run
+. endif
+
+.endif
diff --git a/Mk/bsd.default-versions.mk b/Mk/bsd.default-versions.mk
index 871b53173ac3..10f01dd4daad 100644
--- a/Mk/bsd.default-versions.mk
+++ b/Mk/bsd.default-versions.mk
@@ -144,6 +144,8 @@ PERL5_DEFAULT:= ${_PERL5_FROM_BIN:R}
PGSQL_DEFAULT?= 18
# Possible values: 8.2, 8.3, 8.4, 8.5, 8.6
PHP_DEFAULT?= 8.4
+# Possible values: 33, 34, 35, 36, 37
+POSTGIS_DEFAULT?= 36
# Possible values: rust, legacy
. if empty(ARCH:Naarch64:Namd64:Narmv7:Ni386:Npowerpc64:Npowerpc64le:Npowerpc:Nriscv64)
PYCRYPTOGRAPHY_DEFAULT?= rust