1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 znc,
6 cmake,
7 pkg-config,
8 python3,
9 which,
10}:
11
12let
13 zncDerivation =
14 a@{
15 pname,
16 src,
17 module_name,
18 buildPhase ? ''
19 runHook preBuild
20
21 ${znc}/bin/znc-buildmod ${module_name}.cpp
22
23 runHook postBuild
24 '',
25 installPhase ? ''
26 runHook preInstall
27
28 install -D ${module_name}.so $out/lib/znc/${module_name}.so
29
30 runHook postInstall
31 '',
32 ...
33 }:
34 stdenv.mkDerivation (
35 a
36 // {
37 inherit buildPhase installPhase;
38
39 nativeBuildInputs = [
40 python3
41 which
42 cmake
43 pkg-config
44 ];
45
46 dontUseCmakeConfigure = true;
47
48 buildInputs = znc.buildInputs;
49
50 passthru.module_name = module_name;
51
52 meta = a.meta // {
53 platforms = lib.platforms.unix;
54 };
55 }
56 );
57
58in
59{
60
61 backlog = zncDerivation {
62 pname = "znc-backlog";
63 version = "0-unstable-2018-08-24";
64 module_name = "backlog";
65
66 src = fetchFromGitHub {
67 owner = "FruitieX";
68 repo = "znc-backlog";
69 rev = "44314a6aca0409ae59b0d841807261be1159fff4";
70 hash = "sha256-yhoMuwXul6zq4VPGn810PlFwiCUIvvV6wkQupE3svOQ=";
71 };
72
73 meta = {
74 description = "Request backlog for IRC channels";
75 homepage = "https://github.com/fruitiex/znc-backlog/";
76 license = lib.licenses.asl20;
77 maintainers = [ ];
78 };
79 };
80
81 clientbuffer = zncDerivation {
82 pname = "znc-clientbuffer";
83 version = "0-unstable-2021-05-30";
84 module_name = "clientbuffer";
85
86 src = fetchFromGitHub {
87 owner = "CyberShadow";
88 repo = "znc-clientbuffer";
89 rev = "9a7465b413b53408f5d7af86e84b1d08efb6bec0";
90 hash = "sha256-pAj4Iot0RFuNJOLSZFaXoH5BPb4vf0H8KPfIoo0kbig=";
91 };
92
93 meta = {
94 description = "ZNC module for client specific buffers";
95 homepage = "https://github.com/CyberShadow/znc-clientbuffer";
96 license = lib.licenses.asl20;
97 maintainers = with lib.maintainers; [
98 hrdinka
99 szlend
100 cybershadow
101 ];
102 };
103 };
104
105 clientaway = zncDerivation {
106 pname = "znc-clientaway";
107 version = "0-unstable-2017-04-28";
108 module_name = "clientaway";
109
110 src = fetchFromGitHub {
111 owner = "kylef-archive";
112 repo = "znc-contrib";
113 rev = "f6724a4a3b16b050088adde0cbeed74f189e5044";
114 hash = "sha256-KBd78ucRFbgV/jILS1OSsZqqKyjT4RmBfiBTKX8bbUY=";
115 };
116
117 meta = {
118 description = "ZNC clientaway module";
119 homepage = "https://github.com/kylef-archive/znc-contrib";
120 license = lib.licenses.gpl2;
121 maintainers = [ ];
122 };
123 };
124
125 fish = zncDerivation {
126 pname = "znc-fish";
127 version = "0-unstable-2017-06-26";
128 module_name = "fish";
129
130 src = fetchFromGitHub {
131 # this fork works with ZNC 1.7
132 owner = "oilslump";
133 repo = "znc-fish";
134 rev = "7d91467dbb195f7b591567911210523c6087662e";
135 hash = "sha256-VW/je7vDc9arbrj848T0bbeqP9qx7Az5SMOVecLrxc8=";
136 };
137
138 meta = {
139 description = "ZNC FiSH module";
140 homepage = "https://github.com/oilslump/znc-fish";
141 maintainers = [ lib.maintainers.offline ];
142 };
143 };
144
145 ignore = zncDerivation {
146 pname = "znc-ignore";
147 version = "0-unstable-2017-04-28";
148 module_name = "ignore";
149
150 src = fetchFromGitHub {
151 owner = "kylef";
152 repo = "znc-contrib";
153 rev = "f6724a4a3b16b050088adde0cbeed74f189e5044";
154 hash = "sha256-KBd78ucRFbgV/jILS1OSsZqqKyjT4RmBfiBTKX8bbUY=";
155 };
156
157 meta = {
158 description = "ZNC ignore module";
159 homepage = "https://github.com/kylef/znc-contrib";
160 license = lib.licenses.gpl2;
161 maintainers = [ ];
162 };
163 };
164
165 palaver = zncDerivation rec {
166 pname = "znc-palaver";
167 version = "1.2.2";
168 module_name = "palaver";
169
170 src = fetchFromGitHub {
171 owner = "cocodelabs";
172 repo = "znc-palaver";
173 tag = version;
174 hash = "sha256-8W3uF1PrLQiEZm7JaFrpqmJLSFioa4F4qlM1J6Zua8U=";
175 };
176
177 meta = {
178 description = "Palaver ZNC module";
179 homepage = "https://github.com/cocodelabs/znc-palaver";
180 license = lib.licenses.mit;
181 maintainers = with lib.maintainers; [ szlend ];
182 };
183 };
184
185 playback = zncDerivation {
186 pname = "znc-playback";
187 version = "0-unstable-2020-05-10";
188 module_name = "playback";
189
190 src = fetchFromGitHub {
191 owner = "jpnurmi";
192 repo = "znc-playback";
193 rev = "8dd128bfe2b24b2cc6a9ea2e2d28bfaa28d2a833";
194 hash = "sha256-/hmwhrWDYGzjfmTeCB4mk+FABAJNZvREnuxzvzl6uo4=";
195 };
196
197 meta = {
198 description = "Advanced playback module for ZNC";
199 homepage = "https://github.com/jpnurmi/znc-playback";
200 license = lib.licenses.asl20;
201 maintainers = with lib.maintainers; [ hrdinka ];
202 };
203 };
204
205 privmsg = zncDerivation {
206 pname = "znc-privmsg";
207 version = "0-unstable-2017-04-28";
208 module_name = "privmsg";
209
210 src = fetchFromGitHub {
211 owner = "kylef";
212 repo = "znc-contrib";
213 rev = "f6724a4a3b16b050088adde0cbeed74f189e5044";
214 hash = "sha256-KBd78ucRFbgV/jILS1OSsZqqKyjT4RmBfiBTKX8bbUY=";
215 };
216
217 meta = {
218 description = "ZNC privmsg module";
219 homepage = "https://github.com/kylef/znc-contrib";
220 };
221 };
222
223 push = zncDerivation rec {
224 pname = "znc-push";
225 version = "1.1.0";
226 module_name = "push";
227
228 src = fetchFromGitHub {
229 owner = "jreese";
230 repo = "znc-push";
231 tag = "v${version}";
232 hash = "sha256-OS2nIU/DlESpJT82cWhb75TizSO7LQr74CMz09ulKyQ=";
233 };
234
235 meta = {
236 description = "Push notification service module for ZNC";
237 homepage = "https://github.com/jreese/znc-push";
238 license = lib.licenses.mit;
239 maintainers = with lib.maintainers; [
240 offline
241 schneefux
242 ];
243 };
244 };
245}