1 %define subver 2023-04-04
2 %define ver %(echo %{subver} | tr -d -)
5 %define php_min_version 7.2
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://github.com/dokuwiki/dokuwiki/releases/download/release-%{subver}/dokuwiki-%{subver}.tgz
15 # Source0-md5: a112952394f3d4b76efb9dc2f985f99f
16 Source1: %{name}-apache.conf
17 Source2: %{name}-lighttpd.conf
18 Source3: http://glen.alkohol.ee/pld/jude.png
19 # 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
32 # Source12-md5: 619cec6f2b083269b1ec9cd50d9e6ef2
33 Source13: http://mirrors.jenkins-ci.org/art/jenkins-logo/16x16/headshot.png?/jenkins.png
34 # Source13-md5: ae892e4ca43ffab88f6e3dca951f3e8a
35 Patch66: %{name}-config.patch
36 Patch0: %{name}-paths.patch
37 Patch2: style-width.patch
38 Patch5: %{name}-http_auth-option.patch
39 Patch8: %{name}-notify-respect-minor.patch
40 Patch10: %{name}-mailtext.patch
41 Patch19: pld-branding.patch
42 Patch21: task-1821.patch
43 Patch24: more-buttons.patch
44 Patch27: iconsizes-dump.patch
45 URL: https://www.dokuwiki.org/
47 BuildRequires: rpm-php-pearprov >= 4.4.2-11
48 BuildRequires: rpmbuild(find_lang) >= 1.41
49 BuildRequires: rpmbuild(macros) >= 1.693
50 Requires: php(core) >= %{php_min_version}
51 Requires: php(session)
53 Requires: php-geshi >= 1.0.9.1
55 Requires: webserver(access)
56 Requires: webserver(alias)
57 Requires: webserver(php)
59 Obsoletes: dokuwiki-plugin-jquery
60 Obsoletes: dokuwiki-plugin-showlogin2
61 Conflicts: dokuwiki-plugin-gallery < 20161222
62 Conflicts: dokuwiki-plugin-icalevents < 20120909
63 Conflicts: dokuwiki-plugin-include < 20181129
64 Conflicts: dokuwiki-plugin-odt < 20170218
65 # can use gz compression to store attic pages
68 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
70 %define _webapps /etc/webapps
71 %define _webapp %{name}
72 %define _sysconfdir %{_webapps}/%{_webapp}
73 %define _appdir %{_datadir}/%{_webapp}
74 %define _localstatedir /var/lib/%{name}
75 %define _cachedir /var/cache/%{name}
76 %define _logdir /var/log/php/%{name}
78 %define _noautoreq_pear lib/byte_safe_strings.php lib/cast_to_int.php lib/error_polyfill.php lib/random.php other/ide_stubs/libsodium.php
80 # exclude optional php dependencies
81 %define _noautophp php-bzip2 php-bcmath php-zip php-date php-ftp php-hash php-ldap php-mbstring php-mysql php-pgsql php-tokenizer
83 %define _noautoreq %{_noautophp}
86 DokuWiki is a standards compliant, simple to use Wiki, mainly aimed at
87 creating documentation of any kind. It is targeted at developer teams,
88 workgroups and small companies. It has a simple but powerful syntax
89 which makes sure the datafiles remain readable outside the Wiki and
90 eases the creation of structured texts. All data is stored in plain
91 text files - no database is required.
93 %description -l pl.UTF-8
94 DokuWiki to zgodne ze standardami i proste w użyciu Wiki, przeznaczone
95 głównie do tworzenia dokumentów wszelkiego rodzaju. Jest przeznaczone
96 dla zespołów programistów, grup roboczych i małych firm. Ma prostą,
97 ale mającą duże możliwości składnię, dzięki której pliki danych
98 pozostają czytelne poza Wiki, a także ułatwiającą tworzenie tekstów
99 strukturalnych. Wszystkie dane są przechowywane w plikach tekstowych -
100 nie jest wymagana baza danych.
103 Summary: DokuWiki setup package
104 Summary(pl.UTF-8): Pakiet do wstępnej konfiguracji DokuWiki
105 Group: Applications/WWW
106 Requires: %{name} = %{version}-%{release}
109 Install this package to configure initial DokuWiki installation. You
110 should uninstall this package when you're done, as it considered
111 insecure to keep the setup files in place.
113 %description setup -l pl.UTF-8
114 Ten pakiet należy zainstalować w celu wstępnej konfiguracji DokuWiki
115 po pierwszej instalacji. Potem należy go odinstalować, jako że
116 pozostawienie plików instalacyjnych mogłoby być niebezpieczne.
119 %setup -q -n %{name}-%{?rc_:rc}%{subver} %{?snap:-c}
122 test -e VERSION || echo %{subver}-git > VERSION
124 install -d data/pages/playground
125 test -e data/pages/playground/playground.txt || \
126 echo '====== PlayGround ======' > data/pages/playground/playground.txt
139 # package as basenames, upgrade overwrite protected with .rpmnew
140 mv conf/local.php{.dist,}
141 mv conf/acl.auth.php{.dist,}
142 mv conf/users.auth.php{.dist,}
143 mv conf/mysql.conf.php{.example,}
145 find -name _dummy | xargs %{__rm}
146 %{__rm} lib/index.html lib/plugins/index.html lib/images/index.html
147 %{__rm} {conf,inc,bin,data}/.htaccess
148 %{__rm} vendor/.htaccess
149 %{__rm} lib/plugins/styling/.travis.yml
150 %{__rm} -r lib/plugins/*/_test
152 # we just don't package deleted files, these get removed automatically on rpm upgrades
153 %{__rm} data/deleted.files
154 # source for dont-panic-if-you-see-this-in-your-logs-it-means-your-directory-permissions-are-correct.png
155 %{__rm} data/dont-panic-if-you-see-this-in-your-logs-it-means-your-directory-permissions-are-correct.xcf
157 %{__rm} lib/scripts/jquery/update.sh
159 # use system geshi package
160 %{__rm} -r vendor/geshi/geshi
161 install -d vendor/geshi/geshi/src
162 %{__ln} -snf %{php_data_dir}/geshi.php vendor/geshi/geshi/src/geshi.php
164 # generic vendor cleanup
165 %{__rm} -v vendor/*/*/composer.*
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},%{_logdir}}
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
219 cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_appdir}/inc/preload.php
221 # Move back to conf, to be readonly
222 install -d $RPM_BUILD_ROOT%{_appdir}/conf
223 set -- acronyms.conf dokuwiki.php entities.conf interwiki.conf license.php mediameta.php mime.conf mysql.conf.php scheme.conf smileys.conf wordblock.conf
224 (cd $RPM_BUILD_ROOT%{_sysconfdir} && mv "$@" $RPM_BUILD_ROOT%{_appdir}/conf)
226 # hardlink identical icons.
227 findup -m $RPM_BUILD_ROOT
229 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
230 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
231 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
234 %find_lang %{name}.lang --with-dokuwiki
237 rm -rf $RPM_BUILD_ROOT
240 chmod 770 %{_sysconfdir}
241 chmod 660 %{_sysconfdir}/local.php
242 chmod 660 %{_sysconfdir}/plugins.local.php
245 if [ "$1" = "0" ]; then
246 if [ -f %{_sysconfdir}/dokuwiki.php ]; then
247 chmod 750 %{_sysconfdir}
248 chmod 640 %{_sysconfdir}/local.php
249 chmod 640 %{_sysconfdir}/plugins.local.php
253 %triggerin -- apache1 < 1.3.37-3, apache1-base
254 %webapp_register apache %{_webapp}
256 %triggerun -- apache1 < 1.3.37-3, apache1-base
257 %webapp_unregister apache %{_webapp}
259 %triggerin -- apache < 2.2.0, apache-base
260 %webapp_register httpd %{_webapp}
262 %triggerun -- apache < 2.2.0, apache-base
263 %webapp_unregister httpd %{_webapp}
265 %triggerin -- lighttpd
266 %webapp_register lighttpd %{_webapp}
268 %triggerun -- lighttpd
269 %webapp_unregister lighttpd %{_webapp}
272 if [ -d %{_appdir}/data -a ! -L %{_appdir}/data ]; then
273 mv -f %{_appdir}/data/* %{_localstatedir}
274 rm -rf %{_appdir}/data
276 if [ -d %{_appdir}/conf -a ! -L %{_appdir}/conf ]; then
277 mv -f %{_appdir}/conf/* %{_sysconfdir}
278 rm -rf %{_appdir}/conf
280 if [ -d %{_localstatedir}/cache ]; then
281 rm -rf %{_localstatedir}/cache
285 %files -f %{name}.lang
286 %defattr(644,root,root,755)
288 %dir %attr(750,root,http) %verify(not mode) %{_sysconfdir}
289 %dir %attr(750,root,http) %{_sysconfdir}/lang
290 %dir %attr(750,root,http) %{_sysconfdir}/plugin_lang
291 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
292 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
293 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
295 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/plugins.php
296 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/acl.auth.php
297 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/acronyms.local.conf
298 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/entities.local.conf
299 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/interwiki.local.conf
300 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/license.local.php
301 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/local.protected.php
302 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mime.local.conf
303 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/smileys.local.conf
304 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/users.auth.php
305 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/userscript.js
306 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/userstyle.css
308 %attr(640,root,http) %config(noreplace) %verify(not md5 mode mtime size) %{_sysconfdir}/local.php
309 %attr(640,root,http) %config(noreplace) %verify(not md5 mode mtime size) %{_sysconfdir}/plugins.local.php
311 # use local.php, local.protected.php, etc for local changes
312 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/manifest.json
313 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/plugins.required.php
322 %attr(755,root,root) %{_appdir}/bin/dwpage.php
323 %attr(755,root,root) %{_appdir}/bin/gittool.php
324 %attr(755,root,root) %{_appdir}/bin/indexer.php
325 %attr(755,root,root) %{_appdir}/bin/plugin.php
326 %attr(755,root,root) %{_appdir}/bin/render.php
327 %attr(755,root,root) %{_appdir}/bin/striplangs.php
328 %attr(755,root,root) %{_appdir}/bin/wantedpages.php
332 %{_appdir}/inc/preload.php.dist
333 %{_appdir}/inc/Action
335 %{_appdir}/inc/ChangeLog
337 %{_appdir}/inc/Exception
338 %{_appdir}/inc/Extension
344 %{_appdir}/inc/Parsing
345 %{_appdir}/inc/Remote
346 %{_appdir}/inc/Search
347 %{_appdir}/inc/Sitemap
348 %{_appdir}/inc/Subscriptions
351 %{_appdir}/inc/parser
353 # composer generated vendor autoload
354 %dir %{_appdir}/vendor
355 %{_appdir}/vendor/README
356 %{_appdir}/vendor/autoload.php
357 %{_appdir}/vendor/composer
360 # verbose files to detect new addons
361 %dir %{_appdir}/vendor/aziraphale
362 %dir %{_appdir}/vendor/geshi
363 %dir %{_appdir}/vendor/kissifrot
364 %dir %{_appdir}/vendor/marcusschwarz
365 %dir %{_appdir}/vendor/openpsa
366 %dir %{_appdir}/vendor/phpseclib
367 %dir %{_appdir}/vendor/simplepie
368 %dir %{_appdir}/vendor/splitbrain
369 %{_appdir}/vendor/aziraphale/email-address-validator
370 %{_appdir}/vendor/geshi/geshi
371 %{_appdir}/vendor/kissifrot/php-ixr
372 %{_appdir}/vendor/marcusschwarz/lesserphp
373 %{_appdir}/vendor/openpsa/universalfeedcreator
374 %{_appdir}/vendor/phpseclib/phpseclib
375 %{_appdir}/vendor/simplepie/simplepie
376 %{_appdir}/vendor/splitbrain/php-archive
377 %{_appdir}/vendor/splitbrain/php-cli
378 %{_appdir}/vendor/splitbrain/php-jsstrip
379 %{_appdir}/vendor/splitbrain/slika
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/logviewer
417 %{_appdir}/lib/plugins/logviewer/*.*
418 %dir %{_appdir}/lib/plugins/revert
419 %{_appdir}/lib/plugins/revert/*.*
420 %dir %{_appdir}/lib/plugins/safefnrecode
421 %{_appdir}/lib/plugins/safefnrecode/*.*
422 %dir %{_appdir}/lib/plugins/usermanager
423 %{_appdir}/lib/plugins/usermanager/*.*
424 %{_appdir}/lib/plugins/usermanager/images
425 %dir %{_appdir}/lib/plugins/info
426 %{_appdir}/lib/plugins/info/*.*
427 %dir %{_appdir}/lib/plugins/popularity
428 %{_appdir}/lib/plugins/popularity/*.*
429 %dir %{_appdir}/lib/plugins/styling
430 %{_appdir}/lib/plugins/styling/README
431 %{_appdir}/lib/plugins/styling/*.*
433 %{_appdir}/lib/images
434 %{_appdir}/lib/scripts
435 %{_appdir}/lib/styles
438 %dir %{_appdir}/lib/tpl
439 %{_appdir}/lib/tpl/index.php
441 %dir %{_appdir}/lib/tpl/dokuwiki
442 %{_appdir}/lib/tpl/dokuwiki/css
443 %{_appdir}/lib/tpl/dokuwiki/images
444 %{_appdir}/lib/tpl/dokuwiki/*.info.txt
445 %{_appdir}/lib/tpl/dokuwiki/*.ini
446 %{_appdir}/lib/tpl/dokuwiki/*.js
447 %{_appdir}/lib/tpl/dokuwiki/*.php
449 %dir %attr(770,root,http) %{_localstatedir}
450 %dir %attr(770,root,http) %{_localstatedir}/attic
451 %dir %attr(770,root,http) %{_localstatedir}/index
452 %dir %attr(770,root,http) %{_localstatedir}/locks
453 %dir %attr(770,root,http) %{_localstatedir}/media
454 %dir %attr(770,root,http) %{_localstatedir}/media_attic
455 %dir %attr(770,root,http) %{_localstatedir}/media_meta
456 %dir %attr(770,root,http) %{_localstatedir}/media/wiki
457 %dir %attr(770,root,http) %{_localstatedir}/meta
458 %dir %attr(770,root,http) %{_localstatedir}/pages
459 %dir %attr(770,root,http) %{_localstatedir}/pages/playground
460 %dir %attr(770,root,http) %{_localstatedir}/pages/wiki
461 %dir %attr(770,root,http) %{_localstatedir}/tmp
463 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/media/wiki/dokuwiki-128.png
464 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/media/wiki/dokuwiki.svg
465 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/dokuwiki.txt
466 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/syntax.txt
467 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/welcome.txt
468 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/playground/playground.txt
469 %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
471 %dir %attr(770,root,http) %{_cachedir}
472 %dir %attr(770,root,http) %{_logdir}
475 %defattr(644,root,root,755)
476 %{_appdir}/install.php