about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorNikolay Amiantov <ab@fmap.me>2019-09-06 19:41:46 +0200
committerGitHub <noreply@github.com>2019-09-06 19:41:46 +0200
commit194b732bf6ec9dd23b03afda1f7108e77042ca4b (patch)
tree211c1681e4bd7573782d314efd098f9a2662873c /pkgs
parentdaa9ea29875da3965bd13af91eaa2d4694744e9d (diff)
parent094a399fca5436a986f63702f454937c8d20f0bb (diff)
downloadnixlib-194b732bf6ec9dd23b03afda1f7108e77042ca4b.tar
nixlib-194b732bf6ec9dd23b03afda1f7108e77042ca4b.tar.gz
nixlib-194b732bf6ec9dd23b03afda1f7108e77042ca4b.tar.bz2
nixlib-194b732bf6ec9dd23b03afda1f7108e77042ca4b.tar.lz
nixlib-194b732bf6ec9dd23b03afda1f7108e77042ca4b.tar.xz
nixlib-194b732bf6ec9dd23b03afda1f7108e77042ca4b.tar.zst
nixlib-194b732bf6ec9dd23b03afda1f7108e77042ca4b.zip
Merge pull request #68215 from abbradar/zeroc-ice
ZeroC Ice - update, add Python module, fix Murmur RC
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/networking/mumble/default.nix19
-rw-r--r--pkgs/development/compilers/mcpp/default.nix5
-rw-r--r--pkgs/development/libraries/zeroc-ice/3.6.nix57
-rw-r--r--pkgs/development/libraries/zeroc-ice/default.nix61
-rw-r--r--pkgs/development/python-modules/zeroc-ice/default.nix20
-rw-r--r--pkgs/top-level/aliases.nix3
-rw-r--r--pkgs/top-level/all-packages.nix18
-rw-r--r--pkgs/top-level/python-packages.nix2
8 files changed, 146 insertions, 39 deletions
diff --git a/pkgs/applications/networking/mumble/default.nix b/pkgs/applications/networking/mumble/default.nix
index 9f641061bd86..6439991920d9 100644
--- a/pkgs/applications/networking/mumble/default.nix
+++ b/pkgs/applications/networking/mumble/default.nix
@@ -4,13 +4,13 @@
 , jackSupport ? false, libjack2 ? null
 , speechdSupport ? false, speechd ? null
 , pulseSupport ? false, libpulseaudio ? null
-, iceSupport ? false, zeroc_ice ? null
+, iceSupport ? false, zeroc-ice ? null, zeroc-ice-36 ? null
 }:
 
 assert jackSupport -> libjack2 != null;
 assert speechdSupport -> speechd != null;
 assert pulseSupport -> libpulseaudio != null;
-assert iceSupport -> zeroc_ice != null;
+assert iceSupport -> zeroc-ice != null && zeroc-ice-36 != null;
 
 with stdenv.lib;
 let
@@ -41,7 +41,6 @@ let
       "CONFIG+=no-bundled-speex"
     ] ++ optional (!speechdSupport) "CONFIG+=no-speechd"
       ++ optional jackSupport "CONFIG+=no-oss CONFIG+=no-alsa CONFIG+=jackaudio"
-      ++ optional (!iceSupport) "CONFIG+=no-ice"
       ++ (overrides.configureFlags or [ ]);
 
     preConfigure = ''
@@ -108,24 +107,24 @@ let
     '';
   } source;
 
-  server = generic {
+  server = source: let ice = if source.qtVersion == 4 then zeroc-ice-36 else zeroc-ice; in generic {
     type = "murmur";
 
     postPatch = optional iceSupport ''
-      grep -Rl '/usr/share/Ice' . | xargs sed -i 's,/usr/share/Ice/,${zeroc_ice}/,g'
+      grep -Rl '/usr/share/Ice' . | xargs sed -i 's,/usr/share/Ice/,${ice.dev}/share/ice/,g'
     '';
 
     configureFlags = [
       "CONFIG+=no-client"
-    ];
+    ] ++ optional (!iceSupport) "CONFIG+=no-ice";
 
-    buildInputs = [ libcap ] ++ optional iceSupport zeroc_ice;
+    buildInputs = [ libcap ] ++ optional iceSupport ice;
 
     installPhase = ''
       # bin stuff
       install -Dm755 release/murmurd $out/bin/murmurd
     '';
-  };
+  } source;
 
   stableSource = rec {
     version = "1.2.19";
@@ -170,7 +169,5 @@ in {
   mumble     = client stableSource;
   mumble_rc  = client rcSource;
   murmur     = server stableSource;
-  murmur_rc  = (server rcSource).overrideAttrs (old: {
-    meta = old.meta // { broken = iceSupport; };
-  });
+  murmur_rc  = server rcSource;
 }
diff --git a/pkgs/development/compilers/mcpp/default.nix b/pkgs/development/compilers/mcpp/default.nix
index 9ce7c9166bca..d71511479339 100644
--- a/pkgs/development/compilers/mcpp/default.nix
+++ b/pkgs/development/compilers/mcpp/default.nix
@@ -1,10 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "mcpp-2.7.2";
+  pname = "mcpp";
+  version = "2.7.2";
 
   src = fetchurl {
-    url = "mirror://sourceforge/mcpp/${name}.tar.gz";
+    url = "mirror://sourceforge/mcpp/mcpp-${version}.tar.gz";
     sha256 = "0r48rfghjm90pkdyr4khxg783g9v98rdx2n69xn8f6c5i0hl96rv";
   };
 
diff --git a/pkgs/development/libraries/zeroc-ice/3.6.nix b/pkgs/development/libraries/zeroc-ice/3.6.nix
new file mode 100644
index 000000000000..13797f927c1c
--- /dev/null
+++ b/pkgs/development/libraries/zeroc-ice/3.6.nix
@@ -0,0 +1,57 @@
+{ stdenv, lib, fetchFromGitHub, mcpp, bzip2, expat, openssl, db5
+, darwin, libiconv, Security
+, cpp11 ? false
+}:
+
+stdenv.mkDerivation rec {
+  pname = "zeroc-ice";
+  version = "3.6.3";
+
+  src = fetchFromGitHub {
+    owner = "zeroc-ice";
+    repo = "ice";
+    rev = "v${version}";
+    sha256 = "05xympbns32aalgcfcpxwfd7bvg343f16xpg6jv5s335ski3cjy2";
+  };
+
+  buildInputs = [ mcpp bzip2 expat openssl db5 ]
+    ++ lib.optionals stdenv.isDarwin [ darwin.cctools libiconv Security ];
+
+  postUnpack = ''
+    sourceRoot=$sourceRoot/cpp
+  '';
+
+  prePatch = lib.optional stdenv.isDarwin ''
+    substituteInPlace config/Make.rules.Darwin \
+        --replace xcrun ""
+  '';
+
+  preBuild = ''
+    makeFlagsArray+=(
+      "prefix=$out"
+      "OPTIMIZE=yes"
+      "USR_DIR_INSTALL=yes"
+      "CONFIGS=${if cpp11 then "cpp11-shared" else "shared"}"
+      "SKIP=slice2py" # provided by a separate package
+    )
+  '';
+
+  # cannot find -lIceXML (linking bin/transformdb)
+  enableParallelBuilding = false;
+
+  outputs = [ "out" "bin" "dev" ];
+
+  postInstall = ''
+    mkdir -p $bin $dev/share
+    mv $out/bin $bin
+    mv $out/share/Ice-* $dev/share/ice
+    rm -rf $out/share/slice
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://www.zeroc.com/ice.html;
+    description = "The internet communications engine";
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/libraries/zeroc-ice/default.nix b/pkgs/development/libraries/zeroc-ice/default.nix
index a2e60eacf989..9a69d3168c5d 100644
--- a/pkgs/development/libraries/zeroc-ice/default.nix
+++ b/pkgs/development/libraries/zeroc-ice/default.nix
@@ -1,41 +1,70 @@
-{ stdenv, fetchFromGitHub, mcpp, bzip2, expat, openssl, db5
+{ stdenv, lib, fetchFromGitHub, mcpp, bzip2, expat, openssl, lmdb
 , darwin, libiconv, Security
+, cpp11 ? false
 }:
 
-stdenv.mkDerivation rec {
+let
+  zeroc_mcpp = mcpp.overrideAttrs (self: rec {
+    pname = "zeroc-mcpp";
+    version = "2.7.2.14";
+
+    src = fetchFromGitHub {
+      owner = "zeroc-ice";
+      repo = "mcpp";
+      rev = "v${version}";
+      sha256 = "1psryc2ql1cp91xd3f8jz84mdaqvwzkdq2pr96nwn03ds4cd88wh";
+    };
+
+    installFlags = [ "PREFIX=$(out)" ];
+  });
+
+in stdenv.mkDerivation rec {
   pname = "zeroc-ice";
-  version = "3.6.3";
+  version = "3.7.2";
 
   src = fetchFromGitHub {
     owner = "zeroc-ice";
     repo = "ice";
     rev = "v${version}";
-    sha256 = "05xympbns32aalgcfcpxwfd7bvg343f16xpg6jv5s335ski3cjy2";
+    sha256 = "0m9lh79dfpcwcp2jhmj0wqdcsw3rl633x2hzfw9n2i34jjv64fvg";
   };
 
-  patches = [ ./makefile.patch ];
+  buildInputs = [ zeroc_mcpp bzip2 expat openssl lmdb ]
+    ++ lib.optionals stdenv.isDarwin [ darwin.cctools libiconv Security ];
 
-  buildInputs = [ mcpp bzip2 expat openssl db5 ]
-    ++ stdenv.lib.optionals stdenv.isDarwin [ darwin.cctools libiconv Security ];
-
-  postUnpack = ''
-    sourceRoot=$sourceRoot/cpp
+  prePatch = lib.optional stdenv.isDarwin ''
+    substituteInPlace Make.rules.Darwin \
+        --replace xcrun ""
   '';
 
-  prePatch = ''
-    substituteInPlace config/Make.rules.Darwin \
-        --replace xcrun ""
+  preBuild = ''
+    makeFlagsArray+=(
+      "prefix=$out"
+      "OPTIMIZE=yes"
+      "USR_DIR_INSTALL=yes"
+      "LANGUAGES=cpp"
+      "CONFIGS=${if cpp11 then "cpp11-shared" else "shared"}"
+      "SKIP=slice2py" # provided by a separate package
+    )
   '';
 
-  makeFlags = [ "prefix=$(out)" "OPTIMIZE=yes" ];
+  buildFlags = [ "srcs" ]; # no tests; they require network
+
+  enableParallelBuilding = true;
 
-  # cannot find -lIceXML (linking bin/transformdb)
-  #enableParallelBuilding = true;
+  outputs = [ "out" "bin" "dev" ];
+
+  postInstall = ''
+    mkdir -p $bin $dev/share
+    mv $out/bin $bin
+    mv $out/share/ice $dev/share
+  '';
 
   meta = with stdenv.lib; {
     homepage = http://www.zeroc.com/ice.html;
     description = "The internet communications engine";
     license = licenses.gpl2;
     platforms = platforms.unix;
+    maintainers = with maintainers; [ abbradar ];
   };
 }
diff --git a/pkgs/development/python-modules/zeroc-ice/default.nix b/pkgs/development/python-modules/zeroc-ice/default.nix
new file mode 100644
index 000000000000..978f8749d3b3
--- /dev/null
+++ b/pkgs/development/python-modules/zeroc-ice/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, buildPythonPackage, fetchPypi, openssl, bzip2 }:
+
+buildPythonPackage rec {
+  pname = "zeroc-ice";
+  version = "3.7.2";
+
+  src = fetchPypi {
+    inherit version pname;
+    sha256 = "1bs7h3k9nd1gls2azgp8gz9407cslxbi2x1gspab8p87a61pjim8";
+  };
+
+  buildInputs = [ openssl bzip2 ];
+
+  meta = with stdenv.lib; {
+    homepage = https://zeroc.com/;
+    license = licenses.gpl2;
+    description = "Comprehensive RPC framework with support for Python, C++, .NET, Java, JavaScript and more.";
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index ddd6c1d270b2..abdbdc116793 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -435,6 +435,9 @@ mapAliases ({
   # added 2019-08-01
   mumble_git = pkgs.mumble_rc;
   murmur_git = pkgs.murmur_rc;
+
+  # added 2019-09-06
+  zeroc_ice = pkgs.zeroc-ice;
 } // (with ocaml-ng; { # added 2016-09-14
   ocaml_4_00_1 = ocamlPackages_4_00_1.ocaml;
   ocaml_4_01_0 = ocamlPackages_4_01_0.ocaml;
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 7e02c33fd88e..add9353551a9 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -19526,15 +19526,7 @@ in
       speechdSupport = config.mumble.speechdSupport or false;
       pulseSupport = config.pulseaudio or false;
       iceSupport = config.murmur.iceSupport or true;
-    }) mumble mumble_rc murmur;
-
-  inherit (callPackages ../applications/networking/mumble {
-      avahi = avahi-compat;
-      jackSupport = config.mumble.jackSupport or false;
-      speechdSupport = config.mumble.speechdSupport or false;
-      pulseSupport = config.pulseaudio or false;
-      iceSupport = false;
-    }) murmur_rc;
+    }) mumble mumble_rc murmur murmur_rc;
 
   mumble_overlay = callPackage ../applications/networking/mumble/overlay.nix {
     mumble_i686 = if stdenv.hostPlatform.system == "x86_64-linux"
@@ -21607,7 +21599,13 @@ in
 
   zathura = callPackage ../applications/misc/zathura { };
 
-  zeroc_ice = callPackage ../development/libraries/zeroc-ice {
+  zeroc-ice = callPackage ../development/libraries/zeroc-ice {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  zeroc-ice-cpp11 = zeroc-ice.override { cpp11 = true; };
+
+  zeroc-ice-36 = callPackage ../development/libraries/zeroc-ice/3.6.nix {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 2891af957fb4..8aecd2f07e17 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -6194,6 +6194,8 @@ in {
     inherit python;
   })).python;
 
+  zeroc-ice = callPackage ../development/python-modules/zeroc-ice { };
+
   zm-py = callPackage ../development/python-modules/zm-py { };
 
   rfc7464 = callPackage ../development/python-modules/rfc7464 { };