From 3a0c6f1402f960af5c634ffde14b5b35a5b621d0 Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Fri, 6 Sep 2019 19:07:34 +0300 Subject: [PATCH] zeroc-ice: 3.6.3 -> 3.7.2 Rename from zeroc_ice. Take various improvements from Arch zero-ice package. Move old version to zeroc-ice-36. --- pkgs/development/libraries/zeroc-ice/3.6.nix | 57 +++++++++++++++++ .../libraries/zeroc-ice/default.nix | 63 ++++++++++++++----- pkgs/top-level/aliases.nix | 3 + pkgs/top-level/all-packages.nix | 8 ++- 4 files changed, 113 insertions(+), 18 deletions(-) create mode 100644 pkgs/development/libraries/zeroc-ice/3.6.nix 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 = '' - 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/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 4a95ad0a392b..ea560e899ba0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -21654,7 +21654,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; };