Package: pytsk
Version: 20171108-1
Severity: wishlist
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu bionic ubuntu-patch

Dear Hilko,

The latest version of pytsk has failed to build in Ubuntu, because the
changes to make pytsk statically link libtsk cause flags to be passed in a
way that's incompatible with -Wl,--as-needed, which is a default linker flag
in Ubuntu.

The attached debdiff updates your patch to setup.py so that dependent
libraries are listed last on the linker line, fixing the build failure in
Ubuntu.  Please consider applying it in Debian.

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slanga...@ubuntu.com                                     vor...@debian.org
diff -Nru 
pytsk-20171108/debian/patches/0001-Link-system-tsk-statically-talloc-dynamically-instea.patch
 
pytsk-20171108/debian/patches/0001-Link-system-tsk-statically-talloc-dynamically-instea.patch
--- 
pytsk-20171108/debian/patches/0001-Link-system-tsk-statically-talloc-dynamically-instea.patch
       2017-11-09 13:30:00.000000000 -0800
+++ 
pytsk-20171108/debian/patches/0001-Link-system-tsk-statically-talloc-dynamically-instea.patch
       2018-02-04 00:00:28.000000000 -0800
@@ -7,11 +7,11 @@
  setup.py | 44 ++++++++++++--------------------------------
  1 file changed, 12 insertions(+), 32 deletions(-)
 
-diff --git a/setup.py b/setup.py
-index b803021..e8db4c3 100755
---- a/setup.py
-+++ b/setup.py
-@@ -178,9 +178,9 @@ class BuildExtCommand(build_ext):
+Index: pytsk-20171108/setup.py
+===================================================================
+--- pytsk-20171108.orig/setup.py
++++ pytsk-20171108/setup.py
+@@ -178,9 +178,9 @@
    def run(self):
      compiler = new_compiler(compiler=self.compiler)
      # pylint: disable=attribute-defined-outside-init
@@ -23,7 +23,7 @@
  
      if not os.access("pytsk3.c", os.R_OK):
        # Generate the Python binding code (pytsk3.c).
-@@ -202,7 +202,7 @@ class BuildExtCommand(build_ext):
+@@ -202,7 +202,7 @@
  class SDistCommand(sdist):
    """Custom handler for generating source dist."""
    def run(self):
@@ -32,7 +32,7 @@
  
      # sleuthkit submodule is not there, probably because this has been
      # freshly checked out.
-@@ -280,32 +280,10 @@ class UpdateCommand(Command):
+@@ -280,32 +280,10 @@
      subprocess.check_call(["git", "apply", patch_file], cwd="sleuthkit")
  
    def run(self):
@@ -66,7 +66,7 @@
  
      # Generate the Python binding code (pytsk3.c).
      libtsk_header_files = [
-@@ -340,16 +318,18 @@ class ProjectBuilder(object):
+@@ -340,16 +318,19 @@
      # The args for the extension builder.
      self.extension_args = {
          "define_macros": [],
@@ -76,10 +76,11 @@
 -        "libraries": []}
 +        "libraries": [
 +          "talloc",
-+          # required by statically linked libtsk
-+          "afflib", "ewf", "stdc++", "z",
 +        ],
-+        "extra_link_args": ["-Wl,-Bstatic", "-ltsk", "-Wl,-Bdynamic"]}
++        "extra_link_args": [
++          "-Wl,-Bstatic", "-ltsk", "-Wl,-Bdynamic",
++          "-lafflib", "-lewf", "-lstdc++", "-lz",
++        ]}
  
      # The sources to build.
      self._source_files = [

Reply via email to