1 %define subver 2015-08-10
2 %define ver %(echo %{subver} | tr -d -)
5 %define php_min_version 5.3.3
6 %include /usr/lib/rpm/macros.php
7 Summary: PHP-based Wiki webapplication
8 Summary(pl.UTF-8): Aplikacja WWW Wiki oparta na PHP
13 Group: Applications/WWW
14 # Source0Download: http://download.dokuwiki.org/archive
15 Source0: http://download.dokuwiki.org/src/dokuwiki/%{name}-%{subver}.tgz
16 # Source0-md5: 675594518c378f43b32204c4b9073ffd
17 Source1: %{name}-apache.conf
18 Source2: %{name}-lighttpd.conf
19 Source3: http://glen.alkohol.ee/pld/jude.png
20 # Source3-md5: 623344128960e18f86097dfee213ad4a
22 Source6: pld_button.png
23 # Source6-md5: 185afa921e81bd726b9f0f9f0909dc6e
26 Source9: http://trac.edgewall.org/export/9404/trunk/doc/trac_icon_16x16.png
27 # Source9-md5: 0c19ed35bf677f33f6bea14b3a8a2e10
29 Source11: http://glen.alkohol.ee/pld/astah.png
30 # Source11-md5: b1c999e6988440c9e2af6a12e9a56451
31 Patch66: %{name}-config.patch
32 Patch0: %{name}-paths.patch
33 Patch1: system-jquery.patch
34 Patch2: style-width.patch
35 Patch4: %{name}-geshi.patch
36 Patch5: %{name}-http_auth-option.patch
37 Patch8: %{name}-notify-respect-minor.patch
38 Patch10: %{name}-mailtext.patch
39 Patch11: %{name}-notifyns.patch
40 Patch15: simplepie.patch
41 Patch19: pld-branding.patch
42 Patch20: fixprivilegeescalationbug.diff
43 Patch21: task-1821.patch
45 Patch24: more-buttons.patch
46 Patch25: system-phpseclib.patch
47 Patch26: system-lessphp.patch
48 Patch27: iconsizes-dump.patch
49 URL: https://www.dokuwiki.org/
51 BuildRequires: rpm-php-pearprov >= 4.4.2-11
52 BuildRequires: rpmbuild(macros) >= 1.693
53 Requires: jquery >= 1.8
54 #Requires: jquery >= 1.9.1
55 Requires: jquery-cookie
56 #Requires: jquery-migrate
57 #Requires: jquery-ui >= 1.10.2
58 Requires: jquery-ui >= 1.8
59 Requires: lessphp >= 0.3.9
60 Requires: php(core) >= %{php_min_version}
61 Requires: php(session)
63 Requires: php-geshi >= 1.0.7.19
64 Requires: php-seclib >= 0.3.5
65 Requires: php-simplepie >= 1.0.1
67 Requires: webserver(access)
68 Requires: webserver(alias)
69 Requires: webserver(php)
71 Suggests: php-adldap >= 4.0.4
72 Obsoletes: dokuwiki-plugin-jquery
73 Conflicts: dokuwiki-plugin-icalevents < 20120909
74 # can use gz compression to store attic pages
77 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
79 %define _webapps /etc/webapps
80 %define _webapp %{name}
81 %define _sysconfdir %{_webapps}/%{_webapp}
82 %define _appdir %{_datadir}/%{_webapp}
83 %define _localstatedir /var/lib/%{name}
84 %define _cachedir /var/cache/%{name}
85 %define find_lang %{_usrlibrpm}/dokuwiki-find-lang.sh %{buildroot}
87 %define _noautoreq_pear /usr/share/php/geshi.php /usr/share/php/adLDAP/.*
89 # exclude optional php dependencies
90 %define _noautophp php-bzip2 php-bcmath php-zip php-date php-ftp php-hash php-ldap php-mbstring php-mysql php-pgsql php-tokenizer
92 %define _noautoreq %{_noautophp}
95 DokuWiki is a standards compliant, simple to use Wiki, mainly aimed at
96 creating documentation of any kind. It is targeted at developer teams,
97 workgroups and small companies. It has a simple but powerful syntax
98 which makes sure the datafiles remain readable outside the Wiki and
99 eases the creation of structured texts. All data is stored in plain
100 text files - no database is required.
102 %description -l pl.UTF-8
103 DokuWiki to zgodne ze standardami i proste w użyciu Wiki, przeznaczone
104 głównie do tworzenia dokumentów wszelkiego rodzaju. Jest przeznaczone
105 dla zespołów programistów, grup roboczych i małych firm. Ma prostą,
106 ale mającą duże możliwości składnię, dzięki której pliki danych
107 pozostają czytelne poza Wiki, a także ułatwiającą tworzenie tekstów
108 strukturalnych. Wszystkie dane są przechowywane w plikach tekstowych -
109 nie jest wymagana baza danych.
112 Summary: DokuWiki setup package
113 Summary(pl.UTF-8): Pakiet do wstępnej konfiguracji DokuWiki
114 Group: Applications/WWW
115 Requires: %{name} = %{version}-%{release}
118 Install this package to configure initial DokuWiki installation. You
119 should uninstall this package when you're done, as it considered
120 insecure to keep the setup files in place.
122 %description setup -l pl.UTF-8
123 Ten pakiet należy zainstalować w celu wstępnej konfiguracji DokuWiki
124 po pierwszej instalacji. Potem należy go odinstalować, jako że
125 pozostawienie plików instalacyjnych mogłoby być niebezpieczne.
128 %setup -q -n %{name}-%{?rc_:rc}%{subver} %{?snap:-c}
131 test -e VERSION || echo %{subver}-git > VERSION
133 install -d data/pages/playground
134 test -e data/pages/playground/playground.txt || \
135 echo '====== PlayGround ======' > data/pages/playground/playground.txt
157 # package as basenames, upgrade overwrite protected with .rpmnew
158 mv conf/local.php{.dist,}
159 mv conf/acl.auth.php{.dist,}
160 mv conf/users.auth.php{.dist,}
161 mv conf/mysql.conf.php{.example,}
163 find -name _dummy | xargs %{__rm}
164 %{__rm} lib/index.html lib/plugins/index.html lib/images/index.html
165 %{__rm} {conf,inc,bin,data,inc/lang}/.htaccess
167 # we just don't package deleted files, these get removed automatically on rpm upgrades
168 %{__rm} data/deleted.files
169 # source for security.png
170 %{__rm} data/security.xcf
172 # use system geshi package
173 %{__rm} -r vendor/easybook/geshi
174 rmdir vendor/easybook
176 # use system adldap package
177 %{__rm} -r lib/plugins/authad/adLDAP
179 # use system simplepie package
180 %{__rm} inc/SimplePie.php
182 # use system lessphp package
183 %{__rm} inc/lessc.inc.php
186 %{__rm} -r inc/phpseclib
188 # flash source on git tarballs
189 rm -rf lib/plugins/testing
190 rm -rf lib/plugins/*/_test
192 # use system packages
193 %{__rm} lib/scripts/jquery/update.sh
194 %{__rm} lib/scripts/jquery/jquery-ui.js
195 %{__rm} lib/scripts/jquery/jquery-ui.min.js
196 %{__rm} lib/scripts/jquery/jquery.cookie.js
197 %{__rm} lib/scripts/jquery/jquery.js
198 %{__rm} lib/scripts/jquery/jquery.min.js
199 %{__rm} lib/scripts/jquery/jquery-migrate.js
200 %{__rm} lib/scripts/jquery/jquery-migrate.min.js
201 %{__rm} -r lib/scripts/jquery/jquery-ui-theme
203 # cleanup backups after patching
204 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
207 md5=$(md5sum -b conf/dokuwiki.php | awk '{print $1}')
208 if ! grep $md5 install.php; then
209 : update %{name}-config.patch -- it is outdated
214 rm -rf $RPM_BUILD_ROOT
215 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/{lang,plugin_lang},%{_localstatedir},%{_cachedir},%{_appdir}/{bin,inc,lib}}
218 cp -al VERSION $RPM_BUILD_ROOT%{_appdir} 2>/dev/null && l=l
220 cp -a$l *.php $RPM_BUILD_ROOT%{_appdir}
221 cp -p$l VERSION $RPM_BUILD_ROOT%{_appdir}
222 cp -a$l bin/* $RPM_BUILD_ROOT%{_appdir}/bin
223 cp -a$l inc/* $RPM_BUILD_ROOT%{_appdir}/inc
224 cp -a$l lib/* $RPM_BUILD_ROOT%{_appdir}/lib
225 cp -a$l conf/* $RPM_BUILD_ROOT%{_sysconfdir}
226 cp -a$l data/* $RPM_BUILD_ROOT%{_localstatedir}
227 touch $RPM_BUILD_ROOT%{_sysconfdir}/acronyms.local.conf
228 touch $RPM_BUILD_ROOT%{_sysconfdir}/entities.local.conf
229 touch $RPM_BUILD_ROOT%{_sysconfdir}/interwiki.local.conf
230 touch $RPM_BUILD_ROOT%{_sysconfdir}/license.local.php
231 touch $RPM_BUILD_ROOT%{_sysconfdir}/plugins.local.php
232 touch $RPM_BUILD_ROOT%{_sysconfdir}/local.protected.php
233 touch $RPM_BUILD_ROOT%{_sysconfdir}/mime.local.conf
234 touch $RPM_BUILD_ROOT%{_sysconfdir}/smileys.local.conf
235 touch $RPM_BUILD_ROOT%{_sysconfdir}/userscript.js
236 touch $RPM_BUILD_ROOT%{_sysconfdir}/userstyle.css
238 # https://github.com/splitbrain/dokuwiki/pull/1247
239 #ln $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/{dokubug,bug}.gif
240 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/eventum.gif
241 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/cacti.gif
242 cp -p %{SOURCE8} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/nagios.gif
243 cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/trac.png
244 cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/pld.gif
246 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_appdir}/lib/images/fileicons/jude.png
247 cp -p %{SOURCE11} $RPM_BUILD_ROOT%{_appdir}/lib/images/fileicons/asta.png
249 cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_appdir}/lib/tpl/dokuwiki/images/button-pld.png
251 # hardlink identical icons.
252 findup -m $RPM_BUILD_ROOT
254 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
255 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
256 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
259 %find_lang %{name}.lang
262 rm -rf $RPM_BUILD_ROOT
265 chmod 770 %{_sysconfdir}
266 chmod 660 %{_sysconfdir}/local.php
267 chmod 660 %{_sysconfdir}/plugins.local.php
270 if [ "$1" = "0" ]; then
271 if [ -f %{_sysconfdir}/dokuwiki.php ]; then
272 chmod 750 %{_sysconfdir}
273 chmod 640 %{_sysconfdir}/local.php
274 chmod 640 %{_sysconfdir}/plugins.local.php
278 %triggerin -- apache1 < 1.3.37-3, apache1-base
279 %webapp_register apache %{_webapp}
281 %triggerun -- apache1 < 1.3.37-3, apache1-base
282 %webapp_unregister apache %{_webapp}
284 %triggerin -- apache < 2.2.0, apache-base
285 %webapp_register httpd %{_webapp}
287 %triggerun -- apache < 2.2.0, apache-base
288 %webapp_unregister httpd %{_webapp}
290 %triggerin -- lighttpd
291 %webapp_register lighttpd %{_webapp}
293 %triggerun -- lighttpd
294 %webapp_unregister lighttpd %{_webapp}
297 if [ -d %{_appdir}/data -a ! -L %{_appdir}/data ]; then
298 mv -f %{_appdir}/data/* %{_localstatedir}
299 rm -rf %{_appdir}/data
301 if [ -d %{_appdir}/conf -a ! -L %{_appdir}/conf ]; then
302 mv -f %{_appdir}/conf/* %{_sysconfdir}
303 rm -rf %{_appdir}/conf
305 if [ -d %{_localstatedir}/cache ]; then
306 rm -rf %{_localstatedir}/cache
310 %files -f %{name}.lang
311 %defattr(644,root,root,755)
313 %dir %attr(750,root,http) %verify(not mode) %{_sysconfdir}
314 %dir %attr(750,root,http) %{_sysconfdir}/lang
315 %dir %attr(750,root,http) %{_sysconfdir}/plugin_lang
316 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
317 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
318 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
320 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mediameta.php
321 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/plugins.php
322 %attr(660,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/scheme.conf
324 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/acl.auth.php
325 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/acronyms.local.conf
326 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/entities.local.conf
327 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/interwiki.local.conf
328 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/license.local.php
329 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/local.protected.php
330 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mime.local.conf
331 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/smileys.local.conf
332 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/userscript.js
333 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/userstyle.css
334 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/users.auth.php
335 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mysql.conf.php
337 %attr(640,root,http) %config(noreplace) %verify(not md5 mode mtime size) %{_sysconfdir}/local.php
338 %attr(640,root,http) %config(noreplace) %verify(not md5 mode mtime size) %{_sysconfdir}/plugins.local.php
340 # use local.php, local.protected.php, etc for local changes
341 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/acronyms.conf
342 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/entities.conf
343 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/interwiki.conf
344 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/mime.conf
345 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/smileys.conf
346 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/wordblock.conf
348 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/dokuwiki.php
349 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/license.php
350 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/plugins.required.php
358 %attr(755,root,root) %{_appdir}/bin/dwpage.php
359 %attr(755,root,root) %{_appdir}/bin/gittool.php
360 %attr(755,root,root) %{_appdir}/bin/indexer.php
361 %attr(755,root,root) %{_appdir}/bin/render.php
362 %attr(755,root,root) %{_appdir}/bin/striplangs.php
363 %attr(755,root,root) %{_appdir}/bin/wantedpages.php
367 %{_appdir}/inc/preload.php.dist
369 %{_appdir}/inc/parser
372 # allow plugins dir permission change to allow installation of plugins from admin
373 # however does not work with rpm 4.5
374 %dir %config %verify(not group mode) %{_appdir}/lib/plugins
376 %{_appdir}/lib/plugins/*.php
377 %dir %{_appdir}/lib/plugins/acl
378 %{_appdir}/lib/plugins/acl/*.*
379 %{_appdir}/lib/plugins/acl/pix
380 %dir %{_appdir}/lib/plugins/authad
381 %{_appdir}/lib/plugins/authad/*.php
382 %{_appdir}/lib/plugins/authad/*.txt
383 %{_appdir}/lib/plugins/authad/conf
384 %dir %{_appdir}/lib/plugins/authldap
385 %{_appdir}/lib/plugins/authldap/*.php
386 %{_appdir}/lib/plugins/authldap/*.txt
387 %{_appdir}/lib/plugins/authldap/conf
388 %dir %{_appdir}/lib/plugins/authmysql
389 %{_appdir}/lib/plugins/authmysql/*.php
390 %{_appdir}/lib/plugins/authmysql/*.txt
391 %{_appdir}/lib/plugins/authmysql/conf
392 %{_appdir}/lib/plugins/authpgsql/*.php
393 %{_appdir}/lib/plugins/authpgsql/conf
394 %{_appdir}/lib/plugins/authpgsql/*.txt
395 %dir %{_appdir}/lib/plugins/authpgsql
396 %dir %{_appdir}/lib/plugins/authplain
397 %{_appdir}/lib/plugins/authplain/*.php
398 %{_appdir}/lib/plugins/authplain/*.txt
399 %dir %{_appdir}/lib/plugins/config
400 %{_appdir}/lib/plugins/config/*.*
401 %{_appdir}/lib/plugins/config/images
402 %{_appdir}/lib/plugins/config/settings
403 %dir %{_appdir}/lib/plugins/extension
404 %{_appdir}/lib/plugins/extension/*.*
405 %{_appdir}/lib/plugins/extension/helper
406 %{_appdir}/lib/plugins/extension/images
407 %dir %{_appdir}/lib/plugins/revert
408 %{_appdir}/lib/plugins/revert/*.*
409 %dir %{_appdir}/lib/plugins/safefnrecode
410 %{_appdir}/lib/plugins/safefnrecode/*.*
411 %dir %{_appdir}/lib/plugins/usermanager
412 %{_appdir}/lib/plugins/usermanager/*.*
413 %{_appdir}/lib/plugins/usermanager/images
414 %dir %{_appdir}/lib/plugins/info
415 %{_appdir}/lib/plugins/info/*.*
416 %dir %{_appdir}/lib/plugins/popularity
417 %{_appdir}/lib/plugins/popularity/*.*
418 %dir %{_appdir}/lib/plugins/styling
419 %{_appdir}/lib/plugins/styling/README
420 %{_appdir}/lib/plugins/styling/*.*
422 %{_appdir}/lib/images
423 %{_appdir}/lib/scripts
424 %{_appdir}/lib/styles
425 # TODO: fix langs for templates (duplicate files otherwise)
429 %dir %attr(770,root,http) %{_localstatedir}
430 %dir %attr(770,root,http) %{_localstatedir}/attic
431 %dir %attr(770,root,http) %{_localstatedir}/index
432 %dir %attr(770,root,http) %{_localstatedir}/locks
433 %dir %attr(770,root,http) %{_localstatedir}/media
434 %dir %attr(770,root,http) %{_localstatedir}/media_attic
435 %dir %attr(770,root,http) %{_localstatedir}/media_meta
436 %dir %attr(770,root,http) %{_localstatedir}/media/wiki
437 %dir %attr(770,root,http) %{_localstatedir}/meta
438 %dir %attr(770,root,http) %{_localstatedir}/pages
439 %dir %attr(770,root,http) %{_localstatedir}/pages/playground
440 %dir %attr(770,root,http) %{_localstatedir}/pages/wiki
441 %dir %attr(770,root,http) %{_localstatedir}/tmp
443 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/media/wiki/dokuwiki-128.png
444 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/dokuwiki.txt
445 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/syntax.txt
446 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/welcome.txt
447 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/playground/playground.txt
448 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/security.png
450 %dir %attr(770,root,http) %{_cachedir}
453 %defattr(644,root,root,755)
454 %{_appdir}/install.php