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

Re: Help needed to update to latest fastqc



Hi Olivier,

I'm working with your updated libsis-base package.  It compiles OK but I
had to tinker with the library loading to get the self tests to pass
(sse below).

I've modified the package to build according to
https://www.debian.org/doc/packaging-manuals/java-policy/x104.html. Both
native .so libraries are JNI so they are tightly bound to the Java
wrapper and no other code should ever link to them.  My impression is
that therefore they should go into /usr/lib/jni and either be
un-versioned or else named like:

libcisd-nativedata-14.12.0.so

Because the .so file has to precisely match the version of the .jar file
and they can and should be updated in lock step.  The usual
considerations about major.minor.bugfix versioning don't apply.

On that topic, the Java code in libsis-base loads both these libraries
on a best-effort basis and tries to fall back to native routines the
code is unavailable.  I'd advocate bypassing all this with a direct call
to eg. "System.loadLibrary("cisd_unix");", on the assumption that all
Debian users expect to have the native libraries loaded.  The result is
that you then get an informative "no such native library" error right
away rather than a cryptic failure later on.

What do you think?  I've committed my simplified build so you can see
what I've done.  If you think I've messed it up then just revert to
r19959 which was your last version.

Cheers,

TIM

On Sun, 2015-08-16 at 17:20 +0200, olivier.sallou@codeless.fr wrote:
> On 08/14/2015 10:48 AM, Tim Booth wrote:
> > Hi Olivier,
> >
> > http://anonscm.debian.org/viewvc/debian-med/trunk/packages/libsis-base-java/
> > http://anonscm.debian.org/viewvc/debian-med/trunk/packages/libsis-jhdf5-java/
> >
> > I've not modified FastQC at all.  Or rather, I tried patching out the
> > FAST5 support but I just did that within the vanilla source; I'm not
> > playing with the package from GIT at this point.
> Ok, libsis-base-java "sounds" good (except a few remaining polishing).
> However, you can take code from svn and build package. autotests are fine.
> I have updated libsis-jhdf5-java in svn too to generate native libs,
> java lib (what you already did) and launch tests.
> Libraries compilation is ok (.so and .jar), but tests fail when using
> native libs (load is ok). I don't know why and am struggling with it, as
> error message does not help (failed to instanciate). If you want to have
> a look.... I gonna continue ot investiguate.
> 
> 
> Olivier
> >
> > Cheers,
> >
> > TIM
> >
> > On Fri, 2015-08-14 at 08:16 +0200, olivier.sallou@codeless.fr wrote:
> >> On 08/13/2015 05:20 PM, Tim Booth wrote:
> >>
> >>> Hi Olivier,
> >>>
> >>> Looks like Bernd Rinn is making positive noises regarding a DFSG version
> >>> of the library, so hopefully once he provides code you can take what I
> >>> have done and make use of it.  I committed to SVN because it's so much
> >>> easier than pushing to GIT and I'm lazy, sorry.
> >> what do you mean by commit to SVN ?
> >>
> >> I looked at SVN repo for fastqc but it is empty, referring to git repo
> >> [0]
> >> Where is you code ?
> >>
> >> [0] http://anonscm.debian.org/viewvc/debian-med/trunk/packages/fastqc/
> >>
> >> Olivier
> >>> In my libsis-jhdf5-java package I created a small test
> >>> "ReadWriteTest.java" which I confirmed works correctly when used with
> >>> the binary libhdf5.so supplied by upstream.  Also my patches
> >>> fix_dodgy_cast.patch and remove_ch_rinn_imports.patch should be sound
> >>> but the others are junk caused by me trying to kick the code into
> >>> submission.
> >>>
> >>> If for some reason we can't get this working then you could very easily
> >>> patch out FAST5 support in FastQC for now.  My impression is that it's
> >>> something of an alpha feature in any case.  I can't even find a .fast5
> >>> format file to test with!
> >>>
> >>>>>> PATCH for FASTQC
> >>> This patch disables support for FAST5 format until we get the library built.
> >>> Most users won't need this anyway, and those that do can convert the file
> >>> to FASTQ using other tools.
> >>>
> >>> Note you also need to completely remove the file
> >>> uk/ac/babraham/FastQC/Sequence/Fast5File.java, which I can't do in a quilt patch.
> >>>
> >>> Tim Booth - 13th Aug 2015
> >>> --- a/uk/ac/babraham/FastQC/Sequence/SequenceFactory.java
> >>> +++ b/uk/ac/babraham/FastQC/Sequence/SequenceFactory.java
> >>> @@ -100,7 +100,8 @@
> >>>  			return new BAMFile(file,false);
> >>>  		}
> >>>  		else if (file.getName().toLowerCase().endsWith(".fast5")) {
> >>> -			return new Fast5File(file);
> >>> +			//return new Fast5File(file);
> >>> +			throw new SequenceFormatException("Support for FAST5 files has not been enabled in this build of FastQC.");
> >>>  		}
> >>>  		else {
> >>>  			return new FastQFile(config,file);
> >>> <<<PATCH
> >>>
> >>> I'm done with this for now.  Off to debug some Python code.
> >>>
> >>> Best,
> >>>
> >>> TIM
> >>>
> >>
> >> -- 
> >> gpg key id: 4096R/326D8438  (keyring.debian.org)
> >> Key fingerprint = 5FB4 6F83 D3B9 5204 6335  D26D 78DC 68DB 326D 8438
> 
> 

-- 
Nothing is inherently mysterious - nothing that actually exists, that
is.  If I am ignorant about a phenomenon, that is a fact about my state
of mind, not a fact about the phenomenon; to worship a phenomenon
because it seems so wonderfully mysterious, is to worship your own
ignorance.

  - Eliezer Yudkowsky


Reply to: