aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrançois Bissey <frp.bissey@gmail.com>2018-10-21 14:04:05 +1300
committerHorea Christian <horea.christ@yandex.com>2018-10-21 16:29:38 +0200
commitc7f45b539af87c6ba4fe535181d5d4afa25baa66 (patch)
tree3c447e8f93af54e04d8221fea2aa982564fc4812 /sci-biology/fsl
parentsci-libs/ciftilib: compatibility with nifti_io (diff)
downloadsci-c7f45b539af87c6ba4fe535181d5d4afa25baa66.tar.gz
sci-c7f45b539af87c6ba4fe535181d5d4afa25baa66.tar.bz2
sci-c7f45b539af87c6ba4fe535181d5d4afa25baa66.zip
sci-biology/fsl: upstream bump
Package-Manager: Portage-2.3.49, Repoman-2.3.11 Signed-off-by: Horea Christian <horea.christ@yandex.com>
Diffstat (limited to 'sci-biology/fsl')
-rw-r--r--sci-biology/fsl/Manifest1
-rw-r--r--sci-biology/fsl/files/fsl-5.0.11-fslsurface_parallel_make.patch14
-rw-r--r--sci-biology/fsl/files/fsl-5.0.11-ifstream_use.patch13
-rw-r--r--sci-biology/fsl/files/fsl-5.0.11-niftiio_var_fix.patch24
-rw-r--r--sci-biology/fsl/files/fsl-5.0.11-no_xmlpp.patch44
-rw-r--r--sci-biology/fsl/files/fsl-5.0.11-qstring_compat.patch63
-rw-r--r--sci-biology/fsl/files/fsl-5.0.11-setup.patch158
-rw-r--r--sci-biology/fsl/fsl-5.0.11.ebuild157
8 files changed, 474 insertions, 0 deletions
diff --git a/sci-biology/fsl/Manifest b/sci-biology/fsl/Manifest
index 09d736ed3..4ba77f1e7 100644
--- a/sci-biology/fsl/Manifest
+++ b/sci-biology/fsl/Manifest
@@ -1,2 +1,3 @@
+DIST fsl-5.0.11.tar.gz 1507525689 BLAKE2B 212941aa6fb74c1c42f8b11d8e6803f1dfba50f1cdcb4092bfdf98d6832c552fcad59843a8db9e8887b98f86ce255fd9e80e3219a48286d7defe4544f0344225 SHA512 6f859723f8e4bd7e381761983f6423364180f5d3300cb165a3e57f3535d5301624ecb30c1796dae9579da5dd16e80a8a62d9994fec1caebf0835c2f6795ca055
DIST fsl-5.0.8-sources.tar.gz 1420879532 BLAKE2B fab46d286b9c083f31408e885235a72a195f14a1e863264e8cbff2b6cfb8c70ef335cafe58dff38141b1d027aef301e94212da4c9b6d3f4306ba60c81e19cec7 SHA512 8dedf13d633d71fa28c5dd6591fab4adda4893b76467affa6f58aee917ee3fdc83da07d8f505feb61ac2733de1bfb84f7f9ff74589756946be21cdb9f057f0f0
DIST fsl-5.0.9-sources.tar.gz 1491426239 BLAKE2B 310c4eb131856120f803d67f18e4d4e97df1ff22143bffa45be5f8abe31a01ce3df5a64abf5d065670b95394249a2f569a66a9cc22cd004b03e868e823d4555d SHA512 86a33084cf880ea1341ff8622eb13a364a462018a0fac55ee291dd8917e8453701db57f35529e144d419ea744397906b586b88acaf9a2dea0291fa3101ebb27d
diff --git a/sci-biology/fsl/files/fsl-5.0.11-fslsurface_parallel_make.patch b/sci-biology/fsl/files/fsl-5.0.11-fslsurface_parallel_make.patch
new file mode 100644
index 000000000..026543d4f
--- /dev/null
+++ b/sci-biology/fsl/files/fsl-5.0.11-fslsurface_parallel_make.patch
@@ -0,0 +1,14 @@
+diff --git a/src/fslsurface/Makefile b/src/fslsurface/Makefile
+index 37f459c..008f443 100644
+--- a/src/fslsurface/Makefile
++++ b/src/fslsurface/Makefile
+@@ -57,7 +57,7 @@ fslsurfacegl.a: fslsurfacegl.o fslsurface.a
+ ${AR} -r libfslsurfacegl.a fslsurfacegl.o
+ fslsurface_backcompat.a: fslsurface_first.o fslsurface_dataconv.o fslsurface.a
+ ${AR} -r libfslsurface_backcompat.a fslsurface_first.o fslsurface_dataconv.o
+-fslsurfacemaths: fslsurface.a fslsurfacemaths.o
++fslsurfacemaths: fslsurface.a fslsurfacemaths.o fslsurfaceio.o fslsurfacefns.o fslsurface_first.o fslsurface.o
+ ${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ fslsurfacemaths.o fslsurfaceio.o fslsurfacefns.o fslsurface_first.o fslsurface.o ${LIBS} ${FMLIBS}
+-marching_cubes: fslsurface.a marching_cubes.o
++marching_cubes: fslsurface.a marching_cubes.o fslsurfaceio.o fslsurfacefns.o
+ ${CXX} ${CXXFLAGS} ${LDFLAGS} -o $@ marching_cubes.o fslsurfaceio.o fslsurfacefns.o ${LIBS} ${FMLIBS}
diff --git a/sci-biology/fsl/files/fsl-5.0.11-ifstream_use.patch b/sci-biology/fsl/files/fsl-5.0.11-ifstream_use.patch
new file mode 100644
index 000000000..c4ba003b7
--- /dev/null
+++ b/sci-biology/fsl/files/fsl-5.0.11-ifstream_use.patch
@@ -0,0 +1,13 @@
+diff --git a/src/melodic/meldata.cc b/src/melodic/meldata.cc
+index f310dc7..03fe8bb 100644
+--- a/src/melodic/meldata.cc
++++ b/src/melodic/meldata.cc
+@@ -1015,7 +1015,7 @@ namespace Melodic{
+ Resels = 1.0;
+
+ in.open(logger.appendDir("smoothest").c_str(), ios::in);
+- if(in>0){
++ if(in.is_open()){
+ for(int ctr=1; ctr<7; ctr++)
+ in >> str;
+ in.close();
diff --git a/sci-biology/fsl/files/fsl-5.0.11-niftiio_var_fix.patch b/sci-biology/fsl/files/fsl-5.0.11-niftiio_var_fix.patch
new file mode 100644
index 000000000..f1a833b75
--- /dev/null
+++ b/sci-biology/fsl/files/fsl-5.0.11-niftiio_var_fix.patch
@@ -0,0 +1,24 @@
+diff --git a/src/fslio/dbh.h b/src/fslio/dbh.h
+index eff0a50a..fbce1770 100644
+--- a/src/fslio/dbh.h
++++ b/src/fslio/dbh.h
+@@ -79,19 +79,6 @@ struct dsr /* dsr */
+ struct data_history hist; /* 148 + 200 */
+ }; /* total=348 */
+
+-/* Acceptable values for hdr.dime.datatype */
+-
+-#define DT_NONE 0
+-#define DT_UNKNOWN 0
+-#define DT_BINARY 1
+-#define DT_UNSIGNED_CHAR 2
+-#define DT_SIGNED_SHORT 4
+-#define DT_SIGNED_INT 8
+-#define DT_FLOAT 16
+-#define DT_COMPLEX 32
+-#define DT_DOUBLE 64
+-#define DT_RGB 128
+-#define DT_ALL 255
+
+ typedef struct
+ {
diff --git a/sci-biology/fsl/files/fsl-5.0.11-no_xmlpp.patch b/sci-biology/fsl/files/fsl-5.0.11-no_xmlpp.patch
new file mode 100644
index 000000000..bccf0e238
--- /dev/null
+++ b/sci-biology/fsl/files/fsl-5.0.11-no_xmlpp.patch
@@ -0,0 +1,44 @@
+diff --git a/src/flameo/Makefile b/src/flameo/Makefile
+index 5389e2f..52785c3 100644
+--- a/src/flameo/Makefile
++++ b/src/flameo/Makefile
+@@ -2,7 +2,7 @@ include ${FSLCONFDIR}/default.mk
+
+ PROJNAME = flame
+
+-USRINCFLAGS = -I${INC_NEWMAT} -I${INC_PROB} -I${INC_ZLIB} -DCIFTILIB_USE_XMLPP -I${FSLEXTINC} -I${INC_XML2} -I${INC_XML++} -I${INC_XML++CONF} -I${INC_BOOST} -I${FSLDIR}/include/ciftiio
++USRINCFLAGS = -fPIC -I${INC_NEWMAT} -I${INC_PROB} -I${INC_ZLIB} -I${FSLEXTINC} ${CIFTICFLAGS} -I${INC_BOOST} -I${FSLDIR}/include/ciftiio
+ USRLDFLAGS = -L${LIB_NEWMAT} -L${LIB_PROB} -L${LIB_ZLIB}
+
+ UNAME := $(shell uname)
+@@ -10,7 +10,7 @@ ifeq (${UNAME},Darwin)
+ LIBS = -liconv
+ endif
+
+-LIBS += -lutils -lnewimage -lmiscmaths -lm -lnewmat -lfslio -lniftiio -lcifti -lxml++-2.6 -lxml2 -lboost_filesystem -lboost_system -lznz -lprob -lz
++LIBS += -lutils -lnewimage -lmiscmaths -lm -lnewmat -lfslio -lniftiio ${CIFTILIBS} -lboost_filesystem -lboost_system -lznz -lprob -lz
+
+ XFILES = flameo
+
+diff --git a/src/melodic/Makefile b/src/melodic/Makefile
+index 53b951a..803c39e 100644
+--- a/src/melodic/Makefile
++++ b/src/melodic/Makefile
+@@ -7,7 +7,7 @@ OPTFLAGS_alphaev6-dec-osf5.0-gcc2.95.2 = -O3 -mieee -mfp-trap-mode=sui
+
+ PROJNAME = melodic
+
+-USRINCFLAGS = -I${INC_NEWMAT} -I${INC_PROB} -I${INC_GD} -I${INC_GDC} -I${INC_PNG} -I${INC_ZLIB} -DCIFTILIB_USE_XMLPP -I${FSLEXTINC} -I${INC_XML2} -I${INC_XML++} -I${INC_XML++CONF} -I${INC_BOOST} -I${FSLDIR}/include/ciftiio
++USRINCFLAGS = -fPIC -I${INC_NEWMAT} -I${INC_PROB} -I${INC_GD} -I${INC_GDC} -I${INC_PNG} -I${INC_ZLIB} -I${FSLEXTINC} ${CIFTICFLAGS} -I${INC_BOOST} -I${FSLDIR}/include/ciftiio
+ USRLDFLAGS = -L${LIB_NEWMAT} -L${LIB_PROB} -L${LIB_GD} -L${LIB_GDC} -L${LIB_PNG} -L${LIB_ZLIB}
+
+ UNAME := $(shell uname)
+@@ -15,7 +15,7 @@ ifeq (${UNAME},Darwin)
+ LIBS = -liconv
+ endif
+
+-LIBS += -lutils -lnewimage -lmiscplot -lmiscpic -lmiscmaths -lfslio -lniftiio -lcifti -lxml++-2.6 -lxml2 -lboost_filesystem -lboost_system -lznz -lnewmat -lprob -lm -lgdc -lgd -lpng -lz
++LIBS += -lutils -lnewimage -lmiscplot -lmiscpic -lmiscmaths -lfslio -lniftiio ${CIFTILIBS} -lboost_filesystem -lboost_system -lznz -lnewmat -lprob -lm -lgdc -lgd -lpng -lz
+
+ TEST_OBJS = test.o
+
diff --git a/sci-biology/fsl/files/fsl-5.0.11-qstring_compat.patch b/sci-biology/fsl/files/fsl-5.0.11-qstring_compat.patch
new file mode 100644
index 000000000..78aa020c6
--- /dev/null
+++ b/sci-biology/fsl/files/fsl-5.0.11-qstring_compat.patch
@@ -0,0 +1,63 @@
+From bbd60f634cdcdfbbb3eb8f3b6d00f366d9f34bf9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Fran=C3=A7ois=20Bissey?= <frp.bissey@gmail.com>
+Date: Thu, 18 Oct 2018 11:21:05 +1300
+Subject: [PATCH] Basic compatibility between for AString built with either
+ glib ustring or QString
+
+---
+ src/flameo/gsa.cc | 4 ++--
+ src/melodic/meldata.cc | 2 +-
+ src/melodic/meldata.h | 2 +-
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/flameo/gsa.cc b/src/flameo/gsa.cc
+index 6a477f9..0860d46 100644
+--- a/src/flameo/gsa.cc
++++ b/src/flameo/gsa.cc
+@@ -74,7 +74,7 @@ namespace GSA {
+ sourceType=mode;
+ if ( sourceType.compare("CIFTI") == 0 ) {
+ cifti::CiftiFile inputCifti;
+- inputCifti.openFile(fslbasename(filename)+".nii");
++ inputCifti.openFile((fslbasename(filename)+".nii").c_str());
+ ciftiExemplar=inputCifti.getCiftiXML();
+ cerr << "ndim " << ciftiExemplar.getNumberOfDimensions() << endl;
+ cerr << "type1 " << ciftiExemplar.getMappingType(0) << endl;
+@@ -194,7 +194,7 @@ namespace GSA {
+ scalarsMap.setLength(data.Nrows());
+ ciftiExemplar.setMap(0, scalarsMap);
+ CiftiFile outputFile;
+- outputFile.setWritingFile(fslbasename(filename)+extension+".nii");//sets up on-disk writing with default writing version
++ outputFile.setWritingFile((fslbasename(filename)+extension+".nii").c_str());//sets up on-disk writing with default writing version
+ outputFile.setCiftiXML(ciftiExemplar,false);
+ vector<float> scratchRow(data.Nrows());//read/write a row at a time
+ for (int64_t row=0;row<data.Ncols();row++) {
+diff --git a/src/melodic/meldata.cc b/src/melodic/meldata.cc
+index f310dc7..5e9bc18 100644
+--- a/src/melodic/meldata.cc
++++ b/src/melodic/meldata.cc
+@@ -118,7 +118,7 @@ namespace Melodic{
+ tmpData = RawData.matrix(Mask);
+ memmsg(" after reshape ");
+ } else { //Read in Cifti
+- inputCifti.openFile(fname+".nii");
++ inputCifti.openFile((fname+".nii").c_str());
+ const vector<int64_t>& dims = inputCifti.getDimensions();
+ tmpData.ReSize(dims[0],dims[1]); //swapped compared to cifti
+ vector<float> scratchRow(dims[0]);//read/write a row at a time
+diff --git a/src/melodic/meldata.h b/src/melodic/meldata.h
+index 1e1adfc..d898152 100644
+--- a/src/melodic/meldata.h
++++ b/src/melodic/meldata.h
+@@ -109,7 +109,7 @@ namespace Melodic{
+ message(" " << logger.appendDir(fname) << endl);
+ } else { //Process CIFTI save ICs as float
+ cifti::CiftiFile outputFile;
+- outputFile.setWritingFile(logger.appendDir(fname)+".nii");//sets up on-disk writing with default writing version
++ outputFile.setWritingFile((logger.appendDir(fname)+".nii").c_str());//sets up on-disk writing with default writing version
+ cifti::CiftiXML xml(inputCifti.getCiftiXML());
+ cifti::CiftiScalarsMap scalarsMap;
+ std::vector<char> foo = xml.writeXMLToVector();
+--
+2.18.1
+
diff --git a/sci-biology/fsl/files/fsl-5.0.11-setup.patch b/sci-biology/fsl/files/fsl-5.0.11-setup.patch
new file mode 100644
index 000000000..cf9cb785d
--- /dev/null
+++ b/sci-biology/fsl/files/fsl-5.0.11-setup.patch
@@ -0,0 +1,158 @@
+diff --git a/build b/build
+index 6827443..19b2002 100755
+--- a/build
++++ b/build
+@@ -3,7 +3,7 @@
+ if [ $# -ge 1 ] ; then
+ PROJECTS="$@";
+ else
+- MASTERPROJECTS="CiftiLib-master utils znzlib NewNifti niftiio fslio giftiio miscmaths newimage libhfunc libvis first_lib \
++ MASTERPROJECTS="utils znzlib NewNifti niftiio fslio giftiio miscmaths newimage libhfunc libvis first_lib \
+ meshclass fslvtkio misc_tcl basisfield warpfns bint shapeModel MVdisc fslvtkconv fslsurface libmeshutils newmesh \
+ DiscreteOpt FastPDlib MSMRegLib \
+ misc_c avwutils basil bet2 cluster dpm copain tissue fast4 feat5 film filmbabe flirt fabber baycest \
+@@ -25,8 +25,8 @@ flameo oxford_asl relax qboot topup ptx2 lesions eddy dwssfp verbena MSM bianca
+ done
+ fi
+
+-echo "Building projects - see build.log file for progress..."
+-./config/common/buildproj $PROJECTS > ./build.log 2>&1
++echo "Building projects"
++./config/common/buildproj $PROJECTS
+ finalStatus=$?
+ if [ $finalStatus -eq 0 ]; then
+ echo "Build completed successfully.";
+diff --git a/config/common/buildproj b/config/common/buildproj
+index 3450bda..ec3edc1 100755
+--- a/config/common/buildproj
++++ b/config/common/buildproj
+@@ -11,10 +11,10 @@ if [ X$1 = X-strict ] ; then
+ fi
+ PROJECTS="$@" ; export PROJECTS ;
+
+-FSLDIR=`pwd`
++#FSLDIR=`pwd`
+ FSLDEVDIR=${FSLDIR}
+ FSLCONFDIR=${FSLDIR}/config
+-FSLMACHTYPE=`${FSLDIR}/etc/fslconf/fslmachtype.sh`
++#FSLMACHTYPE=`${FSLDIR}/etc/fslconf/fslmachtype.sh`
+ export FSLDIR FSLDEVDIR FSLCONFDIR FSLMACHTYPE
+
+ buildmessages="" ; export buildmessages ;
+@@ -66,7 +66,7 @@ for projname in $PROJECTS; do
+ if [ -x ./fslconfig ] ; then
+ . ./fslconfig ;
+ fi
+- if ${MAKE} -k ${MAKEOPTIONS} ; then
++ if ${MAKE} ${MAKEOPTIONS} ${MAKEOPTS} ; then
+ if ${MAKE} ${MAKEOPTIONS} install ; then
+ installok=true;
+ # Clean up after ourselves
+@@ -81,6 +81,7 @@ for projname in $PROJECTS; do
+ if [ $installok = false ] ; then
+ echo " "
+ echo "ERROR::Could not install $projname successfully" ;
++ exit 1
+ fi
+ else
+ echo " "
+@@ -89,6 +90,7 @@ for projname in $PROJECTS; do
+ echo " "
+ echo " "
+ errorprojs="$errorprojs $projname" ; export errorprojs ;
++ exit 1
+ fi
+ fi
+ done
+diff --git a/config/common/vars.mk b/config/common/vars.mk
+index 53754be..ff7a117 100755
+--- a/config/common/vars.mk
++++ b/config/common/vars.mk
+@@ -24,15 +24,15 @@ USRINCFLAGS =
+ USRCFLAGS =
+ USRCXXFLAGS =
+
+-LDFLAGS = ${ARCHLDFLAGS} ${USRLDFLAGS} -L. -L${DEVLIBDIR} -L${LIBDIR}
++LDFLAGS = ${ARCHLDFLAGS} ${USRLDFLAGS} -L. -L${DEVLIBDIR} -L${LIBDIR} ${USERLDFLAGS}
+
+-AccumulatedIncFlags = -I${INC_BOOST} ${USRINCFLAGS} -I. -I${DEVINCDIR} -I${INCDIR}
++AccumulatedIncFlags = ${USRINCFLAGS} -I. -I${DEVINCDIR} -I${INCDIR} ${CPPFLAGS}
+
+ CFLAGS = ${ANSI_FLAGS} ${ANSI_CFLAGS} ${DBGFLAGS} ${USEDCSTATICFLAGS} ${USRCFLAGS} ${ARCHFLAGS} ${OPTFLAGS} \
+- ${AccumulatedIncFlags}
++ ${AccumulatedIncFlags} ${USERCFLAGS}
+
+-CXXFLAGS = ${ANSI_FLAGS} ${ANSI_CXXFLAGS} ${DBGFLAGS} ${USEDCXXSTATICFLAGS} ${USRCXXFLAGS} ${ARCHFLAGS} ${OPTFLAGS} \
+- ${AccumulatedIncFlags}
++CXXFLAGS = ${ANSI_CXXFLAGS} ${DBGFLAGS} ${USEDCXXSTATICFLAGS} ${USRCXXFLAGS} ${ARCHFLAGS} ${OPTFLAGS} \
++ ${AccumulatedIncFlags} ${USERCXXFLAGS}
+
+ HFILES = *.h
+ AFILES = *.a
+diff --git a/config/generic/systemvars.mk b/config/generic/systemvars.mk
+index e40e3d6..ddb5bfe 100755
+--- a/config/generic/systemvars.mk
++++ b/config/generic/systemvars.mk
+@@ -4,20 +4,20 @@ SHELL = /bin/sh
+
+ # System dependent commands (NB: the first two are the most platform dependent)
+
+-INSTALL = ginstall -p
+-RANLIB = ranlib
++INSTALL = install -p
++RANLIB = @@GENTOO_RANLIB@@
+
+ RM = /bin/rm
+ CP = /bin/cp
+ MV = /bin/mv
+ CHMOD = /bin/chmod
+ MKDIR = /bin/mkdir
+-TCLSH = ${FSLDIR}/bin/fsltclsh
++TCLSH = tclsh
+
+ # Compiler dependent variables
+
+-CC = gcc
+-CXX = c++
++CC = @@GENTOO_CC@@
++CXX = @@GENTOO_CXX@@
+ CSTATICFLAGS = -static
+ CXXSTATICFLAGS = -static
+
+@@ -25,7 +25,7 @@ ARCHFLAGS =
+
+ DEPENDFLAGS = -MM
+
+-OPTFLAGS = -O3 -fexpensive-optimizations ${ARCHFLAGS}
++OPTFLAGS =
+ MACHDBGFLAGS =
+ GNU_ANSI_FLAGS = -Wall -ansi -pedantic
+ SGI_ANSI_FLAGS = -ansi -fullwarn
+diff --git a/extras/build b/extras/build
+index 6133a1b..caeae2d 100755
+--- a/extras/build
++++ b/extras/build
+@@ -104,8 +104,8 @@ PROJECTS="${PROJECTS} libpng"
+ if [ ${BUILDICONV} -eq 1 ]; then
+ PROJECTS="${PROJECTS} libiconv"
+ fi
+-PROJECTS="${PROJECTS} libgd libgdc libprob libcprob newmat cprob newran fftw"
+-PROJECTS="${PROJECTS} boost libxml2-2.9.2 libxml++-2.34.0 libsqlite libnlopt ../include/armawrap/dummy_newmat"
++PROJECTS="libgdc libprob libcprob newmat cprob newran"
++PROJECTS="${PROJECTS} ../include/armawrap/dummy_newmat"
+ for projname in $PROJECTS; do
+ if [ -d $FSLESRCDIR/$projname ] ; then
+ buildIt $FSLESRCDIR $projname 1
+diff --git a/src/mist-clean/Makefile b/src/mist-clean/Makefile
+index b3a32fc..e949ba1 100755
+--- a/src/mist-clean/Makefile
++++ b/src/mist-clean/Makefile
+@@ -52,7 +52,7 @@ installpython:
+ cp -r python/* ${DESTDIR}/python/mist
+
+ clean:
+- rm ${OBJS} mist/mist.o mist/mist
++ rm -f ${OBJS} mist/mist.o mist/mist || echo "CLEAN could not locate some files scheduled for deletion."
+
+ .PHONY: all clean installdata
+
diff --git a/sci-biology/fsl/fsl-5.0.11.ebuild b/sci-biology/fsl/fsl-5.0.11.ebuild
new file mode 100644
index 000000000..d3985072d
--- /dev/null
+++ b/sci-biology/fsl/fsl-5.0.11.ebuild
@@ -0,0 +1,157 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit flag-o-matic toolchain-funcs prefix
+
+DESCRIPTION="Analysis of functional, structural, and diffusion MRI brain imaging data"
+HOMEPAGE="http://www.fmrib.ox.ac.uk/fsl"
+SRC_URI="https://fsl.fmrib.ox.ac.uk/fsldownloads/${P}-sources.tar.gz -> ${P}.tar.gz"
+
+LICENSE="FSL BSD-2 newmat"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+COMMON_DEPEND="
+ dev-libs/boost
+ media-gfx/graphviz
+ media-libs/gd
+ media-libs/glu
+ media-libs/libpng:0=
+ sci-libs/ciftilib
+ sci-libs/nlopt
+ sys-libs/zlib
+ "
+DEPEND="${COMMON_DEPEND}"
+RDEPEND="${COMMON_DEPEND}
+ dev-lang/tcl:0=
+ dev-lang/tk:0=
+ "
+
+S=${WORKDIR}/${PN}
+UPSTREAM_FSLDIR="/usr/share/fsl"
+
+PATCHES=(
+ "${FILESDIR}/${PN}"-5.0.11-setup.patch
+ "${FILESDIR}/${PN}"-5.0.11-no_xmlpp.patch
+ "${FILESDIR}/${PN}"-5.0.11-niftiio_var_fix.patch
+ "${FILESDIR}/${PN}"-5.0.11-ifstream_use.patch
+ "${FILESDIR}/${PN}"-5.0.11-fslsurface_parallel_make.patch
+ "${FILESDIR}/${PN}"-5.0.11-qstring_compat.patch
+ "${FILESDIR}/${PN}"-5.0.9-headers.patch
+ "${FILESDIR}/${PN}"-5.0.9-fsldir_redux.patch
+)
+
+src_prepare(){
+ default
+
+ sed -i \
+ -e "s:@@GENTOO_RANLIB@@:$(tc-getRANLIB):" \
+ -e "s:@@GENTOO_CC@@:$(tc-getCC):" \
+ -e "s:@@GENTOO_CXX@@:$(tc-getCXX):" \
+ config/generic/systemvars.mk || die
+
+ eprefixify $(grep -rl GENTOO_PORTAGE_EPREFIX src/*) \
+ etc/js/label-div.html
+
+ makefilelist=$(find src/ -name Makefile)
+
+ sed -i \
+ -e "s:-I\${INC_BOOST}::" \
+ -e "s:-I\${INC_ZLIB}::" \
+ -e "s:-I\${INC_GD}::" \
+ -e "s:-I\${INC_PNG}::" \
+ -e "s:-L\${LIB_GD}::" \
+ -e "s:-L\${LIB_PNG}::" \
+ -e "s:-L\${LIB_ZLIB}::" \
+ ${makefilelist} || die
+
+ sed -e "s:\${FSLDIR}/bin/::g" \
+ -e "s:\$FSLDIR/bin/::g" \
+ -i $(grep -rl "\${FSLDIR}/bin" src/*) \
+ $(grep -rl "\${FSLDIR}/bin" etc/matlab/*) || die
+
+ sed -e "s:\$FSLDIR/data:${EPREFIX}/usr/share/fsl/data:g" \
+ -e "s:\${FSLDIR}/data:${EPREFIX}/usr/share/fsl/data:g" \
+ -i $(grep -rl "\$FSLDIR/data" src/*) \
+ $(grep -rl "\${FSLDIR}/data" src/*) || die
+
+ sed -e "s:\$FSLDIR/doc:${EPREFIX}/usr/share/fsl/doc:g" \
+ -e "s:\${FSLDIR}/doc:${EPREFIX}/usr/share/fsl/doc:g" \
+ -i $(grep -rl "\$FSLDIR/doc" src/*) \
+ $(grep -rl "\${FSLDIR}/doc" src/*) || die
+
+ sed -e "s:/usr/share/fsl/doc:${EPREFIX}/usr/share/fsl/doc:g" \
+ -i $(grep -rl "/usr/share/fsl/doc" src/*) || die
+
+ sed -e "s:\$FSLDIR/etc:${EPREFIX}/etc:g" \
+ -e "s:\${FSLDIR}/etc:${EPREFIX}/etc:g" \
+ -i $(grep -rlI "\$FSLDIR/etc" *) \
+ -i $(grep -rlI "\${FSLDIR}/etc" *) || die
+
+ # script wanting to have access to flsversion at buildtime
+ sed -e "s:/etc/fslversion:${S}/etc/fslversion:g" \
+ -i ${makefilelist} || die
+}
+
+src_compile() {
+ export FSLDIR=${WORKDIR}/${PN}
+ export FSLCONDIR=${WORKDIR}/${PN}/config
+ export FSLMACHTYPE=generic
+
+ export USERLDFLAGS="${LDFLAGS}"
+ export USERCFLAGS="${CFLAGS}"
+ export USERCXXFLAGS="${CXXFLAGS}"
+
+ export CIFTICFLAGS="$($(tc-getPKG_CONFIG) --cflags CiftiLib)"
+ export CIFTILIBS="$($(tc-getPKG_CONFIG) --libs-only-l CiftiLib)"
+
+ ./build || die
+}
+
+src_install() {
+ sed -i "s:\${FSLDIR}/tcl:/usr/libexec/fsl:g" \
+ $(grep -lI "\${FSLDIR}/tcl" bin/*) \
+ $(grep -l "\${FSLDIR}/tcl" tcl/*) || die
+ sed -i "s:\$FSLDIR/tcl:/usr/libexec/fsl:g" \
+ $(grep -l "\$FSLDIR/tcl" tcl/*) || die
+
+ dobin bin/*
+
+ insinto /usr/share/${PN}
+ doins -r data
+ dodoc -r doc/. refdoc
+
+ insinto /usr/libexec/fsl
+ doins -r tcl/*
+
+ insinto /etc/fslconf
+ doins etc/fslconf/fsl.sh
+
+ insinto /etc
+ doins etc/fslversion
+ doins -r etc/default_flobs.flobs etc/flirtsch etc/js etc/luts
+ #if use matlab; then
+ # doins etc/matlab
+ #fi
+
+ #the following is needed for FSL and depending programs to be able
+ #to find its files, since FSL uses an uncommon installation path:
+ #https://github.com/gentoo-science/sci/pull/612#r60289295
+ dosym ../../../etc ${UPSTREAM_FSLDIR}/etc
+ dosym ../doc/${PF} ${UPSTREAM_FSLDIR}/doc
+ dosym ../../bin ${UPSTREAM_FSLDIR}/bin
+
+ doenvd "$(prefixify_ro "${FILESDIR}"/99fsl)"
+ mv "${ED}"/usr/bin/{,fsl_}cluster || die
+}
+
+pkg_postinst() {
+ echo
+ einfo "Please run the following commands if you"
+ einfo "intend to use fsl from an existing shell:"
+ einfo "env-update && source /etc/profile"
+ echo
+}