aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIsmaël Bouya <ismael.bouya@normalesup.org>2019-05-07 10:20:12 +0200
committerIsmaël Bouya <ismael.bouya@normalesup.org>2019-05-07 10:20:12 +0200
commitfffbbb5623649ca7c7b32b74558a26ec5cf11abb (patch)
treec8746e1d1072072d8b2d0480da5a3fd512d0ed03
parentb44b42a15197813060bf9405d5a07b8b2c699af5 (diff)
downloadNix-fffbbb5623649ca7c7b32b74558a26ec5cf11abb.tar.gz
Nix-fffbbb5623649ca7c7b32b74558a26ec5cf11abb.tar.zst
Nix-fffbbb5623649ca7c7b32b74558a26ec5cf11abb.zip
Add roundcubemail to pkgs
-rw-r--r--nixops/modules/websites/tools/tools/default.nix2
-rw-r--r--nixops/modules/websites/tools/tools/roundcubemail.nix317
-rw-r--r--pkgs/webapps/default.nix17
-rw-r--r--pkgs/webapps/roundcubemail/default.nix61
-rw-r--r--pkgs/webapps/roundcubemail/plugins/automatic_addressbook/default.nix7
-rw-r--r--pkgs/webapps/roundcubemail/plugins/carddav/default.nix7
-rw-r--r--pkgs/webapps/roundcubemail/plugins/contextmenu/default.nix7
-rw-r--r--pkgs/webapps/roundcubemail/plugins/contextmenu_folder/default.nix7
-rw-r--r--pkgs/webapps/roundcubemail/plugins/html5_notifier/default.nix7
-rw-r--r--pkgs/webapps/roundcubemail/plugins/ident_switch/default.nix7
-rw-r--r--pkgs/webapps/roundcubemail/plugins/message_highlight/default.nix7
-rw-r--r--pkgs/webapps/roundcubemail/plugins/thunderbird_labels/default.nix7
12 files changed, 246 insertions, 207 deletions
diff --git a/nixops/modules/websites/tools/tools/default.nix b/nixops/modules/websites/tools/tools/default.nix
index 746119b..433927e 100644
--- a/nixops/modules/websites/tools/tools/default.nix
+++ b/nixops/modules/websites/tools/tools/default.nix
@@ -9,7 +9,7 @@ let
9 env = myconfig.env.tools.ttrss; 9 env = myconfig.env.tools.ttrss;
10 }; 10 };
11 roundcubemail = pkgs.callPackage ./roundcubemail.nix { 11 roundcubemail = pkgs.callPackage ./roundcubemail.nix {
12 inherit (mylibs) fetchedGithub; 12 inherit (pkgs.webapps) roundcubemail roundcubemail-plugins roundcubemail-skins;
13 env = myconfig.env.tools.roundcubemail; 13 env = myconfig.env.tools.roundcubemail;
14 }; 14 };
15 rainloop = pkgs.callPackage ./rainloop.nix {}; 15 rainloop = pkgs.callPackage ./rainloop.nix {};
diff --git a/nixops/modules/websites/tools/tools/roundcubemail.nix b/nixops/modules/websites/tools/tools/roundcubemail.nix
index 9939b77..6177ff3 100644
--- a/nixops/modules/websites/tools/tools/roundcubemail.nix
+++ b/nixops/modules/websites/tools/tools/roundcubemail.nix
@@ -1,217 +1,122 @@
1{ lib, env, writeText, stdenv, fetchurl, fetchedGithub, phpPackages, apacheHttpd }: 1{ env, roundcubemail, roundcubemail-plugins, roundcubemail-skins, phpPackages, apacheHttpd }:
2let 2rec {
3 roundcubemail = let 3 varDir = "/var/lib/roundcubemail";
4 defaultInstall = '' 4 activationScript = {
5 mkdir -p $out 5 deps = [ "wrappers" ];
6 cp -R . $out/ 6 text = ''
7 cd $out 7 install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir} \
8 if [ -d skins -a -d skins/larry -a ! -d skins/elastic ]; then 8 ${varDir}/cache ${varDir}/logs
9 ln -s larry skins/elastic 9 install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/phpSessions
10 fi 10 '';
11 ''; 11 };
12 buildPlugin = { appName, version, url, sha256, installPhase ? defaultInstall }: 12 keys = [{
13 stdenv.mkDerivation rec { 13 dest = "webapps/tools-roundcube";
14 name = "roundcube-${appName}-${version}"; 14 user = apache.user;
15 inherit version; 15 group = apache.group;
16 phases = "unpackPhase installPhase"; 16 permissions = "0400";
17 inherit installPhase; 17 text = ''
18 src = fetchurl { inherit url sha256; }; 18 <?php
19 }; 19 $config['db_dsnw'] = '${env.psql_url}';
20 plugins = { 20 $config['default_host'] = 'ssl://mail.immae.eu';
21 carddav = buildPlugin rec { 21 $config['imap_conn_options'] = array("ssl" => array("verify_peer" => false));
22 appName = "carddav"; 22 $config['smtp_server'] = 'tls://mail.immae.eu';
23 version = "3.0.3"; 23 $config['smtp_port'] = '25';
24 url = "https://github.com/blind-coder/rcmcarddav/releases/download/v${version}/${appName}-${version}.tar.bz2"; 24 $config['managesieve_host'] = 'mail.immae.eu';
25 sha256 = "0cf5rnqkhhag2vdy808zfpr4l5586fn43nvcia8ac1ha58azrxal"; 25 $config['managesieve_port'] = '4190';
26 }; 26 $config['managesieve_usetls'] = true;
27 contextmenu = buildPlugin rec { 27 $config['managesieve_conn_options'] = array("ssl" => array("verify_peer" => false));
28 appName = "contextmenu";
29 version = "2.3";
30 url = "https://github.com/johndoh/roundcube-${appName}/archive/${version}.tar.gz";
31 sha256 = "1rb8n821ylfniiiccfskc534vd6rczhk3g82455ks3m09q6l8hif";
32 };
33 contextmenu_folder = buildPlugin rec {
34 appName = "contextmenu_folder";
35 version = "1.3.3";
36 url = "https://github.com/random-cuber/${appName}/archive/${version}.tar.gz";
37 sha256 = "1ngfws1v8qrpa52rjh7kirc98alchk2vbqwra86h00agyjjlcc57";
38 };
39 automatic_addressbook = buildPlugin rec {
40 appName = "automatic_addressbook";
41 version = "0.4.3";
42 url = "https://github.com/sblaisot/${appName}/archive/${version}.tar.gz";
43 sha256 = "0bx5qjzp3a3wc72fr295bvgsy5n15949c041hq76n6c7sqdn7inc";
44 };
45 message_highlight = buildPlugin rec {
46 appName = "message_highlight";
47 version = "4.4";
48 url = "https://github.com/corbosman/${appName}/archive/${version}.tar.gz";
49 sha256 = "12c4x47y70xdl5pgm8csh5i4yiyhpi232lvjbixmca6di4lkhh9j";
50 };
51 thunderbird_labels = buildPlugin rec {
52 appName = "thunderbird_labels";
53 version = "v1.3.2";
54 url = "https://github.com/mike-kfed/roundcube-${appName}/archive/${version}.tar.gz";
55 sha256 = "1q4x30w66m02v3lw2n8020g0158rmyfzs6gydfk89pa1hs28k9bg";
56 };
57 html5_notifier = buildPlugin rec {
58 appName = "html5_notifier";
59 version = "v0.6.2";
60 url = "https://github.com/stremlau/${appName}/archive/${version}.tar.gz";
61 sha256 = "0s1wq9ira4bcd8jvhn93nhxiqzpp92i0za2kw37kf7ksyhr0xslq";
62 };
63 ident_switch = buildPlugin rec {
64 appName = "ident_switch";
65 version = "4.0.1";
66 url = "https://bitbucket.org/BoresExpress/${appName}/get/${version}.tar.gz";
67 sha256 = "1zyy40lfq2kn7hkghbl8lgp18fb634zr4fxmmxvb1wqyvqdpdpyk";
68 };
69 };
70 skins = {};
71 in rec {
72 varDir = "/var/lib/roundcubemail";
73 activationScript = {
74 deps = [ "wrappers" ];
75 text = ''
76 install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir} \
77 ${varDir}/cache ${varDir}/logs
78 install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/phpSessions
79 '';
80 };
81 keys = [{
82 dest = "webapps/tools-roundcube";
83 user = apache.user;
84 group = apache.group;
85 permissions = "0400";
86 text = ''
87 <?php
88 $config['db_dsnw'] = '${env.psql_url}';
89 $config['default_host'] = 'ssl://mail.immae.eu';
90 $config['imap_conn_options'] = array("ssl" => array("verify_peer" => false));
91 $config['smtp_server'] = 'tls://mail.immae.eu';
92 $config['smtp_port'] = '25';
93 $config['managesieve_host'] = 'mail.immae.eu';
94 $config['managesieve_port'] = '4190';
95 $config['managesieve_usetls'] = true;
96 $config['managesieve_conn_options'] = array("ssl" => array("verify_peer" => false));
97 28
98 $config['imap_cache'] = 'db'; 29 $config['imap_cache'] = 'db';
99 $config['messages_cache'] = 'db'; 30 $config['messages_cache'] = 'db';
100 31
101 $config['support_url'] = '''; 32 $config['support_url'] = ''';
102 33
103 $config['des_key'] = '${env.secret}'; 34 $config['des_key'] = '${env.secret}';
104 35
105 $config['skin'] = 'elastic'; 36 $config['skin'] = 'elastic';
106 $config['plugins'] = array( 37 $config['plugins'] = array(
107 'attachment_reminder', 38 'attachment_reminder',
108 'emoticons', 39 'emoticons',
109 'filesystem_attachments', 40 'filesystem_attachments',
110 'hide_blockquote', 41 'hide_blockquote',
111 'identicon', 42 'identicon',
112 'identity_select', 43 'identity_select',
113 'jqueryui', 44 'jqueryui',
114 'managesieve', 45 'managesieve',
115 'newmail_notifier', 46 'newmail_notifier',
116 'vcard_attachments', 47 'vcard_attachments',
117 'zipdownload', 48 'zipdownload',
118 49
119 'automatic_addressbook', 50 'automatic_addressbook',
120 'message_highlight', 51 'message_highlight',
121 'carddav', 52 'carddav',
122 // Ne marche pas ?: 'ident_switch', 53 // Ne marche pas ?: 'ident_switch',
123 // Ne marche pas ?: 'thunderbird_labels', 54 // Ne marche pas ?: 'thunderbird_labels',
124 ); 55 );
125 56
126 $config['language'] = 'fr_FR'; 57 $config['language'] = 'fr_FR';
127 58
128 $config['drafts_mbox'] = 'Mail/Drafts'; 59 $config['drafts_mbox'] = 'Mail/Drafts';
129 $config['junk_mbox'] = 'Mail/Spam'; 60 $config['junk_mbox'] = 'Mail/Spam';
130 $config['sent_mbox'] = 'Mail/sent'; 61 $config['sent_mbox'] = 'Mail/sent';
131 $config['trash_mbox'] = '''; 62 $config['trash_mbox'] = ''';
132 $config['default_folders'] = array('INBOX', 'Mail/Drafts', 'Mail/sent', 'Mail/Spam', '''); 63 $config['default_folders'] = array('INBOX', 'Mail/Drafts', 'Mail/sent', 'Mail/Spam', ''');
133 $config['draft_autosave'] = 60; 64 $config['draft_autosave'] = 60;
134 $config['enable_installer'] = false; 65 $config['enable_installer'] = false;
135 $config['log_driver'] = 'file'; 66 $config['log_driver'] = 'file';
136 $config['temp_dir'] = '${varDir}/cache'; 67 $config['temp_dir'] = '${varDir}/cache';
137 $config['mime_types'] = '${apacheHttpd}/conf/mime.types'; 68 $config['mime_types'] = '${apacheHttpd}/conf/mime.types';
138 ''; 69 '';
139 }]; 70 }];
140 webRoot = stdenv.mkDerivation rec { 71 webRoot = (roundcubemail.override { roundcube_config = "/var/secrets/webapps/tools-roundcube"; }).withPlugins
141 version = "1.4-rc1"; 72 (builtins.attrValues roundcubemail-plugins) (builtins.attrValues roundcubemail-skins);
142 name = "roundcubemail-${version}"; 73 apache = rec {
143 src= fetchurl { 74 user = "wwwrun";
144 url = "https://github.com/roundcube/roundcubemail/releases/download/${version}/${name}-complete.tar.gz"; 75 group = "wwwrun";
145 sha256 = "0p18wffwi2prh6vxhx1bc69qd1vwybggm8gvg3shahfdknxci9i4"; 76 modules = [ "proxy_fcgi" ];
146 }; 77 webappName = "tools_roundcubemail";
147 buildPhase = '' 78 root = "/run/current-system/webapps/${webappName}";
148 sed -i \ 79 vhostConf = ''
149 -e "s|RCUBE_INSTALL_PATH . 'temp.*|'${varDir}/cache';|" \ 80 Alias /roundcube "${root}"
150 config/defaults.inc.php 81 <Directory "${root}">
151 sed -i \ 82 DirectoryIndex index.php
152 -e "s|RCUBE_INSTALL_PATH . 'logs.*|'${varDir}/logs';|" \ 83 AllowOverride All
153 config/defaults.inc.php 84 Options FollowSymlinks
85 Require all granted
86
87 <FilesMatch "\.php$">
88 SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
89 </FilesMatch>
90 </Directory>
154 ''; 91 '';
155 installPhase = '' 92 };
156 cp -a . $out 93 phpFpm = rec {
157 ln -s /var/secrets/webapps/tools-roundcube $out/config/config.inc.php 94 serviceDeps = [ "postgresql.service" ];
158 ${builtins.concatStringsSep "\n" ( 95 basedir = builtins.concatStringsSep ":" (
159 lib.attrsets.mapAttrsToList (name: value: "ln -sf ${value} $out/plugins/${name}") plugins 96 [ webRoot "/var/secrets/webapps/tools-roundcube" varDir ]
160 )} 97 ++ webRoot.plugins
161 ${builtins.concatStringsSep "\n" ( 98 ++ webRoot.skins);
162 lib.attrsets.mapAttrsToList (name: value: "ln -sf ${value} $out/skins/${name}") skins 99 phpConfig = ''
163 )} 100 date.timezone = 'CET'
101 extension=${phpPackages.imagick}/lib/php/extensions/imagick.so
164 ''; 102 '';
165 }; 103 socket = "/var/run/phpfpm/roundcubemail.sock";
166 apache = rec { 104 pool = ''
167 user = "wwwrun"; 105 listen = ${socket}
168 group = "wwwrun"; 106 user = ${apache.user}
169 modules = [ "proxy_fcgi" ]; 107 group = ${apache.group}
170 webappName = "tools_roundcubemail"; 108 listen.owner = ${apache.user}
171 root = "/run/current-system/webapps/${webappName}"; 109 listen.group = ${apache.group}
172 vhostConf = '' 110 pm = ondemand
173 Alias /roundcube "${root}" 111 pm.max_children = 60
174 <Directory "${root}"> 112 pm.process_idle_timeout = 60
175 DirectoryIndex index.php
176 AllowOverride All
177 Options FollowSymlinks
178 Require all granted
179 113
180 <FilesMatch "\.php$"> 114 ; Needed to avoid clashes in browser cookies (same domain)
181 SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost" 115 php_value[session.name] = RoundcubemailPHPSESSID
182 </FilesMatch> 116 php_admin_value[upload_max_filesize] = 200M
183 </Directory> 117 php_admin_value[post_max_size] = 200M
184 ''; 118 php_admin_value[open_basedir] = "${basedir}:${apacheHttpd}/conf/mime.types:/tmp"
185 }; 119 php_admin_value[session.save_path] = "${varDir}/phpSessions"
186 phpFpm = rec { 120 '';
187 serviceDeps = [ "postgresql.service" ];
188 basedir = builtins.concatStringsSep ":" (
189 [ webRoot "/var/secrets/webapps/tools-roundcube" varDir ]
190 ++ lib.attrsets.mapAttrsToList (name: value: value) plugins
191 ++ lib.attrsets.mapAttrsToList (name: value: value) skins);
192 phpConfig = ''
193 date.timezone = 'CET'
194 extension=${phpPackages.imagick}/lib/php/extensions/imagick.so
195 '';
196 socket = "/var/run/phpfpm/roundcubemail.sock";
197 pool = ''
198 listen = ${socket}
199 user = ${apache.user}
200 group = ${apache.group}
201 listen.owner = ${apache.user}
202 listen.group = ${apache.group}
203 pm = ondemand
204 pm.max_children = 60
205 pm.process_idle_timeout = 60
206
207 ; Needed to avoid clashes in browser cookies (same domain)
208 php_value[session.name] = RoundcubemailPHPSESSID
209 php_admin_value[upload_max_filesize] = 200M
210 php_admin_value[post_max_size] = 200M
211 php_admin_value[open_basedir] = "${basedir}:${apacheHttpd}/conf/mime.types:/tmp"
212 php_admin_value[session.save_path] = "${varDir}/phpSessions"
213 '';
214 };
215 }; 121 };
216in 122}
217 roundcubemail
diff --git a/pkgs/webapps/default.nix b/pkgs/webapps/default.nix
index f9ecd4f..073905c 100644
--- a/pkgs/webapps/default.nix
+++ b/pkgs/webapps/default.nix
@@ -50,6 +50,23 @@ rec {
50 phpldapadmin = callPackage ./phpldapadmin {}; 50 phpldapadmin = callPackage ./phpldapadmin {};
51 rompr = callPackage ./rompr { inherit mylibs; }; 51 rompr = callPackage ./rompr { inherit mylibs; };
52 52
53 roundcubemail = callPackage ./roundcubemail {};
54 roundcubemail-with-plugins-skins = roundcubemail.withPlugins (builtins.attrValues roundcubemail-plugins) (builtins.attrValues roundcubemail-skins);
55 roundcubemail-skins = let
56 names = [];
57 in
58 lib.attrsets.genAttrs names
59 (name: callPackage (./roundcubemail/skins + "/${name}") {});
60 roundcubemail-plugins = let
61 names = [
62 "automatic_addressbook" "carddav" "contextmenu"
63 "contextmenu_folder" "html5_notifier" "ident_switch"
64 "message_highlight" "thunderbird_labels"
65 ];
66 in
67 lib.attrsets.genAttrs names
68 (name: callPackage (./roundcubemail/plugins + "/${name}") { buildPlugin = roundcubemail.buildPlugin; });
69
53 yourls = callPackage ./yourls { inherit mylibs; }; 70 yourls = callPackage ./yourls { inherit mylibs; };
54 yourls-with-plugins = yourls.withPlugins (builtins.attrValues yourls-plugins); 71 yourls-with-plugins = yourls.withPlugins (builtins.attrValues yourls-plugins);
55 yourls-plugins = let 72 yourls-plugins = let
diff --git a/pkgs/webapps/roundcubemail/default.nix b/pkgs/webapps/roundcubemail/default.nix
new file mode 100644
index 0000000..ba85f37
--- /dev/null
+++ b/pkgs/webapps/roundcubemail/default.nix
@@ -0,0 +1,61 @@
1{ varDir ? "/var/lib/roundcubemail"
2, roundcube_config ? "/etc/roundcube/config.php"
3, stdenv, fetchurl }:
4let
5 defaultInstall = ''
6 mkdir -p $out
7 cp -R . $out/
8 cd $out
9 if [ -d skins -a -d skins/larry -a ! -d skins/elastic ]; then
10 ln -s larry skins/elastic
11 fi
12 '';
13 buildPlugin = { appName, version, url, sha256, installPhase ? defaultInstall }:
14 stdenv.mkDerivation rec {
15 name = "roundcube-${appName}-${version}";
16 inherit version;
17 phases = "unpackPhase installPhase";
18 inherit installPhase;
19 src = fetchurl { inherit url sha256; };
20 passthru.pluginName = appName;
21 };
22 withPlugins = plugins: skins: package.overrideAttrs(old: {
23 name = "${old.name}${if builtins.length skins > 0 then "-with-skins" else ""}${if builtins.length plugins > 0 then "-with-plugins" else ""}";
24 installPhase = old.installPhase +
25 builtins.concatStringsSep "\n" (
26 map (value: "ln -s ${value} $out/plugins/${value.pluginName}") plugins
27 ) +
28 builtins.concatStringsSep "\n" (
29 map (value: "ln -s ${value} $out/skins/${value.skinName}") skins
30 );
31 passthru = old.passthru // {
32 inherit plugins skins;
33 withPlugins = morePlugins: moreSkins: old.withPlugins (morePlugins ++ plugins) (morePlugins ++ skins);
34 };
35 });
36 package = stdenv.mkDerivation rec {
37 version = "1.4-rc1";
38 name = "roundcubemail-${version}";
39 src= fetchurl {
40 url = "https://github.com/roundcube/roundcubemail/releases/download/${version}/${name}-complete.tar.gz";
41 sha256 = "0p18wffwi2prh6vxhx1bc69qd1vwybggm8gvg3shahfdknxci9i4";
42 };
43 buildPhase = ''
44 sed -i \
45 -e "s|RCUBE_INSTALL_PATH . 'temp.*|'${varDir}/cache';|" \
46 config/defaults.inc.php
47 sed -i \
48 -e "s|RCUBE_INSTALL_PATH . 'logs.*|'${varDir}/logs';|" \
49 config/defaults.inc.php
50 '';
51 installPhase = ''
52 cp -a . $out
53 ln -s ${roundcube_config} $out/config/config.inc.php
54 '';
55 passthru = {
56 plugins = [];
57 skins = [];
58 inherit withPlugins buildPlugin;
59 };
60 };
61in package
diff --git a/pkgs/webapps/roundcubemail/plugins/automatic_addressbook/default.nix b/pkgs/webapps/roundcubemail/plugins/automatic_addressbook/default.nix
new file mode 100644
index 0000000..cd9efee
--- /dev/null
+++ b/pkgs/webapps/roundcubemail/plugins/automatic_addressbook/default.nix
@@ -0,0 +1,7 @@
1{ buildPlugin }:
2buildPlugin rec {
3 appName = "automatic_addressbook";
4 version = "0.4.3";
5 url = "https://github.com/sblaisot/${appName}/archive/${version}.tar.gz";
6 sha256 = "0bx5qjzp3a3wc72fr295bvgsy5n15949c041hq76n6c7sqdn7inc";
7}
diff --git a/pkgs/webapps/roundcubemail/plugins/carddav/default.nix b/pkgs/webapps/roundcubemail/plugins/carddav/default.nix
new file mode 100644
index 0000000..ad6856b
--- /dev/null
+++ b/pkgs/webapps/roundcubemail/plugins/carddav/default.nix
@@ -0,0 +1,7 @@
1{ buildPlugin }:
2buildPlugin rec {
3 appName = "carddav";
4 version = "3.0.3";
5 url = "https://github.com/blind-coder/rcmcarddav/releases/download/v${version}/${appName}-${version}.tar.bz2";
6 sha256 = "0cf5rnqkhhag2vdy808zfpr4l5586fn43nvcia8ac1ha58azrxal";
7}
diff --git a/pkgs/webapps/roundcubemail/plugins/contextmenu/default.nix b/pkgs/webapps/roundcubemail/plugins/contextmenu/default.nix
new file mode 100644
index 0000000..c970007
--- /dev/null
+++ b/pkgs/webapps/roundcubemail/plugins/contextmenu/default.nix
@@ -0,0 +1,7 @@
1{ buildPlugin }:
2buildPlugin rec {
3 appName = "contextmenu";
4 version = "2.3";
5 url = "https://github.com/johndoh/roundcube-${appName}/archive/${version}.tar.gz";
6 sha256 = "1rb8n821ylfniiiccfskc534vd6rczhk3g82455ks3m09q6l8hif";
7}
diff --git a/pkgs/webapps/roundcubemail/plugins/contextmenu_folder/default.nix b/pkgs/webapps/roundcubemail/plugins/contextmenu_folder/default.nix
new file mode 100644
index 0000000..e5cb46d
--- /dev/null
+++ b/pkgs/webapps/roundcubemail/plugins/contextmenu_folder/default.nix
@@ -0,0 +1,7 @@
1{ buildPlugin }:
2buildPlugin rec {
3 appName = "contextmenu_folder";
4 version = "1.3.3";
5 url = "https://github.com/random-cuber/${appName}/archive/${version}.tar.gz";
6 sha256 = "1ngfws1v8qrpa52rjh7kirc98alchk2vbqwra86h00agyjjlcc57";
7}
diff --git a/pkgs/webapps/roundcubemail/plugins/html5_notifier/default.nix b/pkgs/webapps/roundcubemail/plugins/html5_notifier/default.nix
new file mode 100644
index 0000000..35bff06
--- /dev/null
+++ b/pkgs/webapps/roundcubemail/plugins/html5_notifier/default.nix
@@ -0,0 +1,7 @@
1{ buildPlugin }:
2buildPlugin rec {
3 appName = "html5_notifier";
4 version = "v0.6.2";
5 url = "https://github.com/stremlau/${appName}/archive/${version}.tar.gz";
6 sha256 = "0s1wq9ira4bcd8jvhn93nhxiqzpp92i0za2kw37kf7ksyhr0xslq";
7}
diff --git a/pkgs/webapps/roundcubemail/plugins/ident_switch/default.nix b/pkgs/webapps/roundcubemail/plugins/ident_switch/default.nix
new file mode 100644
index 0000000..1dfc402
--- /dev/null
+++ b/pkgs/webapps/roundcubemail/plugins/ident_switch/default.nix
@@ -0,0 +1,7 @@
1{ buildPlugin }:
2buildPlugin rec {
3 appName = "ident_switch";
4 version = "4.0.1";
5 url = "https://bitbucket.org/BoresExpress/${appName}/get/${version}.tar.gz";
6 sha256 = "1zyy40lfq2kn7hkghbl8lgp18fb634zr4fxmmxvb1wqyvqdpdpyk";
7}
diff --git a/pkgs/webapps/roundcubemail/plugins/message_highlight/default.nix b/pkgs/webapps/roundcubemail/plugins/message_highlight/default.nix
new file mode 100644
index 0000000..dc7138a
--- /dev/null
+++ b/pkgs/webapps/roundcubemail/plugins/message_highlight/default.nix
@@ -0,0 +1,7 @@
1{ buildPlugin }:
2buildPlugin rec {
3 appName = "message_highlight";
4 version = "4.4";
5 url = "https://github.com/corbosman/${appName}/archive/${version}.tar.gz";
6 sha256 = "12c4x47y70xdl5pgm8csh5i4yiyhpi232lvjbixmca6di4lkhh9j";
7}
diff --git a/pkgs/webapps/roundcubemail/plugins/thunderbird_labels/default.nix b/pkgs/webapps/roundcubemail/plugins/thunderbird_labels/default.nix
new file mode 100644
index 0000000..ca7245f
--- /dev/null
+++ b/pkgs/webapps/roundcubemail/plugins/thunderbird_labels/default.nix
@@ -0,0 +1,7 @@
1{ buildPlugin }:
2buildPlugin rec {
3 appName = "thunderbird_labels";
4 version = "v1.3.2";
5 url = "https://github.com/mike-kfed/roundcube-${appName}/archive/${version}.tar.gz";
6 sha256 = "1q4x30w66m02v3lw2n8020g0158rmyfzs6gydfk89pa1hs28k9bg";
7}