On Mon, Apr 20, 2020 at 2:59 AM Changqing Li <changqing...@windriver.com> wrote:
>
> From: Changqing Li <changqing...@windriver.com>
>
> * Add php 7.4, and also keep 7.3 existed.


why do we need to keep 7.3 ?

> refer:
> https://www.php.net/migration74
> https://www.php.net/supported-versions.php
>
> * note: for 7.4, pear is disabled by default,
> and it will be deprecated in future.
>
> Signed-off-by: Changqing Li <changqing...@windriver.com>
> ---
>  ...nfigure.ac-don-t-include-build-libtool.m4.patch |  30 +++
>  .../0001-php.m4-don-t-unset-cache-variables.patch  |  39 +++
>  ...7.4-0001-opcache-config.m4-enable-opcache.patch | 230 +++++++++++++++++
>  ...01-php-don-t-use-broken-wrapper-for-mkdir.patch |  29 +++
>  .../recipes-devtools/php/php/php7.4-iconv.patch    |  41 ++++
>  .../php/php/php7.4-imap-fix-autofoo.patch          |  41 ++++
>  .../php/php/php7.4-phar-makefile.patch             |  46 ++++
>  .../php/php/php7.4-php_exec_native.patch           |  26 ++
>  meta-oe/recipes-devtools/php/php_7.4.4.bb          | 272 
> +++++++++++++++++++++
>  9 files changed, 754 insertions(+)
>  create mode 100644 
> meta-oe/recipes-devtools/php/php/0001-configure.ac-don-t-include-build-libtool.m4.patch
>  create mode 100644 
> meta-oe/recipes-devtools/php/php/0001-php.m4-don-t-unset-cache-variables.patch
>  create mode 100644 
> meta-oe/recipes-devtools/php/php/php7.4-0001-opcache-config.m4-enable-opcache.patch
>  create mode 100644 
> meta-oe/recipes-devtools/php/php/php7.4-0001-php-don-t-use-broken-wrapper-for-mkdir.patch
>  create mode 100644 meta-oe/recipes-devtools/php/php/php7.4-iconv.patch
>  create mode 100644 
> meta-oe/recipes-devtools/php/php/php7.4-imap-fix-autofoo.patch
>  create mode 100644 
> meta-oe/recipes-devtools/php/php/php7.4-phar-makefile.patch
>  create mode 100644 
> meta-oe/recipes-devtools/php/php/php7.4-php_exec_native.patch
>  create mode 100644 meta-oe/recipes-devtools/php/php_7.4.4.bb
>
> diff --git 
> a/meta-oe/recipes-devtools/php/php/0001-configure.ac-don-t-include-build-libtool.m4.patch
>  
> b/meta-oe/recipes-devtools/php/php/0001-configure.ac-don-t-include-build-libtool.m4.patch
> new file mode 100644
> index 0000000..2861366
> --- /dev/null
> +++ 
> b/meta-oe/recipes-devtools/php/php/0001-configure.ac-don-t-include-build-libtool.m4.patch
> @@ -0,0 +1,30 @@
> +From f5a34e771532b8433f307b679500c26af328ba35 Mon Sep 17 00:00:00 2001
> +From: Changqing Li <changqing...@windriver.com>
> +Date: Fri, 17 Apr 2020 15:01:57 +0800
> +Subject: [PATCH] configure.ac: don't include build/libtool.m4
> +
> +we delete build/libtool.m4 before do_configure,
> +we will use libtool.m4 under ACLOCALDIR
> +
> +Upstream-Status: Inappropriate [oe-specific]
> +
> +Signed-off-by: Changqing Li <changqing...@windriver.com>
> +---
> + configure.ac | 1 -
> + 1 file changed, 1 deletion(-)
> +
> +diff --git a/configure.ac b/configure.ac
> +index 06c6a27..f85144e 100644
> +--- a/configure.ac
> ++++ b/configure.ac
> +@@ -6,7 +6,6 @@ dnl 
> ----------------------------------------------------------------------------
> + m4_include([build/ax_check_compile_flag.m4])
> + m4_include([build/ax_func_which_gethostbyname_r.m4])
> + m4_include([build/ax_gcc_func_attribute.m4])
> +-m4_include([build/libtool.m4])
> + m4_include([build/php_cxx_compile_stdcxx.m4])
> + m4_include([build/php.m4])
> + m4_include([build/pkg.m4])
> +--
> +2.7.4
> +
> diff --git 
> a/meta-oe/recipes-devtools/php/php/0001-php.m4-don-t-unset-cache-variables.patch
>  
> b/meta-oe/recipes-devtools/php/php/0001-php.m4-don-t-unset-cache-variables.patch
> new file mode 100644
> index 0000000..0d721ec
> --- /dev/null
> +++ 
> b/meta-oe/recipes-devtools/php/php/0001-php.m4-don-t-unset-cache-variables.patch
> @@ -0,0 +1,39 @@
> +php.m4: don't unset cache variables
> +
> +Unsetting prevents cache variable from being passed to configure.
> +
> +Upstream-Status: Inappropriate [OE-specific]
> +
> +Signed-off-by: Anuj Mittal <anuj.mit...@intel.com>
> +
> +update this patch to 7.4.4, acinclude.m4 move to build/php.m4
> +Signed-off-by: Changqing Li <changqing...@windriver.com>
> +---
> + build/php.m4 | 4 ----
> + 1 file changed, 4 deletions(-)
> +
> +diff --git a/build/php.m4 b/build/php.m4
> +index 5c45d13..218ec47 100644
> +--- a/build/php.m4
> ++++ b/build/php.m4
> +@@ -1587,8 +1587,6 @@ dnl PHP_CHECK_FUNC_LIB
> + dnl
> + AC_DEFUN([PHP_CHECK_FUNC_LIB],[
> +   ifelse($2,,:,[
> +-  unset ac_cv_lib_$2[]_$1
> +-  unset ac_cv_lib_$2[]___$1
> +   unset found
> +   AC_CHECK_LIB($2, $1, [found=yes], [
> +     AC_CHECK_LIB($2, __$1, [found=yes], [found=no])
> +@@ -1620,8 +1618,6 @@ dnl and as a fall back in the specified library. 
> Defines HAVE_func and
> + dnl HAVE_library if found and adds the library to LIBS.
> + dnl
> + AC_DEFUN([PHP_CHECK_FUNC],[
> +-  unset ac_cv_func_$1
> +-  unset ac_cv_func___$1
> +   unset found
> +
> +   AC_CHECK_FUNC($1, [found=yes],[ 
> AC_CHECK_FUNC(__$1,[found=yes],[found=no]) ])
> +--
> +2.7.4
> +
> diff --git 
> a/meta-oe/recipes-devtools/php/php/php7.4-0001-opcache-config.m4-enable-opcache.patch
>  
> b/meta-oe/recipes-devtools/php/php/php7.4-0001-opcache-config.m4-enable-opcache.patch
> new file mode 100644
> index 0000000..ee0d5ed
> --- /dev/null
> +++ 
> b/meta-oe/recipes-devtools/php/php/php7.4-0001-opcache-config.m4-enable-opcache.patch
> @@ -0,0 +1,230 @@
> +opcache/config.m4: enable opcache
> +
> +We can't use AC_TRY_RUN to run programs in a cross compile environment.
> +Set
> +the variables directly instead since we know that we'd be running on
> +latest
> +enough linux kernel.
> +
> +Upstream-Status: Inappropriate [Configuration]
> +
> +Signed-off-by: Anuj Mittal <anuj.mit...@intel.com>
> +
> +update patch to version 7.4.4
> +Signed-off-by: Changqing Li <changqing...@windriver.com>
> +---
> + ext/opcache/config.m4 | 194 
> +-------------------------------------------------
> + 1 file changed, 3 insertions(+), 191 deletions(-)
> +
> +diff --git a/ext/opcache/config.m4 b/ext/opcache/config.m4
> +index 6c40caf..84ddf1e 100644
> +--- a/ext/opcache/config.m4
> ++++ b/ext/opcache/config.m4
> +@@ -23,201 +23,13 @@ if test "$PHP_OPCACHE" != "no"; then
> +   AC_CHECK_FUNCS([mprotect])
> +
> +   AC_MSG_CHECKING(for sysvipc shared memory support)
> +-  AC_RUN_IFELSE([AC_LANG_SOURCE([[
> +-#include <sys/types.h>
> +-#include <sys/wait.h>
> +-#include <sys/ipc.h>
> +-#include <sys/shm.h>
> +-#include <unistd.h>
> +-#include <string.h>
> +-
> +-int main() {
> +-  pid_t pid;
> +-  int status;
> +-  int ipc_id;
> +-  char *shm;
> +-  struct shmid_ds shmbuf;
> +-
> +-  ipc_id = shmget(IPC_PRIVATE, 4096, (IPC_CREAT | SHM_R | SHM_W));
> +-  if (ipc_id == -1) {
> +-    return 1;
> +-  }
> +-
> +-  shm = shmat(ipc_id, NULL, 0);
> +-  if (shm == (void *)-1) {
> +-    shmctl(ipc_id, IPC_RMID, NULL);
> +-    return 2;
> +-  }
> +-
> +-  if (shmctl(ipc_id, IPC_STAT, &shmbuf) != 0) {
> +-    shmdt(shm);
> +-    shmctl(ipc_id, IPC_RMID, NULL);
> +-    return 3;
> +-  }
> +-
> +-  shmbuf.shm_perm.uid = getuid();
> +-  shmbuf.shm_perm.gid = getgid();
> +-  shmbuf.shm_perm.mode = 0600;
> +-
> +-  if (shmctl(ipc_id, IPC_SET, &shmbuf) != 0) {
> +-    shmdt(shm);
> +-    shmctl(ipc_id, IPC_RMID, NULL);
> +-    return 4;
> +-  }
> +-
> +-  shmctl(ipc_id, IPC_RMID, NULL);
> +-
> +-  strcpy(shm, "hello");
> +-
> +-  pid = fork();
> +-  if (pid < 0) {
> +-    return 5;
> +-  } else if (pid == 0) {
> +-    strcpy(shm, "bye");
> +-    return 6;
> +-  }
> +-  if (wait(&status) != pid) {
> +-    return 7;
> +-  }
> +-  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
> +-    return 8;
> +-  }
> +-  if (strcmp(shm, "bye") != 0) {
> +-    return 9;
> +-  }
> +-  return 0;
> +-}
> +-]])],[dnl
> +-    AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support])
> +-    msg=yes],[msg=no],[msg=no])
> +-  AC_MSG_RESULT([$msg])
> ++  AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support])
> +
> +   AC_MSG_CHECKING(for mmap() using MAP_ANON shared memory support)
> +-  AC_RUN_IFELSE([AC_LANG_SOURCE([[
> +-#include <sys/types.h>
> +-#include <sys/wait.h>
> +-#include <sys/mman.h>
> +-#include <unistd.h>
> +-#include <string.h>
> +-
> +-#ifndef MAP_ANON
> +-# ifdef MAP_ANONYMOUS
> +-#  define MAP_ANON MAP_ANONYMOUS
> +-# endif
> +-#endif
> +-#ifndef MAP_FAILED
> +-# define MAP_FAILED ((void*)-1)
> +-#endif
> ++  AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM 
> support])
> +
> +-int main() {
> +-  pid_t pid;
> +-  int status;
> +-  char *shm;
> +-
> +-  shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 
> 0);
> +-  if (shm == MAP_FAILED) {
> +-    return 1;
> +-  }
> +-
> +-  strcpy(shm, "hello");
> +-
> +-  pid = fork();
> +-  if (pid < 0) {
> +-    return 5;
> +-  } else if (pid == 0) {
> +-    strcpy(shm, "bye");
> +-    return 6;
> +-  }
> +-  if (wait(&status) != pid) {
> +-    return 7;
> +-  }
> +-  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
> +-    return 8;
> +-  }
> +-  if (strcmp(shm, "bye") != 0) {
> +-    return 9;
> +-  }
> +-  return 0;
> +-}
> +-]])],[dnl
> +-    AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM 
> support])
> +-    msg=yes],[msg=no],[msg=no])
> +-  AC_MSG_RESULT([$msg])
> +-
> +-  PHP_CHECK_FUNC_LIB(shm_open, rt)
> +   AC_MSG_CHECKING(for mmap() using shm_open() shared memory support)
> +-  AC_RUN_IFELSE([AC_LANG_SOURCE([[
> +-#include <sys/types.h>
> +-#include <sys/wait.h>
> +-#include <sys/mman.h>
> +-#include <sys/stat.h>
> +-#include <fcntl.h>
> +-#include <unistd.h>
> +-#include <string.h>
> +-#include <stdlib.h>
> +-#include <stdio.h>
> +-
> +-#ifndef MAP_FAILED
> +-# define MAP_FAILED ((void*)-1)
> +-#endif
> +-
> +-int main() {
> +-  pid_t pid;
> +-  int status;
> +-  int fd;
> +-  char *shm;
> +-  char tmpname[4096];
> +-
> +-  sprintf(tmpname,"/opcache.test.shm.%dXXXXXX", getpid());
> +-  if (mktemp(tmpname) == NULL) {
> +-    return 1;
> +-  }
> +-  fd = shm_open(tmpname, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
> +-  if (fd == -1) {
> +-    return 2;
> +-  }
> +-  if (ftruncate(fd, 4096) < 0) {
> +-    close(fd);
> +-    shm_unlink(tmpname);
> +-    return 3;
> +-  }
> +-
> +-  shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
> +-  if (shm == MAP_FAILED) {
> +-    return 4;
> +-  }
> +-  shm_unlink(tmpname);
> +-  close(fd);
> +-
> +-  strcpy(shm, "hello");
> +-
> +-  pid = fork();
> +-  if (pid < 0) {
> +-    return 5;
> +-  } else if (pid == 0) {
> +-    strcpy(shm, "bye");
> +-    return 6;
> +-  }
> +-  if (wait(&status) != pid) {
> +-    return 7;
> +-  }
> +-  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
> +-    return 8;
> +-  }
> +-  if (strcmp(shm, "bye") != 0) {
> +-    return 9;
> +-  }
> +-  return 0;
> +-}
> +-]])],[dnl
> +-    AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM 
> support])
> +-    AC_MSG_RESULT([yes])
> +-    PHP_CHECK_LIBRARY(rt, shm_unlink, 
> [PHP_ADD_LIBRARY(rt,1,OPCACHE_SHARED_LIBADD)])
> +-  ],[
> +-    AC_MSG_RESULT([no])
> +-  ],[
> +-    AC_MSG_RESULT([no])
> +-  ])
> ++  AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM 
> support])
> +
> +   PHP_NEW_EXTENSION(opcache,
> +       ZendAccelerator.c \
> +--
> +2.7.4
> +
> diff --git 
> a/meta-oe/recipes-devtools/php/php/php7.4-0001-php-don-t-use-broken-wrapper-for-mkdir.patch
>  
> b/meta-oe/recipes-devtools/php/php/php7.4-0001-php-don-t-use-broken-wrapper-for-mkdir.patch
> new file mode 100644
> index 0000000..d687373
> --- /dev/null
> +++ 
> b/meta-oe/recipes-devtools/php/php/php7.4-0001-php-don-t-use-broken-wrapper-for-mkdir.patch
> @@ -0,0 +1,29 @@
> +From ebc101e0728b9db6c687cff525e5dfc8eb0edbf3 Mon Sep 17 00:00:00 2001
> +From: Koen Kooi <k...@dominion.thruhere.net>
> +Date: Thu, 3 Nov 2011 14:27:15 +0100
> +Subject: [PATCH 2/8] php: don't use broken wrapper for mkdir
> +
> +Signed-off-by: Koen Kooi <k...@dominion.thruhere.net>
> +
> +update patch to version 7.4.4
> +Signed-off-by: Changqing Li <changqing...@windriver.com>
> +---
> +
> +Upstream-Status: Inappropriate
> +
> + build/Makefile.global | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/build/Makefile.global b/build/Makefile.global
> +index ff858c2..ae554b4 100644
> +--- a/build/Makefile.global
> ++++ b/build/Makefile.global
> +@@ -1,4 +1,4 @@
> +-mkinstalldirs = $(top_srcdir)/build/shtool mkdir -p
> ++mkinstalldirs = mkdir -p
> + INSTALL = $(top_srcdir)/build/shtool install -c
> + INSTALL_DATA = $(INSTALL) -m 644
> +
> +--
> +1.9.3
> +
> diff --git a/meta-oe/recipes-devtools/php/php/php7.4-iconv.patch 
> b/meta-oe/recipes-devtools/php/php/php7.4-iconv.patch
> new file mode 100644
> index 0000000..9ec8a89
> --- /dev/null
> +++ b/meta-oe/recipes-devtools/php/php/php7.4-iconv.patch
> @@ -0,0 +1,41 @@
> +Subject: [PATCH] From 17cc5645f3acf943a5a06465d09d0ebcfea987bd Mon Sep 17
> + 00:00:00 2001 From: Koen Kooi <k...@dominion.thruhere.net> Date: Wed, 2 Nov
> + 2011 16:54:57 +0100 Subject: [PATCH] Upstream-Status: Pending
> +
> +update patch to version 7.4.4
> +Signed-off-by: Changqing Li <changqing...@windriver.com>
> +---
> + build/php.m4        | 3 ++-
> + ext/iconv/config.m4 | 2 +-
> + 2 files changed, 3 insertions(+), 2 deletions(-)
> +
> +diff --git a/build/php.m4 b/build/php.m4
> +index 7392876..5c45d13 100644
> +--- a/build/php.m4
> ++++ b/build/php.m4
> +@@ -1950,7 +1950,8 @@ AC_DEFUN([PHP_SETUP_ICONV], [
> +   echo > ext/iconv/php_iconv_supports_errno.h
> +
> +   dnl Check libc first if no path is provided in --with-iconv.
> +-  if test "$PHP_ICONV" = "yes"; then
> ++  dnl must check against no, not against yes as PHP_ICONV can also include 
> a path, which implies yes
> ++  if test "$PHP_ICONV" != "no"; then
> +     dnl Reset LIBS temporarily as it may have already been included -liconv 
> in.
> +     LIBS_save="$LIBS"
> +     LIBS=
> +diff --git a/ext/iconv/config.m4 b/ext/iconv/config.m4
> +index fe9b47a..b6b632f 100644
> +--- a/ext/iconv/config.m4
> ++++ b/ext/iconv/config.m4
> +@@ -14,7 +14,7 @@ if test "$PHP_ICONV" != "no"; then
> +
> +   if test "$iconv_avail" != "no"; then
> +     if test -z "$ICONV_DIR"; then
> +-      for i in /usr/local /usr; do
> ++      for i in $PHP_ICONV /usr/local /usr; do
> +         if test -f "$i/include/iconv.h" || test -f "$i/include/giconv.h"; 
> then
> +           PHP_ICONV_PREFIX="$i"
> +           break
> +--
> +2.7.4
> +
> diff --git a/meta-oe/recipes-devtools/php/php/php7.4-imap-fix-autofoo.patch 
> b/meta-oe/recipes-devtools/php/php/php7.4-imap-fix-autofoo.patch
> new file mode 100644
> index 0000000..ebe5f6a
> --- /dev/null
> +++ b/meta-oe/recipes-devtools/php/php/php7.4-imap-fix-autofoo.patch
> @@ -0,0 +1,41 @@
> +Subject: [PATCH] From c084c8349d1780980e232cb28b60a109e3d89438 Mon Sep 17
> + 00:00:00 2001 From: Koen Kooi <k...@dominion.thruhere.net> Date: Wed, 2 Nov
> + 2011 16:54:57 +0100 Subject: [PATCH] Upstream-Status: Pending
> +
> +update patch to version 7.4.4
> +Signed-off-by: Changqing Li <changqing...@windriver.com>
> +---
> + ext/imap/config.m4 | 10 ++--------
> + 1 file changed, 2 insertions(+), 8 deletions(-)
> +
> +diff --git a/ext/imap/config.m4 b/ext/imap/config.m4
> +index 5086a31..0e938bd 100644
> +--- a/ext/imap/config.m4
> ++++ b/ext/imap/config.m4
> +@@ -110,7 +110,7 @@ if test "$PHP_IMAP" != "no"; then
> +     PHP_NEW_EXTENSION(imap, php_imap.c, $ext_shared,, 
> -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
> +     AC_DEFINE(HAVE_IMAP,1,[ ])
> +
> +-    for i in $PHP_IMAP /usr/local /usr; do
> ++    for i in $PHP_IMAP $PHP_IMAP/usr /usr/local /usr; do
> +       IMAP_INC_CHK()
> +       el[]IMAP_INC_CHK(/include/c-client)
> +       el[]IMAP_INC_CHK(/include/imap)
> +@@ -199,13 +199,7 @@ if test "$PHP_IMAP" != "no"; then
> +       AC_MSG_ERROR(Cannot find rfc822.h. Please check your c-client 
> installation.)
> +     fi
> +
> +-    if test ! -r "$IMAP_DIR/c-client/libc-client.a" && test -r 
> "$IMAP_DIR/c-client/c-client.a" ; then
> +-      ln -s "$IMAP_DIR/c-client/c-client.a" 
> "$IMAP_DIR/c-client/libc-client.a" >/dev/null 2>&1
> +-    elif test ! -r "$IMAP_DIR/$PHP_LIBDIR/libc-client.a" && test -r 
> "$IMAP_DIR/$PHP_LIBDIR/c-client.a"; then
> +-      ln -s "$IMAP_DIR/$PHP_LIBDIR/c-client.a" 
> "$IMAP_DIR/$PHP_LIBDIR/libc-client.a" >/dev/null 2>&1
> +-    fi
> +-
> +-    for lib in c-client4 c-client imap; do
> ++    for lib in /usr/lib c-client4 c-client imap; do
> +       IMAP_LIB=$lib
> +       IMAP_LIB_CHK($PHP_LIBDIR)
> +       IMAP_LIB_CHK(c-client)
> +--
> +2.7.4
> +
> diff --git a/meta-oe/recipes-devtools/php/php/php7.4-phar-makefile.patch 
> b/meta-oe/recipes-devtools/php/php/php7.4-phar-makefile.patch
> new file mode 100644
> index 0000000..eb73bc4
> --- /dev/null
> +++ b/meta-oe/recipes-devtools/php/php/php7.4-phar-makefile.patch
> @@ -0,0 +1,46 @@
> +Subject: [PATCH] From 08962a56f69963e01892d98ca5b75de8354bd3f5 Mon Sep 17
> + 00:00:00 2001 From: Koen Kooi <k...@dominion.thruhere.net> Date: Wed, 2 Nov
> + 2011 16:54:57 +0100 Subject: [PATCH] Fix phar packaging
> +
> +Inherited from OE-Classic, with some additions to fix host paths leaking
> +into the target package.
> +
> +Upstream-Status: Inappropriate [config]
> +
> +update patch to version 7.4.4
> +Signed-off-by: Changqing Li <changqing...@windriver.com>
> +---
> + ext/phar/Makefile.frag | 17 +++--------------
> + 1 file changed, 3 insertions(+), 14 deletions(-)
> +
> +diff --git a/ext/phar/Makefile.frag b/ext/phar/Makefile.frag
> +index 6442f33..6145412 100644
> +--- a/ext/phar/Makefile.frag
> ++++ b/ext/phar/Makefile.frag
> +@@ -10,20 +10,9 @@ pharcmd: $(builddir)/phar.php $(builddir)/phar.phar
> +
> + PHP_PHARCMD_SETTINGS = -n -d 'open_basedir=' -d 'output_buffering=0' -d 
> 'memory_limit=-1' -d phar.readonly=0
> + PHP_PHARCMD_EXECUTABLE = ` \
> +-      if test -x "$(top_builddir)/$(SAPI_CLI_PATH)"; then \
> +-              $(top_srcdir)/build/shtool echo -n -- 
> "$(top_builddir)/$(SAPI_CLI_PATH) -n"; \
> +-              if test "x$(PHP_MODULES)" != "x"; then \
> +-              $(top_srcdir)/build/shtool echo -n -- " -d 
> extension_dir=$(top_builddir)/modules"; \
> +-              for i in bz2 zlib phar; do \
> +-                      if test -f "$(top_builddir)/modules/$$i.la"; then \
> +-                              . $(top_builddir)/modules/$$i.la; 
> $(top_srcdir)/build/shtool echo -n -- " -d extension=$$dlname"; \
> +-                      fi; \
> +-              done; \
> +-              fi; \
> +-      else \
> +-              $(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; \
> +-      fi;`
> +-PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- 
> "$(INSTALL_ROOT)$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
> ++               $(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; `
> ++
> ++PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- 
> "$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
> +
> + $(builddir)/phar/phar.inc: $(srcdir)/phar/phar.inc
> +       -@test -d $(builddir)/phar || mkdir $(builddir)/phar
> +--
> +2.7.4
> +
> diff --git a/meta-oe/recipes-devtools/php/php/php7.4-php_exec_native.patch 
> b/meta-oe/recipes-devtools/php/php/php7.4-php_exec_native.patch
> new file mode 100644
> index 0000000..4aec481
> --- /dev/null
> +++ b/meta-oe/recipes-devtools/php/php/php7.4-php_exec_native.patch
> @@ -0,0 +1,26 @@
> +Subject: [PATCH] rom d251b5aa3d23803d016ca16818e2e1d2f2b70a02 Mon Sep 17
> + 00:00:00 2001 From: Koen Kooi <k...@dominion.thruhere.net> Date: Wed, 2 Nov
> + 2011 16:54:57 +0100 Subject: [PATCH] Upstream-Status: Inappriate
> +
> +update patch to version 7.4.4
> +Signed-off-by: Changqing Li <changqing...@windriver.com>
> +---
> + sapi/cli/config.m4 | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/sapi/cli/config.m4 b/sapi/cli/config.m4
> +index 917d45f..aaf1e27 100644
> +--- a/sapi/cli/config.m4
> ++++ b/sapi/cli/config.m4
> +@@ -47,7 +47,7 @@ if test "$PHP_CLI" != "no"; then
> +   esac
> +
> +   dnl Set executable for tests.
> +-  PHP_EXECUTABLE="\$(top_builddir)/\$(SAPI_CLI_PATH)"
> ++  PHP_EXECUTABLE="${PHP_NATIVE_DIR}/php"
> +   PHP_SUBST(PHP_EXECUTABLE)
> +
> +   dnl Expose to Makefile.
> +--
> +2.7.4
> +
> diff --git a/meta-oe/recipes-devtools/php/php_7.4.4.bb 
> b/meta-oe/recipes-devtools/php/php_7.4.4.bb
> new file mode 100644
> index 0000000..1f64172
> --- /dev/null
> +++ b/meta-oe/recipes-devtools/php/php_7.4.4.bb
> @@ -0,0 +1,272 @@
> +SUMMARY = "A server-side, HTML-embedded scripting language"
> +HOMEPAGE = "http://www.php.net";
> +SECTION = "console/network"
> +
> +LICENSE = "PHP-3.0"
> +LIC_FILES_CHKSUM = "file://LICENSE;md5=7e571b888d585b31f9ef5edcc647fa30"
> +
> +BBCLASSEXTEND = "native"
> +DEPENDS = "zlib bzip2 libxml2 virtual/libiconv php-native lemon-native"
> +DEPENDS_class-native = "zlib-native libxml2-native"
> +
> +PHP_MAJOR_VERSION = "${@d.getVar('PV').split('.')[0]}"
> +
> +SRC_URI = "http://php.net/distributions/php-${PV}.tar.bz2 \
> +           file://debian-php-fixheader.patch \
> +           file://0001-configure.ac-don-t-include-build-libtool.m4.patch \
> +           file://php7.4-0001-php-don-t-use-broken-wrapper-for-mkdir.patch \
> +           file://0001-php.m4-don-t-unset-cache-variables.patch \
> +          "
> +
> +SRC_URI_append_class-target = " \
> +            file://php7.4-imap-fix-autofoo.patch \
> +            file://php7.4-php_exec_native.patch \
> +            file://php-fpm.conf \
> +            file://php-fpm-apache.conf \
> +            file://70_mod_php${PHP_MAJOR_VERSION}.conf \
> +            file://php-fpm.service \
> +            file://pear-makefile.patch \
> +            file://php7.4-phar-makefile.patch \
> +            file://php7.4-0001-opcache-config.m4-enable-opcache.patch \
> +            file://xfail_two_bug_tests.patch \
> +            file://php7.4-iconv.patch \
> +          "
> +S = "${WORKDIR}/php-${PV}"
> +SRC_URI[md5sum] = "262c258a3b8b5699fcca89a64e58758c"
> +SRC_URI[sha256sum] = 
> "308e8f4182ec8a2767b0b1b8e1e7c69fb149b37cfb98ee4a37475e082fa9829f"
> +
> +inherit autotools pkgconfig python3native gettext
> +
> +# phpize is not scanned for absolute paths by default (but php-config is).
> +#
> +SSTATE_SCAN_FILES += "phpize"
> +SSTATE_SCAN_FILES += "build-defs.h"
> +
> +PHP_LIBDIR = "${libdir}/php${PHP_MAJOR_VERSION}"
> +
> +
> +# Common EXTRA_OECONF
> +COMMON_EXTRA_OECONF = "--enable-sockets \
> +                       --enable-pcntl \
> +                       --enable-shared \
> +                       --disable-rpath \
> +                       --with-pic \
> +                       --libdir=${PHP_LIBDIR} \
> +"
> +EXTRA_OECONF = "--enable-mbstring \
> +                --enable-fpm \
> +                --with-libdir=${baselib} \
> +                --with-gettext=${STAGING_LIBDIR}/.. \
> +                --with-zlib=${STAGING_LIBDIR}/.. \
> +                --with-iconv=${STAGING_LIBDIR}/.. \
> +                --with-bz2=${STAGING_DIR_TARGET}${exec_prefix} \
> +                
> --with-config-file-path=${sysconfdir}/php/apache2-php${PHP_MAJOR_VERSION} \
> +                ${@oe.utils.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} \
> +"
> +
> +EXTRA_OECONF_append_riscv64 = " --with-pcre-jit=no"
> +EXTRA_OECONF_append_riscv32 = " --with-pcre-jit=no"
> +
> +CACHED_CONFIGUREVARS += "ac_cv_func_dlopen=no ac_cv_lib_dl_dlopen=yes"
> +
> +EXTRA_OECONF_class-native = " \
> +                --with-zlib=${STAGING_LIBDIR_NATIVE}/.. \
> +                --without-iconv \
> +                ${COMMON_EXTRA_OECONF} \
> +"
> +
> +PACKAGECONFIG ??= "mysql sqlite3 imap opcache openssl \
> +                   ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 pam', d)} \
> +"
> +PACKAGECONFIG_class-native = ""
> +
> +PACKAGECONFIG[zip] = "--enable-zip 
> --with-libzip=${STAGING_EXECPREFIXDIR},,libzip"
> +
> +PACKAGECONFIG[mysql] = "--with-mysqli=mysqlnd \
> +                        --with-pdo-mysql=mysqlnd \
> +                        ,--without-mysqli --without-pdo-mysql \
> +                        ,mysql5"
> +
> +PACKAGECONFIG[sqlite3] = "--with-sqlite3=${STAGING_LIBDIR}/.. \
> +                          --with-pdo-sqlite=${STAGING_LIBDIR}/.. \
> +                          ,--without-sqlite3 --without-pdo-sqlite \
> +                          ,sqlite3"
> +PACKAGECONFIG[pgsql] = 
> "--with-pgsql=${STAGING_DIR_TARGET}${exec_prefix},--without-pgsql,postgresql"
> +PACKAGECONFIG[soap] = "--enable-libxml --enable-soap, --disable-soap, 
> libxml2"
> +PACKAGECONFIG[apache2] = 
> "--with-apxs2=${STAGING_BINDIR_CROSS}/apxs,,apache2-native apache2"
> +PACKAGECONFIG[pam] = ",,libpam"
> +PACKAGECONFIG[imap] = "--with-imap=${STAGING_DIR_HOST} \
> +                       --with-imap-ssl=${STAGING_DIR_HOST} \
> +                       ,--without-imap --without-imap-ssl \
> +                       ,uw-imap"
> +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
> +PACKAGECONFIG[opcache] = "--enable-opcache,--disable-opcache"
> +PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl"
> +PACKAGECONFIG[valgrind] = 
> "--with-valgrind=${STAGING_DIR_TARGET}/usr,--with-valgrind=no,valgrind"
> +PACKAGECONFIG[mbregex] = "--enable-mbregex, --disable-mbregex, oniguruma"
> +
> +export PHP_NATIVE_DIR = "${STAGING_BINDIR_NATIVE}"
> +export PHP_PEAR_PHP_BIN = "${STAGING_BINDIR_NATIVE}/php"
> +CFLAGS += " -D_GNU_SOURCE -g -DPTYS_ARE_GETPT -DPTYS_ARE_SEARCHED 
> -I${STAGING_INCDIR}/apache2"
> +
> +EXTRA_OEMAKE = "INSTALL_ROOT=${D}"
> +
> +acpaths = ""
> +
> +do_configure_prepend () {
> +    #rm -f ${S}/build/libtool.m4 ${S}/ltmain.sh ${S}/aclocal.m4
> +    rm -f ${S}/ltmain.sh ${S}/aclocal.m4
> +    sed -i -e 's;build/libtool.m4;${ACLOCALDIR}/libtool.m4;g' 
> ${S}/configure.ac
> +    find ${S} -name config.m4 | xargs -n1 sed -i 
> 's!APXS_HTTPD=.*!APXS_HTTPD=${STAGING_SBINDIR_NATIVE}/httpd!'
> +}
> +
> +do_configure_append() {
> +    # No, libtool, we really don't want rpath set...
> +    sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' 
> ${HOST_SYS}-libtool
> +    sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' 
> ${HOST_SYS}-libtool
> +}
> +
> +do_install_append_class-native() {
> +    rm -rf ${D}/${PHP_LIBDIR}/php/.registry
> +    rm -rf ${D}/${PHP_LIBDIR}/php/.channels
> +    rm -rf ${D}/${PHP_LIBDIR}/php/.[a-z]*
> +}
> +
> +do_install_prepend() {
> +    cat ${ACLOCALDIR}/libtool.m4 ${ACLOCALDIR}/lt~obsolete.m4 
> ${ACLOCALDIR}/ltoptions.m4 \
> +        ${ACLOCALDIR}/ltsugar.m4 ${ACLOCALDIR}/ltversion.m4 > 
> ${S}/build/libtool.m4
> +}
> +
> +do_install_prepend_class-target() {
> +    if ${@bb.utils.contains('PACKAGECONFIG', 'apache2', 'true', 'false', 
> d)}; then
> +        # Install dummy config file so apxs doesn't fail
> +        install -d ${D}${sysconfdir}/apache2
> +        printf "\nLoadModule dummy_module modules/mod_dummy.so\n" > 
> ${D}${sysconfdir}/apache2/httpd.conf
> +    fi
> +}
> +
> +# fixme
> +do_install_append_class-target() {
> +    install -d ${D}${sysconfdir}/
> +    rm -rf ${D}/${TMPDIR}
> +    rm -rf ${D}/.registry
> +    rm -rf ${D}/.channels
> +    rm -rf ${D}/.[a-z]*
> +    rm -rf ${D}/var
> +    rm -f  ${D}/${sysconfdir}/php-fpm.conf.default
> +    install -m 0644 ${WORKDIR}/php-fpm.conf ${D}/${sysconfdir}/php-fpm.conf
> +    install -d ${D}/${sysconfdir}/apache2/conf.d
> +    install -m 0644 ${WORKDIR}/php-fpm-apache.conf 
> ${D}/${sysconfdir}/apache2/conf.d/php-fpm.conf
> +    install -d ${D}${sysconfdir}/init.d
> +    sed -i 's:=/usr/sbin:=${sbindir}:g' ${B}/sapi/fpm/init.d.php-fpm
> +    sed -i 's:=/etc:=${sysconfdir}:g' ${B}/sapi/fpm/init.d.php-fpm
> +    sed -i 's:=/var:=${localstatedir}:g' ${B}/sapi/fpm/init.d.php-fpm
> +    install -m 0755 ${B}/sapi/fpm/init.d.php-fpm 
> ${D}${sysconfdir}/init.d/php-fpm
> +    install -m 0644 ${WORKDIR}/php-fpm-apache.conf 
> ${D}/${sysconfdir}/apache2/conf.d/php-fpm.conf
> +
> +    if 
> ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)};then
> +        install -d ${D}${systemd_unitdir}/system
> +        install -m 0644 ${WORKDIR}/php-fpm.service 
> ${D}${systemd_unitdir}/system/
> +        sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' \
> +            -e 's,@LOCALSTATEDIR@,${localstatedir},g' \
> +            ${D}${systemd_unitdir}/system/php-fpm.service
> +    fi
> +
> +    TMP=`dirname ${D}/${TMPDIR}`
> +    while test ${TMP} != ${D}; do
> +        if [ -d ${TMP} ]; then
> +            rmdir ${TMP}
> +        fi
> +        TMP=`dirname ${TMP}`;
> +    done
> +
> +    if ${@bb.utils.contains('PACKAGECONFIG', 'apache2', 'true', 'false', 
> d)}; then
> +        install -d ${D}${sysconfdir}/apache2/modules.d
> +        install -d ${D}${sysconfdir}/php/apache2-php${PHP_MAJOR_VERSION}
> +        install -m 644  ${WORKDIR}/70_mod_php${PHP_MAJOR_VERSION}.conf 
> ${D}${sysconfdir}/apache2/modules.d
> +        sed -i s,lib/,${libexecdir}/, 
> ${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-php${PHP_MAJOR_VERSION}/php.ini
> +        rm -f ${D}${sysconfdir}/apache2/httpd.conf*
> +    fi
> +}
> +
> +SYSROOT_PREPROCESS_FUNCS += "php_sysroot_preprocess"
> +
> +php_sysroot_preprocess () {
> +    install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
> +    install -m 755 ${D}${bindir}/phpize 
> ${SYSROOT_DESTDIR}${bindir_crossscripts}/
> +    install -m 755 ${D}${bindir}/php-config 
> ${SYSROOT_DESTDIR}${bindir_crossscripts}/
> +
> +    sed -i 's!eval echo /!eval echo ${STAGING_DIR_HOST}/!' 
> ${SYSROOT_DESTDIR}${bindir_crossscripts}/phpize
> +    sed -i 's!^include_dir=.*!include_dir=${STAGING_INCDIR}/php!' 
> ${SYSROOT_DESTDIR}${bindir_crossscripts}/php-config
> +}
> +
> +MODPHP_PACKAGE = "${@bb.utils.contains('PACKAGECONFIG', 'apache2', 
> '${PN}-modphp', '', d)}"
> +
> +PACKAGES = "${PN}-dbg ${PN}-cli ${PN}-cgi ${PN}-fpm ${PN}-fpm-apache2 
> ${PN}-pear ${PN}-phar ${MODPHP_PACKAGE} ${PN}-dev ${PN}-staticdev ${PN}-doc 
> ${PN}-opcache ${PN}"
> +
> +RDEPENDS_${PN} += "libgcc"
> +RDEPENDS_${PN}-pear = "${PN}"
> +RDEPENDS_${PN}-phar = "${PN}-cli"
> +RDEPENDS_${PN}-cli = "${PN}"
> +RDEPENDS_${PN}-modphp = "${PN} apache2"
> +RDEPENDS_${PN}-opcache = "${PN}"
> +
> +INITSCRIPT_PACKAGES = "${PN}-fpm"
> +inherit update-rc.d
> +
> +FILES_${PN}-dbg =+ "${bindir}/.debug \
> +                    ${libexecdir}/apache2/modules/.debug"
> +FILES_${PN}-doc += "${PHP_LIBDIR}/php/doc"
> +FILES_${PN}-cli = "${bindir}/php"
> +FILES_${PN}-phar = "${bindir}/phar*"
> +FILES_${PN}-cgi = "${bindir}/php-cgi"
> +FILES_${PN}-fpm = "${sbindir}/php-fpm ${sysconfdir}/php-fpm.conf 
> ${datadir}/fpm ${sysconfdir}/init.d/php-fpm 
> ${systemd_unitdir}/system/php-fpm.service 
> ${sysconfdir}/php-fpm.d/www.conf.default"
> +FILES_${PN}-fpm-apache2 = "${sysconfdir}/apache2/conf.d/php-fpm.conf"
> +CONFFILES_${PN}-fpm = "${sysconfdir}/php-fpm.conf"
> +CONFFILES_${PN}-fpm-apache2 = "${sysconfdir}/apache2/conf.d/php-fpm.conf"
> +INITSCRIPT_NAME_${PN}-fpm = "php-fpm"
> +INITSCRIPT_PARAMS_${PN}-fpm = "defaults 60"
> +FILES_${PN}-pear = "${bindir}/pear* ${bindir}/pecl ${PHP_LIBDIR}/php/PEAR \
> +                ${PHP_LIBDIR}/php/PEAR*.php ${PHP_LIBDIR}/php/System.php \
> +                ${PHP_LIBDIR}/php/peclcmd.php ${PHP_LIBDIR}/php/pearcmd.php \
> +                ${PHP_LIBDIR}/php/.channels 
> ${PHP_LIBDIR}/php/.channels/.alias \
> +                ${PHP_LIBDIR}/php/.registry 
> ${PHP_LIBDIR}/php/Archive/Tar.php \
> +                ${PHP_LIBDIR}/php/Console/Getopt.php 
> ${PHP_LIBDIR}/php/OS/Guess.php \
> +                ${PHP_LIBDIR}/php/data/PEAR \
> +                ${sysconfdir}/pear.conf"
> +FILES_${PN}-dev = "${includedir}/php ${PHP_LIBDIR}/build ${bindir}/phpize \
> +                ${bindir}/php-config ${PHP_LIBDIR}/php/.depdb \
> +                ${PHP_LIBDIR}/php/.depdblock ${PHP_LIBDIR}/php/.filemap \
> +                ${PHP_LIBDIR}/php/.lock ${PHP_LIBDIR}/php/test"
> +FILES_${PN}-staticdev += "${PHP_LIBDIR}/extensions/*/*.a"
> +FILES_${PN}-opcache = "${PHP_LIBDIR}/extensions/*/opcache${SOLIBSDEV}"
> +FILES_${PN} = "${PHP_LIBDIR}/php"
> +FILES_${PN} += "${bindir} ${libexecdir}/apache2"
> +
> +SUMMARY_${PN}-modphp = "PHP module for the Apache HTTP server"
> +FILES_${PN}-modphp = "${libdir}/apache2 ${sysconfdir}"
> +
> +MODPHP_OLDPACKAGE = "${@bb.utils.contains('PACKAGECONFIG', 'apache2', 
> 'modphp', '', d)}"
> +RPROVIDES_${PN}-modphp = "${MODPHP_OLDPACKAGE}"
> +RREPLACES_${PN}-modphp = "${MODPHP_OLDPACKAGE}"
> +RCONFLICTS_${PN}-modphp = "${MODPHP_OLDPACKAGE}"
> +
> +do_install_append_class-native() {
> +    create_wrapper ${D}${bindir}/php \
> +        PHP_PEAR_SYSCONF_DIR=${sysconfdir}/
> +}
> +
> +
> +# Fails to build with thumb-1 (qemuarm)
> +# | {standard input}: Assembler messages:
> +# | {standard input}:3719: Error: selected processor does not support Thumb 
> mode `smull r0,r2,r9,r3'
> +# | {standard input}:3720: Error: unshifted register required -- `sub 
> r2,r2,r0,asr#31'
> +# | {standard input}:3796: Error: selected processor does not support Thumb 
> mode `smull r0,r2,r3,r3'
> +# | {standard input}:3797: Error: unshifted register required -- `sub 
> r2,r2,r0,asr#31'
> +# | make: *** [ext/standard/math.lo] Error 1
> +ARM_INSTRUCTION_SET = "arm"

do we still need this ?, if needed for thumb1 perhaps we should mark
it so with _armv5t and _armv4
overrides so it can be built with thumb2 on newer arches

> --
> 2.7.4
>
> 
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#83993): 
https://lists.openembedded.org/g/openembedded-devel/message/83993
Mute This Topic: https://lists.openembedded.org/mt/73146012/21656
Group Owner: openembedded-devel+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub  
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to