[Bioperl-l] Packaging BioPerl for mandrake linux
Guillaume Rousse
rousse at ccr.jussieu.fr
Fri Jan 9 07:35:35 EST 2004
Hello.
I'm maintaining BioPerl modules for MandrakeLinux. I'm having some problems to
build bioperl-ext.
First, the compilation doesn't support parallel build on multiple-cpu build
host, as readm.pm get installed after it is needed:
make[1]: Entering directory
`/home/guillomovitch/rpm/BUILD/bioperl-ext-1.4/Bio/SeqIO/staden'
/usr/bin/perl5.8.2 -Mblib -MInline=NOISY,_INSTALL_ -MBio::SeqIO::staden::read
-e1 0.01 ../blib/arch
Can't locate Bio/SeqIO/staden/read.pm in @INC (@INC
contains: /home/guillomovitch/rpm/BUILD/bioperl-ext-1.4/Bio/SeqIO/staden/../blib/arch /home/guillomovitch/rpm/BUILD/bioperl-ext-1.4/Bio/SeqIO/staden/../blib/lib /usr/lib/perl5/5.8.2/i386-linux-thread-multi /usr/lib/perl5/5.8.2 /usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.2 /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl/5.6.1 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.2 /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl .).
BEGIN failed--compilation aborted.
make[1]: *** [read.inl] Error 2
make[1]: *** Waiting for unfinished jobs....
cp read.pm ../blib/lib/Bio/SeqIO/staden/read.pm
make[1]: *** Waiting for unfinished jobs....
Forcing linear build is OK however.
Second, correct optimisation flags (-O2 -fomit-frame-pointer -pipe -march=i586
-mcpu=pentiumpro) are not passed to all gcc invocations:
gcc -c -I./libs -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS
-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -fomit-frame-pointer -pipe
-march=i586 -mcpu=pentiumpro -DVERSION=\"0.1\" -DXS_VERSION=\"0.1\" -fPIC
"-I/usr/lib/perl5/5.8.2/i386-linux-thread-multi/CORE" -DPOSIX -DNOERROR
Align.c
gcc -c -O -c -o dnamatrix.o dnamatrix.c
The first one is OK, the second is not.
Third, I can't find any installed binary files at the end of the compilation
process, only source C files and headers
in /usr/lib/perl5/vendor_perl/5.8.2/Bio/Ext/Align/libs, whereas i was
expecting to have some .so
under /usr/lib/perl5/vendor_perl/5.8.2/Bio/Ext/Align/libs/
I don't have previous experience of using Inline::C, however
Fourth, invocating make test as part of the build process fails for some
uninstalled module:
-- PERL_DL_NONLAZY=1 /usr/bin/perl5.8.2 "-MExtUtils::Command::MM" "-e"
"test_harness(0, '../blib/lib', '../blib/arch')" test.pl
test....The extension 'Bio::SeqIO::staden::read' is not properly installed in
path:
'/home/guillomovitch/rpm/BUILD/bioperl-ext-1.4/Bio/SeqIO/staden/../blib/arch'
If this is a CPAN/distributed module, you may need to reinstall it on your
system.
To allow Inline to compile the module in a temporary cache, simply remove the
Inline config option 'VERSION=' from the Bio::SeqIO::staden::read module.
at test.pl line 0
INIT failed--call queue aborted, <DATA> line 1.
It look like 1), but happens either using parallel or linear build. The
message about using a temporary cache is quite confusing. Am I supposed to
remove line 79 in Bio/SeqIO/staden/read.pm just to pass the tests ? And how
will such a change impacts further use of the module ?
Just skipping the test is enough to workaround the problem, however.
Any help appreciated.
BTW, some modules in main bioperl package have references to some modules in
bioperl-run package:
Bio::Root::Version
Bio::Tools::Run::Alignment::Clustalw
Bio::Tools::Run::Phylo::Molphy::ProtML
Bio::Tools::Run::Phylo::Phylip::Neighbor
Bio::Tools::Run::Phylo::Phylip::ProtDist
Bio::Tools::Run::Phylo::Phylip::ProtPars
This make both packages to requires each other. Maybe those modules should be
moved to bioperl-run, to make bioperl self-sufficient ?
--
Does a fish get cramps after eating?
-- Why Why Why n°2
More information about the Bioperl-l
mailing list