1 %define subver 2018-04-22b
2 %define ver %(echo %{subver} | tr -d -)
5 %define php_min_version 5.6.0
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: https://download.dokuwiki.org/archive
15 Source0: https://download.dokuwiki.org/src/dokuwiki/%{name}-%{subver}.tgz
16 # Source0-md5: 605944ec47cd5f822456c54c124df255
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
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 Patch1: autoload.patch
38 Patch2: style-width.patch
39 Patch4: %{name}-geshi.patch
40 Patch5: %{name}-http_auth-option.patch
41 Patch8: %{name}-notify-respect-minor.patch
42 Patch10: %{name}-mailtext.patch
43 Patch11: %{name}-notifyns.patch
44 Patch19: pld-branding.patch
45 Patch21: task-1821.patch
46 Patch24: more-buttons.patch
47 Patch27: iconsizes-dump.patch
48 URL: https://www.dokuwiki.org/
50 BuildRequires: rpm-php-pearprov >= 4.4.2-11
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}
80 %define find_lang %{_usrlibrpm}/dokuwiki-find-lang.sh %{buildroot}
82 %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
84 # exclude optional php dependencies
85 %define _noautophp php-bzip2 php-bcmath php-zip php-date php-ftp php-hash php-ldap php-mbstring php-mysql php-pgsql php-tokenizer
87 %define _noautoreq %{_noautophp}
90 DokuWiki is a standards compliant, simple to use Wiki, mainly aimed at
91 creating documentation of any kind. It is targeted at developer teams,
92 workgroups and small companies. It has a simple but powerful syntax
93 which makes sure the datafiles remain readable outside the Wiki and
94 eases the creation of structured texts. All data is stored in plain
95 text files - no database is required.
97 %description -l pl.UTF-8
98 DokuWiki to zgodne ze standardami i proste w użyciu Wiki, przeznaczone
99 głównie do tworzenia dokumentów wszelkiego rodzaju. Jest przeznaczone
100 dla zespołów programistów, grup roboczych i małych firm. Ma prostą,
101 ale mającą duże możliwości składnię, dzięki której pliki danych
102 pozostają czytelne poza Wiki, a także ułatwiającą tworzenie tekstów
103 strukturalnych. Wszystkie dane są przechowywane w plikach tekstowych -
104 nie jest wymagana baza danych.
107 Summary: DokuWiki setup package
108 Summary(pl.UTF-8): Pakiet do wstępnej konfiguracji DokuWiki
109 Group: Applications/WWW
110 Requires: %{name} = %{version}-%{release}
113 Install this package to configure initial DokuWiki installation. You
114 should uninstall this package when you're done, as it considered
115 insecure to keep the setup files in place.
117 %description setup -l pl.UTF-8
118 Ten pakiet należy zainstalować w celu wstępnej konfiguracji DokuWiki
119 po pierwszej instalacji. Potem należy go odinstalować, jako że
120 pozostawienie plików instalacyjnych mogłoby być niebezpieczne.
123 %setup -q -n %{name}-%{?rc_:rc}%{subver} %{?snap:-c}
126 test -e VERSION || echo %{subver}-git > VERSION
128 install -d data/pages/playground
129 test -e data/pages/playground/playground.txt || \
130 echo '====== PlayGround ======' > data/pages/playground/playground.txt
146 # package as basenames, upgrade overwrite protected with .rpmnew
147 mv conf/local.php{.dist,}
148 mv conf/acl.auth.php{.dist,}
149 mv conf/users.auth.php{.dist,}
150 mv conf/mysql.conf.php{.example,}
152 find -name _dummy | xargs %{__rm}
153 %{__rm} lib/index.html lib/plugins/index.html lib/images/index.html
154 %{__rm} {conf,inc,bin,data,inc/lang}/.htaccess
155 %{__rm} vendor/.htaccess
157 # we just don't package deleted files, these get removed automatically on rpm upgrades
158 %{__rm} data/deleted.files
159 # source for dont-panic-if-you-see-this-in-your-logs-it-means-your-directory-permissions-are-correct.png
160 %{__rm} data/dont-panic-if-you-see-this-in-your-logs-it-means-your-directory-permissions-are-correct.xcf
162 %{__rm} lib/scripts/jquery/update.sh
164 # use system geshi package
165 %{__rm} -r vendor/geshi/geshi
168 # use system simplepie package
169 #%{__rm} inc/SimplePie.php
171 # flash source on git tarballs
172 rm -rf lib/plugins/testing
173 rm -rf lib/plugins/*/_test
175 # pagetools - tools for development
176 %{__rm} -r lib/tpl/dokuwiki/images/pagetools
177 %{__rm} lib/tpl/dokuwiki/images/pagetools-build*
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}}
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
223 # hardlink identical icons.
224 findup -m $RPM_BUILD_ROOT
226 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
227 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
228 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
231 %find_lang %{name}.lang
234 rm -rf $RPM_BUILD_ROOT
237 chmod 770 %{_sysconfdir}
238 chmod 660 %{_sysconfdir}/local.php
239 chmod 660 %{_sysconfdir}/plugins.local.php
242 if [ "$1" = "0" ]; then
243 if [ -f %{_sysconfdir}/dokuwiki.php ]; then
244 chmod 750 %{_sysconfdir}
245 chmod 640 %{_sysconfdir}/local.php
246 chmod 640 %{_sysconfdir}/plugins.local.php
250 %triggerin -- apache1 < 1.3.37-3, apache1-base
251 %webapp_register apache %{_webapp}
253 %triggerun -- apache1 < 1.3.37-3, apache1-base
254 %webapp_unregister apache %{_webapp}
256 %triggerin -- apache < 2.2.0, apache-base
257 %webapp_register httpd %{_webapp}
259 %triggerun -- apache < 2.2.0, apache-base
260 %webapp_unregister httpd %{_webapp}
262 %triggerin -- lighttpd
263 %webapp_register lighttpd %{_webapp}
265 %triggerun -- lighttpd
266 %webapp_unregister lighttpd %{_webapp}
269 if [ -d %{_appdir}/data -a ! -L %{_appdir}/data ]; then
270 mv -f %{_appdir}/data/* %{_localstatedir}
271 rm -rf %{_appdir}/data
273 if [ -d %{_appdir}/conf -a ! -L %{_appdir}/conf ]; then
274 mv -f %{_appdir}/conf/* %{_sysconfdir}
275 rm -rf %{_appdir}/conf
277 if [ -d %{_localstatedir}/cache ]; then
278 rm -rf %{_localstatedir}/cache
282 %files -f %{name}.lang
283 %defattr(644,root,root,755)
285 %dir %attr(750,root,http) %verify(not mode) %{_sysconfdir}
286 %dir %attr(750,root,http) %{_sysconfdir}/lang
287 %dir %attr(750,root,http) %{_sysconfdir}/plugin_lang
288 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
289 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
290 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
292 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mediameta.php
293 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/plugins.php
294 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/scheme.conf
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}/mysql.conf.php
304 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/smileys.local.conf
305 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/users.auth.php
306 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/userscript.js
307 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/userstyle.css
309 %attr(640,root,http) %config(noreplace) %verify(not md5 mode mtime size) %{_sysconfdir}/local.php
310 %attr(640,root,http) %config(noreplace) %verify(not md5 mode mtime size) %{_sysconfdir}/plugins.local.php
312 # use local.php, local.protected.php, etc for local changes
313 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/acronyms.conf
314 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/entities.conf
315 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/interwiki.conf
316 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/mime.conf
317 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/smileys.conf
318 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/wordblock.conf
319 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/manifest.json
321 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/dokuwiki.php
322 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/license.php
323 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/plugins.required.php
331 %attr(755,root,root) %{_appdir}/bin/dwpage.php
332 %attr(755,root,root) %{_appdir}/bin/gittool.php
333 %attr(755,root,root) %{_appdir}/bin/indexer.php
334 %attr(755,root,root) %{_appdir}/bin/plugin.php
335 %attr(755,root,root) %{_appdir}/bin/render.php
336 %attr(755,root,root) %{_appdir}/bin/striplangs.php
337 %attr(755,root,root) %{_appdir}/bin/wantedpages.php
341 %{_appdir}/inc/preload.php.dist
342 %{_appdir}/inc/Action
346 %{_appdir}/inc/parser
348 # composer generated vendor autoload
349 %dir %{_appdir}/vendor
350 %{_appdir}/vendor/README
351 %{_appdir}/vendor/autoload.php
352 %{_appdir}/vendor/composer
355 # verbose files to detect new addons
356 %dir %{_appdir}/vendor/aziraphale
357 %dir %{_appdir}/vendor/marcusschwarz
358 %dir %{_appdir}/vendor/openpsa
359 %dir %{_appdir}/vendor/paragonie
360 %dir %{_appdir}/vendor/phpseclib
361 %dir %{_appdir}/vendor/simplepie
362 %dir %{_appdir}/vendor/splitbrain
363 %{_appdir}/vendor/aziraphale/email-address-validator
364 %{_appdir}/vendor/marcusschwarz/lesserphp
365 %{_appdir}/vendor/openpsa/universalfeedcreator
366 %{_appdir}/vendor/paragonie/random_compat
367 %{_appdir}/vendor/phpseclib/phpseclib
368 %{_appdir}/vendor/simplepie/simplepie
369 %{_appdir}/vendor/splitbrain/php-archive
370 %{_appdir}/vendor/splitbrain/php-cli
373 # allow plugins dir permission change to allow installation of plugins from admin
374 # however does not work with rpm 4.5
375 %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/adLDAP
385 %{_appdir}/lib/plugins/authad/conf
386 %dir %{_appdir}/lib/plugins/authldap
387 %{_appdir}/lib/plugins/authldap/*.php
388 %{_appdir}/lib/plugins/authldap/*.txt
389 %{_appdir}/lib/plugins/authldap/conf
390 %dir %{_appdir}/lib/plugins/authmysql
391 %{_appdir}/lib/plugins/authmysql/*.php
392 %{_appdir}/lib/plugins/authmysql/*.txt
393 %{_appdir}/lib/plugins/authmysql/conf
394 %dir %{_appdir}/lib/plugins/authpdo
395 %{_appdir}/lib/plugins/authpdo/*.php
396 %{_appdir}/lib/plugins/authpdo/*.txt
397 %{_appdir}/lib/plugins/authpdo/README
398 %{_appdir}/lib/plugins/authpdo/conf
399 %{_appdir}/lib/plugins/authpgsql/*.php
400 %{_appdir}/lib/plugins/authpgsql/conf
401 %{_appdir}/lib/plugins/authpgsql/*.txt
402 %dir %{_appdir}/lib/plugins/authpgsql
403 %dir %{_appdir}/lib/plugins/authplain
404 %{_appdir}/lib/plugins/authplain/*.php
405 %{_appdir}/lib/plugins/authplain/*.txt
406 %dir %{_appdir}/lib/plugins/config
407 %{_appdir}/lib/plugins/config/*.*
408 %{_appdir}/lib/plugins/config/images
409 %{_appdir}/lib/plugins/config/settings
410 %dir %{_appdir}/lib/plugins/extension
411 %{_appdir}/lib/plugins/extension/*.*
412 %{_appdir}/lib/plugins/extension/helper
413 %{_appdir}/lib/plugins/extension/images
414 %dir %{_appdir}/lib/plugins/revert
415 %{_appdir}/lib/plugins/revert/*.*
416 %dir %{_appdir}/lib/plugins/safefnrecode
417 %{_appdir}/lib/plugins/safefnrecode/*.*
418 %dir %{_appdir}/lib/plugins/usermanager
419 %{_appdir}/lib/plugins/usermanager/*.*
420 %{_appdir}/lib/plugins/usermanager/images
421 %dir %{_appdir}/lib/plugins/info
422 %{_appdir}/lib/plugins/info/*.*
423 %dir %{_appdir}/lib/plugins/popularity
424 %{_appdir}/lib/plugins/popularity/*.*
425 %dir %{_appdir}/lib/plugins/styling
426 %{_appdir}/lib/plugins/styling/README
427 %{_appdir}/lib/plugins/styling/*.*
429 %{_appdir}/lib/images
430 %{_appdir}/lib/scripts
431 %{_appdir}/lib/styles
434 %dir %{_appdir}/lib/tpl
435 %{_appdir}/lib/tpl/index.php
437 %dir %{_appdir}/lib/tpl/dokuwiki
438 %{_appdir}/lib/tpl/dokuwiki/css
439 %{_appdir}/lib/tpl/dokuwiki/images
440 %{_appdir}/lib/tpl/dokuwiki/*.info.txt
441 %{_appdir}/lib/tpl/dokuwiki/*.ini
442 %{_appdir}/lib/tpl/dokuwiki/*.js
443 %{_appdir}/lib/tpl/dokuwiki/*.php
445 %dir %attr(770,root,http) %{_localstatedir}
446 %dir %attr(770,root,http) %{_localstatedir}/attic
447 %dir %attr(770,root,http) %{_localstatedir}/index
448 %dir %attr(770,root,http) %{_localstatedir}/locks
449 %dir %attr(770,root,http) %{_localstatedir}/media
450 %dir %attr(770,root,http) %{_localstatedir}/media_attic
451 %dir %attr(770,root,http) %{_localstatedir}/media_meta
452 %dir %attr(770,root,http) %{_localstatedir}/media/wiki
453 %dir %attr(770,root,http) %{_localstatedir}/meta
454 %dir %attr(770,root,http) %{_localstatedir}/pages
455 %dir %attr(770,root,http) %{_localstatedir}/pages/playground
456 %dir %attr(770,root,http) %{_localstatedir}/pages/wiki
457 %dir %attr(770,root,http) %{_localstatedir}/tmp
459 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/media/wiki/dokuwiki-128.png
460 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/media/wiki/dokuwiki.svg
461 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/dokuwiki.txt
462 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/syntax.txt
463 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/welcome.txt
464 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/playground/playground.txt
465 %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
467 %dir %attr(770,root,http) %{_cachedir}
470 %defattr(644,root,root,755)
471 %{_appdir}/install.php