]> git.pld-linux.org Git - packages/drupal.git/blob - drupal.spec
- use SetHandler None, it's at least documented
[packages/drupal.git] / drupal.spec
1 %define         _ver            4.6
2 %define         _patchlevel     7
3 Summary:        Open source content management platform
4 Summary(pl):    Platforma do zarz±dzania tre¶ci± o otwartych ¼ród³ach
5 Name:           drupal
6 Version:        %{_ver}.%{_patchlevel}
7 Release:        2
8 License:        GPL
9 Group:          Applications/WWW
10 Source0:        http://drupal.org/files/projects/%{name}-%{version}.tar.gz
11 # Source0-md5:  8c15ded4450a1afcf0c5b6593dc74541
12 Source1:        %{name}.conf
13 Source2:        %{name}.cron
14 Source3:        %{name}.PLD
15 Patch0:         %{name}-replication.patch
16 Patch1:         %{name}-sitesdir.patch
17 Patch2:         %{name}-topdir.patch
18 Patch3:         %{name}-themedir2.patch
19 Patch4:         %{name}-emptypass.patch
20 Patch5:         %{name}-cron.patch
21 Patch6:         %{name}-19298-cache.patch
22 Patch7:         %{name}-update-cli.patch
23 Patch8:         %{name}-locale-memory.patch
24 Patch9:         %{name}-comment.patch
25 URL:            http://drupal.org/
26 BuildRequires:  rpmbuild(macros) >= 1.264
27 BuildRequires:  sed >= 4.0
28 Requires:       %{name}(DB_Driver) = %{version}-%{release}
29 Requires:       %{name}(theme) = %{_ver}
30 Requires:       apache(mod_access)
31 Requires:       apache(mod_alias)
32 Requires:       apache(mod_dir)
33 Requires:       apache(mod_expires)
34 Requires:       apache(mod_rewrite)
35 Requires:       php >= 3:4.3.3
36 Requires:       php-mysql
37 Requires:       php-pcre
38 Requires:       php-xml
39 Requires:       webapps
40 Requires:       webserver = apache
41 Obsoletes:      drupal-update
42 BuildArch:      noarch
43 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
44
45 %define         _appdir         %{_datadir}/%{name}
46 %define         _webapps        /etc/webapps
47 %define         _webapp         %{name}
48 %define         _sysconfdir     %{_webapps}/%{_webapp}
49
50 %description
51 Drupal is software that allows an individual or a community of users
52 to easily publish, manage and organize a great variety of content on a
53 website. Tens of thousands of people and organizations have used
54 Drupal to set up scores of different kinds of web sites, including
55 - community web portals and discussion sites
56 - corporate web sites/intranet portals
57 - personal web sites
58 - afficionado sites
59 - e-commerce applications
60 - resource directories
61
62 Drupal includes features to enable
63 - content management systems
64 - blogs
65 - collaborative authoring environments
66 - forums
67 - newsletters
68 - picture galleries
69 - file uploads and download
70
71 and much more.
72
73 %description -l pl
74 Drupal to oprogramowanie pozwalaj±ce osobie lub spo³eczno¶ci
75 u¿ytkowników na ³atwe publikowanie, zarz±dzanie i organizowanie ró¿nej
76 tre¶ci na stronie WWW. Dziesi±tki tysiêcy ludzi i organizacji u¿ywali
77 Drupala do ustawiania wyników ró¿nych rodzajów stron WWW, w tym:
78 - portale WWW i strony dyskusyjne spo³eczno¶ci
79 - korporacyjne strony WWW/portale intranetowe
80 - osobiste strony WWW
81 - strony mi³o¶ników
82 - aplikacje e-commerce
83 - s³owniki zasobów
84
85 Drupal zawiera zasoby umo¿liwiaj±ce tworzenie:
86 - systemów zarz±dzania tre¶ci±
87 - blogów
88 - ¶rodowisk pracy grupowej
89 - forów
90 - nowin
91 - galerii zdjêæ
92 - wrzucania i ¶ci±gania plików
93
94 i wiele wiêcej.
95
96 %package cron
97 Summary:        Drupal cron
98 Summary(pl):    Us³uga cron dla Drupala
99 Group:          Applications/WWW
100 Requires:       %{name} = %{version}-%{release}
101 Requires:       /usr/bin/php
102 Requires:       crondaemon
103 Requires:       php-cli >= 3:4.3.3
104
105 %description cron
106 This package contains script which invokes cron hooks for Drupal.
107
108 %description cron -l pl
109 Ten pakiet zawiera skrypt wywo³uj±cy uchwyty crona dla Drupala.
110
111 %package db-mysql
112 Summary:        Drupal DB Driver for MySQL
113 Summary(pl):    Sterownik bazy danych MySQL dla Drupala
114 Group:          Applications/WWW
115 Requires:       php-mysql
116 Provides:       %{name}(DB_Driver) = %{version}-%{release}
117
118 %description db-mysql
119 This virtual package provides MySQL database backend for Drupal.
120
121 %description db-mysql -l pl
122 Ten wirtualny pakiet dostarcza backend bazy danych MySQL dla Drupala.
123
124 %package db-pgsql
125 Summary:        Drupal DB Driver for PostgreSQL
126 Summary(pl):    Sterownik bazy danych PostgreSQL dla Drupala
127 Group:          Applications/WWW
128 Requires:       php-pgsql
129 Provides:       %{name}(DB_Driver) = %{version}-%{release}
130
131 %description db-pgsql
132 This virtual package provides PostgreSQL database backend for Drupal.
133
134 NOTE: This driver is not tested in PLD, and not all modules have
135 database schema for PostgreSQL. Use this driver at your own risk!
136
137 %description db-pgsql -l pl
138 Ten wirtualny pakiet dostarcza backend bazy danych PostgreSQL dla
139 Drupala.
140
141 UWAGA: Ten sterownik nie by³ testowany w PLD i nie wszystkie modu³y
142 maj± schematy bazy danych dla PostgreSQL-a. Mo¿na go u¿ywaæ na w³asne
143 ryzyko.
144
145 %package themes
146 Summary:        Themes distributed with Drupal
147 Summary(pl):    Motywy rozprowadzane z Drupalem
148 Group:          Applications/WWW
149 Requires:       %{name} = %{version}-%{release}
150 Provides:       drupal(theme) = %{_ver}
151
152 %description themes
153 This package contains themes distributed with Drupal.
154
155 %description themes -l pl
156 Ten pakiet zawiera motywy rozprowadzane z Drupalem.
157
158 %package xmlrpc
159 Summary:        XMLRPC server for Drupal
160 Summary(pl):    Serwer XMLRPC dla Drupala
161 Group:          Applications/WWW
162 Requires:       %{name} = %{version}-%{release}
163
164 %description xmlrpc
165 XMLRPC server for Drupal allows other Drupals authorize with your
166 Drupal's user creditentials, this is called Distributed Authentication
167 in Drupal world.
168
169 %description xmlrpc -l pl
170 Serwer XMLRPC dla Drupala pozwala innym Drupalom autoryzowaæ siê z
171 danymi uwierzytelniaj±cymi u¿ytkownika danego Drupala - jest to
172 nazywane rozproszonym uwierzytelnianiem.
173
174 %prep
175 %setup -q
176 %patch0 -p1
177 %patch1 -p1
178 %patch2 -p1
179 %patch3 -p1
180 %patch4 -p1
181 %patch5 -p1
182 %patch6 -p0
183 %patch7 -p1
184 %patch8 -p1
185 %patch9 -p1
186
187 find -name '*~' | xargs -r rm -v
188 cp -p %{SOURCE3} README.PLD
189
190 %install
191 rm -rf $RPM_BUILD_ROOT
192 install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/cron.d,/var/{cache,lib}/%{name}} \
193         $RPM_BUILD_ROOT%{_appdir}/{po,database,modules/po,htdocs/modules}
194
195 cp -a *.ico index.php $RPM_BUILD_ROOT%{_appdir}/htdocs
196 cp -a misc $RPM_BUILD_ROOT%{_appdir}/htdocs
197 cp -a xmlrpc.php $RPM_BUILD_ROOT%{_appdir}/htdocs
198 cp -a database/updates.inc $RPM_BUILD_ROOT%{_appdir}/database
199
200 cp -a cron.php update.php $RPM_BUILD_ROOT%{_appdir}
201 cp -a modules/* $RPM_BUILD_ROOT%{_appdir}/modules
202 cp -a includes scripts $RPM_BUILD_ROOT%{_appdir}
203 cp -a sites $RPM_BUILD_ROOT%{_sysconfdir}
204
205 ln -s /var/lib/%{name} $RPM_BUILD_ROOT%{_appdir}/files
206 # needed for node.module for syndication icon
207 ln -s htdocs/misc $RPM_BUILD_ROOT%{_appdir}
208
209 # install themes
210 cp -a themes $RPM_BUILD_ROOT%{_appdir}/htdocs
211 # move .xtmpl/.theme out of htdocs
212 (cd $RPM_BUILD_ROOT%{_appdir}/htdocs && tar cf - --remove-files themes/*/*.{xtmpl,theme}) | tar -xf - -C $RPM_BUILD_ROOT%{_appdir}
213 mv $RPM_BUILD_ROOT%{_appdir}/{htdocs/,}themes/engines
214 # make screenshot.png available in appdir
215 for a in $RPM_BUILD_ROOT%{_appdir}/htdocs/themes/*; do
216         t=$(basename $a)
217         ln -s ../../htdocs/themes/$t/screenshot.png $RPM_BUILD_ROOT%{_appdir}/themes/$t
218 done
219
220 # a hack
221 s=themes/chameleon/marvin
222 ln -s ../../htdocs/$s $RPM_BUILD_ROOT%{_appdir}/$s
223
224 install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
225 install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
226 install %{SOURCE2} $RPM_BUILD_ROOT/etc/cron.d/%{name}
227
228 %clean
229 rm -rf $RPM_BUILD_ROOT
230
231 %post db-mysql
232 if [ "$1" = 1 ]; then
233 %banner -e %{name}-db-mysql <<EOF
234 If this is your first install of Drupal, you need to create Drupal database:
235
236 mysqladmin create drupal
237 zcat %{_docdir}/%{name}-db-mysql-%{version}/database.mysql.gz | mysql drupal
238 mysql -e "GRANT SELECT, INSERT, UPDATE, DELETE ON drupal.* TO 'drupal'@'localhost' IDENTIFIED BY 'PASSWORD'"
239 mysql -e "GRANT CREATE TEMPORARY TABLES, LOCK TABLES ON *.* TO 'drupal'@'localhost'"
240
241 EOF
242 fi
243
244 %post db-pgsql
245 if [ "$1" = 1 ]; then
246 %banner -e %{name}-db-pgsql <<EOF
247 If this is your first install of Drupal, you need to create Drupal database:
248
249 and import initial schema from
250 %{_docdir}/%{name}-db-pgsql-%{version}/database.pgsql.gz
251
252 EOF
253 fi
254
255 %triggerin -- apache1
256 %webapp_register apache %{_webapp}
257
258 %triggerun -- apache1
259 %webapp_unregister apache %{_webapp}
260
261 %triggerin -- apache < 2.2.0, apache-base
262 %webapp_register httpd %{_webapp}
263
264 %triggerun -- apache < 2.2.0, apache-base
265 %webapp_unregister httpd %{_webapp}
266
267 %triggerpostun -- %{name} < 4.6.4-0.4
268 # rescue app configs.
269 if [ -f /etc/drupal/sites/default/settings.php.rpmsave ]; then
270         mv -f %{_sysconfdir}/sites/default/settings.php{,.rpmnew}
271         mv -f /etc/drupal/sites/default/settings.php.rpmsave %{_sysconfdir}/sites/default/settings.php
272 fi
273 # other configured sites, if any
274 for i in /etc/drupal/sites/*; do
275         d=$(basename $i)
276         [ "$d" = "default" ] && continue
277         mv -f %{_sysconfdir}/sites/$d{,.rpmnew}
278         mv -f $i %{_sysconfdir}/sites/$d
279 done
280
281 # migrate from apache-config macros
282 if [ -f /etc/drupal/apache.conf.rpmsave ]; then
283         if [ -d /etc/apache/webapps.d ]; then
284                 cp -f %{_sysconfdir}/apache.conf{,.rpmnew}
285                 cp -f /etc/drupal/apache.conf.rpmsave %{_sysconfdir}/apache.conf
286         fi
287
288         if [ -d /etc/httpd/webapps.d ]; then
289                 cp -f %{_sysconfdir}/httpd.conf{,.rpmnew}
290                 cp -f /etc/drupal/apache.conf.rpmsave %{_sysconfdir}/httpd.conf
291         fi
292         rm -f /etc/drupal/apache.conf.rpmsave
293 fi
294
295 # place new config location, as trigger puts config only on first install, do it here.
296 if [ -L /etc/apache/conf.d/99_%{name}.conf ]; then
297         rm -f /etc/apache/conf.d/99_%{name}.conf
298         /usr/sbin/webapp register apache %{_webapp}
299         apache_reload=1
300 fi
301 if [ -L /etc/httpd/httpd.conf/99_%{name}.conf ]; then
302         rm -f /etc/httpd/httpd.conf/99_%{name}.conf
303         /usr/sbin/webapp register httpd %{_webapp}
304         httpd_reload=1
305 fi
306
307 if [ "$httpd_reload" ]; then
308         %service -q httpd reload
309 fi
310 if [ "$apache_reload" ]; then
311         %service -q apache reload
312 fi
313
314 %files
315 %defattr(644,root,root,755)
316 %doc *.txt README.PLD
317
318 %dir %attr(750,root,http) %{_sysconfdir}
319 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
320 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
321
322 %attr(750,root,http) %dir %{_sysconfdir}/sites
323 %attr(750,root,http) %dir %{_sysconfdir}/sites/default
324 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/sites/default/*
325
326 %dir %{_appdir}
327 %{_appdir}/database
328 %{_appdir}/includes
329 %exclude %{_appdir}/includes/database.mysql.inc
330 %exclude %{_appdir}/includes/database.pgsql.inc
331 %{_appdir}/modules
332 %{_appdir}/scripts
333 %dir %{_appdir}/themes
334 %dir %{_appdir}/themes/engines
335 %{_appdir}/po
336 %{_appdir}/update.php
337 # symlinks
338 %{_appdir}/files
339 %{_appdir}/misc
340
341 %dir %{_appdir}/htdocs
342 %{_appdir}/htdocs/*.ico
343 %{_appdir}/htdocs/index.php
344 %{_appdir}/htdocs/misc
345 %dir %{_appdir}/htdocs/themes
346 %{_appdir}/htdocs/modules
347
348 %dir %attr(775,root,http) /var/lib/%{name}
349 %dir %attr(775,root,http) /var/cache/%{name}
350
351 %files cron
352 %defattr(644,root,root,755)
353 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/cron.d/%{name}
354 %{_appdir}/cron.php
355
356 %files db-mysql
357 %defattr(644,root,root,755)
358 %doc database/*.mysql
359 %doc README.replication
360 %{_appdir}/includes/database.mysql.inc
361
362 %files db-pgsql
363 %defattr(644,root,root,755)
364 %doc database/*.pgsql
365 %{_appdir}/includes/database.pgsql.inc
366
367 %files themes
368 %defattr(644,root,root,755)
369 %{_appdir}/themes/[!e]*
370 %{_appdir}/themes/engines/*
371 %{_appdir}/htdocs/themes/*
372
373 %files xmlrpc
374 %defattr(644,root,root,755)
375 %{_appdir}/htdocs/xmlrpc.php
This page took 1.101805 seconds and 3 git commands to generate.