From 7d44145df3627178abdaa6be46891f9fb0142e2a Mon Sep 17 00:00:00 2001 From: Tyson Whitehead Date: Mon, 28 Nov 2016 10:35:56 -0500 Subject: [PATCH 1/8] namd: Initial NAMD packaging by Pawel --- builder.sh | 43 +++++++++++++++++++++++++++++++++++++++++++ namd.nix | 21 +++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100755 builder.sh create mode 100644 namd.nix diff --git a/builder.sh b/builder.sh new file mode 100755 index 0000000..857cefd --- /dev/null +++ b/builder.sh @@ -0,0 +1,43 @@ +source $stdenv/setup + +PATH=$perl/bin:$PATH + +tar xvfz $src +cd namd-* + +tar xvf charm-6.7.0.tar +cd charm-6.7.0 + +find . -type f |xargs sed -i 's/\/bin\/cp/cp/g' +find . -type f |xargs sed -i 's/\/bin\/rm/rm/g' +find . -type f |xargs sed -i 's/\/lib\/cpp/cpp/g' + +./build charm++ multicore-linux64 --no-build-shared --with-production +cd .. + +tar xvfz fftw-linux-x86_64.tar.gz +mv linux-x86_64 fftw +tar xvfz tcl8.5.9-linux-x86_64.tar.gz +mv tcl8.5.9-linux-x86_64 tcl +tar xvfz tcl8.5.9-linux-x86_64-threaded.tar.gz +mv tcl8.5.9-linux-x86_64-threaded tcl-threaded + +tcsh ./config Linux-x86_64-g++ --charm-arch multicore-linux64 +cd Linux-x86_64-g++ +make +rm -rf obj +rm -rf src +rm -rf inc +rm Make* +rm -rf plugins +cp -r ../plugins . +rm sb +cp -r ../psfgen ./sb +mkdir -p $out/multicore +cp -r * $out/multicore +cd .. +rm -rf Linux-x86_64-g++ + +ln -s $out/multicore/namd2 $out/namd2 + + diff --git a/namd.nix b/namd.nix new file mode 100644 index 0000000..2421830 --- /dev/null +++ b/namd.nix @@ -0,0 +1,21 @@ +with import {}; + +stdenv.mkDerivation { + name = "namd-2.11"; + builder = ./builder.sh; + src = fetchurl { + url = http://ppomorsk.sharcnet.ca/namd-2.11.tar.gz; + md5 = "8a81eb4c883edbf977d0af05351f6914"; + }; + +buildInputs = [ + bash + tcsh + ]; + + + + + + inherit perl; +} From b8a764d2e8c99c3678ea3f141d3be94b925a8e72 Mon Sep 17 00:00:00 2001 From: Tyson Whitehead Date: Mon, 28 Nov 2016 11:40:59 -0500 Subject: [PATCH 2/8] namd: Include perl in buildInputs to put it in the path --- builder.sh | 2 -- namd.nix | 7 +------ 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/builder.sh b/builder.sh index 857cefd..bdd843d 100755 --- a/builder.sh +++ b/builder.sh @@ -1,7 +1,5 @@ source $stdenv/setup -PATH=$perl/bin:$PATH - tar xvfz $src cd namd-* diff --git a/namd.nix b/namd.nix index 2421830..6ff7621 100644 --- a/namd.nix +++ b/namd.nix @@ -9,13 +9,8 @@ stdenv.mkDerivation { }; buildInputs = [ + perl bash tcsh ]; - - - - - - inherit perl; } From 0fd01a6fb2957b2b2d534ca4387de2b9c733496b Mon Sep 17 00:00:00 2001 From: Tyson Whitehead Date: Mon, 28 Nov 2016 11:42:08 -0500 Subject: [PATCH 3/8] namd: Pass -f to tcsh to not process any rc files (helps nix-shell) --- builder.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builder.sh b/builder.sh index bdd843d..eabde76 100755 --- a/builder.sh +++ b/builder.sh @@ -20,7 +20,7 @@ mv tcl8.5.9-linux-x86_64 tcl tar xvfz tcl8.5.9-linux-x86_64-threaded.tar.gz mv tcl8.5.9-linux-x86_64-threaded tcl-threaded -tcsh ./config Linux-x86_64-g++ --charm-arch multicore-linux64 +tcsh -f ./config Linux-x86_64-g++ --charm-arch multicore-linux64 cd Linux-x86_64-g++ make rm -rf obj From 88e7f8480356b8e5f9e853dfe1f68cccacccec55 Mon Sep 17 00:00:00 2001 From: Tyson Whitehead Date: Mon, 28 Nov 2016 11:50:37 -0500 Subject: [PATCH 4/8] namd: Move namd to standard lib/namd and symlink to bin --- builder.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/builder.sh b/builder.sh index eabde76..2f352f6 100755 --- a/builder.sh +++ b/builder.sh @@ -31,11 +31,12 @@ rm -rf plugins cp -r ../plugins . rm sb cp -r ../psfgen ./sb -mkdir -p $out/multicore -cp -r * $out/multicore +mkdir -p $out/lib/namd +cp -r * $out/lib/namd cd .. rm -rf Linux-x86_64-g++ -ln -s $out/multicore/namd2 $out/namd2 +mkdir -p $out/bin +ln -s $out/lib/namd2 $out/bin/namd2 From c1ff57dde62123345772b561012d4fa447acbea8 Mon Sep 17 00:00:00 2001 From: Tyson Whitehead Date: Mon, 28 Nov 2016 11:53:52 -0500 Subject: [PATCH 5/8] namd: No need to delete stuff in build tree as it is thrown away at end --- builder.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/builder.sh b/builder.sh index 2f352f6..987d585 100755 --- a/builder.sh +++ b/builder.sh @@ -34,7 +34,6 @@ cp -r ../psfgen ./sb mkdir -p $out/lib/namd cp -r * $out/lib/namd cd .. -rm -rf Linux-x86_64-g++ mkdir -p $out/bin ln -s $out/lib/namd2 $out/bin/namd2 From aebc5cb499470e9d890c3b98b40ee8bcd5642158 Mon Sep 17 00:00:00 2001 From: Tyson Whitehead Date: Mon, 28 Nov 2016 12:00:44 -0500 Subject: [PATCH 6/8] namd: Change spacing to reflect nesting level --- namd.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/namd.nix b/namd.nix index 6ff7621..f0041b2 100644 --- a/namd.nix +++ b/namd.nix @@ -8,9 +8,9 @@ stdenv.mkDerivation { md5 = "8a81eb4c883edbf977d0af05351f6914"; }; -buildInputs = [ - perl - bash - tcsh - ]; + buildInputs = [ + perl + bash + tcsh + ]; } From 58985f7fa48eedaabe3ba8a6567baab3c9cf8fed Mon Sep 17 00:00:00 2001 From: Tyson Whitehead Date: Mon, 28 Nov 2016 13:38:28 -0500 Subject: [PATCH 7/8] namd: Switch from custom builder to overloaded stages --- builder.sh | 41 ----------------------------------------- namd.nix | 46 ++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 42 insertions(+), 45 deletions(-) delete mode 100755 builder.sh diff --git a/builder.sh b/builder.sh deleted file mode 100755 index 987d585..0000000 --- a/builder.sh +++ /dev/null @@ -1,41 +0,0 @@ -source $stdenv/setup - -tar xvfz $src -cd namd-* - -tar xvf charm-6.7.0.tar -cd charm-6.7.0 - -find . -type f |xargs sed -i 's/\/bin\/cp/cp/g' -find . -type f |xargs sed -i 's/\/bin\/rm/rm/g' -find . -type f |xargs sed -i 's/\/lib\/cpp/cpp/g' - -./build charm++ multicore-linux64 --no-build-shared --with-production -cd .. - -tar xvfz fftw-linux-x86_64.tar.gz -mv linux-x86_64 fftw -tar xvfz tcl8.5.9-linux-x86_64.tar.gz -mv tcl8.5.9-linux-x86_64 tcl -tar xvfz tcl8.5.9-linux-x86_64-threaded.tar.gz -mv tcl8.5.9-linux-x86_64-threaded tcl-threaded - -tcsh -f ./config Linux-x86_64-g++ --charm-arch multicore-linux64 -cd Linux-x86_64-g++ -make -rm -rf obj -rm -rf src -rm -rf inc -rm Make* -rm -rf plugins -cp -r ../plugins . -rm sb -cp -r ../psfgen ./sb -mkdir -p $out/lib/namd -cp -r * $out/lib/namd -cd .. - -mkdir -p $out/bin -ln -s $out/lib/namd2 $out/bin/namd2 - - diff --git a/namd.nix b/namd.nix index f0041b2..a2bd225 100644 --- a/namd.nix +++ b/namd.nix @@ -1,13 +1,51 @@ with import {}; -stdenv.mkDerivation { - name = "namd-2.11"; - builder = ./builder.sh; - src = fetchurl { +stdenv.mkDerivation { + name = "namd-2.11"; + + src = fetchurl { url = http://ppomorsk.sharcnet.ca/namd-2.11.tar.gz; md5 = "8a81eb4c883edbf977d0af05351f6914"; }; + postUnpack = '' + cd namd-* + tar -xf charm-6.7.0.tar + tar -xzf fftw-linux-x86_64.tar.gz + mv linux-x86_64 fftw + tar -xzf tcl8.5.9-linux-x86_64.tar.gz + mv tcl8.5.9-linux-x86_64 tcl + tar -xzf tcl8.5.9-linux-x86_64-threaded.tar.gz + mv tcl8.5.9-linux-x86_64-threaded tcl-threaded + cd .. + ''; + patchPhase = '' + find charm-6.7.0 -type f | xargs sed -i \ + -e 's,/bin/cp,cp,g' \ + -e 's,/bin/rm,rm,g' \ + -e 's,/lib/cpp,cpp,g' + ''; + configurePhase = '' + tcsh -f ./config Linux-x86_64-g++ --charm-arch multicore-linux64 + ''; + buildPhase = '' + cd charm-6.7.0 + ./build charm++ multicore-linux64 --no-build-shared --with-production + cd .. + cd Linux-x86_64-g++ + make + cd .. + ''; + installPhase = '' + rm -fr Linux-x86_64-g++/{obj,src,inc,Make*,plugins,sb} + cp -r plugins Linux-x86_64-g++/ + cp -r psfgen Linux-x86_64-g++/sb + mkdir -p $out/lib/namd + cp -r Linux-x86_64-g++/* $out/lib/namd + mkdir -p $out/bin + ln -s $out/lib/namd/namd2 $out/bin/namd2 + ''; + buildInputs = [ perl bash From cbd2a4768329c32854a08ba69f31261f22bda771 Mon Sep 17 00:00:00 2001 From: Tyson Whitehead Date: Mon, 28 Nov 2016 13:54:44 -0500 Subject: [PATCH 8/8] namd: Generalize of over specific version numbers --- namd.nix | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/namd.nix b/namd.nix index a2bd225..67b65d9 100644 --- a/namd.nix +++ b/namd.nix @@ -1,26 +1,27 @@ with import {}; -stdenv.mkDerivation { - name = "namd-2.11"; +stdenv.mkDerivation rec { + version = "2.11"; + name = "namd-${version}"; src = fetchurl { - url = http://ppomorsk.sharcnet.ca/namd-2.11.tar.gz; + url = "http://ppomorsk.sharcnet.ca/namd-${version}.tar.gz"; md5 = "8a81eb4c883edbf977d0af05351f6914"; }; postUnpack = '' - cd namd-* - tar -xf charm-6.7.0.tar + cd namd-${version} + tar -xf charm-*.tar tar -xzf fftw-linux-x86_64.tar.gz mv linux-x86_64 fftw - tar -xzf tcl8.5.9-linux-x86_64.tar.gz - mv tcl8.5.9-linux-x86_64 tcl - tar -xzf tcl8.5.9-linux-x86_64-threaded.tar.gz - mv tcl8.5.9-linux-x86_64-threaded tcl-threaded + tar -xzf tcl*-linux-x86_64.tar.gz + mv tcl*-linux-x86_64 tcl + tar -xzf tcl*-linux-x86_64-threaded.tar.gz + mv tcl*-linux-x86_64-threaded tcl-threaded cd .. ''; patchPhase = '' - find charm-6.7.0 -type f | xargs sed -i \ + find charm-*/ -type f | xargs sed -i \ -e 's,/bin/cp,cp,g' \ -e 's,/bin/rm,rm,g' \ -e 's,/lib/cpp,cpp,g' @@ -29,7 +30,7 @@ stdenv.mkDerivation { tcsh -f ./config Linux-x86_64-g++ --charm-arch multicore-linux64 ''; buildPhase = '' - cd charm-6.7.0 + cd charm-*/ ./build charm++ multicore-linux64 --no-build-shared --with-production cd .. cd Linux-x86_64-g++