1 %define subver 2020-07-29a
2 %define ver %(echo %{subver} | tr -d -)
5 %define php_min_version 5.6.0
6 Summary: PHP-based Wiki webapplication
7 Summary(pl.UTF-8): Aplikacja WWW Wiki oparta na PHP
12 Group: Applications/WWW
13 # Source0Download: https://download.dokuwiki.org/archive
14 Source0: https://download.dokuwiki.org/src/dokuwiki/%{name}-%{subver}.tgz
15 # Source0-md5: 86d5d43b07c4bfaf7630c438ae9ce0d7
16 Source1: %{name}-apache.conf
17 Source2: %{name}-lighttpd.conf
18 Source3: http://glen.alkohol.ee/pld/jude.png
19 # Source3-md5: 623344128960e18f86097dfee213ad4a
21 Source6: pld_button.png
22 # Source6-md5: 185afa921e81bd726b9f0f9f0909dc6e
25 Source9: http://trac.edgewall.org/export/9404/trunk/doc/trac_icon_16x16.png
26 # Source9-md5: 0c19ed35bf677f33f6bea14b3a8a2e10
28 Source11: http://glen.alkohol.ee/pld/astah.png
29 # Source11-md5: b1c999e6988440c9e2af6a12e9a56451
31 # Source12-md5: 619cec6f2b083269b1ec9cd50d9e6ef2
32 Source13: http://mirrors.jenkins-ci.org/art/jenkins-logo/16x16/headshot.png?/jenkins.png
33 # Source13-md5: ae892e4ca43ffab88f6e3dca951f3e8a
34 Patch66: %{name}-config.patch
35 Patch0: %{name}-paths.patch
36 Patch1: autoload.patch
37 Patch2: style-width.patch
38 Patch4: %{name}-geshi.patch
39 Patch5: %{name}-http_auth-option.patch
40 Patch8: %{name}-notify-respect-minor.patch
41 Patch10: %{name}-mailtext.patch
42 Patch11: %{name}-notifyns.patch
43 Patch19: pld-branding.patch
44 Patch21: task-1821.patch
45 Patch24: more-buttons.patch
46 Patch27: iconsizes-dump.patch
47 URL: https://www.dokuwiki.org/
49 BuildRequires: rpm-php-pearprov >= 4.4.2-11
50 BuildRequires: rpmbuild(find_lang) >= 1.41
51 BuildRequires: rpmbuild(macros) >= 1.693
52 Requires: php(core) >= %{php_min_version}
53 Requires: php(session)
55 Requires: php-geshi >= 1.0.7.19
56 Requires: php-seclib >= 0.3.5
57 Requires: php-simplepie >= 1.0.1
59 Requires: webserver(access)
60 Requires: webserver(alias)
61 Requires: webserver(php)
63 Obsoletes: dokuwiki-plugin-jquery
64 Obsoletes: dokuwiki-plugin-showlogin2
65 Conflicts: dokuwiki-plugin-gallery < 20161222
66 Conflicts: dokuwiki-plugin-icalevents < 20120909
67 Conflicts: dokuwiki-plugin-include < 20181129
68 Conflicts: dokuwiki-plugin-odt < 20170218
69 # can use gz compression to store attic pages
72 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
74 %define _webapps /etc/webapps
75 %define _webapp %{name}
76 %define _sysconfdir %{_webapps}/%{_webapp}
77 %define _appdir %{_datadir}/%{_webapp}
78 %define _localstatedir /var/lib/%{name}
79 %define _cachedir /var/cache/%{name}
81 %define _noautoreq_pear /usr/share/php/geshi.php lib/byte_safe_strings.php lib/cast_to_int.php lib/error_polyfill.php lib/random.php other/ide_stubs/libsodium.php
83 # exclude optional php dependencies
84 %define _noautophp php-bzip2 php-bcmath php-zip php-date php-ftp php-hash php-ldap php-mbstring php-mysql php-pgsql php-tokenizer
86 %define _noautoreq %{_noautophp}
89 DokuWiki is a standards compliant, simple to use Wiki, mainly aimed at
90 creating documentation of any kind. It is targeted at developer teams,
91 workgroups and small companies. It has a simple but powerful syntax
92 which makes sure the datafiles remain readable outside the Wiki and
93 eases the creation of structured texts. All data is stored in plain
94 text files - no database is required.
96 %description -l pl.UTF-8
97 DokuWiki to zgodne ze standardami i proste w użyciu Wiki, przeznaczone
98 głównie do tworzenia dokumentów wszelkiego rodzaju. Jest przeznaczone
99 dla zespołów programistów, grup roboczych i małych firm. Ma prostą,
100 ale mającą duże możliwości składnię, dzięki której pliki danych
101 pozostają czytelne poza Wiki, a także ułatwiającą tworzenie tekstów
102 strukturalnych. Wszystkie dane są przechowywane w plikach tekstowych -
103 nie jest wymagana baza danych.
106 Summary: DokuWiki setup package
107 Summary(pl.UTF-8): Pakiet do wstępnej konfiguracji DokuWiki
108 Group: Applications/WWW
109 Requires: %{name} = %{version}-%{release}
112 Install this package to configure initial DokuWiki installation. You
113 should uninstall this package when you're done, as it considered
114 insecure to keep the setup files in place.
116 %description setup -l pl.UTF-8
117 Ten pakiet należy zainstalować w celu wstępnej konfiguracji DokuWiki
118 po pierwszej instalacji. Potem należy go odinstalować, jako że
119 pozostawienie plików instalacyjnych mogłoby być niebezpieczne.
122 %setup -q -n %{name}-%{?rc_:rc}%{subver} %{?snap:-c}
125 test -e VERSION || echo %{subver}-git > VERSION
127 install -d data/pages/playground
128 test -e data/pages/playground/playground.txt || \
129 echo '====== PlayGround ======' > data/pages/playground/playground.txt
145 # package as basenames, upgrade overwrite protected with .rpmnew
146 mv conf/local.php{.dist,}
147 mv conf/acl.auth.php{.dist,}
148 mv conf/users.auth.php{.dist,}
149 mv conf/mysql.conf.php{.example,}
151 find -name _dummy | xargs %{__rm}
152 %{__rm} lib/index.html lib/plugins/index.html lib/images/index.html
153 %{__rm} {conf,inc,bin,data}/.htaccess
154 %{__rm} vendor/.htaccess
156 # we just don't package deleted files, these get removed automatically on rpm upgrades
157 %{__rm} data/deleted.files
158 # source for dont-panic-if-you-see-this-in-your-logs-it-means-your-directory-permissions-are-correct.png
159 %{__rm} data/dont-panic-if-you-see-this-in-your-logs-it-means-your-directory-permissions-are-correct.xcf
161 %{__rm} lib/scripts/jquery/update.sh
163 # use system geshi package
164 %{__rm} -r vendor/geshi/geshi
167 # use system simplepie package
168 #%{__rm} inc/SimplePie.php
170 # pagetools - tools for development
171 %{__rm} -r lib/tpl/dokuwiki/images/pagetools
172 %{__rm} lib/tpl/dokuwiki/images/pagetools-build*
174 %{__sed} -i -e '1 s,#!.*php,#!/usr/bin/php,' bin/*.php
176 # cleanup backups after patching
177 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
180 rm -rf $RPM_BUILD_ROOT
181 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/{lang,plugin_lang},%{_localstatedir},%{_cachedir},%{_appdir}}
184 cp -al VERSION $RPM_BUILD_ROOT%{_appdir} 2>/dev/null && l=l
186 cp -a$l *.php $RPM_BUILD_ROOT%{_appdir}
187 cp -p$l VERSION $RPM_BUILD_ROOT%{_appdir}
188 cp -a$l bin $RPM_BUILD_ROOT%{_appdir}
189 cp -a$l inc $RPM_BUILD_ROOT%{_appdir}
190 cp -a$l lib $RPM_BUILD_ROOT%{_appdir}
191 cp -a$l vendor $RPM_BUILD_ROOT%{_appdir}
192 cp -a$l conf/* $RPM_BUILD_ROOT%{_sysconfdir}
193 cp -a$l data/* $RPM_BUILD_ROOT%{_localstatedir}
194 touch $RPM_BUILD_ROOT%{_sysconfdir}/acronyms.local.conf
195 touch $RPM_BUILD_ROOT%{_sysconfdir}/entities.local.conf
196 touch $RPM_BUILD_ROOT%{_sysconfdir}/interwiki.local.conf
197 touch $RPM_BUILD_ROOT%{_sysconfdir}/license.local.php
198 touch $RPM_BUILD_ROOT%{_sysconfdir}/plugins.local.php
199 touch $RPM_BUILD_ROOT%{_sysconfdir}/local.protected.php
200 touch $RPM_BUILD_ROOT%{_sysconfdir}/mime.local.conf
201 touch $RPM_BUILD_ROOT%{_sysconfdir}/smileys.local.conf
202 touch $RPM_BUILD_ROOT%{_sysconfdir}/userscript.js
203 touch $RPM_BUILD_ROOT%{_sysconfdir}/userstyle.css
205 # https://github.com/splitbrain/dokuwiki/pull/1247
206 #ln $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/{dokubug,bug}.gif
207 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/eventum.gif
208 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/cacti.gif
209 cp -p %{SOURCE8} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/nagios.gif
210 cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/trac.png
211 cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/pld.gif
212 cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/gitlab.png
213 cp -p %{SOURCE13} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/jenkins.png
215 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_appdir}/lib/images/fileicons/jude.png
216 cp -p %{SOURCE11} $RPM_BUILD_ROOT%{_appdir}/lib/images/fileicons/asta.png
218 cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_appdir}/lib/tpl/dokuwiki/images/button-pld.png
220 # hardlink identical icons.
221 findup -m $RPM_BUILD_ROOT
223 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
224 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
225 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
228 %find_lang %{name}.lang --with-dokuwiki
231 rm -rf $RPM_BUILD_ROOT
234 chmod 770 %{_sysconfdir}
235 chmod 660 %{_sysconfdir}/local.php
236 chmod 660 %{_sysconfdir}/plugins.local.php
239 if [ "$1" = "0" ]; then
240 if [ -f %{_sysconfdir}/dokuwiki.php ]; then
241 chmod 750 %{_sysconfdir}
242 chmod 640 %{_sysconfdir}/local.php
243 chmod 640 %{_sysconfdir}/plugins.local.php
247 %triggerin -- apache1 < 1.3.37-3, apache1-base
248 %webapp_register apache %{_webapp}
250 %triggerun -- apache1 < 1.3.37-3, apache1-base
251 %webapp_unregister apache %{_webapp}
253 %triggerin -- apache < 2.2.0, apache-base
254 %webapp_register httpd %{_webapp}
256 %triggerun -- apache < 2.2.0, apache-base
257 %webapp_unregister httpd %{_webapp}
259 %triggerin -- lighttpd
260 %webapp_register lighttpd %{_webapp}
262 %triggerun -- lighttpd
263 %webapp_unregister lighttpd %{_webapp}
266 if [ -d %{_appdir}/data -a ! -L %{_appdir}/data ]; then
267 mv -f %{_appdir}/data/* %{_localstatedir}
268 rm -rf %{_appdir}/data
270 if [ -d %{_appdir}/conf -a ! -L %{_appdir}/conf ]; then
271 mv -f %{_appdir}/conf/* %{_sysconfdir}
272 rm -rf %{_appdir}/conf
274 if [ -d %{_localstatedir}/cache ]; then
275 rm -rf %{_localstatedir}/cache
279 %files -f %{name}.lang
280 %defattr(644,root,root,755)
282 %dir %attr(750,root,http) %verify(not mode) %{_sysconfdir}
283 %dir %attr(750,root,http) %{_sysconfdir}/lang
284 %dir %attr(750,root,http) %{_sysconfdir}/plugin_lang
285 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
286 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
287 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
289 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mediameta.php
290 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/plugins.php
291 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/scheme.conf
293 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/acl.auth.php
294 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/acronyms.local.conf
295 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/entities.local.conf
296 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/interwiki.local.conf
297 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/license.local.php
298 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/local.protected.php
299 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mime.local.conf
300 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mysql.conf.php
301 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/smileys.local.conf
302 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/users.auth.php
303 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/userscript.js
304 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/userstyle.css
306 %attr(640,root,http) %config(noreplace) %verify(not md5 mode mtime size) %{_sysconfdir}/local.php
307 %attr(640,root,http) %config(noreplace) %verify(not md5 mode mtime size) %{_sysconfdir}/plugins.local.php
309 # use local.php, local.protected.php, etc for local changes
310 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/acronyms.conf
311 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/entities.conf
312 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/interwiki.conf
313 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/mime.conf
314 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/smileys.conf
315 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/wordblock.conf
316 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/manifest.json
318 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/dokuwiki.php
319 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/license.php
320 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/plugins.required.php
328 %attr(755,root,root) %{_appdir}/bin/dwpage.php
329 %attr(755,root,root) %{_appdir}/bin/gittool.php
330 %attr(755,root,root) %{_appdir}/bin/indexer.php
331 %attr(755,root,root) %{_appdir}/bin/plugin.php
332 %attr(755,root,root) %{_appdir}/bin/render.php
333 %attr(755,root,root) %{_appdir}/bin/striplangs.php
334 %attr(755,root,root) %{_appdir}/bin/wantedpages.php
338 %{_appdir}/inc/preload.php.dist
339 %{_appdir}/inc/Action
341 %{_appdir}/inc/ChangeLog
343 %{_appdir}/inc/Extension
348 %{_appdir}/inc/Parsing
349 %{_appdir}/inc/Remote
350 %{_appdir}/inc/Search
351 %{_appdir}/inc/Sitemap
352 %{_appdir}/inc/Subscriptions
355 %{_appdir}/inc/parser
357 # composer generated vendor autoload
358 %dir %{_appdir}/vendor
359 %{_appdir}/vendor/README
360 %{_appdir}/vendor/autoload.php
361 %{_appdir}/vendor/composer
364 # verbose files to detect new addons
365 %dir %{_appdir}/vendor/aziraphale
366 %dir %{_appdir}/vendor/marcusschwarz
367 %dir %{_appdir}/vendor/openpsa
368 %dir %{_appdir}/vendor/paragonie
369 %dir %{_appdir}/vendor/phpseclib
370 %dir %{_appdir}/vendor/simplepie
371 %dir %{_appdir}/vendor/splitbrain
372 %{_appdir}/vendor/aziraphale/email-address-validator
373 %{_appdir}/vendor/marcusschwarz/lesserphp
374 %{_appdir}/vendor/openpsa/universalfeedcreator
375 %{_appdir}/vendor/paragonie/random_compat
376 %{_appdir}/vendor/phpseclib/phpseclib
377 %{_appdir}/vendor/simplepie/simplepie
378 %{_appdir}/vendor/splitbrain/php-archive
379 %{_appdir}/vendor/splitbrain/php-cli
382 # allow plugins dir permission change to allow installation of plugins from admin
383 # however does not work with rpm 4.5
384 %dir %config %verify(not group mode) %{_appdir}/lib/plugins
386 %{_appdir}/lib/plugins/*.php
387 %dir %{_appdir}/lib/plugins/acl
388 %{_appdir}/lib/plugins/acl/*.*
389 %{_appdir}/lib/plugins/acl/pix
390 %dir %{_appdir}/lib/plugins/authad
391 %{_appdir}/lib/plugins/authad/*.php
392 %{_appdir}/lib/plugins/authad/*.txt
393 %{_appdir}/lib/plugins/authad/adLDAP
394 %{_appdir}/lib/plugins/authad/conf
395 %dir %{_appdir}/lib/plugins/authldap
396 %{_appdir}/lib/plugins/authldap/*.php
397 %{_appdir}/lib/plugins/authldap/*.txt
398 %{_appdir}/lib/plugins/authldap/conf
399 %dir %{_appdir}/lib/plugins/authpdo
400 %{_appdir}/lib/plugins/authpdo/*.php
401 %{_appdir}/lib/plugins/authpdo/*.txt
402 %{_appdir}/lib/plugins/authpdo/README
403 %{_appdir}/lib/plugins/authpdo/conf
404 %dir %{_appdir}/lib/plugins/authplain
405 %{_appdir}/lib/plugins/authplain/*.php
406 %{_appdir}/lib/plugins/authplain/*.txt
407 %dir %{_appdir}/lib/plugins/config
408 %{_appdir}/lib/plugins/config/*.*
409 %{_appdir}/lib/plugins/config/core
410 %{_appdir}/lib/plugins/config/images
411 %{_appdir}/lib/plugins/config/settings
412 %dir %{_appdir}/lib/plugins/extension
413 %{_appdir}/lib/plugins/extension/*.*
414 %{_appdir}/lib/plugins/extension/helper
415 %{_appdir}/lib/plugins/extension/images
416 %dir %{_appdir}/lib/plugins/revert
417 %{_appdir}/lib/plugins/revert/*.*
418 %dir %{_appdir}/lib/plugins/safefnrecode
419 %{_appdir}/lib/plugins/safefnrecode/*.*
420 %dir %{_appdir}/lib/plugins/usermanager
421 %{_appdir}/lib/plugins/usermanager/*.*
422 %{_appdir}/lib/plugins/usermanager/images
423 %dir %{_appdir}/lib/plugins/info
424 %{_appdir}/lib/plugins/info/*.*
425 %dir %{_appdir}/lib/plugins/popularity
426 %{_appdir}/lib/plugins/popularity/*.*
427 %dir %{_appdir}/lib/plugins/styling
428 %{_appdir}/lib/plugins/styling/README
429 %{_appdir}/lib/plugins/styling/*.*
431 %{_appdir}/lib/images
432 %{_appdir}/lib/scripts
433 %{_appdir}/lib/styles
436 %dir %{_appdir}/lib/tpl
437 %{_appdir}/lib/tpl/index.php
439 %dir %{_appdir}/lib/tpl/dokuwiki
440 %{_appdir}/lib/tpl/dokuwiki/css
441 %{_appdir}/lib/tpl/dokuwiki/images
442 %{_appdir}/lib/tpl/dokuwiki/*.info.txt
443 %{_appdir}/lib/tpl/dokuwiki/*.ini
444 %{_appdir}/lib/tpl/dokuwiki/*.js
445 %{_appdir}/lib/tpl/dokuwiki/*.php
447 %dir %attr(770,root,http) %{_localstatedir}
448 %dir %attr(770,root,http) %{_localstatedir}/attic
449 %dir %attr(770,root,http) %{_localstatedir}/index
450 %dir %attr(770,root,http) %{_localstatedir}/locks
451 %dir %attr(770,root,http) %{_localstatedir}/media
452 %dir %attr(770,root,http) %{_localstatedir}/media_attic
453 %dir %attr(770,root,http) %{_localstatedir}/media_meta
454 %dir %attr(770,root,http) %{_localstatedir}/media/wiki
455 %dir %attr(770,root,http) %{_localstatedir}/meta
456 %dir %attr(770,root,http) %{_localstatedir}/pages
457 %dir %attr(770,root,http) %{_localstatedir}/pages/playground
458 %dir %attr(770,root,http) %{_localstatedir}/pages/wiki
459 %dir %attr(770,root,http) %{_localstatedir}/tmp
461 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/media/wiki/dokuwiki-128.png
462 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/media/wiki/dokuwiki.svg
463 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/dokuwiki.txt
464 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/syntax.txt
465 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/welcome.txt
466 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/playground/playground.txt
467 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/dont-panic-if-you-see-this-in-your-logs-it-means-your-directory-permissions-are-correct.png
469 %dir %attr(770,root,http) %{_cachedir}
472 %defattr(644,root,root,755)
473 %{_appdir}/install.php