diff --git a/README.openSUSE b/README.openSUSE
index 75b127f..36c0b5e 100644
--- a/README.openSUSE
+++ b/README.openSUSE
@@ -31,7 +31,7 @@ roundcube user. Here is an example of that procedure:
IDENTIFIED BY 'password';
> quit
-# mysql roundcubemail < /srv/www/roundcubemail/SQL/mysql.initial.sql
+# mysql roundcubemail < /usr/share/doc/packages/roundcubemail/SQL/mysql.initial.sql
Note 1: 'password' is the master password for the roundcube user. It is strongly
recommended you replace this with a more secure password. Please keep in
diff --git a/roundcubemail-0.9.4.tar.gz b/roundcubemail-0.9.4.tar.gz
deleted file mode 100644
index e55a19d..0000000
--- a/roundcubemail-0.9.4.tar.gz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:611b2905d8c97580b0139437c05225fc354b3e8e845692bb29afac191abb5bc0
-size 3659165
diff --git a/roundcubemail-0.9.5-dep.tar.gz b/roundcubemail-0.9.5-dep.tar.gz
new file mode 100644
index 0000000..fbbc252
--- /dev/null
+++ b/roundcubemail-0.9.5-dep.tar.gz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:64f72b49c89dc72ddc6023ccff8f87aad39831995e86c592fa3648a499ccdbf9
+size 3410495
diff --git a/roundcubemail-httpd.conf b/roundcubemail-httpd.conf
index 94052ba..0f4f6bb 100644
--- a/roundcubemail-httpd.conf
+++ b/roundcubemail-httpd.conf
@@ -10,15 +10,21 @@
Alias /roundcube __ROUNDCUBEPATH__
+ Alias /roundcubemail __ROUNDCUBEPATH__
# AddDefaultCharset UTF-8
AddType text/x-component .htc
- Order allow,deny
- #Allow from 127.0.0.1
- Allow from all
+
+ Require all granted
+
+
+ Order allow,deny
+ #Allow from 127.0.0.1
+ Allow from all
+
Options -Indexes FollowSymLinks
@@ -76,8 +82,13 @@ AddType text/x-component .htc
# Special directories
- Order allow,deny
- Deny from all
+
+ Require all denied
+
+
+ Order allow,deny
+ Deny from all
+
@@ -88,23 +99,49 @@ AddType text/x-component .htc
- Order allow,deny
- Deny from all
+ Options -FollowSymLinks
+ AllowOverride None
+
+ Require all denied
+
+
+ Order allow,deny
+ Deny from all
+
- Order allow,deny
- Deny from all
+ Options -FollowSymLinks
+ AllowOverride None
+
+ Require all denied
+
+
+ Order allow,deny
+ Deny from all
+
- Order allow,deny
- Deny from all
+ Options -FollowSymLinks
+ AllowOverride None
+
+ Require all denied
+
+
+ Order allow,deny
+ Deny from all
+
- Order allow,deny
- Deny from all
+
+ Require all denied
+
+
+ Order allow,deny
+ Deny from all
+
diff --git a/roundcubemail-rpmlintrc b/roundcubemail-rpmlintrc
index 318a5f2..eb4daa3 100644
--- a/roundcubemail-rpmlintrc
+++ b/roundcubemail-rpmlintrc
@@ -1,6 +1 @@
-addFilter("devel-file-in-non-devel-package")
-addFilter("files-duplicate /etc/roundcubemail/main.inc.php.dist")
-addFilter("files-duplicate /etc/roundcubemail/db.inc.php")
-addFilter("non-executable-script /srv/www/roundcubemail/plugins/password/drivers/chpass-wrapper.py")
-addFilter("wrong-file-end-of-line-encoding /usr/share/doc/packages/roundcubemail/SQL/mssql.initial.sql")
-addFilter("wrong-file-end-of-line-encoding /usr/share/doc/packages/roundcubemail/SQL/mssql.upgrade.sql")
+addFilter("E: devel-file-in-non-devel-package")
diff --git a/roundcubemail.changes b/roundcubemail.changes
index 945e4b9..a676b8d 100644
--- a/roundcubemail.changes
+++ b/roundcubemail.changes
@@ -1,3 +1,39 @@
+-------------------------------------------------------------------
+Fri Nov 22 15:46:06 UTC 2013 - aj@ajaissle.de
+
+- Also alias /roundcubemail to roundcube path
+
+-------------------------------------------------------------------
+Thu Nov 21 17:11:33 UTC 2013 - aj@ajaissle.de
+
+- Changed source package to *-dep.tar.gz
+- Optimized spec file
+ * Replaced default DES string with some more secure, random string
+ * Moved SQL files to %doc
+ * Moved logs/ and temp/ to /var/log/ and /var/lib/
+- httpd.conf now 'speaks' Apache 2.4
+
+-------------------------------------------------------------------
+Thu Nov 21 15:50:31 UTC 2013 - aj@ajaissle.de
+
+- New upstream release 0.9.5
+ * Fix failing vCard import when email address field contains spaces (#1489386)
+ * Fix default spell-check configuration after Google suspended their spell service
+ * Fix vulnerability in handling _session argument of utils/save-prefs (#1489382)
+ * Fix iframe onload for upload errors handling (#1489379)
+ * Fix address matching in Return-Path header on identity selection (#1489374)
+ * Fix text wrapping issue with long unwrappable lines (#1489371)
+ * Fixed mispelling: occured -> occurred (#1489366)
+ * Fixed issues where HTML comments inside style tag would hang Internet Explorer
+ * Fix setting domain in virtualmin password driver (#1489332)
+ * Hide Delivery Status Notification option when smtp_server is unset (#1489336)
+ * Display full attachment name using title attribute when name is too long to display (#1489320)
+ * Fix attachment icon issue when rare font/language is used (#1489326)
+ * Fix expanded thread root message styling after refreshing messages list (#1489327)
+ * Fix issue where From address was removed from Cc and Bcc fields when editing a draft (#1489319)
+ * Fix error_reporting directive check (#1489323)
+ * Fix de_DE localization of "About" label in Help plugin (#1489325)
+
-------------------------------------------------------------------
Sun Sep 8 19:16:28 UTC 2013 - wr@rosenauer.org
diff --git a/roundcubemail.logrotate b/roundcubemail.logrotate
new file mode 100644
index 0000000..402aefa
--- /dev/null
+++ b/roundcubemail.logrotate
@@ -0,0 +1,7 @@
+/var/log/roundcubemail/console /var/log/roundcubemail/errors /var/log/roundcubemail/imap /var/log/roundcubemail/ldap /var/log/roundcubemail/sendmail /var/log/roundcubemail/sieve /var/log/roundcubemail/smtp /var/log/roundcubemail/sql /var/log/roundcubemail/userlogins {
+ missingok
+ compress
+ notifempty
+ size 30k
+ create 0660 wwwrun www
+}
\ No newline at end of file
diff --git a/roundcubemail.spec b/roundcubemail.spec
index 0e9c79a..9b12e59 100644
--- a/roundcubemail.spec
+++ b/roundcubemail.spec
@@ -17,17 +17,29 @@
Name: roundcubemail
+Version: 0.9.5
+Release: 0
Summary: A modern browser-based multilingual IMAP client
License: GPL-3.0+ and GPL-2.0 and BSD-3-Clause
Group: Productivity/Networking/Email/Clients
+
Url: http://www.roundcube.net/
-Version: 0.9.4
-Release: 0
+Source0: %{name}-%{version}-dep.tar.gz
+Source1: %{name}-rpmlintrc
+Source2: %{name}-httpd.conf
+Source4: README.openSUSE
+Source5: %{name}.logrotate
+# PATCH-FIX-OPENSUSE use the general config directory /etc
+Patch0: %{name}-config-dir.patch
+
+BuildArch: noarch
BuildRequires: apache2-devel
%if 0%{suse_version} >= 1100
BuildRequires: fdupes
%endif
BuildRequires: pcre-devel
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
+
Requires: http_daemon
Requires: mod_php_any
Requires: php-exif
@@ -38,79 +50,187 @@ Requires: php-mcrypt
Requires: php-openssl
Requires: php-session
Requires: php_any_db
+
+## Requires: for upstream dep package
+Requires: php-pear-Auth_SASL >= 1.0.6
+Requires: php-pear-MDB2_Driver_mysqli
+Requires: php-pear-Mail_Mime >= 1.8.1
+Requires: php-pear-Mail_mimeDecode >= 1.5.5
+Requires: php-pear-Net_IDNA2 >= 0.1.1
+Requires: php-pear-Net_LDAP2
+Requires: php-pear-Net_SMTP
+Requires: php-pear-Net_Socket
+
+%if 0%{?suse_version}
+Recommends: logrotate
+%endif
Recommends: php-mysql
Recommends: php5-intl
Recommends: php5-fileinfo
-## Requires: for upstream dep package
-#Requires: php5-pear-Auth_SASL
-Source0: %{name}-%{version}.tar.gz
-Source2: %{name}-httpd.conf
-Source3: %{name}-rpmlintrc
-Source4: README.openSUSE
-# PATCH-FIX-OPENSUSE use the general config directory /etc
-Patch0: %{name}-config-dir.patch
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
-BuildArch: noarch
+
+Provides: roundcube_framework = %{version}
+Conflicts: roundcube-framework
+
%define apache_serverroot %(/usr/sbin/apxs2 -q DATADIR)
%define apache_sysconfdir %(/usr/sbin/apxs2 -q SYSCONFDIR)
-%define roundcubepath %{apache_serverroot}/%name
-%define roundcubeconfigpath %_sysconfdir/%name
+%define roundcubepath %{apache_serverroot}/%{name}
+%define roundcubeconfigpath %{_sysconfdir}/%{name}
%description
-RoundCube Webmail is a browser-based multilingual IMAP client with an
+Roundcube Webmail is a browser-based multilingual IMAP client with an
application-like user interface. It provides full functionality you
expect from an e-mail client, including MIME support, address book,
folder manipulation, message searching and spell checking.
-RoundCube Webmail is written in PHP and requires the MySQL database.
+Roundcube Webmail is written in PHP and requires the MySQL database.
The user interface is fully skinnable using XHTML and CSS 2.
%prep
-%setup -q -n %{name}-%{version}
+%setup -q -n %{name}-%{version}-dep
%patch0 -p1
cp %{SOURCE4} .
+cp %{SOURCE5} .
+
# remove cruft from source archive
-find . -name ".gitignore" -exec rm {} \;
+find . -name ".gitignore" -delete
+# no need to check .htaccess each time, the apache config takes care of the restrictions
+find . -name ".htaccess" -delete
+# remove mssql scripts (not needed on openSUSE)
+rm -rf \
+ SQL/mssql/ \
+ SQL/mssql.*.sql
+# remove shebang from chpass-wrapper
+sed -i '1d' plugins/password/helpers/chpass-wrapper.py
+# remove INSTALL doc
+rm INSTALL
%build
%install
-install -d -m 0755 %buildroot%roundcubepath
-cp -a * %buildroot%{roundcubepath}/
-mkdir -p %buildroot/%_sysconfdir/%name
-cp config/* %buildroot/%{roundcubeconfigpath}/
-cp %buildroot/%{roundcubeconfigpath}/main.inc.php.dist %buildroot/%{roundcubeconfigpath}/main.inc.php
-cp %buildroot/%{roundcubeconfigpath}/db.inc.php.dist %buildroot/%{roundcubeconfigpath}/db.inc.php
-rm -rf %buildroot%{roundcubepath}/config
+# install roundcubemail.logrotate
+%{__install} -d -m 0755 %{buildroot}%{_sysconfdir}/logrotate
+mv %{name}.logrotate %{buildroot}%{_sysconfdir}/logrotate/
-# install httpd.conf file and adapt the configuration
-install -d -m 0755 %buildroot/%{apache_sysconfdir}/conf.d
-sed -e "s#__ROUNDCUBEPATH__#%{roundcubepath}#g" %{SOURCE2} > %buildroot%{apache_sysconfdir}/conf.d/roundcubemail.conf
+# extract roundcube-framework
+%{__install} -d -m 0755 %{buildroot}%{_datadir}/php5
+mv program/lib/Roundcube %{buildroot}%{_datadir}/php5/Roundcube
-# install docs
-install -d -m 0755 %buildroot%_defaultdocdir/%name
-for i in CHANGELOG INSTALL UPGRADING LICENSE README.md README.openSUSE; do
- mv -v %{buildroot}%{roundcubepath}/$i %{buildroot}%{_defaultdocdir}/%name/
+# install roundcubemail
+%{__install} -d -m 0755 %{buildroot}%{roundcubepath}
+cp -a * %{buildroot}%{roundcubepath}/
+
+# install config
+mkdir -p %{buildroot}%{_sysconfdir}/%{name}
+cp config/* %{buildroot}%{roundcubeconfigpath}/
+cp %{buildroot}%{roundcubeconfigpath}/main.inc.php.dist %{buildroot}%{roundcubeconfigpath}/main.inc.php
+cp %{buildroot}%{roundcubeconfigpath}/db.inc.php.dist %{buildroot}%{roundcubeconfigpath}/db.inc.php
+rm -rf %{buildroot}%{roundcubepath}/config
+ln -s %{roundcubeconfigpath} %{buildroot}%{roundcubepath}/config
+
+# logs + temp go into /var/
+rm -rf %{buildroot}%{roundcubepath}/logs \
+ %{buildroot}%{roundcubepath}/temp
+mkdir -p %{buildroot}%{_localstatedir}/log/%{name} \
+ %{buildroot}%{_localstatedir}/lib/%{name}
+ln -s %{_localstatedir}/log/%{name}/ %{buildroot}%{roundcubepath}/logs
+ln -s %{_localstatedir}/lib/%{name}/ %{buildroot}%{roundcubepath}/temp
+
+# move some plugin configs to /etc/roundcubemail
+for PLUGIN in acl managesieve password; do
+ if [[ -f %{buildroot}%{roundcubepath}/plugins/$PLUGIN/config.inc.php.dist ]]; then
+ mv %{buildroot}%{roundcubepath}/plugins/$PLUGIN/config.inc.php.dist %{buildroot}%{roundcubeconfigpath}/$PLUGIN.inc.php
+ ln -s %{roundcubeconfigpath}/$PLUGIN.inc.php %{buildroot}%{roundcubepath}/plugins/$PLUGIN/config.inc.php
+ fi
done
-# no need to check .htaccess each time, the apache config takes care of the restrictions
-find %buildroot/%{roundcubepath} -name .htaccess -delete
+# install httpd.conf file and adapt the configuration
+%{__install} -d -m 0755 %{buildroot}%{apache_sysconfdir}/conf.d
+sed -e "s#__ROUNDCUBEPATH__#%{roundcubepath}#g" %{SOURCE2} > %{buildroot}%{apache_sysconfdir}/conf.d/roundcubemail.conf
+
+# install docs
+%{__install} -d -m 0755 %{buildroot}%{_defaultdocdir}/%{name}
+for i in CHANGELOG UPGRADING LICENSE README.md README.openSUSE SQL; do
+ mv -v %{buildroot}%{roundcubepath}/$i %{buildroot}%{_defaultdocdir}/%{name}/
+done
# fdupes
%if 0%{suse_version} >= 1100
-%fdupes %{buildroot}/%{roundcubepath}
+%fdupes %{buildroot}%{roundcubepath}
%endif
%clean
-rm -rf %buildroot
+rm -rf %{buildroot}
+
+%pre
+# backup logs, temp and config for migration
+if [[ ! -h %{roundcubepath}/logs ]]; then
+ if [[ -d %{roundcubepath}/logs ]]; then
+ mkdir -p %{roundcubepath}/migration
+ mv %{roundcubepath}/logs %{roundcubepath}/migration/.
+ fi
+fi
+if [[ ! -h %{roundcubepath}/temp ]]; then
+ if [[ -d %{roundcubepath}/temp ]]; then
+ mkdir -p %{roundcubepath}/migration
+ mv %{roundcubepath}/temp %{roundcubepath}/migration/.
+ fi
+fi
+for PLUGIN in acl managesieve password; do
+ if [[ ! -h %{roundcubepath}/plugins/$PLUGIN/config.inc.php ]]; then
+ if [[ -f %{roundcubepath}/plugins/$PLUGIN/config.inc.php ]]; then
+ mv %{roundcubepath}/plugins/$PLUGIN/config.inc.php %{roundcubepath}/migration/$PLUGIN.inc.php
+ fi
+ fi
+done
%post
+# replace default des string in config file for better security
+function makedesstr () {
+ chars=(0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z A
+ B C D E F G H I J K L M N O P Q R S T U V W X Y Z)
+
+ max=${#chars[*]}
+
+ for i in `seq 1 24`; do
+ let rand=${RANDOM}%%${max}
+ str="${str}${chars[$rand]}"
+ done
+ echo $str
+}
+sed -i "s/rcmail-\!24ByteDESkey\*Str/`makedesstr`/" /etc/roundcubemail/main.inc.php || : &> /dev/null
+
# enable apache required apache modules
if [ -x /usr/sbin/a2enmod ]; then
a2enmod -q alias || a2enmod alias
a2enmod -q rewrite || a2enmod rewrite
fi
+
+# restore backed up logs, temp and config
+if [[ -h %{roundcubepath}/logs ]]; then
+ if [[ -d %{roundcubepath}/migration/logs ]]; then
+ mkdir -p %{roundcubepath}/migrated
+ cp %{roundcubepath}/migration/logs/* %{roundcubepath}/logs/.
+ mv %{roundcubepath}/migration/logs %{roundcubepath}/migrated/.
+ fi
+fi
+if [[ -h %{roundcubepath}/temp ]]; then
+ if [[ -d %{roundcubepath}/migration/temp ]]; then
+ mkdir -p %{roundcubepath}/migrated
+ cp %{roundcubepath}/migration/temp/* %{roundcubepath}/temp/.
+ mv %{roundcubepath}/migration/temp %{roundcubepath}/migrated/.
+ fi
+fi
+for PLUGIN in acl managesieve password; do
+ if [[ -f %{roundcubepath}/migration/$PLUGIN.inc.php ]]; then
+ if [[ -h %{roundcubepath}/plugins/$PLUGIN/config.inc.php ]]; then
+ cp %{roundcubepath}/migration/$PLUGIN.inc.php %{roundcubeconfigpath}/.
+ mv %{roundcubepath}/migration/$PLUGIN.inc.php %{roundcubepath}/migrated/$PLUGIN.inc.php
+ fi
+ fi
+done
+
+# make config, if none exist
if [ ! -f %{roundcubeconfigpath}/main.inc.php ]; then
cp %{roundcubeconfigpath}/main.inc.php.dist %{roundcubeconfigpath}/main.inc.php
fi
@@ -121,25 +241,40 @@ exit 0
%files
%defattr(0644, root, root,0755)
-%doc %_defaultdocdir/%name/
+%doc CHANGELOG
+%doc LICENSE
+%doc README.md
+%doc README.openSUSE
+%doc UPGRADING
+%doc SQL/
%dir %{roundcubepath}
%dir %{roundcubeconfigpath}
%ghost %config(noreplace) %{roundcubeconfigpath}/db.inc.php
%ghost %config(noreplace) %{roundcubeconfigpath}/main.inc.php
-%config %{roundcubeconfigpath}/*
+%config(noreplace) %{roundcubeconfigpath}/acl.inc.php
+%config(noreplace) %{roundcubeconfigpath}/managesieve.inc.php
+%config(noreplace) %{roundcubeconfigpath}/password.inc.php
+%config %{roundcubeconfigpath}/db.inc.php.dist
+%config %{roundcubeconfigpath}/main.inc.php.dist
%config %{roundcubeconfigpath}/mimetypes.php
%config(noreplace) %{apache_sysconfdir}/conf.d/roundcubemail.conf
+%dir %{_sysconfdir}/logrotate
+%config(noreplace) %{_sysconfdir}/logrotate/%{name}.logrotate
%{roundcubepath}/composer.json-dist
+%{roundcubepath}/config
%{roundcubepath}/index.php
%{roundcubepath}/robots.txt
%attr(0755,root,root) %{roundcubepath}/bin/*.sh
%dir %{roundcubepath}/bin
%{roundcubepath}/installer/
+%{roundcubepath}/logs
%{roundcubepath}/plugins/
%{roundcubepath}/program/
%{roundcubepath}/skins/
-%{roundcubepath}/SQL
-%attr(-, wwwrun, root) %{roundcubepath}/logs/
-%attr(-, wwwrun, root) %{roundcubepath}/temp/
+%{roundcubepath}/temp
+%dir %{_datadir}/php5
+%{_datadir}/php5/Roundcube/
+%attr(-, wwwrun, root) %{_localstatedir}/log/%{name}
+%attr(-, wwwrun, root) %{_localstatedir}/lib/%{name}
%changelog