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 19 Sep 2026 20:02:58 -0000 @@ -1,10 +1,12 @@ -COMMENT= forensic toolkit based on TCT +COMMENT = forensic toolkit based on TCT -DISTNAME= sleuthkit-4.15.0 +VERSION = 4.15.0 +DISTNAME = sleuthkit-${VERSION} CATEGORIES= sysutils security SHARED_LIBS += tsk 4.0 +SHARED_LIBS += tsk_jni 0.0 HOMEPAGE = https://www.sleuthkit.org/ MAINTAINER = Sebastian Reitenbach @@ -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 = 21 +# not using MODJAVA_BUILD=ant on purpose COMPILER = base-clang ports-gcc @@ -25,26 +76,51 @@ 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 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/sqlite-jdbc/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 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 19 Sep 2026 20:02:58 -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_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 19 Sep 2026 20:02:58 -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 19 Sep 2026 20:02:58 -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 19 Sep 2026 20:02:58 -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: pkg/DESCR =================================================================== RCS file: pkg/DESCR diff -N pkg/DESCR --- pkg/DESCR 18 Feb 2026 21:26:40 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,22 +0,0 @@ -The Sleuth Kit (previously known as TASK) is the only open -source forensic toolkit for a complete analysis of Microsoft -and UNIX file systems. -It enables investigators to identify and recover evidence from -images acquired during incident response or from live systems. - -Some of its features: - -* Analyzes images generated by the open source 'dd' utility, - found on all UNIX systems and available for Windows systems. -* Supports the NTFS, FAT, FFS, and EXT2FS file systems. Images - of a different endian ordering than the analysis system can - be used. -* The tools are organized in a layered approach, where the names - in each layer start with the same letter to help the user identify - the function of the tool. The layers include File System, File - Name (directory entries and NTFS index trees), Meta-Data (UNIX - inodes and NTFS MFT entries), and Content (blocks and clusters). -* Identifies deleted files by name and location. -* Identifies the status of content units (blocks and clusters) - and meta-data structures. -* Maps the relationship of objects across different layers. Index: pkg/PLIST =================================================================== RCS file: pkg/PLIST diff -N pkg/PLIST --- pkg/PLIST 18 Feb 2026 21:26:40 -0000 1.12 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,147 +0,0 @@ -@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 -@bin bin/fls -@bin bin/fsstat -@bin bin/hfind -@bin bin/icat -@bin bin/ifind -@bin bin/ils -@bin bin/img_cat -@bin bin/img_stat -@bin bin/istat -@bin bin/jcat -@bin bin/jls -@bin bin/jpeg_extract -bin/mactime -@bin bin/mmcat -@bin bin/mmls -@bin bin/mmstat -@bin bin/pstat.sleuthkit -@bin bin/sigfind -bin/sorter -@bin bin/srch_strings -@bin bin/tsk_comparedir -@bin bin/tsk_gettimes -@bin bin/tsk_imageinfo -@bin bin/tsk_loaddb -@bin bin/tsk_recover -@bin bin/usnjls -include/tsk/ -include/tsk/auto/ -include/tsk/auto/guid.h -include/tsk/auto/tsk_auto.h -include/tsk/auto/tsk_is_image_supported.h -include/tsk/base/ -include/tsk/base/tsk_base.h -include/tsk/base/tsk_os.h -include/tsk/fs/ -include/tsk/fs/apfs_compat.hpp -include/tsk/fs/apfs_fs.h -include/tsk/fs/apfs_fs.hpp -include/tsk/fs/decmpfs.h -include/tsk/fs/encryptionHelper.h -include/tsk/fs/tsk_apfs.h -include/tsk/fs/tsk_apfs.hpp -include/tsk/fs/tsk_exfatfs.h -include/tsk/fs/tsk_ext2fs.h -include/tsk/fs/tsk_fatfs.h -include/tsk/fs/tsk_fatxxfs.h -include/tsk/fs/tsk_ffs.h -include/tsk/fs/tsk_fs.h -include/tsk/fs/tsk_hfs.h -include/tsk/fs/tsk_iso9660.h -include/tsk/fs/tsk_logical_fs.h -include/tsk/fs/tsk_ntfs.h -include/tsk/fs/tsk_yaffs.h -include/tsk/hashdb/ -include/tsk/hashdb/tsk_hashdb.h -include/tsk/img/ -include/tsk/img/logical_img.h -include/tsk/img/pool.hpp -include/tsk/img/tsk_img.h -include/tsk/libtsk.h -include/tsk/pool/ -include/tsk/pool/apfs_pool_compat.hpp -include/tsk/pool/lvm_pool_compat.hpp -include/tsk/pool/pool_compat.hpp -include/tsk/pool/tsk_apfs.h -include/tsk/pool/tsk_apfs.hpp -include/tsk/pool/tsk_pool.h -include/tsk/pool/tsk_pool.hpp -include/tsk/tsk_incs.h -include/tsk/util/ -include/tsk/util/Bitlocker/ -include/tsk/util/Bitlocker/BitlockerParser.h -include/tsk/util/Bitlocker/BitlockerUtils.h -include/tsk/util/Bitlocker/DataTypes.h -include/tsk/util/Bitlocker/MetadataEntry.h -include/tsk/util/Bitlocker/MetadataUtils.h -include/tsk/util/Bitlocker/MetadataValue.h -include/tsk/util/Bitlocker/MetadataValueAesCcmEncryptedKey.h -include/tsk/util/Bitlocker/MetadataValueKey.h -include/tsk/util/Bitlocker/MetadataValueOffsetAndSize.h -include/tsk/util/Bitlocker/MetadataValueStretchKey.h -include/tsk/util/Bitlocker/MetadataValueUnicode.h -include/tsk/util/Bitlocker/MetadataValueVolumeMasterKey.h -include/tsk/util/crypto.hpp -include/tsk/util/detect_encryption.h -include/tsk/util/file_system_utils.h -include/tsk/util/lw_shared_ptr.hpp -include/tsk/util/span.hpp -include/tsk/vs/ -include/tsk/vs/tsk_bsd.h -include/tsk/vs/tsk_dos.h -include/tsk/vs/tsk_gpt.h -include/tsk/vs/tsk_mac.h -include/tsk/vs/tsk_sun.h -include/tsk/vs/tsk_vs.h -@static-lib lib/libtsk.a -lib/libtsk.la -@lib lib/libtsk.so.${LIBtsk_VERSION} -lib/pkgconfig/tsk.pc -@man man/man1/blkcalc.1 -@man man/man1/blkcat.1 -@man man/man1/blkls.1 -@man man/man1/blkstat.1 -@man man/man1/fcat.1 -@man man/man1/ffind.1 -@man man/man1/fls.1 -@man man/man1/fsstat.1 -@man man/man1/hfind.1 -@man man/man1/icat.1 -@man man/man1/ifind.1 -@man man/man1/ils.1 -@man man/man1/img_cat.1 -@man man/man1/img_stat.1 -@man man/man1/istat.1 -@man man/man1/jcat.1 -@man man/man1/jls.1 -@man man/man1/mactime.1 -@man man/man1/mmcat.1 -@man man/man1/mmls.1 -@man man/man1/mmstat.1 -@man man/man1/sigfind.1 -@man man/man1/sorter.1 -@man man/man1/tsk_comparedir.1 -@man man/man1/tsk_gettimes.1 -@man man/man1/tsk_loaddb.1 -@man man/man1/tsk_recover.1 -@man man/man1/usnjls.1 -share/tsk/ -share/tsk/sorter/ -share/tsk/sorter/default.sort -share/tsk/sorter/freebsd.sort -share/tsk/sorter/images.sort -share/tsk/sorter/linux.sort -share/tsk/sorter/openbsd.sort -share/tsk/sorter/solaris.sort -share/tsk/sorter/windows.sort