File dokuwiki.spec of Package dokuwiki
#
# Spec File for Package dokuwiki
#
%define dokuwiki_config /etc/dokuwiki
%define dokuwiki_data /srv/www/dokuwiki
%define apache_config /etc/apache2/conf.d
%define dokuwiki_version 2025-05-14a
%if ! %{defined _fillupdir}
%define _fillupdir /var/adm/fillup-templates
%endif
Summary: A Wiki written in PHP to work without a database
Summary(de): Ein in PHP geschriebenes Wiki, das keine Datenbank benutzt
Name: dokuwiki
Version: 2025.05.14a
Release: 2%{?dist}
License: GPL-2.0
Group: Productivity/Publishing/Other
URL: http://www.dokuwiki.org/
BuildRequires: sysconfig filesystem fdupes sed
# /etc/cron.d is owned by cron
BuildRequires: cron
%if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150400
BuildRequires: php >= 8
%else
Requires: php >= 7.2.0
%endif
Requires: cron
Requires: mod_php_any
Recommends: php-gd
PreReq: coreutils
PreReq: apache2
BuildArch: noarch
Source: %{name}-%{version}.tar.gz
Source1: dokuwiki_cleanup.sh
Source2: sysconfig.dokuwiki
Source3: apache2.conf.dokuwiki
Buildroot: %{_tmppath}/%{name}-buildroot
%description
DokuWiki is a standards compliant, simple to use Wiki, mainly aimed at creating
documentation of any kind. It is targeted at developer teams, workgroups and small
companies. It has a simple but powerful syntax which makes sure the datafiles
remain readable outside the Wiki and eases the creation of structured texts.
All data is stored in plain text files - no database is required.
Read the DokuWiki Manual to unleash the full power of DokuWiki.
Author:
-------
Andreas Gohr
%description -l de
DokuWiki ist ein einfach zu benutzendes Wiki, mit dem vor allem Dokumentation jeder Art
erstellt werden soll, und dessen Ausgabeformat den Standards entspricht. Zielguppe sind
Entwicklerteams, Arbeitsgruppen und kleine Firmen aller Art. DokuWiki hat eine einfache,
aber mächtige Syntax und erleichtert das Erstellen strukturierter Texte. Alle Daten
werden in reinen Textdateien abgelegt - eine Datenbank ist nicht erforderlich.
Lies das Handbuch von DokuWiki, um seine geballte Kraft freizusetzen.
Autor:
--------
Andreas Gohr
%package lang
Summary: Dokuwiki language pack
Group: Productivity/Publishing/Other
%description lang
%{summary}. Other Languages than english and german
%prep
%setup -n %{name}-%{dokuwiki_version}
%build
%install
install -d %{buildroot}/%{apache_config}
install -d %{buildroot}/%{dokuwiki_config}
install -d %{buildroot}/%{dokuwiki_data}
cp -a conf/* %{buildroot}/%{dokuwiki_config}/
cp -a *.php %{buildroot}/%{dokuwiki_data}/
for dir in bin data inc lib vendor; do
cp -a $dir %{buildroot}/%{dokuwiki_data}/
done
ln -s %{dokuwiki_config} %{buildroot}/%{dokuwiki_data}/conf
find %{buildroot}/%{dokuwiki_data}/ -type f -executable | xargs chmod -x
chmod +x %{buildroot}/%{dokuwiki_data}/bin/*php
chmod +x %{buildroot}/%{dokuwiki_data}/lib/scripts/jquery/update.sh
install -Dm0644 %{SOURCE3} %{buildroot}/%{apache_config}/%{name}.conf
for SUBDIR in $(find "%{buildroot}%{dokuwiki_data}/" -name '\.htacc*'); do
RELDIR=${SUBDIR#%{buildroot}}
RELDIR=${RELDIR%/.htacc*}
echo "<Directory \"$RELDIR\">" >> "%{buildroot}/%{apache_config}/%{name}.conf"
echo " ## no access to the $(basename $RELDIR) directory" \
>> "%{buildroot}/%{apache_config}/%{name}.conf"
cat "$SUBDIR" | sed 's/^/ /' | sed 's/mod_authz_host/mod_authz_core.c/' >> "%{buildroot}/%{apache_config}/%{name}.conf"
echo "</Directory>" >> "%{buildroot}/%{apache_config}/%{name}.conf"
echo "" >> "%{buildroot}/%{apache_config}/%{name}.conf"
rm "$SUBDIR"
done
install -Dm0600 %{SOURCE2} %{buildroot}/%{_fillupdir}/sysconfig.%{name}
install -d %{buildroot}/%{_sysconfdir}/cron.daily
install -m0750 %{SOURCE1} %{buildroot}/%{_sysconfdir}/cron.daily/%{name}_cleanup
# replace env
sed -i 's#/usr/bin/env php#/usr/bin/php#' %{buildroot}/%{dokuwiki_data}/bin/*.php
sed -i 's#/usr/bin/env sh#/usr/bin/sh#' %{buildroot}/%{dokuwiki_data}/lib/scripts/jquery/update.sh
# remove hidden files
rm %{buildroot}/%{dokuwiki_data}/vendor/simplepie/simplepie/.php-cs-fixer.dist.php
rm %{buildroot}/%{dokuwiki_data}/vendor/splitbrain/lesserphp/.phpcs.xml
# create hardlinks for double files
%fdupes %{buildroot}/%{dokuwiki_data}/
# files in lib/plugins shouldn't be hardlinks:
rm %{buildroot}/%{dokuwiki_data}/lib/plugins/acl/pix/ns.png
rm %{buildroot}/%{dokuwiki_data}/lib/plugins/acl/pix/page.png
rm %{buildroot}/%{dokuwiki_data}/lib/plugins/config/images/danger.png
rm %{buildroot}/%{dokuwiki_data}/lib/plugins/index.html
ln -s %{dokuwiki_data}/lib/images/ns.png %{buildroot}/%{dokuwiki_data}/lib/plugins/acl/pix/ns.png
ln -s %{dokuwiki_data}/lib/images/page.png %{buildroot}/%{dokuwiki_data}/lib/plugins/acl/pix/page.png
ln -s %{dokuwiki_data}/lib/images/error.png %{buildroot}/%{dokuwiki_data}/lib/plugins/config/images/danger.png
ln -s %{dokuwiki_data}/lib/scripts/index.html %{buildroot}/%{dokuwiki_data}/lib/plugins/index.html
# cleanup
rm -rf %{buildroot}/%{dokuwiki_data}/lib/plugins/extension/_test/
rm -f %{buildroot}/%{dokuwiki_data}/deleted.files
find %{buildroot}/%{dokuwiki_data}/ \( -name .gitignore -o -name .gitattributes -o -name .travis.yml -o -name .editorconfig \) -delete
%post
%{fillup_only %{name}}
%files
%defattr(-, root, root, -)
%doc README VERSION COPYING
%config %{_sysconfdir}/cron.daily/%{name}_cleanup
%attr(-, wwwrun, www) %dir %config(noreplace) %{dokuwiki_config}
%config %{dokuwiki_config}/*
%dir %{dokuwiki_data}
%{dokuwiki_data}/*.php
%{dokuwiki_data}/bin
%{dokuwiki_data}/conf
%{dokuwiki_data}/vendor
%attr(-, wwwrun, www) %{dokuwiki_data}/data
%dir %{dokuwiki_data}/inc
%{dokuwiki_data}/inc/*.php
%{dokuwiki_data}/inc/*.dist
%{dokuwiki_data}/inc/Action
%{dokuwiki_data}/inc/Cache
%{dokuwiki_data}/inc/ChangeLog
%{dokuwiki_data}/inc/Debug
%{dokuwiki_data}/inc/Extension
%{dokuwiki_data}/inc/Exception
%{dokuwiki_data}/inc/File
%{dokuwiki_data}/inc/Form
%{dokuwiki_data}/inc/HTTP
%{dokuwiki_data}/inc/Input
%{dokuwiki_data}/inc/Menu
%{dokuwiki_data}/inc/parser
%{dokuwiki_data}/inc/Parsing
%{dokuwiki_data}/inc/Remote
%{dokuwiki_data}/inc/Search
%{dokuwiki_data}/inc/Sitemap
%{dokuwiki_data}/inc/Subscriptions
%{dokuwiki_data}/inc/TreeBuilder
%{dokuwiki_data}/inc/Utf8
%{dokuwiki_data}/inc/Ui
%dir %{dokuwiki_data}/inc/lang/
%{dokuwiki_data}/inc/lang/en
%{dokuwiki_data}/inc/lang/de
%dir %{dokuwiki_data}/inc/Feed
%{dokuwiki_data}/inc/Feed/*.php
%dir %{dokuwiki_data}/lib
%{dokuwiki_data}/lib/exe
%{dokuwiki_data}/lib/images
%{dokuwiki_data}/lib/index.html
%attr(-, wwwrun, www) %{dokuwiki_data}/lib/plugins
%{dokuwiki_data}/lib/scripts
%{dokuwiki_data}/lib/styles
%attr(-, wwwrun, www) %{dokuwiki_data}/lib/tpl
%{_fillupdir}/sysconfig.%{name}
%attr (644, root, root) %config %{apache_config}/%{name}.conf
%files lang
%defattr(-, root, root, -)
%{dokuwiki_data}/inc/lang/af
%{dokuwiki_data}/inc/lang/ar
%{dokuwiki_data}/inc/lang/az
%{dokuwiki_data}/inc/lang/be
%{dokuwiki_data}/inc/lang/bg
%{dokuwiki_data}/inc/lang/bn
%{dokuwiki_data}/inc/lang/br
%{dokuwiki_data}/inc/lang/ca
%{dokuwiki_data}/inc/lang/ca-valencia
%{dokuwiki_data}/inc/lang/ckb
%{dokuwiki_data}/inc/lang/cs
%{dokuwiki_data}/inc/lang/cy
%{dokuwiki_data}/inc/lang/da
%{dokuwiki_data}/inc/lang/de-informal
%{dokuwiki_data}/inc/lang/el
%{dokuwiki_data}/inc/lang/eo
%{dokuwiki_data}/inc/lang/es
%{dokuwiki_data}/inc/lang/et
%{dokuwiki_data}/inc/lang/eu
%{dokuwiki_data}/inc/lang/fa
%{dokuwiki_data}/inc/lang/fi
%{dokuwiki_data}/inc/lang/fo
%{dokuwiki_data}/inc/lang/fr
%{dokuwiki_data}/inc/lang/fy
%{dokuwiki_data}/inc/lang/gl
%{dokuwiki_data}/inc/lang/he
%{dokuwiki_data}/inc/lang/hi
%{dokuwiki_data}/inc/lang/hr
%{dokuwiki_data}/inc/lang/hu
%{dokuwiki_data}/inc/lang/hu-formal
%{dokuwiki_data}/inc/lang/hy
%{dokuwiki_data}/inc/lang/ia
%{dokuwiki_data}/inc/lang/id
%{dokuwiki_data}/inc/lang/id-ni
%{dokuwiki_data}/inc/lang/is
%{dokuwiki_data}/inc/lang/it
%{dokuwiki_data}/inc/lang/ja
%{dokuwiki_data}/inc/lang/ka
%{dokuwiki_data}/inc/lang/kk
%{dokuwiki_data}/inc/lang/km
%{dokuwiki_data}/inc/lang/kn
%{dokuwiki_data}/inc/lang/ko
%{dokuwiki_data}/inc/lang/ku
%{dokuwiki_data}/inc/lang/la
%{dokuwiki_data}/inc/lang/lb
%{dokuwiki_data}/inc/lang/lt
%{dokuwiki_data}/inc/lang/lv
%{dokuwiki_data}/inc/lang/mg
%{dokuwiki_data}/inc/lang/mk
%{dokuwiki_data}/inc/lang/ml
%{dokuwiki_data}/inc/lang/mr
%{dokuwiki_data}/inc/lang/ms
%{dokuwiki_data}/inc/lang/nan
%{dokuwiki_data}/inc/lang/ne
%{dokuwiki_data}/inc/lang/nl
%{dokuwiki_data}/inc/lang/no
%{dokuwiki_data}/inc/lang/oc
%{dokuwiki_data}/inc/lang/pl
%{dokuwiki_data}/inc/lang/pt
%{dokuwiki_data}/inc/lang/pt-br
%{dokuwiki_data}/inc/lang/ro
%{dokuwiki_data}/inc/lang/ru
%{dokuwiki_data}/inc/lang/si
%{dokuwiki_data}/inc/lang/sk
%{dokuwiki_data}/inc/lang/sl
%{dokuwiki_data}/inc/lang/sq
%{dokuwiki_data}/inc/lang/sr
%{dokuwiki_data}/inc/lang/sv
%{dokuwiki_data}/inc/lang/ta
%{dokuwiki_data}/inc/lang/th
%{dokuwiki_data}/inc/lang/tr
%{dokuwiki_data}/inc/lang/uk
%{dokuwiki_data}/inc/lang/uz
%{dokuwiki_data}/inc/lang/vi
%{dokuwiki_data}/inc/lang/zh
%{dokuwiki_data}/inc/lang/zh-tw