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