diff --git a/phpMyAdmin.changes b/phpMyAdmin.changes
index b02e21b..db82450 100644
--- a/phpMyAdmin.changes
+++ b/phpMyAdmin.changes
@@ -1,3 +1,18 @@
+-------------------------------------------------------------------
+Tue Jan 21 21:24:30 UTC 2020 - chris@computersalat.de
+
+- fix for boo#1092345
+ * change ap_docroot from /srv/www/htdocs to /usr/share
+ work is based on changes provided by ecsos@opensuse.org
+ if phpMyAdmin.conf for apache was changed by local admin, we will
+ create a backup and replace the original file with the new version
+ sorry admins, but you need to apply your changes again
+ * needed Alias /phpMyAdmin is an enabled APACHE_SERVER_FLAGS default
+ for more info have a look into /etc/apache2/conf.d/phpMyAdmin.conf
+- cleanup tmp/twig on
+ * uninstall
+ * ap_docroot change
+
-------------------------------------------------------------------
Wed Jan 8 14:26:20 UTC 2020 - chris@computersalat.de
diff --git a/phpMyAdmin.http b/phpMyAdmin.http
index 1ff610b..81d4991 100644
--- a/phpMyAdmin.http
+++ b/phpMyAdmin.http
@@ -1,8 +1,37 @@
+# By default the /@name@ Alias is enabled for all vhosts.
+# To disable the /@name@ Alias, run
+# a2enflag -d @name@ && rcapache2 restart
+# This will make /@name@ unavailable on any vhosts.
+#
+# If you want to have the /@name@ Alias only on a specific
+# vhost, add the Alias to the config of that vhost.
+
+
+
+ Alias /@name@ @ap_docroot@/@name@
+
+
+
Options FollowSymLinks
AllowOverride None
+
+ Order Allow,Deny
+ Allow from all
+
+
+ = 2.4>
+
+ Require all granted
+
+
+ Order Allow,Deny
+ Allow from all
+
+
+
Include @ap_sysconfdir@/conf.d/@name@.inc
php_admin_value open_basedir "@ap_docroot@/@name@:/var/lib/php5:/tmp:@docdir@/@name@:/etc/@name@:/proc/meminfo:/proc/stat"
diff --git a/phpMyAdmin.spec b/phpMyAdmin.spec
index fbe425b..f3ef1ae 100644
--- a/phpMyAdmin.spec
+++ b/phpMyAdmin.spec
@@ -19,7 +19,8 @@
%define apxs %{_sbindir}/apxs2
%define ap_sysconfdir %(%{apxs} -q SYSCONFDIR)
%define ap_serverroot %(%{apxs} -q PREFIX)
-%define ap_docroot %(%{apxs} -q PREFIX)/htdocs
+%define ap_docroot_old %{ap_serverroot}/htdocs
+%define ap_docroot %{_datadir}
%define pma_config %{_sysconfdir}/%{name}/config.inc.php
%if 0%{?suse_version}
%define ap_usr wwwrun
@@ -164,6 +165,20 @@ sed -i -e "s,@ap_docroot@,%{ap_docroot},g" -e "s,@name@,%{name},g" \
%fdupes %{buildroot}%{ap_docroot}/%{name}/libraries
%fdupes %{buildroot}%{ap_docroot}/%{name}/themes
+%pre
+# removing tmp/twig before ap_docroot change
+# a new one will be created anyway in new ap_docroot (like after a clean install)
+if [ -d "%{ap_docroot_old}/%{name}/tmp" ]; then
+ echo "removing %{ap_docroot_old}/%{name}/tmp for ap_docroot change"
+ rm -rf "%{ap_docroot_old}/%{name}/tmp" || :
+fi
+
+%preun
+if [ $1 -eq 0 ]; then
+ echo "removing %{ap_docroot}/%{name}/tmp for clean uninstall"
+ rm -rf "%{ap_docroot}/%{name}/tmp" || :
+fi
+
%post
# on `rpm -ivh` PARAM is 1
# on `rpm -Uvh` PARAM is 2
@@ -174,14 +189,44 @@ sed -i -e "s,@FQDN@,$(cat %{_sysconfdir}/HOSTNAME)," \
if [ -x %{_sbindir}/a2enmod ]; then
a2enmod -q version || a2enmod version
# get installed php_version (5 or 7)
+ # ap_mpm=$(awk '/Server MPM/ {print $3}' <<<$(start_apache2 -V))
+ # php_version=$(awk -F[." "] '/cli/ {print $2}' <<< $(php -v))
php_version=$(php -v | sed -n 's/^PHP\ \([[:digit:]]\+\)\..*$/\1/p')
if [[ -n ${php_version} ]] && start_apache2 -V | grep -q prefork; then
a2enmod -q "php${php_version}" || a2enmod "php${php_version}"
fi
fi
+# enable phpMyAdmin flag
+if [ -x %{_sbindir}/a2enflag ]; then
+ flag_find=$(grep -cw /etc/sysconfig/apache2 -e "^APACHE_SERVER_FLAGS=.*%{name}.*")
+ if [ $flag_find -eq 0 ]; then
+ a2enflag %{name}
+ fi
+fi
+# We changed ap_docroot from %{ap_docroot_old} to %{ap_docroot} (/srv/www/htdocs to /usr/share)
+# If someone did 'manually' change the config file it won't be replaced by rpm
+# Hence we backup the existing and place the new one
+find=0
+find=$(grep -cw %{ap_sysconfdir}/conf.d/%{name}.conf -e "%{ap_docroot_old}/%{name}") || :
+if [ $find -gt 0 ]; then
+ap_date="$(date '+%Y%m%d-%H%M')"
+echo "creating backup of %{ap_sysconfdir}/conf.d/%{name}.conf to %{ap_sysconfdir}/conf.d/%{name}.conf.backup-${ap_date}"
+cp -a %{ap_sysconfdir}/conf.d/%{name}.conf %{ap_sysconfdir}/conf.d/%{name}.conf.backup-${ap_date}
+echo "copying %{ap_sysconfdir}/conf.d/%{name}.conf.rpmnew to %{ap_sysconfdir}/conf.d/%{name}.conf"
+cp -a %{ap_sysconfdir}/conf.d/%{name}.conf.rpmnew %{ap_sysconfdir}/conf.d/%{name}.conf
+fi
+%restart_on_update apache2
#systemctl try-restart apache2 &>/dev/null
-#%%postun
+%postun
+# disable phpMyAdmin flag
+if [ -x %{_sbindir}/a2enflag ]; then
+ flag_find=$(grep -cw /etc/sysconfig/apache2 -e "^APACHE_SERVER_FLAGS=.*%{name}.*")
+ if [ $flag_find -eq 1 ]; then
+ a2enflag -d %{name}
+ fi
+fi
+%restart_on_update apache2
#systemctl try-restart apache2 &>/dev/null
%files -f FILELIST