Unverified Commit 4c6e02a6 authored by Weijia Wang's avatar Weijia Wang Committed by GitHub
Browse files

Merge pull request #253632 from bzizou/irods-4.3.0

irods: 4.2.11 -> 4.3.0
parents 07eab2ec ce2f5635
Loading
Loading
Loading
Loading
+6 −10
Original line number Diff line number Diff line
{ lib, stdenv, bzip2, zlib, autoconf, automake, cmake, help2man, texinfo, libtool, cppzmq, libarchive
, avro-cpp, boost, jansson, zeromq, openssl, pam, libiodbc, libkrb5, gcc, libcxx, which, catch2, nanodbc, fmt
, nlohmann_json, spdlog }:
, avro-cpp, boost, zeromq, openssl, pam, libiodbc, libkrb5, gcc, libcxx, which, catch2, nanodbc, fmt
, nlohmann_json, spdlog, curl }:

# Common attributes of irods packages

{
  nativeBuildInputs = [ autoconf automake cmake help2man texinfo which gcc ];
  buildInputs = [ bzip2 zlib libtool cppzmq libarchive avro-cpp jansson zeromq openssl pam libiodbc libkrb5 boost
                  libcxx catch2 nanodbc fmt nlohmann_json spdlog ];
  buildInputs = [ bzip2 zlib libtool cppzmq libarchive avro-cpp zeromq openssl pam libiodbc libkrb5 boost
                  libcxx catch2 nanodbc fmt nlohmann_json spdlog curl ];

  cmakeFlags = [
    "-DIRODS_EXTERNALS_FULLPATH_CLANG=${stdenv.cc}"
@@ -15,7 +15,6 @@
    "-DIRODS_EXTERNALS_FULLPATH_ARCHIVE=${libarchive.lib}"
    "-DIRODS_EXTERNALS_FULLPATH_AVRO=${avro-cpp}"
    "-DIRODS_EXTERNALS_FULLPATH_BOOST=${boost}"
    "-DIRODS_EXTERNALS_FULLPATH_JANSSON=${jansson}"
    "-DIRODS_EXTERNALS_FULLPATH_ZMQ=${zeromq}"
    "-DIRODS_EXTERNALS_FULLPATH_CPPZMQ=${cppzmq}"
    "-DIRODS_EXTERNALS_FULLPATH_CATCH2=${catch2}"
@@ -31,13 +30,10 @@

  postPatch = ''
    patchShebangs ./packaging ./scripts
    substituteInPlace CMakeLists.txt \
      --replace "DESTINATION usr/bin" "DESTINATION bin" \
      --replace "INCLUDE_DIRS usr/include/" "INCLUDE_DIRS include/" \
      --replace "DESTINATION usr/lib/" "DESTINATION lib/" \
      --replace "{IRODS_EXTERNALS_FULLPATH_JSON}/include" "{IRODS_EXTERNALS_FULLPATH_JSON}/include/nlohmann"
    export cmakeFlags="$cmakeFlags
      -DCMAKE_INSTALL_PREFIX=$out
      -DIRODS_HOME_DIRECTORY=$out
      -DCMAKE_INSTALL_SBINDIR=$out/sbin
    "
  '';

+13 −25
Original line number Diff line number Diff line
{ lib, stdenv, fetchFromGitHub, bzip2, zlib, autoconf, automake, cmake, help2man, texinfo, libtool, cppzmq
, libarchive, avro-cpp_llvm, boost, jansson, zeromq, openssl, pam, libiodbc, libkrb5, gcc, libcxx, which, catch2
, nanodbc_llvm, fmt, nlohmann_json, spdlog }:
, libarchive, avro-cpp_llvm, boost, zeromq, openssl, pam, libiodbc, libkrb5, gcc, libcxx, which, catch2
, nanodbc_llvm, fmt, nlohmann_json, spdlog, curl }:

let
  avro-cpp = avro-cpp_llvm;
@@ -9,43 +9,33 @@ in
let
  common = import ./common.nix {
    inherit lib stdenv bzip2 zlib autoconf automake cmake
      help2man texinfo libtool cppzmq libarchive jansson
      help2man texinfo libtool cppzmq libarchive
      zeromq openssl pam libiodbc libkrb5 gcc libcxx
      boost avro-cpp which catch2 nanodbc fmt nlohmann_json
      spdlog;
      spdlog curl;
  };
in
rec {

  # irods: libs and server package
  irods = stdenv.mkDerivation (common // rec {
    version = "4.2.11";
  irods = stdenv.mkDerivation (finalAttrs: common // {
    version = "4.3.0";
    pname = "irods";

    src = fetchFromGitHub {
      owner = "irods";
      repo = "irods";
      rev = version;
      sha256 = "0prcsiddk8n3h515jjapgfz1d6hjqywhrkcf6giqd7xc7b0slz44";
      rev = finalAttrs.version;
      sha256 = "sha256-rceDGFpfoFIByzDOtgNIo9JRoVd0syM21MjEKoZUQaE=";
      fetchSubmodules = true;
    };

    # Patches:
    # irods_root_path.patch : the root path is obtained by stripping 3 items of the path,
    #                         but we don't use /usr with nix, so remove only 2 items.
    patches = [ ./irods_root_path.patch ];

    # fix build with recent llvm versions
    env.NIX_CFLAGS_COMPILE = "-Wno-deprecated-register -Wno-deprecated-declarations";

    postPatch = common.postPatch + ''
      patchShebangs ./test
      substituteInPlace plugins/database/CMakeLists.txt --replace "COMMAND cpp" "COMMAND ${gcc.cc}/bin/cpp"
      substituteInPlace cmake/server.cmake --replace "DESTINATION usr/sbin" "DESTINATION sbin"
      substituteInPlace cmake/server.cmake --replace "IRODS_DOC_DIR usr/share" "IRODS_DOC_DIR share"
      substituteInPlace cmake/runtime_library.cmake --replace "DESTINATION usr/lib" "DESTINATION lib"
      substituteInPlace cmake/development_library.cmake --replace "DESTINATION usr/lib" "DESTINATION lib"
      substituteInPlace cmake/development_library.cmake --replace "DESTINATION usr/include" "DESTINATION include"
      for file in unit_tests/cmake/test_config/*.cmake
      do
        substituteInPlace $file --replace "CATCH2}/include" "CATCH2}/include/catch2"
@@ -56,7 +46,7 @@ rec {
        -DCMAKE_SHARED_LINKER_FLAGS=-Wl,-rpath,$out/lib
        "

      substituteInPlace cmake/server.cmake --replace SETUID ""
      substituteInPlace server/auth/CMakeLists.txt --replace SETUID ""
    '';

    meta = common.meta // {
@@ -66,19 +56,17 @@ rec {


  # icommands (CLI) package, depends on the irods package
  irods-icommands = stdenv.mkDerivation (common // rec {
    version = "4.2.11";
  irods-icommands = stdenv.mkDerivation (finalAttrs: common // {
    version = "4.3.0";
    pname = "irods-icommands";

    src = fetchFromGitHub {
      owner = "irods";
      repo = "irods_client_icommands";
      rev = version;
      sha256 = "0wgs585j2lp820py2pbizsk54xgz5id96fhxwwk9lqhbzxhfjhcg";
      rev = finalAttrs.version;
      sha256 = "sha256-90q1GPkoEUoiQXM6cA+DWwth7g8v93V471r9jm+l9aw=";
    };

    patches = [ ./zmqcpp-deprecated-send_recv.patch ];

    buildInputs = common.buildInputs ++ [ irods ];

    postPatch = common.postPatch + ''
+0 −49
Original line number Diff line number Diff line
diff -r -u irods-4.2.0.orig/scripts/irods/paths.py irods-4.2.0/scripts/irods/paths.py
--- irods-4.2.0.orig/scripts/irods/paths.py	2016-11-15 06:23:55.000000000 +0000
+++ irods-4.2.0/scripts/irods/paths.py	2016-12-21 15:17:07.437864606 +0000
@@ -10,7 +10,7 @@
     return os.path.join(root_directory(), 'var', 'lib', 'irods')
 
 def config_directory():
-    return os.path.join(root_directory(), 'etc', 'irods')
+    return os.path.join(os.path.abspath('/'), 'etc', 'irods')
 
 def plugins_directory():
     return os.path.join(root_directory(), 'usr', 'lib', 'irods', 'plugins')
@@ -37,7 +37,7 @@
 
 def version_path():
     return os.path.join(
-        irods_directory(),
+        home_directory(),
         'VERSION.json')
 
 def hosts_config_path():
@@ -64,7 +64,7 @@
 
 def log_directory():
     return os.path.join(
-        irods_directory(),
+        home_directory(),
         'log')
 
 def control_log_path():
@@ -110,8 +110,7 @@
 def server_bin_directory():
     return os.path.join(
         root_directory(),
-        'usr',
-        'sbin')
+        'bin')
 
 def server_executable():
     return os.path.join(
@@ -132,7 +131,7 @@
     return os.path.join(config_directory(), 'service_account.config')
 
 def genosauth_path():
-    return os.path.join(irods_directory(), 'clients', 'bin', 'genOSAuth')
+    return os.path.join(home_directory(), 'clients', 'bin', 'genOSAuth')
 
 def irods_user_and_group_entries():
     try:
+0 −21
Original line number Diff line number Diff line
diff -r -u source/src/irods-grid.cpp source.new/src/irods-grid.cpp
--- source/src/irods-grid.cpp	1970-01-01 01:00:01.000000000 +0100
+++ source.new/src/irods-grid.cpp	2020-05-05 16:34:35.566464346 +0200
@@ -412,7 +412,7 @@
             data_to_send.data(),
             data_to_send.size() );
         try {
-            if (!zmq_skt.send(req)) {
+            if (!zmq_skt.send( req, zmq::send_flags::dontwait )) {
                 std::cerr << "ZeroMQ encountered an error sending a message.\n";
                 return errno;
             }
@@ -426,7 +426,7 @@
         zmq::message_t rep;
         // wait for the server reponse
         try {
-            if (!zmq_skt.recv( &rep )) {
+            if (!zmq_skt.recv( rep, zmq::recv_flags::dontwait )) {
                 std::cerr << "ZeroMQ encountered an error receiving a message.\n";
                 return errno;
             }
+3 −3
Original line number Diff line number Diff line
@@ -9310,9 +9310,9 @@ with pkgs;
  idevicerestore = callPackage ../tools/misc/idevicerestore { };
  inherit (callPackages ../tools/filesystems/irods rec {
    stdenv = llvmPackages.libcxxStdenv;
    libcxx = llvmPackages.libcxx;
    boost = boost179.override { inherit stdenv; };
    stdenv = llvmPackages_13.libcxxStdenv;
    libcxx = llvmPackages_13.libcxx;
    boost = boost178.override { inherit stdenv; };
    fmt = fmt_8.override { inherit stdenv; };
    nanodbc_llvm = nanodbc.override { inherit stdenv; };
    avro-cpp_llvm = avro-cpp.override { inherit stdenv boost; };