{irods,irods-icommands}: 4.3.3 -> 5.0.1

Emily c6435a9d 8831c775

+163 -297
+48
pkgs/by-name/ir/irods-icommands/package.nix
···
··· 1 + { 2 + lib, 3 + llvmPackages, 4 + fetchFromGitHub, 5 + cmake, 6 + ninja, 7 + help2man, 8 + irods, 9 + }: 10 + 11 + llvmPackages.stdenv.mkDerivation (finalAttrs: { 12 + pname = "irods-icommands"; 13 + inherit (irods) version; 14 + 15 + src = fetchFromGitHub { 16 + owner = "irods"; 17 + repo = "irods_client_icommands"; 18 + tag = finalAttrs.version; 19 + hash = "sha256-lo1eCI/CSzl7BJWdPo7KKVHfznkPN6GwsiQThUGuQdw="; 20 + }; 21 + 22 + nativeBuildInputs = [ 23 + cmake 24 + ninja 25 + help2man 26 + ]; 27 + 28 + buildInputs = [ irods ]; 29 + 30 + cmakeFlags = irods.commonCmakeFlags ++ [ 31 + (lib.cmakeFeature "ICOMMANDS_INSTALL_DIRECTORY" "${placeholder "out"}/bin") 32 + (lib.cmakeBool "ICOMMANDS_INSTALL_SYMLINKS" false) 33 + ]; 34 + 35 + meta = { 36 + inherit (irods.meta) 37 + homepage 38 + license 39 + maintainers 40 + platforms 41 + ; 42 + description = irods.meta.description + " CLI clients"; 43 + longDescription = irods.meta.longDescription + '' 44 + 45 + This package provides the CLI clients, called 'icommands'. 46 + ''; 47 + }; 48 + })
+115
pkgs/by-name/ir/irods/package.nix
···
··· 1 + { 2 + lib, 3 + llvmPackages, 4 + fetchFromGitHub, 5 + cmake, 6 + ninja, 7 + bison, 8 + flex, 9 + libarchive, 10 + pam, 11 + unixODBC, 12 + jsoncons, 13 + curl, 14 + systemdLibs, 15 + openssl, 16 + boost183, 17 + nlohmann_json, 18 + nanodbc, 19 + fmt_9, 20 + spdlog, 21 + }: 22 + 23 + llvmPackages.stdenv.mkDerivation (finalAttrs: { 24 + pname = "irods"; 25 + version = "5.0.1"; 26 + 27 + src = fetchFromGitHub { 28 + owner = "irods"; 29 + repo = "irods"; 30 + tag = finalAttrs.version; 31 + hash = "sha256-/mcuqukgDoMc89FL/TfOhHWglsfdLmQbAnQYT8vTFsY="; 32 + }; 33 + 34 + nativeBuildInputs = [ 35 + cmake 36 + ninja 37 + bison 38 + flex 39 + ]; 40 + 41 + buildInputs = [ 42 + libarchive 43 + pam 44 + unixODBC 45 + jsoncons 46 + curl 47 + systemdLibs 48 + ]; 49 + 50 + propagatedBuildInputs = [ 51 + openssl 52 + # Can potentially be unpinned after: 53 + # <https://github.com/irods/irods/issues/7248> 54 + boost183 55 + nlohmann_json 56 + nanodbc 57 + # Tracking issue for `fmt_11`: 58 + # <https://github.com/irods/irods/issues/8454> 59 + fmt_9 60 + (spdlog.override { 61 + fmt = fmt_9; 62 + }) 63 + ]; 64 + 65 + cmakeFlags = finalAttrs.passthru.commonCmakeFlags ++ [ 66 + # Tracking issues for moving these to `find_package`: 67 + # * <https://github.com/irods/irods/issues/6249> 68 + # * <https://github.com/irods/irods/issues/6253> 69 + (lib.cmakeFeature "IRODS_EXTERNALS_FULLPATH_BOOST" "${boost183}") 70 + (lib.cmakeFeature "IRODS_EXTERNALS_FULLPATH_NANODBC" "${nanodbc}") 71 + (lib.cmakeFeature "IRODS_EXTERNALS_FULLPATH_JSONCONS" "${jsoncons}") 72 + ]; 73 + 74 + postPatch = '' 75 + patchShebangs ./test 76 + substituteInPlace plugins/database/CMakeLists.txt --replace-fail \ 77 + 'COMMAND cpp -E -P -D''${plugin} "''${CMAKE_CURRENT_BINARY_DIR}/src/icatSysTables.sql.pp" ' \ 78 + 'COMMAND cpp -E -P -D''${plugin} "''${CMAKE_CURRENT_BINARY_DIR}/src/icatSysTables.sql.pp" -o ' 79 + substituteInPlace server/auth/CMakeLists.txt --replace-fail SETUID "" 80 + ''; 81 + 82 + passthru = { 83 + commonCmakeFlags = [ 84 + # We already use Clang in the `stdenv`. 85 + (lib.cmakeBool "IRODS_BUILD_WITH_CLANG" false) 86 + # Upstream builds with LLVM 16 and doesn’t handle newer warnings. 87 + (lib.cmakeBool "IRODS_BUILD_WITH_WERROR" false) 88 + (lib.cmakeFeature "IRODS_HOME_DIRECTORY" "${placeholder "out"}") 89 + (lib.cmakeFeature "IRODS_LINUX_DISTRIBUTION_NAME" "NixOS") 90 + (lib.cmakeFeature "IRODS_LINUX_DISTRIBUTION_VERSION" lib.trivial.release) 91 + (lib.cmakeFeature "IRODS_LINUX_DISTRIBUTION_VERSION_MAJOR" lib.trivial.release) 92 + (lib.cmakeFeature "CPACK_GENERATOR" "TGZ") 93 + ]; 94 + }; 95 + 96 + meta = { 97 + description = "Integrated Rule-Oriented Data System (iRODS)"; 98 + longDescription = '' 99 + The Integrated Rule-Oriented Data System (iRODS) is open source data management 100 + software used by research organizations and government agencies worldwide. 101 + iRODS is released as a production-level distribution aimed at deployment in mission 102 + critical environments. It virtualizes data storage resources, so users can take 103 + control of their data, regardless of where and on what device the data is stored. 104 + As data volumes grow and data services become more complex, iRODS is increasingly 105 + important in data management. The development infrastructure supports exhaustive 106 + testing on supported platforms; plug-in support for microservices, storage resources, 107 + drivers, and databases; and extensive documentation, training and support services. 108 + ''; 109 + homepage = "https://irods.org"; 110 + license = lib.licenses.bsd3; 111 + maintainers = [ lib.maintainers.bzizou ]; 112 + platforms = lib.platforms.linux; 113 + mainProgram = "irodsServer"; 114 + }; 115 + })
-114
pkgs/tools/filesystems/irods/common.nix
··· 1 - { 2 - lib, 3 - stdenv, 4 - bzip2, 5 - zlib, 6 - autoconf, 7 - automake, 8 - cmake, 9 - help2man, 10 - texinfo, 11 - libtool, 12 - cppzmq, 13 - libarchive, 14 - avro-cpp, 15 - boost, 16 - zeromq, 17 - openssl, 18 - pam, 19 - libiodbc, 20 - libkrb5, 21 - gcc, 22 - libcxx, 23 - which, 24 - catch2, 25 - nanodbc, 26 - fmt, 27 - nlohmann_json, 28 - curl, 29 - spdlog_rods, 30 - bison, 31 - flex, 32 - }: 33 - 34 - # Common attributes of irods packages 35 - 36 - { 37 - nativeBuildInputs = [ 38 - autoconf 39 - automake 40 - cmake 41 - help2man 42 - texinfo 43 - which 44 - gcc 45 - bison 46 - flex 47 - ]; 48 - buildInputs = [ 49 - bzip2 50 - zlib 51 - libtool 52 - cppzmq 53 - libarchive 54 - avro-cpp 55 - zeromq 56 - openssl 57 - pam 58 - libiodbc 59 - libkrb5 60 - boost 61 - libcxx 62 - catch2 63 - nanodbc 64 - fmt 65 - nlohmann_json 66 - spdlog_rods 67 - curl 68 - ]; 69 - 70 - cmakeFlags = [ 71 - "-DIRODS_EXTERNALS_FULLPATH_CLANG=${stdenv.cc}" 72 - "-DIRODS_EXTERNALS_FULLPATH_CLANG_RUNTIME=${stdenv.cc}" 73 - "-DIRODS_EXTERNALS_FULLPATH_ARCHIVE=${libarchive.lib}" 74 - "-DIRODS_EXTERNALS_FULLPATH_AVRO=${avro-cpp}" 75 - "-DIRODS_EXTERNALS_FULLPATH_BOOST=${boost}" 76 - "-DIRODS_EXTERNALS_FULLPATH_ZMQ=${zeromq}" 77 - "-DIRODS_EXTERNALS_FULLPATH_CPPZMQ=${cppzmq}" 78 - "-DIRODS_EXTERNALS_FULLPATH_CATCH2=${catch2}" 79 - "-DIRODS_EXTERNALS_FULLPATH_NANODBC=${nanodbc}" 80 - "-DIRODS_EXTERNALS_FULLPATH_FMT=${fmt}" 81 - "-DIRODS_EXTERNALS_FULLPATH_JSON=${nlohmann_json}" 82 - "-DIRODS_EXTERNALS_FULLPATH_SPDLOG=${spdlog_rods}" 83 - "-DIRODS_LINUX_DISTRIBUTION_NAME=nix" 84 - "-DIRODS_LINUX_DISTRIBUTION_VERSION_MAJOR=1.0" 85 - "-DCPACK_GENERATOR=TGZ" 86 - "-DCMAKE_CXX_FLAGS=-I${lib.getDev libcxx}/include/c++/v1" 87 - "-DPAM_LIBRARY=${pam}/lib/libpam.so" 88 - "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}" 89 - "-DIRODS_HOME_DIRECTORY=${placeholder "out"}" 90 - "-DCMAKE_INSTALL_SBINDIR=${placeholder "out"}/sbin" 91 - ]; 92 - 93 - postPatch = '' 94 - patchShebangs ./packaging ./scripts 95 - ''; 96 - 97 - meta = with lib; { 98 - description = "Integrated Rule-Oriented Data System (iRODS)"; 99 - longDescription = '' 100 - The Integrated Rule-Oriented Data System (iRODS) is open source data management 101 - software used by research organizations and government agencies worldwide. 102 - iRODS is released as a production-level distribution aimed at deployment in mission 103 - critical environments. It virtualizes data storage resources, so users can take 104 - control of their data, regardless of where and on what device the data is stored. 105 - As data volumes grow and data services become more complex, iRODS is increasingly 106 - important in data management. The development infrastructure supports exhaustive 107 - testing on supported platforms; plug-in support for microservices, storage resources, 108 - drivers, and databases; and extensive documentation, training and support services.''; 109 - homepage = "https://irods.org"; 110 - license = lib.licenses.bsd3; 111 - maintainers = [ lib.maintainers.bzizou ]; 112 - platforms = lib.platforms.linux; 113 - }; 114 - }
···
-169
pkgs/tools/filesystems/irods/default.nix
··· 1 - { 2 - lib, 3 - stdenv, 4 - fetchFromGitHub, 5 - bzip2, 6 - zlib, 7 - autoconf, 8 - automake, 9 - cmake, 10 - help2man, 11 - texinfo, 12 - libtool, 13 - cppzmq, 14 - libarchive, 15 - avro-cpp_llvm, 16 - boost, 17 - zeromq, 18 - openssl, 19 - pam, 20 - libiodbc, 21 - libkrb5, 22 - gcc, 23 - libcxx, 24 - which, 25 - catch2, 26 - nanodbc_llvm, 27 - fmt, 28 - nlohmann_json, 29 - spdlog_llvm, 30 - curl, 31 - bison, 32 - flex, 33 - }: 34 - 35 - let 36 - spdlog_rods = spdlog_llvm.overrideAttrs (attrs: { 37 - inherit stdenv; 38 - version = "1.10.0"; 39 - src = attrs.src.override { 40 - rev = "v1.10.0"; 41 - hash = "sha256-c6s27lQCXKx6S1FhZ/LiKh14GnXMhZtD1doltU4Avws="; 42 - }; 43 - postPatch = '' 44 - substituteInPlace cmake/spdlog.pc.in \ 45 - --replace-fail '$'{exec_prefix}/@CMAKE_INSTALL_LIBDIR@ @CMAKE_INSTALL_FULL_LIBDIR@ 46 - ''; 47 - }); 48 - in 49 - let 50 - avro-cpp = avro-cpp_llvm; 51 - nanodbc = nanodbc_llvm; 52 - 53 - common = import ./common.nix { 54 - inherit 55 - lib 56 - stdenv 57 - bzip2 58 - zlib 59 - autoconf 60 - automake 61 - cmake 62 - help2man 63 - texinfo 64 - libtool 65 - cppzmq 66 - libarchive 67 - zeromq 68 - openssl 69 - pam 70 - libiodbc 71 - libkrb5 72 - gcc 73 - libcxx 74 - boost 75 - avro-cpp 76 - which 77 - catch2 78 - nanodbc 79 - fmt 80 - nlohmann_json 81 - curl 82 - spdlog_rods 83 - bison 84 - flex 85 - ; 86 - }; 87 - in 88 - rec { 89 - 90 - # irods: libs and server package 91 - irods = stdenv.mkDerivation ( 92 - finalAttrs: 93 - common 94 - // { 95 - version = "4.3.3"; 96 - pname = "irods"; 97 - 98 - src = fetchFromGitHub { 99 - owner = "irods"; 100 - repo = "irods"; 101 - rev = finalAttrs.version; 102 - hash = "sha256-SmN2FzeoA2/gjiDfGs2oifOVj0mK2WdQCgiSdIlENfk="; 103 - fetchSubmodules = true; 104 - }; 105 - 106 - # fix build with recent llvm versions 107 - env.NIX_CFLAGS_COMPILE = "-Wno-deprecated-register -Wno-deprecated-declarations"; 108 - 109 - cmakeFlags = common.cmakeFlags or [ ] ++ [ 110 - "-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath,${placeholder "out"}/lib -D_GLIBCXX_USE_CXX11_ABI=0" 111 - "-DCMAKE_MODULE_LINKER_FLAGS=-Wl,-rpath,${placeholder "out"}/lib" 112 - "-DCMAKE_SHARED_LINKER_FLAGS=-Wl,-rpath,${placeholder "out"}/lib" 113 - ]; 114 - 115 - postPatch = common.postPatch + '' 116 - patchShebangs ./test 117 - substituteInPlace plugins/database/CMakeLists.txt --replace-fail "COMMAND cpp" "COMMAND ${gcc.cc}/bin/cpp" 118 - for file in unit_tests/cmake/test_config/*.cmake 119 - do 120 - substituteInPlace $file --replace-quiet "CATCH2}/include" "CATCH2}/include/catch2" 121 - done 122 - 123 - substituteInPlace server/auth/CMakeLists.txt --replace-fail SETUID "" 124 - ''; 125 - 126 - meta = common.meta // { 127 - longDescription = common.meta.longDescription + "This package provides the servers and libraries."; 128 - mainProgram = "irodsServer"; 129 - }; 130 - } 131 - ); 132 - 133 - # icommands (CLI) package, depends on the irods package 134 - irods-icommands = stdenv.mkDerivation ( 135 - finalAttrs: 136 - common 137 - // { 138 - version = "4.3.3"; 139 - pname = "irods-icommands"; 140 - 141 - src = fetchFromGitHub { 142 - owner = "irods"; 143 - repo = "irods_client_icommands"; 144 - rev = finalAttrs.version; 145 - hash = "sha256-cc0V6BztJk3njobWt27VeJNmQUXyH6aBJkvYIDFEzWY="; 146 - }; 147 - 148 - buildInputs = common.buildInputs ++ [ irods ]; 149 - 150 - postPatch = common.postPatch + '' 151 - patchShebangs ./bin 152 - ''; 153 - 154 - cmakeFlags = common.cmakeFlags ++ [ 155 - "-DCMAKE_INSTALL_PREFIX=${stdenv.out}" 156 - "-DIRODS_DIR=${irods}/lib/irods/cmake" 157 - "-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath,${irods}/lib" 158 - "-DCMAKE_MODULE_LINKER_FLAGS=-Wl,-rpath,${irods}/lib" 159 - "-DCMAKE_SHARED_LINKER_FLAGS=-Wl,-rpath,${irods}/lib" 160 - ]; 161 - 162 - meta = common.meta // { 163 - description = common.meta.description + " CLI clients"; 164 - longDescription = 165 - common.meta.longDescription + "This package provides the CLI clients, called 'icommands'."; 166 - }; 167 - } 168 - ); 169 - }
···
-14
pkgs/top-level/all-packages.nix
··· 3224 3225 icepeak = haskell.lib.compose.justStaticExecutables haskellPackages.icepeak; 3226 3227 - inherit 3228 - (callPackages ../tools/filesystems/irods rec { 3229 - stdenv = llvmPackages_13.libcxxStdenv; 3230 - libcxx = llvmPackages_13.libcxx; 3231 - boost = boost178.override { inherit stdenv; }; 3232 - fmt = fmt_9.override { inherit stdenv; }; 3233 - nanodbc_llvm = nanodbc.override { inherit stdenv; }; 3234 - avro-cpp_llvm = avro-cpp.override { inherit stdenv boost; }; 3235 - spdlog_llvm = spdlog.override { inherit stdenv fmt; }; 3236 - }) 3237 - irods 3238 - irods-icommands 3239 - ; 3240 - 3241 ihaskell = callPackage ../development/tools/haskell/ihaskell/wrapper.nix { 3242 inherit (haskellPackages) ghcWithPackages; 3243
··· 3224 3225 icepeak = haskell.lib.compose.justStaticExecutables haskellPackages.icepeak; 3226 3227 ihaskell = callPackage ../development/tools/haskell/ihaskell/wrapper.nix { 3228 inherit (haskellPackages) ghcWithPackages; 3229