git: c00f409a8c23 - main - graphics/p5-Geo-LibProj-FFI: Add p5-Geo-LibProj-FFI 1.00

From: Po-Chuan Hsieh <sunpoet_at_FreeBSD.org>
Date: Tue, 28 Jan 2025 17:06:03 UTC
The branch main has been updated by sunpoet:

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

commit c00f409a8c23b60351ab7240caa46ad12bf0855b
Author:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
AuthorDate: 2025-01-28 17:02:40 +0000
Commit:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: 2025-01-28 17:02:40 +0000

    graphics/p5-Geo-LibProj-FFI: Add p5-Geo-LibProj-FFI 1.00
    
    Geo::LibProj::FFI is a foreign function interface to the PROJ coordinate
    transformation / projection library. Please see the PROJ library's C function
    reference for further documentation. You should be able to use those C functions
    as if they were Perl.
    
    Geo::LibProj::FFI offers a large portion of the most commonly used PROJ
    functions, but more could be added later. If you need a function that isn't yet
    available in this module, please open a GitHub issue with a description of your
    use case.
---
 graphics/Makefile                                  |  1 +
 graphics/p5-Geo-LibProj-FFI/Makefile               | 33 ++++++++++++++++
 graphics/p5-Geo-LibProj-FFI/distinfo               |  3 ++
 graphics/p5-Geo-LibProj-FFI/files/patch-Alien-proj | 46 ++++++++++++++++++++++
 graphics/p5-Geo-LibProj-FFI/pkg-descr              |  9 +++++
 graphics/p5-Geo-LibProj-FFI/pkg-plist              |  2 +
 6 files changed, 94 insertions(+)

diff --git a/graphics/Makefile b/graphics/Makefile
index 9129f166156f..75e2725c1ac3 100644
--- a/graphics/Makefile
+++ b/graphics/Makefile
@@ -714,6 +714,7 @@
     SUBDIR += p5-Geo-GDAL-FFI
     SUBDIR += p5-Geo-GML
     SUBDIR += p5-Geo-Gpx
+    SUBDIR += p5-Geo-LibProj-FFI
     SUBDIR += p5-Geometry-Primitive
     SUBDIR += p5-Gimp
     SUBDIR += p5-Google-Chart
diff --git a/graphics/p5-Geo-LibProj-FFI/Makefile b/graphics/p5-Geo-LibProj-FFI/Makefile
new file mode 100644
index 000000000000..a20a9988883c
--- /dev/null
+++ b/graphics/p5-Geo-LibProj-FFI/Makefile
@@ -0,0 +1,33 @@
+PORTNAME=	Geo-LibProj-FFI
+PORTVERSION=	1.00
+CATEGORIES=	graphics perl5
+MASTER_SITES=	CPAN
+PKGNAMEPREFIX=	p5-
+
+MAINTAINER=	sunpoet@FreeBSD.org
+COMMENT=	Foreign function interface to PROJ coordinate transformation software
+WWW=		https://metacpan.org/dist/Geo-LibProj-FFI
+
+LICENSE=	ART10 ART20 GPLv1+
+LICENSE_COMB=	dual
+LICENSE_FILE_ART20=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	${RUN_DEPENDS}
+LIB_DEPENDS=	libproj.so:graphics/proj
+RUN_DEPENDS=	p5-Convert-Binary-C>=0.04:converters/p5-Convert-Binary-C \
+		p5-Exporter-Easy>=0:devel/p5-Exporter-Easy \
+		p5-FFI-C>=0.08:devel/p5-FFI-C \
+		p5-FFI-Platypus>=1.50:devel/p5-FFI-Platypus
+TEST_DEPENDS=	p5-Test-Exception>=0:devel/p5-Test-Exception \
+		p5-Test-Warnings>=0.010:devel/p5-Test-Warnings
+
+USES=		perl5
+USE_PERL5=	configure
+
+NO_ARCH=	yes
+
+post-patch:
+	@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' ${WRKSRC}/lib/Geo/LibProj/FFI.pm
+	@${RM} ${WRKSRC}/t/00-version.t
+
+.include <bsd.port.mk>
diff --git a/graphics/p5-Geo-LibProj-FFI/distinfo b/graphics/p5-Geo-LibProj-FFI/distinfo
new file mode 100644
index 000000000000..7e2b55203a1a
--- /dev/null
+++ b/graphics/p5-Geo-LibProj-FFI/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1736671127
+SHA256 (Geo-LibProj-FFI-1.00.tar.gz) = 83c36bef2307ad641040ce5b3ab24649f8bb033b13c450eecbf5106b9b9f6994
+SIZE (Geo-LibProj-FFI-1.00.tar.gz) = 24370
diff --git a/graphics/p5-Geo-LibProj-FFI/files/patch-Alien-proj b/graphics/p5-Geo-LibProj-FFI/files/patch-Alien-proj
new file mode 100644
index 000000000000..67809b477288
--- /dev/null
+++ b/graphics/p5-Geo-LibProj-FFI/files/patch-Alien-proj
@@ -0,0 +1,46 @@
+--- lib/Geo/LibProj/FFI.pm.orig	2024-05-12 18:33:31 UTC
++++ lib/Geo/LibProj/FFI.pm
+@@ -5,7 +5,6 @@ package Geo::LibProj::FFI 1.00;
+ package Geo::LibProj::FFI 1.00;
+ 
+ 
+-use Alien::proj 1.07;
+ use FFI::Platypus 1.50;
+ use FFI::C 0.08;
+ use Convert::Binary::C 0.04;
+@@ -92,7 +91,7 @@ my $ffi = FFI::Platypus->new(
+ my $ffi = FFI::Platypus->new(
+ 	api => 2,
+ 	lang => 'C',
+-	lib => [Alien::proj->dynamic_libs],
++	lib => ['%%LOCALBASE%%/lib/libproj.so'], 
+ );
+ FFI::C->ffi($ffi);
+ 
+--- Makefile.PL.orig	2024-05-12 18:33:31 UTC
++++ Makefile.PL
+@@ -17,7 +17,6 @@ my %WriteMakefileArgs = (
+   "MIN_PERL_VERSION" => "5.014000",
+   "NAME" => "Geo::LibProj::FFI",
+   "PREREQ_PM" => {
+-    "Alien::proj" => "1.07",
+     "Convert::Binary::C" => "0.04",
+     "Exporter::Easy" => 0,
+     "FFI::C" => "0.08",
+--- t/00-report-prereqs.dd.orig	2024-05-12 18:33:31 UTC
++++ t/00-report-prereqs.dd
+@@ -13,7 +13,6 @@ do { my $x = {
+                     },
+        'runtime' => {
+                       'requires' => {
+-                                      'Alien::proj' => '1.07',
+                                       'Convert::Binary::C' => '0.04',
+                                       'Exporter::Easy' => '0',
+                                       'FFI::C' => '0.08',
+@@ -35,4 +34,4 @@ do { my $x = {
+                  }
+      };
+   $x;
+- }
+\ No newline at end of file
++ }
diff --git a/graphics/p5-Geo-LibProj-FFI/pkg-descr b/graphics/p5-Geo-LibProj-FFI/pkg-descr
new file mode 100644
index 000000000000..3b354c0c9e77
--- /dev/null
+++ b/graphics/p5-Geo-LibProj-FFI/pkg-descr
@@ -0,0 +1,9 @@
+Geo::LibProj::FFI is a foreign function interface to the PROJ coordinate
+transformation / projection library. Please see the PROJ library's C function
+reference for further documentation. You should be able to use those C functions
+as if they were Perl.
+
+Geo::LibProj::FFI offers a large portion of the most commonly used PROJ
+functions, but more could be added later. If you need a function that isn't yet
+available in this module, please open a GitHub issue with a description of your
+use case.
diff --git a/graphics/p5-Geo-LibProj-FFI/pkg-plist b/graphics/p5-Geo-LibProj-FFI/pkg-plist
new file mode 100644
index 000000000000..7356978060c6
--- /dev/null
+++ b/graphics/p5-Geo-LibProj-FFI/pkg-plist
@@ -0,0 +1,2 @@
+%%SITE_PERL%%/Geo/LibProj/FFI.pm
+%%PERL5_MAN3%%/Geo::LibProj::FFI.3.gz