Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions pkgs/by-name/ir/irods-icommands/package.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
{
lib,
llvmPackages,
fetchFromGitHub,
cmake,
ninja,
help2man,
irods,
}:

llvmPackages.stdenv.mkDerivation (finalAttrs: {
pname = "irods-icommands";
inherit (irods) version;

src = fetchFromGitHub {
owner = "irods";
repo = "irods_client_icommands";
tag = finalAttrs.version;
hash = "sha256-lo1eCI/CSzl7BJWdPo7KKVHfznkPN6GwsiQThUGuQdw=";
};

nativeBuildInputs = [
cmake
ninja
help2man
];

buildInputs = [ irods ];

cmakeFlags = irods.commonCmakeFlags ++ [
(lib.cmakeFeature "ICOMMANDS_INSTALL_DIRECTORY" "${placeholder "out"}/bin")
(lib.cmakeBool "ICOMMANDS_INSTALL_SYMLINKS" false)
];

meta = {
inherit (irods.meta)
homepage
license
maintainers
platforms
;
description = irods.meta.description + " CLI clients";
longDescription = irods.meta.longDescription + ''

This package provides the CLI clients, called 'icommands'.
'';
};
})
115 changes: 115 additions & 0 deletions pkgs/by-name/ir/irods/package.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
{
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";
};
})
114 changes: 0 additions & 114 deletions pkgs/tools/filesystems/irods/common.nix

This file was deleted.

Loading
Loading