#!/usr/bin/make -f
# See debhelper(7) (uncomment to enable)
# output every command that modifies files on the build system.
export SHELL := /bin/bash
.SHELLFLAGS := -c
export DH_VERBOSE = 1
export DH_OPTIONS = -v

export apiver      20190529
export zendver     20190529
export pdover      20170320

scl_dir := /opt/cloudlinux/alt-php74

export mods = pgsql odbc ldap snmp xmlrpc imap \
 mbstring gd dom xsl soap bcmath dba xmlreader xmlwriter \
 pdo pdo_pgsql pdo_odbc pdo_sqlite json zip \
 phar fileinfo intl pspell mssql \
 sodium \
 tidy enchant \
 nd_mysqli nd_pdo_mysql mysqlnd pdo_firebird \
 posix sysvshm sysvsem sysvmsg opcache sockets pdo_dblib

DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)

_sourcedir := debian/source
_prefix := /usr
_bindir := $(_prefix)/bin
_sbindir := $(_prefix)/sbin
_libdir := $(_prefix)/lib/$(DEB_HOST_MULTIARCH)
APXS ?= $(shell command -v apxs2 || command -v apxs)
APXS_LIBEXECDIR := /opt/alt/php74$(_libdir)/httpd/modules
_sysconfigdir := /etc
_includedir := $(_prefix)/include
_datadir := $(_prefix)/share
_localstatedir := /var
_mandir := $(_datadir)/man
buildroot := $(CURDIR)/debian/tmp

export LDFLAGS += -L/opt/alt/php74$(_libdir) -Wl,-rpath=/opt/alt/php74$(_libdir)

LIBCURL=/opt/alt/curlssl/usr/lib/$(DEB_HOST_MULTIARCH)
export LDFLAGS += -L$(LIBCURL) -Wl,-rpath=$(LIBCURL)
export PKG_CONFIG_PATH_LIST += $(LIBCURL)/pkgconfig

LIBSSH2=/opt/alt/libssh2/lib/$(DEB_HOST_MULTIARCH)
export LDFLAGS += -L$(LIBSSH2) -Wl,-rpath=$(LIBSSH2)
export PKG_CONFIG_PATH_LIST += $(LIBSSH2)/pkgconfig

LIBSSL=/opt/alt/openssl/lib/$(DEB_HOST_MULTIARCH)/
export LDFLAGS += -L$(LIBSSL) -Wl,-rpath=$(LIBSSL)
export PKG_CONFIG_PATH_LIST += $(LIBSSL)/pkgconfig

export CC = gcc -DTRUE=1 -DFALSE=0
export CXX = g++ -DTRUE=1 -DFALSE=0

export SQLITE_CFLAGS=-I/opt/alt/sqlite/usr/include
export SQLITE_LIBS=-L/opt/alt/sqlite$(_libdir) -Wl,-rpath=/opt/alt/sqlite$(_libdir) -lsqlite3
export PDO_SQLITE_SHARED_LIBADD=$(SQLITE_LIBS)
export PKG_CONFIG_PATH_LIST += /opt/alt/sqlite$(_libdir)/pkgconfig

SED_ALT_LIBS := \
sed -i 's@SQLITE3_SHARED_LIBADD =@SQLITE3_SHARED_LIBADD = -Wl,-rpath,/opt/alt/sqlite$(_libdir) @' Makefile; \
sed -i 's@PDO_SQLITE_SHARED_LIBADD =@PDO_SQLITE_SHARED_LIBADD = -Wl,-rpath,/opt/alt/sqlite$(_libdir) @' Makefile;

export LDFLAGS += -L/opt/alt/libicu71$(_libdir),-rpath=/opt/alt/libicu71$(_libdir)
export PKG_CONFIG_PATH_LIST += /opt/alt/libicu71$(_libdir)/pkgconfig
SED_ALT_LIBS += \
sed -i 's@INTL_SHARED_LIBADD =@INTL_SHARED_LIBADD = -Wl,-rpath=/opt/alt/libicu71$(_libdir) @' Makefile;



export PKG_CONFIG_PATH = $(shell echo $$PKG_CONFIG_PATH_LIST | tr ' ' ':')

export CFLAGS += -fno-strict-aliasing -Wno-pointer-sign -fPIC

export CFLAGS += -fno-strict-aliasing -Wno-pointer-sign -fPIC



ifeq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
  CFLAGS += -O2
else
  CFLAGS += -O0
endif
export CFLAGS
export LDFLAGS

# Install extension modules in ${libdir}/php/modules.
export EXTENSION_DIR=/opt/alt/php74$(_libdir)/php/modules

# Set PEAR_INSTALLDIR to ensure that the hard-coded include_path
# includes the PEAR directory even though pear is packaged
# separately.
export PEAR_INSTALLDIR=/opt/alt/php74$(_datadir)/pear

## for alpha
export KERBEROS_CFLAGS=-I$(_includedir)
export KERBEROS_LIBS=-L$(_libdir)
export SASL_CFLAGS=-I$(_includedir)
export SASL_LIBS=-L$(_libdir)

# see ENVIRONMENT in dpkg-buildflags(1)
# package maintainers to append CFLAGS
export DEB_CFLAGS_MAINT_APPEND  = -Wall -pedantic
# package maintainers to append LDFLAGS
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed

NJOBS := -j$(shell getconf _NPROCESSORS_ONLN)

TARGETS := cgi litespeed fpm mysqlnd apache

COMMON_CONFIG := \
	   --build=$(DEB_BUILD_GNU_TYPE) \
	   --host=$(DEB_HOST_GNU_TYPE) \
	   --target=$(DEB_BUILD_GNU_TYPE) \
	   --program-prefix= \
	   --prefix=/opt/alt/php74 \
	   --exec-prefix=/opt/alt/php74 \
	   --bindir=/opt/alt/php74$(_bindir) \
	   --sbindir=/opt/alt/php74$(_sbindir) \
	   --sysconfdir=/opt/alt/php74$(_sysconfigdir) \
	   --datadir=/opt/alt/php74$(_datadir) \
	   --includedir=/opt/alt/php74$(_includedir) \
	   --libdir=/opt/alt/php74$(_libdir) \
	   --with-libdir=lib/$(DEB_HOST_MULTIARCH) \
	   --libexecdir=/opt/alt/php74$(_prefix)/libexec \
	   --localstatedir=/var \
	   --sharedstatedir=$(_prefix)/com \
	   --mandir=/opt/alt/php74$(_mandir) \
	   --infodir=/opt/alt/php74usr/share/info \
	   --cache-file=$(CURDIR)/config.cache \
	   --with-config-file-scan-dir=/opt/alt/php74/link/conf \
	   --with-config-file-path=/opt/alt/php74$(_sysconfigdir) \
	   --disable-debug \
	   --enable-calendar \
	   --enable-exif \
	   --enable-ftp \
	   --enable-gd-native-ttf \
	   --enable-huge-code-pages \
	   --enable-opcache \
	   --enable-shmop \
	   --with-bz2=$(_prefix) \
	   --with-curl=/opt/alt/curlssl/usr \
	   --with-freetype=$(_prefix) \
	   --with-gettext \
	   --with-gmp \
	   --with-iconv \
	   --with-jpeg=$(_prefix) \
	   --with-kerberos \
	   --with-layout=GNU \
	   --with-libxml-dir=$(_prefix) \
	   --with-mhash \
	   --with-openssl=yes \
	   --with-openssl-dir=/opt/alt/openssl \
	   --with-password-argon2 \
	   --with-pcre-dir=/usr \
	   --with-pcre-jit \
	   --with-pcre-regex=/usr \
	   --with-pic \
	   --with-readline \
	   --with-webp=$(_prefix) \
	   --with-xml \
	   --with-xpm=$(_prefix) \
	   --with-zlib \
	   --with-zlib-dir=/ \
	   --without-gdbm \
	   --without-pear \
	   --with-pcre-regex

export cgi_config = \
	   $(COMMON_CONFIG) \
	   --enable-bcmath=shared \
	   --enable-dba=shared \
	   --enable-dom=shared \
	   --enable-fileinfo=shared \
	   --enable-gd=shared \
	   --enable-intl=shared \
	   --enable-json=shared \
	   --enable-mbregex \
	   --enable-mbstring=shared \
	   --enable-opcache \
	   --enable-pcntl \
	   --enable-pdo=shared \
	   --enable-phar=shared \
	   --enable-posix=shared \
	   --enable-soap=shared \
	   --enable-sysvmsg=shared \
	   --enable-sysvsem=shared \
	   --enable-sysvshm=shared \
	   --enable-xmlreader=shared --enable-xmlwriter=shared \
	   --enable-sockets=shared \
	   --with-enchant=shared,$(_prefix) \
	   --with-external-gd \
	   --with-imap=shared,/usr --with-imap-ssl=/opt/alt/openssl \
	   --with-ldap=shared --with-ldap-sasl \
	   --with-pdo-dblib=shared,$(_prefix) \
	   --with-pdo-firebird=shared,$(_prefix) \
	   --with-pdo-odbc=shared,unixODBC,$(_prefix) \
	   --with-pdo-pgsql=shared,$(_prefix) \
	   --with-pdo-sqlite=shared,/opt/alt/sqlite$(_prefix) \
	   --with-pgsql=shared \
	   --with-pspell=shared \
	   --with-snmp=shared,$(_prefix) \
	   --with-sodium=shared,$(_prefix) \
	   --with-sqlite3=/opt/alt/sqlite$(_prefix) \
	   --with-tidy=shared,$(_prefix) \
	   --with-unixODBC=shared,$(_prefix) \
	   --with-xmlrpc=shared \
	   --with-xsl=shared,$(_prefix) \
	   --with-icu-dir=/opt/alt/libicu71/usr \
	   --with-zip=shared


export without_shared = \
	   --disable-bcmath \
	   --disable-dba \
	   --disable-dom \
	   --disable-fileinfo \
	   --disable-gd \
	   --disable-intl \
	   --disable-json \
	   --disable-mbstring \
	   --disable-pdo \
	   --disable-phar \
	   --disable-posix \
	   --disable-soap \
	   --disable-sockets \
	   --disable-sysvmsg \
	   --disable-sysvsem \
	   --disable-sysvshm \
	   --disable-xmlreader \
	   --disable-xmlwriter \
	   --without-enchant \
	   --without-imap \
	   --without-ldap \
	   --without-pgsql \
	   --without-pspell \
	   --without-snmp \
	   --without-sodium \
	   --without-tidy \
	   --without-unixODBC \
	   --without-xmlrpc \
	   --without-xsl \
	   --without-zip --disable-gd


export litespeed_config = $(COMMON_CONFIG) \
	   --enable-litespeed \
	   --disable-pdo \
	   --enable-pcntl \
	   --without-mysqli \
	   $(without_shared)

export fpm_config = $(COMMON_CONFIG) \
	   --enable-fpm \
	   --disable-pdo \
	   --enable-pcntl \
	   --with-fpm-systemd \
	   --without-mysqli \
	   $(without_shared)

export apache_config = $(COMMON_CONFIG) \
	   --with-apxs2=$(APXS) \
	   --disable-cli --disable-cgi --disable-phpdbg \
	   $(without_shared)

export mysqlnd_config = $(COMMON_CONFIG) \
	   --enable-mysqlnd=shared \
	   --enable-pdo=shared \
	   --with-mysqli=shared,mysqlnd \
	   --with-pdo-mysql=shared,mysqlnd \
	   --with-pdo-pgsql=shared,$(_prefix) \
	   --with-pdo-sqlite=shared,/opt/alt/sqlite$(_prefix) \
	   --with-mysql-sock=/run/mysqld/mysqld.sock

%:
	dh $@ --with apache2 --without=build-stamp --without autoreconf

prep_build:
	tar xzf debian/src/php-litespeed-8.3.tgz
	cp litespeed*/*.{h,c} sapi/litespeed
	./buildconf --force
	patch -p1 < debian/patches/cloudlinux-php-fpm.7.0.dl.ea-php.v4.patch
	patch -p1 < debian/patches/php-7.1.x-mail-header.patch
	patch -p1 < debian/patches/litespeed-8.0.1-process_lsapi_phpini.patch
	patch -p1 < debian/patches/litespeed-8.0.1-userini_homedir.patch
	patch -p1 < debian/patches/litespeed-8.0.1-log.patch
	patch -p1 < debian/patches/litespeed-8.0.1.use_reject.patch
	patch -p1 < debian/patches/litespeed-8.0.1.avoid_zombies.patch
	patch -p1 < debian/patches/litespeed-8.0.1.dis_keeplistener.patch
	patch -p1 < debian/patches/litespeed-8.0.1.crash_limit.patch
	patch -p1 < debian/patches/litespeed-8.0.1-tsrmls.patch
	patch -p1 < debian/patches/litespeed-8.1-cloudlinux.patch
	patch -p1 < debian/patches/litespeed-8.0.1.wink_fix.patch
	patch -p1 < debian/patches/litespeed-8.0.1-move_override_ini.patch
	patch -p1 < debian/patches/litespeed-8.3-document_root_env.patch
	patch -p1 < debian/patches/php-7.0.14-bug71465.patch
	patch -p1 < debian/patches/php-7.2.0-curl-mariadb102.patch
	patch -p1 < debian/patches/php-7.x.y-bug70110.patch
	patch -p1 < debian/patches/php-7.2.1-pdo_oci_m4.patch
	patch -p1 < debian/patches/fix_path_imap_lib.patch
	patch -p1 < debian/patches/find-libc-client.patch
	patch -p1 < debian/patches/replace-enchant-with-enchant2.patch
	patch -p1 < debian/patches/php-7.4.32-fix-for-openssl-3.0.x.patch
	patch -p1 < debian/patches/php-upstream-CVE-2022-31631.patch
	patch -p1 < debian/patches/upstream-CVE-2023-0568.patch
	patch -p1 < debian/patches/alt-php74-CVE-2023-0662.patch
	patch -p1 < debian/patches/upstream-CVE-2023-0567.patch
	patch -p1 < debian/patches/php-7.4-CVE-2023-3823.patch
	patch -p1 < debian/patches/php-upstream-CVE-2023-3824.patch
	patch -p1 < debian/patches/php-7.1-CVE-2023-3247.patch
	patch -p1 < debian/patches/php-7.4-CVE-2022-4900.patch
	patch -p1 < debian/patches/sock-path-mysqlnd.patch
	patch -p1 < debian/patches/php-7.3-CVE-2024-2756.patch
	patch -p1 < debian/patches/php-7.4-CVE-2024-3096.patch
	patch -p1 < debian/patches/php-7.4-CVE-2024-5458.patch
	patch -p1 < debian/patches/php-8.1-CVE-2024-8925.patch
	patch -p1 < debian/patches/php-7.4.19-CVE-2024-9026.patch
	patch -p1 < debian/patches/php-8.1-CVE-2024-8927.patch
	patch -p1 < debian/patches/php-8.2-CVE-2024-11233.patch
	patch -p1 < debian/patches/php-7.4.19-CVE-2024-11234.patch
	patch -p1 < debian/patches/php-7.3-CVE-2024-11236.patch
	patch -p1 < debian/patches/php-7.4-CVE-2024-8929.patch
	patch -p1 < debian/patches/CVE-2025-1736.patch
	patch -p1 < debian/patches/php-7.4-CVE-2024-11235.patch
	patch -p1 < debian/patches/php-8.0-CVE-2025-1219.patch
	patch -p1 < debian/patches/php-7.4-CVE-2025-1217_CVE-2025-1734_CVE-2025-1861.patch
	patch -p1 < debian/patches/php74-CVE-2025-1220.patch
	patch -p1 < debian/patches/php74-CVE-2025-6491.patch
	patch -p1 < debian/patches/CVE-2025-14178.patch
	patch -p1 < debian/patches/cloudlinux.per_domain_lve.patch
	patch -p1 < debian/patches/php-7.4-CVE-2026-6722.patch
	patch -p1 < debian/patches/php-7.4-CVE-2026-7262.patch
	patch -p1 < debian/patches/php-7.4-CVE-2026-6735.patch
	patch -p1 < debian/patches/php-7.4-CVE-2026-7261.patch
	patch -p1 < debian/patches/php-7.4-CVE-2026-7568.patch

	cp -p Zend/LICENSE Zend/ZEND_LICENSE
	cp -p TSRM/LICENSE TSRM_LICENSE
	# Multiple builds for multiple SAPIs
	for target in $(TARGETS); do \
	  mkdir -p build-$${target}/Zend && cp Zend/zend_{language,ini}_{parser,scanner}.[chy] build-$${target}/Zend; \
	done
	# Remove bogus test; position of read position after fopen(, "a+")
	# # is not defined by C standard, so don't presume anything.
	rm -f ext/standard/tests/file/bug21131.phpt
	# Tests that fail.
	rm -f ext/standard/tests/file/bug22414.phpt ext/iconv/tests/bug16069.phpt
	# Remove tests which require external network access
	rm -f ext/sockets/tests/socket_bind.diff
	# Easter eggs no not shipped
	rm -f tests/basic/php_egg_logo_guid.diff
	# Create postinst scripts
	for i in $(shell grep 'Package' debian/control | awk '{print $$2}'); do \
		if [ ! -f debian/$${i}.postinst ]; then \
			echo "#!/bin/bash" > debian/$${i}.postinst; \
				echo "[ -x /usr/bin/cl-linksafe-apply-group ] && /usr/bin/cl-linksafe-apply-group $${i} || :" >> debian/$${i}.postinst; \
		fi; \
	done

override_dh_auto_configure: prep_build
	@test -x "$(APXS)" || { echo "FATAL: apxs not found (install apache2-dev)"; exit 1; }
	export
	cat `aclocal --print-ac-dir`/{libtool,ltoptions,ltsugar,ltversion,lt~obsolete}.m4 >>aclocal.m4
	# Force use of system libtool:
	libtoolize --force --copy
	cat `aclocal --print-ac-dir`/{libtool,ltoptions,ltsugar,ltversion,lt~obsolete}.m4 >build/libtool.m4
	# Regenerate configure scripts (patches change config.m4's)
	./buildconf --force
	@set -e; \
	for target in $(TARGETS); do \
		pushd build-$${target}; \
		../configure $$(eval echo \$${$${target}_config}); \
		$(SED_ALT_LIBS) \
		if [ "mysqlnd" = "$${target}" ]; then \
			pushd modules; \
			rm -f `ls | grep -v mysql`; \
			popd; \
		fi; \
		popd; \
	done

override_dh_auto_build:
	@set -e; \
	for target in $(TARGETS); do \
	  $(MAKE) $(NJOBS) -C build-$${target}; \
	done

override_dh_auto_install:
	install -m 755 -d $(buildroot)/opt/alt/php74$(_sysconfigdir)
	install -m 755 -d $(buildroot)/opt/alt/php74$(_sysconfigdir)/php-fpm.d
	# MySQLND modules first
	$(MAKE) -C build-mysqlnd install-modules INSTALL_ROOT=$(buildroot)
	# Install other SAPIs (except apache)
	@set -e; \
	for target in litespeed fpm cgi; do \
	  $(MAKE) -C build-$${target} install INSTALL_ROOT=$(buildroot); \
	done
	# Rename www.conf.default to www.conf so FPM starts without manual intervention
	mv $(buildroot)/opt/alt/php74$(_sysconfigdir)/php-fpm.d/www.conf.default \
	   $(buildroot)/opt/alt/php74$(_sysconfigdir)/php-fpm.d/www.conf
	# --- apache2handler (mod_php) ---
	# Ensure dirs for apxs defaults and for our final target
	install -d $(buildroot)/etc/apache2/mods-available
	install -d $(buildroot)$(APXS_LIBEXECDIR)
	# Fake a2enmod to avoid apxs calling system tool in build chroot
	FAKEBIN=$(CURDIR)/debian/fakebin; \
	install -d $$FAKEBIN; \
	printf '#!/bin/sh\nexit 0\n' > $$FAKEBIN/a2enmod; \
	chmod +x $$FAKEBIN/a2enmod; \
	PATH="$$FAKEBIN:$$PATH" \
	$(MAKE) -C build-apache install-sapi \
	  INSTALL_ROOT=$(buildroot) \
	  APXS=$(APXS)
	# Relocate module if apxs installed it into Debian default path
	if [ -f $(buildroot)/usr/lib/apache2/modules/libphp7.so ]; then \
	  mv -f $(buildroot)/usr/lib/apache2/modules/libphp7.so \
	        $(buildroot)$(APXS_LIBEXECDIR)/libphp.so ; \
	fi
	if [ -f $(buildroot)/usr/lib/apache2/modules/libphp.so ]; then \
	  mv -f $(buildroot)/usr/lib/apache2/modules/libphp.so \
	        $(buildroot)$(APXS_LIBEXECDIR)/libphp.so ; \
	fi
	# Remove libtool leftovers (.la/.lai) wherever they may appear
	rm -f \
	  $(buildroot)/usr/lib/apache2/modules/libphp.la \
	  $(buildroot)/usr/lib/apache2/modules/libphp.lai \
	  $(buildroot)/usr/lib/apache2/modules/libphp7.la \
	  $(buildroot)/usr/lib/apache2/modules/libphp7.lai \
	  $(buildroot)$(APXS_LIBEXECDIR)/libphp.la \
	  $(buildroot)$(APXS_LIBEXECDIR)/libphp.lai
	# Drop apxs-created Debian stubs
	rm -f $(buildroot)/etc/apache2/mods-available/php*.load \
	      $(buildroot)/etc/apache2/mods-available/php*.conf || true
	# custom mods-available/alt-php74.*
	@set -e; \
	install -d "$(buildroot)/etc/apache2/mods-available"; \
	modfile=""; modname=""; \
	if [ -f "$(buildroot)$(APXS_LIBEXECDIR)/libphp7.so" ]; then \
	  modfile="$(APXS_LIBEXECDIR)/libphp7.so"; modname="php7_module"; \
	elif [ -f "$(buildroot)$(APXS_LIBEXECDIR)/libphp.so" ]; then \
	  modfile="$(APXS_LIBEXECDIR)/libphp.so"; modname="php7_module"; \
	elif [ -f "$(buildroot)$(APXS_LIBEXECDIR)/libphp5.so" ]; then \
	  modfile="$(APXS_LIBEXECDIR)/libphp5.so"; modname="php5_module"; \
	else \
	  echo "WARNING: libphp*.so not found under $(APXS_LIBEXECDIR)" >&2; \
	fi; \
	if [ -n "$$modfile" ]; then \
	  echo "LoadModule $$modname $$modfile" > "$(buildroot)/etc/apache2/mods-available/alt-php74.load"; \
	  { \
	    echo "<IfModule php7_module>"; \
	    echo "    PHPIniDir /opt/alt/php74/etc"; \
	    echo "    AddType application/x-httpd-php .php"; \
	    echo "    AddType application/x-httpd-php-source .phps"; \
	    echo "    DirectoryIndex index.php"; \
	    echo "</IfModule>"; \
	    echo "<IfModule php_module>"; \
	    echo "    PHPIniDir /opt/alt/php74/etc"; \
	    echo "    AddType application/x-httpd-php .php"; \
	    echo "    AddType application/x-httpd-php-source .phps"; \
	    echo "    DirectoryIndex index.php"; \
	    echo "</IfModule>"; \
	  } > "$(buildroot)/etc/apache2/mods-available/alt-php74.conf"; \
	fi
	# Clean fake bin
	rm -rf $(CURDIR)/debian/fakebin
	# --- end of apache2handler ---
	install -m 644 $(CURDIR)/debian/src/php.ini $(buildroot)/opt/alt/php74$(_sysconfigdir)/
	cd $(buildroot)/opt/alt/php74$(_libdir)/php/modules && \
	  mv mysqli.so nd_mysqli.so && \
	  mv pdo_mysql.so nd_pdo_mysql.so
	install -m 755 -d $(buildroot)/var/www/icons
	# Fix path for sed
	sed 's@[/a-z]*sed@sed@' -i $(buildroot)/opt/alt/php74/usr/bin/phpize
	# For third-party packaging:
	install -m 755 -d $(buildroot)/opt/alt/php74$(_libdir)/php/pear \
	                  $(buildroot)/opt/alt/php74$(_datadir)/php
	install -m 755 -d $(buildroot)/opt/alt/php74$(_sysconfigdir)/php.d.all
	install -m 755 -d $(buildroot)/opt/alt/php74/var/lib/php
	install -m 700 -d $(buildroot)/opt/alt/php74/var/lib/php/session
	install -m 755 -d $(buildroot)/opt/alt/php74/link
	install -m 755 -d $(buildroot)/opt/alt/php74$(_sysconfigdir)/php.d
	install -m 644 $(CURDIR)/debian/src/default.ini $(buildroot)/opt/alt/php74$(_sysconfigdir)/php.d
	# Plesk handlers (direct installation)
	install -m 755 -d $(buildroot)/etc/psa/php_versions.d
	install -m 644 $(CURDIR)/debian/src/alt-phpXX-cgi.conf $(buildroot)/etc/psa/php_versions.d/alt-php74-cgi.conf
	install -m 644 $(CURDIR)/debian/src/alt-phpXX-fastcgi.conf $(buildroot)/etc/psa/php_versions.d/alt-php74-fastcgi.conf
	install -m 644 $(CURDIR)/debian/src/alt-phpXX-fpm.conf $(buildroot)/etc/psa/php_versions.d/alt-php74-fpm.conf
	install -m 755 -d $(buildroot)/opt/alt/php74$(_sysconfigdir)/php-fpm.d
	install -m 644 $(CURDIR)/debian/src/php-fpm.conf $(buildroot)/opt/alt/php74$(_sysconfigdir)/
	install -m 755 -d $(buildroot)$(_prefix)/lib/systemd/system
	install -m 644  $(CURDIR)/debian/src/alt-phpXX-fpm.service $(buildroot)$(_prefix)/lib/systemd/system/alt-php74-fpm.service
	install -m 755 -d $(buildroot)$(_sysconfigdir)/logrotate.d
	install -m 644 $(CURDIR)/debian/src/php-fpm.logrotate $(buildroot)$(_sysconfigdir)/logrotate.d/alt-php74-fpm.logrotate
	cd $(buildroot)/opt/alt/php74$(_bindir) && ln -sfn phar.phar phar

	install -d $(buildroot)/opt/cpanel/alt-php74/root/etc/php-fpm.d
	install -d -m 755 $(buildroot)/opt/cpanel/alt-php74/root/usr/var/run/php-fpm

	# Generate files lists and stub .ini files for each subpackage
	@set -e; \
	for mod in $(mods); do \
	  if test ! -e $(buildroot)/opt/alt/php74$(_libdir)/php/modules/$${mod}.so ; then \
	  continue; \
	  fi; \
	  if test $${mod} = xsl || test $${mod} = xmlreader ; then \
	    echo -e "; Enable $${mod} extension module \
	      \nextension=dom.so \
	      \nextension=$${mod}.so" > $(buildroot)/opt/alt/php74$(_sysconfigdir)/php.d.all/$${mod}.ini; \
	  elif test  $${mod} = pdo_pgsql || test $${mod} = pdo_odbc || test $${mod} = pdo_sqlite || test $${mod} = pdo_dblib || test $${mod} = pdo_firebird ; then \
	    echo -e "; Enable $${mod} extension module \
		  \nextension=pdo.so \
		  \nextension=$${mod}.so " > $(buildroot)/opt/alt/php74$(_sysconfigdir)/php.d.all/$${mod}.ini; \
	  elif test $${mod} = opcache ; then \
	    echo -e "; Enable $${mod} extension module \
	      \nzend_extension=/opt/alt/php74$(_libdir)/php/modules/opcache.so" > $(buildroot)/opt/alt/php74$(_sysconfigdir)/php.d.all/$${mod}.ini; \
	  elif test $${mod} = nd_mysqli ; then \
	    echo -e "; Enable $${mod} extension module \
	    \nextension=mysqlnd.so \
	    \nextension=$${mod}.so" > $(buildroot)/opt/alt/php74$(_sysconfigdir)/php.d.all/$${mod}.ini; \
	  elif test $${mod} = nd_pdo_mysql ; then \
	    echo -e "; Enable $${mod} extension module \
	    \nextension=pdo.so \
	    \nextension=mysqlnd.so \
	    \nextension=$${mod}.so" > $(buildroot)/opt/alt/php74$(_sysconfigdir)/php.d.all/$${mod}.ini; \
	  else \
	    echo -e "; Enable $${mod} extension module \
	    \nextension=$${mod}.so" > $(buildroot)/opt/alt/php74$(_sysconfigdir)/php.d.all/$${mod}.ini; \
	  fi; \
	done
	rm $(buildroot)/opt/alt/php74$(_libdir)/php/modules/*.a
	# SCL
	install -d $(buildroot)/etc/scl/prefixes
	install -d $(buildroot)$(scl_dir)
	echo '/opt/cloudlinux' >> $(buildroot)/etc/scl/prefixes/alt-php74
	echo 'export PATH=$(scl_dir)/root/usr/bin:$(scl_dir)/root/usr/sbin$${PATH:+:$${PATH}}' >> $(buildroot)$(scl_dir)/enable
	echo 'export MANPATH=$(scl_dir)/root/usr/share/man:$${MANPATH}' >> $(buildroot)$(scl_dir)/enable
	ln -sf /opt/alt/php74 $(buildroot)$(scl_dir)/root
	# fix order of system rpath dir in RPATH env
	for i in $$(find $(buildroot) -type f -name "*.so") $$(ls -1 $(buildroot)$(_bindir)/* $(buildroot)$(_sbindir)/*); do \
	    $\(chrpath -l $${i} | grep -oP '(?<=RUNPATH=).*' | grep -P "(^|:)/usr/lib/$(DEB_HOST_MULTIARCH)[/]?:") > /dev/null; \
	    if [ $$? -eq 0 ]; then \
	        rpath_str=$$(chrpath -l $${i} | grep -oP '(?<=RUNPATH=).*' | grep -P "(^|:)/usr/lib/$(DEB_HOST_MULTIARCH)[/]?:"); \
	        new_rpath_str=$$(echo $${rpath_str} | sed -e "s@\(^\|:\)/usr/lib/$(DEB_HOST_MULTIARCH)[/]\?:@:@g;s@^:@@"); \
	        new_rpath_str="$${new_rpath_str}:/usr/lib/$(DEB_HOST_MULTIARCH)"; \
	        echo $${new_rpath_str}; \
	        chrpath --replace $${new_rpath_str} $${i}; \
	    fi; \
	done

	# we're bundling our own config so we don't need .default
	rm $(buildroot)/opt/alt/php74$(_sysconfigdir)/php-fpm.conf.default

	dh_installdirs -palt-php74-common -A \
		./opt/alt/php74$(_sysconfigdir)/php.d \
		./opt/alt/php74$(_libdir)/php \
		./opt/alt/php74$(_libdir)/php/modules \
		./opt/alt/php74$(_datadir)/php \
		./opt/alt/php74$(_libdir)/php/pear \
		./opt/alt/php74$(_localstatedir)/lib/php \
		./opt/alt/php74$(_sysconfigdir)/php.d.all \
		./opt/alt/php74/var/lib/php/session \
		./opt/alt/php74$(_libdir)/httpd/modules \
		./etc/apache2/mods-available

	dh_link -palt-php74-common \
		./opt/alt/php74$(_sysconfigdir)/php.d ./opt/alt/php74/link/conf

	dh_movefiles -palt-php74-common \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/fileinfo.ini \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/json.ini \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/phar.ini \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/sockets.ini \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/zip.ini \
		./opt/alt/php74$(_sysconfigdir)/php.d/default.ini \
		./opt/alt/php74$(_sysconfigdir)/php.ini \
		./opt/alt/php74$(_libdir)/php/modules/fileinfo.so \
		./opt/alt/php74$(_libdir)/php/modules/json.so \
		./opt/alt/php74$(_libdir)/php/modules/phar.so \
		./opt/alt/php74$(_libdir)/php/modules/sockets.so \
		./opt/alt/php74$(_libdir)/php/modules/zip.so \
		./opt/alt/php74$(_libdir)/php/pear \
		./opt/alt/php74$(_datadir)/php \
		./opt/alt/php74/var/lib/php \
		./opt/alt/php74$(_libdir)/httpd/modules/libphp*.so \
		./etc/apache2/mods-available/alt-php74.load \
		./etc/apache2/mods-available/alt-php74.conf


	dh_movefiles -palt-php74 \
		./etc/scl/prefixes \
		.${scl_dir}

	dh_installdirs -palt-php74-php-fpm -A \
		./opt/cpanel/alt-php74/root/etc/php-fpm.d \
		./opt/cpanel/alt-php74/root/usr/var/run/php-fpm \
		./opt/alt/php74$(_sysconfigdir)/php-fpm.d

	dh_movefiles -palt-php74-php-fpm \
		.$(_sysconfigdir)/logrotate.d/* \
		./usr/lib/systemd/system/alt-php74-fpm.service \
		./opt/alt/php74$(_datadir)/fpm/status.html \
		./opt/alt/php74$(_sbindir)/php-fpm \
		./opt/alt/php74$(_sysconfigdir)/php-fpm.conf \
		./opt/alt/php74$(_sysconfigdir)/php-fpm.d \
		./etc/psa/php_versions.d/alt-php74-fpm.conf

	dh_movefiles -palt-php74-cli \
		./opt/alt/php74$(_bindir)/lsphp \
		./opt/alt/php74$(_bindir)/phar \
		./opt/alt/php74$(_bindir)/phar.phar \
		./opt/alt/php74$(_bindir)/php \
		./opt/alt/php74$(_bindir)/php-cgi \
		./opt/alt/php74$(_bindir)/phpdbg \
		./opt/alt/php74$(_mandir)/man1/* \
		./opt/alt/php74$(_mandir)/man8/* \
		./etc/psa/php_versions.d/alt-php74-cgi.conf \
		./etc/psa/php_versions.d/alt-php74-fastcgi.conf

	dh_installdirs -palt-php74-dev -A \
		./opt/alt/php74$(_includedir)/php \
		./opt/alt/php74$(_includedir)/php/ext

	dh_movefiles -palt-php74-dev \
		./opt/alt/php74$(_bindir)/php-config \
		./opt/alt/php74$(_bindir)/phpize \
		./opt/alt/php74$(_includedir)/php \
		./opt/alt/php74$(_libdir)/build \
		./opt/alt/php74$(_mandir)/man1/*

	dh_movefiles -palt-php74-bcmath \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/bcmath.ini \
		./opt/alt/php74$(_libdir)/php/modules/bcmath.so

	dh_movefiles -palt-php74-dba \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/dba.ini \
		./opt/alt/php74$(_libdir)/php/modules/dba.so

	dh_movefiles -palt-php74-enchant \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/enchant.ini \
		./opt/alt/php74$(_libdir)/php/modules/enchant.so

	dh_movefiles -palt-php74-firebird \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/pdo_firebird.ini \
		./opt/alt/php74$(_libdir)/php/modules/pdo_firebird.so

	dh_movefiles -palt-php74-gd \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/gd.ini \
		./opt/alt/php74$(_libdir)/php/modules/gd.so

	dh_movefiles -palt-php74-imap \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/imap.ini \
		./opt/alt/php74$(_libdir)/php/modules/imap.so

	dh_movefiles -palt-php74-intl \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/intl.ini \
		./opt/alt/php74$(_libdir)/php/modules/intl.so

	dh_movefiles -palt-php74-ldap \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/ldap.ini \
		./opt/alt/php74$(_libdir)/php/modules/ldap.so

	dh_movefiles -palt-php74-mbstring \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/mbstring.ini \
		./opt/alt/php74$(_libdir)/php/modules/mbstring.so

	dh_movefiles -palt-php74-mysqlnd \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/mysqlnd.ini \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/nd_mysqli.ini \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/nd_pdo_mysql.ini \
		./opt/alt/php74$(_libdir)/php/modules/mysqlnd.so \
		./opt/alt/php74$(_libdir)/php/modules/nd_mysqli.so \
		./opt/alt/php74$(_libdir)/php/modules/nd_pdo_mysql.so

	dh_movefiles -palt-php74-odbc \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/odbc.ini \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/pdo_odbc.ini \
		./opt/alt/php74$(_libdir)/php/modules/odbc.so \
		./opt/alt/php74$(_libdir)/php/modules/pdo_odbc.so

	dh_movefiles -palt-php74-opcache \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/opcache.ini \
		./opt/alt/php74$(_libdir)/php/modules/opcache.so

	dh_movefiles -palt-php74-pdo \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/pdo.ini \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/pdo_dblib.ini \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/pdo_sqlite.ini \
		./opt/alt/php74$(_libdir)/php/modules/pdo.so \
		./opt/alt/php74$(_libdir)/php/modules/pdo_dblib.so \
		./opt/alt/php74$(_libdir)/php/modules/pdo_sqlite.so

	dh_movefiles -palt-php74-pgsql \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/pdo_pgsql.ini \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/pgsql.ini \
		./opt/alt/php74$(_libdir)/php/modules/pdo_pgsql.so \
		./opt/alt/php74$(_libdir)/php/modules/pgsql.so

	dh_movefiles -palt-php74-process \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/posix.ini \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/sysvmsg.ini \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/sysvsem.ini \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/sysvshm.ini \
		./opt/alt/php74$(_libdir)/php/modules/posix.so \
		./opt/alt/php74$(_libdir)/php/modules/sysvmsg.so \
		./opt/alt/php74$(_libdir)/php/modules/sysvsem.so \
		./opt/alt/php74$(_libdir)/php/modules/sysvshm.so

	dh_movefiles -palt-php74-pspell \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/pspell.ini \
		./opt/alt/php74$(_libdir)/php/modules/pspell.so

	dh_movefiles -palt-php74-snmp \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/snmp.ini \
		./opt/alt/php74$(_libdir)/php/modules/snmp.so

	dh_movefiles -palt-php74-soap \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/soap.ini \
		./opt/alt/php74$(_libdir)/php/modules/soap.so

	dh_movefiles -palt-php74-sodium \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/sodium.ini \
		./opt/alt/php74$(_libdir)/php/modules/sodium.so

	dh_movefiles -palt-php74-tidy \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/tidy.ini \
		./opt/alt/php74$(_libdir)/php/modules/tidy.so

	dh_movefiles -palt-php74-xml \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/dom.ini \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/xmlreader.ini \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/xmlwriter.ini \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/xsl.ini \
		./opt/alt/php74$(_libdir)/php/modules/dom.so \
		./opt/alt/php74$(_libdir)/php/modules/xmlreader.so \
		./opt/alt/php74$(_libdir)/php/modules/xmlwriter.so \
		./opt/alt/php74$(_libdir)/php/modules/xsl.so

	dh_movefiles -palt-php74-xmlrpc \
		./opt/alt/php74$(_sysconfigdir)/php.d.all/xmlrpc.ini \
		./opt/alt/php74$(_libdir)/php/modules/xmlrpc.so

override_dh_missing:
	dh_missing --fail-missing

override_dh_clean:

.PHONY: prep_build mod mods
