forked from pool/roundcubemail
3370e85f2d
- Update to 1.1.4 Add workaround for https://bugs.php.net/bug.php?id=70757 (#1490582) Fix duplicate messages in list and wrong count after delete (#1490572) Fix so Installer requires PHP5 Make brute force attacks harder by re-generating security token on every failed login (#1490549) Slow down brute-force attacks by waiting for a second after failed login (#1490549) Fix .htaccess rewrite rules to not block .well-known URIs (#1490615) Fix mail view scaling on iOS (#1490551) Fix so database_attachments::cleanup() does not remove attachments from other sessions (#1490542) Fix responses list update issue after response name change (#1490555) Fix bug where message preview was unintentionally reset on check-recent action (#1490563) Fix bug where HTML messages with invalid/excessive css styles couldn't be displayed (#1490539) Fix redundant blank lines when using HTML and top posting (#1490576) Fix redundant blank lines on start of text after html to text conversion (#1490577) Fix HTML sanitizer to skip <!-- node type X --> in output (#1490583) Fix invalid LDAP query in ACL user autocompletion (#1490591) Fix regression in displaying contents of message/rfc822 parts (#1490606) Fix handling of message/rfc822 attachments on replies and forwards (#1490607) Fix PDF support detection in Firefox > 19 (#1490610) Fix path traversal vulnerability (CWE-22) in setting a skin (#1490620) Fix so drag-n-drop of text (e.g. recipient addresses) on compose page actually works (#1490619) - explicitely add required PHP packages (according to INSTALL): + php-dom, php-json, php-sockets - also recommend additional PHP packages: + php-zip, php-pear-Crypt_GPG - use generic php- prefix also for recommended packages (no explicit php5-) - no Dockerfile readme any more OBS-URL: https://build.opensuse.org/request/show/351471 OBS-URL: https://build.opensuse.org/package/show/server:php:applications/roundcubemail?expand=0&rev=96
293 lines
10 KiB
RPMSpec
293 lines
10 KiB
RPMSpec
#
|
|
# spec file for package roundcubemail
|
|
#
|
|
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
Name: roundcubemail
|
|
Version: 1.1.4
|
|
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/
|
|
Source0: %{name}-%{version}.tar.gz
|
|
Source1: %{name}-rpmlintrc
|
|
Source2: %{name}-httpd.conf
|
|
Source4: README.openSUSE
|
|
Source5: %{name}.logrotate
|
|
# PATCH-FIX-OPENSUSE roundcubemail-1.1-beta-config_dir.patch -- use the general config directory /etc
|
|
Patch0: %{name}-1.1-beta-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 >= 5.3
|
|
Requires: php-dom
|
|
Requires: php-exif
|
|
Requires: php-gettext
|
|
Requires: php-iconv
|
|
Requires: php-json
|
|
Requires: php-mbstring
|
|
Requires: php-mcrypt
|
|
Requires: php-openssl
|
|
Requires: php-session
|
|
Requires: php-sockets
|
|
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.9.0
|
|
Requires: php-pear-Net_IDNA2 >= 0.1.1
|
|
Requires: php-pear-Net_LDAP2
|
|
Requires: php-pear-Net_SMTP
|
|
Requires: php-pear-Net_Sieve >= 1.3.2
|
|
Requires: php-pear-Net_Socket
|
|
|
|
Recommends: logrotate
|
|
Recommends: php-mysql
|
|
Recommends: php-intl
|
|
Recommends: php-fileinfo
|
|
Recommends: php-zip
|
|
Recommends: php-pear-Crypt_GPG >= 1.2.0
|
|
|
|
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}
|
|
|
|
%description
|
|
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.
|
|
The user interface is fully skinnable using XHTML and CSS 2.
|
|
|
|
|
|
%prep
|
|
%setup -q
|
|
%patch0 -p1
|
|
cp %{SOURCE4} .
|
|
|
|
# remove cruft from source archive
|
|
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 roundcubemail.logrotate
|
|
%{__install} -d -m 0755 %{buildroot}%{_sysconfdir}/logrotate.d
|
|
%{__install} %{SOURCE5} %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
|
|
|
|
# extract roundcube-framework
|
|
%{__install} -d -m 0755 %{buildroot}%{_datadir}/php5
|
|
mv program/lib/Roundcube %{buildroot}%{_datadir}/php5/Roundcube
|
|
|
|
# install roundcubemail
|
|
%{__install} -d -m 0755 %{buildroot}%{roundcubepath}
|
|
cp -a * %{buildroot}%{roundcubepath}/
|
|
|
|
# install config
|
|
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
|
|
cp config/* %{buildroot}%{roundcubeconfigpath}/
|
|
%{__install} %{buildroot}%{roundcubeconfigpath}/config.inc.php.sample %{buildroot}%{roundcubeconfigpath}/config.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
|
|
%{__install} -d %{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
|
|
|
|
# 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
|
|
|
|
# create a link for SQL
|
|
%{__ln_s} %{_defaultdocdir}/%{name}/SQL %{buildroot}%{roundcubepath}/SQL
|
|
|
|
# Make ghost files
|
|
mkdir %{buildroot}%{roundcubepath}/migrated
|
|
mkdir %{buildroot}%{roundcubepath}/migration
|
|
|
|
# fdupes
|
|
%if 0%{suse_version} >= 1100
|
|
%fdupes %{buildroot}%{roundcubepath}
|
|
%endif
|
|
|
|
%pre
|
|
# backup logs, temp and config for migration
|
|
if [ ! -h %{roundcubepath}/logs ] && [ -d %{roundcubepath}/logs ]; then
|
|
mkdir -p %{roundcubepath}/migration
|
|
mv %{roundcubepath}/logs %{roundcubepath}/migration/.
|
|
fi
|
|
if [ ! -h %{roundcubepath}/temp ] && [ -d %{roundcubepath}/temp ]; then
|
|
mkdir -p %{roundcubepath}/migration
|
|
mv %{roundcubepath}/temp %{roundcubepath}/migration/.
|
|
fi
|
|
if [ ! -h %{roundcubepath}/SQL ] && [ -d %{roundcubepath}/SQL ]; then
|
|
mkdir -p %{roundcubepath}/migration
|
|
mv %{roundcubepath}/SQL %{roundcubepath}/migration/.
|
|
fi
|
|
|
|
for PLUGIN in acl managesieve password; do
|
|
if [ ! -h %{roundcubepath}/plugins/$PLUGIN/config.inc.php ] && [ -f %{roundcubepath}/plugins/$PLUGIN/config.inc.php ]; then
|
|
mv %{roundcubepath}/plugins/$PLUGIN/config.inc.php %{roundcubepath}/migration/$PLUGIN.inc.php
|
|
fi
|
|
done
|
|
|
|
%post
|
|
# replace default des string in config file for better security
|
|
makedesstr() {
|
|
local chars="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
|
local max=${#chars}
|
|
for i in $(seq 1 24); do
|
|
echo "$chars" | dd bs=1 skip=$(($(od -An -d -N2 /dev/urandom) % $max)) count=1 2>/dev/null
|
|
done
|
|
echo
|
|
}
|
|
|
|
sed -i "s/rcmail-\!24ByteDESkey\*Str/`makedesstr`/" %{roundcubeconfigpath}/defaults.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
|
|
a2enmod -q version || a2enmod version
|
|
fi
|
|
|
|
# restore backed up logs, temp and config
|
|
if [ -h %{roundcubepath}/logs ] && [ -d %{roundcubepath}/migration/logs ]; then
|
|
mkdir -p %{roundcubepath}/migrated
|
|
cp %{roundcubepath}/migration/logs/* %{roundcubepath}/logs/.
|
|
mv %{roundcubepath}/migration/logs %{roundcubepath}/migrated/.
|
|
fi
|
|
if [ -h %{roundcubepath}/temp ] && [ -d %{roundcubepath}/migration/temp ]; then
|
|
mkdir -p %{roundcubepath}/migrated
|
|
cp %{roundcubepath}/migration/temp/* %{roundcubepath}/temp/.
|
|
mv %{roundcubepath}/migration/temp %{roundcubepath}/migrated/.
|
|
fi
|
|
if [ -h %{roundcubepath}/SQL ] && [ -d %{roundcubepath}/migration/SQL ]; then
|
|
rm -r %{roundcubepath}/migration/SQL
|
|
fi
|
|
for PLUGIN in acl managesieve password; do
|
|
if [ -f %{roundcubepath}/migration/$PLUGIN.inc.php ] && [ -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
|
|
done
|
|
for MIGDIR in migration migrated; do
|
|
if [ -d %{roundcubepath}/$MIGDIR ]; then
|
|
find %{roundcubepath}/$MIGDIR -empty -delete
|
|
fi
|
|
if [ -d %{roundcubepath}/$MIGDIR ]; then
|
|
echo "Found %{roundcubepath}/$MIGDIR! Make sure you delete this folder after checking the migration!"
|
|
fi
|
|
done
|
|
|
|
# update/make new config
|
|
if [ ! -f %{roundcubeconfigpath}/config.inc.php ]; then
|
|
if [ -f %{roundcubeconfigpath}/main.inc.php ] && [ -f %{roundcubeconfigpath}/db.inc.php ]; then
|
|
%{roundcubepath}/bin/update.sh \
|
|
--version '?' \
|
|
--accept
|
|
else
|
|
cp %{roundcubeconfigpath}/config.inc.php.sample %{roundcubeconfigpath}/config.inc.php
|
|
fi
|
|
fi
|
|
|
|
exit 0
|
|
|
|
%files
|
|
%defattr(0644, root, root,0755)
|
|
%doc CHANGELOG
|
|
%doc LICENSE
|
|
%doc README.md
|
|
%doc README.openSUSE
|
|
%doc UPGRADING
|
|
%doc SQL/
|
|
%dir %{roundcubepath}
|
|
%dir %{roundcubeconfigpath}
|
|
%ghost %config(noreplace) %{roundcubeconfigpath}/config.inc.php
|
|
%config(noreplace) %{roundcubeconfigpath}/acl.inc.php
|
|
%config(noreplace) %{roundcubeconfigpath}/managesieve.inc.php
|
|
%config(noreplace) %{roundcubeconfigpath}/password.inc.php
|
|
%config %{roundcubeconfigpath}/config.inc.php.sample
|
|
%config %{roundcubeconfigpath}/defaults.inc.php
|
|
%config %{roundcubeconfigpath}/mimetypes.php
|
|
%config(noreplace) %{apache_sysconfdir}/conf.d/roundcubemail.conf
|
|
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
|
|
%{roundcubepath}/composer.json-dist
|
|
%{roundcubepath}/config
|
|
%{roundcubepath}/index.php
|
|
%{roundcubepath}/robots.txt
|
|
%dir %{roundcubepath}/bin
|
|
%attr(0755,root,root) %{roundcubepath}/bin/*.sh
|
|
%{roundcubepath}/installer/
|
|
%{roundcubepath}/logs
|
|
%ghost %{roundcubepath}/migrated/
|
|
%ghost %{roundcubepath}/migration/
|
|
%{roundcubepath}/plugins/
|
|
%{roundcubepath}/program/
|
|
%{roundcubepath}/skins/
|
|
%{roundcubepath}/SQL
|
|
%{roundcubepath}/temp
|
|
%dir %{_datadir}/php5
|
|
%{_datadir}/php5/Roundcube/
|
|
%attr(-, wwwrun, root) %{_localstatedir}/log/%{name}
|
|
%attr(-, wwwrun, root) %{_localstatedir}/lib/%{name}
|
|
|
|
%changelog
|