diff options
author | Adrien Devresse <adrien.devresse@epfl.ch> | 2016-08-23 13:30:40 +0200 |
---|---|---|
committer | Frederik Rietdijk <fridh@fridh.nl> | 2016-09-01 12:03:10 +0200 |
commit | ae2800378fe856edd5eed2a04407234779e81006 (patch) | |
tree | 525ccf260c7b81bff43c4fb8238a6ceaf15386e6 /pkgs/applications/science/biology | |
parent | e0da6b16f680e727abeab24daead1031fcb85893 (diff) | |
download | nixpkgs-ae2800378fe856edd5eed2a04407234779e81006.tar nixpkgs-ae2800378fe856edd5eed2a04407234779e81006.tar.gz nixpkgs-ae2800378fe856edd5eed2a04407234779e81006.tar.bz2 nixpkgs-ae2800378fe856edd5eed2a04407234779e81006.tar.lz nixpkgs-ae2800378fe856edd5eed2a04407234779e81006.tar.xz nixpkgs-ae2800378fe856edd5eed2a04407234779e81006.tar.zst nixpkgs-ae2800378fe856edd5eed2a04407234779e81006.zip |
neuron: fix issue #17914 -> Add python bindings to neuron derivation and minor fixes
- Add support for python bindings - make neuron respect standard pythonpath prefix - force exec_prefix == prefix to respect standard nix file hierarchy - normalize indentation - propagate dependencies necessary for nrniv_makefile usage - Add support for darwin
Diffstat (limited to 'pkgs/applications/science/biology')
-rw-r--r-- | pkgs/applications/science/biology/neuron/default.nix | 54 | ||||
-rw-r--r-- | pkgs/applications/science/biology/neuron/neuron-carbon-disable.patch | 21 |
2 files changed, 64 insertions, 11 deletions
diff --git a/pkgs/applications/science/biology/neuron/default.nix b/pkgs/applications/science/biology/neuron/default.nix index 33f6d50d8ad..71abe614a0c 100644 --- a/pkgs/applications/science/biology/neuron/default.nix +++ b/pkgs/applications/science/biology/neuron/default.nix @@ -1,33 +1,65 @@ { stdenv , fetchurl -, pkgconfig -, ncurses +, pkgconfig +, automake +, autoconf +, libtool +, ncurses +, readline +, which +, python ? null , mpi ? null }: stdenv.mkDerivation rec { - name = "neuron-7.4"; - buildInputs = [ stdenv pkgconfig ncurses mpi ]; + name = "neuron-${version}"; + version = "7.4"; + + nativeBuildInputs = [ which pkgconfig automake autoconf libtool ]; + buildInputs = [ ncurses readline python mpi ]; src = fetchurl { - url = "http://www.neuron.yale.edu/ftp/neuron/versions/v7.4/nrn-7.4.tar.gz"; + url = "http://www.neuron.yale.edu/ftp/neuron/versions/v${version}/nrn-${version}.tar.gz"; sha256 = "1rid8cmv5mca0vqkgwahm0prkwkbdvchgw2bdwvx4adkn8bbl0ql"; }; + patches = (stdenv.lib.optional (stdenv.isDarwin) [ ./neuron-carbon-disable.patch ]); enableParallelBuilding = true; - configureFlags = [ "--without-x" - "${if mpi != null then "--with-mpi" else "--without-mpi"}" ]; + ## neuron install by default everything under prefix/${host_arch}/* + ## override this to support nix standard file hierarchy + ## without issues: install everything under prefix/ + preConfigure = '' + ./build.sh + export prefix="''${prefix} --exec-prefix=''${out}" + ''; + + configureFlags = with stdenv.lib; + [ "--without-x" "--with-readline=${readline}" ] + ++ optionals (python != null) [ "--with-nrnpython=${python.interpreter}" ] + ++ (if mpi != null then ["--with-mpi" "--with-paranrn"] + else ["--without-mpi"]); + + + postInstall = stdenv.lib.optionals (python != null) [ '' + ## standardise python neuron install dir if any + if [[ -d $out/lib/python ]]; then + mkdir -p ''${out}/${python.sitePackages} + mv ''${out}/lib/python ''${out}/${python.sitePackages} + fi + '']; + + propagatedBuildInputs = [ readline ncurses which libtool ]; meta = with stdenv.lib; { description = "Simulation environment for empirically-based simulations of neurons and networks of neurons"; longDescription = "NEURON is a simulation environment for developing and exercising models of - neurons and networks of neurons. It is particularly well-suited to problems where - cable properties of cells play an important role, possibly including extracellular - potential close to the membrane), and where cell membrane properties are complex, - involving many ion-specific channels, ion accumulation, and second messengers"; + neurons and networks of neurons. It is particularly well-suited to problems where + cable properties of cells play an important role, possibly including extracellular + potential close to the membrane), and where cell membrane properties are complex, + involving many ion-specific channels, ion accumulation, and second messengers"; license = licenses.bsd3; homepage = http://www.neuron.yale.edu/neuron; diff --git a/pkgs/applications/science/biology/neuron/neuron-carbon-disable.patch b/pkgs/applications/science/biology/neuron/neuron-carbon-disable.patch new file mode 100644 index 00000000000..923bffb1c33 --- /dev/null +++ b/pkgs/applications/science/biology/neuron/neuron-carbon-disable.patch @@ -0,0 +1,21 @@ +--- nrn-7.4/src/mac/Makefile.am 2015-11-12 21:42:45.000000000 +0100 ++++ nrn-7.4.new/src/mac/Makefile.am 2016-08-24 17:43:39.000000000 +0200 +@@ -15,18 +15,8 @@ + host_cpu = @host_cpu@ + + if MAC_DARWIN +-carbon = @enable_carbon@ + bin_SCRIPTS = $(launch_scripts) + install: install-am +-if UniversalMacBinary +- $(CC) -arch ppc -o aoutppc -Dcpu="\"$(host_cpu)\"" -I. $(srcdir)/launch.c $(srcdir)/mac2uxarg.c -framework Carbon +- $(CC) -arch i386 -o aouti386 -Dcpu="\"$(host_cpu)\"" -I. $(srcdir)/launch.c $(srcdir)/mac2uxarg.c -framework Carbon +- lipo aouti386 aoutppc -create -output a.out +-else +- gcc -g -arch i386 -Dncpu="\"$(host_cpu)\"" -I. $(srcdir)/launch.c $(srcdir)/mac2uxarg.c -framework Carbon +- +-endif +- carbon=$(carbon) sh $(srcdir)/launch_inst.sh "$(host_cpu)" "$(DESTDIR)$(prefix)" "$(srcdir)" + for i in $(S) ; do \ + sed "s/^CPU.*/CPU=\"$(host_cpu)\"/" < $(DESTDIR)$(bindir)/$$i > temp; \ + mv temp $(DESTDIR)$(bindir)/$$i; \ |