From 2350c543f61259469af0594fe7800c067b258484 Mon Sep 17 00:00:00 2001 From: Antoine Eiche Date: Wed, 9 Nov 2016 21:51:43 +0100 Subject: [PATCH] protobuf: refactoring Versions 3.x use a common derivation such as 2.x versions. --- .../libraries/protobuf/3.0.0-beta-2.nix | 43 ++--------------- pkgs/development/libraries/protobuf/3.0.nix | 43 ++--------------- .../libraries/protobuf/generic-v3.nix | 47 +++++++++++++++++++ 3 files changed, 53 insertions(+), 80 deletions(-) create mode 100644 pkgs/development/libraries/protobuf/generic-v3.nix diff --git a/pkgs/development/libraries/protobuf/3.0.0-beta-2.nix b/pkgs/development/libraries/protobuf/3.0.0-beta-2.nix index a06d4cef968..26b829669b8 100644 --- a/pkgs/development/libraries/protobuf/3.0.0-beta-2.nix +++ b/pkgs/development/libraries/protobuf/3.0.0-beta-2.nix @@ -1,43 +1,6 @@ -{ stdenv, fetchFromGitHub , autoreconfHook, zlib, gmock }: - -stdenv.mkDerivation rec { - name = "protobuf-${version}"; +{ callPackage, ... }: +callPackage ./generic-v3.nix { version = "3.0.0-beta-2"; - # make sure you test also -A pythonPackages.protobuf - src = fetchFromGitHub { - owner = "google"; - repo = "protobuf"; - rev = "v${version}"; - sha256 = "0cbr1glgma5vakabsjwcs41pcnn8yphhn037l0zd121zb9gdaqc1"; - }; - - postPatch = '' - rm -rf gmock - cp -r ${gmock.source} gmock - chmod -R a+w gmock - '' + stdenv.lib.optionalString stdenv.isDarwin '' - substituteInPlace src/google/protobuf/testing/googletest.cc \ - --replace 'tmpnam(b)' '"'$TMPDIR'/foo"' - ''; - - buildInputs = [ autoreconfHook zlib ]; - - enableParallelBuilding = true; - - doCheck = true; - - meta = { - description = "Google's data interchange format"; - longDescription = - ''Protocol Buffers are a way of encoding structured data in an efficient - yet extensible format. Google uses Protocol Buffers for almost all of - its internal RPC protocols and file formats. - ''; - license = stdenv.lib.licenses.bsd3; - platforms = stdenv.lib.platforms.unix; - homepage = https://developers.google.com/protocol-buffers/; - }; - - passthru.version = version; + sha256 = "0cbr1glgma5vakabsjwcs41pcnn8yphhn037l0zd121zb9gdaqc1"; } diff --git a/pkgs/development/libraries/protobuf/3.0.nix b/pkgs/development/libraries/protobuf/3.0.nix index 16a39daf790..f80acf462b8 100644 --- a/pkgs/development/libraries/protobuf/3.0.nix +++ b/pkgs/development/libraries/protobuf/3.0.nix @@ -1,43 +1,6 @@ -{ stdenv, fetchFromGitHub , autoreconfHook, zlib, gmock }: - -stdenv.mkDerivation rec { - name = "protobuf-${version}"; +{ callPackage, ... }: +callPackage ./generic-v3.nix { version = "3.0.0"; - # make sure you test also -A pythonPackages.protobuf - src = fetchFromGitHub { - owner = "google"; - repo = "protobuf"; - rev = "v${version}"; - sha256 = "05qkcl96lkdama848m7q3nzzzdckjc158iiyvgmln0zi232xx7g7"; - }; - - postPatch = '' - rm -rf gmock - cp -r ${gmock.source} gmock - chmod -R a+w gmock - '' + stdenv.lib.optionalString stdenv.isDarwin '' - substituteInPlace src/google/protobuf/testing/googletest.cc \ - --replace 'tmpnam(b)' '"'$TMPDIR'/foo"' - ''; - - buildInputs = [ autoreconfHook zlib ]; - - enableParallelBuilding = true; - - doCheck = true; - - meta = { - description = "Google's data interchange format"; - longDescription = - ''Protocol Buffers are a way of encoding structured data in an efficient - yet extensible format. Google uses Protocol Buffers for almost all of - its internal RPC protocols and file formats. - ''; - license = stdenv.lib.licenses.bsd3; - platforms = stdenv.lib.platforms.unix; - homepage = https://developers.google.com/protocol-buffers/; - }; - - passthru.version = version; + sha256 = "05qkcl96lkdama848m7q3nzzzdckjc158iiyvgmln0zi232xx7g7"; } diff --git a/pkgs/development/libraries/protobuf/generic-v3.nix b/pkgs/development/libraries/protobuf/generic-v3.nix new file mode 100644 index 00000000000..5a3738564d7 --- /dev/null +++ b/pkgs/development/libraries/protobuf/generic-v3.nix @@ -0,0 +1,47 @@ +{ stdenv +, fetchFromGitHub +, autoreconfHook, zlib, gmock +, version, sha256 +, ... +}: + +stdenv.mkDerivation rec { + name = "protobuf-${version}"; + + # make sure you test also -A pythonPackages.protobuf + src = fetchFromGitHub { + owner = "google"; + repo = "protobuf"; + rev = "v${version}"; + inherit sha256; + }; + + postPatch = '' + rm -rf gmock + cp -r ${gmock.source} gmock + chmod -R a+w gmock + '' + stdenv.lib.optionalString stdenv.isDarwin '' + substituteInPlace src/google/protobuf/testing/googletest.cc \ + --replace 'tmpnam(b)' '"'$TMPDIR'/foo"' + ''; + + buildInputs = [ autoreconfHook zlib ]; + + enableParallelBuilding = true; + + doCheck = true; + + meta = { + description = "Google's data interchange format"; + longDescription = + ''Protocol Buffers are a way of encoding structured data in an efficient + yet extensible format. Google uses Protocol Buffers for almost all of + its internal RPC protocols and file formats. + ''; + license = stdenv.lib.licenses.bsd3; + platforms = stdenv.lib.platforms.unix; + homepage = https://developers.google.com/protocol-buffers/; + }; + + passthru.version = version; +}