The current textproc/pdftk is an unholy mixture of C++ and Java which
relies on gcj (which is dead in current gcc).

"This is a port of pdftk into Java. The current goal is to make a
translation as faithful as it is reasonable, and to leave possible
improvements and refactoring for later. So far all code has been
manually translated and it passes the test suite of php-pdftk, but a lot
more testing is needed. Due to the differences between C++ and Java, it
is likely that a few bugs have sneaked in with respect to the original;
any help in catching them will be appreciated."

It seems to work well enough so far; port is a little messy as it
needs things pulling from a few sources, but straightforward enough.
Any comments? OK to switch across? After this, the only remaining
gcj-user is classpath.



Index: Makefile
===================================================================
RCS file: /cvs/ports/textproc/pdftk/Makefile,v
retrieving revision 1.16
diff -u -p -r1.16 Makefile
--- Makefile    27 Jul 2017 10:05:20 -0000      1.16
+++ Makefile    15 Nov 2018 23:22:21 -0000
@@ -1,11 +1,14 @@
 # $OpenBSD: Makefile,v 1.16 2017/07/27 10:05:20 sthen Exp $
 
+http://mirrors.ukfast.co.uk/sites/ftp.apache.org//commons/lang/binaries/commons-lang3-3.8.1-bin.tar.gz
+
 BROKEN-sparc64=        gcj blows during build
 COMMENT=       pdf swiss army knife
-VERSION=       2.02
-REVISION=      3
-DISTNAME=      pdftk-$(VERSION)
-EXTRACT_SUFX=  -src.zip
+GL_COMMIT=     61981721cab4dc6adfecaa4342479c6232cf59f3
+DISTNAME=      pdftk-3.0.1
+EXTRACT_ONLY=  pdftk-${GL_COMMIT}.tar.bz2 \
+               commons-lang3-3.8.1-bin.tar.gz
+
 CATEGORIES=    textproc
 
 MAINTAINER=    Christopher Zimmermann <chr...@openbsd.org>
@@ -13,55 +16,34 @@ MAINTAINER= Christopher Zimmermann <chri
 # GPLv2+ (main program), see ${WRKDIST}/license_gpl_pdftk/ for libraries
 PERMIT_PACKAGE_CDROM=  Yes
 
-WANTLIB += ${MODGCC4_GCJWANTLIB} c iconv m pthread z
-
-HOMEPAGE =     http://www.pdflabs.com/tools/pdftk-server/
+HOMEPAGE =     https://gitlab.com/pdftk-java/
 
-MASTER_SITES = http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/
+MASTER_SITES = https://gitlab.com/pdftk-java/pdftk/-/archive/${GL_COMMIT}/
+MASTER_SITES0 =        ${MASTER_SITE_APACHE:=commons/lang/binaries/}
+MASTER_SITES1 =        https://www.bouncycastle.org/download/
+WRKDIST =      ${WRKDIR}/pdftk-${GL_COMMIT}
+DISTFILES =    pdftk-${GL_COMMIT}.tar.bz2 \
+               commons-lang3-3.8.1-bin.tar.gz:0 \
+               bcprov-jdk15on-160.jar:1
+
+MODULES =      java
+MODJAVA_VER =  1.7+
+MODJAVA_BUILD =        ant
+
+RUN_DEPENDS += java/javaPathHelper
+
+post-extract:
+       mkdir ${WRKSRC}/lib
+       cp ${FULLDISTDIR}/bcprov-jdk15on-160.jar ${WRKSRC}/lib/bcprov.jar
+       cp ${WRKDIR}/commons-lang3-3.8.1/commons-lang3-3.8.1.jar 
${WRKSRC}/lib/commons-lang3.jar
 
-# one of the only remaining direct users of gcc4, because it requires
-# a C++ compiler that can talk to the gcj runtime, and pdftk itself is 
-# firmly tied to gcj.
-MODULES =      gcc4
-MODGCC4_ARCHS =        *
-MODGCC4_LANGS= java c++
-
-LIB_DEPENDS=   ${MODGCC4_GCJLIBDEP} \
-               converters/libiconv
-
-WRKDIST=       ${WRKDIR}/$(DISTNAME)-dist
-WRKSRC=                $(WRKDIST)/pdftk
-
-USE_GMAKE=     Yes
-MAKE_FILE=     Makefile.Base
-
-GCJ?=          gcj
-GCJH?=         gcjh
-GJAR?=         gjar
-
-CONFIG=                $(MACHINE_ARCH)-unknown-openbsd$(OSREV)
-GCJFLAGS?=     ${CXXFLAGS}
-CPPFLAGS+=     -fdollars-in-identifiers \
-               -DPATH_DELIM=0x2f \
-               -DASK_ABOUT_WARNINGS=false \
-               -DUNBLOCK_SIGNALS
-CXXFLAGS+=     -L$(LOCALBASE)/lib
-LDLIBS+=       -lgcj -liconv -lz -pthread
-
-MAKE_ENV+=     CXX="$(CXX)" \
-               GCJ="$(GCJ)" \
-               GCJH="$(GCJH)" \
-               GJAR="$(GJAR)" \
-               AR="$(AR)" \
-               RM=rm \
-               GCJFLAGS="$(GCJFLAGS)" \
-               CPPFLAGS="$(CPPFLAGS)" \
-               CXXFLAGS="$(CXXFLAGS)" \
-               ARFLAGS="${ARFLAGS} rs" \
-               LDLIBS="$(LDLIBS)"
+do-build:
+       cd ${WRKSRC}; ant jar
 
 do-install:
-       $(INSTALL_PROGRAM) $(WRKSRC)/pdftk $(PREFIX)/bin
+       ${INSTALL_DATA_DIR} ${PREFIX}/share/pdftk
+       cd ${WRKSRC}; ${INSTALL_DATA} build/jar/pdftk.jar lib/bcprov.jar 
lib/commons-lang3.jar ${PREFIX}/share/pdftk
        $(INSTALL_MAN) $(WRKDIST)/pdftk.1 $(PREFIX)/man/man1
+       $(SUBST_CMD) -m 755 -c $(FILESDIR)/pdftk $(PREFIX)/bin/pdftk
 
 .include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/textproc/pdftk/distinfo,v
retrieving revision 1.2
diff -u -p -r1.2 distinfo
--- distinfo    23 Oct 2013 08:25:56 -0000      1.2
+++ distinfo    15 Nov 2018 23:22:21 -0000
@@ -1,2 +1,6 @@
-SHA256 (pdftk-2.02-src.zip) = EY9qJf06yq+1iCTc5vl83AflYFDmZrkOTE70Juo3uME=
-SIZE (pdftk-2.02-src.zip) = 2239008
+SHA256 (bcprov-jdk15on-160.jar) = fxoOa62rOGZvhGepoO6WZWsvjshiOGftNPPNwXO37gc=
+SHA256 (commons-lang3-3.8.1-bin.tar.gz) = 
Vvq5L7PoqEOFysDVebuFqgvbnyb5dadKc9Y+3BIef/U=
+SHA256 (pdftk-61981721cab4dc6adfecaa4342479c6232cf59f3.tar.bz2) = 
59amP//HTnXPhVkxjpw2dlfDufWqQjwwIZtQnQAaUfI=
+SIZE (bcprov-jdk15on-160.jar) = 4189874
+SIZE (commons-lang3-3.8.1-bin.tar.gz) = 5445032
+SIZE (pdftk-61981721cab4dc6adfecaa4342479c6232cf59f3.tar.bz2) = 547066
Index: files/pdftk
===================================================================
RCS file: files/pdftk
diff -N files/pdftk
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ files/pdftk 15 Nov 2018 23:22:21 -0000
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec `javaPathHelper -c pdftk` -cp 
${TRUEPREFIX}/share/pdftk/pdftk.jar:${TRUEPREFIX}/share/pdftk/bcprov.jar:${TRUEPREFIX}/share/pdftk/commons-lang3.jar
 com.gitlab.pdftk_java.pdftk $*
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/textproc/pdftk/pkg/PLIST,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 PLIST
--- pkg/PLIST   20 May 2011 10:09:57 -0000      1.1.1.1
+++ pkg/PLIST   15 Nov 2018 23:22:21 -0000
@@ -1,3 +1,7 @@
 @comment $OpenBSD: PLIST,v 1.1.1.1 2011/05/20 10:09:57 sthen Exp $
-@bin bin/pdftk
+bin/pdftk
 @man man/man1/pdftk.1
+share/pdftk/
+share/pdftk/bcprov.jar
+share/pdftk/commons-lang3.jar
+share/pdftk/pdftk.jar

Reply via email to