On 2026/02/11 20:20, Sebastian Reitenbach wrote:
> Hi,
> 
> this updates py-tsk to latest, and while there take MAINTAINER.
> Tidy Makefile a bit, and instead of patching setup.py and pre-configure dance,
> add sleuthkit:path to BUILD_DEPS ...
> 
> with tests downloaded from git repo, they all pass.
> 
> comments, etc. or even OK welcome.
> 
> cheers,
> Sebastian

If you build the old version, you'll see that with those patches it
didn't build the bundled version of sleuthkit.
it does build the bundled copy.

With your change, it installs sleuthkit as a library dependency,
then extracts/patches sleuthkit in WRKDIR and symlinks it into
WRKSRC/sleuthkit/sleuthkit-$VERSION, then totally ignores that copy
and the library dependency and goes on to build the bundled version.
This is not optimal.

Diff below is a cleaner way to build with the bundled lib (at least
it doesn't pretend that it's using the ports one) also fixes running
tests the normal ports way (the comment was wrong, test_data is
there, but it misses some *.py files).

I think it might be better to bring back the patch and fix things so
that it builds against ports sleuthkit rather than the bundled one,
but I didn't see how to do that.

Index: Makefile
===================================================================
RCS file: /cvs/ports/sysutils/py-tsk/Makefile,v
diff -u -p -r1.24 Makefile
--- Makefile    8 Feb 2026 12:22:41 -0000       1.24
+++ Makefile    11 Feb 2026 20:24:25 -0000
@@ -1,39 +1,38 @@
 COMMENT =      Python bindings for The Sleuth Kit (libtsk)
 
-MODPY_DISTV =  20200117
+MODPY_DISTV =  20250801
 DISTNAME =     pytsk3-${MODPY_DISTV}
 PKGNAME =      py-tsk-${MODPY_DISTV}
-REVISION =     11
+
+# download a copy from github archive as well, to fill in the incomplete
+# tests dir from the pypi sdist (this is simpler than fetching the whole
+# port from github as it needs a submodule + autoconf scripts generating)
+DIST_TUPLE =   github py4n6 pytsk ${MODPY_DISTV} .
 
 CATEGORIES =   sysutils
 
 HOMEPAGE =     https://github.com/py4n6/pytsk/
+MAINTAINER =   Sebastian Reitenbach <[email protected]>
 
 # Apache v2
 PERMIT_PACKAGE =       Yes
 
-MODULES =              lang/python
-# so that we get gawk poisoning in the sleuthkit part
-MODULES +=             gnu
-
-MODPY_PI =             Yes
-MODPY_PYBUILD =                setuptools
-
-WANTLIB += talloc tsk ${MODPY_WANTLIB}
+WANTLIB += ${COMPILER_LIBCXX} m
 
 # C++11
-COMPILER=      base-clang ports-gcc
+COMPILER =     base-clang ports-gcc
+
+MODULES =      lang/python
+MODPY_PYBUILD =        setuptools
+MODPY_PI =     Yes
 
-pre-configure:
-               ${SUBST_DATA} ${WRKSRC}/setup.py ${WRKSRC}/setup.py.new
-               mv ${WRKSRC}/setup.py.new ${WRKSRC}/setup.py
+# so that we get gawk poisoning in the sleuthkit part
+MODULES +=     gnu
 
-LIB_DEPENDS =  sysutils/sleuthkit \
-               devel/libtalloc
-TEST_DEPENDS = sysutils/py-tsk=${MODPY_DISTV}
+post-extract:
+       mv ${WRKDIR}/pytsk-${MODPY_DISTV}/tests/* ${WRKSRC}/tests/
 
-# it needs test_data/* in the Github repository
 do-test:
-       cd ${WRKSRC} && ${MODPY_BIN} run_tests.py
+       cd ${WRKSRC} && ${SETENV} ${TEST_ENV} ${MODPY_BIN} run_tests.py
 
 .include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/sysutils/py-tsk/distinfo,v
diff -u -p -r1.7 distinfo
--- distinfo    17 Mar 2020 20:42:46 -0000      1.7
+++ distinfo    11 Feb 2026 20:24:25 -0000
@@ -1,2 +1,4 @@
-SHA256 (pytsk3-20200117.tar.gz) = VhdxZKNY6YuqJYKWqi6aUJME3I2rBTq6w0dDWgl42WI=
-SIZE (pytsk3-20200117.tar.gz) = 3060827
+SHA256 (py4n6-pytsk-20250801.tar.gz) = 
EnI+QkAoSxOpChb1EXgxmynM+Gp1NTstKfXjmKsuT9o=
+SHA256 (pytsk3-20250801.tar.gz) = asypmY1GEMRv231jeULcNU3KWLIn2M7jZi7Jm0qKor0=
+SIZE (py4n6-pytsk-20250801.tar.gz) = 100734
+SIZE (pytsk3-20250801.tar.gz) = 3327891
Index: patches/patch-setup_py
===================================================================
RCS file: patches/patch-setup_py
diff -N patches/patch-setup_py
--- patches/patch-setup_py      11 Mar 2022 19:57:54 -0000      1.3
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,39 +0,0 @@
-Index: setup.py
---- setup.py.orig
-+++ setup.py
-@@ -180,7 +180,7 @@ class BuildExtCommand(build_ext):
-     # pylint: disable=attribute-defined-outside-init
-     self.define = self.configure_source_tree(compiler)
- 
--    libtsk_path = os.path.join("sleuthkit", "tsk")
-+    libtsk_path = os.path.join("${LOCALBASE}", "include", "tsk")
- 
-     if not os.access("pytsk3.c", os.R_OK):
-       # Generate the Python binding code (pytsk3.c).
-@@ -390,7 +390,7 @@ class ProjectBuilder(object):
-     self._argv = argv
- 
-     # The path to the sleuthkit/tsk directory.
--    self._libtsk_path = os.path.join("sleuthkit", "tsk")
-+    self._libtsk_path = os.path.join("${LOCALBASE}", "include", "tsk")
- 
-     # Paths under the sleuthkit/tsk directory which contain files we need
-     # to compile.
-@@ -400,13 +400,13 @@ class ProjectBuilder(object):
-     # The args for the extension builder.
-     self.extension_args = {
-         "define_macros": [],
--        "include_dirs": ["talloc", self._libtsk_path, "sleuthkit", "."],
--        "library_dirs": [],
--        "libraries": []}
-+        "include_dirs": [".", os.path.join("${LOCALBASE}", "include")],
-+        "library_dirs": [os.path.join("${LOCALBASE}","lib")],
-+        "libraries": ["tsk", "talloc"]}
- 
-     # The sources to build.
-     self._source_files = [
--        "class.c", "error.c", "tsk3.c", "pytsk3.c", "talloc/talloc.c"]
-+        "class.c", "error.c", "tsk3.c", "pytsk3.c"]
- 
-     # Path to the top of the unpacked sleuthkit sources.
-     self._sleuthkit_path = "sleuthkit"
Index: pkg/DESCR
===================================================================
RCS file: /cvs/ports/sysutils/py-tsk/pkg/DESCR,v
diff -u -p -r1.1.1.1 DESCR
--- pkg/DESCR   22 Jan 2017 08:18:04 -0000      1.1.1.1
+++ pkg/DESCR   11 Feb 2026 20:24:25 -0000
@@ -1 +1 @@
- Python bindings for The Sleuth Kit (libtsk).
+Python bindings for The Sleuth Kit (libtsk).
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/sysutils/py-tsk/pkg/PLIST,v
diff -u -p -r1.7 PLIST
--- pkg/PLIST   29 Apr 2025 10:40:03 -0000      1.7
+++ pkg/PLIST   11 Feb 2026 20:24:25 -0000
@@ -3,7 +3,5 @@ lib/python${MODPY_VERSION}/site-packages
 
lib/python${MODPY_VERSION}/site-packages/pytsk3-${MODPY_DISTV}.dist-info/METADATA
 lib/python${MODPY_VERSION}/site-packages/pytsk3-${MODPY_DISTV}.dist-info/RECORD
 lib/python${MODPY_VERSION}/site-packages/pytsk3-${MODPY_DISTV}.dist-info/WHEEL
-lib/python${MODPY_VERSION}/site-packages/pytsk3-${MODPY_DISTV}.dist-info/licenses/
-lib/python${MODPY_VERSION}/site-packages/pytsk3-${MODPY_DISTV}.dist-info/licenses/LICENSE
 
lib/python${MODPY_VERSION}/site-packages/pytsk3-${MODPY_DISTV}.dist-info/top_level.txt
 @so lib/python${MODPY_VERSION}/site-packages/pytsk3.${MODPY_PYC_MAGIC_TAG}so

Reply via email to