]> git.pld-linux.org Git - packages/roundcubemail.git/blobdiff - roundcubemail.spec
avoid .sh ext for .php scripts
[packages/roundcubemail.git] / roundcubemail.spec
index 83f008022e3d91d9e3aea7a95afff9b509cc99b8..df6bb1d6c5e02d5527c363bf816e84549fba96ba 100644 (file)
@@ -1,13 +1,9 @@
 # TODO:
-# - use gpl-dependant tarball, instead of full tarball and removing all bundled libs again?
-#   see: http://www.roundcubeforum.net/3-news-announcements/32-news-announcements/6601-roundcube-news-new-version-0-4-beta-released.html
-# - move bin/* to -setup which are related to upgrading/setup
 # - use system js/tiny_mce
 # - use system js/jquery
-# - use system magic db: program/lib/magic
 # - package: http://blog.ilohamail.org/ and remove boundled classess from it
-# - Some php-database backend. Suggests?
 # - test/finish and then enable by default password-anon-ldap-bind patch
+# - bconds does not work for a long time
 #
 %bcond_with    spamfilter      # Build with spamfilter patch
 %bcond_with    postfixadmin    # Build with postfixadmin support patch
 Summary:       RoundCube Webmail
 Summary(pl.UTF-8):     RoundCube Webmail - poczta przez WWW
 Name:          roundcubemail
-Version:       0.5
-Release:       2
-License:       GPL v2
+Version:       1.0.8
+Release:       0.3
+License:       GPL v3+
 Group:         Applications/Mail
-Source0:       http://downloads.sourceforge.net/roundcubemail/%{name}-%{version}.tar.gz
-# Source0-md5: 66111e52784221c56c477adb60cc7f5c
+Source0:       http://downloads.sourceforge.net/roundcubemail/%{name}-%{version}-dep.tar.gz
+# Source0-md5: 9465b80be1c13534646a04b0b5562d56
 Source1:       apache.conf
 Source2:       %{name}.logrotate
 Source3:       lighttpd.conf
 Source4:       http://nejc.skoberne.net/wp-content/uploads/2008/11/rcpfa-105.tgz
 # Source4-md5: dc23bcd894f693db74fce53b09ab58d6
 Source5:       find-lang.sh
+Source6:       httpd.conf
 Patch0:                %{name}-config.patch
 Patch1:                %{name}-spam.patch
 Patch2:                %{name}-postfixadmin-pl_locales.patch
 Patch3:                %{name}-faq-page.patch
 Patch4:                %{name}-password-anon-ldap-bind.patch
-Patch5:                use-iconv.patch
 URL:           http://www.roundcube.net/
 BuildRequires: rpm-php-pearprov >= 4.4.2-11
-BuildRequires: rpmbuild(macros) >= 1.566
+BuildRequires: rpm-pythonprov
+BuildRequires: rpmbuild(macros) >= 1.654
 BuildRequires: sed >= 4.0
 Requires:      %{name}-skin
-Requires:      php-common >= 4:%{php_min_version}
-Requires:      php-date
-Requires:      php-dom
-Requires:      php-iconv
-Requires:      php-imap
-Requires:      php-pcre
+Requires:      php(core) >= %{php_min_version}
+Requires:      php(date)
+Requires:      php(dom)
+Requires:      php(iconv)
+Requires:      php(imap)
+Requires:      php(pcre)
+Requires:      php(session)
+Requires:      php(simplexml)
+Requires:      php(sockets)
+Requires:      php(spl)
+Requires:      php(xml)
 Requires:      php-pear-DB
-Requires:      php-pear-Mail_Mime
+Requires:      php-pear-Mail_Mime >= 1.8.0
 Requires:      php-pear-Net_IDNA2 >= 0.1.1
 Requires:      php-pear-Net_SMTP
-Requires:      php-session
-Requires:      php-simplexml
-Requires:      php-sockets
-Requires:      php-spl
-Requires:      php-xml
 Requires:      rpm-whiteout >= 1.22
 Requires:      webapps
 Requires:      webserver(alias)
 Requires:      webserver(indexfile)
 Requires:      webserver(php)
+Requires(post):        openssl-tools
+Suggests:      php(exif)
 Suggests:      php(fileinfo)
-Suggests:      php-gd
-Suggests:      php-json
-Suggests:      php-mbstring
-Suggests:      php-mcrypt
-Suggests:      php-openssl
+Suggests:      php(gd)
+Suggests:      php(intl)
+Suggests:      php(json)
+Suggests:      php(mbstring)
+Suggests:      php(mcrypt)
+Suggests:      php(openssl)
+Suggests:      php(xml)
 Suggests:      php-pear-Auth_SASL
+# at least one MDB2 db driver needed
+Suggests:      php-pear-MDB2_Driver_mysql
+Suggests:      php-pear-MDB2_Driver_pgsql
+Suggests:      php-pear-MDB2_Driver_sqlite
 Suggests:      php-pear-Net_LDAP2
 Suggests:      php-pear-Net_Sieve
 Suggests:      php-pear-Net_Socket
-Suggests:      php-xml
-Conflicts:     logrotate < 3.7-4
+Obsoletes:     roundcube-plugin-jqueryui
+Obsoletes:     roundcubemail-skin-default
+Conflicts:     apache-base < 2.4.0-1
+Conflicts:     logrotate < 3.8.0
 BuildArch:     noarch
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
@@ -87,14 +94,13 @@ BuildRoot:  %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %define                find_lang       sh %{SOURCE5} %{buildroot}
 
-# bad depsolver
-%define                _noautopear     pear
+%define                _noautoreq_pear .*
 
 # exclude optional php dependencies
 %define                _noautophp      php-sqlite php-mysql php-mysqli php-pgsql php-hash php-json php-xml
 
 # put it together for rpmbuild
-%define                _noautoreq      %{?_noautophp} %{?_noautopear}
+%define                _noautoreq      %{?_noautophp}
 
 %description
 RoundCube Webmail is a browser-based multilingual IMAP client with an
@@ -125,21 +131,34 @@ This package provides installer script for RoundCube Webmail.
 %description setup -l pl.UTF-8
 Ten pakiet zawiera skrypt instalacyjny RoundCube Webmaila.
 
-%package skin-default
-Summary:       Default skin for RoundCube Webmail
-Summary(pl.UTF-8):     Domyślna skórka dla RoundCube Webmaila
+%package skin-classic
+Summary:       Classic skin for RoundCube Webmail
+Summary(pl.UTF-8):     Klasyczna skórka dla RoundCube Webmaila
 Group:         Applications/WWW
 Requires:      %{name} = %{version}-%{release}
 Provides:      %{name}-skin
 
-%description skin-default
-Default skin for RoundCube Webmail.
+%description skin-classic
+Classic skin for RoundCube Webmail.
 
-%description skin-default -l pl.UTF-8
-Domyślna skórka dla RoundCube Webmaila.
+%description skin-classic -l pl.UTF-8
+Klasyczna skórka dla RoundCube Webmaila.
+
+%package skin-larry
+Summary:       Larry skin for RoundCube Webmail
+Summary(pl.UTF-8):     Skórka Larry dla RoundCube Webmaila
+Group:         Applications/WWW
+Requires:      %{name} = %{version}-%{release}
+Provides:      %{name}-skin
+
+%description skin-larry
+Larry skin for RoundCube Webmail.
+
+%description skin-larry -l pl.UTF-8
+Skórka Larry dla RoundCube Webmaila.
 
 %prep
-%setup -q %{?with_postfixadmin:-a 4}
+%setup -q -n %{name}-%{version}-dep %{?with_postfixadmin:-a 4}
 %patch0 -p1
 %if %{with spamfilter}
 %patch1 -p1
@@ -151,88 +170,56 @@ Domyślna skórka dla RoundCube Webmaila.
 %if %{with password_anon_ldap_bind}
 %patch4 -p1
 %endif
-%patch5 -p1
 
 find -name .svn | xargs -r rm -rf
 
 # undos the source
 %undos -f php,inc,js,css
 
-# kill extensions and fill proper shebang
-%{__sed} -i -e '1s,^#!.*php,#!%{__php},' bin/*.sh
-for a in bin/*.sh; do
+# fill proper shebang
+%{__sed} -i -e '1s,^#!.*php,#!/usr/bin/php,' bin/*.sh
+# these are php scripts really
+for a in $(grep -l '<?php' bin/*.sh); do
        mv $a ${a%.sh}
 done
+%{__sed} -i s/indexcontacts.sh/indexcontacts/g bin/update
+%{__sed} -i s/updatedb.sh/updatedb/g bin/update
 
-# unpacked js sources
-find -name '*.src' | xargs rm -v
-
-# rm utf8.class and deps, we use iconv extension
-rm program/lib/utf8.class.php
-rm -r program/lib/encoding
-
-# php-pear-PEAR-core 1.9.0 (used indirectly)
-rm program/lib/PEAR.php
-rm program/lib/PEAR5.php
-
-# php-pear-Net_Socket 1.0.9 (used by password, managesieve plugins)
-rm program/lib/Net/Socket.php
-
-# php-pear-Net_SMTP 1.4.2 (nothing seem to use it)
-rm program/lib/Net/SMTP.php
-
-# php-pear-Auth_SASL 1.0.4 (used by managesieve)
-rm program/lib/Auth/SASL.php
-rm -r program/lib/Auth/SASL
-
-# php-pear-Mail_Mime 1.8.0 (nothing seems to use it)
-rm program/lib/Mail/mime.php
-rm program/lib/Mail/mimePart.php
-
-# php-pear-Net_Sieve 1.3.0
-rm plugins/managesieve/lib/Net/Sieve.php
-
-# 0.1.1 snapshot (at least r301175)
-rm program/lib/Net/IDNA2.php
-rm -r program/lib/Net/IDNA2
-
-# now empty dirs
-rmdir program/lib/Auth
-rmdir program/lib/Mail
-rmdir program/lib/Net
-rmdir plugins/managesieve/lib/Net
-
-# unknown MDB2 version (newer than released 2.5.0b2, or modified by rc)
-#rm program/lib/MDB2.php
+# tools to pack js
+rm bin/jsshrink.sh
+rm bin/cssshrink.sh
 
 # pear package junk
 rm -v plugins/*/package.xml
 
-mv config/db.inc.php.dist config/db.inc.php
-mv config/main.inc.php.dist config/main.inc.php
+mv config/config.inc.php{.sample,}
+
 %if %{with postfixadmin}
 mv rcpfa-%{rcpfa_ver} rcpfa
 cd rcpfa
-cp code/forwarding.html ../skins/default/templates
-cp code/password.html ../skins/default/templates
-cp code/vacation.html ../skins/default/templates
-cp code/pfa_forwarding.inc ../program/steps/settings
-cp code/pfa_password.inc ../program/steps/settings
-cp code/pfa_vacation.inc ../program/steps/settings
-cp code/pfa.php ../program/include
-
-patch -d .. -p1 < diffs/app.js.diff
-patch -d .. -p1 < diffs/db.inc.php.diff
-patch -d .. -p1 < diffs/func.inc.diff
-patch -d .. -p1 < diffs/index.php.diff
-patch -d .. -p1 < diffs/labels.inc.diff
-patch -d .. -p1 < diffs/main.inc.diff
-patch -d .. -p1 < diffs/main.inc.php.diff
-patch -d .. -p1 < diffs/messages.inc.diff
-patch -d .. -p1 < diffs/rcube_user.php.diff
-patch -d .. -p1 < diffs/settingstabs.html.diff
+cp -p code/forwarding.html ../skins/default/templates
+cp -p code/password.html ../skins/default/templates
+cp -p code/vacation.html ../skins/default/templates
+cp -p code/pfa_forwarding.inc ../program/steps/settings
+cp -p code/pfa_password.inc ../program/steps/settings
+cp -p code/pfa_vacation.inc ../program/steps/settings
+cp -p code/pfa.php ../program/include
+
+%{__patch} -d .. -p1 < diffs/app.js.diff
+%{__patch} -d .. -p1 < diffs/db.inc.php.diff
+%{__patch} -d .. -p1 < diffs/func.inc.diff
+%{__patch} -d .. -p1 < diffs/index.php.diff
+%{__patch} -d .. -p1 < diffs/labels.inc.diff
+%{__patch} -d .. -p1 < diffs/main.inc.diff
+%{__patch} -d .. -p1 < diffs/config.inc.php.diff
+%{__patch} -d .. -p1 < diffs/messages.inc.diff
+%{__patch} -d .. -p1 < diffs/rcube_user.php.diff
+%{__patch} -d .. -p1 < diffs/settingstabs.html.diff
 %endif
 
+# cleanup backups after patching
+find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
+
 %install
 rm -rf $RPM_BUILD_ROOT
 install -d $RPM_BUILD_ROOT{%{_appdatadir},%{_applogdir},%{_archivelogdir},%{_sysconfdir}} \
@@ -248,23 +235,20 @@ cp -a skins/* $RPM_BUILD_ROOT%{_appdir}/skins
 
 # Installer part
 cp -a installer/* $RPM_BUILD_ROOT%{_appdir}/installer
-cp -a config/db.inc.php $RPM_BUILD_ROOT%{_appdir}/config/db.inc.php.dist
-cp -a config/main.inc.php $RPM_BUILD_ROOT%{_appdir}/config/main.inc.php.dist
 cp -a SQL $RPM_BUILD_ROOT%{_appdir}
 
 # Plugins
 cp -a plugins $RPM_BUILD_ROOT%{_appdir}/plugins
 
 ## Configuration:
-cp -a config/db.inc.php $RPM_BUILD_ROOT%{_sysconfdir}/db.inc.php
-cp -a config/main.inc.php $RPM_BUILD_ROOT%{_sysconfdir}/main.inc.php
-ln -sf %{_sysconfdir}/db.inc.php $RPM_BUILD_ROOT%{_appdir}/config/db.inc.php
-ln -sf %{_sysconfdir}/main.inc.php $RPM_BUILD_ROOT%{_appdir}/config/main.inc.php
-
-cp -a %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
-cp -a %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
-cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
-cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
+for a in config/*.php; do
+       cp -p $a $RPM_BUILD_ROOT%{_sysconfdir}
+       ln -s %{_sysconfdir}/$(basename $a) $RPM_BUILD_ROOT%{_appdir}/config
+done
+cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
+cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
+cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
+cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
 
 # find locales
 %find_lang %{name}.lang
@@ -281,7 +265,7 @@ for p in $RPM_BUILD_ROOT%{_appdir}/plugins/*; do
                localization)
                        continue
                        ;;
-               README | Changelog | config.inc.php.dist)
+               README | Changelog | composer.json | config.inc.php.dist)
                        echo "%doc $p"
                        ;;
                *)
@@ -295,21 +279,17 @@ cat plugins.lang >> %{name}.lang
 %clean
 rm -rf $RPM_BUILD_ROOT
 
-%pretrans
-if [ ! -f %{_sysconfdir}/db.inc.php -o ! -f %{_sysconfdir}/main.inc.php ]; then
-       # import configs from previously manually installed site
-       d=/home/services/httpd/html/config
-       if [ -f $d/db.inc.php -o -f $d/main.inc.php ]; then
-               echo >&2 "Importing site configs from $d"
-               mkdir -p %{_sysconfdir}
-               if [ -f $d/db.inc.php ]; then
-                       [ -f %{_sysconfdir}/db.inc.php ] && mv -f %{_sysconfdir}/db.inc.php{,.rpmorig}
-                       cp -af $d/db.inc.php %{_sysconfdir}/db.inc.php
-               fi
-               if [ -f $d/main.inc.php ]; then
-                       [ -f %{_sysconfdir}/main.inc.php ] && mv -f %{_sysconfdir}/main.inc.php{,.rpmorig}
-                       cp -af $d/main.inc.php %{_sysconfdir}/main.inc.php
-               fi
+%post
+# replace default des string in config file for better security
+makedesstr() {
+       openssl rand -hex 12
+}
+
+if grep -q '24ByteDESkey' %{_sysconfdir}/config.inc.php; then
+       des=$(makedesstr)
+       # precaution if random str generation failed
+       if [ c$(echo -n "$des" | wc -c) = c24 ]; then
+               %{__sed} -i -e "s/rcmail-\!24ByteDESkey\*Str/$des/" %{_sysconfdir}/config.inc.php
        fi
 fi
 
@@ -332,10 +312,10 @@ EOF
 %triggerun -- apache1 < 1.3.37-3, apache1-base
 %webapp_unregister apache %{_webapp}
 
-%triggerin -- apache < 2.2.0, apache-base
+%triggerin -- apache-base
 %webapp_register httpd %{_webapp}
 
-%triggerun -- apache < 2.2.0, apache-base
+%triggerun -- apache-base
 %webapp_unregister httpd %{_webapp}
 
 %triggerin -- lighttpd
@@ -346,24 +326,23 @@ EOF
 
 %files -f %{name}.lang
 %defattr(644,root,root,755)
-%doc CHANGELOG INSTALL README UPGRADING
+%doc CHANGELOG INSTALL README.md UPGRADING
 %dir %attr(750,root,http) %{_sysconfdir}
 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
-%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.php
+%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/config.inc.php
+%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/defaults.inc.php
+%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mimetypes.php
 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}
 %dir %{_appdir}
 %{_appdir}/*.php
-%dir %{_appdir}/bin
-%attr(755,root,root) %{_appdir}/bin/*
-%dir %{_appdir}/config
-%{_appdir}/config/*.php
+%{_appdir}/config
 %dir %{_appdir}/program
-%{_appdir}/program/*.gif
 %{_appdir}/program/include
 %{_appdir}/program/js
 %{_appdir}/program/lib
+%{_appdir}/program/resources
 %{_appdir}/program/steps
 %{_appdir}/program/localization/index.inc
 
@@ -378,15 +357,19 @@ EOF
 
 %files setup
 %defattr(644,root,root,755)
+%dir %{_appdir}/bin
+%attr(755,root,root) %{_appdir}/bin/*
 %dir %{_appdir}/installer
 %{_appdir}/installer/*.php
 %{_appdir}/installer/client.js
 %{_appdir}/installer/styles.css
-%{_appdir}/installer/welcome.html
 %{_appdir}/installer/images
-%{_appdir}/config/*.php.dist
 %{_appdir}/SQL
 
-%files skin-default
+%files skin-classic
+%defattr(644,root,root,755)
+%{_appdir}/skins/classic
+
+%files skin-larry
 %defattr(644,root,root,755)
-%{_appdir}/skins/default
+%{_appdir}/skins/larry
This page took 0.10396 seconds and 4 git commands to generate.