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

Re: Package available (was Re: Micro Manager)



Mathieu Malaterre <mathieu.malaterre@gmail.com> wrote:
> 
> Hi Mark,
>
> On Thu, Nov 3, 2011 at 5:14 PM, Mark Longair
> <mark-debianlists@longair.net> wrote:
> [...]
[..]
>>  * The Fiji source tree contains a number of binary jar files
>>   without corresponding source.  The bio-formats submodule is
>>   particularly concerning, since it's an important library in
>>   general for biological image processing, and the source tree
>>   currently bundles 24 jar files which should be external
>>   dependencies.
>
> Tell me about it ;) see:
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=641448
>
> Any help is welcome :)
[..]

Hi Mathieu,

I did some work on bio-formats packaging at a Fiji hackathon at
the end of last year, and have a pretty good package of it now,
with a few qualifications.  (There were OME and Bio-Formats
developers around at that event to help.)

The most difficult dependency is NetCDF Java, which I see you
also have an ITP for:

  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=641447

NetCDF Java itself also bundles a huge number of jar files in
the source distribution, but to build the core of NetCDF you
actually need relatively few dependencies.  I made a package
that builds just the core of NetCDF (i.e. the makeCore ant
target) and only relies on Debian-packaged dependencies.  (The
NetCDF core is all that bio-formats requires, I believe.)  That
repository is here:

   https://github.com/mhl/libnetcdf-java

The first commit on master is just the original upstream source
(including the bundled jars) and the subsequent commits remove
those and add the debian subdirectory.

The bio-formats package can then use that as a dependency.  I've
got the point where the bio-formats jar targets that can be
successfully built are:

    jar-autogen            generate JAR file for LOCI autogen
    jar-common             generate JAR file for LOCI common library
    jar-formats            generate JAR file for Bio-Formats
    jar-jai                generate JAR file for JAI Image I/O Tools library
    jar-loci-plugins       generate JAR file for LOCI Plugins for ImageJ
    jar-lwf-stubs          generate JAR file for LWF stubs
    jar-mdbtools           generate JAR file for MDB Tools Java library
    jar-metakit            generate JAR file for Metakit Java library
    jar-ome-xml            generate JAR file for OME-XML Java library
    jar-poi-loci           generate JAR file for Apache POI library
    jar-scifio             generate JAR file for SciFIO

... while those that still aren't built, due to dependency
problems, are:

    jar-ome-editor         generate JAR file for OME Metadata Editor
    jar-ome-io             generate JAR file for OME I/O
    jar-ome-notes          generate JAR file for OME Notes
    jar-ome-plugins        generate JAR file for OME Plugins for ImageJ

    jar-tests              generate JAR file for LOCI testing framework

The former group rely on jar files that are built by some part
of the Open Microscopy Environment project.  Although it would
be great to have these, I don't think they should hold up an
initial release of bio-formats.  The testing framework is a
similar case, I think.

The remaining problematic jar file, which I am still including
in the source archive of bio-formats, is clibwrapper_jiio.jar.
This is a strange case - I can't find the source for these
classes anywhere.  It is distributed as part of jai-imageio-core
[1], which, despite being BSD-licensed, only contains a
sourceless jar file of clibwrapper_jiio.jar, and there's no
corresponding source elsewhere in the repository.  (There are
also native libraries in there that seem to be missing source -
those are, I think, the libraries called via JNI from
clibwrapper_jiio.jar.)

  [1] http://java.net/projects/jai-imageio-core/
      ITP: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=641276

bio-formats actually contains its own fork of jar-imageio-core,
but the clibwrapper_jiio.jar in bio-formats is identical to one
in earlier revisions of the upstream jar-imageio-core
repository.  So, I guess that the most sensible solution is for
jar-imageio-core to be packaged and put into non-free and for
bio-formats to depend on that to provide clibwrapper_jiio.jar.
Hopefuly at some point someone can figure out where the source
is for the jclib4jai component of jai-imageio-core (the
compoment that contains all these problematic files).

The repository with my Debian packaging of bio-formats is here:

   https://github.com/mhl/libbio-formats-java

Or the generated packages for both libbio-formats-java and
libnetcdf-core-java are here:

   http://fiji.sc/~longair/bio-formats-debian-packages/all/

I hope that's of some use.

best regards,
mark


Reply to: