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

Re: Next take in Debian packaging for Mauve



Hi Andreas, it's really exciting to hear that you're taking another stab
at this. More below.

On Tue, 2015-04-28 at 13:53 +0200, Andreas Tille wrote:
> Hi Aaron,
> 
> sorry for this longish mail summarising several issues.  I hope you will
> find the time to answer all questions below.
> 
> I have no idea whether you remember my first attempt to package Mauve
> for Debian (which was in 2008[1] - I have never imagined that it would
> take such a long time ...).  Now I've made way better progress - not
> only due to better preconditions inside Debian.
> 
> The oldest package in Debian is libgenome version 1.3.1 which resides
> inside Debian since 25 Jun 2008 when it could be downloaded from the
> formerly used website[2].  This site does not exist any more but the
> source code is available from sourceforge[3].  I have no idea whether
> there are some important changes in trunk.  In any case it would be
> helpful to do some release (of any of your relevant libraries and tools)
> to be downloadable from the Files section of the SourceForge page.

ok, there have been a few small changes. some minor bugfixes but nothing
major but i'd be happy to put a new release up -- it's overdue.

> 
> Recently I have added libmuscle (version 3.7) and libmems (version 1.6)
> to the Debian pool.  I have created a tarball from the latest trunk.
> Also here a proper versioned release would be really helpful.  The
> rationale is that there is a Debian tool that checks websites for
> regular expressions whether new versions might have shown up.  This tool
> can be easily pointed to the Files section of SourceForge but it does
> not work properly on SVN commit IDs.

ok, can do this too.

> 
> The next package is mauvealigner which is currently in the Debian NEW
> queue[4].  According to the same principle I pulled it from latest trunk
> (and the same as for the libraries regarding a proper release applies
> here as well).  It might last some weeks until it is processed and will
> be enter official Debian but I see no problem here.

ok, great.


> 
> Finally we come to the Java application Mauve (which is also pulled from
> SVN).  Regarding Java I need to mention that Debian does allow only
> source code but no binaries without source.  This does conflict a bit
> with the Java strategy to include third party JAR files inside the
> source.  The good news is that I managed to replace several of these
> JARs by Debian packaged equivalents, found out that they are not used
> and managed to create a package for a not yet packaged JAR.  I would
> like you to know this strategy to enable you commenting on it in case I
> might have missed something that might harm the final functionality of
> Mauve.
> 
> After some patches[5] I was able to fully delete the build_support/ dir
> in the source dir.  Debian contains the needed tools to build Mauve
> successfully - so I was able to get rid of it.

ok, i'll try to look at the changes in the coming days and confirm
nothing obvious has broken.

> 
> Now to the JAR files in the ext/ directory.  I noticed that you are
> providing BioJava 1.9.2-SNAPSHOT in three different JAR files:
> bytecode-1.9.2-SNAPSHOT.jar, core-1.9.2-SNAPSHOT.jar and
> gui-1.9.2-SNAPSHOT.jar.  Debian contains BioJava in only one JAR file
> and this was used to build the package.  The possibly weak part is that
> Debian has stalled on version 1.7.1 of the BioJava 1.x series.  I know
> that BioJava 3.x is not fully compatible with the 1.x series but I
> wonder
> 
>    a) Is 1.9.2 really required or is 1.7.1 fine as well for Mauve?
>    b) Do you intend to convert Mauve to BioJaba 3.x?
> 
> Depending from your answer the BioJava dependency might need some work
> from our side.

well, the issue is even more complicated because I've patched the
biojava 1.9.2 code to fix an incompatibility with parsing GenBank format
files produced by the prokka software. So without that patch this
functionality will break. I am not sure if the patch can be applied to
1.7.1. There is also a potential GUI issue regarding the responsiveness
of tooltips over annotation tracks in 1.7.1.

> 
> For the following ext/*.jar files I used the according Debian
> equivalents: ant-1.7.1.jar (ant 1.9.4), commons-cli-1.2.jar (same
> version in Debian), dbus-2.6.jar (libdbus-java 2.8), the classes from
> jnlp.jar were found in icedtea-netx-common 1.5.2 and unix-0.5.jar were
> found in libunixsocket-java (0.7.3).  I guess everything is something
> standard and should not cause any trouble.

yes, these are all standard. happily :)

> 
> Regarding postgresql-9.0-801.jdbc4.jar I added a "Recommends" to the
> package metainformation which means the package will be recommended at
> installation time.  In practice this means that per default when the
> mauve package is installed also the jdbc4 driver is installed.  I wonder
> whether at this point only a "Suggests" is fine which would keep the
> user installation smaller (without the jdbc4 driver) per default.  Do
> you think accessing PostgreSQL databases is a frequently used feature or
> only something that users might do in exceptional cases?

safe to leave out. this was an experimental line of development to pull
genome annotation from databases and we never deployed it in production.

> 
> For ext/jebl-0.4.jar I'm a bit unsure.  Debian contains a package of
> jebl2[6].  I have no idea how to test whether this works as well as
> jebl-0.4.  Any hint how to confirm this?

this is also a package that supports a feature that's still in
development and not enabled in production. It will take me some time to
investigate API changes between jebl and jebl2, so I'd suggest leaving
it out for now.

> 
> I have created a new Debian package of zeus-jscl.  It is in the NEW
> queue and this info page has all its metainformation[7].  It seems that
> the JAR you added to the Mauve download was using a different (probably
> older) zeus-jscl.  Thanks to the great Debian community I've git help to
> create a patch against Mauve which adapts the code to the new zeus-jscl
> interface.  I would recommend checking out the patch from here[8] and
> take it over to the Mauve code.

ok, thanks!

> 
> Moreover I noticed that ext/jsc.jar does not seem to be used in Mauve
> at all.  Am I right here?  This would be really important since if I
> check the download page[9] it says:
> 
>   Free for non-commercial use. Free educational use is permitted on
>   courses where students pay no fees and there are fewer than 40 students.
>   Otherwise email Licensing JSC for commercial use.
> 
> This would be regarded non-free by Debian and if Mauve would depend from
> this JAR it would not be able to distribute Mauve from main Debian.  But
> I think it is fine to simply delete it.  Can you please confirm this?
> 

Delete! I'll do this in my repository too. I think there was intention
to use it that never ended up happening.

> My last take is the currently remaining ext/goose.jar.  I'm not fully
> sure where I can take the source for this JAR from.  Somehow it looks
> like Cereopsis by Dan Tenenbaum but I would like to get your
> confirmation for this first before I'll spent my time into creating a
> package from this project.  In any case this would be required to follow
> the Debian policy that we do not allow binary code.  So the way is to
> create an appropriate JAR from the source code, create a package from it
> and use this instead of ext/goose.jar (in the same manner as I did for
> zeus-jscl).

This is from the gaggle project:
http://gaggle.systemsbiology.net/docs/geese/sample/
yet another feature that's not in production, should be ok to remove.

> 
> So far for the JARs.  Moreover we would like to run the test suite not
> only to be sure that my JAR replacements were successful.  Debian in
> general tries to run any available build time test and has in addition a
> test framework which runs automatically from time to time.  Since I have
> seen a test/ directory I wonder how I could trigger the provided tests.
> 
> Last but not least I have a problem with your name choice.  In Debian we
> just have a package named mauve which is a free test suite for the Java
> Class libraries name[11].  While there is no strong reason to rename the
> binary we are using as wrapper to start Mauve.jar[12] the package name
> has to be changed.  (If I remember correctly we discussed this name
> choice back in 2008 - to laze to seek.)  In general I do not think that
> it is a good idea to have the same name twice in the Free Software name
> space.

well, this genome alignment software was first released to the world in
2003 and development began in 2001, but setting aside the issue of who
came first I think it would be fine to call the package mauve-aligner or
something like that. I am less enthusiastic about renaming the `Mauve`
wrapper script simply to avoid naming conflicts with someone else's
software because that would involve some substantial revision to the
documentation and possibly breaking dependent tools.


> In any case I would like to discuss the package name where users might
> be able to find Mauve - you might like to point Debian users to this
> package for the simplicity of maintenance and so I'm interested in your
> opinion about the following names:
> 
>    g-mauve
>    genome-mauve
>    ?   (do you have some better suggestion)

i think mauve-aligner would be more natural.

> 
> Thanks a lot for taking the time to read this longish mail.  Any hints
> and recommendations regarding the packaging are highly appreciated.

No problem! thanks for taking the time to write such a carefully
considered message!!! I *really* appreciate the effort you are making.
the availability of bio-related debian packages has completely changed
the attitude that biologists i work with take toward linux. you have
taken (most of) the fear out of it. it's wonderful.

Best,
-Aaron


> 
> Kind regards and thanks for providing Mauve as Free Software
> 
>         Andreas.
> 
> [1] https://lists.debian.org/debian-med/2008/03/msg00099.html
> [2] http://asap.ahabs.wisc.edu/software/software-development-libraries/libgenome.html
> [3] http://sourceforge.net/p/mauve/code/HEAD/tree/libGenome/trunk/
> [4] https://ftp-master.debian.org/new/mauvealigner_1.2.0+4713-1.html
> [5] https://anonscm.debian.org/cgit/debian-med/mauve.git/tree/debian/patches/build_xml.patch
> [6] https://github.com/rambaut/jebl2
> [7] https://ftp-master.debian.org/new/libzeus-jscl-java_1.72-1.html
> [8] https://anonscm.debian.org/cgit/debian-med/mauve.git/tree/debian/patches/use_JConsole_of_zeus-jscl_properly.patch
> [9] http://www.jsc.nildram.co.uk/downloads/download.html
> [10] https://github.com/dtenenbaum/Cereopsis
> [11] http://sourceware.org/mauve/
> [12] https://anonscm.debian.org/cgit/debian-med/mauve.git/tree/debian/bin/mauve
> 



Reply to: