about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatej Cotman <cotman.matej@gmail.com>2015-09-13 14:48:16 +0200
committerMatej Cotman <cotman.matej@gmail.com>2015-09-22 21:45:36 +0200
commit346c744530cc6362a9093421466064eebee30965 (patch)
treef9f24a1ffd83ebe8533633953f7cc7ab24ba591a
parentf46fe7b909a4385c576e1ac612b5b8e076a3b338 (diff)
downloadnixlib-346c744530cc6362a9093421466064eebee30965.tar
nixlib-346c744530cc6362a9093421466064eebee30965.tar.gz
nixlib-346c744530cc6362a9093421466064eebee30965.tar.bz2
nixlib-346c744530cc6362a9093421466064eebee30965.tar.lz
nixlib-346c744530cc6362a9093421466064eebee30965.tar.xz
nixlib-346c744530cc6362a9093421466064eebee30965.tar.zst
nixlib-346c744530cc6362a9093421466064eebee30965.zip
xtreemfs: repackage and update
-rw-r--r--pkgs/tools/filesystems/xtreemfs/default.nix127
1 files changed, 56 insertions, 71 deletions
diff --git a/pkgs/tools/filesystems/xtreemfs/default.nix b/pkgs/tools/filesystems/xtreemfs/default.nix
index 81be62b5159a..8f090c297813 100644
--- a/pkgs/tools/filesystems/xtreemfs/default.nix
+++ b/pkgs/tools/filesystems/xtreemfs/default.nix
@@ -1,80 +1,65 @@
-x@{builderDefsPackage
-  , boost, fuse, openssl, cmake, attr, jdk, ant, which, python, file
-  , ...}:
-builderDefsPackage
-(a :  
-let 
-  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
-    [];
-
-  buildInputs = map (n: builtins.getAttr n x)
-    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
-  sourceInfo = rec {
-    baseName="XtreemFS";
-    version="1.4";
-    name="${baseName}-${version}";
-    url="http://xtreemfs.googlecode.com/files/${name}.tar.gz";
-    hash="1hzd6anplxdcl4cg6xwriqk9b34541r7ah1ab2xavv149a2ll25s";
-  };
-in
-rec {
-  src = a.fetchurl {
-    url = sourceInfo.url;
-    sha256 = sourceInfo.hash;
+{ stdenv, boost, fuse, openssl, cmake, attr, jdk, ant, which, file, python
+, fetchurl, lib, valgrind, makeWrapper, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  src = fetchFromGitHub {
+    # using unstable release because stable (v1.5.1) has broken repl java plugin
+    rev = "7ddcb081aa125b0cfb008dc98addd260b8353ab3";
+    owner = "xtreemfs";
+    repo = "xtreemfs";
+    sha256 = "1hjmd32pla27zf98ghzz6r5ml8ry86m9dsryv1z01kxv5l95b3m0";
   };
 
-  inherit (sourceInfo) name version;
-  inherit buildInputs;
+  name = "XtreemFS-${version}";
+  version = "1.5.1.81";
+
+  buildInputs = [ which attr makeWrapper python ];
+
+  preConfigure = ''
+    export JAVA_HOME=${jdk}
+    export ANT_HOME=${ant}
+
+    export BOOST_INCLUDEDIR=${boost.dev}/include
+    export BOOST_LIBRARYDIR=${boost.lib}/lib
+    export OPENSSL_ROOT_DIR=${openssl}
+
+    substituteInPlace cpp/cmake/FindValgrind.cmake \
+      --replace "/usr/local" "${valgrind}"
+
+    substituteInPlace cpp/CMakeLists.txt \
+      --replace '"/lib64" "/usr/lib64"' '"${attr}/lib" "${fuse}/lib"'
+
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${fuse}/include"
+    export NIX_CFLAGS_LINK="$NIX_CFLAGS_LINK -L${fuse}/lib"
+
+    export DESTDIR=$out
 
-  /* doConfigure should be removed if not needed */
-  phaseNames = ["setVars" "fixMakefile" "doMakeInstall" "fixInterpreterBin"
-    "fixInterpreterEtc"
-    "usrIsOut"];
+    substituteInPlace Makefile \
+      --replace "/usr/share/" "/share/" \
+      --replace 'BIN_DIR=$(DESTDIR)/usr/bin' "BIN_DIR=$out/bin"
 
-  setVars = a.noDepEntry ''
-    export JAVA_HOME="${jdk}"
-    export ANT_HOME="${ant}"
-    export CMAKE_HOME=${cmake}
+    substituteInPlace etc/init.d/generate_initd_scripts.sh \
+      --replace "/bin/bash" "${stdenv.shell}"
+
+    # do not put cmake into buildInputs
+    export PATH="$PATH:${cmake}/bin"
+  '';
+
+  preBuild = ''
+    substituteInPlace configure \
+    --replace "/usr/bin/file" "${file}/bin/file"
+  '';
+
+  doCheck = false;
+
+  postInstall = ''
+    rm -r $out/sbin
   '';
 
-  fixMakefile = a.fullDepEntry ''
-    sed -e 's@DESTDIR)/usr@DESTDIR)@g' -i Makefile
-
-    sed -e 's@/usr/bin/@@g' -i cpp/thirdparty/protobuf-*/configure
-    sed -e 's@/usr/bin/@@g' -i cpp/thirdparty/protobuf-*/gtest/configure
-    sed -e 's@/usr/bin/@@g' -i cpp/thirdparty/gtest-*/configure
-  '' ["doUnpack" "minInit"];
-
-  fixInterpreterBin = a.doPatchShebangs "$out/bin";
-  fixInterpreterEtc = a.doPatchShebangs "$out/etc/xos/xtreemfs";
-
-  usrIsOut = a.fullDepEntry ''
-    sed -e "s@/usr/@$out/@g" -i \
-      "$out"/{bin/xtfs_*,etc/xos/xtreemfs/*.*,etc/xos/xtreemfs/*/*,etc/init.d/*}
-    sed -e "s@JAVA_HOME=/usr@JAVA_HOME=${jdk}@g" -i \
-      "$out"/{bin/xtfs_*,etc/init.d/*}
-  '' ["minInit"];
-
-  makeFlags = [
-    ''DESTDIR="$out"''
-    ''SHELL="${a.stdenv.shell}"''
-  ];
-      
   meta = {
     description = "A distributed filesystem";
-    maintainers = with a.lib.maintainers;
-    [
-      raskin
-    ];
-    platforms = with a.lib.platforms;
-      linux;
-    license = a.lib.licenses.bsd3;
-    broken = true;
+    maintainers = with lib.maintainers; [ raskin matejc ];
+    platforms = lib.platforms.linux;
+    license = lib.licenses.bsd3;
   };
-  passthru = {
-    updateInfo = {
-      downloadPage = "http://xtreemfs.org/download_sources.php";
-    };
-  };
-}) x
-
+}