bump up pdftk to jdk 11 to build, pdftk is happy with this and it

reduces the number of ports using 1.8

while there, use newer bc/commons libraries, patching to avoid an
incompatible change in bc
This commit is contained in:
sthen
2025-07-31 15:35:46 +00:00
parent 9933387af6
commit c0161de6b5
3 changed files with 47 additions and 14 deletions
+8 -10
View File
@@ -1,11 +1,11 @@
COMMENT= pdf swiss army knife COMMENT= pdf swiss army knife
V= 3.3.3 V= 3.3.3
REVISION= 0 REVISION= 1
# https://www.bouncycastle.org/latest_releases.html # https://www.bouncycastle.org/download/bouncy-castle-java/
BC= 174 BC= 1.81
# https://commons.apache.org/proper/commons-lang/ # https://commons.apache.org/proper/commons-lang/
CL3= 3.13.0 CL3= 3.18.0
DISTNAME= pdftk-v$V DISTNAME= pdftk-v$V
PKGNAME= pdftk-$V PKGNAME= pdftk-$V
EXTRACT_ONLY= pdftk-v$V.tar.gz \ EXTRACT_ONLY= pdftk-v$V.tar.gz \
@@ -21,13 +21,13 @@ PERMIT_PACKAGE= Yes
HOMEPAGE= https://gitlab.com/pdftk-java/ HOMEPAGE= https://gitlab.com/pdftk-java/
SITES= https://gitlab.com/pdftk-java/pdftk/-/archive/v$V/ SITES= https://gitlab.com/pdftk-java/pdftk/-/archive/v$V/
SITES.bc= https://repo1.maven.org/maven2/org/bouncycastle/bcprov-jdk18on/${BC}/
DISTFILES.bc= bcprov-jdk18on-${BC}.jar
SITES.comm= ${SITE_APACHE:=commons/lang/binaries/} SITES.comm= ${SITE_APACHE:=commons/lang/binaries/}
DISTFILES.comm= commons-lang3-${CL3}-bin.tar.gz DISTFILES.comm= commons-lang3-${CL3}-bin.tar.gz
SITES.bc= https://www.bouncycastle.org/download/
DISTFILES.bc= bcprov-jdk18on-${BC}.jar
MODULES= java MODULES= java
MODJAVA_VER= 1.8+ MODJAVA_VER= 11+
MODJAVA_BUILD= ant MODJAVA_BUILD= ant
MODJAVA_BUILD_TARGET_NAME= jar MODJAVA_BUILD_TARGET_NAME= jar
@@ -42,11 +42,9 @@ do-install:
${INSTALL_DATA_DIR} ${PREFIX}/share/pdftk ${INSTALL_DATA_DIR} ${PREFIX}/share/pdftk
cd ${WRKSRC}; ${INSTALL_DATA} build/jar/pdftk.jar lib/bcprov.jar lib/commons-lang3.jar ${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 $(INSTALL_MAN) $(WRKDIST)/pdftk.1 $(PREFIX)/man/man1
$(SUBST_CMD) -m 755 -c $(FILESDIR)/pdftk $(PREFIX)/bin/pdftk $(SUBST_PROGRAM) $(FILESDIR)/pdftk $(PREFIX)/bin/pdftk
# tests require additional dependencies (at least: junit, system-rules, jacoco) # tests require additional dependencies (at least: junit, system-rules, jacoco)
NO_TEST= Yes NO_TEST= Yes
#do-test:
# cd ${WRKSRC} && ${MAKE_ENV} ${LOCALBASE}/bin/ant -lib /path/to/libs test-run
.include <bsd.port.mk> .include <bsd.port.mk>
+4 -4
View File
@@ -1,6 +1,6 @@
SHA256 (bcprov-jdk18on-174.jar) = Vu3hRy143Ee4oW/F6QwCue65cLVdi1uL/nYDEZB4Iek= SHA256 (bcprov-jdk18on-1.81.jar) = JJ85ZBKwwM5n8lyBl9p1eyQbi+PsQZk4bABwSiRXRZs=
SHA256 (commons-lang3-3.13.0-bin.tar.gz) = yDEbe1wqyfxuJe2DK55YnNLKLh7JcsHAgp2OohWBwWU= SHA256 (commons-lang3-3.18.0-bin.tar.gz) = rdX5zWVkN1FdGcivRgWDIvm7wzdZGoEQJ/cG34TuWxQ=
SHA256 (pdftk-v3.3.3.tar.gz) = nJR95UZYU546E245+cOOzhzyiT0UOrt/W/Oi4+AFsoY= SHA256 (pdftk-v3.3.3.tar.gz) = nJR95UZYU546E245+cOOzhzyiT0UOrt/W/Oi4+AFsoY=
SIZE (bcprov-jdk18on-174.jar) = 8353376 SIZE (bcprov-jdk18on-1.81.jar) = 8948201
SIZE (commons-lang3-3.13.0-bin.tar.gz) = 8700523 SIZE (commons-lang3-3.18.0-bin.tar.gz) = 10287654
SIZE (pdftk-v3.3.3.tar.gz) = 2380289 SIZE (pdftk-v3.3.3.tar.gz) = 2380289
@@ -0,0 +1,35 @@
https://gitlab.com/pdftk-java/pdftk/-/issues/155
patch borrowed from
https://github.com/LibrePDF/OpenPDF/commit/537b3141d4866932d1485b62af077e460aa9fd14
Index: java/com/gitlab/pdftk_java/com/lowagie/text/pdf/PdfPKCS7.java
--- java/com/gitlab/pdftk_java/com/lowagie/text/pdf/PdfPKCS7.java.orig
+++ java/com/gitlab/pdftk_java/com/lowagie/text/pdf/PdfPKCS7.java
@@ -225,7 +225,7 @@ public class PdfPKCS7 {
ASN1ObjectIdentifier objId = (ASN1ObjectIdentifier)signedData.getObjectAt(0);
if (!objId.getId().equals(ID_PKCS7_SIGNED_DATA))
throw new SecurityException("Not a valid PKCS#7 object - not signed data");
- ASN1Sequence content = (ASN1Sequence)((DERTaggedObject)signedData.getObjectAt(1)).getObject();
+ ASN1Sequence content = (ASN1Sequence)((DERTaggedObject)signedData.getObjectAt(1)).getBaseObject();
// the positions that we care are:
// 0 - version
// 1 - digestAlgorithms
@@ -258,7 +258,7 @@ public class PdfPKCS7 {
// the possible ID_PKCS7_DATA
ASN1Sequence rsaData = (ASN1Sequence)content.getObjectAt(2);
if (rsaData.size() > 1) {
- DEROctetString rsaDataContent = (DEROctetString)((DERTaggedObject)rsaData.getObjectAt(1)).getObject();
+ DEROctetString rsaDataContent = (DEROctetString)((DERTaggedObject)rsaData.getObjectAt(1)).getBaseObject();
RSAdata = rsaDataContent.getOctets();
}
@@ -294,7 +294,7 @@ public class PdfPKCS7 {
next = 3;
if (signerInfo.getObjectAt(next) instanceof ASN1TaggedObject) {
ASN1TaggedObject tagsig = (ASN1TaggedObject)signerInfo.getObjectAt(next);
- ASN1Sequence sseq = (ASN1Sequence)tagsig.getObject();
+ ASN1Sequence sseq = (ASN1Sequence)tagsig.getBaseObject();
ByteArrayOutputStream bOut = new ByteArrayOutputStream();
ASN1OutputStream dout = ASN1OutputStream.create(bOut);
try {