@@ -1,21 +1,56 @@
1−{ stdenv, zookeeper, bash }:
1+{ stdenv
2+, fetchurl
3+, autoreconfHook
4+, jre
5+, openssl
6+, pkg-config
7+# We depend on ZooKeeper for the Jute compiler.
8+, zookeeper
9+}:
210
311stdenv.mkDerivation rec {
4− name = "zookeeper_mt-${stdenv.lib.getVersion zookeeper}";
12+ pname = "zookeeper_mt";
13+ version = stdenv.lib.getVersion zookeeper;
514
6− src = zookeeper.src;
15+ src = fetchurl {
16+ url = "mirror://apache/zookeeper/${zookeeper.pname}-${version}/apache-${zookeeper.pname}-${version}.tar.gz";
17+ sha512 = "16994067d460a1b6af6a71f3458c64ee32629e876a1ff6646d57be62f1a5adab57462af84074ecaded4186dd3fde035ee24cd9d578b8e5044073eb05f4ab9c3e";
18+ };
19+
20+ sourceRoot = "apache-${zookeeper.pname}-${version}/zookeeper-client/zookeeper-client-c";
21+
22+ nativeBuildInputs = [
23+ autoreconfHook
24+ jre
25+ ];
726
8− setSourceRoot = "export sourceRoot=${zookeeper.name}/src/c";
27+ buildInputs = [
28+ openssl
29+ pkg-config
30+ zookeeper
31+ ];
932
10− NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (!stdenv.isDarwin) "-Wno-error=format-overflow -Wno-error=stringop-truncation";
33+ # Generate the C marshallers/unmarshallers for the Jute-encoded
34+ # definitions.
35+ preConfigure = ''
36+ mkdir generated
37+ cd generated
38+ java -cp ${zookeeper}/lib/${zookeeper.pname}-jute-${version}.jar \
39+ org.apache.jute.compiler.generated.Rcc -l c \
40+ ../../../zookeeper-jute/src/main/resources/zookeeper.jute
41+ cd ..
42+ '';
1143
12− buildInputs = [ zookeeper bash ];
44+ configureFlags = [
45+ # We're not going to start test servers in the sandbox anyway.
46+ "--without-cppunit"
47+ ];
1348
1449 meta = with stdenv.lib; {
15− homepage = "http://zookeeper.apache.org";
50+ homepage = "https://zookeeper.apache.org";
1651 description = "Apache Zookeeper";
1752 license = licenses.asl20;
18− maintainers = [ maintainers.commandodev ];
53+ maintainers = with maintainers; [ commandodev ztzg ];
1954 platforms = platforms.unix;
2055 };
2156}