+%define _ver 4.6
+%define _patchlevel 8
Summary: Open source content management platform
Summary(pl): Platforma do zarz±dzania tre¶ci± o otwartych ¼ród³ach
Name: drupal
-Version: 4.6.4
-Release: 0.1
+Version: %{_ver}.%{_patchlevel}
+Release: 1
License: GPL
Group: Applications/WWW
Source0: http://drupal.org/files/projects/%{name}-%{version}.tar.gz
-# Source0-md5: ba73d2ef317ede456d9408e77d1a247d
+# Source0-md5: ffc5bf145f7cb6bb56fb50396cc76dd2
Source1: %{name}.conf
Source2: %{name}.cron
Source3: %{name}.PLD
Patch3: %{name}-themedir2.patch
Patch4: %{name}-emptypass.patch
Patch5: %{name}-cron.patch
+Patch6: %{name}-19298-cache.patch
+Patch7: %{name}-update-cli.patch
+Patch8: %{name}-locale-memory.patch
+Patch9: %{name}-comment.patch
URL: http://drupal.org/
-BuildRequires: rpmbuild(macros) >= 1.194
+BuildRequires: rpmbuild(macros) >= 1.264
BuildRequires: sed >= 4.0
-Requires: webserver = apache
-Requires: apache(mod_dir)
+Requires: %{name}(DB_Driver) = %{version}-%{release}
+Requires: %{name}(theme) = %{_ver}
Requires: apache(mod_access)
+Requires: apache(mod_alias)
+Requires: apache(mod_dir)
Requires: apache(mod_expires)
Requires: apache(mod_rewrite)
-Requires: apache(mod_alias)
Requires: php >= 3:4.3.3
Requires: php-mysql
Requires: php-pcre
-Requires: %{name}(DB_Driver) = %{version}-%{release}
Requires: php-xml
-Conflicts: apache1 < 1.3.33-3
+Requires: webapps
+Requires: webserver = apache
+Obsoletes: drupal-update
BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _appdir %{_datadir}/%{name}
-%define _sysconfdir /etc/%{name}
+%define _webapps /etc/webapps
+%define _webapp %{name}
+%define _sysconfdir %{_webapps}/%{_webapp}
%description
Drupal is software that allows an individual or a community of users
Summary(pl): Us³uga cron dla Drupala
Group: Applications/WWW
Requires: %{name} = %{version}-%{release}
+Requires: /usr/bin/php
Requires: crondaemon
Requires: php-cli >= 3:4.3.3
-Requires: /usr/bin/php
%description cron
This package contains script which invokes cron hooks for Drupal.
This virtual package provides MySQL database backend for Drupal.
%description db-mysql -l pl
-Ten wirtualny pakiet dostarcza backend bazy danych MySQL dla
-Drupala.
+Ten wirtualny pakiet dostarcza backend bazy danych MySQL dla Drupala.
%package db-pgsql
Summary: Drupal DB Driver for PostgreSQL
Provides: %{name}(DB_Driver) = %{version}-%{release}
%description db-pgsql
-This virtual package provides PostgreSQL database backend for
-Drupal.
+This virtual package provides PostgreSQL database backend for Drupal.
NOTE: This driver is not tested in PLD, and not all modules have
database schema for PostgreSQL. Use this driver at your own risk!
maj± schematy bazy danych dla PostgreSQL-a. Mo¿na go u¿ywaæ na w³asne
ryzyko.
+%package themes
+Summary: Themes distributed with Drupal
+Summary(pl): Motywy rozprowadzane z Drupalem
+Group: Applications/WWW
+Requires: %{name} = %{version}-%{release}
+Provides: drupal(theme) = %{_ver}
+
+%description themes
+This package contains themes distributed with Drupal.
+
+%description themes -l pl
+Ten pakiet zawiera motywy rozprowadzane z Drupalem.
+
%package xmlrpc
Summary: XMLRPC server for Drupal
Summary(pl): Serwer XMLRPC dla Drupala
%patch3 -p1
%patch4 -p1
%patch5 -p1
+%patch6 -p0
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
find -name '*~' | xargs -r rm -v
cp -p %{SOURCE3} README.PLD
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/cron.d,/var/{cache,lib}/%{name}} \
- $RPM_BUILD_ROOT%{_appdir}/{po,modules/po,htdocs/modules}
+ $RPM_BUILD_ROOT%{_appdir}/{po,database,modules/po,htdocs/modules}
cp -a *.ico index.php $RPM_BUILD_ROOT%{_appdir}/htdocs
cp -a misc $RPM_BUILD_ROOT%{_appdir}/htdocs
cp -a xmlrpc.php $RPM_BUILD_ROOT%{_appdir}/htdocs
+cp -a database/updates.inc $RPM_BUILD_ROOT%{_appdir}/database
-cp -a cron.php $RPM_BUILD_ROOT%{_appdir}
+cp -a cron.php update.php $RPM_BUILD_ROOT%{_appdir}
cp -a modules/* $RPM_BUILD_ROOT%{_appdir}/modules
cp -a includes scripts $RPM_BUILD_ROOT%{_appdir}
cp -a sites $RPM_BUILD_ROOT%{_sysconfdir}
ln -s /var/lib/%{name} $RPM_BUILD_ROOT%{_appdir}/files
+# needed for node.module for syndication icon
+ln -s htdocs/misc $RPM_BUILD_ROOT%{_appdir}
# install themes
cp -a themes $RPM_BUILD_ROOT%{_appdir}/htdocs
ln -s ../../htdocs/$s $RPM_BUILD_ROOT%{_appdir}/$s
install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
+install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
install %{SOURCE2} $RPM_BUILD_ROOT/etc/cron.d/%{name}
%clean
EOF
fi
-%triggerin -- apache1 >= 1.3.33-2
-%apache_config_install -v 1 -c %{_sysconfdir}/apache.conf
+%triggerin -- apache1
+%webapp_register apache %{_webapp}
+
+%triggerun -- apache1
+%webapp_unregister apache %{_webapp}
-%triggerun -- apache1 >= 1.3.33-2
-%apache_config_uninstall -v 1
+%triggerin -- apache < 2.2.0, apache-base
+%webapp_register httpd %{_webapp}
-%triggerin -- apache >= 2.0.0
-%apache_config_install -v 2 -c %{_sysconfdir}/apache.conf
+%triggerun -- apache < 2.2.0, apache-base
+%webapp_unregister httpd %{_webapp}
+
+%triggerpostun -- %{name} < 4.6.4-0.4
+# rescue app configs.
+if [ -f /etc/drupal/sites/default/settings.php.rpmsave ]; then
+ mv -f %{_sysconfdir}/sites/default/settings.php{,.rpmnew}
+ mv -f /etc/drupal/sites/default/settings.php.rpmsave %{_sysconfdir}/sites/default/settings.php
+fi
+# other configured sites, if any
+for i in /etc/drupal/sites/*; do
+ d=$(basename $i)
+ [ "$d" = "default" ] && continue
+ mv -f %{_sysconfdir}/sites/$d{,.rpmnew}
+ mv -f $i %{_sysconfdir}/sites/$d
+done
-%triggerun -- apache >= 2.0.0
-%apache_config_uninstall -v 2
+# migrate from apache-config macros
+if [ -f /etc/drupal/apache.conf.rpmsave ]; then
+ if [ -d /etc/apache/webapps.d ]; then
+ cp -f %{_sysconfdir}/apache.conf{,.rpmnew}
+ cp -f /etc/drupal/apache.conf.rpmsave %{_sysconfdir}/apache.conf
+ fi
+
+ if [ -d /etc/httpd/webapps.d ]; then
+ cp -f %{_sysconfdir}/httpd.conf{,.rpmnew}
+ cp -f /etc/drupal/apache.conf.rpmsave %{_sysconfdir}/httpd.conf
+ fi
+ rm -f /etc/drupal/apache.conf.rpmsave
+fi
+
+# place new config location, as trigger puts config only on first install, do it here.
+if [ -L /etc/apache/conf.d/99_%{name}.conf ]; then
+ rm -f /etc/apache/conf.d/99_%{name}.conf
+ /usr/sbin/webapp register apache %{_webapp}
+ apache_reload=1
+fi
+if [ -L /etc/httpd/httpd.conf/99_%{name}.conf ]; then
+ rm -f /etc/httpd/httpd.conf/99_%{name}.conf
+ /usr/sbin/webapp register httpd %{_webapp}
+ httpd_reload=1
+fi
+
+if [ "$httpd_reload" ]; then
+ %service -q httpd reload
+fi
+if [ "$apache_reload" ]; then
+ %service -q apache reload
+fi
+
+%triggerpostun -- %{name} < 4.6.8-0.5
+grep -l 'This_is_a_Drupal_security_line_do_not_remove' \
+%{_sysconfdir}/apache.conf %{_sysconfdir}/httpd.conf \
+| xargs -r \
+sed -i -e '
+/This_is_a_Drupal_security_line_do_not_remove/{
+ d
+ n
+ a\ SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+ a\ Options None
+ a\ <IfModule mod_rewrite.c>
+ a\ \ RewriteEngine off
+ a\ </IfModule>
+}'
+egrep -c 'Drupal_Security_Do_Not_Remove_See_SA_2006_006' \
+%{_sysconfdir}/apache.conf %{_sysconfdir}/httpd.conf \
+| awk -F: '/:0/{print $1}' | xargs -r \
+sed -i -e '
+/<Directory \/var\/lib\/drupal>/{
+ n
+ a\ SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
+ a\ Options None
+ a\ <IfModule mod_rewrite.c>
+ a\ \ RewriteEngine off
+ a\ </IfModule>
+}'
+[ ! -L /etc/httpd/webapps.d/drupal.conf ] || %service -q httpd reload
+[ ! -L /etc/apache/webapps.d/drupal.conf ] || %service -q apache reload
%files
%defattr(644,root,root,755)
%doc *.txt README.PLD
-%doc database/updates.inc
-%attr(750,root,http) %dir %{_sysconfdir}
+%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(750,root,http) %dir %{_sysconfdir}/sites
%attr(750,root,http) %dir %{_sysconfdir}/sites/default
%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/sites/default/*
%dir %{_appdir}
+%{_appdir}/database
%{_appdir}/includes
+%exclude %{_appdir}/includes/database.mysql.inc
+%exclude %{_appdir}/includes/database.pgsql.inc
%{_appdir}/modules
%{_appdir}/scripts
-%{_appdir}/themes
+%dir %{_appdir}/themes
+%dir %{_appdir}/themes/engines
%{_appdir}/po
-# symlink
+%{_appdir}/update.php
+# symlinks
%{_appdir}/files
+%{_appdir}/misc
%dir %{_appdir}/htdocs
%{_appdir}/htdocs/*.ico
%{_appdir}/htdocs/index.php
%{_appdir}/htdocs/misc
-%{_appdir}/htdocs/themes
+%dir %{_appdir}/htdocs/themes
%{_appdir}/htdocs/modules
%dir %attr(775,root,http) /var/lib/%{name}
%defattr(644,root,root,755)
%doc database/*.mysql
%doc README.replication
+%{_appdir}/includes/database.mysql.inc
%files db-pgsql
%defattr(644,root,root,755)
%doc database/*.pgsql
+%{_appdir}/includes/database.pgsql.inc
+
+%files themes
+%defattr(644,root,root,755)
+%{_appdir}/themes/[!e]*
+%{_appdir}/themes/engines/*
+%{_appdir}/htdocs/themes/*
%files xmlrpc
%defattr(644,root,root,755)