Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 224017 - New ebuild for statistical genetics software PLINK
Summary: New ebuild for statistical genetics software PLINK
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: x86 Linux
: High enhancement (vote)
Assignee: Andrey Kislyuk (RETIRED)
URL: http://pngu.mgh.harvard.edu/~purcell/...
Whiteboard:
Keywords: EBUILD
Depends on:
Blocks:
 
Reported: 2008-05-28 21:42 UTC by Neil
Modified: 2009-03-12 02:17 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Initial ebuild (plink-1.02.ebuild,780 bytes, text/plain)
2008-05-28 22:03 UTC, Neil
Details
Initial ChangeLog (ChangeLog,249 bytes, text/plain)
2008-05-28 22:03 UTC, Neil
Details
Revised ebuild as per comments by Carsten Lohrke (plink-1.02-r1.ebuild,776 bytes, text/plain)
2008-05-29 08:58 UTC, Neil
Details
Updated ChangeLog (ChangeLog,359 bytes, text/plain)
2008-05-29 08:58 UTC, Neil
Details
Newer ebuild (plink-1.03.ebuild,776 bytes, text/plain)
2009-03-05 10:42 UTC, Neil
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Neil 2008-05-28 21:42:45 UTC
PLINK is a software tool for parametric and non-parametric linkage analysis and association testing for disease gene mapping in statistical genetics.

Reproducible: Always

Steps to Reproduce:
1. Place ebuild in appropriate overlay (e.g. /usr/local/portage/sci-biology/plink/)
2. ebuild /usr/local/portage/sci-biology/plink/plink-1.02.ebuild digest
3. emerge plink

Actual Results:  
These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    ] sci-biology/plink-1.02  0 kB [1]

Total: 1 package (1 new), Size of downloads: 0 kB
Portage tree and overlays:
 [0] /usr/portage
 [1] /usr/local/portage

>>> Verifying ebuild Manifests...

>>> Emerging (1 of 1) sci-biology/plink-1.02 to /
 * plink-1.02-src.zip RMD160 SHA1 SHA256 size ;-) ...                               [ ok ]
 * checking ebuild checksums ;-) ...                                                [ ok ]
 * checking auxfile checksums ;-) ...                                               [ ok ]
 * checking miscfile checksums ;-) ...                                              [ ok ]
 * checking plink-1.02-src.zip ;-) ...                                              [ ok ]
>>> Unpacking source...
>>> Unpacking plink-1.02-src.zip to /var/tmp/portage/sci-biology/plink-1.02/work
>>> Source unpacked.
>>> Compiling source in /var/tmp/portage/sci-biology/plink-1.02/work/plink-1.02-src ...
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c plink.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c options.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c input.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c binput.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c tinput.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c genome.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c helper.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c filters.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c locus.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c multi.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c crandom.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c cluster.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c mds.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c output.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c informative.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c assoc.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c epi.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c prephap.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c phase.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c trio.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c tdt.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c sharing.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c genepi.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c sets.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c perm.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c mh.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c genedrop.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c gxe.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c merge.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c hotel.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c multiple.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c haploCC.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c haploTDT.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c poo.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c webcheck.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c qfam.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c linear.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c bmerge.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c parse.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c mishap.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c legacy.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c homozyg.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c segment.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c model.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c logistic.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c glm.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c dcdflib.cpp
dcdflib.cpp: In function 'void E0000(int, int*, double*, double*, long unsigned int*, long unsigned int*, double*, double*, double*, double*, double*, double*, double*)':
dcdflib.cpp:6025: warning: deprecated conversion from string constant to 'char*'
dcdflib.cpp: In function 'double dlanor(double*)':
dcdflib.cpp:6401: warning: deprecated conversion from string constant to 'char*'
dcdflib.cpp: In function 'double dstrem(double*)':
dcdflib.cpp:6782: warning: deprecated conversion from string constant to 'char*'
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c rarer.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c dfam.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c fisher.cpp
fisher.cpp: In function 'void fexact(int*, int*, double*, int*, double*, double*, double*, double*, double*, int*)':
fisher.cpp:304: warning: deprecated conversion from string constant to 'char*'
fisher.cpp:310: warning: deprecated conversion from string constant to 'char*'
fisher.cpp:316: warning: deprecated conversion from string constant to 'char*'
fisher.cpp: In function 'void f2xact(int*, int*, double*, int*, double*, double*, double*, double*, double*, double*, int*, int*, int*, int*, int*, int*, int*, int*, double*, int*, int*, double*, double*, double*, int*, int*, double*)':
fisher.cpp:491: warning: deprecated conversion from string constant to 'char*'
fisher.cpp:493: warning: deprecated conversion from string constant to 'char*'
fisher.cpp:544: warning: deprecated conversion from string constant to 'char*'
fisher.cpp:552: warning: deprecated conversion from string constant to 'char*'
fisher.cpp:606: warning: deprecated conversion from string constant to 'char*'
fisher.cpp:794: warning: deprecated conversion from string constant to 'char*'
fisher.cpp: In function 'void f5xact(double*, const double*, int*, int*, int*, int*, double*, int*, int*, int*, int*, int*, int*, int*, int*)':
fisher.cpp:1582: warning: deprecated conversion from string constant to 'char*'
fisher.cpp:1598: warning: deprecated conversion from string constant to 'char*'
fisher.cpp:1640: warning: deprecated conversion from string constant to 'char*'
fisher.cpp: In function 'int iwork(int, int*, int, int)':
fisher.cpp:2044: warning: deprecated conversion from string constant to 'char*'
fisher.cpp: In function 'void isort(int*, int*)':
fisher.cpp:2121: warning: deprecated conversion from string constant to 'char*'
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c linput.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c sockets.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c lookup.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c proxy.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c pdriver.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c haploQTL.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c haplohelper.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c haplowindow.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c genogroup.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c nonfounderphasing.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c clumpld.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c genoerr.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c em.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c impute.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c metaem.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c profile.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c nlist.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c whap.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c simul.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c gvar.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c cnv.cpp
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c r.cpp
In file included from r.cpp:27:
Rconnection.h: In constructor 'Rsymbol::Rsymbol(Rmessage*)':
Rconnection.h:201: warning: deprecated conversion from string constant to 'char*'
Rconnection.h: In constructor 'Rsymbol::Rsymbol(unsigned int*, Rmessage*)':
Rconnection.h:204: warning: deprecated conversion from string constant to 'char*'
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -c Rconnection.cpp
In file included from Rconnection.cpp:30:
./Rconnection.h: In constructor 'Rsymbol::Rsymbol(Rmessage*)':
./Rconnection.h:201: warning: deprecated conversion from string constant to 'char*'
./Rconnection.h: In constructor 'Rsymbol::Rsymbol(unsigned int*, Rmessage*)':
./Rconnection.h:204: warning: deprecated conversion from string constant to 'char*'
Rconnection.cpp: At global scope:
Rconnection.cpp:55: warning: deprecated conversion from string constant to 'char*'
g++  -O3 -I. -DUNIX -static -DWITH_R_PLUGINS -o plink plink.o options.o input.o binput.o tinput.o genome.o helper.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 r.o Rconnection.o -ldl -lcrypt 
>>> Source compiled.
>>> Test phase [not enabled]: sci-biology/plink-1.02

>>> Install plink-1.02 into /var/tmp/portage/sci-biology/plink-1.02/image/ category sci-biology
>>> Completed installing plink-1.02 into /var/tmp/portage/sci-biology/plink-1.02/image/

strip: i686-pc-linux-gnu-strip --strip-unneeded -R .comment
   usr/bin/plink
* checking 2 files for package collisions
>>> Merging sci-biology/plink-1.02 to /
--- /usr/
--- /usr/bin/
>>> /usr/bin/plink
>>> /usr/bin/gPLINK.jar
>>> Regenerating /etc/ld.so.cache...
>>> sci-biology/plink-1.02 merged.
>>> Recording sci-biology/plink in "world" favorites file...
>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

 * GNU info directory index is up-to-date.


Expected Results:  
As per actual
Comment 1 Neil 2008-05-28 22:03:25 UTC
Created attachment 154643 [details]
Initial ebuild
Comment 2 Neil 2008-05-28 22:03:53 UTC
Created attachment 154645 [details]
Initial ChangeLog
Comment 3 Neil 2008-05-28 22:05:47 UTC
Would fit nicely in sci-biology/plink
Comment 4 Carsten Lohrke (RETIRED) gentoo-dev 2008-05-28 22:59:18 UTC
- 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.
Comment 5 Neil 2008-05-29 08:56:47 UTC
(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

Comment 6 Neil 2008-05-29 08:58:08 UTC
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
Comment 7 Neil 2008-05-29 08:58:32 UTC
Created attachment 154677 [details]
Updated ChangeLog
Comment 8 Carsten Lohrke (RETIRED) gentoo-dev 2008-05-29 22:10:34 UTC
(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.
Comment 9 Carsten Lohrke (RETIRED) gentoo-dev 2008-05-29 22:14:57 UTC
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.
Comment 10 Andrey Kislyuk (RETIRED) gentoo-dev 2009-03-05 04:51:57 UTC
Taking package.
Comment 11 Neil 2009-03-05 10:42:28 UTC
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
Comment 12 Andrey Kislyuk (RETIRED) gentoo-dev 2009-03-06 16:43:09 UTC
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!
Comment 13 Andrey Kislyuk (RETIRED) gentoo-dev 2009-03-06 18:48:12 UTC
Edited ebuild in overlay to remove the webcheck (updates checking) option by default and acknowledge Neil
Comment 14 Andrey Kislyuk (RETIRED) gentoo-dev 2009-03-07 04:39:10 UTC
Added gcc-4.3 patch. In main tree.
Comment 15 Neil 2009-03-07 10:05:17 UTC
(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?
Comment 16 Justin Lecher (RETIRED) gentoo-dev 2009-03-07 10:09:32 UTC
(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.
Comment 17 Neil 2009-03-08 10:11:21 UTC
(In reply to comment #16)
>
> It's in the maintree.
> 

Compiles, installs and runs fine.