Index: Makefile =================================================================== RCS file: /cvs/ports/sysutils/sleuthkit/Makefile,v diff -u -r1.35 Makefile --- Makefile 22 May 2026 08:28:37 -0000 1.35 +++ Makefile 8 Oct 2026 20:14:51 -0000 @@ -1,6 +1,8 @@ -COMMENT= forensic toolkit based on TCT +COMMENT = forensic toolkit based on TCT -DISTNAME= sleuthkit-4.15.0 +REVISION = 0 +VERSION = 4.15.0 +DISTNAME = sleuthkit-${VERSION} CATEGORIES= sysutils security @@ -16,7 +18,56 @@ WANTLIB += afflib aio_compat crypto curl expat nghttp2 nghttp3 WANTLIB += ngtcp2 ngtcp2_crypto_libressl readline ssl ewf vslvm +# Define the Maven Central master site shortcut +SITES.maven = https://repo1.maven.org/maven2/ +SITES.uco = ${SITES.maven} + +VIJODA = 2.13.1 +VIGUAVA = 33.4.0-jre +VIFAILACC = 1.0.2 +VICOMMLAN = 3.17.0 +VICOMMVAL = 1.9.0 +VIGSON = 2.12.1 +VIJUNIT = 4.13.2 +VIJDU = 4.12 +VIPGSQL = 42.7.5 +VIC3PO = 0.12.0 +VIMCJ = 0.4.0 +VISBS = 1.3 +VUGSON = 2.8.5 +VUJUNIT = 4.12 +VUHCC = 1.3 + + +# list taken from: bindings/java/ivy.xml +DISTFILES.maven = \ + {joda-time/joda-time/${VIJODA}/}joda-time-${VIJODA}.jar \ + {com/google/guava/guava/${VIGUAVA}/}guava-${VIGUAVA}.jar \ + {com/google/guava/failureaccess/${VIFAILACC}/}failureaccess-${VIFAILACC}.jar \ + {org/apache/commons/commons-lang3/${VICOMMLAN}/}commons-lang3-${VICOMMLAN}.jar \ + {commons-validator/commons-validator/${VICOMMVAL}/}commons-validator-${VICOMMVAL}.jar \ + {com/google/code/gson/gson/${VIGSON}/}gson-${VIGSON}.jar \ + {junit/junit/${VIJUNIT}/}junit-${VIJUNIT}.jar \ + {io/github/java-diff-utils/java-diff-utils/${VIJDU}/}java-diff-utils-${VIJDU}.jar \ + {org/postgresql/postgresql/${VIPGSQL}/}postgresql-${VIPGSQL}.jar \ + {com/mchange/c3p0/${VIC3PO}/}c3p0-${VIC3PO}.jar \ + {com/mchange/mchange-commons-java/${VIMCJ}/}mchange-commons-java-${VIMCJ}.jar \ + {com/zaxxer/SparseBitSet/${VISBS}/}SparseBitSet-${VISBS}.jar + +# list taken from: case-uco/java/ivy.xml and +# case-uco/java/nbproject/project.properties +DISTFILES.uco = \ + {com/google/code/gson/gson/${VUGSON}/}gson-${VUGSON}.jar \ + {junit/junit/${VUJUNIT}/}junit-${VUJUNIT}.jar \ + {org/hamcrest/hamcrest-core/${VUHCC}/}hamcrest-core-${VUHCC}.jar + + SITES = https://github.com/sleuthkit/sleuthkit/releases/download/${DISTNAME}/ +EXTRACT_ONLY = ${DISTNAME}.tar.gz + +MODULES += java +MODJAVA_VER = 17+ +# not using MODJAVA_BUILD=ant on purpose COMPILER = base-clang ports-gcc @@ -25,28 +76,62 @@ CONFIGURE_STYLE = autoreconf USE_GMAKE = Yes -LIB_DEPENDS = databases/sqlite3 \ +BUILD_DEPENDS += devel/apache-ant +LIB_DEPENDS = databases/sqlite3 \ devel/libbfio \ sysutils/afflib3 \ sysutils/libvhdi \ sysutils/libvmdk \ sysutils/libvslvm \ security/libewf -RUN_DEPENDS = converters/p5-DateManip +RUN_DEPENDS = converters/p5-DateManip \ + databases/sqlite-jdbc CONFIGURE_ARGS += --mandir='${PREFIX}/man' \ --enable-offline \ - --disable-java + --enable-java \ + PATH=${PORTPATH}:${JAVA_HOME}/bin \ + CFLAGS="${CFLAGS} -I${JAVA_HOME}/include/openbsd" \ + CPPFLAGS="${CPPFLAGS} -I${JAVA_HOME}/include/openbsd" \ + CXXFLAGS="${CXXFLAGS} -I${JAVA_HOME}/include/openbsd" + CONFIGURE_ENV = ac_cv_path_CPPUNIT_CONFIG=no \ ac_cv_header_postgresql_libpq_fe_h=no NO_TEST = Yes +SUBST_VARS += VERSION + +post-patch: + ${SUBST_CMD} ${WRKSRC}/bindings/java/Makefile.am \ + ${WRKSRC}/case-uco/java/Makefile.am pre-configure: @sed -i 's:%%PREFIX%%:${PREFIX}:' ${WRKSRC}/man/sorter.1 +pre-build: + mkdir -p ${WRKBUILD}/bindings/java/jni/.libs/ + ln -sf ${WRKBUILD}/bindings/java/jni/.libs/libtsk_jni.so.0.0 \ + ${WRKBUILD}/bindings/java/jni/.libs/libtsk_jni.so + mkdir -p ${WRKBUILD}/bindings/java/lib +.for jar in ${DISTFILES.maven} + cp ${DISTDIR}/${jar:C/\{.*\}//} ${WRKBUILD}/bindings/java/lib/ +.endfor + cp ${TRUEPREFIX}/share/java/classes/sqlite-jdbc.jar \ + ${WRKBUILD}/bindings/java/lib/ + + mkdir -p ${WRKBUILD}/case-uco/java/lib/ +.for jar in ${DISTFILES.uco} + cp ${DISTDIR}/${jar:C/\{.*\}//} ${WRKBUILD}/case-uco/java/lib/ +.endfor + + post-install: mv ${PREFIX}/bin/pstat ${PREFIX}/bin/pstat.sleuthkit + mv ${MODJAVA_SHARE_DIR}/classes/sleuthkit-${VERSION}.jar \ + ${MODJAVA_SHARE_DIR}/classes/sleuthkit.jar + mv ${MODJAVA_SHARE_DIR}/classes/sleuthkit-caseuco-${VERSION}.jar \ + ${MODJAVA_SHARE_DIR}/classes/sleuthkit-caseuco.jar + rm -rf ${PREFIX}/lib/libtsk_jni* .include Index: distinfo =================================================================== RCS file: /cvs/ports/sysutils/sleuthkit/distinfo,v diff -u -r1.17 distinfo --- distinfo 22 May 2026 08:28:37 -0000 1.17 +++ distinfo 8 Oct 2026 20:14:51 -0000 @@ -1,2 +1,32 @@ +SHA256 (SparseBitSet-1.3.jar) = 92uFrbDAByGuJnt8/eTaf3HTEhzCFgyfwAwMifjFPIo= +SHA256 (c3p0-0.12.0.jar) = TYWn1GQ6It9+niGhWeAi3kYlMHJ0Q+yD0ZAyHrMFhR0= +SHA256 (commons-lang3-3.17.0.jar) = bucx31yOWil2ocoCO2uzIOqNNTn75kyKHVy3ZRJ8M7Q= +SHA256 (commons-validator-1.9.0.jar) = w8FHSOLXjbWN+IgIdAcRvWQ7MsRf+nuKc58A+0Z819c= +SHA256 (failureaccess-1.0.2.jar) = io+Bz5s1nj9t+mkaHndphcBh7y8iPJssgHU+G0WOgGQ= +SHA256 (gson-2.12.1.jar) = 6+4T1ft0d81/HMAQ4MNW34yoBwlxUkjal/eeNcy0++w= +SHA256 (gson-2.8.5.jar) = IzoBSfw2XJ9u29aDz+JmsZvcdzvpjqva9rPJJLSOfYE= +SHA256 (guava-33.4.0-jre.jar) = uRjJin5E2+lOvZ/j5Azdqttak+anjrYAi0LfI3JB5Tg= +SHA256 (hamcrest-core-1.3.jar) = Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok= +SHA256 (java-diff-utils-4.12.jar) = mZCiA5d49rTMlHkBQcKGiGTqzuBiDGxFlFESGpAc1bU= +SHA256 (joda-time-2.13.1.jar) = qb5HtGOQ96bausx8BVtP62+48iJUd6cnCoIzspbiZnc= +SHA256 (junit-4.12.jar) = WXIfCAXiI9hLkGd4h9n/Vn3FNNfFAsqQPAwrF/BcEWo= +SHA256 (junit-4.13.2.jar) = jklbY0Rp1k+4rPo0laBly6zIoP/1XOHjEAe+TBbcV9M= +SHA256 (mchange-commons-java-0.4.0.jar) = /YjjhaON93ARd7B241BIqEHcXfERjGsthgu6CMQbwLY= +SHA256 (postgresql-42.7.5.jar) = aQILO9IJhFQ+gXOT8ubAGokO8uN6d90R1thQgYHQeas= SHA256 (sleuthkit-4.15.0.tar.gz) = OowefRipuB8+XoqngxOXSs6q/G4FHWNrySzXFoKG7Kk= +SIZE (SparseBitSet-1.3.jar) = 25843 +SIZE (c3p0-0.12.0.jar) = 399517 +SIZE (commons-lang3-3.17.0.jar) = 673587 +SIZE (commons-validator-1.9.0.jar) = 201424 +SIZE (failureaccess-1.0.2.jar) = 4740 +SIZE (gson-2.12.1.jar) = 285943 +SIZE (gson-2.8.5.jar) = 241622 +SIZE (guava-33.4.0-jre.jar) = 3080298 +SIZE (hamcrest-core-1.3.jar) = 45024 +SIZE (java-diff-utils-4.12.jar) = 72305 +SIZE (joda-time-2.13.1.jar) = 638947 +SIZE (junit-4.12.jar) = 314932 +SIZE (junit-4.13.2.jar) = 384581 +SIZE (mchange-commons-java-0.4.0.jar) = 642988 +SIZE (postgresql-42.7.5.jar) = 1087908 SIZE (sleuthkit-4.15.0.tar.gz) = 4951534 Index: patches/patch-bindings_java_Makefile_am =================================================================== RCS file: patches/patch-bindings_java_Makefile_am diff -N patches/patch-bindings_java_Makefile_am --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-bindings_java_Makefile_am 8 Oct 2026 20:14:51 -0000 @@ -0,0 +1,12 @@ +Index: bindings/java/Makefile.am +--- bindings/java/Makefile.am.orig ++++ bindings/java/Makefile.am +@@ -2,7 +2,7 @@ + SUBDIRS = jni + + tsk_jar = $(top_builddir)/bindings/java/dist/sleuthkit-$(PACKAGE_VERSION).jar +-jardir = $(prefix)/share/java ++jardir = ${MODJAVA_SHARE_DIR}classes + jar_DATA = $(tsk_jar) + + if OFFLINE Index: patches/patch-bindings_java_build-unix_xml =================================================================== RCS file: patches/patch-bindings_java_build-unix_xml diff -N patches/patch-bindings_java_build-unix_xml --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-bindings_java_build-unix_xml 8 Oct 2026 20:14:51 -0000 @@ -0,0 +1,36 @@ +Index: bindings/java/build-unix.xml +--- bindings/java/build-unix.xml.orig ++++ bindings/java/build-unix.xml +@@ -31,7 +31,7 @@ + + + +- ++ + + + +@@ -84,17 +84,17 @@ + + + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + +- ++ + + + Index: patches/patch-bindings_java_build_xml =================================================================== RCS file: patches/patch-bindings_java_build_xml diff -N patches/patch-bindings_java_build_xml --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-bindings_java_build_xml 8 Oct 2026 20:14:51 -0000 @@ -0,0 +1,42 @@ +Index: bindings/java/build.xml +--- bindings/java/build.xml.orig ++++ bindings/java/build.xml +@@ -14,7 +14,7 @@ + + + +- ++ + + + +@@ -46,23 +46,23 @@ + + + +- ++ + + +- ++ + + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + + Index: patches/patch-bindings_java_src_org_sleuthkit_datamodel_LibraryUtils_java =================================================================== RCS file: patches/patch-bindings_java_src_org_sleuthkit_datamodel_LibraryUtils_java diff -N patches/patch-bindings_java_src_org_sleuthkit_datamodel_LibraryUtils_java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-bindings_java_src_org_sleuthkit_datamodel_LibraryUtils_java 8 Oct 2026 20:14:51 -0000 @@ -0,0 +1,36 @@ +Index: bindings/java/src/org/sleuthkit/datamodel/LibraryUtils.java +--- bindings/java/src/org/sleuthkit/datamodel/LibraryUtils.java.orig ++++ bindings/java/src/org/sleuthkit/datamodel/LibraryUtils.java +@@ -94,11 +94,12 @@ public class LibraryUtils { + os = "win"; //NON-NLS + } else if (LibraryUtils.isMac()) { + os = "mac"; //NON-NLS +- } else if (LibraryUtils.isLinux()) { +- os = "linux"; //NON-NLS ++ } else if (LibraryUtils.isOpenbsd()) { ++ os = "openbsd"; //NON-NLS + } + // os.arch represents the architecture of the JVM, not the os + String arch = System.getProperty("os.arch"); ++ System.out.println("os/arch: " + os + "/" + arch); //NON-NLS + return arch.toLowerCase() + "/" + os.toLowerCase(); + } + +@@ -127,6 +128,17 @@ public class LibraryUtils { + */ + private static boolean isLinux() { + return System.getProperty("os.name").equals("Linux"); //NON-NLS ++ } ++ ++ /** ++ * Is the platform OpenBSD? ++ * ++ * @return ++ */ ++ private static boolean isOpenbsd() { ++ String osName = System.getProperty("os.name"); ++ System.out.println("Checking OS Name: " + osName); //NON-NLS ++ return System.getProperty("os.name").equals("OpenBSD"); //NON-NLS + } + + /** Index: patches/patch-case-uco_java_Makefile_am =================================================================== RCS file: patches/patch-case-uco_java_Makefile_am diff -N patches/patch-case-uco_java_Makefile_am --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-case-uco_java_Makefile_am 8 Oct 2026 20:14:51 -0000 @@ -0,0 +1,10 @@ +Index: case-uco/java/Makefile.am +--- case-uco/java/Makefile.am.orig ++++ case-uco/java/Makefile.am +@@ -1,5 +1,5 @@ + tsk_caseuco_jar = $(top_builddir)/case-uco/java/dist/sleuthkit-caseuco-$(PACKAGE_VERSION).jar +-jardir = $(prefix)/share/java ++jardir = ${MODJAVA_SHARE_DIR}classes + jar_DATA = $(tsk_caseuco_jar) + + if OFFLINE Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/sysutils/sleuthkit/pkg/PLIST,v diff -u -r1.12 PLIST --- pkg/PLIST 18 Feb 2026 21:26:40 -0000 1.12 +++ pkg/PLIST 8 Oct 2026 20:14:51 -0000 @@ -1,11 +1,8 @@ -@conflict ja-jvim-* @conflict freeze-* @bin bin/blkcalc @bin bin/blkcat @bin bin/blkls @bin bin/blkstat -@comment bin/disk_sreset -@comment bin/disk_stat @bin bin/fcat @bin bin/ffind @bin bin/fiwalk @@ -136,6 +133,8 @@ @man man/man1/tsk_loaddb.1 @man man/man1/tsk_recover.1 @man man/man1/usnjls.1 +share/java/classes/sleuthkit-caseuco.jar +share/java/classes/sleuthkit.jar share/tsk/ share/tsk/sorter/ share/tsk/sorter/default.sort