php7: fix config file upgrade issue (fixes #14623) 16587/head
authorMichael Heimpold <mhei@heimpold.de>
Thu, 9 Sep 2021 05:39:21 +0000 (07:39 +0200)
committerMichael Heimpold <mhei@heimpold.de>
Thu, 9 Sep 2021 06:36:49 +0000 (08:36 +0200)
The addressed issue is related to #6893 as its resolution
is actually causing the problem.

When changing the priority of the config file it happens
that after a sysupgrade the previous file is restored
and the new file is added, ending up in a situation
like this:

/etc/php7/15_openssl.ini
/etc/php7/20_openssl.ini

Causing a double extension=openssl.so to be parsed,
which is not appropriate and leads to error message.

The same problem might also occur for mysqli since there
was also a priority change - let's take care about this
at the same time.

The solution is to remove one of the files. Since it is
a configuration file, the user might have adjusted it, so
lets just use the previous version to replace the new
installed version.

Signed-off-by: Michael Heimpold <mhei@heimpold.de>
lang/php7/Makefile

index 0876dcbc4178f7906bbd3703870f8a5bd45fe1ea..ed1566459d8857ee80eaa9249bc64bf3a7c2e738 100644 (file)
@@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=php
 PKG_VERSION:=7.4.23
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_MAINTAINER:=Michael Heimpold <mhei@heimpold.de>
 PKG_LICENSE:=PHP-3.01
@@ -528,6 +528,26 @@ define Package/php7-fpm/conffiles
 /etc/config/php7-fpm
 endef
 
+define Package/php7-mod-openssl/postinst
+#!/bin/sh
+[ -n "$$IPKG_INSTROOT" ] || {
+       if [ -e "/etc/php7/20_openssl.ini" ] && [ -e "/etc/php7/15_openssl.ini" ]; then
+               echo "Renaming PHP ini file '/etc/php7/20_openssl.ini' -> '/etc/php7/15_openssl.ini'"
+               mv /etc/php7/20_openssl.ini /etc/php7/15_openssl.ini
+       fi
+}
+endef
+
+define Package/php7-mod-mysqli/postinst
+#!/bin/sh
+[ -n "$$IPKG_INSTROOT" ] || {
+       if [ -e "/etc/php7/20_mysqli.ini" ] && [ -e "/etc/php7/30_mysqli.ini" ]; then
+               echo "Renaming PHP ini file '/etc/php7/20_mysqli.ini' -> '/etc/php7/30_mysqli.ini'"
+               mv /etc/php7/20_mysqli.ini /etc/php7/30_mysqli.ini
+       fi
+}
+endef
+
 define Build/Prepare
        $(call Build/Prepare/Default)
        $(if $(QUILT),,( cd $(PKG_BUILD_DIR); touch configure.ac; ./buildconf --force ))