diff options
Diffstat (limited to 'pkgs/os-specific/linux/fusionio/util.nix')
-rw-r--r-- | pkgs/os-specific/linux/fusionio/util.nix | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/fusionio/util.nix b/pkgs/os-specific/linux/fusionio/util.nix new file mode 100644 index 000000000000..16f1ef73dba5 --- /dev/null +++ b/pkgs/os-specific/linux/fusionio/util.nix @@ -0,0 +1,45 @@ +{ stdenv, fetchurl, dpkg, glibc, gcc, libuuid }: + +let + srcs = import ./srcs.nix { inherit fetchurl; }; +in +stdenv.mkDerivation { + name = "fusionio-util-${srcs.version}"; + + nativeBuildInputs = [ dpkg ]; + + buildCommand = '' + dpkg-deb -R ${srcs.libvsl} $TMPDIR + dpkg-deb -R ${srcs.util} $TMPDIR + + rm $TMPDIR/usr/bin/fio-{bugreport,sanitize} + + mkdir -p $out + cp -r $TMPDIR/{etc,usr/{bin,lib,share}} $out + for BIN in $(find $out/bin -type f); do + echo Patching $BIN + patchelf --set-interpreter "${glibc}/lib/ld-linux-x86-64.so.2" --set-rpath "${glibc}/lib:${gcc.cc}/lib:${libuuid}/lib:$out/lib" $BIN + + # Test our binary to see if it was correctly patched + set +e + $BIN --help >/dev/null 2>&1 + ST="$?" + set -e + if [ "$ST" -ge "10" ]; then + echo "Failed testing $BIN" + exit 1; + fi + done + ''; + + dontStrip = true; + + meta = with stdenv.lib; { + homepage = http://fusionio.com; + description = "Fusionio command line utilities."; + license = licenses.unfree; + platforms = [ "x86_64-linux" ]; + broken = stdenv.system != "x86_64-linux"; + maintainers = with maintainers; [ wkennington ]; + }; +} |