[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Packaging Ray for Debian Med



Thanks Tim,

I merged your patch.

I will restructure my files according to the Debian git policy.
(I am reading it right now).

I added my SSH key so I will get access in less than 1 hour.


The Debian project is really organized, I like that a lot !

For ray debian/2.1.0-3, I will do these 4 things:

1. Add Tim Booth for the packaging copyright

2 Restore HAVE_LIBBZ2=y and HAVE_LIBZ=y somewhere

Otherwise, the code that uses libz and libbz2 are not compiled at all.
Is there a better place than the rules file ?
Maybe I can add a patch against the Makefile directly ?
What do you think ?

3. Split in 3 packages: ray (Ray + man), ray-doc (Documentation directories), ray-extra (scripts)

Ray really just needs mpi-default-bin and bz2 and z libraries for the runtime.
The provided scripts should go in ray-extra.

As I understand, I can put several packages in the control file,
and possibly tell in the rules file where each file should go.
Is that right ?

4. move man.1 in a patch in patches

Just to be pedantic to what is provided in the upstream tarball.



On 11/02/2012 11:31 AM, Tim Booth wrote:
Hi Sébastien,

Ok, you seem to have got a handle on Debian packaging without much of a
problem.  I've made some tweaks to the package (see the changelog in the
attached patch).

The main issue was that compilation failed on Ubuntu at the linking
stage:

---
tbooth@balisaur[ray_2.1.0]mpicxx -Wl,-Bsymbolic-functions -Wl,-z,relro  -lz -lbz2 code/TheRayGenomeAssembler.a RayPlatform/libRayPlatform.a -o Ray
code/TheRayGenomeAssembler.a(FastqGzLoader.o): In function `FastqGzLoader::open(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int)':
FastqGzLoader.cpp:(.text+0x39): undefined reference to `gzopen'
FastqGzLoader.cpp:(.text+0x6f): undefined reference to `gzgets'
FastqGzLoader.cpp:(.text+0x8d): undefined reference to `gzclose'
FastqGzLoader.cpp:(.text+0x9a): undefined reference to `gzopen'
code/TheRayGenomeAssembler.a(FastqGzLoader.o): In function `FastqGzLoader::load(int, ArrayOfReads*, MyAllocator*, int)':
FastqGzLoader.cpp:(.text+0x15e): undefined reference to `gzgets'
FastqGzLoader.cpp:(.text+0x1b4): undefined reference to `gzclose'
code/TheRayGenomeAssembler.a(BzReader.o): In function `BzReader::readLine(char*, int)':
BzReader.cpp:(.text+0x82a): undefined reference to `BZ2_bzRead'
BzReader.cpp:(.text+0x8f5): undefined reference to `BZ2_bzReadOpen'
BzReader.cpp:(.text+0x9fa): undefined reference to `BZ2_bzReadGetUnused'
BzReader.cpp:(.text+0xa27): undefined reference to `BZ2_bzReadClose'
collect2: ld returned 1 exit status
---

But this version works - ie. simply putting the $LD_FLAGS after the input files on line 189 of the Makefile:

tbooth@balisaur[ray_2.1.0]mpicxx -Wl,-Bsymbolic-functions -Wl,-z,relro code/TheRayGenomeAssembler.a RayPlatform/libRayPlatform.a -lz -lbz2 -o Ray

For now I added a patch (see debian/patches) but do you think you want
to make the change in the main source code or does that break something
else?

Cheers,

TIM

On Fri, 2012-11-02 at 03:55 +0000, Sébastien Boisvert wrote:
Hello Tim,

Thank you for your wise guidance regarding Debian package preparation.

I successfully created a Debian package for Ray 2.1.0.

You will find packages here in a git repository:

https://github.com/sebhtml/ray-debian-package

I installed my .deb with dpkg -i, tested it with some data,
checked what's in it with dpkg -L ray|less, and finally removed it
from my virtual machines (i386 and amd64).

I will add a sparc package tomorrow.

Can you review what I did ?

            Sébastien




--
Sent from my IBM Blue Gene/Q


Reply to: