1 %define subver 2015-08-10a
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: http://download.dokuwiki.org/archive
15 Source0: http://download.dokuwiki.org/src/dokuwiki/%{name}-%{subver}.tgz
16 # Source0-md5: a4b8ae00ce94e42d4ef52dd8f4ad30fe
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 Patch66: %{name}-config.patch
34 Patch0: %{name}-paths.patch
35 Patch1: system-jquery.patch
36 Patch2: style-width.patch
37 Patch4: %{name}-geshi.patch
38 Patch5: %{name}-http_auth-option.patch
39 Patch8: %{name}-notify-respect-minor.patch
40 Patch10: %{name}-mailtext.patch
41 Patch11: %{name}-notifyns.patch
42 Patch15: simplepie.patch
43 Patch19: pld-branding.patch
44 Patch20: fixprivilegeescalationbug.diff
45 Patch21: task-1821.patch
47 Patch24: more-buttons.patch
48 Patch25: system-phpseclib.patch
49 Patch26: system-lessphp.patch
50 Patch27: iconsizes-dump.patch
51 URL: https://www.dokuwiki.org/
53 BuildRequires: rpm-php-pearprov >= 4.4.2-11
54 BuildRequires: rpmbuild(macros) >= 1.693
55 Requires: jquery >= 1.8
56 #Requires: jquery >= 1.9.1
57 Requires: jquery-cookie
58 #Requires: jquery-migrate
59 #Requires: jquery-ui >= 1.10.2
60 Requires: jquery-ui >= 1.8
61 Requires: lessphp >= 0.3.9
62 Requires: php(core) >= %{php_min_version}
63 Requires: php(session)
65 Requires: php-geshi >= 1.0.7.19
66 Requires: php-seclib >= 0.3.5
67 Requires: php-simplepie >= 1.0.1
69 Requires: webserver(access)
70 Requires: webserver(alias)
71 Requires: webserver(php)
73 Suggests: php-adldap >= 4.0.4
74 Obsoletes: dokuwiki-plugin-jquery
75 Conflicts: dokuwiki-plugin-icalevents < 20120909
76 # can use gz compression to store attic pages
79 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
81 %define _webapps /etc/webapps
82 %define _webapp %{name}
83 %define _sysconfdir %{_webapps}/%{_webapp}
84 %define _appdir %{_datadir}/%{_webapp}
85 %define _localstatedir /var/lib/%{name}
86 %define _cachedir /var/cache/%{name}
87 %define find_lang %{_usrlibrpm}/dokuwiki-find-lang.sh %{buildroot}
89 %define _noautoreq_pear /usr/share/php/geshi.php /usr/share/php/adLDAP/.*
91 # exclude optional php dependencies
92 %define _noautophp php-bzip2 php-bcmath php-zip php-date php-ftp php-hash php-ldap php-mbstring php-mysql php-pgsql php-tokenizer
94 %define _noautoreq %{_noautophp}
97 DokuWiki is a standards compliant, simple to use Wiki, mainly aimed at
98 creating documentation of any kind. It is targeted at developer teams,
99 workgroups and small companies. It has a simple but powerful syntax
100 which makes sure the datafiles remain readable outside the Wiki and
101 eases the creation of structured texts. All data is stored in plain
102 text files - no database is required.
104 %description -l pl.UTF-8
105 DokuWiki to zgodne ze standardami i proste w użyciu Wiki, przeznaczone
106 głównie do tworzenia dokumentów wszelkiego rodzaju. Jest przeznaczone
107 dla zespołów programistów, grup roboczych i małych firm. Ma prostą,
108 ale mającą duże możliwości składnię, dzięki której pliki danych
109 pozostają czytelne poza Wiki, a także ułatwiającą tworzenie tekstów
110 strukturalnych. Wszystkie dane są przechowywane w plikach tekstowych -
111 nie jest wymagana baza danych.
114 Summary: DokuWiki setup package
115 Summary(pl.UTF-8): Pakiet do wstępnej konfiguracji DokuWiki
116 Group: Applications/WWW
117 Requires: %{name} = %{version}-%{release}
120 Install this package to configure initial DokuWiki installation. You
121 should uninstall this package when you're done, as it considered
122 insecure to keep the setup files in place.
124 %description setup -l pl.UTF-8
125 Ten pakiet należy zainstalować w celu wstępnej konfiguracji DokuWiki
126 po pierwszej instalacji. Potem należy go odinstalować, jako że
127 pozostawienie plików instalacyjnych mogłoby być niebezpieczne.
130 %setup -q -n %{name}-%{?rc_:rc}%{subver} %{?snap:-c}
133 test -e VERSION || echo %{subver}-git > VERSION
135 install -d data/pages/playground
136 test -e data/pages/playground/playground.txt || \
137 echo '====== PlayGround ======' > data/pages/playground/playground.txt
159 # package as basenames, upgrade overwrite protected with .rpmnew
160 mv conf/local.php{.dist,}
161 mv conf/acl.auth.php{.dist,}
162 mv conf/users.auth.php{.dist,}
163 mv conf/mysql.conf.php{.example,}
165 find -name _dummy | xargs %{__rm}
166 %{__rm} lib/index.html lib/plugins/index.html lib/images/index.html
167 %{__rm} {conf,inc,bin,data,inc/lang}/.htaccess
169 # we just don't package deleted files, these get removed automatically on rpm upgrades
170 %{__rm} data/deleted.files
171 # source for security.png
172 %{__rm} data/security.xcf
174 # use system geshi package
175 %{__rm} -r vendor/easybook/geshi
176 rmdir vendor/easybook
178 # use system adldap package
179 %{__rm} -r lib/plugins/authad/adLDAP
181 # use system simplepie package
182 %{__rm} inc/SimplePie.php
184 # use system lessphp package
185 %{__rm} inc/lessc.inc.php
188 %{__rm} -r inc/phpseclib
190 # flash source on git tarballs
191 rm -rf lib/plugins/testing
192 rm -rf lib/plugins/*/_test
194 # use system packages
195 %{__rm} lib/scripts/jquery/update.sh
196 %{__rm} lib/scripts/jquery/jquery-ui.js
197 %{__rm} lib/scripts/jquery/jquery-ui.min.js
198 %{__rm} lib/scripts/jquery/jquery.cookie.js
199 %{__rm} lib/scripts/jquery/jquery.js
200 %{__rm} lib/scripts/jquery/jquery.min.js
201 %{__rm} lib/scripts/jquery/jquery-migrate.js
202 %{__rm} lib/scripts/jquery/jquery-migrate.min.js
203 %{__rm} -r lib/scripts/jquery/jquery-ui-theme
205 # pagetools - tools for development
206 %{__rm} -r lib/tpl/dokuwiki/images/pagetools*
208 # cleanup backups after patching
209 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
212 md5=$(md5sum -b conf/dokuwiki.php | awk '{print $1}')
213 if ! grep $md5 install.php; then
214 : update %{name}-config.patch -- it is outdated
219 rm -rf $RPM_BUILD_ROOT
220 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/{lang,plugin_lang},%{_localstatedir},%{_cachedir},%{_appdir}}
223 cp -al VERSION $RPM_BUILD_ROOT%{_appdir} 2>/dev/null && l=l
225 cp -a$l *.php $RPM_BUILD_ROOT%{_appdir}
226 cp -p$l VERSION $RPM_BUILD_ROOT%{_appdir}
227 cp -a$l bin $RPM_BUILD_ROOT%{_appdir}
228 cp -a$l inc $RPM_BUILD_ROOT%{_appdir}
229 cp -a$l lib $RPM_BUILD_ROOT%{_appdir}
230 cp -a$l vendor $RPM_BUILD_ROOT%{_appdir}
231 cp -a$l conf/* $RPM_BUILD_ROOT%{_sysconfdir}
232 cp -a$l data/* $RPM_BUILD_ROOT%{_localstatedir}
233 touch $RPM_BUILD_ROOT%{_sysconfdir}/acronyms.local.conf
234 touch $RPM_BUILD_ROOT%{_sysconfdir}/entities.local.conf
235 touch $RPM_BUILD_ROOT%{_sysconfdir}/interwiki.local.conf
236 touch $RPM_BUILD_ROOT%{_sysconfdir}/license.local.php
237 touch $RPM_BUILD_ROOT%{_sysconfdir}/plugins.local.php
238 touch $RPM_BUILD_ROOT%{_sysconfdir}/local.protected.php
239 touch $RPM_BUILD_ROOT%{_sysconfdir}/mime.local.conf
240 touch $RPM_BUILD_ROOT%{_sysconfdir}/smileys.local.conf
241 touch $RPM_BUILD_ROOT%{_sysconfdir}/userscript.js
242 touch $RPM_BUILD_ROOT%{_sysconfdir}/userstyle.css
244 # https://github.com/splitbrain/dokuwiki/pull/1247
245 #ln $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/{dokubug,bug}.gif
246 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/eventum.gif
247 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/cacti.gif
248 cp -p %{SOURCE8} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/nagios.gif
249 cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/trac.png
250 cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/pld.gif
251 cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/gitlab.png
253 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_appdir}/lib/images/fileicons/jude.png
254 cp -p %{SOURCE11} $RPM_BUILD_ROOT%{_appdir}/lib/images/fileicons/asta.png
256 cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_appdir}/lib/tpl/dokuwiki/images/button-pld.png
258 # hardlink identical icons.
259 findup -m $RPM_BUILD_ROOT
261 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
262 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
263 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
266 %find_lang %{name}.lang
269 rm -rf $RPM_BUILD_ROOT
272 chmod 770 %{_sysconfdir}
273 chmod 660 %{_sysconfdir}/local.php
274 chmod 660 %{_sysconfdir}/plugins.local.php
277 if [ "$1" = "0" ]; then
278 if [ -f %{_sysconfdir}/dokuwiki.php ]; then
279 chmod 750 %{_sysconfdir}
280 chmod 640 %{_sysconfdir}/local.php
281 chmod 640 %{_sysconfdir}/plugins.local.php
285 %triggerin -- apache1 < 1.3.37-3, apache1-base
286 %webapp_register apache %{_webapp}
288 %triggerun -- apache1 < 1.3.37-3, apache1-base
289 %webapp_unregister apache %{_webapp}
291 %triggerin -- apache < 2.2.0, apache-base
292 %webapp_register httpd %{_webapp}
294 %triggerun -- apache < 2.2.0, apache-base
295 %webapp_unregister httpd %{_webapp}
297 %triggerin -- lighttpd
298 %webapp_register lighttpd %{_webapp}
300 %triggerun -- lighttpd
301 %webapp_unregister lighttpd %{_webapp}
304 if [ -d %{_appdir}/data -a ! -L %{_appdir}/data ]; then
305 mv -f %{_appdir}/data/* %{_localstatedir}
306 rm -rf %{_appdir}/data
308 if [ -d %{_appdir}/conf -a ! -L %{_appdir}/conf ]; then
309 mv -f %{_appdir}/conf/* %{_sysconfdir}
310 rm -rf %{_appdir}/conf
312 if [ -d %{_localstatedir}/cache ]; then
313 rm -rf %{_localstatedir}/cache
317 %files -f %{name}.lang
318 %defattr(644,root,root,755)
320 %dir %attr(750,root,http) %verify(not mode) %{_sysconfdir}
321 %dir %attr(750,root,http) %{_sysconfdir}/lang
322 %dir %attr(750,root,http) %{_sysconfdir}/plugin_lang
323 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
324 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
325 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
327 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mediameta.php
328 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/plugins.php
329 %attr(660,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/scheme.conf
331 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/acl.auth.php
332 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/acronyms.local.conf
333 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/entities.local.conf
334 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/interwiki.local.conf
335 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/license.local.php
336 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/local.protected.php
337 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mime.local.conf
338 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/smileys.local.conf
339 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/userscript.js
340 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/userstyle.css
341 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/users.auth.php
342 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mysql.conf.php
344 %attr(640,root,http) %config(noreplace) %verify(not md5 mode mtime size) %{_sysconfdir}/local.php
345 %attr(640,root,http) %config(noreplace) %verify(not md5 mode mtime size) %{_sysconfdir}/plugins.local.php
347 # use local.php, local.protected.php, etc for local changes
348 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/acronyms.conf
349 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/entities.conf
350 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/interwiki.conf
351 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/mime.conf
352 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/smileys.conf
353 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/wordblock.conf
355 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/dokuwiki.php
356 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/license.php
357 %attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/plugins.required.php
365 %attr(755,root,root) %{_appdir}/bin/dwpage.php
366 %attr(755,root,root) %{_appdir}/bin/gittool.php
367 %attr(755,root,root) %{_appdir}/bin/indexer.php
368 %attr(755,root,root) %{_appdir}/bin/render.php
369 %attr(755,root,root) %{_appdir}/bin/striplangs.php
370 %attr(755,root,root) %{_appdir}/bin/wantedpages.php
374 %{_appdir}/inc/preload.php.dist
376 %{_appdir}/inc/parser
378 # composer generated vendor autoload
379 %dir %{_appdir}/vendor
380 %{_appdir}/vendor/README
381 %{_appdir}/vendor/autoload.php
382 %{_appdir}/vendor/composer
385 %dir %{_appdir}/vendor/splitbrain
386 %{_appdir}/vendor/splitbrain/php-archive
389 # allow plugins dir permission change to allow installation of plugins from admin
390 # however does not work with rpm 4.5
391 %dir %config %verify(not group mode) %{_appdir}/lib/plugins
393 %{_appdir}/lib/plugins/*.php
394 %dir %{_appdir}/lib/plugins/acl
395 %{_appdir}/lib/plugins/acl/*.*
396 %{_appdir}/lib/plugins/acl/pix
397 %dir %{_appdir}/lib/plugins/authad
398 %{_appdir}/lib/plugins/authad/*.php
399 %{_appdir}/lib/plugins/authad/*.txt
400 %{_appdir}/lib/plugins/authad/conf
401 %dir %{_appdir}/lib/plugins/authldap
402 %{_appdir}/lib/plugins/authldap/*.php
403 %{_appdir}/lib/plugins/authldap/*.txt
404 %{_appdir}/lib/plugins/authldap/conf
405 %dir %{_appdir}/lib/plugins/authmysql
406 %{_appdir}/lib/plugins/authmysql/*.php
407 %{_appdir}/lib/plugins/authmysql/*.txt
408 %{_appdir}/lib/plugins/authmysql/conf
409 %{_appdir}/lib/plugins/authpgsql/*.php
410 %{_appdir}/lib/plugins/authpgsql/conf
411 %{_appdir}/lib/plugins/authpgsql/*.txt
412 %dir %{_appdir}/lib/plugins/authpgsql
413 %dir %{_appdir}/lib/plugins/authplain
414 %{_appdir}/lib/plugins/authplain/*.php
415 %{_appdir}/lib/plugins/authplain/*.txt
416 %dir %{_appdir}/lib/plugins/config
417 %{_appdir}/lib/plugins/config/*.*
418 %{_appdir}/lib/plugins/config/images
419 %{_appdir}/lib/plugins/config/settings
420 %dir %{_appdir}/lib/plugins/extension
421 %{_appdir}/lib/plugins/extension/*.*
422 %{_appdir}/lib/plugins/extension/helper
423 %{_appdir}/lib/plugins/extension/images
424 %dir %{_appdir}/lib/plugins/revert
425 %{_appdir}/lib/plugins/revert/*.*
426 %dir %{_appdir}/lib/plugins/safefnrecode
427 %{_appdir}/lib/plugins/safefnrecode/*.*
428 %dir %{_appdir}/lib/plugins/usermanager
429 %{_appdir}/lib/plugins/usermanager/*.*
430 %{_appdir}/lib/plugins/usermanager/images
431 %dir %{_appdir}/lib/plugins/info
432 %{_appdir}/lib/plugins/info/*.*
433 %dir %{_appdir}/lib/plugins/popularity
434 %{_appdir}/lib/plugins/popularity/*.*
435 %dir %{_appdir}/lib/plugins/styling
436 %{_appdir}/lib/plugins/styling/README
437 %{_appdir}/lib/plugins/styling/*.*
439 %{_appdir}/lib/images
440 %{_appdir}/lib/scripts
441 %{_appdir}/lib/styles
444 %dir %{_appdir}/lib/tpl
445 %{_appdir}/lib/tpl/index.php
447 %dir %{_appdir}/lib/tpl/dokuwiki
448 %{_appdir}/lib/tpl/dokuwiki/css
449 %{_appdir}/lib/tpl/dokuwiki/images
450 %{_appdir}/lib/tpl/dokuwiki/*.info.txt
451 %{_appdir}/lib/tpl/dokuwiki/*.ini
452 %{_appdir}/lib/tpl/dokuwiki/*.js
453 %{_appdir}/lib/tpl/dokuwiki/*.php
455 %dir %attr(770,root,http) %{_localstatedir}
456 %dir %attr(770,root,http) %{_localstatedir}/attic
457 %dir %attr(770,root,http) %{_localstatedir}/index
458 %dir %attr(770,root,http) %{_localstatedir}/locks
459 %dir %attr(770,root,http) %{_localstatedir}/media
460 %dir %attr(770,root,http) %{_localstatedir}/media_attic
461 %dir %attr(770,root,http) %{_localstatedir}/media_meta
462 %dir %attr(770,root,http) %{_localstatedir}/media/wiki
463 %dir %attr(770,root,http) %{_localstatedir}/meta
464 %dir %attr(770,root,http) %{_localstatedir}/pages
465 %dir %attr(770,root,http) %{_localstatedir}/pages/playground
466 %dir %attr(770,root,http) %{_localstatedir}/pages/wiki
467 %dir %attr(770,root,http) %{_localstatedir}/tmp
469 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/media/wiki/dokuwiki-128.png
470 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/dokuwiki.txt
471 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/syntax.txt
472 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/welcome.txt
473 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/playground/playground.txt
474 %attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/security.png
476 %dir %attr(770,root,http) %{_cachedir}
479 %defattr(644,root,root,755)
480 %{_appdir}/install.php