Files
nixpkgs/pkgs/by-name/ir/irods/package.nix
Dark Steveneq 646b892680
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
push sheeet
2025-10-09 14:15:47 +02:00

116 lines
3.4 KiB
Nix
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
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 doesnt 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";
};
})