]> git.pld-linux.org Git - packages/dokuwiki.git/blob - dokuwiki.spec
up to 2014-09-29a
[packages/dokuwiki.git] / dokuwiki.spec
1 %define         subver  2014-09-29a
2 %define         ver             %(echo %{subver} | tr -d -)
3 #define         snap    1
4 #define         rc_     1
5 %define         php_min_version 5.2.4
6 %include        /usr/lib/rpm/macros.php
7 Summary:        PHP-based Wiki webapplication
8 Summary(pl.UTF-8):      Aplikacja WWW Wiki oparta na PHP
9 Name:           dokuwiki
10 Version:        %{ver}
11 Release:        1
12 License:        GPL v2
13 Group:          Applications/WWW
14 Source0:        http://download.dokuwiki.org/src/dokuwiki/%{name}-%{subver}.tgz
15 # Source0-md5:  c721cb47cb00593c3a5b9fe1186d70b2
16 Source1:        %{name}-apache.conf
17 Source2:        %{name}-lighttpd.conf
18 Source3:        http://glen.alkohol.ee/pld/jude.png
19 # Source3-md5:  623344128960e18f86097dfee213ad4a
20 Source4:        eventum.gif
21 Source6:        pld_button.png
22 # Source6-md5:  185afa921e81bd726b9f0f9f0909dc6e
23 Source7:        cacti.gif
24 Source8:        nagios.gif
25 Source9:        http://trac.edgewall.org/export/9404/trunk/doc/trac_icon_16x16.png
26 # Source9-md5:  0c19ed35bf677f33f6bea14b3a8a2e10
27 Source10:       pld.gif
28 Source11:       http://glen.alkohol.ee/pld/astah.png
29 # Source11-md5: b1c999e6988440c9e2af6a12e9a56451
30 Patch66:        %{name}-config.patch
31 Patch0:         %{name}-paths.patch
32 Patch1:         system-jquery.patch
33 Patch2:         style-width.patch
34 Patch3:         undeprecate.patch
35 Patch4:         %{name}-geshi.patch
36 Patch5:         %{name}-http_auth-option.patch
37 Patch6:         %{name}-nice_exit.patch
38 Patch8:         %{name}-notify-respect-minor.patch
39 Patch10:        %{name}-mailtext.patch
40 Patch11:        %{name}-notifyns.patch
41 Patch14:        interwiki-outputonly.patch
42 Patch15:        simplepie.patch
43 Patch19:        pld-branding.patch
44 Patch20:        fixprivilegeescalationbug.diff
45 Patch21:        task-1821.patch
46 Patch22:        adldap.patch
47 Patch24:        more-buttons.patch
48 Patch25:        system-phpseclib.patch
49 Patch26:        system-lessphp.patch
50 URL:            https://www.dokuwiki.org/
51 BuildRequires:  fslint
52 BuildRequires:  rpm-php-pearprov >= 4.4.2-11
53 BuildRequires:  rpmbuild(macros) >= 1.693
54 Requires:       jquery >= 1.8
55 #Requires:      jquery >= 1.9.1
56 Requires:       jquery-cookie
57 #Requires:      jquery-migrate
58 #Requires:      jquery-ui >= 1.10.2
59 Requires:       jquery-ui >= 1.8
60 Requires:       lessphp >= 0.3.9
61 Requires:       php(core) >= %{php_min_version}
62 Requires:       php(session)
63 Requires:       php(xml)
64 Requires:       php-geshi >= 1.0.7.19
65 Requires:       php-seclib >= 0.3.5
66 Requires:       php-simplepie >= 1.0.1
67 Requires:       webapps
68 Requires:       webserver(access)
69 Requires:       webserver(alias)
70 Requires:       webserver(php)
71 Suggests:       php-adldap >= 3.3.1
72 Suggests:       php-gd
73 Obsoletes:      dokuwiki-plugin-jquery
74 Conflicts:      dokuwiki-plugin-icalevents < 20120909
75 # can use gz compression to store attic pages
76 Suggests:       php-zlib
77 BuildArch:      noarch
78 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
79
80 %define         _webapps        /etc/webapps
81 %define         _webapp         %{name}
82 %define         _sysconfdir     %{_webapps}/%{_webapp}
83 %define         _appdir         %{_datadir}/%{_webapp}
84 %define         _localstatedir  /var/lib/%{name}
85 %define         _cachedir               /var/cache/%{name}
86 %define         find_lang       %{_usrlibrpm}/dokuwiki-find-lang.sh %{buildroot}
87
88 # bad depsolver
89 %define         _noautopear     pear./usr/share/php/geshi.php pear./usr/share/php/adLDAP.php
90
91 # exclude optional php dependencies
92 %define         _noautophp      php-bzip2 php-bcmath php-zip php-date php-ftp php-hash php-ldap php-mbstring php-mysql php-pgsql php-tokenizer
93
94 %define         _noautoreq      %{_noautophp} %{_noautopear}
95
96 %description
97 DokuWiki is a standards compliant, simple to use Wiki, mainly aimed at
98 creating documentation of any kind. It is targeted at developer teams,
99 workgroups and small companies. It has a simple but powerful syntax
100 which makes sure the datafiles remain readable outside the Wiki and
101 eases the creation of structured texts. All data is stored in plain
102 text files - no database is required.
103
104 %description -l pl.UTF-8
105 DokuWiki to zgodne ze standardami i proste w użyciu Wiki, przeznaczone
106 głównie do tworzenia dokumentów wszelkiego rodzaju. Jest przeznaczone
107 dla zespołów programistów, grup roboczych i małych firm. Ma prostą,
108 ale mającą duże możliwości składnię, dzięki której pliki danych
109 pozostają czytelne poza Wiki, a także ułatwiającą tworzenie tekstów
110 strukturalnych. Wszystkie dane są przechowywane w plikach tekstowych -
111 nie jest wymagana baza danych.
112
113 %package setup
114 Summary:        DokuWiki setup package
115 Summary(pl.UTF-8):      Pakiet do wstępnej konfiguracji DokuWiki
116 Group:          Applications/WWW
117 Requires:       %{name} = %{version}-%{release}
118
119 %description setup
120 Install this package to configure initial DokuWiki installation. You
121 should uninstall this package when you're done, as it considered
122 insecure to keep the setup files in place.
123
124 %description setup -l pl.UTF-8
125 Ten pakiet należy zainstalować w celu wstępnej konfiguracji DokuWiki
126 po pierwszej instalacji. Potem należy go odinstalować, jako że
127 pozostawienie plików instalacyjnych mogłoby być niebezpieczne.
128
129 %prep
130 %setup -q -n %{name}-%{?rc_:rc}%{subver} %{?snap:-c}
131 %if 0%{?snap:1}
132 mv *-dokuwiki-*/* .
133 test -e VERSION || echo %{subver}-git > VERSION
134 %endif
135 install -d data/pages/playground
136 test -e data/pages/playground/playground.txt || \
137 echo '====== PlayGround ======' >  data/pages/playground/playground.txt
138
139 %patch0 -p1
140 %patch1 -p1
141 %patch2 -p1
142 %patch3 -p1
143 %patch4 -p1
144 %patch5 -p1
145 %patch6 -p1
146 %patch8 -p1
147 %patch10 -p1
148 %patch11 -p1
149 %patch14 -p1
150 %patch15 -p1
151 %patch19 -p1
152 %patch20 -p1
153 %patch21 -p1
154 %patch22 -p1
155 %patch24 -p1
156 %patch25 -p1
157 %patch26 -p1
158
159 %patch66 -p1
160
161 # package as basenames, upgrade overwrite protected with .rpmnew
162 mv conf/local.php{.dist,}
163 mv conf/acl.auth.php{.dist,}
164 mv conf/users.auth.php{.dist,}
165 mv conf/mysql.conf.php{.example,}
166
167 find -name _dummy | xargs %{__rm}
168 %{__rm} lib/index.html lib/plugins/index.html lib/images/index.html
169 %{__rm} {conf,inc,bin,data,inc/lang}/.htaccess
170
171 # we just don't package deleted files, these get removed automatically on rpm upgrades
172 %{__rm} data/deleted.files
173 # source for security.png
174 %{__rm} data/security.xcf
175
176 # use system geshi package
177 %{__rm} inc/geshi.php
178 %{__rm} -r inc/geshi
179
180 # use system adldap package
181 %{__rm} -r lib/plugins/authad/adLDAP
182
183 # use system simplepie package
184 %{__rm} inc/SimplePie.php
185
186 # use system lessphp package
187 %{__rm} inc/lessc.inc.php
188
189 # use system lib
190 %{__rm} -r inc/phpseclib
191
192 # flash source on git tarballs
193 rm -rf lib/plugins/testing
194 rm -rf lib/plugins/*/_test
195
196 # use system packages
197 %{__rm} lib/scripts/jquery/update.sh
198 %{__rm} lib/scripts/jquery/jquery-ui.js
199 %{__rm} lib/scripts/jquery/jquery-ui.min.js
200 %{__rm} lib/scripts/jquery/jquery.cookie.js
201 %{__rm} lib/scripts/jquery/jquery.js
202 %{__rm} lib/scripts/jquery/jquery.min.js
203 %{__rm} lib/scripts/jquery/jquery-migrate.js
204 %{__rm} lib/scripts/jquery/jquery-migrate.min.js
205 %{__rm} -r lib/scripts/jquery/jquery-ui-theme
206
207 # cleanup backups after patching
208 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
209
210 %build
211 md5=$(md5sum -b conf/dokuwiki.php | awk '{print $1}')
212 if ! grep $md5 install.php; then
213         : update %{name}-config.patch -- it is outdated
214         exit 1
215 fi
216
217 %install
218 rm -rf $RPM_BUILD_ROOT
219 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/{lang,plugin_lang},%{_localstatedir},%{_cachedir},%{_appdir}/{bin,inc,lib}}
220
221 # hardlink test
222 cp -al VERSION $RPM_BUILD_ROOT%{_appdir} 2>/dev/null && l=l
223
224 cp -a$l *.php $RPM_BUILD_ROOT%{_appdir}
225 cp -p$l VERSION $RPM_BUILD_ROOT%{_appdir}
226 cp -a$l bin/* $RPM_BUILD_ROOT%{_appdir}/bin
227 cp -a$l inc/* $RPM_BUILD_ROOT%{_appdir}/inc
228 cp -a$l lib/* $RPM_BUILD_ROOT%{_appdir}/lib
229 cp -a$l conf/* $RPM_BUILD_ROOT%{_sysconfdir}
230 cp -a$l data/* $RPM_BUILD_ROOT%{_localstatedir}
231 touch $RPM_BUILD_ROOT%{_sysconfdir}/acronyms.local.conf
232 touch $RPM_BUILD_ROOT%{_sysconfdir}/entities.local.conf
233 touch $RPM_BUILD_ROOT%{_sysconfdir}/interwiki.local.conf
234 touch $RPM_BUILD_ROOT%{_sysconfdir}/license.local.php
235 touch $RPM_BUILD_ROOT%{_sysconfdir}/plugins.local.php
236 touch $RPM_BUILD_ROOT%{_sysconfdir}/local.protected.php
237 touch $RPM_BUILD_ROOT%{_sysconfdir}/mime.local.conf
238 touch $RPM_BUILD_ROOT%{_sysconfdir}/smileys.local.conf
239 touch $RPM_BUILD_ROOT%{_sysconfdir}/userscript.js
240 touch $RPM_BUILD_ROOT%{_sysconfdir}/userstyle.css
241
242 ln $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/{dokubug,bug}.gif
243 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/eventum.gif
244 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/cacti.gif
245 cp -p %{SOURCE8} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/nagios.gif
246 cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/trac.png
247 cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/pld.gif
248
249 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_appdir}/lib/images/fileicons/jude.png
250 cp -p %{SOURCE11} $RPM_BUILD_ROOT%{_appdir}/lib/images/fileicons/asta.png
251
252 cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_appdir}/lib/tpl/dokuwiki/images/button-pld.png
253
254 # hardlink identical icons.
255 findup -m $RPM_BUILD_ROOT
256
257 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
258 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
259 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
260
261 # find locales
262 %find_lang %{name}.lang
263
264 %clean
265 rm -rf $RPM_BUILD_ROOT
266
267 %post setup
268 chmod 770 %{_sysconfdir}
269 chmod 660 %{_sysconfdir}/local.php
270 chmod 660 %{_sysconfdir}/plugins.local.php
271
272 %postun setup
273 if [ "$1" = "0" ]; then
274         if [ -f %{_sysconfdir}/dokuwiki.php ]; then
275                 chmod 750 %{_sysconfdir}
276                 chmod 640 %{_sysconfdir}/local.php
277                 chmod 640 %{_sysconfdir}/plugins.local.php
278         fi
279 fi
280
281 %triggerin -- apache1 < 1.3.37-3, apache1-base
282 %webapp_register apache %{_webapp}
283
284 %triggerun -- apache1 < 1.3.37-3, apache1-base
285 %webapp_unregister apache %{_webapp}
286
287 %triggerin -- apache < 2.2.0, apache-base
288 %webapp_register httpd %{_webapp}
289
290 %triggerun -- apache < 2.2.0, apache-base
291 %webapp_unregister httpd %{_webapp}
292
293 %triggerin -- lighttpd
294 %webapp_register lighttpd %{_webapp}
295
296 %triggerun -- lighttpd
297 %webapp_unregister lighttpd %{_webapp}
298
299 %pretrans
300 if [ -d %{_appdir}/data -a ! -L %{_appdir}/data ]; then
301         mv -f %{_appdir}/data/* %{_localstatedir}
302         rm -rf %{_appdir}/data
303 fi
304 if [ -d %{_appdir}/conf -a ! -L %{_appdir}/conf ]; then
305         mv -f %{_appdir}/conf/* %{_sysconfdir}
306         rm -rf %{_appdir}/conf
307 fi
308 if [ -d %{_localstatedir}/cache ]; then
309         rm -rf %{_localstatedir}/cache
310 fi
311 exit 0
312
313 %files -f %{name}.lang
314 %defattr(644,root,root,755)
315 %doc README
316 %dir %attr(750,root,http) %verify(not mode) %{_sysconfdir}
317 %dir %attr(750,root,http) %{_sysconfdir}/lang
318 %dir %attr(750,root,http) %{_sysconfdir}/plugin_lang
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 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
322
323 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mediameta.php
324 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/plugins.php
325 %attr(660,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/scheme.conf
326
327 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/acl.auth.php
328 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/acronyms.local.conf
329 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/entities.local.conf
330 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/interwiki.local.conf
331 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/license.local.php
332 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/local.protected.php
333 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mime.local.conf
334 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/smileys.local.conf
335 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/userscript.js
336 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/userstyle.css
337 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/users.auth.php
338 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mysql.conf.php
339
340 %attr(640,root,http) %config(noreplace) %verify(not md5 mode mtime size) %{_sysconfdir}/local.php
341 %attr(640,root,http) %config(noreplace) %verify(not md5 mode mtime size) %{_sysconfdir}/plugins.local.php
342
343 # use local.php, local.protected.php, etc for local changes
344 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/acronyms.conf
345 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/entities.conf
346 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/interwiki.conf
347 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/mime.conf
348 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/smileys.conf
349 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/wordblock.conf
350
351 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/dokuwiki.php
352 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/license.php
353 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/plugins.required.php
354
355 %dir %{_appdir}
356 %{_appdir}/VERSION
357 %{_appdir}/doku.php
358 %{_appdir}/feed.php
359 %{_appdir}/index.php
360 %dir %{_appdir}/bin
361 %attr(755,root,root) %{_appdir}/bin/dwpage.php
362 %attr(755,root,root) %{_appdir}/bin/gittool.php
363 %attr(755,root,root) %{_appdir}/bin/indexer.php
364 %attr(755,root,root) %{_appdir}/bin/render.php
365 %attr(755,root,root) %{_appdir}/bin/striplangs.php
366 %attr(755,root,root) %{_appdir}/bin/wantedpages.php
367
368 %dir %{_appdir}/inc
369 %{_appdir}/inc/*.php
370 %{_appdir}/inc/preload.php.dist
371 %{_appdir}/inc/parser
372
373 %dir %{_appdir}/lib
374 # allow plugins dir permission change to allow installation of plugins from admin
375 # however does not work with rpm 4.5
376 %dir %config %verify(not group mode) %{_appdir}/lib/plugins
377 %{_appdir}/lib/plugins/*.php
378 %dir %{_appdir}/lib/plugins/acl
379 %{_appdir}/lib/plugins/acl/*.*
380 %{_appdir}/lib/plugins/acl/pix
381 %dir %{_appdir}/lib/plugins/authad
382 %{_appdir}/lib/plugins/authad/*.php
383 %{_appdir}/lib/plugins/authad/*.txt
384 %{_appdir}/lib/plugins/authad/conf
385 %dir %{_appdir}/lib/plugins/authldap
386 %{_appdir}/lib/plugins/authldap/*.php
387 %{_appdir}/lib/plugins/authldap/*.txt
388 %{_appdir}/lib/plugins/authldap/conf
389 %dir %{_appdir}/lib/plugins/authmysql
390 %{_appdir}/lib/plugins/authmysql/*.php
391 %{_appdir}/lib/plugins/authmysql/*.txt
392 %{_appdir}/lib/plugins/authmysql/conf
393 %{_appdir}/lib/plugins/authpgsql/*.php
394 %{_appdir}/lib/plugins/authpgsql/conf
395 %{_appdir}/lib/plugins/authpgsql/*.txt
396 %dir %{_appdir}/lib/plugins/authpgsql
397 %dir %{_appdir}/lib/plugins/authplain
398 %{_appdir}/lib/plugins/authplain/*.php
399 %{_appdir}/lib/plugins/authplain/*.txt
400 %dir %{_appdir}/lib/plugins/config
401 %{_appdir}/lib/plugins/config/*.*
402 %{_appdir}/lib/plugins/config/images
403 %{_appdir}/lib/plugins/config/settings
404 %dir %{_appdir}/lib/plugins/extension
405 %{_appdir}/lib/plugins/extension/*.*
406 %{_appdir}/lib/plugins/extension/helper
407 %{_appdir}/lib/plugins/extension/images
408 %dir %{_appdir}/lib/plugins/revert
409 %{_appdir}/lib/plugins/revert/*.*
410 %dir %{_appdir}/lib/plugins/safefnrecode
411 %{_appdir}/lib/plugins/safefnrecode/*.*
412 %dir %{_appdir}/lib/plugins/usermanager
413 %{_appdir}/lib/plugins/usermanager/*.*
414 %{_appdir}/lib/plugins/usermanager/images
415 %dir %{_appdir}/lib/plugins/info
416 %{_appdir}/lib/plugins/info/*.*
417 %dir %{_appdir}/lib/plugins/popularity
418 %{_appdir}/lib/plugins/popularity/*.*
419
420 %{_appdir}/lib/images
421 %{_appdir}/lib/scripts
422 %{_appdir}/lib/styles
423 %{_appdir}/lib/tpl
424 %{_appdir}/lib/exe
425
426 %dir %attr(770,root,http) %{_localstatedir}
427 %dir %attr(770,root,http) %{_localstatedir}/attic
428 %dir %attr(770,root,http) %{_localstatedir}/index
429 %dir %attr(770,root,http) %{_localstatedir}/locks
430 %dir %attr(770,root,http) %{_localstatedir}/media
431 %dir %attr(770,root,http) %{_localstatedir}/media_attic
432 %dir %attr(770,root,http) %{_localstatedir}/media_meta
433 %dir %attr(770,root,http) %{_localstatedir}/media/wiki
434 %dir %attr(770,root,http) %{_localstatedir}/meta
435 %dir %attr(770,root,http) %{_localstatedir}/pages
436 %dir %attr(770,root,http) %{_localstatedir}/pages/playground
437 %dir %attr(770,root,http) %{_localstatedir}/pages/wiki
438 %dir %attr(770,root,http) %{_localstatedir}/tmp
439
440 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/media/wiki/dokuwiki-128.png
441 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/dokuwiki.txt
442 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/syntax.txt
443 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/welcome.txt
444 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/playground/playground.txt
445 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/security.png
446
447 %dir %attr(770,root,http) %{_cachedir}
448
449 %files setup
450 %defattr(644,root,root,755)
451 %{_appdir}/install.php
This page took 0.055194 seconds and 4 git commands to generate.