[Debian-med-packaging] [Pkg-d-devel] Libbiod and libundead packaged but sambamba does not build (Was: Next D project question: sambamba needs rdmd)

Andreas Tille tille at debian.org
Thu May 4 09:14:58 UTC 2017

Hi Matthias,

thanks a lot for your commitment to this package.  Its really
appreciated since I'd otherwise would be totally clueless.

On Sun, Apr 30, 2017 at 06:12:29PM +0200, Matthias Klumpp wrote:
> > I'll make a patch and see if that works okay.
> I now committed a couple of changes to the sambamba packaging repo,
> which will make the thing build - in theory.

Thanks again.

> To actually make the build process work, this patch needs to be
> applied to htslib:
>  https://github.com/UMCUGenetics/guix-additions/blob/master/htslib-add-cram_to_bam.patch

I commited this patch to htslib git and build locally (even if
distribution is set to experimental I did not uploaded yet).

> Then the build finishes

Hmmm, not at my side.  Despite I have changed

sambamba(master) $ git diff
diff --git a/debian/control b/debian/control
index 7058e73..0d7a65e 100644
--- a/debian/control
+++ b/debian/control
@@ -6,7 +6,7 @@ Uploaders: Andreas Tille <tille at debian.org>
 Build-Depends: debhelper (>= 10),
-               libhts-dev,
+               libhts-dev (>= 1.4-3),
                meson (>= 0.40),

when trying to build sambamba in pbuilder I get

Writing extended state information...
Get: 1 file:/var/cache/pbuilder/extra/release ./ libhts2 1.4-3 [294 kB]
Get: 2 file:/var/cache/pbuilder/extra/release ./ libhts-dev 1.4-3 [397 kB]

   debian/rules override_dh_auto_configure
make[1]: Entering directory '/build/sambamba-0.6.6'
mkdir build
(cd build && meson --prefix=/usr --buildtype=plain ..)
The Meson build system
Version: 0.40.0
Source dir: /build/sambamba-0.6.6
Build dir: /build/sambamba-0.6.6/build
Build type: native build
Project name: Sambamba
Native d compiler: ldc2 (llvm 1.1.1)
Appending DFLAGS from environment: '-O3 -g -release'
Appending LDFLAGS from environment: '-Wl,-z,relro'
Build machine cpu family: x86_64
Build machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (0.29)
Native dependency undead found: YES 1.0.6
Native dependency biod found: YES 0.1.0
Native dependency liblz4 found: YES 131

Meson encountered an error in file meson.build, line 80, column 0:
Could not generate cargs for htslib:

debian/rules:26: recipe for target 'override_dh_auto_configure' failed

Is there any chance that you did not commited the last state of your
meson file?

> and we get a binary, which doesn't launch:
> Fatal Error while loading '/usr/lib/x86_64-linux-gnu/libbiod.so.0':
>         The module 'undead.stream' is already defined in './sambamba'.
> This probably is an LDC bug, it looks like it doesn't like the undeaD
> static library being compiled into both the executable and shared lib.
> The issue could probably be worked around by making the undead library
> a shared library instead, that way, both BLOBs would be forced to use
> the same code copy.
> (in order to make undead a shared library, change the "shared_library"
> instruction in its meson.build file to just "library", and recompile
> BioD with the new package).

I can perfectly do so but in any case feel free to commit those helpful
changes to Git if you have done those changes locally anyway.
I'd happily try the latter once the first issue is settled.

Thanks a lot again for your very great help



More information about the Debian-med-packaging mailing list