-%define subver 2012-07-30
+%define subver 2022-07-31a
%define ver %(echo %{subver} | tr -d -)
-%define snap 1
-%define php_min_version 5.2.4
-%include /usr/lib/rpm/macros.php
+#define snap 1
+#define rc_ 1
+%define php_min_version 7.2
Summary: PHP-based Wiki webapplication
Summary(pl.UTF-8): Aplikacja WWW Wiki oparta na PHP
Name: dokuwiki
Version: %{ver}
-Release: 0.10
+Release: 1
License: GPL v2
Group: Applications/WWW
-#Source0: http://www.splitbrain.org/_media/projects/dokuwiki/%{name}-%{subver}.tgz
-Source0: http://github.com/splitbrain/dokuwiki/tarball/master/%{name}-%{subver}.tgz
-# Source0-md5: fbe020fa8a4929d3376db23d195548a8
+# Source0Download: https://download.dokuwiki.org/archive
+Source0: https://download.dokuwiki.org/src/dokuwiki/%{name}-%{subver}.tgz
+# Source0-md5: 4459ea99e3a4ce2b767482f505724dcc
Source1: %{name}-apache.conf
Source2: %{name}-lighttpd.conf
Source3: http://glen.alkohol.ee/pld/jude.png
Source10: pld.gif
Source11: http://glen.alkohol.ee/pld/astah.png
# Source11-md5: b1c999e6988440c9e2af6a12e9a56451
+Source12: gitlab.png
+# Source12-md5: 619cec6f2b083269b1ec9cd50d9e6ef2
+Source13: http://mirrors.jenkins-ci.org/art/jenkins-logo/16x16/headshot.png?/jenkins.png
+# Source13-md5: ae892e4ca43ffab88f6e3dca951f3e8a
Patch66: %{name}-config.patch
Patch0: %{name}-paths.patch
-Patch1: system-jquery.patch
+Patch1: autoload.patch
+Patch2: style-width.patch
Patch4: %{name}-geshi.patch
Patch5: %{name}-http_auth-option.patch
-Patch6: %{name}-nice_exit.patch
Patch8: %{name}-notify-respect-minor.patch
Patch10: %{name}-mailtext.patch
Patch11: %{name}-notifyns.patch
-Patch12: %{name}-mailthreads.patch
-Patch13: %{name}-media-directlink.patch
-Patch14: interwiki-outputonly.patch
-Patch15: simplepie.patch
Patch19: pld-branding.patch
-Patch20: fixprivilegeescalationbug.diff
Patch21: task-1821.patch
-Patch22: adldap.patch
-Patch23: backlink-rightside.patch
Patch24: more-buttons.patch
-URL: http://www.dokuwiki.org/dokuwiki
+Patch27: iconsizes-dump.patch
+URL: https://www.dokuwiki.org/
BuildRequires: fslint
BuildRequires: rpm-php-pearprov >= 4.4.2-11
-BuildRequires: rpmbuild(macros) >= 1.520
-Requires: jquery >= 1.6
-Requires: jquery-cookie
-Requires: jquery-ui
-Requires: php-common >= 4:%{php_min_version}
+BuildRequires: rpmbuild(find_lang) >= 1.41
+BuildRequires: rpmbuild(macros) >= 1.693
+Requires: php(core) >= %{php_min_version}
+Requires: php(session)
+Requires: php(xml)
Requires: php-geshi >= 1.0.7.19
-Requires: php-session
+Requires: php-seclib >= 0.3.5
Requires: php-simplepie >= 1.0.1
-Requires: php-xml
Requires: webapps
Requires: webserver(access)
Requires: webserver(alias)
Requires: webserver(php)
-Suggests: php-adldap >= 3.3.1
-Suggests: php-gd
+Suggests: php(gd)
Obsoletes: dokuwiki-plugin-jquery
+Obsoletes: dokuwiki-plugin-showlogin2
+Conflicts: dokuwiki-plugin-gallery < 20161222
+Conflicts: dokuwiki-plugin-icalevents < 20120909
+Conflicts: dokuwiki-plugin-include < 20181129
+Conflicts: dokuwiki-plugin-odt < 20170218
# can use gz compression to store attic pages
-Suggests: php-zlib
+Suggests: php(zlib)
BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _appdir %{_datadir}/%{_webapp}
%define _localstatedir /var/lib/%{name}
%define _cachedir /var/cache/%{name}
-%define find_lang %{_usrlibrpm}/dokuwiki-find-lang.sh %{buildroot}
-# bad depsolver
-%define _noautopear pear(/usr/share/php/geshi.php) pear(/usr/share/php/adLDAP.php)
+%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
# exclude optional php dependencies
%define _noautophp php-bzip2 php-bcmath php-zip php-date php-ftp php-hash php-ldap php-mbstring php-mysql php-pgsql php-tokenizer
-%define _noautoreq %{_noautophp} %{_noautopear}
+%define _noautoreq %{_noautophp}
%description
DokuWiki is a standards compliant, simple to use Wiki, mainly aimed at
pozostawienie plików instalacyjnych mogłoby być niebezpieczne.
%prep
-%setup -q -n %{name}-%{subver} %{?snap:-c}
+%setup -q -n %{name}-%{?rc_:rc}%{subver} %{?snap:-c}
%if 0%{?snap:1}
mv *-dokuwiki-*/* .
test -e VERSION || echo %{subver}-git > VERSION
-install -d data/pages/playground
-touch data/pages/playground/playground.txt
%endif
+install -d data/pages/playground
+test -e data/pages/playground/playground.txt || \
+echo '====== PlayGround ======' > data/pages/playground/playground.txt
+
%patch0 -p1
%patch1 -p1
+%patch2 -p1
%patch4 -p1
%patch5 -p1
-%patch6 -p1
%patch8 -p1
%patch10 -p1
%patch11 -p1
-%patch12 -p1
-%patch13 -p1
-%patch14 -p1
-%patch15 -p1
%patch19 -p1
-%patch20 -p1
-%patch21 -p1
-%patch22 -p1
-%patch23 -p1
-%patch24 -p1
-
+#%patch21 -p1
+#%patch24 -p1
+%patch27 -p1
%patch66 -p1
# package as basenames, upgrade overwrite protected with .rpmnew
mv conf/users.auth.php{.dist,}
mv conf/mysql.conf.php{.example,}
-find -name _dummy | xargs rm
-%{__rm} lib/index.html lib/plugins/index.html inc/lang/.htaccess
+find -name _dummy | xargs %{__rm}
+%{__rm} lib/index.html lib/plugins/index.html lib/images/index.html
+%{__rm} {conf,inc,bin,data}/.htaccess
+%{__rm} vendor/.htaccess
+%{__rm} lib/plugins/styling/.travis.yml
+%{__rm} -r lib/plugins/testing
+%{__rm} -r lib/plugins/*/_test
# we just don't package deleted files, these get removed automatically on rpm upgrades
%{__rm} data/deleted.files
-# source for security.png
-%{__rm} data/security.xcf
+# source for dont-panic-if-you-see-this-in-your-logs-it-means-your-directory-permissions-are-correct.png
+%{__rm} data/dont-panic-if-you-see-this-in-your-logs-it-means-your-directory-permissions-are-correct.xcf
-# use system geshi package
-%{__rm} inc/geshi.php
-%{__rm} -r inc/geshi
+%{__rm} lib/scripts/jquery/update.sh
-# use system adldap package
-%{__rm} inc/adLDAP.php
+# use system geshi package
+%{__rm} -r vendor/geshi/geshi
+rmdir vendor/geshi
# use system simplepie package
-%{__rm} inc/SimplePie.php
+#%{__rm} inc/SimplePie.php
-# flash source on git tarballs
-rm -rf lib/_fla
-rm -rf lib/plugins/testing
+# pagetools - tools for development
+%{__rm} -r lib/tpl/dokuwiki/images/pagetools
+%{__rm} lib/tpl/dokuwiki/images/pagetools-build*
+
+%{__sed} -i -e '1 s,#!.*php,#!/usr/bin/php,' bin/*.php
# cleanup backups after patching
find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
-%build
-md5=$(md5sum -b conf/dokuwiki.php | awk '{print $1}')
-if ! grep $md5 install.php; then
- : update %{name}-config.patch -- it is outdated
- exit 1
-fi
-
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_sysconfdir}/{lang,plugin_lang},%{_localstatedir},%{_cachedir},%{_appdir}/{bin,inc,lib}}
+install -d $RPM_BUILD_ROOT{%{_sysconfdir}/{lang,plugin_lang},%{_localstatedir},%{_cachedir},%{_appdir}}
# hardlink test
cp -al VERSION $RPM_BUILD_ROOT%{_appdir} 2>/dev/null && l=l
cp -a$l *.php $RPM_BUILD_ROOT%{_appdir}
cp -p$l VERSION $RPM_BUILD_ROOT%{_appdir}
-cp -a$l bin/* $RPM_BUILD_ROOT%{_appdir}/bin
-cp -a$l inc/* $RPM_BUILD_ROOT%{_appdir}/inc
-cp -a$l lib/* $RPM_BUILD_ROOT%{_appdir}/lib
+cp -a$l bin $RPM_BUILD_ROOT%{_appdir}
+cp -a$l inc $RPM_BUILD_ROOT%{_appdir}
+cp -a$l lib $RPM_BUILD_ROOT%{_appdir}
+cp -a$l vendor $RPM_BUILD_ROOT%{_appdir}
cp -a$l conf/* $RPM_BUILD_ROOT%{_sysconfdir}
cp -a$l data/* $RPM_BUILD_ROOT%{_localstatedir}
-cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
-cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
-cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
touch $RPM_BUILD_ROOT%{_sysconfdir}/acronyms.local.conf
touch $RPM_BUILD_ROOT%{_sysconfdir}/entities.local.conf
touch $RPM_BUILD_ROOT%{_sysconfdir}/interwiki.local.conf
touch $RPM_BUILD_ROOT%{_sysconfdir}/local.protected.php
touch $RPM_BUILD_ROOT%{_sysconfdir}/mime.local.conf
touch $RPM_BUILD_ROOT%{_sysconfdir}/smileys.local.conf
+touch $RPM_BUILD_ROOT%{_sysconfdir}/userscript.js
touch $RPM_BUILD_ROOT%{_sysconfdir}/userstyle.css
-ln $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/{dokubug,bug}.gif
+# https://github.com/splitbrain/dokuwiki/pull/1247
+#ln $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/{dokubug,bug}.gif
cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/eventum.gif
cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/cacti.gif
cp -p %{SOURCE8} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/nagios.gif
cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/trac.png
cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/pld.gif
+cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/gitlab.png
+cp -p %{SOURCE13} $RPM_BUILD_ROOT%{_appdir}/lib/images/interwiki/jenkins.png
cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_appdir}/lib/images/fileicons/jude.png
cp -p %{SOURCE11} $RPM_BUILD_ROOT%{_appdir}/lib/images/fileicons/asta.png
-cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_appdir}/lib/tpl/default/images/button-pld.png
+cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_appdir}/lib/tpl/dokuwiki/images/button-pld.png
# hardlink identical icons.
findup -m $RPM_BUILD_ROOT
+cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
+cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
+cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
+
# find locales
-%find_lang %{name}.lang
+%find_lang %{name}.lang --with-dokuwiki
%clean
rm -rf $RPM_BUILD_ROOT
%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mediameta.php
%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/plugins.php
-%attr(660,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/scheme.conf
+%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/scheme.conf
%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/acl.auth.php
%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/acronyms.local.conf
%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/license.local.php
%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/local.protected.php
%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mime.local.conf
+%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mysql.conf.php
%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/smileys.local.conf
-%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/userstyle.css
%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/users.auth.php
-%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mysql.conf.php
+%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/userscript.js
+%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/userstyle.css
%attr(640,root,http) %config(noreplace) %verify(not md5 mode mtime size) %{_sysconfdir}/local.php
%attr(640,root,http) %config(noreplace) %verify(not md5 mode mtime size) %{_sysconfdir}/plugins.local.php
%attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/mime.conf
%attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/smileys.conf
%attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/wordblock.conf
+%attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/manifest.json
%attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/dokuwiki.php
%attr(640,root,http) %config %verify(not md5 mtime size) %{_sysconfdir}/license.php
%{_appdir}/index.php
%dir %{_appdir}/bin
%attr(755,root,root) %{_appdir}/bin/dwpage.php
+%attr(755,root,root) %{_appdir}/bin/gittool.php
%attr(755,root,root) %{_appdir}/bin/indexer.php
+%attr(755,root,root) %{_appdir}/bin/plugin.php
%attr(755,root,root) %{_appdir}/bin/render.php
-%attr(755,root,root) %{_appdir}/bin/wantedpages.php
%attr(755,root,root) %{_appdir}/bin/striplangs.php
+%attr(755,root,root) %{_appdir}/bin/wantedpages.php
%dir %{_appdir}/inc
%{_appdir}/inc/*.php
%{_appdir}/inc/preload.php.dist
-%{_appdir}/inc/auth
+%{_appdir}/inc/Action
+%{_appdir}/inc/Cache
+%{_appdir}/inc/ChangeLog
+%{_appdir}/inc/Debug
+%{_appdir}/inc/Exception
+%{_appdir}/inc/Extension
+%{_appdir}/inc/File
+%{_appdir}/inc/Form
+%{_appdir}/inc/HTTP
+%{_appdir}/inc/Input
+%{_appdir}/inc/Menu
+%{_appdir}/inc/Parsing
+%{_appdir}/inc/Remote
+%{_appdir}/inc/Search
+%{_appdir}/inc/Sitemap
+%{_appdir}/inc/Subscriptions
+%{_appdir}/inc/Ui
+%{_appdir}/inc/Utf8
%{_appdir}/inc/parser
+# composer generated vendor autoload
+%dir %{_appdir}/vendor
+%{_appdir}/vendor/README
+%{_appdir}/vendor/autoload.php
+%{_appdir}/vendor/composer
+
+# bundled packages
+# verbose files to detect new addons
+%dir %{_appdir}/vendor/aziraphale
+%dir %{_appdir}/vendor/kissifrot
+%dir %{_appdir}/vendor/marcusschwarz
+%dir %{_appdir}/vendor/openpsa
+%dir %{_appdir}/vendor/phpseclib
+%dir %{_appdir}/vendor/simplepie
+%dir %{_appdir}/vendor/splitbrain
+%{_appdir}/vendor/aziraphale/email-address-validator
+%{_appdir}/vendor/kissifrot/php-ixr
+%{_appdir}/vendor/marcusschwarz/lesserphp
+%{_appdir}/vendor/openpsa/universalfeedcreator
+%{_appdir}/vendor/phpseclib/phpseclib
+%{_appdir}/vendor/simplepie/simplepie
+%{_appdir}/vendor/splitbrain/php-archive
+%{_appdir}/vendor/splitbrain/php-cli
+%{_appdir}/vendor/splitbrain/slika
+
%dir %{_appdir}/lib
-%dir %{_appdir}/lib/plugins
+# allow plugins dir permission change to allow installation of plugins from admin
+# however does not work with rpm 4.5
+%dir %config %verify(not group mode) %{_appdir}/lib/plugins
+
+%{_appdir}/lib/plugins/*.php
%dir %{_appdir}/lib/plugins/acl
%{_appdir}/lib/plugins/acl/*.*
%{_appdir}/lib/plugins/acl/pix
+%dir %{_appdir}/lib/plugins/authad
+%{_appdir}/lib/plugins/authad/*.php
+%{_appdir}/lib/plugins/authad/*.txt
+%{_appdir}/lib/plugins/authad/adLDAP
+%{_appdir}/lib/plugins/authad/conf
+%dir %{_appdir}/lib/plugins/authldap
+%{_appdir}/lib/plugins/authldap/*.php
+%{_appdir}/lib/plugins/authldap/*.txt
+%{_appdir}/lib/plugins/authldap/conf
+%dir %{_appdir}/lib/plugins/authpdo
+%{_appdir}/lib/plugins/authpdo/*.php
+%{_appdir}/lib/plugins/authpdo/*.txt
+%{_appdir}/lib/plugins/authpdo/README
+%{_appdir}/lib/plugins/authpdo/conf
+%dir %{_appdir}/lib/plugins/authplain
+%{_appdir}/lib/plugins/authplain/*.php
+%{_appdir}/lib/plugins/authplain/*.txt
%dir %{_appdir}/lib/plugins/config
%{_appdir}/lib/plugins/config/*.*
+%{_appdir}/lib/plugins/config/core
%{_appdir}/lib/plugins/config/images
%{_appdir}/lib/plugins/config/settings
-%dir %{_appdir}/lib/plugins/plugin
-%{_appdir}/lib/plugins/plugin/*.*
-%{_appdir}/lib/plugins/plugin/classes
+%dir %{_appdir}/lib/plugins/extension
+%{_appdir}/lib/plugins/extension/*.*
+%{_appdir}/lib/plugins/extension/helper
+%{_appdir}/lib/plugins/extension/images
+%dir %{_appdir}/lib/plugins/logviewer
+%{_appdir}/lib/plugins/logviewer/*.*
%dir %{_appdir}/lib/plugins/revert
%{_appdir}/lib/plugins/revert/*.*
%dir %{_appdir}/lib/plugins/safefnrecode
%{_appdir}/lib/plugins/info/*.*
%dir %{_appdir}/lib/plugins/popularity
%{_appdir}/lib/plugins/popularity/*.*
-%{_appdir}/lib/plugins/*.php
+%dir %{_appdir}/lib/plugins/styling
+%{_appdir}/lib/plugins/styling/README
+%{_appdir}/lib/plugins/styling/*.*
+
%{_appdir}/lib/images
%{_appdir}/lib/scripts
%{_appdir}/lib/styles
-%{_appdir}/lib/tpl
%{_appdir}/lib/exe
+%dir %{_appdir}/lib/tpl
+%{_appdir}/lib/tpl/index.php
+
+%dir %{_appdir}/lib/tpl/dokuwiki
+%{_appdir}/lib/tpl/dokuwiki/css
+%{_appdir}/lib/tpl/dokuwiki/images
+%{_appdir}/lib/tpl/dokuwiki/*.info.txt
+%{_appdir}/lib/tpl/dokuwiki/*.ini
+%{_appdir}/lib/tpl/dokuwiki/*.js
+%{_appdir}/lib/tpl/dokuwiki/*.php
+
%dir %attr(770,root,http) %{_localstatedir}
%dir %attr(770,root,http) %{_localstatedir}/attic
%dir %attr(770,root,http) %{_localstatedir}/index
%dir %attr(770,root,http) %{_localstatedir}/tmp
%attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/media/wiki/dokuwiki-128.png
+%attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/media/wiki/dokuwiki.svg
%attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/dokuwiki.txt
%attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/syntax.txt
+%attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/wiki/welcome.txt
%attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/pages/playground/playground.txt
-%attr(660,root,http) %config(noreplace,missingok) %verify(not md5 mtime size) %{_localstatedir}/security.png
+%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
%dir %attr(770,root,http) %{_cachedir}