git: 979467e8efb2 - 2025Q4 - astro/gpscorrelate: update to v2.3

From: Matthias Andree <mandree_at_FreeBSD.org>
Date: Fri, 26 Dec 2025 16:59:37 UTC
The branch 2025Q4 has been updated by mandree:

URL: https://cgit.FreeBSD.org/ports/commit/?id=979467e8efb2f9dd4ae09906c54eb38874afd6f3

commit 979467e8efb2f9dd4ae09906c54eb38874afd6f3
Author:     Matthias Andree <mandree@FreeBSD.org>
AuthorDate: 2025-12-26 09:43:44 +0000
Commit:     Matthias Andree <mandree@FreeBSD.org>
CommitDate: 2025-12-26 12:21:48 +0000

    astro/gpscorrelate: update to v2.3
    
    gpscorrelate has a new maintainer, Dan Fandrich,
    and the former maintainer, Daniel Foote, recognizes the change.
    <https://github.com/freefoote/gpscorrelate?tab=readme-ov-file#status>
    
    Update the port to the new location,
    <https://dfandrich.github.io/gpscorrelate/>
    update to v2.3, switch to Github downloads, hook up self-test suite,
    make DOCS and (new) NLS options work right.
    
    Reported by:    Dan Fandrich
    see also: <https://github.com/dfandrich/gpscorrelate/issues/36>
    
    ChangeLog:      https://raw.githubusercontent.com/dfandrich/gpscorrelate/refs/tags/2.3/RELEASES
    (cherry picked from commit 9fb28eb395327d7e897028c1c9a31a1476071c78)
---
 astro/gpscorrelate/Makefile                 | 98 ++++++++++++++++++-----------
 astro/gpscorrelate/distinfo                 |  5 +-
 astro/gpscorrelate/files/patch-exif-gps.cpp | 95 ----------------------------
 astro/gpscorrelate/files/patch-unixtime.h   | 10 ---
 4 files changed, 64 insertions(+), 144 deletions(-)

diff --git a/astro/gpscorrelate/Makefile b/astro/gpscorrelate/Makefile
index 7c2940597df3..627b12751401 100644
--- a/astro/gpscorrelate/Makefile
+++ b/astro/gpscorrelate/Makefile
@@ -1,62 +1,86 @@
 PORTNAME=	gpscorrelate
-PORTVERSION=	1.6.1
-PORTREVISION=	12
+PORTVERSION=	2.3
 CATEGORIES=	astro geography
+MASTER_SITES=	https://github.com/dfandrich/gpscorrelate/releases/download/${PORTVERSION}/
 
 MAINTAINER=	mandree@FreeBSD.org
 COMMENT=	Correlate digital camera photos with GPS data in GPX format
-WWW=		http://freefoote.dview.net/linux_gpscorr.html
+WWW=		https://dfandrich.github.io/gpscorrelate/
 
 LICENSE=	GPLv2+
 LICENSE_FILE=	${WRKSRC}/COPYING
 
-LIB_DEPENDS=	libexiv2.so:graphics/exiv2 \
-		libgtkmm-2.4.so:x11-toolkits/gtkmm24
-LIB_DEPENDS+=	libatk-1.0.so:accessibility/at-spi2-core
-LIB_DEPENDS+=	libfontconfig.so:x11-fonts/fontconfig
-LIB_DEPENDS+=	libfreetype.so:print/freetype2
-LIB_DEPENDS+=	libharfbuzz.so:print/harfbuzz
+LIB_DEPENDS+=	libatk-1.0.so:accessibility/at-spi2-core \
+		libexiv2.so:graphics/exiv2 \
+		libharfbuzz.so:print/harfbuzz
 
-USES=		compiler:c++11-lang gettext-runtime gmake gnome pkgconfig
+USES=		desktop-file-utils gmake gnome pkgconfig tar:xz
 
-USE_GITHUB=	yes
-GH_ACCOUNT=	freefoote
+USE_GNOME=	cairo gdkpixbuf glib20 gtk30 libxml2 pango
 
-USE_GNOME=	cairo gdkpixbuf glib20 gtk20 libxml2 pango
+INSTALL_TARGET=	install-desktop-file
+TEST_TARGET=	check
 
-PLIST_FILES=	bin/gpscorrelate bin/gpscorrelate-gui \
-		share/man/man1/gpscorrelate.1.gz share/man/man1/gpscorrelate-gui.1.gz
-PORTDOCS=	*
+CFLAGS+=	-Wno-deprecated-declarations # GTK3 is noisy during build
 
-OPTIONS_DEFINE=	DOCS
+PLIST_FILES=	bin/gpscorrelate \
+		bin/gpscorrelate-gui \
+		share/applications/gpscorrelate.desktop \
+		share/icons/hicolor/scalable/apps/gpscorrelate-gui.svg
+
+OPTIONS_DEFINE=		DOCS NLS
+OPTIONS_DEFAULT=	DOCS NLS
+
+DOCS_BUILD_DEPENDS=	docbook-xsl>0:textproc/docbook-xsl \
+			xsltproc:textproc/libxslt
+DOCS_PLIST_FILES=	share/man/man1/gpscorrelate-gui.1.gz \
+			share/man/man1/gpscorrelate.1.gz
+DOCS_PORTDOCS=		*
+
+NLS_USES=		gettext
+NLS_CFLAGS=		-DENABLE_NLS
+NLS_LIBS=		-lintl
+NLS_PLIST_FILES=	share/locale/de/LC_MESSAGES/gpscorrelate.mo \
+			share/locale/fr/LC_MESSAGES/gpscorrelate.mo \
+			share/locale/ru/LC_MESSAGES/gpscorrelate.mo
 
 post-patch:
-	@${REINPLACE_CMD} -e \
-		's|^CFLAGS|#CFLAGS| ; \
-		 s|^override CFLAGS|override IFLAGS| ; \
-		 s|gtk+-2.0)|gtk+-2.0 exiv2)| ; \
-		 s|-I/usr/include/exiv2|| ; \
-		 s|-lexiv2|| ; \
-		 /^all:/s|gpscorrelate.1|| ; \
-		 s|g++ $$(OFLAGS)|$$(CXX) $$(OFLAGS)| ; \
-		 s|g++ $$(CFLAGS)|$$(CXX) $$(CXXFLAGS) $$(IFLAGS)| ; \
-		 s|gcc $$(CFLAGS)|$$(CC) $$(CFLAGS) $$(IFLAGS)|' \
-			${WRKSRC}/Makefile
-
-do-install:
-	${INSTALL_PROGRAM} ${WRKSRC}/gpscorrelate ${STAGEDIR}${PREFIX}/bin
-	${INSTALL_PROGRAM} ${WRKSRC}/gpscorrelate-gui ${STAGEDIR}${PREFIX}/bin
-	${INSTALL_MAN} ${FILESDIR}/gpscorrelate.1 \
+	${REINPLACE_CMD} -i.bak -e \
+		'/^CFLAGS /d; \
+		 /^CC /d; \
+		 /^CXX /d; \
+		 s|^LIBS *=|LIBS+=|; \
+		' \
+		${WRKSRC}/Makefile
+
+post-patch-DOCS-off:
+	${REINPLACE_CMD} -i.bak -e \
+		'/^TARGETS= /s|doc/gpscorrelate.*||; \
+		 s|xsltproc|:|; \
+		' \
+		${WRKSRC}/Makefile
+
+do-install-DOCS-on: do-install-DOCS-off
+	${INSTALL_MAN} ${WRKSRC}/doc/gpscorrelate.1 \
 		${STAGEDIR}${PREFIX}/share/man/man1
 	${LN} -sf gpscorrelate.1 \
 		${STAGEDIR}${PREFIX}/share/man/man1/gpscorrelate-gui.1
-
-do-install-DOCS-on:
-	@${MKDIR} ${STAGEDIR}${DOCSDIR}
+	${MKDIR} ${STAGEDIR}${DOCSDIR}
 	${INSTALL_DATA} ${WRKSRC}/README.md ${STAGEDIR}${DOCSDIR}
 	${INSTALL_DATA} ${WRKSRC}/RELEASES ${STAGEDIR}${DOCSDIR}
-	@${MKDIR} ${STAGEDIR}${DOCSDIR}/html
+	${MKDIR} ${STAGEDIR}${DOCSDIR}/html
 	${INSTALL_DATA} ${WRKSRC}/doc/*.html ${STAGEDIR}${DOCSDIR}/html
 	${INSTALL_DATA} ${WRKSRC}/doc/*.png ${STAGEDIR}${DOCSDIR}/html
 
+do-install-DOCS-off:
+	${INSTALL_PROGRAM} ${WRKSRC}/gpscorrelate ${STAGEDIR}${PREFIX}/bin
+	${INSTALL_PROGRAM} ${WRKSRC}/gpscorrelate-gui ${STAGEDIR}${PREFIX}/bin
+
+post-install-NLS-on:
+.for i in de fr ru
+	( cd ${WRKSRC} && ${GMAKE} build-po )
+	${MKDIR} ${STAGEDIR}${PREFIX}/share/locale/${i}/LC_MESSAGES/ \
+	&& ${INSTALL_DATA} ${WRKSRC}/po/${i}.gmo ${STAGEDIR}${PREFIX}/share/locale/${i}/LC_MESSAGES/gpscorrelate.mo
+.endfor
+
 .include <bsd.port.mk>
diff --git a/astro/gpscorrelate/distinfo b/astro/gpscorrelate/distinfo
index 2e50ebfa92b1..32a4604147e3 100644
--- a/astro/gpscorrelate/distinfo
+++ b/astro/gpscorrelate/distinfo
@@ -1,2 +1,3 @@
-SHA256 (freefoote-gpscorrelate-1.6.1_GH0.tar.gz) = a34f5f1ef5aefcd8046e4ef6915b9d90d171376e4894b5f17f66a9456956c810
-SIZE (freefoote-gpscorrelate-1.6.1_GH0.tar.gz) = 154511
+TIMESTAMP = 1766748514
+SHA256 (gpscorrelate-2.3.tar.xz) = 1f66383d5a660d5744c6e8d329124207620984091e4772cc5b34c799e618d3ba
+SIZE (gpscorrelate-2.3.tar.xz) = 370500
diff --git a/astro/gpscorrelate/files/patch-exif-gps.cpp b/astro/gpscorrelate/files/patch-exif-gps.cpp
deleted file mode 100644
index 445e3cd75606..000000000000
--- a/astro/gpscorrelate/files/patch-exif-gps.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
---- exif-gps.cpp.orig	2012-08-14 10:11:01 UTC
-+++ exif-gps.cpp
-@@ -40,10 +40,8 @@
- #include <sys/stat.h>
- #include <unistd.h>
- 
-+#include <exiv2/exiv2.hpp>
- 
--#include "exiv2/image.hpp"
--#include "exiv2/exif.hpp"
--
- #include "gpsstructure.h"
- #include "exif-gps.h"
- 
-@@ -87,7 +85,7 @@ char* ReadExifDate(char* File, int* IncludesGPS)
- {
- 	// Open and read the file.
- 	Exiv2::ExifData ExifRead;
--	Exiv2::Image::AutoPtr Image;
-+	Exiv2::Image::UniquePtr Image;
- 
- 	try {
- 		Image = Exiv2::ImageFactory::open(File);
-@@ -150,7 +148,7 @@ char* ReadExifData(char* File, double* Lat, double* Lo
- 	// for display purposes. For the GUI version.
- 	// Open and read the file.
- 	Exiv2::ExifData ExifRead;
--	Exiv2::Image::AutoPtr Image;
-+	Exiv2::Image::UniquePtr Image;
- 
- 	try {
- 		Image = Exiv2::ImageFactory::open(File);
-@@ -268,7 +266,7 @@ char* ReadExifData(char* File, double* Lat, double* Lo
- 
- 		// Is the altitude below sea level? If so, negate the value.
- 		GPSData = ExifRead["Exif.GPSInfo.GPSAltitudeRef"];
--		if (GPSData.count() >= 1 && GPSData.toLong() == 1)
-+		if (GPSData.count() >= 1 && GPSData.toInt64() == 1)
- 		{
- 			// Negate the elevation.
- 			*Elev = -*Elev;
-@@ -289,7 +287,7 @@ char* ReadGPSTimestamp(char* File, char* DateStamp, ch
- 	// for display purposes. For the GUI version.
- 	// Open and read the file.
- 	Exiv2::ExifData ExifRead;
--	Exiv2::Image::AutoPtr Image;
-+	Exiv2::Image::UniquePtr Image;
- 
- 	try {
- 		Image = Exiv2::ImageFactory::open(File);
-@@ -445,7 +443,7 @@ int WriteGPSData(char* File, struct GPSPoint* Point, c
- 	struct utimbuf utb;
- 	if (NoChangeMtime)
- 		stat(File, &statbuf);
--	Exiv2::Image::AutoPtr Image;
-+	Exiv2::Image::UniquePtr Image;
- 
- 	try {
- 		Image = Exiv2::ImageFactory::open(File);
-@@ -473,7 +471,7 @@ int WriteGPSData(char* File, struct GPSPoint* Point, c
- 	// Do all the easy constant ones first.
- 	// GPSVersionID tag: standard says is should be four bytes: 02 00 00 00
- 	//  (and, must be present).
--	Exiv2::Value::AutoPtr Value = Exiv2::Value::create(Exiv2::unsignedByte);
-+	Exiv2::Value::UniquePtr Value = Exiv2::Value::create(Exiv2::unsignedByte);
- 	Value->read("2 0 0 0");
- 	ExifToWrite.add(Exiv2::ExifKey("Exif.GPSInfo.GPSVersionID"), Value.get());
- 	// Datum: the datum of the measured data. If not given, we insert WGS-84.
-@@ -660,7 +658,7 @@ int WriteFixedDatestamp(char* File, time_t Time)
- 	struct utimbuf utb;
- 	stat(File, &statbuf);
- 
--	Exiv2::Image::AutoPtr Image;
-+	Exiv2::Image::UniquePtr Image;
- 
- 	try {
- 		Image = Exiv2::ImageFactory::open(File);
-@@ -699,7 +697,7 @@ int WriteFixedDatestamp(char* File, time_t Time)
- 
- 	char ScratchBuf[100];
- 
--	Exiv2::Value::AutoPtr Value;
-+	Exiv2::Value::UniquePtr Value;
- 	Value = Exiv2::Value::create(Exiv2::signedRational);
- 	snprintf(ScratchBuf, 100, "%d/1 %d/1 %d/1",
- 			TimeStamp.tm_year + 1900,
-@@ -737,7 +735,7 @@ int RemoveGPSExif(char* File, int NoChangeMtime)
- 		stat(File, &statbuf);
- 
- 	// Open the file and start reading.
--	Exiv2::Image::AutoPtr Image;
-+	Exiv2::Image::UniquePtr Image;
- 	
- 	try {
- 		Image = Exiv2::ImageFactory::open(File);
diff --git a/astro/gpscorrelate/files/patch-unixtime.h b/astro/gpscorrelate/files/patch-unixtime.h
deleted file mode 100644
index 17ca1d68d1ef..000000000000
--- a/astro/gpscorrelate/files/patch-unixtime.h
+++ /dev/null
@@ -1,10 +0,0 @@
---- unixtime.h.orig	2012-08-14 10:11:01 UTC
-+++ unixtime.h
-@@ -27,6 +27,7 @@
- 
- #define EXIF_DATE_FORMAT "%d:%d:%d %d:%d:%d"
- #define GPX_DATE_FORMAT "%d-%d-%dT%d:%d:%dZ"
-+#include <sys/types.h>
- 
- time_t ConvertToUnixTime(char* StringTime, char* Format,
- 		int TZOffsetHours, int TZOffsetMinutes);