diff --git a/pkgs/os-specific/linux/fusionio/srcs.nix b/pkgs/os-specific/linux/fusionio/srcs.nix new file mode 100644 index 00000000000..fb632a6e9fb --- /dev/null +++ b/pkgs/os-specific/linux/fusionio/srcs.nix @@ -0,0 +1,22 @@ +{ fetchurl }: +rec { + version = "3.2.10"; + + libvsl = fetchurl { + name = "fusionio-libvsl-${version}.deb"; + url = "https://drive.google.com/uc?export=download&id=0B7U0_ZBLoB2Wc01uNk1nVURMVFk"; + sha256 = "1i8ii9dlyskj2dvad7nfvlm1wz2s4gy5llbl29hfa13w6nhcl5wk"; + }; + + util = fetchurl { + name = "fusionio-util-${version}.deb"; + url = "https://drive.google.com/uc?export=download&id=0B7U0_ZBLoB2WbDVuQkwzWjZONGs"; + sha256 = "0aw64kk5cwchjhqh5n1lpqrrh5gn4qdalnmasd25z7sijy2flxgq"; + }; + + vsl = fetchurl { + name = "fusionio-iomemory-vsl-${version}.tar.gz"; + url = "https://drive.google.com/uc?export=download&id=0B7U0_ZBLoB2WbXFMbExEMUFCcWM"; + sha256 = "1zm20aa1jmmqcqkb4p9r4jsgbg371zr1abdz32rw02i9687fsgcc"; + }; +} diff --git a/pkgs/os-specific/linux/fusionio/util.nix b/pkgs/os-specific/linux/fusionio/util.nix new file mode 100644 index 00000000000..4605731fbbe --- /dev/null +++ b/pkgs/os-specific/linux/fusionio/util.nix @@ -0,0 +1,36 @@ +{ 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 + $BIN --help >/dev/null 2>&1 || [ "$?" -lt "128" ] || { echo "Failed testing $BIN"; exit 1; } + 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 ]; + }; +} diff --git a/pkgs/os-specific/linux/fusionio/vsl.nix b/pkgs/os-specific/linux/fusionio/vsl.nix index 7947446c1f2..f3909950cb9 100644 --- a/pkgs/os-specific/linux/fusionio/vsl.nix +++ b/pkgs/os-specific/linux/fusionio/vsl.nix @@ -1,13 +1,12 @@ { stdenv, fetchurl, kernel }: +let + srcs = import ./srcs.nix { inherit fetchurl; }; +in stdenv.mkDerivation rec { - name = "fusionio-iomemory-vsl-3.2.10"; + name = "fusionio-iomemory-vsl-${srcs.version}"; - src = fetchurl { - name = "${name}.tar.gz"; - url = "https://drive.google.com/uc?export=download&id=0B7U0_ZBLoB2WbXFMbExEMUFCcWM"; - sha256 = "1zm20aa1jmmqcqkb4p9r4jsgbg371zr1abdz32rw02i9687fsgcc"; - }; + src = srcs.vsl; prePatch = '' cd root/usr/src/iomemory-vsl-* diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f3e32256a15..95bd693a9f8 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9025,6 +9025,8 @@ let fuse = callPackage ../os-specific/linux/fuse { }; + fusionio-util = callPackage ../os-specific/linux/fusionio/util.nix { }; + fxload = callPackage ../os-specific/linux/fxload { }; gfxtablet = callPackage ../os-specific/linux/gfxtablet {};