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 Patch28: https://github.com/dokuwiki/dokuwiki/pull/2432.diff
46 # Patch28-md5: 5afbddfdd2b5c3a72377ead41da555af
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.9.1
57 Requires: webserver(access)
58 Requires: webserver(alias)
59 Requires: webserver(php)
61 Obsoletes: dokuwiki-plugin-jquery
62 Obsoletes: dokuwiki-plugin-showlogin2
63 Conflicts: dokuwiki-plugin-gallery < 20161222
64 Conflicts: dokuwiki-plugin-icalevents < 20120909
65 Conflicts: dokuwiki-plugin-include < 20181129
66 Conflicts: dokuwiki-plugin-odt < 20170218
67 # can use gz compression to store attic pages
70 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
72 %define _webapps /etc/webapps
73 %define _webapp %{name}
74 %define _sysconfdir %{_webapps}/%{_webapp}
75 %define _appdir %{_datadir}/%{_webapp}
76 %define _localstatedir /var/lib/%{name}
77 %define _cachedir /var/cache/%{name}
78 %define _logdir /var/log/php/%{name}
80 %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
82 # exclude optional php dependencies
83 %define _noautophp php-bzip2 php-bcmath php-zip php-date php-ftp php-hash php-ldap php-mbstring php-mysql php-pgsql php-tokenizer
85 %define _noautoreq %{_noautophp}
88 DokuWiki is a standards compliant, simple to use Wiki, mainly aimed at
89 creating documentation of any kind. It is targeted at developer teams,
90 workgroups and small companies. It has a simple but powerful syntax
91 which makes sure the datafiles remain readable outside the Wiki and
92 eases the creation of structured texts. All data is stored in plain
93 text files - no database is required.
95 %description -l pl.UTF-8
96 DokuWiki to zgodne ze standardami i proste w użyciu Wiki, przeznaczone
97 głównie do tworzenia dokumentów wszelkiego rodzaju. Jest przeznaczone
98 dla zespołów programistów, grup roboczych i małych firm. Ma prostą,
99 ale mającą duże możliwości składnię, dzięki której pliki danych
100 pozostają czytelne poza Wiki, a także ułatwiającą tworzenie tekstów
101 strukturalnych. Wszystkie dane są przechowywane w plikach tekstowych -
102 nie jest wymagana baza danych.
105 Summary: DokuWiki setup package
106 Summary(pl.UTF-8): Pakiet do wstępnej konfiguracji DokuWiki
107 Group: Applications/WWW
108 Requires: %{name} = %{version}-%{release}
111 Install this package to configure initial DokuWiki installation. You
112 should uninstall this package when you're done, as it considered
113 insecure to keep the setup files in place.
115 %description setup -l pl.UTF-8
116 Ten pakiet należy zainstalować w celu wstępnej konfiguracji DokuWiki
117 po pierwszej instalacji. Potem należy go odinstalować, jako że
118 pozostawienie plików instalacyjnych mogłoby być niebezpieczne.
121 %setup -q -n %{name}-%{?rc_:rc}%{subver} %{?snap:-c}
124 test -e VERSION || echo %{subver}-git > VERSION
126 install -d data/pages/playground
127 test -e data/pages/playground/playground.txt || \
128 echo '====== PlayGround ======' > data/pages/playground/playground.txt
142 # package as basenames, upgrade overwrite protected with .rpmnew
143 mv conf/local.php{.dist,}
144 mv conf/acl.auth.php{.dist,}
145 mv conf/users.auth.php{.dist,}
146 mv conf/mysql.conf.php{.example,}
148 find -name _dummy | xargs %{__rm}
149 %{__rm} lib/index.html lib/plugins/index.html lib/images/index.html
150 %{__rm} {conf,inc,bin,data}/.htaccess
151 %{__rm} vendor/.htaccess
152 %{__rm} lib/plugins/styling/.travis.yml
153 %{__rm} -r lib/plugins/*/_test
155 # we just don't package deleted files, these get removed automatically on rpm upgrades
156 %{__rm} data/deleted.files
157 # source for dont-panic-if-you-see-this-in-your-logs-it-means-your-directory-permissions-are-correct.png
158 %{__rm} data/dont-panic-if-you-see-this-in-your-logs-it-means-your-directory-permissions-are-correct.xcf
160 %{__rm} lib/scripts/jquery/update.sh
162 # use system geshi package
163 %{__rm} -r vendor/geshi/geshi
164 install -d vendor/geshi/geshi/src
165 %{__ln} -snf %{php_data_dir}/geshi.php vendor/geshi/geshi/src/geshi.php
167 # generic vendor cleanup
168 %{__rm} -v vendor/*/*/composer.*
170 # use system simplepie package
171 #%{__rm} inc/SimplePie.php
173 # pagetools - tools for development
174 %{__rm} -r lib/tpl/dokuwiki/images/pagetools
175 %{__rm} lib/tpl/dokuwiki/images/pagetools-build*
177 %{__sed} -i -e '1 s,#!.*php,#!/usr/bin/php,' bin/*.php
179 # cleanup backups after patching
180 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
183 rm -rf $RPM_BUILD_ROOT
184 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/{lang,plugin_lang},%{_localstatedir},%{_cachedir},%{_appdir},%{_logdir}}
187 cp -al VERSION $RPM_BUILD_ROOT%{_appdir} 2>/dev/null && l=l
189 cp -a$l *.php $RPM_BUILD_ROOT%{_appdir}
190 cp -p$l VERSION $RPM_BUILD_ROOT%{_appdir}
191 cp -a$l bin $RPM_BUILD_ROOT%{_appdir}
192 cp -a$l inc $RPM_BUILD_ROOT%{_appdir}
193 cp -a$l lib $RPM_BUILD_ROOT%{_appdir}
194 cp -a$l vendor $RPM_BUILD_ROOT%{_appdir}
195 cp -a$l conf/* $RPM_BUILD_ROOT%{_sysconfdir}
196 cp -a$l data/* $RPM_BUILD_ROOT%{_localstatedir}
197 touch $RPM_BUILD_ROOT%{_sysconfdir}/acronyms.local.conf
198 touch $RPM_BUILD_ROOT%{_sysconfdir}/entities.local.conf
199 touch $RPM_BUILD_ROOT%{_sysconfdir}/interwiki.local.conf
200 touch $RPM_BUILD_ROOT%{_sysconfdir}/license.local.php
201 touch $RPM_BUILD_ROOT%{_sysconfdir}/plugins.local.php
202 touch $RPM_BUILD_ROOT%{_sysconfdir}/local.protected.php
203 touch $RPM_BUILD_ROOT%{_sysconfdir}/mime.local.conf
204 touch $RPM_BUILD_ROOT%{_sysconfdir}/smileys.local.conf
205 touch $RPM_BUILD_ROOT%{_sysconfdir}/userscript.js
206 touch $RPM_BUILD_ROOT%{_sysconfdir}/userstyle.css
208 # https://github.com/splitbrain/dokuwiki/pull/1247
209 #ln $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/{dokubug,bug}.gif
210 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/eventum.gif
211 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/cacti.gif
212 cp -p %{SOURCE8} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/nagios.gif
213 cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/trac.png
214 cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/pld.gif
215 cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/gitlab.png
216 cp -p %{SOURCE13} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/jenkins.png
218 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_appdir}/lib/images/fileicons/jude.png
219 cp -p %{SOURCE11} $RPM_BUILD_ROOT%{_appdir}/lib/images/fileicons/asta.png
221 cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_appdir}/lib/tpl/dokuwiki/images/button-pld.png
222 cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_appdir}/inc/preload.php
224 # Move back to conf, to be readonly
225 install -d $RPM_BUILD_ROOT%{_appdir}/conf
226 set -- acronyms.conf dokuwiki.php entities.conf interwiki.conf license.php mediameta.php mime.conf mysql.conf.php scheme.conf smileys.conf wordblock.conf
227 (cd $RPM_BUILD_ROOT%{_sysconfdir} && mv "$@" $RPM_BUILD_ROOT%{_appdir}/conf)
229 # hardlink identical icons.
230 findup -m $RPM_BUILD_ROOT
232 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
233 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
234 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
237 %find_lang %{name}.lang --with-dokuwiki
240 rm -rf $RPM_BUILD_ROOT
243 chmod 770 %{_sysconfdir}
244 chmod 660 %{_sysconfdir}/local.php
245 chmod 660 %{_sysconfdir}/plugins.local.php
248 if [ "$1" = "0" ]; then
249 if [ -f %{_sysconfdir}/dokuwiki.php ]; then
250 chmod 750 %{_sysconfdir}
251 chmod 640 %{_sysconfdir}/local.php
252 chmod 640 %{_sysconfdir}/plugins.local.php
256 %triggerin -- apache1 < 1.3.37-3, apache1-base
257 %webapp_register apache %{_webapp}
259 %triggerun -- apache1 < 1.3.37-3, apache1-base
260 %webapp_unregister apache %{_webapp}
262 %triggerin -- apache < 2.2.0, apache-base
263 %webapp_register httpd %{_webapp}
265 %triggerun -- apache < 2.2.0, apache-base
266 %webapp_unregister httpd %{_webapp}
268 %triggerin -- lighttpd
269 %webapp_register lighttpd %{_webapp}
271 %triggerun -- lighttpd
272 %webapp_unregister lighttpd %{_webapp}
275 if [ -d %{_appdir}/data -a ! -L %{_appdir}/data ]; then
276 mv -f %{_appdir}/data/* %{_localstatedir}
277 rm -rf %{_appdir}/data
279 if [ -d %{_appdir}/conf -a ! -L %{_appdir}/conf ]; then
280 mv -f %{_appdir}/conf/* %{_sysconfdir}
281 rm -rf %{_appdir}/conf
283 if [ -d %{_localstatedir}/cache ]; then
284 rm -rf %{_localstatedir}/cache
288 %files -f %{name}.lang
289 %defattr(644,root,root,755)
291 %dir %attr(750,root,http) %verify(not mode) %{_sysconfdir}
292 %dir %attr(750,root,http) %{_sysconfdir}/lang
293 %dir %attr(750,root,http) %{_sysconfdir}/plugin_lang
294 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
295 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
296 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
298 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/plugins.php
299 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/acl.auth.php
300 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/acronyms.local.conf
301 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/entities.local.conf
302 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/interwiki.local.conf
303 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/license.local.php
304 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/local.protected.php
305 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mime.local.conf
306 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/smileys.local.conf
307 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/users.auth.php
308 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/userscript.js
309 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/userstyle.css
311 %attr(640,root,http) %config(noreplace) %verify(not md5 mode mtime size) %{_sysconfdir}/local.php
312 %attr(640,root,http) %config(noreplace) %verify(not md5 mode mtime size) %{_sysconfdir}/plugins.local.php
314 # use local.php, local.protected.php, etc for local changes
315 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/manifest.json
316 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/plugins.required.php
325 %attr(755,root,root) %{_appdir}/bin/dwpage.php
326 %attr(755,root,root) %{_appdir}/bin/gittool.php
327 %attr(755,root,root) %{_appdir}/bin/indexer.php
328 %attr(755,root,root) %{_appdir}/bin/plugin.php
329 %attr(755,root,root) %{_appdir}/bin/render.php
330 %attr(755,root,root) %{_appdir}/bin/striplangs.php
331 %attr(755,root,root) %{_appdir}/bin/wantedpages.php
335 %{_appdir}/inc/preload.php.dist
336 %{_appdir}/inc/Action
338 %{_appdir}/inc/ChangeLog
340 %{_appdir}/inc/Exception
341 %{_appdir}/inc/Extension
347 %{_appdir}/inc/Parsing
348 %{_appdir}/inc/Remote
349 %{_appdir}/inc/Search
350 %{_appdir}/inc/Sitemap
351 %{_appdir}/inc/Subscriptions
354 %{_appdir}/inc/parser
356 # composer generated vendor autoload
357 %dir %{_appdir}/vendor
358 %{_appdir}/vendor/README
359 %{_appdir}/vendor/autoload.php
360 %{_appdir}/vendor/composer
363 # verbose files to detect new addons
364 %dir %{_appdir}/vendor/aziraphale
365 %dir %{_appdir}/vendor/geshi
366 %dir %{_appdir}/vendor/kissifrot
367 %dir %{_appdir}/vendor/marcusschwarz
368 %dir %{_appdir}/vendor/openpsa
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/geshi/geshi
374 %{_appdir}/vendor/kissifrot/php-ixr
375 %{_appdir}/vendor/marcusschwarz/lesserphp
376 %{_appdir}/vendor/openpsa/universalfeedcreator
377 %{_appdir}/vendor/phpseclib/phpseclib
378 %{_appdir}/vendor/simplepie/simplepie
379 %{_appdir}/vendor/splitbrain/php-archive
380 %{_appdir}/vendor/splitbrain/php-cli
381 %{_appdir}/vendor/splitbrain/php-jsstrip
382 %{_appdir}/vendor/splitbrain/slika
385 # allow plugins dir permission change to allow installation of plugins from admin
386 # however does not work with rpm 4.5
387 %dir %config %verify(not group mode) %{_appdir}/lib/plugins
389 %{_appdir}/lib/plugins/*.php
390 %dir %{_appdir}/lib/plugins/acl
391 %{_appdir}/lib/plugins/acl/*.*
392 %{_appdir}/lib/plugins/acl/pix
393 %dir %{_appdir}/lib/plugins/authad
394 %{_appdir}/lib/plugins/authad/*.php
395 %{_appdir}/lib/plugins/authad/*.txt
396 %{_appdir}/lib/plugins/authad/adLDAP
397 %{_appdir}/lib/plugins/authad/conf
398 %dir %{_appdir}/lib/plugins/authldap
399 %{_appdir}/lib/plugins/authldap/*.php
400 %{_appdir}/lib/plugins/authldap/*.txt
401 %{_appdir}/lib/plugins/authldap/conf
402 %dir %{_appdir}/lib/plugins/authpdo
403 %{_appdir}/lib/plugins/authpdo/*.php
404 %{_appdir}/lib/plugins/authpdo/*.txt
405 %{_appdir}/lib/plugins/authpdo/README
406 %{_appdir}/lib/plugins/authpdo/conf
407 %dir %{_appdir}/lib/plugins/authplain
408 %{_appdir}/lib/plugins/authplain/*.php
409 %{_appdir}/lib/plugins/authplain/*.txt
410 %dir %{_appdir}/lib/plugins/config
411 %{_appdir}/lib/plugins/config/*.*
412 %{_appdir}/lib/plugins/config/core
413 %{_appdir}/lib/plugins/config/images
414 %{_appdir}/lib/plugins/config/settings
415 %dir %{_appdir}/lib/plugins/extension
416 %{_appdir}/lib/plugins/extension/*.*
417 %{_appdir}/lib/plugins/extension/helper
418 %{_appdir}/lib/plugins/extension/images
419 %dir %{_appdir}/lib/plugins/logviewer
420 %{_appdir}/lib/plugins/logviewer/*.*
421 %dir %{_appdir}/lib/plugins/revert
422 %{_appdir}/lib/plugins/revert/*.*
423 %dir %{_appdir}/lib/plugins/safefnrecode
424 %{_appdir}/lib/plugins/safefnrecode/*.*
425 %dir %{_appdir}/lib/plugins/usermanager
426 %{_appdir}/lib/plugins/usermanager/*.*
427 %{_appdir}/lib/plugins/usermanager/images
428 %dir %{_appdir}/lib/plugins/info
429 %{_appdir}/lib/plugins/info/*.*
430 %dir %{_appdir}/lib/plugins/popularity
431 %{_appdir}/lib/plugins/popularity/*.*
432 %dir %{_appdir}/lib/plugins/styling
433 %{_appdir}/lib/plugins/styling/README
434 %{_appdir}/lib/plugins/styling/*.*
436 %{_appdir}/lib/images
437 %{_appdir}/lib/scripts
438 %{_appdir}/lib/styles
441 %dir %{_appdir}/lib/tpl
442 %{_appdir}/lib/tpl/index.php
444 %dir %{_appdir}/lib/tpl/dokuwiki
445 %{_appdir}/lib/tpl/dokuwiki/css
446 %{_appdir}/lib/tpl/dokuwiki/images
447 %{_appdir}/lib/tpl/dokuwiki/*.info.txt
448 %{_appdir}/lib/tpl/dokuwiki/*.ini
449 %{_appdir}/lib/tpl/dokuwiki/*.js
450 %{_appdir}/lib/tpl/dokuwiki/*.php
452 %dir %attr(770,root,http) %{_localstatedir}
453 %dir %attr(770,root,http) %{_localstatedir}/attic
454 %dir %attr(770,root,http) %{_localstatedir}/index
455 %dir %attr(770,root,http) %{_localstatedir}/locks
456 %dir %attr(770,root,http) %{_localstatedir}/media
457 %dir %attr(770,root,http) %{_localstatedir}/media_attic
458 %dir %attr(770,root,http) %{_localstatedir}/media_meta
459 %dir %attr(770,root,http) %{_localstatedir}/media/wiki
460 %dir %attr(770,root,http) %{_localstatedir}/meta
461 %dir %attr(770,root,http) %{_localstatedir}/pages
462 %dir %attr(770,root,http) %{_localstatedir}/pages/playground
463 %dir %attr(770,root,http) %{_localstatedir}/pages/wiki
464 %dir %attr(770,root,http) %{_localstatedir}/tmp
466 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/media/wiki/dokuwiki-128.png
467 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/media/wiki/dokuwiki.svg
468 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/dokuwiki.txt
469 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/syntax.txt
470 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/welcome.txt
471 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/playground/playground.txt
472 %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
474 %dir %attr(770,root,http) %{_cachedir}
475 %dir %attr(770,root,http) %{_logdir}
478 %defattr(644,root,root,755)
479 %{_appdir}/install.php