php: fix install error for libphp*.so

Changed in V4:
	Add the tag: meta-oe

1. Different version php have different libphp*.so, so we need to install its
   corresponding libphp*.so, for example:

    php-7.1.0  libphp7.so
    php-5.6.26 libphp5.so

2. Fix php-5.6.26 compiling errors:

    ld: TSRM/.libs/TSRM.o: undefined reference to symbol
    'pthread_sigmask@@GLIBC_2.2.5'
    error adding symbols: DSO missing from command line

3. Create a configure script like 70_mod_php5, we name it 70_mod_php7, this
   file connect the php7 and the apache2, so they work together to let the
   LAMP works correctly.

Signed-off-by: Dengke Du <dengke.du@windriver.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
This commit is contained in:
dengke.du@windriver.com 2017-05-09 03:54:33 -04:00 committed by Armin Kuster
parent cbe22e7f11
commit b316598c93
5 changed files with 60 additions and 10 deletions

View File

@ -0,0 +1,38 @@
From ed0a954983d50267c2fc0bc13aba929ea0cad971 Mon Sep 17 00:00:00 2001
From: Dengke Du <dengke.du@windriver.com>
Date: Tue, 2 May 2017 06:34:40 +0000
Subject: [PATCH] Add -lpthread to link
When building the php-5.6.26, the following errors occured:
ld: TSRM/.libs/TSRM.o: undefined reference to symbol
'pthread_sigmask@@GLIBC_2.2.5'
error adding symbols: DSO missing from command line
This is because no pthread to link, so we should add it.
Upstream-Status: Pending
Signed-off-by: Dengke Du <dengke.du@windriver.com>
---
configure.in | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/configure.in b/configure.in
index a467dff1..9afef652 100644
--- a/configure.in
+++ b/configure.in
@@ -1058,7 +1058,8 @@ case $php_sapi_module in
;;
esac
-EXTRA_LIBS="$EXTRA_LIBS $DLIBS $LIBS"
+PTHREAD_LIBS="-lpthread"
+EXTRA_LIBS="$EXTRA_LIBS $DLIBS $LIBS $PTHREAD_LIBS"
dnl this has to be here to prevent the openssl crypt() from
dnl overriding the system provided crypt().
--
2.11.0

View File

@ -9,6 +9,8 @@ DEPENDS = "zlib bzip2 libxml2 virtual/libiconv php-native lemon-native \
openssl libmcrypt"
DEPENDS_class-native = "zlib-native libxml2-native"
PHP_MAJOR_VERSION = "${@d.getVar('PV', True).split('.')[0]}"
SRC_URI = "http://php.net/distributions/php-${PV}.tar.bz2 \
file://acinclude-xml2-config.patch \
file://0001-php-don-t-use-broken-wrapper-for-mkdir.patch \
@ -24,7 +26,7 @@ SRC_URI_append_class-target = " \
file://php-fpm.conf \
file://php-fpm-apache.conf \
file://configure.patch \
file://70_mod_php5.conf \
file://70_mod_php${PHP_MAJOR_VERSION}.conf \
file://php-fpm.service \
"
S = "${WORKDIR}/php-${PV}"
@ -36,7 +38,7 @@ inherit autotools pkgconfig pythonnative gettext
SSTATE_SCAN_FILES += "phpize"
SSTATE_SCAN_FILES += "build-defs.h"
PHP_LIBDIR = "${libdir}/php5"
PHP_LIBDIR = "${libdir}/php${PHP_MAJOR_VERSION}"
# Common EXTRA_OECONF
COMMON_EXTRA_OECONF = "--enable-sockets \
@ -57,7 +59,7 @@ EXTRA_OECONF = "--enable-mbstring \
--with-iconv=${STAGING_LIBDIR}/.. \
--with-mcrypt=${STAGING_DIR_TARGET}${exec_prefix} \
--with-bz2=${STAGING_DIR_TARGET}${exec_prefix} \
--with-config-file-path=${sysconfdir}/php/apache2-php5 \
--with-config-file-path=${sysconfdir}/php/apache2-php${PHP_MAJOR_VERSION} \
${@base_conditional('SITEINFO_ENDIANNESS', 'le', 'ac_cv_c_bigendian_php=no', 'ac_cv_c_bigendian_php=yes', d)} \
${@bb.utils.contains('PACKAGECONFIG', 'pam', '', 'ac_cv_lib_pam_pam_start=no', d)} \
${COMMON_EXTRA_OECONF} \
@ -175,13 +177,13 @@ do_install_append_class-target() {
if ${@bb.utils.contains('PACKAGECONFIG', 'apache2', 'true', 'false', d)}; then
install -d ${D}${libdir}/apache2/modules
install -d ${D}${sysconfdir}/apache2/modules.d
install -d ${D}${sysconfdir}/php/apache2-php5
install -m 755 libs/libphp5.so ${D}${libdir}/apache2/modules
install -m 644 ${WORKDIR}/70_mod_php5.conf ${D}${sysconfdir}/apache2/modules.d
sed -i s,lib/,${libdir}/, ${D}${sysconfdir}/apache2/modules.d/70_mod_php5.conf
install -d ${D}${sysconfdir}/php/apache2-php${PHP_MAJOR_VERSION}
install -m 755 libs/libphp${PHP_MAJOR_VERSION}.so ${D}${libdir}/apache2/modules
install -m 644 ${WORKDIR}/70_mod_php${PHP_MAJOR_VERSION}.conf ${D}${sysconfdir}/apache2/modules.d
sed -i s,lib/,${libdir}/, ${D}${sysconfdir}/apache2/modules.d/70_mod_php${PHP_MAJOR_VERSION}.conf
cat ${S}/php.ini-production | \
sed -e 's,extension_dir = \"\./\",extension_dir = \"/usr/lib/extensions\",' \
> ${D}${sysconfdir}/php/apache2-php5/php.ini
> ${D}${sysconfdir}/php/apache2-php${PHP_MAJOR_VERSION}/php.ini
rm -f ${D}${sysconfdir}/apache2/httpd.conf*
fi
}

View File

@ -0,0 +1,9 @@
LoadModule php7_module lib/apache2/modules/libphp7.so
<FilesMatch "\.ph(p[2-7]?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>

View File

@ -4,6 +4,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=b602636d46a61c0ac0432bbf5c078fe4"
SRC_URI += "file://change-AC_TRY_RUN-to-AC_TRY_LINK.patch \
file://pthread-check-threads-m4.patch \
file://0001-Add-lpthread-to-link.patch \
"
SRC_URI[md5sum] = "cb424b705cfb715fc04f499f8a8cf52e"
SRC_URI[sha256sum] = "d47aab8083a4284b905777e1b45dd7735adc53be827b29f896684750ac8b6236"

View File

@ -29,5 +29,5 @@ do_install() {
oe_runmake install INSTALL_ROOT=${D}
}
FILES_${PN} += "${libdir}/php5/extensions/*/*.so"
FILES_${PN}-dbg += "${libdir}/php5/extensions/*/.debug"
FILES_${PN} += "${libdir}/php*/extensions/*/*.so"
FILES_${PN}-dbg += "${libdir}/php*/extensions/*/.debug"