lol
1{
2 stdenv,
3 lib,
4 fetchFromGitHub,
5 meson,
6 pkg-config,
7 ninja,
8 perl,
9 util-linux,
10 open-isns,
11 openssl,
12 kmod,
13 systemd,
14 runtimeShell,
15 nixosTests,
16 udevCheckHook,
17}:
18
19stdenv.mkDerivation rec {
20 pname = "open-iscsi";
21 version = "2.1.11";
22
23 src = fetchFromGitHub {
24 owner = "open-iscsi";
25 repo = "open-iscsi";
26 rev = version;
27 hash = "sha256-Xs2EiNSkRtAQPoagCAKl07VndYKDspGLchxMvsfvTi0=";
28 };
29
30 nativeBuildInputs = [
31 meson
32 pkg-config
33 ninja
34 perl
35 udevCheckHook
36 ];
37 buildInputs = [
38 kmod
39 open-isns
40 openssl
41 systemd
42 util-linux
43 ];
44
45 preConfigure = ''
46 patchShebangs .
47 '';
48
49 prePatch = ''
50 substituteInPlace etc/systemd/iscsi-init.service.template \
51 --replace /usr/bin/sh ${runtimeShell}
52 sed -i '/install_dir: db_root/d' meson.build
53 '';
54
55 mesonFlags = [
56 "-Discsi_sbindir=${placeholder "out"}/sbin"
57 "-Drulesdir=${placeholder "out"}/etc/udev/rules.d"
58 "-Dsystemddir=${placeholder "out"}/lib/systemd"
59 "-Ddbroot=/etc/iscsi"
60 ];
61
62 doInstallCheck = true;
63
64 passthru.tests = { inherit (nixosTests) iscsi-root; };
65
66 meta = with lib; {
67 description = "High performance, transport independent, multi-platform implementation of RFC3720";
68 license = licenses.gpl2Plus;
69 homepage = "https://www.open-iscsi.com";
70 platforms = platforms.linux;
71 maintainers = with maintainers; [
72 cleverca22
73 zaninime
74 ];
75 };
76}