tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
{irods,irods-icommands}: 4.3.3 -> 5.0.1
Emily
5 months ago
c6435a9d
8831c775
+163
-297
5 changed files
expand all
collapse all
unified
split
pkgs
by-name
ir
irods
package.nix
irods-icommands
package.nix
tools
filesystems
irods
common.nix
default.nix
top-level
all-packages.nix
+48
pkgs/by-name/ir/irods-icommands/package.nix
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
-
}
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-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
-
}
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3227
ihaskell = callPackage ../development/tools/haskell/ihaskell/wrapper.nix {
3228
inherit (haskellPackages) ghcWithPackages;
3229