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 Obsoletes: dokuwiki-plugin-showlogin2
67 Conflicts: dokuwiki-plugin-gallery < 20161222
68 Conflicts: dokuwiki-plugin-icalevents < 20120909
69 Conflicts: dokuwiki-plugin-odt < 20170218
70 # can use gz compression to store attic pages
73 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
75 %define _webapps /etc/webapps
76 %define _webapp %{name}
77 %define _sysconfdir %{_webapps}/%{_webapp}
78 %define _appdir %{_datadir}/%{_webapp}
79 %define _localstatedir /var/lib/%{name}
80 %define _cachedir /var/cache/%{name}
81 %define find_lang %{_usrlibrpm}/dokuwiki-find-lang.sh %{buildroot}
83 %define _noautoreq_pear /usr/share/php/geshi.php
85 # exclude optional php dependencies
86 %define _noautophp php-bzip2 php-bcmath php-zip php-date php-ftp php-hash php-ldap php-mbstring php-mysql php-pgsql php-tokenizer
88 %define _noautoreq %{_noautophp}
91 DokuWiki is a standards compliant, simple to use Wiki, mainly aimed at
92 creating documentation of any kind. It is targeted at developer teams,
93 workgroups and small companies. It has a simple but powerful syntax
94 which makes sure the datafiles remain readable outside the Wiki and
95 eases the creation of structured texts. All data is stored in plain
96 text files - no database is required.
98 %description -l pl.UTF-8
99 DokuWiki to zgodne ze standardami i proste w użyciu Wiki, przeznaczone
100 głównie do tworzenia dokumentów wszelkiego rodzaju. Jest przeznaczone
101 dla zespołów programistów, grup roboczych i małych firm. Ma prostą,
102 ale mającą duże możliwości składnię, dzięki której pliki danych
103 pozostają czytelne poza Wiki, a także ułatwiającą tworzenie tekstów
104 strukturalnych. Wszystkie dane są przechowywane w plikach tekstowych -
105 nie jest wymagana baza danych.
108 Summary: DokuWiki setup package
109 Summary(pl.UTF-8): Pakiet do wstępnej konfiguracji DokuWiki
110 Group: Applications/WWW
111 Requires: %{name} = %{version}-%{release}
114 Install this package to configure initial DokuWiki installation. You
115 should uninstall this package when you're done, as it considered
116 insecure to keep the setup files in place.
118 %description setup -l pl.UTF-8
119 Ten pakiet należy zainstalować w celu wstępnej konfiguracji DokuWiki
120 po pierwszej instalacji. Potem należy go odinstalować, jako że
121 pozostawienie plików instalacyjnych mogłoby być niebezpieczne.
124 %setup -q -n %{name}-%{?rc_:rc}%{subver} %{?snap:-c}
127 test -e VERSION || echo %{subver}-git > VERSION
129 install -d data/pages/playground
130 test -e data/pages/playground/playground.txt || \
131 echo '====== PlayGround ======' > data/pages/playground/playground.txt
149 # package as basenames, upgrade overwrite protected with .rpmnew
150 mv conf/local.php{.dist,}
151 mv conf/acl.auth.php{.dist,}
152 mv conf/users.auth.php{.dist,}
153 mv conf/mysql.conf.php{.example,}
155 find -name _dummy | xargs %{__rm}
156 %{__rm} lib/index.html lib/plugins/index.html lib/images/index.html
157 %{__rm} {conf,inc,bin,data,inc/lang}/.htaccess
159 # we just don't package deleted files, these get removed automatically on rpm upgrades
160 %{__rm} data/deleted.files
161 # source for security.png
162 %{__rm} data/security.xcf
164 %{__rm} vendor/composer/installed.json
165 %{__rm} lib/scripts/jquery/update.sh
167 # use system geshi package
168 %{__rm} -r vendor/easybook/geshi
169 rmdir vendor/easybook
171 # use system simplepie package
172 #%{__rm} inc/SimplePie.php
174 # use system lessphp package
175 %{__rm} inc/lessc.inc.php
177 # flash source on git tarballs
178 rm -rf lib/plugins/testing
179 rm -rf lib/plugins/*/_test
181 # pagetools - tools for development
182 %{__rm} -r lib/tpl/dokuwiki/images/pagetools
183 %{__rm} lib/tpl/dokuwiki/images/pagetools-build*
185 # cleanup backups after patching
186 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
189 md5=$(md5sum -b conf/dokuwiki.php | awk '{print $1}')
190 if ! grep $md5 install.php; then
191 : update %{name}-config.patch -- it is outdated
196 rm -rf $RPM_BUILD_ROOT
197 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/{lang,plugin_lang},%{_localstatedir},%{_cachedir},%{_appdir}}
200 cp -al VERSION $RPM_BUILD_ROOT%{_appdir} 2>/dev/null && l=l
202 cp -a$l *.php $RPM_BUILD_ROOT%{_appdir}
203 cp -p$l VERSION $RPM_BUILD_ROOT%{_appdir}
204 cp -a$l bin $RPM_BUILD_ROOT%{_appdir}
205 cp -a$l inc $RPM_BUILD_ROOT%{_appdir}
206 cp -a$l lib $RPM_BUILD_ROOT%{_appdir}
207 cp -a$l vendor $RPM_BUILD_ROOT%{_appdir}
208 cp -a$l conf/* $RPM_BUILD_ROOT%{_sysconfdir}
209 cp -a$l data/* $RPM_BUILD_ROOT%{_localstatedir}
210 touch $RPM_BUILD_ROOT%{_sysconfdir}/acronyms.local.conf
211 touch $RPM_BUILD_ROOT%{_sysconfdir}/entities.local.conf
212 touch $RPM_BUILD_ROOT%{_sysconfdir}/interwiki.local.conf
213 touch $RPM_BUILD_ROOT%{_sysconfdir}/license.local.php
214 touch $RPM_BUILD_ROOT%{_sysconfdir}/plugins.local.php
215 touch $RPM_BUILD_ROOT%{_sysconfdir}/local.protected.php
216 touch $RPM_BUILD_ROOT%{_sysconfdir}/mime.local.conf
217 touch $RPM_BUILD_ROOT%{_sysconfdir}/smileys.local.conf
218 touch $RPM_BUILD_ROOT%{_sysconfdir}/userscript.js
219 touch $RPM_BUILD_ROOT%{_sysconfdir}/userstyle.css
221 # https://github.com/splitbrain/dokuwiki/pull/1247
222 #ln $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/{dokubug,bug}.gif
223 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/eventum.gif
224 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/cacti.gif
225 cp -p %{SOURCE8} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/nagios.gif
226 cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/trac.png
227 cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/pld.gif
228 cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/gitlab.png
229 cp -p %{SOURCE13} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/jenkins.png
231 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_appdir}/lib/images/fileicons/jude.png
232 cp -p %{SOURCE11} $RPM_BUILD_ROOT%{_appdir}/lib/images/fileicons/asta.png
234 cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_appdir}/lib/tpl/dokuwiki/images/button-pld.png
236 # hardlink identical icons.
237 findup -m $RPM_BUILD_ROOT
239 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
240 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
241 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
244 %find_lang %{name}.lang
247 rm -rf $RPM_BUILD_ROOT
250 chmod 770 %{_sysconfdir}
251 chmod 660 %{_sysconfdir}/local.php
252 chmod 660 %{_sysconfdir}/plugins.local.php
255 if [ "$1" = "0" ]; then
256 if [ -f %{_sysconfdir}/dokuwiki.php ]; then
257 chmod 750 %{_sysconfdir}
258 chmod 640 %{_sysconfdir}/local.php
259 chmod 640 %{_sysconfdir}/plugins.local.php
263 %triggerin -- apache1 < 1.3.37-3, apache1-base
264 %webapp_register apache %{_webapp}
266 %triggerun -- apache1 < 1.3.37-3, apache1-base
267 %webapp_unregister apache %{_webapp}
269 %triggerin -- apache < 2.2.0, apache-base
270 %webapp_register httpd %{_webapp}
272 %triggerun -- apache < 2.2.0, apache-base
273 %webapp_unregister httpd %{_webapp}
275 %triggerin -- lighttpd
276 %webapp_register lighttpd %{_webapp}
278 %triggerun -- lighttpd
279 %webapp_unregister lighttpd %{_webapp}
282 if [ -d %{_appdir}/data -a ! -L %{_appdir}/data ]; then
283 mv -f %{_appdir}/data/* %{_localstatedir}
284 rm -rf %{_appdir}/data
286 if [ -d %{_appdir}/conf -a ! -L %{_appdir}/conf ]; then
287 mv -f %{_appdir}/conf/* %{_sysconfdir}
288 rm -rf %{_appdir}/conf
290 if [ -d %{_localstatedir}/cache ]; then
291 rm -rf %{_localstatedir}/cache
295 %files -f %{name}.lang
296 %defattr(644,root,root,755)
298 %dir %attr(750,root,http) %verify(not mode) %{_sysconfdir}
299 %dir %attr(750,root,http) %{_sysconfdir}/lang
300 %dir %attr(750,root,http) %{_sysconfdir}/plugin_lang
301 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
302 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
303 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
305 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mediameta.php
306 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/plugins.php
307 %attr(660,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/scheme.conf
309 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/acl.auth.php
310 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/acronyms.local.conf
311 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/entities.local.conf
312 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/interwiki.local.conf
313 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/license.local.php
314 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/local.protected.php
315 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mime.local.conf
316 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/smileys.local.conf
317 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/userscript.js
318 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/userstyle.css
319 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/users.auth.php
320 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mysql.conf.php
322 %attr(640,root,http) %config(noreplace) %verify(not md5 mode mtime size) %{_sysconfdir}/local.php
323 %attr(640,root,http) %config(noreplace) %verify(not md5 mode mtime size) %{_sysconfdir}/plugins.local.php
325 # use local.php, local.protected.php, etc for local changes
326 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/acronyms.conf
327 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/entities.conf
328 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/interwiki.conf
329 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/mime.conf
330 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/smileys.conf
331 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/wordblock.conf
333 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/dokuwiki.php
334 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/license.php
335 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/plugins.required.php
343 %attr(755,root,root) %{_appdir}/bin/dwpage.php
344 %attr(755,root,root) %{_appdir}/bin/gittool.php
345 %attr(755,root,root) %{_appdir}/bin/indexer.php
346 %attr(755,root,root) %{_appdir}/bin/render.php
347 %attr(755,root,root) %{_appdir}/bin/striplangs.php
348 %attr(755,root,root) %{_appdir}/bin/wantedpages.php
352 %{_appdir}/inc/preload.php.dist
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/splitbrain
366 %{_appdir}/vendor/splitbrain/php-archive
368 %dir %{_appdir}/vendor/paragonie
369 %{_appdir}/vendor/paragonie/random_compat
371 %dir %{_appdir}/vendor/phpseclib
372 %{_appdir}/vendor/phpseclib/phpseclib
374 %dir %{_appdir}/vendor/simplepie
375 %{_appdir}/vendor/simplepie/simplepie
378 # allow plugins dir permission change to allow installation of plugins from admin
379 # however does not work with rpm 4.5
380 %dir %config %verify(not group mode) %{_appdir}/lib/plugins
382 %{_appdir}/lib/plugins/*.php
383 %dir %{_appdir}/lib/plugins/acl
384 %{_appdir}/lib/plugins/acl/*.*
385 %{_appdir}/lib/plugins/acl/pix
386 %dir %{_appdir}/lib/plugins/authad
387 %{_appdir}/lib/plugins/authad/*.php
388 %{_appdir}/lib/plugins/authad/*.txt
389 %{_appdir}/lib/plugins/authad/adLDAP
390 %{_appdir}/lib/plugins/authad/conf
391 %dir %{_appdir}/lib/plugins/authldap
392 %{_appdir}/lib/plugins/authldap/*.php
393 %{_appdir}/lib/plugins/authldap/*.txt
394 %{_appdir}/lib/plugins/authldap/conf
395 %dir %{_appdir}/lib/plugins/authmysql
396 %{_appdir}/lib/plugins/authmysql/*.php
397 %{_appdir}/lib/plugins/authmysql/*.txt
398 %{_appdir}/lib/plugins/authmysql/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 %{_appdir}/lib/plugins/authpgsql/*.php
405 %{_appdir}/lib/plugins/authpgsql/conf
406 %{_appdir}/lib/plugins/authpgsql/*.txt
407 %dir %{_appdir}/lib/plugins/authpgsql
408 %dir %{_appdir}/lib/plugins/authplain
409 %{_appdir}/lib/plugins/authplain/*.php
410 %{_appdir}/lib/plugins/authplain/*.txt
411 %dir %{_appdir}/lib/plugins/config
412 %{_appdir}/lib/plugins/config/*.*
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/revert
420 %{_appdir}/lib/plugins/revert/*.*
421 %dir %{_appdir}/lib/plugins/safefnrecode
422 %{_appdir}/lib/plugins/safefnrecode/*.*
423 %dir %{_appdir}/lib/plugins/usermanager
424 %{_appdir}/lib/plugins/usermanager/*.*
425 %{_appdir}/lib/plugins/usermanager/images
426 %dir %{_appdir}/lib/plugins/info
427 %{_appdir}/lib/plugins/info/*.*
428 %dir %{_appdir}/lib/plugins/popularity
429 %{_appdir}/lib/plugins/popularity/*.*
430 %dir %{_appdir}/lib/plugins/styling
431 %{_appdir}/lib/plugins/styling/README
432 %{_appdir}/lib/plugins/styling/*.*
434 %{_appdir}/lib/images
435 %{_appdir}/lib/scripts
436 %{_appdir}/lib/styles
439 %dir %{_appdir}/lib/tpl
440 %{_appdir}/lib/tpl/index.php
442 %dir %{_appdir}/lib/tpl/dokuwiki
443 %{_appdir}/lib/tpl/dokuwiki/css
444 %{_appdir}/lib/tpl/dokuwiki/images
445 %{_appdir}/lib/tpl/dokuwiki/*.info.txt
446 %{_appdir}/lib/tpl/dokuwiki/*.ini
447 %{_appdir}/lib/tpl/dokuwiki/*.js
448 %{_appdir}/lib/tpl/dokuwiki/*.php
450 %dir %attr(770,root,http) %{_localstatedir}
451 %dir %attr(770,root,http) %{_localstatedir}/attic
452 %dir %attr(770,root,http) %{_localstatedir}/index
453 %dir %attr(770,root,http) %{_localstatedir}/locks
454 %dir %attr(770,root,http) %{_localstatedir}/media
455 %dir %attr(770,root,http) %{_localstatedir}/media_attic
456 %dir %attr(770,root,http) %{_localstatedir}/media_meta
457 %dir %attr(770,root,http) %{_localstatedir}/media/wiki
458 %dir %attr(770,root,http) %{_localstatedir}/meta
459 %dir %attr(770,root,http) %{_localstatedir}/pages
460 %dir %attr(770,root,http) %{_localstatedir}/pages/playground
461 %dir %attr(770,root,http) %{_localstatedir}/pages/wiki
462 %dir %attr(770,root,http) %{_localstatedir}/tmp
464 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/media/wiki/dokuwiki-128.png
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}/security.png
471 %dir %attr(770,root,http) %{_cachedir}
474 %defattr(644,root,root,755)
475 %{_appdir}/install.php