diff --git a/pkgs/applications/networking/mumble/default.nix b/pkgs/applications/networking/mumble/default.nix index 9f641061bd8..6439991920d 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 9ce7c9166bc..d7151147933 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 00000000000..13797f927c1 --- /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 a2e60eacf98..9a69d3168c5 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 = '' - substituteInPlace config/Make.rules.Darwin \ + prePatch = lib.optional stdenv.isDarwin '' + substituteInPlace Make.rules.Darwin \ --replace xcrun "" ''; - makeFlags = [ "prefix=$(out)" "OPTIMIZE=yes" ]; + 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 + ) + ''; - # cannot find -lIceXML (linking bin/transformdb) - #enableParallelBuilding = true; + buildFlags = [ "srcs" ]; # no tests; they require network + + 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 00000000000..978f8749d3b --- /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 ddd6c1d270b..abdbdc11679 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 7e02c33fd88..add9353551a 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 2891af957fb..8aecd2f07e1 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 { };