From a6162a020cb1fa4a2d1e005e35b34954163374fc Mon Sep 17 00:00:00 2001 From: Jean-Philippe Pialasse Date: Fri, 20 Sep 2024 11:13:53 -0400 Subject: [PATCH] * Sun Sep 01 2024 Jean-Philippe Pialasse 1.6-3.sme - initial version for SME11 [SME: 12617] - build and require rpm for plugins and skins - improve directory handling, spellchecker - fix httpd templates --- .../etc/e-smith/events/actions/roundcube-conf | 8 +++++ .../VirtualHosts/30RoundcubeWebmailAliases | 7 ++-- .../config.inc.php/70USER_INTERFACE | 33 ++++++++++++++----- .../config.inc.php/80ADDRESSBOOKS_SETTINGS | 4 +-- smeserver-roundcube.spec | 9 +++-- 5 files changed, 47 insertions(+), 14 deletions(-) diff --git a/root/etc/e-smith/events/actions/roundcube-conf b/root/etc/e-smith/events/actions/roundcube-conf index 3b74e0c..79243c1 100644 --- a/root/etc/e-smith/events/actions/roundcube-conf +++ b/root/etc/e-smith/events/actions/roundcube-conf @@ -2,5 +2,13 @@ # prevents setting error_reporting in 1.6; removed in newer versions /usr/bin/sed -i -e 's/^.*error_reporting.*$/ \/\/rem/' /usr/share/roundcubemail/program/lib/Roundcube/bootstrap.php # update composer + # 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 +[ -f en.dic ] || ln -s en_US.dic en.dic +[ -f en.aff ] || ln -s en_US.aff en.aff +popd + diff --git a/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/VirtualHosts/30RoundcubeWebmailAliases b/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/VirtualHosts/30RoundcubeWebmailAliases index 87ea9c9..c94845f 100644 --- a/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/VirtualHosts/30RoundcubeWebmailAliases +++ b/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/VirtualHosts/30RoundcubeWebmailAliases @@ -3,8 +3,11 @@ my $webmailStatus = $roundcube{'status'} || "disabled"; my $dirs; - $dirs{horde} = '/usr/share/roundcubemail'; - $dirs{webmail} = "$dirs{roundcubemail}"; + $dirs{roundcube} = '/usr/share/roundcubemail'; + $dirs{roundcubemail} = "$dirs{roundcube}"; + $dirs{horde} = "$dirs{roundcube}"; + $dirs{webmail} = "$dirs{roundcube}"; + my @places=('webmail','horde','roundcubemail','roundcube'); push(@places,$roundcube{'URL'}) if ((exists $roundcube{'URL'}) && ($roundcube{'URL'} ne '')); diff --git a/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/70USER_INTERFACE b/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/70USER_INTERFACE index c392ecd..552af8f 100644 --- a/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/70USER_INTERFACE +++ b/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/70USER_INTERFACE @@ -1,6 +1,23 @@ // ---------------------------------- // USER INTERFACE // ---------------------------------- +{ +# configuring default folders +# using same default as was with Horde +# note: archive, template not available here +$drafts_mbox=$imap{'draft'}||'Drafts'; +$junk_mbox=$imap{'junkmail'}||'junkmail'; +$sent_mbox=$imap{'sent'}||'Sent'; +$trash_mbox=$imap{'trash'}||'Trash'; +$default_folders=$roundcube{'default_folders'}||''; +$default_folder =~ tr/'//d; +my @def_fold=split(',',$default_folders); +push(@def_fold,('INBOX',$drafts_mbox,$junk_mbox,$sent_mbox,$trash_mbox)); +use List::MoreUtils qw(uniq); +@def_fold= uniq @def_fold; +$default_folders=join',' , map "'$_'" , @def_fold; +$OUT=""; +} // default messages sort column. Use empty value for default server's sorting, // or 'arrival', 'date', 'subject', 'from', 'to', 'fromto', 'size', 'cc' @@ -39,29 +56,29 @@ $config['date_long'] = 'Y-m-d H:i'; // store draft message is this mailbox // leave blank if draft messages should not be stored // NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) -$config['drafts_mbox'] = 'Drafts'; +$config['drafts_mbox'] = '{$drafts_mbox}'; // store spam messages in this mailbox // NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) -$config['junk_mbox'] = 'junkmail'; +$config['junk_mbox'] = '{$junk_mbox}'; // store sent message is this mailbox // leave blank if sent messages should not be stored // NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) -$config['sent_mbox'] = 'sent-mail'; +$config['sent_mbox'] = '{$sent_mbox}'; // move messages to this folder when deleting them // leave blank if they should be deleted directly // NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) -$config['trash_mbox'] = 'Trash'; +$config['trash_mbox'] = '{$trash_mbox}'; // display these folders separately in the mailbox list. // these folders will also be displayed with localized names // NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) -$config['default_folders'] = array('INBOX', 'Drafts', 'sent-mail', 'junkmail', 'Trash'); +$config['default_folders'] = array({$default_folders}); // Disable localization of the default folder names listed above -$config['show_real_foldernames'] = false; +$config['show_real_foldernames'] = { $roundcube{'show_real_foldernames'} || 'false'; }; // automatically create the above listed default folders on first login $config['create_default_folders'] = true; @@ -79,7 +96,7 @@ $config['enable_spellcheck'] = true; // Enables spellchecker exceptions dictionary. // Setting it to 'shared' will make the dictionary shared by all users. -$config['spellcheck_dictionary'] = false; +$config['spellcheck_dictionary'] = true; // Set the spell checking engine. Possible values: // - 'googie' - the default @@ -88,7 +105,7 @@ $config['spellcheck_dictionary'] = false; // - 'atd' - install your own After the Deadline server or check with the people at http://www.afterthedeadline.com before using their API // Since Google shut down their public spell checking service, you need to // connect to a Nox Spell Server when using 'googie' here. Therefore specify the 'spellcheck_uri' -$config['spellcheck_engine'] = 'googie'; +$config['spellcheck_engine'] = 'enchant'; // For locally installed Nox Spell Server or After the Deadline services, // please specify the URI to call it. diff --git a/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/80ADDRESSBOOKS_SETTINGS b/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/80ADDRESSBOOKS_SETTINGS index 51fbd3f..1c80b84 100644 --- a/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/80ADDRESSBOOKS_SETTINGS +++ b/root/etc/e-smith/templates/etc/roundcubemail/config.inc.php/80ADDRESSBOOKS_SETTINGS @@ -14,7 +14,7 @@ $config['address_book_type'] = 'sql'; // In order to enable public ldap search, configure an array like the Verisign // example further below. if you would like to test, simply uncomment the example. // Array key must contain only safe characters, ie. a-zA-Z0-9_ - $config['ldap_public']['Local_LDAP'] = array('hosts' => array('localhost:389'), +$config['ldap_public']['Local_LDAP'] = array('hosts' => array('localhost:389'), { $OUT .= " 'base_dn' \=\> " ."'". esmith::util::ldapBase($DomainName)."',"; @@ -39,7 +39,7 @@ $config['address_book_type'] = 'sql'; // An ordered array of the ids of the addressbooks that should be searched // when populating address autocomplete fields server-side. ex: array('sql','Verisign'); { - $OUT .= "\$config['autocomplete_addressbooks'] = array('sql','Local_LDAP');"; + $OUT .= "\$config['autocomplete_addressbooks'] = array('sql','Local_LDAP');\n"; $OUT .= "\$config['globaladdressbook_autocomplete'] = true;"; } diff --git a/smeserver-roundcube.spec b/smeserver-roundcube.spec index 8298200..17639a2 100644 --- a/smeserver-roundcube.spec +++ b/smeserver-roundcube.spec @@ -1,6 +1,6 @@ %define name smeserver-roundcube %define version 1.6 -%define release 2 +%define release 3 Summary: smserver rpm to setup roundcube, an IMAP mail client Name: %{name} @@ -36,6 +36,9 @@ Requires: roundcube-plugin-nextcloud_attachments Requires: roundcube-plugin-globaladdressbook 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: hunspell-en hunspell-en-GB AutoReqProv: no %description @@ -80,9 +83,11 @@ fi %attr(755,root,root) /usr/bin/rcplugin_update.sh %changelog -* Sun Sep 01 2024 Jean-Philippe Pialasse 1.6-2.sme +* Sun Sep 01 2024 Jean-Philippe Pialasse 1.6-3.sme - initial version for SME11 [SME: 12617] - build and require rpm for plugins and skins +- improve directory handling, spellchecker +- fix httpd templates * Mon Mar 25 2024 Jean-Philippe Pialasse 1.2-24.sme - fix temp event not ending because of interactive install of plugin [SME: 12530]