Compare commits

...

12 Commits

Author SHA1 Message Date
17f861165f * Thu Apr 10 2025 Jean-Philippe Pialasse <jpp@koozali.org> 1.6-10.sme
- fix login to roundcube after restore [SME: 12981]
2025-04-10 18:34:56 -04:00
1232b55c13 * Tue Apr 08 2025 Jean-Philippe Pialasse <jpp@koozali.org> 1.6-9.sme
- fix login to roundcube after restore [SME: 12981]
2025-04-08 23:21:55 -04:00
db97b6834f * Sun Mar 30 2025 Jean-Philippe Pialasse <jpp@koozali.org> 1.6-8.sme
- remove service handling from post-upgrade event [SME: 12977]
2025-03-30 23:20:31 -04:00
c53da784a1 * Mon Feb 17 2025 Jean-Philippe Pialasse <jpp@koozali.org> 1.6-7.sme
- fix roundcube not accessible after install [SME: 12928]
- avoid need to relog in case of reloading of configuration [SME: 12929]
2025-02-17 00:53:59 -05:00
e953fc8ab6 * Mon Feb 17 2025 Jean-Philippe Pialasse <jpp@koozali.org> 1.6-7.sme
- fix roundcube not accessibel after install [SME: 12928]
2025-02-17 00:36:56 -05:00
98223108e9 cleanup 2025-02-17 00:23:11 -05:00
00f46e1e5a * Wed Feb 12 2025 Jean-Philippe Pialasse <jpp@koozali.org> 1.6-6.sme
- fix typo in roundcubemail.action [SME: 12917]
2025-02-12 23:34:49 -05:00
b6255d91c3 * Fri Jan 03 2025 Jean-Philippe Pialasse <jpp@koozali.org> 1.6-5.sme
- set more relaxed CSP for roundcube [SME: 12861]
2025-01-03 14:48:56 -05:00
7f03032404 * Sat Dec 14 2024 Jean-Philippe Pialasse <jpp@koozali.org> 1.6-4.sme
- fix roundcube not working on initial install [SME: 12812]
2024-12-14 18:09:44 -05:00
c9aaa2a7fb Add *.bak to .gitignore 2024-11-12 19:21:47 +00:00
29d628469d Update README with specific Bugzilla links with status options 2024-10-27 14:29:36 +00:00
7f716af359 Update readme bugzilla link to show all outstanding bugs 2024-10-27 12:13:21 +00:00
12 changed files with 79 additions and 38 deletions
.gitignoreREADME.mdcontriborbasecreatelinks
root/etc
dnf/plugins/post-transaction-actions.d
e-smith
db/configuration/migrate
events/actions
templates/etc
e-smith/sql/init
httpd/conf/httpd.conf/VirtualHosts
php-fpm.d/www.conf
roundcubemail/config.inc.php
smeserver-roundcube.spec

3
.gitignore vendored

@ -1,3 +1,4 @@
*.rpm
*.log
*spec-20*
*spec-20**.bak
*gz

@ -6,7 +6,14 @@ SMEServer Koozali developed git repo for smeserver-roundcube core
<br />https://wiki.koozali.org/smeserver-roundcube
## Bugzilla
Show list of outstanding bugs: [here](https://bugs.koozali.org/buglist.cgi?component=smeserver-roundcube&product=SME%20Server%2011.X&query_format=advanced&limit=0&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=CONFIRMED)
Show list of outstanding bugs:
[All](https://bugs.koozali.org/buglist.cgi?action=wrap&bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=NEEDINFO&bug_status=IN_PROGRESS&bug_status=RESOLVED&bug_status=VERIFIED&cf_package=smeserver-roundcube&classification=SME+Server&list_id=105756&order=changeddate+DESC%2Ccomponent%2Cpriority%2Cbug_severity&query_format=advanced)
[Confirmed](https://bugs.koozali.org/buglist.cgi?action=wrap&bug_status=CONFIRMED&cf_package=smeserver-roundcube&classification=SME+Server&order=changeddate+DESC%2Ccomponent%2Cpriority%2Cbug_severity&query_format=advanced)
[Unconfirmed](https://bugs.koozali.org/buglist.cgi?action=wrap&bug_status=UNCONFIRMED&cf_package=smeserver-roundcube&classification=SME+Server&order=changeddate+DESC%2Ccomponent%2Cpriority%2Cbug_severity&query_format=advanced)
[Need info](https://bugs.koozali.org/buglist.cgi?action=wrap&bug_status=NEEDINFO&cf_package=smeserver-roundcube&classification=SME+Server&order=changeddate+DESC%2Ccomponent%2Cpriority%2Cbug_severity&query_format=advanced)
[In progress](https://bugs.koozali.org/buglist.cgi?action=wrap&bug_status=IN_PROGRESS&cf_package=smeserver-roundcube&classification=SME+Server&order=changeddate+DESC%2Ccomponent%2Cpriority%2Cbug_severity&query_format=advanced)
[Resolved](https://bugs.koozali.org/buglist.cgi?action=wrap&bug_status=RESOLVED&cf_package=smeserver-roundcube&classification=SME+Server&order=changeddate+DESC%2Ccomponent%2Cpriority%2Cbug_severity&query_format=advanced)
[Verified](https://bugs.koozali.org/buglist.cgi?action=wrap&bug_status=VERIFIED&cf_package=smeserver-roundcube&classification=SME+Server&order=changeddate+DESC%2Ccomponent%2Cpriority%2Cbug_severity&query_format=advanced)
## Description

@ -1 +0,0 @@
sme10

@ -33,6 +33,8 @@ for my $event (qw(
conf-roundcube
roundcube-update
console-save
post-install
post-upgrade
))
{
templates2events("/usr/share/roundcubemail/plugins/managesieve/config.inc.php", $event);
@ -49,26 +51,26 @@ for my $event (qw(
roundcube-update
))
{
templates2events("/etc/opt/remi/php81/php-fpm.d/www.conf",$event);
templates2events("/etc/httpd/conf/httpd.conf", $event);
templates2events("/etc/dovecot/dovecot.conf", $event);
safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/php81-php-fpm");
safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/mysql.init");
safe_symlink("sigusr1", "root/etc/e-smith/events/$event/services2adjust/httpd-e-smith");
safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/dovecot");
safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/qmail");
}
#We want to expand /etc/e-smith/templates-user/.qmail
foreach my $event (qw(
smeserver-roundcube-update
conf-roundcube
roundcube-update
post-install
post-upgrade
))
{
templates2events("/etc/opt/remi/php81/php-fpm.d/www.conf",$event);
templates2events("/etc/httpd/conf/httpd.conf", $event);
templates2events("/etc/dovecot/dovecot.conf", $event);
event_link("qmail-update-user", $event, "20");
event_link("roundcube-conf", $event, "03");
event_link("roundcube-conf", $event, "05");
}
safe_symlink("/usr/share/php/Net/LDAP3","root/usr/share/pear/Net/LDAP3");
safe_symlink("/usr/share/php/Net/LDAP3.php","root/usr/share/pear/Net/LDAP3.php");

@ -0,0 +1 @@
roundcubemail:any:/sbin/e-smith/signal-event smeserver-roundcube-update

@ -8,13 +8,23 @@
$DB->set_prop('roundcube','access', "private");
$DB->set_prop('roundcube','access', "public") if ($PublicAccess =~ /global/);
$DB->set_prop('roundcube','status', "disabled") if ($PublicAccess == "none");
}
}
my $pw = $rec->prop('DbPassword');
return "" if $pw;
$rec->set_prop('DbPassword', sprintf("%15.0f", int( (1000000000000000) * rand() )));
$rec->set_prop('DbPassword', sprintf("%15.0f", int( (1000000000000000) * rand() ))) unless $pw;
my $pwd = $rec->prop('des_key');
unless ($pwd) {
open( RANDOM, "/dev/urandom" );
my $buf;
read( RANDOM, $buf, 17);
$pwd = encode_base64($buf);
chomp $pwd;
close RANDOM;
$rec->set_prop('des_key', $pwd);
}
}

@ -3,12 +3,16 @@
/usr/bin/sed -i -e 's/^.*error_reporting.*$/ \/\/rem/' /usr/share/roundcubemail/program/lib/Roundcube/bootstrap.php
# update composer
# if installed before user apache becom an alias of www 102
/bin/rpm --setugids roundcubemail
/bin/rpm --setperms roundcubemail
# disabled by default for SME11 as we would rather the stability of rpms
#/usr/bin/rcplugin_update.sh
# prevent bug with spell checker: An error was encountered on the server. Please try again later.
pushd /usr/share/myspell
pushd /usr/share/myspell >/dev/null
[ -f en.dic ] || ln -s en_US.dic en.dic
[ -f en.aff ] || ln -s en_US.aff en.aff
popd
popd >/dev/null

@ -3,23 +3,20 @@
my $user = $roundcube{DbUser} || 'roundcube';
my $pass = $roundcube{DbPassword} || 'changeme';
$OUT .= <<END
#! /bin/sh
if [ -d /var/lib/mysql/$db ]; then
#if you need to add plugins:
# /usr/bin/mysql $db < /usr/share/roundcubemail/plugins/calendar/drivers/database/SQL/mysql.initial.sql
# /usr/bin/mysql $db < /usr/share/roundcubemail/plugins/calendar/drivers/kolab/SQL/mysql.initial.sql
# /usr/bin/mysql $db < /usr/share/roundcubemail/plugins/tasklist/drivers/database/SQL/mysql.initial.sql
exit
fi
/usr/bin/mysql <<EOF
CREATE DATABASE $db DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
use $db;
source /usr/share/roundcubemail/SQL/mysql.initial.sql;
#!/bin/sh
/usr/bin/mariadb <<EOF
CREATE DATABASE IF NOT EXISTS $db DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
use mysql;
GRANT ALL PRIVILEGES ON $db.* TO $user\@localhost
IDENTIFIED BY '$pass';
flush privileges;
EOF
if [ ! -f /var/lib/mysql/$db/users.ibd ] ; then
cat /usr/share/roundcubemail/SQL/mysql.initial.sql | /usr/bin/mariadb $db
fi
exit 0
END
}

@ -23,6 +23,12 @@
} else {
$OUT .= " Alias /$place $dirs{$place}\n";
}
$OUT .= " <Location '/$place'>\n";
# strict CSP not yet supported see https://github.com/roundcube/roundcubemail/issues/6202 and few others
$OUT .= " Header set Content-Security-Policy \"default-src 'none'; script-src 'self' 'unsafe-eval' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self'; frame-src 'self'; connect-src 'self'; frame-ancestors 'self'; base-uri 'self'; form-action 'self';\"\n";
$OUT .= " </Location>\n";
}
}

@ -10,7 +10,7 @@ if ($PHP_VERSION eq $phpversion){
my $open_basedir= $roundcube{PHPBaseDir} || '';
my $include_path = ".:/usr/share/pear-addons:/usr/share/pear:/usr/share/pear-data/:/usr/share/php".
":/opt/remi/php81/root/usr/share/pear:/opt/remi/php81/root/usr/share/php".
":/opt/remi/php81/root/usr/share/pear-data/:/opt/remi/php82/root/usr/share/pear-data/: /opt/remi/php83/root/usr/share/pear-data/";
":/opt/remi/php81/root/usr/share/pear-data/:/opt/remi/php82/root/usr/share/pear-data/:/opt/remi/php83/root/usr/share/pear-data/";
$open_basedir = "/usr/share/roundcubemail:/etc/roundcubemail/:/var/log/roundcubemail:/var/lib/roundcubemail:/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:$include_path";
my $id = 'roundcube';
my $max_children = $roundcube{'PHPmaxChildren'} || 20;

@ -113,14 +113,7 @@ $config['x_frame_options'] = 'sameorigin';
// in the session record (and the client cookie if remember password is enabled).
// please provide a string of exactly 24 chars.
{
use MIME::Base64 qw(encode_base64);
open( RANDOM, "/dev/urandom" );
my $buf;
read( RANDOM, $buf, 17);
my $pwd = encode_base64($buf);
chomp $pwd;
close RANDOM;
$OUT .= "\$config['des_key'] = \'$pwd\' ;\n";
$OUT .= "\$config['des_key'] = \'".$roundcube{'des_key'}."\' ;\n";
}
// Automatically add this domain to user names for login

@ -1,8 +1,8 @@
%define name smeserver-roundcube
%define version 1.6
%define release 3
%define release 10
Summary: smserver rpm to setup roundcube, an IMAP mail client
Summary: smeserver rpm to setup roundcube, an IMAP mail client
Name: %{name}
Version: %{version}
Release: %{release}%{?dist}
@ -16,6 +16,7 @@ BuildArchitectures: noarch
BuildRequires: smeserver-devtools
Requires: smeserver-release >= 11.0
Requires: smeserver-apache >= 11.0
Requires: smeserver-php
Requires: roundcubemail >= 1.6
Requires: roundcubemail < 1.7
Requires: composer >= 2.7.8
@ -38,6 +39,7 @@ Requires: roundcube-plugin-contextmenu
Requires: php-sabre-dav php-sabre-event php-sabre-http php-sabre-uri2 php-sabre-vobject4 php-sabre-xml2
Requires: php81-php-pspell php82-php-pspell php83-php-pspell
Requires: enchant php81-php-enchant php82-php-enchant php83-php-enchant
Requires: php81-php-xml php82-php-xml php83-php-xml
Requires: hunspell-en hunspell-en-GB
AutoReqProv: no
@ -83,6 +85,25 @@ fi
%attr(755,root,root) /usr/bin/rcplugin_update.sh
%changelog
* Thu Apr 10 2025 Jean-Philippe Pialasse <jpp@koozali.org> 1.6-10.sme
- fix login to roundcube after restore [SME: 12981]
* Sun Mar 30 2025 Jean-Philippe Pialasse <jpp@koozali.org> 1.6-8.sme
- remove service handling from post-upgrade event [SME: 12977]
* Mon Feb 17 2025 Jean-Philippe Pialasse <jpp@koozali.org> 1.6-7.sme
- fix roundcube not accessible after install [SME: 12928]
- avoid need to relog in case of reloading of configuration [SME: 12929]
* Wed Feb 12 2025 Jean-Philippe Pialasse <jpp@koozali.org> 1.6-6.sme
- fix typo in roundcubemail.action [SME: 12917]
* Fri Jan 03 2025 Jean-Philippe Pialasse <jpp@koozali.org> 1.6-5.sme
- set more relaxed CSP for roundcube [SME: 12861]
* Sat Dec 14 2024 Jean-Philippe Pialasse <jpp@koozali.org> 1.6-4.sme
- fix roundcube not working on initial install [SME: 12812]
* Sun Sep 01 2024 Jean-Philippe Pialasse <jpp@koozali.org> 1.6-3.sme
- initial version for SME11 [SME: 12617]
- build and require rpm for plugins and skins