+%define subver 2017-02-08
+%define ver %(echo %{subver} | tr -d -)
%define plugin data
+%define php_min_version 5.3.0
+%include /usr/lib/rpm/macros.php
Summary: DokuWiki Structured Data Plugin
Name: dokuwiki-plugin-%{plugin}
-Version: 20090213
-Release: 0.2
+Version: %{ver}
+Release: 0.1
License: GPL v2
Group: Applications/WWW
-Source0: http://dev.splitbrain.org/download/snapshots/data-plugin-latest.tgz
-# Source0-md5: 6a3ee212496a60a343b62246e8002957
-URL: http://wiki.splitbrain.org/plugin:data
+Source0: https://github.com/splitbrain/dokuwiki-plugin-%{plugin}/archive/%{subver}/%{plugin}-%{subver}.tar.gz
+# Source0-md5: 0ec0720f8b4430377b66db1c9f57b9ea
+URL: https://www.dokuwiki.org/plugin:data
+Patch2: separator-style.patch
+Patch3: separate-rpmdb.patch
+Patch4: cache-enable.patch
+BuildRequires: rpm-php-pearprov
BuildRequires: rpmbuild(macros) >= 1.520
-Requires: dokuwiki >= 20071221
-Requires: php(sqlite)
+Requires: php(core) >= %{php_min_version}
+Requires(triggerun): sqlite
+Requires(triggerun): sqlite3
+Requires: dokuwiki >= 20090214b-5
+Requires: dokuwiki-plugin-sqlite >= 20130508
+Requires: php(pcre)
BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define dokuconf /etc/webapps/dokuwiki
%define dokudir /usr/share/dokuwiki
-%define cachedir /var/lib/dokuwiki/cache
+%define metadir /var/lib/dokuwiki/meta
%define plugindir %{dokudir}/lib/plugins/%{plugin}
%define find_lang %{_usrlibrpm}/dokuwiki-find-lang.sh %{buildroot}
+# no pear deps
+%define _noautopear pear
+
+# sqlite is dokuwiki-plugin-sqlite dep, not ours
+%define _noautophp php-sqlite
+
+# put it together for rpmbuild
+%define _noautoreq %{?_noautophp} %{?_noautopear}
+
%description
This plugin allows you to add structured data to any DokuWiki page.
Think about this data as additional named attributes. Those attributes
different to the repository plugin.
%prep
-%setup -q -n %{plugin}
+%setup -qc
+mv *-%{plugin}-*/{.??*,*} .
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+
+# nothing to do with tests
+rm -rf _test
+rm .travis.yml
+
+# cleanup backups after patching
+find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
+
+%build
+version=$(awk '/date/{print $2}' plugin.info.txt)
+if [ $(echo "$version" | tr -d -) != %{version} ]; then
+ : %%{version} mismatch
+ exit 1
+fi
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{plugindir},%{cachedir}}
+install -d $RPM_BUILD_ROOT{%{plugindir},%{metadir}}
cp -a . $RPM_BUILD_ROOT%{plugindir}
-
-touch $RPM_BUILD_ROOT%{cachedir}/dataplugin.sqlite
+%{__rm} $RPM_BUILD_ROOT%{plugindir}/README
+# sqlite2: php-sqlite
+touch $RPM_BUILD_ROOT%{metadir}/data.sqlite
+# sqlite3: php-pdo-sqlite
+touch $RPM_BUILD_ROOT%{metadir}/data.sqlite3
# find locales
%find_lang %{name}.lang
touch %{dokuconf}/local.php
fi
+%triggerun -- %{name} < 20100322-0.5
+# move to new location
+mv /var/lib/dokuwiki/cache/dataplugin.sqlite %{metadir}/data.sqlite
+
+# perform new indexes add manually
+sqlite %{metadir}/data.sqlite <<'EOF'
+CREATE TABLE opts (opt,val);
+CREATE UNIQUE INDEX idx_opt ON opts(opt);
+INSERT INTO opts VALUES ('dbversion', 1);
+EOF
+chown root:http %{metadir}/data.sqlite
+chmod 660 %{metadir}/data.sqlite
+
+%triggerun -- %{name} < 20120716-3
+if [ -f %{metadir}/data.sqlite3 ]; then
+ # already migrated
+ exit 0
+fi
+# perform sqlite2 -> sqlite3 migration of both tools present
+if [ ! -x /usr/bin/sqlite ] || [ ! -x /usr/bin/sqlite3 ]; then
+ echo >&2 "data plugin: To migrate db from sqlite2 to sqlite3 you need to install 'sqlite' and 'sqlite3' packages"
+ exit 0
+fi
+
+sqlite %{metadir}/data.sqlite .dump > %{metadir}/data.dump
+sqlite3 %{metadir}/data.dump.new < %{metadir}/data.dump
+mv %{metadir}/data.sqlite3{.new,}
+chown root:http %{metadir}/data.sqlite3
+chmod 660 %{metadir}/data.sqlite3
+
%files -f %{name}.lang
%defattr(644,root,root,755)
+%doc README
%dir %{plugindir}
-%{plugindir}/syntax
+%{plugindir}/*.js
%{plugindir}/*.php
+%{plugindir}/*.txt
%{plugindir}/*.css
-%{plugindir}/*.sql
-%ghost %attr(660,http,http) %{cachedir}/dataplugin.sqlite
+%{plugindir}/admin
+%{plugindir}/conf
+%{plugindir}/db
+%{plugindir}/helper
+%{plugindir}/syntax
+%attr(660,http,http) %ghost %{metadir}/data.sqlite
+%attr(660,http,http) %ghost %{metadir}/data.sqlite3