Summary: | New ebuild for statistical genetics software PLINK | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Neil <nshephard> |
Component: | New packages | Assignee: | Andrey Kislyuk (RETIRED) <weaver> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | sci-biology, weaver |
Priority: | High | Keywords: | EBUILD |
Version: | 2006.1 | ||
Hardware: | x86 | ||
OS: | Linux | ||
URL: | http://pngu.mgh.harvard.edu/~purcell/plink/ | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
Initial ebuild
Initial ChangeLog Revised ebuild as per comments by Carsten Lohrke Updated ChangeLog Newer ebuild |
Description
Neil
2008-05-28 21:42:45 UTC
Created attachment 154643 [details]
Initial ebuild
Created attachment 154645 [details]
Initial ChangeLog
Would fit nicely in sci-biology/plink - The comments are superfluous, please remove them. - IUSE="" missing - virtual/libc and virtual/jdk are missing in DEPEND, virtual/jre in RDEPEND - On Gentoo even Java stuff has to be build from source, dropping the java archive is not fine. Please see the Gentoo Java documentation for more information. (In reply to comment #4) > - The comments are superfluous, please remove them. Sorry, legacy from my own education whilst learning to write ebuilds. Now removed. > - IUSE="" missing Added and included R > - virtual/libc and virtual/jdk are missing in DEPEND, virtual/jre in RDEPEND Added Revised ebuild (to-date, but its likely to change based on below) is attached. > - On Gentoo even Java stuff has to be build from source, dropping the java > archive is not fine. Please see the Gentoo Java documentation for more > information. Ahh, sorry about that, can I ask for some advice on how to proceed with this please? The Java archive that comes bundled with PLINK is also available separately (as both source and compiled at http://pngu.mgh.harvard.edu/~purcell/plink/gplink.shtml#down ). How should I proceed with the ebuild for gPLINK? I can think of a couple of options... 1) Drop the gPLINK.jar thats bundled in with PLINK, grab the sources for gPLINK and compile from scratch. 2) As above but include gPLINK as a separate ebuild which would be pulled in by PLINK with a IUSE="java". 3) Ask the author to bundle the source for gPLINK in with the source for PLINK. Intuitively I feel 2) is the best option, but being that I'm only in the early stages of learning/writing ebuilds I'm not too sure and would appreciate any advice. Cheers, Neil Created attachment 154675 [details]
Revised ebuild as per comments by Carsten Lohrke
This is NOT final, its likely to change with regards to compilation of gPLINK
Created attachment 154677 [details]
Updated ChangeLog
(In reply to comment #5) > (In reply to comment #4) > > - The comments are superfluous, please remove them. > > Sorry, legacy from my own education whilst learning to write ebuilds. Now > removed. No need to be sorry, I'm just pointing out the issues I notice, when doing bug wrangling, hoping to raise the quality before a possible maintainer picks it up. :) > > - IUSE="" missing > > Added and included R When R is just optional and not integral part of the way to work with this application, a post install notice, dropping the dependency is the better choice, otherwise I'd make it mandatory. Optional runtime dependencies sort of suck. > Ahh, sorry about that, can I ask for some advice on how to proceed with this > please? Unfortunately I can't be helpful here. You ressource of choice is http://www.gentoo.org/proj/en/java/#doc_chap5 > How should I proceed with the ebuild for gPLINK? I can think of a couple of > options... > > 1) Drop the gPLINK.jar thats bundled in with PLINK, grab the sources for gPLINK > and compile from scratch. > > 2) As above but include gPLINK as a separate ebuild which would be pulled in by > PLINK with a IUSE="java". > > 3) Ask the author to bundle the source for gPLINK in with the source for PLINK. > > Intuitively I feel 2) is the best option, but being that I'm only in the early > stages of learning/writing ebuilds I'm not too sure and would appreciate any > advice. If the jar should be optional depends on the application, can't say anything about it. In which way the source code is (almost - some versioned archive or we get hash conflicts with different releases) a technical detail. s/code is/code is provided (...) is/ A last note: There's no point attaching changelogs. You can expect to be mentioned in the changelog, if the dev in question isn't too distracted, but we won't import the one you attach. Taking package. Created attachment 183995 [details] Newer ebuild A slightly newer ebuild, however... ...the current version is 1.05 (see http://pngu.mgh.harvard.edu/~purcell/plink/download.shtml#download ), however simply version bumping the 1.03 ebuild to 1.05 (and 1.04) fails with.... g++ -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -o plink plink.o options.o input.o binput.o tinput.o genome.o helper.o stats.o filters.o locus.o multi.o crandom.o cluster.o mds.o output.o informative.o assoc.o epi.o prephap.o phase.o trio.o tdt.o sharing.o genepi.o sets.o perm.o mh.o genedrop.o gxe.o merge.o hotel.o multiple.o haploCC.o haploTDT.o poo.o webcheck.o qfam.o linear.o bmerge.o parse.o mishap.o legacy.o homozyg.o segment.o model.o logistic.o glm.o dcdflib.o rarer.o dfam.o fisher.o linput.o sockets.o lookup.o proxy.o pdriver.o haploQTL.o haplohelper.o haplowindow.o genogroup.o nonfounderphasing.o clumpld.o genoerr.o em.o impute.o metaem.o profile.o nlist.o whap.o simul.o gvar.o cnv.o step.o greport.o flip.o qualscores.o cnvqt.o cfamily.o r.o Rconnection.o -ldl -lcrypt input.o: In function `Plink::readFamFile(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)': input.cpp:(.text+0x6379): undefined reference to `bool from_string<double>(double&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::ios_base& (*)(std::ios_base&))' input.o: In function `Plink::readCovariateFile()': input.cpp:(.text+0x8a79): undefined reference to `bool from_string<double>(double&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::ios_base& (*)(std::ios_base&))' input.o: In function `Plink::readCovListFile()': input.cpp:(.text+0xc775): undefined reference to `bool from_string<double>(double&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::ios_base& (*)(std::ios_base&))' input.o: In function `Plink::readData()': input.cpp:(.text+0x11e54): undefined reference to `bool from_string<double>(double&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::ios_base& (*)(std::ios_base&))' input.o: In function `Plink::readPhenoFile()': input.cpp:(.text+0x15f2e): undefined reference to `bool from_string<double>(double&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::ios_base& (*)(std::ios_base&))' filters.o:filters.cpp:(.text+0xa6d): more undefined references to `bool from_string<double>(double&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::ios_base& (*)(std::ios_base&))' follow filters.o: In function `Plink::filterSNPs()': filters.cpp:(.text+0x10e6): undefined reference to `bool from_string<int>(int&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::ios_base& (*)(std::ios_base&))' cluster.o: In function `Plink::buildCluster()': cluster.cpp:(.text+0x1ec4): undefined reference to `bool from_string<double>(double&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::ios_base& (*)(std::ios_base&))' cluster.cpp:(.text+0x1ef3): undefined reference to `bool from_string<double>(double&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::ios_base& (*)(std::ios_base&))' cluster.cpp:(.text+0x1f22): undefined reference to `bool from_string<double>(double&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::ios_base& (*)(std::ios_base&))' cluster.cpp:(.text+0x5a30): undefined reference to `bool from_string<double>(double&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::ios_base& (*)(std::ios_base&))' cluster.cpp:(.text+0x5a5c): undefined reference to `bool from_string<double>(double&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::ios_base& (*)(std::ios_base&))' informative.o:informative.cpp:(.text+0x7d8): more undefined references to `bool from_string<double>(double&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::ios_base& (*)(std::ios_base&))' follow nlist.o: In function `NList::deparseNumberList(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)': nlist.cpp:(.text+0x1406): undefined reference to `bool from_string<int>(int&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::ios_base& (*)(std::ios_base&))' gvar.o: In function `Plink::readGenericVariantData()': gvar.cpp:(.text+0x5ae4): undefined reference to `bool from_string<double>(double&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::ios_base& (*)(std::ios_base&))' gvar.cpp:(.text+0x63f4): undefined reference to `bool from_string<double>(double&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::ios_base& (*)(std::ios_base&))' cnv.o: In function `Plink::readCNVList()': cnv.cpp:(.text+0x1f6c): undefined reference to `bool from_string<int>(int&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::ios_base& (*)(std::ios_base&))' cnv.cpp:(.text+0x1fcc): undefined reference to `bool from_string<int>(int&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::ios_base& (*)(std::ios_base&))' cnv.cpp:(.text+0x34fa): undefined reference to `bool from_string<int>(int&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::ios_base& (*)(std::ios_base&))' cnv.cpp:(.text+0x354e): undefined reference to `bool from_string<int>(int&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::ios_base& (*)(std::ios_base&))' cnv.cpp:(.text+0x359f): undefined reference to `bool from_string<int>(int&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::ios_base& (*)(std::ios_base&))' cnv.cpp:(.text+0x366a): undefined reference to `bool from_string<double>(double&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::ios_base& (*)(std::ios_base&))' cnv.cpp:(.text+0x36c1): undefined reference to `bool from_string<int>(int&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::ios_base& (*)(std::ios_base&))' greport.o: In function `Plink::displayGeneReport()': greport.cpp:(.text+0x1a87): undefined reference to `bool from_string<double>(double&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::ios_base& (*)(std::ios_base&))' greport.cpp:(.text+0x1c03): undefined reference to `bool from_string<int>(int&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::ios_base& (*)(std::ios_base&))' greport.cpp:(.text+0x1c41): undefined reference to `bool from_string<int>(int&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::ios_base& (*)(std::ios_base&))' collect2: ld returned 1 exit status make: *** [plink] Error 1 I tried contacting the author (Shaun Purcell) about this when I first tried bumping to 1.04 but never really got any response. I suspect its down to me using a newer version of gcc than that which he's used to compile in the past. I'm going to see if I can come up with a patch, but have done little C++ programming (so am going to get an experienced friend to help). I think the most recent version available should go into Portage really (although no harm in having legacy versions). Will let you know how my debugging/patching come along. Neil Now available in the Science overlay: http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=tree;f=sci-biology/plink From ebuild: # Package collides with net-misc/putty. Renamed to snplink following Debian. # Package contains bytecode-only jar gPLINK.jar, ignored, notified upstream. # FIXME: Requires patching for gcc-4.3 I will not push this into the main tree until it's patched for gcc-4.3. The development version (http://pngu.mgh.harvard.edu/~purcell/plink/dist/plink-latest.zip) compiles fine but I could not trivially find the differences that made it work. Please test. Thanks! Edited ebuild in overlay to remove the webcheck (updates checking) option by default and acknowledge Neil Added gcc-4.3 patch. In main tree. (In reply to comment #14) Thanks for the work on this Andrey. I've synced my science overlay, but plink hasn't appeared and the link http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=tree;f=sci-biology/plink gives 404? (In reply to comment #15) > (In reply to comment #14) > > Thanks for the work on this Andrey. I've synced my science overlay, but plink > hasn't appeared and the link > http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=tree;f=sci-biology/plink > gives 404? > It's in the maintree. (In reply to comment #16) > > It's in the maintree. > Compiles, installs and runs fine. |