Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
116 lines
3.4 KiB
Nix
116 lines
3.4 KiB
Nix
{
|
||
lib,
|
||
llvmPackages,
|
||
fetchFromGitHub,
|
||
cmake,
|
||
ninja,
|
||
bison,
|
||
flex,
|
||
libarchive,
|
||
pam,
|
||
unixODBC,
|
||
jsoncons,
|
||
curl,
|
||
systemdLibs,
|
||
openssl,
|
||
boost183,
|
||
nlohmann_json,
|
||
nanodbc,
|
||
fmt_9,
|
||
spdlog,
|
||
}:
|
||
|
||
llvmPackages.stdenv.mkDerivation (finalAttrs: {
|
||
pname = "irods";
|
||
version = "5.0.1";
|
||
|
||
src = fetchFromGitHub {
|
||
owner = "irods";
|
||
repo = "irods";
|
||
tag = finalAttrs.version;
|
||
hash = "sha256-/mcuqukgDoMc89FL/TfOhHWglsfdLmQbAnQYT8vTFsY=";
|
||
};
|
||
|
||
nativeBuildInputs = [
|
||
cmake
|
||
ninja
|
||
bison
|
||
flex
|
||
];
|
||
|
||
buildInputs = [
|
||
libarchive
|
||
pam
|
||
unixODBC
|
||
jsoncons
|
||
curl
|
||
systemdLibs
|
||
];
|
||
|
||
propagatedBuildInputs = [
|
||
openssl
|
||
# Can potentially be unpinned after:
|
||
# <https://github.com/irods/irods/issues/7248>
|
||
boost183
|
||
nlohmann_json
|
||
nanodbc
|
||
# Tracking issue for `fmt_11`:
|
||
# <https://github.com/irods/irods/issues/8454>
|
||
fmt_9
|
||
(spdlog.override {
|
||
fmt = fmt_9;
|
||
})
|
||
];
|
||
|
||
cmakeFlags = finalAttrs.passthru.commonCmakeFlags ++ [
|
||
# Tracking issues for moving these to `find_package`:
|
||
# * <https://github.com/irods/irods/issues/6249>
|
||
# * <https://github.com/irods/irods/issues/6253>
|
||
(lib.cmakeFeature "IRODS_EXTERNALS_FULLPATH_BOOST" "${boost183}")
|
||
(lib.cmakeFeature "IRODS_EXTERNALS_FULLPATH_NANODBC" "${nanodbc}")
|
||
(lib.cmakeFeature "IRODS_EXTERNALS_FULLPATH_JSONCONS" "${jsoncons}")
|
||
];
|
||
|
||
postPatch = ''
|
||
patchShebangs ./test
|
||
substituteInPlace plugins/database/CMakeLists.txt --replace-fail \
|
||
'COMMAND cpp -E -P -D''${plugin} "''${CMAKE_CURRENT_BINARY_DIR}/src/icatSysTables.sql.pp" ' \
|
||
'COMMAND cpp -E -P -D''${plugin} "''${CMAKE_CURRENT_BINARY_DIR}/src/icatSysTables.sql.pp" -o '
|
||
substituteInPlace server/auth/CMakeLists.txt --replace-fail SETUID ""
|
||
'';
|
||
|
||
passthru = {
|
||
commonCmakeFlags = [
|
||
# We already use Clang in the `stdenv`.
|
||
(lib.cmakeBool "IRODS_BUILD_WITH_CLANG" false)
|
||
# Upstream builds with LLVM 16 and doesn’t handle newer warnings.
|
||
(lib.cmakeBool "IRODS_BUILD_WITH_WERROR" false)
|
||
(lib.cmakeFeature "IRODS_HOME_DIRECTORY" "${placeholder "out"}")
|
||
(lib.cmakeFeature "IRODS_LINUX_DISTRIBUTION_NAME" "NixOS")
|
||
(lib.cmakeFeature "IRODS_LINUX_DISTRIBUTION_VERSION" lib.trivial.release)
|
||
(lib.cmakeFeature "IRODS_LINUX_DISTRIBUTION_VERSION_MAJOR" lib.trivial.release)
|
||
(lib.cmakeFeature "CPACK_GENERATOR" "TGZ")
|
||
];
|
||
};
|
||
|
||
meta = {
|
||
description = "Integrated Rule-Oriented Data System (iRODS)";
|
||
longDescription = ''
|
||
The Integrated Rule-Oriented Data System (iRODS) is open source data management
|
||
software used by research organizations and government agencies worldwide.
|
||
iRODS is released as a production-level distribution aimed at deployment in mission
|
||
critical environments. It virtualizes data storage resources, so users can take
|
||
control of their data, regardless of where and on what device the data is stored.
|
||
As data volumes grow and data services become more complex, iRODS is increasingly
|
||
important in data management. The development infrastructure supports exhaustive
|
||
testing on supported platforms; plug-in support for microservices, storage resources,
|
||
drivers, and databases; and extensive documentation, training and support services.
|
||
'';
|
||
homepage = "https://irods.org";
|
||
license = lib.licenses.bsd3;
|
||
maintainers = [ lib.maintainers.bzizou ];
|
||
platforms = lib.platforms.linux;
|
||
mainProgram = "irodsServer";
|
||
};
|
||
})
|