diff options
-rw-r--r-- | pkgs/build-support/rust/default.nix | 3 | ||||
-rw-r--r-- | pkgs/development/tools/rq/default.nix | 76 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 4 |
3 files changed, 83 insertions, 0 deletions
diff --git a/pkgs/build-support/rust/default.nix b/pkgs/build-support/rust/default.nix index bbea045f6371..a69ef5c6b07f 100644 --- a/pkgs/build-support/rust/default.nix +++ b/pkgs/build-support/rust/default.nix @@ -6,6 +6,7 @@ , logLevel ? "" , buildInputs ? [] , cargoUpdateHook ? "" +, cargoDepsHook ? "" , ... } @ args: let @@ -28,6 +29,8 @@ in stdenv.mkDerivation (args // { configurePhase = args.configurePhase or "true"; postUnpack = '' + eval "$cargoDepsHook" + echo "Using cargo deps from $cargoDeps" cp -r "$cargoDeps" deps diff --git a/pkgs/development/tools/rq/default.nix b/pkgs/development/tools/rq/default.nix new file mode 100644 index 000000000000..b383812d321d --- /dev/null +++ b/pkgs/development/tools/rq/default.nix @@ -0,0 +1,76 @@ +{ stdenv, fetchFromGitHub, rustPlatform, llvmPackages, v8 }: + +with rustPlatform; + +buildRustPackage rec { + name = "rq-${version}"; + version = "0.9.2"; + + src = fetchFromGitHub { + owner = "dflemstr"; + repo = "rq"; + rev = "v${version}"; + sha256 = "051k7ls2mbjf584crayd654wm8m7gk3b7s73j97f9l8sbppdhpcq"; + }; + + serde_json = fetchFromGitHub { + owner = "serde-rs"; + repo = "json"; + rev = "0c05059e4533368020bd356bd708c38286810a7d"; + sha256 = "0924ngqbsif2vmmpgn8l2gg4bzms0z0i7yng0zx6sdv0x836lw43"; + }; + + v8_rs = fetchFromGitHub { + owner = "dflemstr"; + repo = "v8-rs"; + rev = "0772be5b2e84842a2d434963702bc2995aeda90b"; + sha256 = "0h2n431rp6nqpip7dy7xpckkvcr19aq7l1f3x3wlrj02xi4c8mad"; + }; + + cargoDepsHook = '' + # use non-git dependencies + (cd $sourceRoot && patch -p1 <<EOF) + diff -u a/Cargo.toml b/Cargo.toml + --- a/Cargo.toml 2016-12-03 21:29:31.615019030 +0100 + +++ b/Cargo.toml 2016-12-03 21:30:12.188170359 +0100 + @@ -40,15 +40,16 @@ + version = "*" + + [dependencies.serde_json] + -branch = "v0.9.0" + -git = "https://github.com/serde-rs/json.git" + +path = "${serde_json}/json" + +version = "*" + + [dependencies.toml] + features = ["serde"] + version = "*" + + [dependencies.v8] + -git = "https://github.com/dflemstr/v8-rs.git" + +path = "${v8_rs}" + +version = "*" + + [features] + shared = ["v8/shared"] + EOF + ''; + + depsSha256 = "1pci9iwf4y574q32b05gbc490iqw5i7shvqgb1gblchrihvlkddq"; + + buildInputs = [ llvmPackages.clang-unwrapped v8 ]; + + configurePhase = '' + export LIBCLANG_PATH="${llvmPackages.clang-unwrapped}/lib" + export V8_SOURCE="${v8}" + ''; + + meta = with stdenv.lib; { + description = "A tool for doing record analysis and transformation"; + homepage = https://github.com/dflemstr/rq ; + license = with licenses; [ asl20 ]; + maintainers = [ maintainers.aristid ]; + platforms = platforms.all; + broken = true; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7588e7ba7e6f..51430bbadf60 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3549,6 +3549,10 @@ in rng_tools = callPackage ../tools/security/rng-tools { }; + rq = callPackage ../development/tools/rq { + v8 = v8_static; + }; + rsnapshot = callPackage ../tools/backup/rsnapshot { # For the `logger' command, we can use either `utillinux' or # GNU Inetutils. The latter is more portable. |