1 %define subver 2017-02-19c
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: https://download.dokuwiki.org/archive
15 Source0: https://download.dokuwiki.org/src/dokuwiki/%{name}-%{subver}.tgz
16 # Source0-md5: 324ae70a6322057604edc04b39c9b334
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 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 Patch20: fixprivilegeescalationbug.diff
45 Patch21: task-1821.patch
46 Patch24: more-buttons.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: lessphp >= 0.3.9
54 Requires: php(core) >= %{php_min_version}
55 Requires: php(session)
57 Requires: php-geshi >= 1.0.7.19
58 Requires: php-seclib >= 0.3.5
59 Requires: php-simplepie >= 1.0.1
61 Requires: webserver(access)
62 Requires: webserver(alias)
63 Requires: webserver(php)
65 Obsoletes: dokuwiki-plugin-jquery
66 Conflicts: dokuwiki-plugin-gallery < 20161222
67 Conflicts: dokuwiki-plugin-icalevents < 20120909
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
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
148 # package as basenames, upgrade overwrite protected with .rpmnew
149 mv conf/local.php{.dist,}
150 mv conf/acl.auth.php{.dist,}
151 mv conf/users.auth.php{.dist,}
152 mv conf/mysql.conf.php{.example,}
154 find -name _dummy | xargs %{__rm}
155 %{__rm} lib/index.html lib/plugins/index.html lib/images/index.html
156 %{__rm} {conf,inc,bin,data,inc/lang}/.htaccess
158 # we just don't package deleted files, these get removed automatically on rpm upgrades
159 %{__rm} data/deleted.files
160 # source for security.png
161 %{__rm} data/security.xcf
163 %{__rm} vendor/composer/installed.json
164 %{__rm} lib/scripts/jquery/update.sh
166 # use system geshi package
167 %{__rm} -r vendor/easybook/geshi
168 rmdir vendor/easybook
170 # use system simplepie package
171 #%{__rm} inc/SimplePie.php
173 # use system lessphp package
174 %{__rm} inc/lessc.inc.php
176 # flash source on git tarballs
177 rm -rf lib/plugins/testing
178 rm -rf lib/plugins/*/_test
180 # pagetools - tools for development
181 %{__rm} -r lib/tpl/dokuwiki/images/pagetools
182 %{__rm} lib/tpl/dokuwiki/images/pagetools-build*
184 # cleanup backups after patching
185 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
188 md5=$(md5sum -b conf/dokuwiki.php | awk '{print $1}')
189 if ! grep $md5 install.php; then
190 : update %{name}-config.patch -- it is outdated
195 rm -rf $RPM_BUILD_ROOT
196 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/{lang,plugin_lang},%{_localstatedir},%{_cachedir},%{_appdir}}
199 cp -al VERSION $RPM_BUILD_ROOT%{_appdir} 2>/dev/null && l=l
201 cp -a$l *.php $RPM_BUILD_ROOT%{_appdir}
202 cp -p$l VERSION $RPM_BUILD_ROOT%{_appdir}
203 cp -a$l bin $RPM_BUILD_ROOT%{_appdir}
204 cp -a$l inc $RPM_BUILD_ROOT%{_appdir}
205 cp -a$l lib $RPM_BUILD_ROOT%{_appdir}
206 cp -a$l vendor $RPM_BUILD_ROOT%{_appdir}
207 cp -a$l conf/* $RPM_BUILD_ROOT%{_sysconfdir}
208 cp -a$l data/* $RPM_BUILD_ROOT%{_localstatedir}
209 touch $RPM_BUILD_ROOT%{_sysconfdir}/acronyms.local.conf
210 touch $RPM_BUILD_ROOT%{_sysconfdir}/entities.local.conf
211 touch $RPM_BUILD_ROOT%{_sysconfdir}/interwiki.local.conf
212 touch $RPM_BUILD_ROOT%{_sysconfdir}/license.local.php
213 touch $RPM_BUILD_ROOT%{_sysconfdir}/plugins.local.php
214 touch $RPM_BUILD_ROOT%{_sysconfdir}/local.protected.php
215 touch $RPM_BUILD_ROOT%{_sysconfdir}/mime.local.conf
216 touch $RPM_BUILD_ROOT%{_sysconfdir}/smileys.local.conf
217 touch $RPM_BUILD_ROOT%{_sysconfdir}/userscript.js
218 touch $RPM_BUILD_ROOT%{_sysconfdir}/userstyle.css
220 # https://github.com/splitbrain/dokuwiki/pull/1247
221 #ln $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/{dokubug,bug}.gif
222 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/eventum.gif
223 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/cacti.gif
224 cp -p %{SOURCE8} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/nagios.gif
225 cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/trac.png
226 cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/pld.gif
227 cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/gitlab.png
228 cp -p %{SOURCE13} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/jenkins.png
230 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_appdir}/lib/images/fileicons/jude.png
231 cp -p %{SOURCE11} $RPM_BUILD_ROOT%{_appdir}/lib/images/fileicons/asta.png
233 cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_appdir}/lib/tpl/dokuwiki/images/button-pld.png
235 # hardlink identical icons.
236 findup -m $RPM_BUILD_ROOT
238 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
239 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
240 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
243 %find_lang %{name}.lang
246 rm -rf $RPM_BUILD_ROOT
249 chmod 770 %{_sysconfdir}
250 chmod 660 %{_sysconfdir}/local.php
251 chmod 660 %{_sysconfdir}/plugins.local.php
254 if [ "$1" = "0" ]; then
255 if [ -f %{_sysconfdir}/dokuwiki.php ]; then
256 chmod 750 %{_sysconfdir}
257 chmod 640 %{_sysconfdir}/local.php
258 chmod 640 %{_sysconfdir}/plugins.local.php
262 %triggerin -- apache1 < 1.3.37-3, apache1-base
263 %webapp_register apache %{_webapp}
265 %triggerun -- apache1 < 1.3.37-3, apache1-base
266 %webapp_unregister apache %{_webapp}
268 %triggerin -- apache < 2.2.0, apache-base
269 %webapp_register httpd %{_webapp}
271 %triggerun -- apache < 2.2.0, apache-base
272 %webapp_unregister httpd %{_webapp}
274 %triggerin -- lighttpd
275 %webapp_register lighttpd %{_webapp}
277 %triggerun -- lighttpd
278 %webapp_unregister lighttpd %{_webapp}
281 if [ -d %{_appdir}/data -a ! -L %{_appdir}/data ]; then
282 mv -f %{_appdir}/data/* %{_localstatedir}
283 rm -rf %{_appdir}/data
285 if [ -d %{_appdir}/conf -a ! -L %{_appdir}/conf ]; then
286 mv -f %{_appdir}/conf/* %{_sysconfdir}
287 rm -rf %{_appdir}/conf
289 if [ -d %{_localstatedir}/cache ]; then
290 rm -rf %{_localstatedir}/cache
294 %files -f %{name}.lang
295 %defattr(644,root,root,755)
297 %dir %attr(750,root,http) %verify(not mode) %{_sysconfdir}
298 %dir %attr(750,root,http) %{_sysconfdir}/lang
299 %dir %attr(750,root,http) %{_sysconfdir}/plugin_lang
300 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
301 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
302 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
304 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mediameta.php
305 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/plugins.php
306 %attr(660,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/scheme.conf
308 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/acl.auth.php
309 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/acronyms.local.conf
310 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/entities.local.conf
311 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/interwiki.local.conf
312 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/license.local.php
313 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/local.protected.php
314 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mime.local.conf
315 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/smileys.local.conf
316 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/userscript.js
317 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/userstyle.css
318 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/users.auth.php
319 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mysql.conf.php
321 %attr(640,root,http) %config(noreplace) %verify(not md5 mode mtime size) %{_sysconfdir}/local.php
322 %attr(640,root,http) %config(noreplace) %verify(not md5 mode mtime size) %{_sysconfdir}/plugins.local.php
324 # use local.php, local.protected.php, etc for local changes
325 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/acronyms.conf
326 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/entities.conf
327 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/interwiki.conf
328 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/mime.conf
329 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/smileys.conf
330 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/wordblock.conf
332 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/dokuwiki.php
333 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/license.php
334 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/plugins.required.php
342 %attr(755,root,root) %{_appdir}/bin/dwpage.php
343 %attr(755,root,root) %{_appdir}/bin/gittool.php
344 %attr(755,root,root) %{_appdir}/bin/indexer.php
345 %attr(755,root,root) %{_appdir}/bin/render.php
346 %attr(755,root,root) %{_appdir}/bin/striplangs.php
347 %attr(755,root,root) %{_appdir}/bin/wantedpages.php
351 %{_appdir}/inc/preload.php.dist
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/splitbrain
365 %{_appdir}/vendor/splitbrain/php-archive
367 %dir %{_appdir}/vendor/paragonie
368 %{_appdir}/vendor/paragonie/random_compat
370 %dir %{_appdir}/vendor/phpseclib
371 %{_appdir}/vendor/phpseclib/phpseclib
373 %dir %{_appdir}/vendor/simplepie
374 %{_appdir}/vendor/simplepie/simplepie
377 # allow plugins dir permission change to allow installation of plugins from admin
378 # however does not work with rpm 4.5
379 %dir %config %verify(not group mode) %{_appdir}/lib/plugins
381 %{_appdir}/lib/plugins/*.php
382 %dir %{_appdir}/lib/plugins/acl
383 %{_appdir}/lib/plugins/acl/*.*
384 %{_appdir}/lib/plugins/acl/pix
385 %dir %{_appdir}/lib/plugins/authad
386 %{_appdir}/lib/plugins/authad/*.php
387 %{_appdir}/lib/plugins/authad/*.txt
388 %{_appdir}/lib/plugins/authad/adLDAP
389 %{_appdir}/lib/plugins/authad/conf
390 %dir %{_appdir}/lib/plugins/authldap
391 %{_appdir}/lib/plugins/authldap/*.php
392 %{_appdir}/lib/plugins/authldap/*.txt
393 %{_appdir}/lib/plugins/authldap/conf
394 %dir %{_appdir}/lib/plugins/authmysql
395 %{_appdir}/lib/plugins/authmysql/*.php
396 %{_appdir}/lib/plugins/authmysql/*.txt
397 %{_appdir}/lib/plugins/authmysql/conf
398 %dir %{_appdir}/lib/plugins/authpdo
399 %{_appdir}/lib/plugins/authpdo/*.php
400 %{_appdir}/lib/plugins/authpdo/*.txt
401 %{_appdir}/lib/plugins/authpdo/README
402 %{_appdir}/lib/plugins/authpdo/conf
403 %{_appdir}/lib/plugins/authpgsql/*.php
404 %{_appdir}/lib/plugins/authpgsql/conf
405 %{_appdir}/lib/plugins/authpgsql/*.txt
406 %dir %{_appdir}/lib/plugins/authpgsql
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/images
413 %{_appdir}/lib/plugins/config/settings
414 %dir %{_appdir}/lib/plugins/extension
415 %{_appdir}/lib/plugins/extension/*.*
416 %{_appdir}/lib/plugins/extension/helper
417 %{_appdir}/lib/plugins/extension/images
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}/pages/wiki/dokuwiki.txt
465 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/syntax.txt
466 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/welcome.txt
467 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/playground/playground.txt
468 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/security.png
470 %dir %attr(770,root,http) %{_cachedir}
473 %defattr(644,root,root,755)
474 %{_appdir}/install.php