{ fetchurl, stdenv, zlib }:

stdenv.mkDerivation rec {
  name = "protobuf-2.5.0";

  src = fetchurl {
    url = "http://protobuf.googlecode.com/files/${name}.tar.bz2";
    sha256 = "0xxn9gxhvsgzz2sgmihzf6pf75clr05mqj6218camwrwajpcbgqk";
  };

  buildInputs = [ zlib ];

  doCheck = true;

  meta = {
    description = "Protocol Buffers - 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 = "mBSD";

    homepage = http://code.google.com/p/protobuf/;
  };
}

{ stdenv, fetchFromGitHub, autoconf, automake, libtool, zlib, gtest }:

stdenv.mkDerivation rec {
  name = "protobuf-${version}";
  version = "2.6.1";

  src = fetchFromGitHub {
    owner = "google";
    repo = "protobuf";
    rev = version;
    sha256 = "03df8zvx2sry3jz2x4pi3l32qyfqa7w8kj8jdbz30nzy0h7aa070";
  };

  postPatch = ''
    sed -i -e '/gtest/d' Makefile.am
    sed -i \
      -e 's!\$(top_\(build\|src\)dir)/gtest!${gtest}!g' \
      -e 's/\(libgtest[^.]*\.\)la/\1a/g' \
      src/Makefile.am
  '';

  buildInputs = [ zlib autoconf automake libtool gtest ];

  preConfigure = "autoreconf -vfi";

  doCheck = true;

  meta = {
    description = "Protocol Buffers - 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;

    homepage = "https://developers.google.com/protocol-buffers/";
  };
}

Clean up and update to version 2.6.1.
protobuf: Clean up and update to version 2.6.1.

The upstream URL has changed as well as the download URL. I'm using the
archive from GitHub directly now, because version 2.6.1 hasn't been
uploaded to Google Code yet.

Changed the meta.license attribute to BSD3, because I haven't actually
found anything regarding "mBSD" on the web, so I'm guessing it should
mean "modified BSD". After digging up a bit more, there seems to be
overall consensus on BSD3/"new BSD" license, because it's BSD3 with
copyright of Google Inc. on the license.

Signed-off-by: aszlig <ee1aa092358634f9c53f01b5a783726c9e21b35a@redmoonstudios.org>
