1 |
diff -Nur --no-dereference smeserver-roundcube-1.2.old/createlinks smeserver-roundcube-1.2/createlinks |
2 |
--- smeserver-roundcube-1.2.old/createlinks 2024-02-24 09:22:05.481000000 -0500 |
3 |
+++ smeserver-roundcube-1.2/createlinks 2024-02-24 12:24:54.824000000 -0500 |
4 |
@@ -8,7 +8,8 @@ |
5 |
#see the /etc/systemd/system-preset/49-koozali.preset should be present for systemd integration on all you yum update event |
6 |
|
7 |
foreach my $file (qw( |
8 |
- /etc/systemd/system-preset/49-koozali.preset |
9 |
+ /etc/systemd/system-preset/49-koozali.preset |
10 |
+ /etc/httpd/conf/httpd.conf |
11 |
)) |
12 |
{ |
13 |
templates2events( $file, $event ); |
14 |
@@ -38,6 +39,7 @@ |
15 |
templates2events("/usr/share/roundcubemail/plugins/managesieve/config.inc.php", $event); |
16 |
templates2events("/etc/roundcubemail/config.inc.php", $event); |
17 |
templates2events("/etc/e-smith/sql/init/80roundcube", $event); |
18 |
+ |
19 |
} |
20 |
|
21 |
#restart specific services to avoid to reboot after the installation |
22 |
@@ -47,8 +49,10 @@ |
23 |
roundcube-update |
24 |
)) |
25 |
{ |
26 |
+ templates2events("/etc/opt/remi/php81/php-fpm.d/www.conf",$event); |
27 |
templates2events("/etc/httpd/conf/httpd.conf", $event); |
28 |
templates2events("/etc/dovecot/dovecot.conf", $event); |
29 |
+ safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/php81-php-fpm"); |
30 |
safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/mysql.init"); |
31 |
safe_symlink("sigusr1", "root/etc/e-smith/events/$event/services2adjust/httpd-e-smith"); |
32 |
safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/dovecot"); |
33 |
@@ -64,6 +68,7 @@ |
34 |
)) |
35 |
{ |
36 |
event_link("qmail-update-user", $event, "20"); |
37 |
+ event_link("roundcube-conf", $event, "20"); |
38 |
} |
39 |
safe_symlink("/usr/share/php/Net/LDAP3","root/usr/share/pear/Net/LDAP3"); |
40 |
safe_symlink("/usr/share/php/Net/LDAP3.php","root/usr/share/pear/Net/LDAP3.php"); |
41 |
diff -Nur --no-dereference smeserver-roundcube-1.2.old/root/etc/e-smith/db/configuration/defaults/roundcube/access smeserver-roundcube-1.2/root/etc/e-smith/db/configuration/defaults/roundcube/access |
42 |
--- smeserver-roundcube-1.2.old/root/etc/e-smith/db/configuration/defaults/roundcube/access 1969-12-31 19:00:00.000000000 -0500 |
43 |
+++ smeserver-roundcube-1.2/root/etc/e-smith/db/configuration/defaults/roundcube/access 2024-02-24 11:59:38.299000000 -0500 |
44 |
@@ -0,0 +1 @@ |
45 |
+public |
46 |
diff -Nur --no-dereference smeserver-roundcube-1.2.old/root/etc/e-smith/db/configuration/defaults/roundcube/PluginsList smeserver-roundcube-1.2/root/etc/e-smith/db/configuration/defaults/roundcube/PluginsList |
47 |
--- smeserver-roundcube-1.2.old/root/etc/e-smith/db/configuration/defaults/roundcube/PluginsList 2024-02-24 09:22:05.478000000 -0500 |
48 |
+++ smeserver-roundcube-1.2/root/etc/e-smith/db/configuration/defaults/roundcube/PluginsList 2024-02-24 11:31:22.111000000 -0500 |
49 |
@@ -1 +1 @@ |
50 |
-globaladdressbook,contextmenu,markasjunk,vcard_attachments,newmail_notifier,emoticons,managesieve |
51 |
+globaladdressbook,contextmenu,markasjunk,vcard_attachments,newmail_notifier,emoticons,managesieve,nextcloud_attachments |
52 |
diff -Nur --no-dereference smeserver-roundcube-1.2.old/root/etc/e-smith/db/configuration/defaults/roundcube/PublicAccess smeserver-roundcube-1.2/root/etc/e-smith/db/configuration/defaults/roundcube/PublicAccess |
53 |
--- smeserver-roundcube-1.2.old/root/etc/e-smith/db/configuration/defaults/roundcube/PublicAccess 2015-04-01 20:05:54.000000000 -0400 |
54 |
+++ smeserver-roundcube-1.2/root/etc/e-smith/db/configuration/defaults/roundcube/PublicAccess 1969-12-31 19:00:00.000000000 -0500 |
55 |
@@ -1 +0,0 @@ |
56 |
-global |
57 |
diff -Nur --no-dereference smeserver-roundcube-1.2.old/root/etc/e-smith/db/configuration/migrate/80roundcube smeserver-roundcube-1.2/root/etc/e-smith/db/configuration/migrate/80roundcube |
58 |
--- smeserver-roundcube-1.2.old/root/etc/e-smith/db/configuration/migrate/80roundcube 2015-04-01 20:05:54.000000000 -0400 |
59 |
+++ smeserver-roundcube-1.2/root/etc/e-smith/db/configuration/migrate/80roundcube 2024-02-24 11:45:39.162000000 -0500 |
60 |
@@ -3,6 +3,15 @@ |
61 |
|
62 |
my $rec = $DB->get('roundcube') || $DB->new_record('roundcube', {type => 'service'}); |
63 |
|
64 |
+# migrate PublicAccess to access |
65 |
+ if ( my $PublicAccess = $DB->get_prop_and_delete('roundcube','PublicAccess') ) { |
66 |
+ $DB->set_prop('roundcube','access', "private"); |
67 |
+ $DB->set_prop('roundcube','access', "public") if ($PublicAccess =~ /global/); |
68 |
+ $DB->set_prop('roundcube','status', "disabled") if ($PublicAccess == "none"); |
69 |
+ } |
70 |
+ |
71 |
+ |
72 |
+ |
73 |
my $pw = $rec->prop('DbPassword'); |
74 |
return "" if $pw; |
75 |
|
76 |
diff -Nur --no-dereference smeserver-roundcube-1.2.old/root/etc/e-smith/db/configuration/migrate/80roundcube_Plugins_Migration smeserver-roundcube-1.2/root/etc/e-smith/db/configuration/migrate/80roundcube_Plugins_Migration |
77 |
--- smeserver-roundcube-1.2.old/root/etc/e-smith/db/configuration/migrate/80roundcube_Plugins_Migration 2024-02-24 09:22:05.479000000 -0500 |
78 |
+++ smeserver-roundcube-1.2/root/etc/e-smith/db/configuration/migrate/80roundcube_Plugins_Migration 2024-02-24 11:31:03.956000000 -0500 |
79 |
@@ -6,6 +6,12 @@ |
80 |
|
81 |
return unless ($plugins ne ''); |
82 |
|
83 |
+#nextcloud_attachements is used |
84 |
+if ($plugins !~ 'nextcloud_attachments') |
85 |
+ { |
86 |
+ $plugins = $plugins.',nextcloud_attachments'; |
87 |
+ $cdb->set_prop('roundcube','PluginsList',"$plugins"); |
88 |
+ } |
89 |
#sieverule is now used instead of |
90 |
if ($plugins !~ 'managesieve') |
91 |
{ |
92 |
@@ -18,35 +24,30 @@ |
93 |
$plugins =~ s/,sieverule//g; |
94 |
$cdb->set_prop('roundcube','PluginsList',"$plugins"); |
95 |
} |
96 |
- |
97 |
# markasjunk2 deprecated |
98 |
if ($plugins =~ 'markasjunk') |
99 |
{ |
100 |
$plugins =~ s/markasjunk2/markasjunk/g; |
101 |
$cdb->set_prop('roundcube','PluginsList',"$plugins"); |
102 |
} |
103 |
- |
104 |
#Carddav is a really bad plugin, when available it will become usefull |
105 |
if ($plugins =~ 'carddav') |
106 |
{ |
107 |
$plugins =~ s/,carddav//g; |
108 |
$cdb->set_prop('roundcube','PluginsList',"$plugins"); |
109 |
} |
110 |
- |
111 |
#remove calendar |
112 |
if ($plugins =~ 'calendar') |
113 |
{ |
114 |
$plugins =~ s/,calendar//g; |
115 |
$cdb->set_prop('roundcube','PluginsList',"$plugins"); |
116 |
} |
117 |
- |
118 |
#remove libcalendaring |
119 |
if ($plugins =~ 'libcalendaring') |
120 |
{ |
121 |
$plugins =~ s/,libcalendaring//g; |
122 |
$cdb->set_prop('roundcube','PluginsList',"$plugins"); |
123 |
} |
124 |
- |
125 |
#remove tasklist |
126 |
if ($plugins =~ 'tasklist') |
127 |
{ |
128 |
diff -Nur --no-dereference smeserver-roundcube-1.2.old/root/etc/e-smith/events/actions/roundcube-conf smeserver-roundcube-1.2/root/etc/e-smith/events/actions/roundcube-conf |
129 |
--- smeserver-roundcube-1.2.old/root/etc/e-smith/events/actions/roundcube-conf 1969-12-31 19:00:00.000000000 -0500 |
130 |
+++ smeserver-roundcube-1.2/root/etc/e-smith/events/actions/roundcube-conf 2024-02-24 12:23:40.761000000 -0500 |
131 |
@@ -0,0 +1,2 @@ |
132 |
+#!/bin/bash |
133 |
+/usr/bin/rcplugin_update.sh |
134 |
diff -Nur --no-dereference smeserver-roundcube-1.2.old/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/92roundcube smeserver-roundcube-1.2/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/92roundcube |
135 |
--- smeserver-roundcube-1.2.old/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/92roundcube 2024-02-24 09:22:05.466000000 -0500 |
136 |
+++ smeserver-roundcube-1.2/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/92roundcube 2024-02-24 11:53:20.478000000 -0500 |
137 |
@@ -4,49 +4,17 @@ |
138 |
unless $status eq 'enabled'; |
139 |
|
140 |
$OUT = ""; |
141 |
- my $allow = 'all granted'; |
142 |
- my $pass = '0'; |
143 |
+ my $allow = "ip $localAccess"; |
144 |
my $satisfy = 'all'; |
145 |
my $name = $roundcube{'Name'} || 'RoundCube IMAP Client'; |
146 |
+ my $version = 81; # php version to use |
147 |
|
148 |
for ('exit-if-none') |
149 |
{ |
150 |
- if ($roundcube{'PublicAccess'}) |
151 |
+ if ( (exists($roundcube{'access'}) && ($roundcube{'access'} eq 'public') ) |
152 |
{ |
153 |
- if ($roundcube{'PublicAccess'} eq 'none') |
154 |
- { |
155 |
- next; |
156 |
- } |
157 |
- elsif ($roundcube{'PublicAccess'} eq 'local') |
158 |
- { |
159 |
- $allow = "ip $localAccess"; |
160 |
- $pass = 0; |
161 |
- $satisfy = 'all'; |
162 |
- } |
163 |
- elsif ($roundcube{'PublicAccess'} eq 'local-pw') |
164 |
- { |
165 |
- $allow = "ip $localAccess"; |
166 |
- $pass = 1; |
167 |
- $satisfy = 'all'; |
168 |
- } |
169 |
- elsif ($roundcube{'PublicAccess'} eq 'global') |
170 |
- { |
171 |
$allow = 'all granted'; |
172 |
- $pass = 0; |
173 |
$satisfy = 'all'; |
174 |
- } |
175 |
- elsif ($roundcube{'PublicAccess'} eq 'global-pw') |
176 |
- { |
177 |
- $allow = 'all granted'; |
178 |
- $pass = 1; |
179 |
- $satisfy = 'all'; |
180 |
- } |
181 |
- elsif ($roundcube{'PublicAccess'} eq 'global-pw-remote') |
182 |
- { |
183 |
- $allow = "ip $localAccess"; |
184 |
- $pass = 1; |
185 |
- $satisfy = 'any'; |
186 |
- } |
187 |
} |
188 |
|
189 |
$OUT .= "#------------------------------------------------------------\n"; |
190 |
@@ -64,30 +32,15 @@ |
191 |
$OUT .= "\n"; |
192 |
$OUT .= "<Directory /usr/share/roundcubemail>\n"; |
193 |
$OUT .= " Require $allow\n"; |
194 |
- |
195 |
- if ($pass) |
196 |
- { |
197 |
- $OUT .= " AuthName \"$name\"\n"; |
198 |
- $OUT .= " AuthBasicProvider external\n"; |
199 |
- $OUT .= " AuthType Basic\n"; |
200 |
- $OUT .= " AuthExternal pwauth\n"; |
201 |
- $OUT .= " require valid-user\n"; |
202 |
- $OUT .= " Satisfy $satisfy\n"; |
203 |
- } |
204 |
- $OUT .= " AddType application/x-httpd-php .php\n"; |
205 |
- $version = 74; |
206 |
- $OUT .= "<FilesMatch \.php\$\>\n"; |
207 |
- $OUT .= "SetHandler \"proxy:unix:/var/run/php-fpm/php$version.sock|fcgi://localhost\"\n"; |
208 |
- $OUT .= "</FilesMatch>\n"; |
209 |
-# $OUT .= " php_admin_value eaccelerator.enable 1\n"; |
210 |
- $OUT .= "</Directory>\n"; |
211 |
- |
212 |
+ $OUT .= " AddType application/x-httpd-php .php\n"; |
213 |
+ $OUT .= "<FilesMatch \.php\$\>\n"; |
214 |
+ $OUT .= "SetHandler \"proxy:unix:/var/run/php-fpm/php$version-roundcube.sock|fcgi://localhost\"\n"; |
215 |
+ $OUT .= "</FilesMatch>\n"; |
216 |
+ $OUT .= "</Directory>\n"; |
217 |
$OUT .= qq ( |
218 |
<Directory /usr/share/roundcubemail/installer/> |
219 |
Require all denied |
220 |
</Directory> |
221 |
); |
222 |
- |
223 |
- |
224 |
} |
225 |
} |
226 |
diff -Nur --no-dereference smeserver-roundcube-1.2.old/root/etc/e-smith/templates/etc/php-fpm.d/www.conf/15roundcube smeserver-roundcube-1.2/root/etc/e-smith/templates/etc/php-fpm.d/www.conf/15roundcube |
227 |
--- smeserver-roundcube-1.2.old/root/etc/e-smith/templates/etc/php-fpm.d/www.conf/15roundcube 1969-12-31 19:00:00.000000000 -0500 |
228 |
+++ smeserver-roundcube-1.2/root/etc/e-smith/templates/etc/php-fpm.d/www.conf/15roundcube 2024-02-24 11:22:54.752000000 -0500 |
229 |
@@ -0,0 +1,67 @@ |
230 |
+{ |
231 |
+ my $phpversion="81"; |
232 |
+ |
233 |
+if ($PHP_VERSION eq $phpversion){ |
234 |
+ if (($roundcube{'status'} || 'disabled') eq 'enabled'){ |
235 |
+ my $max_upload_size = ($roundcube{MaxUploadSize} || '100M'); |
236 |
+ $max_upload_size .= 'M' if ($max_upload_size =~ m/^\d+$/); |
237 |
+ my $memory_limit = ($roundcube{MemoryLimit} || '512M'); |
238 |
+ $memory_limit .= 'M' if ($memory_limit =~ m/^\d+$/); |
239 |
+ my $open_basedir= $roundcube{PHPBaseDir} || ''; |
240 |
+ $open_basedir = "/usr/share/roundcube:/var/lib/roundcube:/var/log/roundcube.log:/var/lib/php/roundcube:/home/e-smith/files/roundcube:/dev/urandom:/proc/meminfo:/usr/share/GeoIP/GeoLite2-Country.mmdb:/proc/cpuinfo:$open_basedir"; |
241 |
+ my $id = 'roundcube'; |
242 |
+ my $max_children = $roundcube{'PHPmaxChildren'} || 20; |
243 |
+ my $min_spare_servers = $roundcube{'PHPminServers'} || 4; |
244 |
+ my $start_servers = $roundcube{'PHPstartServers'} || 6; |
245 |
+ my $max_spare_servers = $roundcube{'PHPmaxServers'} || 8; |
246 |
+ my $max_requests = $roundcube{'PHPmaxRequests'} || 1000; |
247 |
+ $min_spare_servers = ( $min_spare_servers > $max_spare_servers ) ? printf("%.0f",$max_spare_servers/2) : $min_spare_servers; |
248 |
+ $start_servers = ( $start_servers > $max_spare_servers ) ? printf("%.0f", $max_spare_servers /2 + $min_spare_servers/2 ) : $start_servers; |
249 |
+ |
250 |
+ $OUT .=<<_EOF; |
251 |
+ |
252 |
+[php$PHP_VERSION-$id] |
253 |
+user = www |
254 |
+group = www |
255 |
+listen.owner = root |
256 |
+listen.group = www |
257 |
+listen.mode = 0660 |
258 |
+listen = /var/run/php-fpm/php$PHP_VERSION-$id.sock |
259 |
+pm = dynamic |
260 |
+pm.max_children = $max_children |
261 |
+pm.start_servers = $start_servers |
262 |
+pm.min_spare_servers = $min_spare_servers |
263 |
+pm.max_spare_servers = $max_spare_servers |
264 |
+pm.max_requests = $max_requests |
265 |
+php_admin_value[sys_temp_dir] = /var/lib/php/$id/tmp |
266 |
+php_admin_value[session.save_path] = /var/lib/php/$id/session |
267 |
+php_admin_value[session.gc_maxlifetime] = 86400 |
268 |
+php_admin_value[upload_tmp_dir] = /var/lib/php/$id/tmp |
269 |
+php_admin_value[error_log] = /var/log/php/$id/error.log |
270 |
+slowlog = /var/log/php/roundcube/slow.log |
271 |
+php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f php@{ $DomainName } |
272 |
+php_admin_flag[display_errors] = off |
273 |
+php_admin_flag[log_errors] = on |
274 |
+php_admin_value[error_log] = syslog |
275 |
+php_admin_value[memory_limit] = $memory_limit |
276 |
+php_admin_value[max_execution_time] = 3600 |
277 |
+php_admin_value[post_max_size] = $max_upload_size |
278 |
+php_admin_value[upload_max_filesize] = $max_upload_size |
279 |
+php_admin_value[disable_functions] = system, show_source, symlink, dl, passthru |
280 |
+php_admin_value[open_basedir] = $open_basedir |
281 |
+php_admin_flag[allow_url_fopen] = on |
282 |
+php_admin_flag[file_upload] = on |
283 |
+php_admin_flag[session.cookie_httponly] = on |
284 |
+php_admin_flag[allow_url_include] = off |
285 |
+php_admin_value[session.save_handler] = files |
286 |
+php_admin_flag[output_buffering] = off |
287 |
+ |
288 |
+_EOF |
289 |
+ |
290 |
+ } |
291 |
+ else{ |
292 |
+ $OUT .= '; RoudnCube is disabled'; |
293 |
+ } |
294 |
+} |
295 |
+} |
296 |
+ |
297 |
diff -Nur --no-dereference smeserver-roundcube-1.2.old/root/usr/bin/rcplugin_update.sh smeserver-roundcube-1.2/root/usr/bin/rcplugin_update.sh |
298 |
--- smeserver-roundcube-1.2.old/root/usr/bin/rcplugin_update.sh 2024-02-24 09:22:05.482000000 -0500 |
299 |
+++ smeserver-roundcube-1.2/root/usr/bin/rcplugin_update.sh 2024-02-24 11:27:35.284000000 -0500 |
300 |
@@ -1,19 +1,20 @@ |
301 |
#!/bin/bash |
302 |
-/sbin/e-smith/db configuration setprop php AllowUrlFopen On |
303 |
-/sbin/e-smith/expand-template /etc/php.ini |
304 |
-/etc/init.d/httpd-e-smith restart >/dev/null 2>&1 |
305 |
+/sbin/e-smith/db configuration setprop php81 AllowUrlFopen On |
306 |
+/sbin/e-smith/expand-template /etc/opt/remi/php81/php.ini |
307 |
+/usr/bin/systemctl restart php81-php-fpm >/dev/null 2>&1 |
308 |
+#/etc/init.d/httpd-e-smith restart >/dev/null 2>&1 |
309 |
pathroundcube=$(pwd) |
310 |
|
311 |
cd /usr/share/roundcubemail |
312 |
-COMPOSER_ALLOW_SUPERUSER=1 /usr/bin/php74 /usr/local/bin/composer require johndoh/contextmenu --with-dependencies |
313 |
-COMPOSER_ALLOW_SUPERUSER=1 /usr/bin/php74 /usr/local/bin/composer require johndoh/globaladdressbook ~2.1 --with-dependencies |
314 |
-COMPOSER_ALLOW_SUPERUSER=1 /usr/bin/php74 /usr/local/bin/composer require roundcube/larry ~1.6.0 --with-dependencies |
315 |
+COMPOSER_ALLOW_SUPERUSER=1 /usr/bin/php81 /usr/local/bin/composer require johndoh/contextmenu --with-dependencies |
316 |
+COMPOSER_ALLOW_SUPERUSER=1 /usr/bin/php81 /usr/local/bin/composer require johndoh/globaladdressbook ~2.1 --with-dependencies |
317 |
+COMPOSER_ALLOW_SUPERUSER=1 /usr/bin/php81 /usr/local/bin/composer require roundcube/larry ~1.6.0 --with-dependencies |
318 |
+COMPOSER_ALLOW_SUPERUSER=1 /usr/bin/php81 /usr/local/bin/composer require bennet0496/nextcloud_attachments --with-dependencies |
319 |
|
320 |
- |
321 |
-COMPOSER_ALLOW_SUPERUSER=1 /usr/bin/php74 /usr/local/bin/composer self-update |
322 |
-COMPOSER_ALLOW_SUPERUSER=1 /usr/bin/php74 /usr/local/bin/composer update --with-dependencies |
323 |
-/sbin/e-smith/db configuration setprop php74 AllowUrlFopen off |
324 |
-/sbin/e-smith/expand-template /etc/opt/remi/php74/php.ini |
325 |
-/usr/bin/systemctl restart php74-php-fpm >/dev/null 2>&1 |
326 |
+COMPOSER_ALLOW_SUPERUSER=1 /usr/bin/php81 /usr/local/bin/composer self-update |
327 |
+COMPOSER_ALLOW_SUPERUSER=1 /usr/bin/php81 /usr/local/bin/composer update --with-dependencies |
328 |
+/sbin/e-smith/db configuration setprop php81 AllowUrlFopen off |
329 |
+/sbin/e-smith/expand-template /etc/opt/remi/php81/php.ini |
330 |
+/usr/bin/systemctl restart php81-php-fpm >/dev/null 2>&1 |
331 |
cd $pathroundcube |
332 |
|