diff options
author | jmbills <42755197+jmbills@users.noreply.github.com> | 2019-10-25 19:18:16 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-25 19:18:16 +0300 |
commit | 0dbb60593ebb5a62190c0e6cff7f1770493303a2 (patch) | |
tree | 0df2ce67404dbca3ddc4ee063dbfd9ae455be682 /meta-openembedded/meta-oe/recipes-devtools | |
parent | 34a3942845ac3264ce27c648ae5486d302c3e6d8 (diff) | |
parent | cc9cea46d74d280de03c713c8b555153fd811f09 (diff) | |
download | openbmc-0dbb60593ebb5a62190c0e6cff7f1770493303a2.tar.xz |
Merge branch 'intel' into intel2
Diffstat (limited to 'meta-openembedded/meta-oe/recipes-devtools')
63 files changed, 842 insertions, 2798 deletions
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/libselinux/0001-libselinux-Do-not-define-gettid-if-glibc-2.30-is-use.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/libselinux/0001-libselinux-Do-not-define-gettid-if-glibc-2.30-is-use.patch new file mode 100644 index 000000000..8524517cb --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/libselinux/0001-libselinux-Do-not-define-gettid-if-glibc-2.30-is-use.patch @@ -0,0 +1,52 @@ +From f4f9d24860e1b5cd4f6a014f3fda7cd33ebe5be7 Mon Sep 17 00:00:00 2001 +From: Petr Lautrbach <plautrba@redhat.com> +Date: Sat, 27 Jul 2019 08:20:20 -0700 +Subject: [PATCH] libselinux: Do not define gettid() if glibc >= 2.30 is used +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Since version 2.30 glibc implements gettid() system call wrapper, see +https://sourceware.org/bugzilla/show_bug.cgi?id=6399 + +Fixes: +cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I../include -D_GNU_SOURCE -DNO_ANDROID_BACKEND -c -o procattr.o procattr.c +procattr.c:28:14: error: static declaration of ‘gettid’ follows non-static declaration + 28 | static pid_t gettid(void) + | ^~~~~~ +In file included from /usr/include/unistd.h:1170, + from procattr.c:2: +/usr/include/bits/unistd_ext.h:34:16: note: previous declaration of ‘gettid’ was here + 34 | extern __pid_t gettid (void) __THROW; + | ^~~~~~ + +Signed-off-by: Petr Lautrbach <plautrba@redhat.com> +Acked-by: Stephen Smalley <sds@tycho.nsa.gov> +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/procattr.c | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +--- a/src/procattr.c ++++ b/src/procattr.c +@@ -8,7 +8,19 @@ + #include "selinux_internal.h" + #include "policy.h" + +-#ifndef __BIONIC__ ++/* Bionic and glibc >= 2.30 declare gettid() system call wrapper in unistd.h and ++ * has a definition for it */ ++#ifdef __BIONIC__ ++ #define OVERRIDE_GETTID 0 ++#elif !defined(__GLIBC_PREREQ) ++ #define OVERRIDE_GETTID 1 ++#elif !__GLIBC_PREREQ(2,29) ++ #define OVERRIDE_GETTID 1 ++#else ++ #define OVERRIDE_GETTID 0 ++#endif ++ ++#if OVERRIDE_GETTID + static pid_t gettid(void) + { + return syscall(__NR_gettid); diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb index e09cd829d..c0d08db17 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb @@ -4,7 +4,7 @@ LICENSE = "Apache-2.0 & GPL-2.0 & BSD-2-Clause & BSD-3-Clause" LIC_FILES_CHKSUM = " \ file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10 \ file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 \ - file://${COMMON_LICENSE_DIR}/BSD-2-Clause;md5=8bef8e6712b1be5aa76af1ebde9d6378 \ + file://${COMMON_LICENSE_DIR}/BSD-2-Clause;md5=cb641bc04cda31daea161b1bc15da69f \ file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9 \ " DEPENDS = "libbsd libpcre zlib libcap" @@ -41,6 +41,7 @@ SRC_URI = " \ file://extras/0001-ext4_utils-remove-selinux-extensions.patch;patchdir=system/extras \ file://extras/0002-ext4_utils-add-o-argument-to-preserve-ownership.patch;patchdir=system/extras \ file://libselinux/0001-Remove-bionic-specific-calls.patch;patchdir=external/libselinux \ + file://libselinux/0001-libselinux-Do-not-define-gettid-if-glibc-2.30-is-use.patch;patchdir=external/libselinux \ file://android-tools-adbd.service \ file://gitignore \ file://adb.mk;subdir=${BPN} \ @@ -101,7 +102,7 @@ do_compile() { powerpc|powerpc64) export android_arch=linux-ppc ;; - i586|x86_64) + i586|i686|x86_64) export android_arch=linux-x86 ;; esac diff --git a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/dont-clobber-rsp.patch b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/dont-clobber-rsp.patch index b1c37fc8e..edf903552 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/dont-clobber-rsp.patch +++ b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/dont-clobber-rsp.patch @@ -1,3 +1,8 @@ +From d1d7b616219fd47736c804ff4c2f393d7184a75b Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 23 Dec 2018 16:58:04 -0800 +Subject: [PATCH] chromium: stack pointer clobber + Do not add stack pointer to clobber list it was being ignored until gcc 9.0 became capable @@ -7,9 +12,23 @@ of flagging this silent ignoring via [1] Upstream-Status: Submitted [https://chromium-review.googlesource.com/c/linux-syscall-support/+/1390160] Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/third_party/lss/linux_syscall_support.h | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) +Index: b/src/third_party/lss/linux_syscall_support.h +=================================================================== --- a/src/third_party/lss/linux_syscall_support.h +++ b/src/third_party/lss/linux_syscall_support.h +@@ -1957,7 +1957,7 @@ struct kernel_statfs { + LSS_ENTRYPOINT \ + "pop %%ebx" \ + args \ +- : "esp", "memory"); \ ++ : "memory"); \ + LSS_RETURN(type,__res) + #undef _syscall0 + #define _syscall0(type,name) \ @@ -1966,7 +1966,7 @@ struct kernel_statfs { __asm__ volatile(LSS_ENTRYPOINT \ : "=a" (__res) \ @@ -19,6 +38,33 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> LSS_RETURN(type,__res); \ } #undef _syscall1 +@@ -2014,7 +2014,7 @@ struct kernel_statfs { + : "i" (__NR_##name), "ri" ((long)(arg1)), \ + "c" ((long)(arg2)), "d" ((long)(arg3)), \ + "S" ((long)(arg4)), "D" ((long)(arg5)) \ +- : "esp", "memory"); \ ++ : "memory"); \ + LSS_RETURN(type,__res); \ + } + #undef _syscall6 +@@ -2036,7 +2036,7 @@ struct kernel_statfs { + : "i" (__NR_##name), "0" ((long)(&__s)), \ + "c" ((long)(arg2)), "d" ((long)(arg3)), \ + "S" ((long)(arg4)), "D" ((long)(arg5)) \ +- : "esp", "memory"); \ ++ : "memory"); \ + LSS_RETURN(type,__res); \ + } + LSS_INLINE int LSS_NAME(clone)(int (*fn)(void *), void *child_stack, +@@ -2122,7 +2122,7 @@ struct kernel_statfs { + : "0"(-EINVAL), "i"(__NR_clone), + "m"(fn), "m"(child_stack), "m"(flags), "m"(arg), + "m"(parent_tidptr), "m"(newtls), "m"(child_tidptr) +- : "esp", "memory", "ecx", "edx", "esi", "edi"); ++ : "memory", "ecx", "edx", "esi", "edi"); + LSS_RETURN(int, __res); + } + @@ -2407,7 +2407,7 @@ struct kernel_statfs { "d"(LSS_SYSCALL_ARG(parent_tidptr)), "r"(LSS_SYSCALL_ARG(newtls)), diff --git a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb index 5f9a72e0a..06f3ee87d 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb @@ -42,7 +42,7 @@ SRC_URI = "git://github.com/google/breakpad;name=breakpad \ file://0001-disable-calls-to-getcontext-with-musl.patch \ file://0001-lss-Match-syscalls-to-match-musl.patch;patchdir=src/third_party/lss \ file://mips_asm_sgidefs.patch;patchdir=src/third_party/lss \ - file://dont-clobber-rsp.patch \ + file://dont-clobber-rsp.patch;patchdir=src/third_party/lss;striplevel=4 \ " S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-oe/recipes-devtools/capnproto/capnproto_0.6.1.bb b/meta-openembedded/meta-oe/recipes-devtools/capnproto/capnproto_0.7.0.bb index 6ca3613db..c6bab5ec2 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/capnproto/capnproto_0.6.1.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/capnproto/capnproto_0.7.0.bb @@ -3,10 +3,10 @@ DESCRIPTION = "Cap’n Proto is an insanely fast data interchange format and cap HOMEPAGE = "https://github.com/sandstorm-io/capnproto" SECTION = "console/tools" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://../LICENSE;md5=0a5b5b742baf10cc1c158579eba7fb1d" +LIC_FILES_CHKSUM = "file://../LICENSE;md5=a05663ae6cca874123bf667a60dca8c9" SRC_URI = "git://github.com/sandstorm-io/capnproto.git;branch=release-${PV}" -SRCREV = "c949a18da5f041a36cc218c5c4b79c7705999b4f" +SRCREV = "3f44c6db0f0f6c0cab0633f15f15d0a2acd01d19" S = "${WORKDIR}/git/c++" diff --git a/meta-openembedded/meta-oe/recipes-devtools/dejagnu/dejagnu/configure.patch b/meta-openembedded/meta-oe/recipes-devtools/dejagnu/dejagnu/configure.patch deleted file mode 100644 index 2eb8af713..000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/dejagnu/dejagnu/configure.patch +++ /dev/null @@ -1,45 +0,0 @@ -Index: dejagnu-1.4.4/configure.in -=================================================================== ---- dejagnu-1.4.4.orig/configure.in 2014-07-18 07:05:49.997481207 +0000 -+++ dejagnu-1.4.4/configure.in 2014-07-18 07:05:50.085481210 +0000 -@@ -1,10 +1,10 @@ - dnl Process this file with autoconf to produce a configure script. - AC_PREREQ(2.13) --AC_INIT(runtest.exp) -+AC_INIT(dejagnu, 1.4.4) - dnl AC_CONFIG_AUX_DIR(..) - - dnl These are required by automake --AM_INIT_AUTOMAKE(dejagnu, 1.4.4) -+AM_INIT_AUTOMAKE([foreign]) - AM_MAINTAINER_MODE - AC_PROG_MAKE_SET - -Index: dejagnu-1.4.4/example/calc/configure.in -=================================================================== ---- dejagnu-1.4.4.orig/example/calc/configure.in 2002-04-26 03:32:40.000000000 +0000 -+++ dejagnu-1.4.4/example/calc/configure.in 2014-07-18 07:11:59.085491266 +0000 -@@ -1,8 +1,8 @@ - dnl Process this file with autoconf to produce a configure script. - AC_PREREQ(2.5) --AC_INIT(calc.c) -+AC_INIT(calc, 1.1) - AM_CONFIG_HEADER(calc.h) --AM_INIT_AUTOMAKE(calc, 1.1) -+AM_INIT_AUTOMAKE([foreign]) - - AC_PROG_CC - AC_PROG_INSTALL -Index: dejagnu-1.4.4/example/hello/configure.in -=================================================================== ---- dejagnu-1.4.4.orig/example/hello/configure.in 2002-08-31 05:46:16.000000000 +0000 -+++ dejagnu-1.4.4/example/hello/configure.in 2014-07-18 07:12:23.721491937 +0000 -@@ -25,7 +25,7 @@ - # ------------------------------------------------------------------------ - - AC_INIT(helloworld, demo-version, philip.wilsey@ieee.org) --AM_INIT_AUTOMAKE(helloworld, demo-version) -+AM_INIT_AUTOMAKE([foreign]) - - #AC_CONFIG_SRCDIR([hello.cc]) - #AC_CONFIG_HEADER([config.h]) diff --git a/meta-openembedded/meta-oe/recipes-devtools/dejagnu/dejagnu_1.4.4.bb b/meta-openembedded/meta-oe/recipes-devtools/dejagnu/dejagnu_1.4.4.bb deleted file mode 100644 index 63726b232..000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/dejagnu/dejagnu_1.4.4.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "GNU unit testing framework, written in Expect and Tcl" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b" -SECTION = "devel" - -inherit autotools - -SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz \ - file://configure.patch" - -SRC_URI[md5sum] = "053f18fd5d00873de365413cab17a666" -SRC_URI[sha256sum] = "d0fbedef20fb0843318d60551023631176b27ceb1e11de7468a971770d0e048d" - -BBCLASSEXTEND = "native" diff --git a/meta-openembedded/meta-oe/recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_git.bb b/meta-openembedded/meta-oe/recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_git.bb new file mode 100644 index 000000000..a8367b5d9 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_git.bb @@ -0,0 +1,39 @@ +SUMMARY = "A text-based user interface plugin of dnf for user to manage packages. " +LICENSE = "GPLv2" + +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "git://github.com/ubinux/dnf-plugin-tui.git;branch=master " +SRCREV = "31d6866d5eda02be9a6bfb1fca9e9095b12eecd1" +PV = "1.0" + +SRC_URI_append_class-target = "file://oe-remote.repo.sample" + +inherit distutils3-base + +S = "${WORKDIR}/git" + +do_install_append() { + install -d ${D}${datadir}/dnf + install -m 0755 ${S}/samples/* ${D}${datadir}/dnf + install -d ${D}${PYTHON_SITEPACKAGES_DIR}/dnf-plugins/mkimg + install -m 0755 ${S}/dnf-plugins/mkimg/* ${D}${PYTHON_SITEPACKAGES_DIR}/dnf-plugins/mkimg + for file in $(ls ${S}/dnf-plugins/ | grep -v mkimg); do + install -m 0755 ${S}/dnf-plugins/$file ${D}${PYTHON_SITEPACKAGES_DIR}/dnf-plugins + done +} + +do_install_append_class-target() { + install -d ${D}${sysconfdir}/yum.repos.d + install -m 0644 ${WORKDIR}/oe-remote.repo.sample ${D}${sysconfdir}/yum.repos.d +} + +FILES_${PN} += "${datadir}/dnf" + +RDEPENDS_${PN} += " \ + bash \ + dnf \ + libnewt-python \ +" + +BBCLASSEXTEND = "nativesdk" diff --git a/meta-openembedded/meta-oe/recipes-devtools/dnf-plugin-tui/files/oe-remote.repo.sample b/meta-openembedded/meta-oe/recipes-devtools/dnf-plugin-tui/files/oe-remote.repo.sample new file mode 100644 index 000000000..6c4502e17 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/dnf-plugin-tui/files/oe-remote.repo.sample @@ -0,0 +1,5 @@ +[base] +name=myrepo +baseurl=http://127.0.0.1/oe_repo/ +enabled=1 +gpgcheck=0 diff --git a/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.34.bb b/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.34.bb index 6c1c1535e..84adc7abe 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.34.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.34.bb @@ -29,7 +29,7 @@ inherit distro_features_check autotools pkgconfig gtk-icon-cache REQUIRED_DISTRO_FEATURES = "x11" SRC_URI = " \ - http://plugins.geany.org/${PN}/${PN}-${PV}.tar.bz2 \ + http://plugins.geany.org/${BPN}/${BP}.tar.bz2 \ file://0001-Use-pkg-config-to-find-gpgme.patch \ " SRC_URI[md5sum] = "bf5fdd50727ad8bbbfe00027ccf2dac5" @@ -40,7 +40,7 @@ do_configure_prepend() { } FILES_${PN} += "${datadir}/icons" -FILES_${PN}-dev += "${libdir}/geany/*.la ${libdir}/${PN}/*/*.la" +FILES_${PN}-dev += "${libdir}/geany/*.la ${libdir}/${BPN}/*/*.la" PLUGINS += "${PN}-addons" LIC_FILES_CHKSUM += "file://addons/COPYING;md5=4325afd396febcb659c36b49533135d4" diff --git a/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc_git.bb b/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc_1.2.0.bb index aea11b082..b23775708 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc_git.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc_1.2.0.bb @@ -3,18 +3,14 @@ DESCRIPTION = "JsonRpc-Cpp is an OpenSource implementation of JSON-RPC \ protocol in C++. JSON-RPC is a lightweight remote procedure \ call protocol similar to XML-RPC." HOMEPAGE = "https://github.com/cinemast/libjson-rpc-cpp" - LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4e728c5b36018f6c383b4b9efd9c8840" SECTION = "libs" -DEPENDS = "curl jsoncpp libmicrohttpd hiredis" -PV = "1.1.1+git${SRCPV}" -# v1.1.1 -SRCREV = "319783c635cf8cabcc1a980495c99a88f9ebbd97" +DEPENDS = "curl jsoncpp libmicrohttpd hiredis" -SRC_URI = "git://github.com/cinemast/libjson-rpc-cpp \ - " +SRC_URI = "git://github.com/cinemast/libjson-rpc-cpp" +SRCREV = "4ed5b00dcc409405a19e6d8c6478f703153430e1" S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit/stdc-predef.patch b/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit/stdc-predef.patch deleted file mode 100644 index c95cdc9d2..000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit/stdc-predef.patch +++ /dev/null @@ -1,17 +0,0 @@ -__STDC_ISO_10646__ is defined in stdc-predef.h -therefore include it to see if its there on a platform - -Signed-off-by: Khem Raj <raj.khem@gmail.com> - -Index: libedit-20160903-3.1/src/chartype.h -=================================================================== ---- libedit-20160903-3.1.orig/src/chartype.h -+++ libedit-20160903-3.1/src/chartype.h -@@ -29,6 +29,7 @@ - #ifndef _h_chartype_f - #define _h_chartype_f - -+#include <stdc-predef.h> - /* Ideally we should also test the value of the define to see if it - * supports non-BMP code points without requiring UTF-16, but nothing - * seems to actually advertise this properly, despite Unicode 3.1 having diff --git a/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20190324-3.1.bb b/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20190324-3.1.bb deleted file mode 100644 index 9d333e7aa..000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20190324-3.1.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "BSD replacement for libreadline" -DESCRIPTION = "Command line editor library providing generic line editing, \ -history, and tokenization functions" -HOMEPAGE = "http://www.thrysoee.dk/editline/" -SECTION = "libs" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=1e4228d0c5a9093b01aeaaeae6641533" - -DEPENDS = "ncurses" - -inherit autotools - -# upstream site does not allow wget's User-Agent -FETCHCMD_wget += "-U bitbake" -SRC_URI = "http://www.thrysoee.dk/editline/${BPN}-${PV}.tar.gz \ - file://stdc-predef.patch \ - " -SRC_URI[md5sum] = "bec755c8044ad84b752dfe49a0b371d8" -SRC_URI[sha256sum] = "ac8f0f51c1cf65492e4d1e3ed2be360bda41e54633444666422fbf393bba1bae" - -S = "${WORKDIR}/${BPN}-${PV}" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-oe/recipes-devtools/libgee/libgee_0.20.1.bb b/meta-openembedded/meta-oe/recipes-devtools/libgee/libgee_0.20.2.bb index 190e5dd4e..a048e4832 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/libgee/libgee_0.20.1.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/libgee/libgee_0.20.2.bb @@ -9,8 +9,8 @@ LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24" PE = "1" +inherit gnomebase vala gobject-introspection -inherit autotools vala pkgconfig gobject-introspection do_configure_prepend() { MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4" for i in ${MACROS}; do @@ -18,7 +18,5 @@ do_configure_prepend() { done } -SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" -SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/libgee/${SHRT_VER}/${BP}.tar.xz" -SRC_URI[md5sum] = "d224dca55bb909f6730f40cc267337be" -SRC_URI[sha256sum] = "bb2802d29a518e8c6d2992884691f06ccfcc25792a5686178575c7111fea4630" +SRC_URI[archive.md5sum] = "45db478f2b300ada8e039ebc6c9458de" +SRC_URI[archive.sha256sum] = "9e035c4b755f46bfae70ba81cdcf8328b03f554373cec8c816e8b5680f85353c" diff --git a/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-Add-CMake-build-files.patch b/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-Add-CMake-build-files.patch deleted file mode 100644 index 560c3a6d7..000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-Add-CMake-build-files.patch +++ /dev/null @@ -1,302 +0,0 @@ -From 613297214d78ee10111e74e90e025166ebbcad9f Mon Sep 17 00:00:00 2001 -From: Peter Liu <peter.x.liu@external.atlascopco.com> -Date: Sun, 5 Mar 2017 16:15:40 +0100 -Subject: [PATCH] Add CMake build files - -Upstream-Status: Pending - -Signed-off-by: Peter Liu <peter.x.liu@external.atlascopco.com> ---- - CMakeLists.txt | 147 +++++++++++++++++++++++++++++++++++++++++++++++++++++ - FindLibRcf.cmake | 63 +++++++++++++++++++++++ - VERSION.cmake | 21 ++++++++ - src/CMakeLists.txt | 25 +++++++++ - 4 files changed, 256 insertions(+) - create mode 100644 CMakeLists.txt - create mode 100644 FindLibRcf.cmake - create mode 100644 VERSION.cmake - create mode 100755 src/CMakeLists.txt - -diff --git a/CMakeLists.txt b/CMakeLists.txt -new file mode 100644 -index 0000000..f6e24be ---- /dev/null -+++ b/CMakeLists.txt -@@ -0,0 +1,147 @@ -+PROJECT (librcf) -+ -+CMAKE_MINIMUM_REQUIRED (VERSION 2.6) -+ -+#################################################################### -+# OPTION # -+#################################################################### -+OPTION (LIBRCF_USE_OPENSSL "Build with OpenSSL support?" OFF) -+OPTION (LIBRCF_OPENSSL_STATIC "Enable static linking to OpenSSL?" OFF) -+OPTION (LIBRCF_USE_ZLIB "Build with zlib support?" OFF) -+OPTION (LIBRCF_ZLIB_STATIC "Enable static linking to zlib?" OFF) -+OPTION (LIBRCF_USE_SF_SERIALIZATION "Build with SF serialization support?" ON) -+OPTION (LIBRCF_USE_BOOST_SERIALIZATION "Build with Boost.Serialization support?" OFF) -+OPTION (LIBRCF_USE_BOOST_FILESYSTEM "Build with Boost.Filesystem support (required for file transfer support)?" OFF) -+OPTION (LIBRCF_USE_BOOST_ASIO "Build with Boost asio support?" ON) -+OPTION (LIBRCF_USE_PROTOBUF "Build with Protocol Buffer support?" OFF) -+OPTION (LIBRCF_USE_JSON "Build with JSON Spirit (required for JSON-RPC support)?" OFF) -+OPTION (LIBRCF_USE_IPV6 "Build with IPv6 support?" OFF) -+OPTION (LIBRCF_USE_CUSTOM_ALLOCATOR "Build with custom allocator support?" OFF) -+OPTION (LIBRCF_BUILD_DLL "Build a DLL exporting RCF?" OFF) -+OPTION (LIBRCF_AUTO_INIT_DEINIT "Enable automatic RCF initialization and deinitialization?" OFF) -+OPTION (LIBRCF_BUILD_STATIC_LIBS "Build the static library?" ON) -+OPTION (LIBRCF_BUILD_SHARED_LIBS "Build the shared library?" ON) -+OPTION (LIBRCF_BUILD_DEMOS "Build demo programs?" ON) -+ -+#################################################################### -+# CONFIGURATION # -+#################################################################### -+INCLUDE (${CMAKE_SOURCE_DIR}/VERSION.cmake) -+ -+SET (LIBRCF_LIBRARIES "-lpthread -ldl -latomic") -+INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/include) -+ -+IF (LIBRCF_USE_OPENSSL) -+ IF (NOT OPENSSL_FOUND) -+ FIND_PACKAGE (OpenSSL REQUIRED) -+ ENDIF (NOT OPENSSL_FOUND) -+ INCLUDE_DIRECTORIES (${OPENSSL_INCLUDE_DIR}) -+ ADD_DEFINITIONS (-DRCF_USE_OPENSSL) -+ENDIF (LIBRCF_USE_OPENSSL) -+ -+IF (LIBRCF_OPENSSL_STATIC) -+ LIST (APPEND LIBRCF_LIBRARIES ${OPENSSL_LIBRARIES}) -+ ADD_DEFINITIONS (-DRCF_OPENSSL_STATIC) -+ENDIF (LIBRCF_OPENSSL_STATIC) -+ -+IF (LIBRCF_USE_ZLIB) -+ IF (NOT ZLIB_FOUND) -+ FIND_PACKAGE (ZLIB REQUIRED) -+ ENDIF (NOT ZLIB_FOUND) -+ INCLUDE_DIRECTORIES (${ZLIB_INCLUDE_DIR}) -+ ADD_DEFINITIONS (-DRCF_USE_ZLIB) -+ENDIF (LIBRCF_USE_ZLIB) -+ -+IF (LIBRCF_ZLIB_STATIC) -+ LIST (APPEND LIBRCF_LIBRARIES ${ZLIB_LIBRARIES}) -+ ADD_DEFINITIONS (-DRCF_ZLIB_STATIC) -+ENDIF (LIBRCF_ZLIB_STATIC) -+ -+IF (LIBRCF_USE_SF_SERIALIZATION) -+ IF (NOT Boost_SYSTEM_FOUND) -+ FIND_PACKAGE (Boost REQUIRED COMPONENTS system) -+ ENDIF (NOT Boost_SYSTEM_FOUND) -+ INCLUDE_DIRECTORIES (${Boost_INCLUDE_DIR}) -+ LIST (APPEND LIBRCF_LIBRARIES ${Boost_SYSTEM_LIBRARY}) -+ ADD_DEFINITIONS (-DRCF_USE_SF_SERIALIZATION) -+ENDIF (LIBRCF_USE_SF_SERIALIZATION) -+ -+IF (LIBRCF_USE_BOOST_SERIALIZATION) -+ IF (NOT Boost_SERIALIZATION_FOUND) -+ FIND_PACKAGE (Boost REQUIRED COMPONENTS serialization) -+ ENDIF (NOT Boost_SERIALIZATION_FOUND) -+ INCLUDE_DIRECTORIES (${Boost_INCLUDE_DIR}) -+ LIST (APPEND LIBRCF_LIBRARIES ${Boost_SERIALIZATION_LIBRARY}) -+ ADD_DEFINITIONS (-DRCF_USE_BOOST_SERIALIZATION) -+ENDIF (LIBRCF_USE_BOOST_SERIALIZATION) -+ -+IF (LIBRCF_USE_BOOST_FILESYSTEM) -+ IF (NOT Boost_FILESYSTEM_FOUND) -+ FIND_PACKAGE (Boost REQUIRED COMPONENTS filesystem system) -+ ENDIF (NOT Boost_FILESYSTEM_FOUND) -+ INCLUDE_DIRECTORIES (${Boost_INCLUDE_DIR}) -+ LIST (APPEND LIBRCF_LIBRARIES ${Boost_FILESYSTEM_LIBRARY}) -+ LIST (APPEND LIBRCF_LIBRARIES ${Boost_SYSTEM_LIBRARY}) -+ ADD_DEFINITIONS (-DRCF_USE_BOOST_FILESYSTEM) -+ENDIF (LIBRCF_USE_BOOST_FILESYSTEM) -+ -+IF (LIBRCF_USE_BOOST_ASIO) -+ IF (NOT Boost_FOUND) -+ FIND_PACKAGE (Boost REQUIRED) -+ ENDIF (NOT Boost_FOUND) -+ INCLUDE_DIRECTORIES (${Boost_INCLUDE_DIR}) -+ ADD_DEFINITIONS (-DRCF_USE_BOOST_ASIO) -+ENDIF (LIBRCF_USE_BOOST_ASIO) -+ -+IF (LIBRCF_USE_PROTOBUF) -+ IF(NOT Protobuf_FOUND) -+ FIND_PACKAGE (Protobuf REQUIRED) -+ ENDIF (NOT Protobuf_FOUND) -+ INCLUDE_DIRECTORIES (${Protobuf_INCLUDE_DIR}) -+ LIST (APPEND LIBRCF_LIBRARIES ${Protobuf_LIBRARIES}) -+ ADD_DEFINITIONS (-DRCF_USE_PROTOBUF) -+ENDIF (LIBRCF_USE_PROTOBUF) -+ -+IF (LIBRCF_USE_JSON) -+ IF (NOT LibJsonSpirit_FOUND) -+ FIND_PACKAGE (LibJsonSpirit REQUIRED) -+ ENDIF (NOT LibJsonSpirit_FOUND) -+ INCLUDE_DIRECTORIES (${LibJsonSpirit_INCLUDE_DIR}) -+ LIST (APPEND LIBRCF_LIBRARIES ${LibJsonSpirit_LIBRARIES}) -+ ADD_DEFINITIONS (-DRCF_USE_JSON) -+ENDIF (LIBRCF_USE_JSON) -+ -+IF (LIBRCF_USE_IPV6) -+ ADD_DEFINITIONS (-DRCF_USE_IPV6) -+ENDIF (LIBRCF_USE_IPV6) -+ -+IF (LIBRCF_USE_CUSTOM_ALLOCATOR) -+ ADD_DEFINITIONS (-DRCF_USE_CUSTOM_ALLOCATOR) -+ENDIF (LIBRCF_USE_CUSTOM_ALLOCATOR) -+ -+IF (LIBRCF_BUILD_DLL) -+ ADD_DEFINITIONS (-DRCF_BUILD_DLL) -+ENDIF (LIBRCF_BUILD_DLL) -+ -+IF (LIBRCF_AUTO_INIT_DEINIT) -+ ADD_DEFINITIONS (-DRCF_AUTO_INIT_DEINIT) -+ENDIF (LIBRCF_AUTO_INIT_DEINIT) -+ -+#################################################################### -+# SUBDIRECTORY # -+#################################################################### -+ADD_SUBDIRECTORY (src) -+ -+IF (LIBRCF_BUILD_DEMOS) -+ # Server -+ ADD_EXECUTABLE (RcfServer demo/Server.cpp) -+ TARGET_LINK_LIBRARIES (RcfServer rcf ${LIBRCF_LIBRARIES}) -+ INSTALL (TARGETS RcfServer DESTINATION ${CMAKE_INSTALL_BINDIR}) -+ -+ # Client -+ ADD_EXECUTABLE (RcfClient demo/Client.cpp) -+ TARGET_LINK_LIBRARIES (RcfClient rcf ${LIBRCF_LIBRARIES}) -+ INSTALL (TARGETS RcfClient DESTINATION ${CMAKE_INSTALL_BINDIR}) -+ENDIF (LIBRCF_BUILD_DEMOS) -+ -+INSTALL (FILES ${CMAKE_SOURCE_DIR}/FindLibRcf.cmake DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/cmake/Modules) -diff --git a/FindLibRcf.cmake b/FindLibRcf.cmake -new file mode 100644 -index 0000000..9d7d8cd ---- /dev/null -+++ b/FindLibRcf.cmake -@@ -0,0 +1,63 @@ -+# FindLibRcf - Find librcf headers and libraries. -+# -+# Sample: -+# -+# SET( LibRcf_USE_STATIC_LIBS OFF ) -+# FIND_PACKAGE( LibRcf REQUIRED ) -+# IF( LibRcf_FOUND ) -+# INCLUDE_DIRECTORIES( ${LibRcf_INCLUDE_DIRS} ) -+# TARGET_LINK_LIBRARIES( ... ${LibRcf_LIBRARIES} ) -+# ENDIF() -+# -+# Variables used by this module need to be set before calling find_package -+# -+# LibRcf_USE_STATIC_LIBS Can be set to ON to force the use of the static -+# librcf libraries. Defaults to OFF. -+# -+# Variables provided by this module: -+# -+# LibRcf_FOUND Include dir, librcf libraries. -+# -+# LibRcf_LIBRARIES Link to these to use all the libraries you specified. -+# -+# LibRcf_INCLUDE_DIRS Include directories. -+# -+# For each component you specify in find_package(), the following (UPPER-CASE) -+# variables are set to pick and choose components instead of just using LibRcf_LIBRARIES: -+# -+# LIBRCF_FOUND TRUE if librcf was found -+# LIBRCF_LIBRARY librcf libraries -+# -+ -+# Support preference of static libs by adjusting CMAKE_FIND_LIBRARY_SUFFIXES -+IF(LibRcf_USE_STATIC_LIBS) -+ SET( _ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES}) -+ SET(CMAKE_FIND_LIBRARY_SUFFIXES .a ) -+ENDIF() -+ -+# Look for the header files -+UNSET(LibRcf_INCLUDE_DIRS CACHE) -+FIND_PATH(LibRcf_INCLUDE_DIRS NAMES RCF/RcfClient.hpp) -+ -+# Look for the core library -+UNSET(LIBRCF_LIBRARY CACHE) -+FIND_LIBRARY(LIBRCF_LIBRARY NAMES rcf) -+FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibRcf DEFAULT_MSG LIBRCF_LIBRARY LibRcf_INCLUDE_DIRS) -+MARK_AS_ADVANCED( -+ LIBRCF_FOUND -+ LIBRCF_LIBRARY -+) -+ -+# Prepare return values and collectiong more components -+SET(LibRcf_FOUND ${LIBRCF_FOUND}) -+SET(LibRcf_LIBRARIES ${LIBRCF_LIBRARY}) -+MARK_AS_ADVANCED( -+ LibRcf_FOUND -+ LibRcf_LIBRARIES -+ LibRcf_INCLUDE_DIRS -+) -+ -+# Restore CMAKE_FIND_LIBRARY_SUFFIXES -+IF(LibRcf_USE_STATIC_LIBS) -+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ${_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES} ) -+ENDIF() -diff --git a/VERSION.cmake b/VERSION.cmake -new file mode 100644 -index 0000000..8b4bcdc ---- /dev/null -+++ b/VERSION.cmake -@@ -0,0 +1,21 @@ -+# ================================================== -+# Versioning -+# ========== -+# -+# MAJOR Major number for this branch. -+# -+# MINOR The most recent interface number this -+# library implements. -+# -+# COMPATMINOR The latest binary compatible minor number -+# this library implements. -+# -+# PATCH The implementation number of the current interface. -+# -+# -+# - The package VERSION will be MAJOR.MINOR.PATCH. -+# -+ -+SET (LIBRCF_SOVERSION_MAJOR "2") -+SET (LIBRCF_SOVERSION_MINOR "2") -+SET (LIBRCF_SOVERSION_PATCH "0") -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -new file mode 100755 -index 0000000..c227901 ---- /dev/null -+++ b/src/CMakeLists.txt -@@ -0,0 +1,25 @@ -+IF (NOT LIBRCF_BUILD_SHARED_LIBS) -+ ADD_LIBRARY (rcf STATIC RCF/RCF.cpp) -+ELSE (NOT LIBRCF_BUILD_SHARED_LIBS) -+ ADD_LIBRARY (rcf SHARED RCF/RCF.cpp) -+ TARGET_LINK_LIBRARIES (rcf ${LIBRCF_LIBRARIES}) -+ SET_TARGET_PROPERTIES (rcf PROPERTIES COMPILE_FLAGS ${CMAKE_SHARED_LIBRARY_C_FLAGS}) -+ SET_TARGET_PROPERTIES (rcf PROPERTIES VERSION ${LIBRCF_SOVERSION_MAJOR}.${LIBRCF_SOVERSION_MINOR}.${LIBRCF_SOVERSION_PATCH}) -+ENDIF (NOT LIBRCF_BUILD_SHARED_LIBS) -+ -+SET_TARGET_PROPERTIES (rcf PROPERTIES PROJECT_LABEL "RCF Library") -+SET_TARGET_PROPERTIES (rcf PROPERTIES OUTPUT_NAME "rcf") -+SET_TARGET_PROPERTIES (rcf PROPERTIES SOVERSION ${LIBRCF_SOVERSION_MAJOR}) -+SET_TARGET_PROPERTIES (rcf PROPERTIES INSTALL_NAME_DIR ${CMAKE_INSTALL_LIBDIR}) -+ -+INSTALL (DIRECTORY "${CMAKE_SOURCE_DIR}/include/RCF" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) -+INSTALL (DIRECTORY "${CMAKE_SOURCE_DIR}/include/SF" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) -+INSTALL (TARGETS rcf LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -+ -+IF (LIBRCF_BUILD_STATIC_LIBS AND LIBRCF_BUILD_SHARED_LIBS) -+ ADD_LIBRARY (rcf_static STATIC RCF/RCF.cpp) -+ SET_TARGET_PROPERTIES (rcf_static PROPERTIES PROJECT_LABEL "RCF Static Library") -+ SET_TARGET_PROPERTIES (rcf_static PROPERTIES OUTPUT_NAME "rcf") -+ SET_TARGET_PROPERTIES (rcf_static PROPERTIES SOVERSION ${LIBRCF_SOVERSION_MAJOR}) -+ INSTALL (TARGETS rcf_static LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -+ENDIF (LIBRCF_BUILD_STATIC_LIBS AND LIBRCF_BUILD_SHARED_LIBS) --- -1.9.1 - diff --git a/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-Check-for-__powerpc__-define.patch b/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-Check-for-__powerpc__-define.patch deleted file mode 100644 index d91accf1d..000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-Check-for-__powerpc__-define.patch +++ /dev/null @@ -1,28 +0,0 @@ -From ac7316679e30f7013604b19aa0949a0744e91d2f Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sat, 1 Jul 2017 13:06:30 -0700 -Subject: [PATCH] Check for __powerpc__ define - -Also check for gcc's internal define for ppc platform - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/RCF/ByteOrdering.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/RCF/ByteOrdering.cpp b/src/RCF/ByteOrdering.cpp -index 278ca80..9f9c446 100755 ---- a/src/RCF/ByteOrdering.cpp -+++ b/src/RCF/ByteOrdering.cpp -@@ -36,7 +36,7 @@ namespace RCF { - - const ByteOrder MachineByteOrder = BigEndian; - --#elif defined( __ppc__ ) -+#elif defined( __ppc__ ) || defined( __powerpc__ ) - - const ByteOrder MachineByteOrder = BigEndian; - --- -2.13.2 - diff --git a/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-ClientStub.hpp-fix-a-clang-compiling-issue.patch b/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-ClientStub.hpp-fix-a-clang-compiling-issue.patch deleted file mode 100644 index e949dee40..000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-ClientStub.hpp-fix-a-clang-compiling-issue.patch +++ /dev/null @@ -1,35 +0,0 @@ -From d78851b6f87f2472f041102d7b3726ffc009bfad Mon Sep 17 00:00:00 2001 -From: Ming Liu <peter.x.liu@external.atlascopco.com> -Date: Tue, 6 Jun 2017 05:54:20 +0200 -Subject: [PATCH] ClientStub.hpp: fix a clang compiling issue - -A error was observed with clang compiler, as follows: -| src/RCF/RCF.cpp:49: -| src/RCF/ClientStub.cpp:28: -| include/RCF/Future.hpp:49:26: error: 'enrol' is a private member of 'RCF::ClientStub' - -it can be fixed by declaring Future as a friend class of ClientStub. - -Upstream-Status: Pending - -Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com> ---- - include/RCF/ClientStub.hpp | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/include/RCF/ClientStub.hpp b/include/RCF/ClientStub.hpp -index 9882cf4..8465625 100755 ---- a/include/RCF/ClientStub.hpp -+++ b/include/RCF/ClientStub.hpp -@@ -372,6 +372,8 @@ namespace RCF { - - private: - -+ template<typename U> -+ friend class Future; - friend class FutureImplBase; - - template< --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/aarch64-support.patch b/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/aarch64-support.patch deleted file mode 100644 index e08efb92f..000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/aarch64-support.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: RCF-2.2.0.0/src/RCF/ByteOrdering.cpp -=================================================================== ---- RCF-2.2.0.0.orig/src/RCF/ByteOrdering.cpp -+++ RCF-2.2.0.0/src/RCF/ByteOrdering.cpp -@@ -60,7 +60,7 @@ namespace RCF { - - const ByteOrder MachineByteOrder = LittleEndian; - --#elif defined(__arm__) -+#elif defined(__arm__) || defined(__aarch64__) - - const ByteOrder MachineByteOrder = LittleEndian; - diff --git a/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/mips-support.patch b/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/mips-support.patch deleted file mode 100644 index 4a327f78e..000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/mips-support.patch +++ /dev/null @@ -1,19 +0,0 @@ -Index: RCF-2.2.0.0/src/RCF/ByteOrdering.cpp -=================================================================== ---- RCF-2.2.0.0.orig/src/RCF/ByteOrdering.cpp -+++ RCF-2.2.0.0/src/RCF/ByteOrdering.cpp -@@ -64,6 +64,14 @@ namespace RCF { - - const ByteOrder MachineByteOrder = LittleEndian; - -+#elif defined(__mipsel__) || defined(__mips64el__) -+ -+ const ByteOrder MachineByteOrder = LittleEndian; -+ -+#elif defined( __mips__ ) || defined(__mips64__) -+ -+ const ByteOrder MachineByteOrder = BigEndian; -+ - #elif defined(__bfin__) - - const ByteOrder MachineByteOrder = LittleEndian; diff --git a/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf_2.2.0.0.bb b/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf_2.2.0.0.bb deleted file mode 100644 index dcd47a4e6..000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf_2.2.0.0.bb +++ /dev/null @@ -1,53 +0,0 @@ -SUMMARY = "RCF (Remote Call Framework) is a cross-platform interprocess communication framework for C++" -DESCRIPTION = "Unlike other communication frameworks, RCF doesn't use a separate \ -IDL (Interface Definition Language). RCF interfaces are defined directly in C++, \ -and serialization for user-defined data types likewise is implemented in C++. \ -Instead of a separate IDL compiler tool, RCF uses the C++ compiler to generate \ -client and server stubs." -HOMEPAGE = "http://www.deltavsoft.com/" -SECTION = "libs" -PRIORITY = "optional" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://license.txt;md5=7586a312b9e978f9d6fac9a5780d1f84" - -SRC_URI = "http://www.deltavsoft.com/downloads/RCF-${PV}.tar.gz \ - file://0001-Add-CMake-build-files.patch \ - file://aarch64-support.patch \ - file://0001-ClientStub.hpp-fix-a-clang-compiling-issue.patch \ - file://mips-support.patch \ - file://0001-Check-for-__powerpc__-define.patch \ - " - -SRC_URI[md5sum] = "7ecb3c73f7eb66dba8790b659374f690" -SRC_URI[sha256sum] = "bbfcc88de502c39604878c395f516b03fff4eac63eb4f7f44c07d433839712dd" - -S = "${WORKDIR}/RCF-${PV}" - -inherit cmake dos2unix - -PACKAGECONFIG ?= "zlib openssl sf-serialization boost-filesystem boost-asio protobuf json dll static shared demos" -PACKAGECONFIG[zlib] = "-DLIBRCF_USE_ZLIB=ON,-DLIBRCF_USE_ZLIB=OFF,zlib,zlib" -PACKAGECONFIG[zlib-static] = "-DLIBRCF_USE_ZLIB=ON -DLIBRCF_ZLIB_STATIC=ON,-DLIBRCF_ZLIB_STATIC=OFF,zlib," -PACKAGECONFIG[openssl] = "-DLIBRCF_USE_OPENSSL=ON,-DLIBRCF_USE_OPENSSL=OFF,openssl,libssl libcrypto" -PACKAGECONFIG[openssl-static] = "-DLIBRCF_USE_OPENSSL=ON -DLIBRCF_OPENSSL_STATIC=ON,-DLIBRCF_OPENSSL_STATIC=OFF,openssl," -PACKAGECONFIG[sf-serialization] = "-DLIBRCF_USE_SF_SERIALIZATION=ON,-DLIBRCF_USE_SF_SERIALIZATION=OFF,boost," -PACKAGECONFIG[boost-serialization] = "-DLIBRCF_USE_BOOST_SERIALIZATION=ON,-DLIBRCF_USE_BOOST_SERIALIZATION=OFF,boost," -PACKAGECONFIG[boost-filesystem] = "-DLIBRCF_USE_BOOST_FILESYSTEM=ON,-DLIBRCF_USE_BOOST_FILESYSTEM=OFF,boost," -PACKAGECONFIG[boost-asio] = "-DLIBRCF_USE_BOOST_ASIO=ON,-DLIBRCF_USE_BOOST_ASIO=OFF,boost," -PACKAGECONFIG[protobuf] = "-DLIBRCF_USE_PROTOBUF=ON,-DLIBRCF_USE_PROTOBUF=OFF,protobuf,protobuf" -PACKAGECONFIG[json] = "-DLIBRCF_USE_JSON=ON,-DLIBRCF_USE_JSON=OFF,json-spirit,json-spirit" -PACKAGECONFIG[ipv6] = "-DLIBRCF_USE_IPV6=ON,-DLIBRCF_USE_IPV6=OFF," -PACKAGECONFIG[custom-allocator] = "-DLIBRCF_USE_CUSTOM_ALLOCATOR=ON,-DLIBRCF_USE_CUSTOM_ALLOCATOR=OFF," -PACKAGECONFIG[dll] = "-DLIBRCF_BUILD_DLL=ON,-DLIBRCF_BUILD_DLL=OFF," -PACKAGECONFIG[auto-init-deinit] = "-DLIBRCF_AUTO_INIT_DEINIT=ON,-DLIBRCF_AUTO_INIT_DEINIT=OFF," -PACKAGECONFIG[static] = "-DLIBRCF_BUILD_STATIC_LIBS=ON,-DLIBRCF_BUILD_STATIC_LIBS=OFF," -PACKAGECONFIG[shared] = "-DLIBRCF_BUILD_SHARED_LIBS=ON,-DLIBRCF_BUILD_SHARED_LIBS=OFF," -PACKAGECONFIG[demos] = "-DLIBRCF_BUILD_DEMOS=ON,-DLIBRCF_BUILD_DEMOS=OFF," - -PACKAGES =+ "${@bb.utils.contains('PACKAGECONFIG', 'demos', '${PN}-demos', '', d)}" - -FILES_${PN}-demos = "${bindir}/*" - -BBCLASSEXTEND = "nativesdk" - -PNBLACKLIST[librcf] = " error: invalid use of incomplete type 'RCF::AsioIoService {aka class boost::asio::io_service}; among others?" diff --git a/meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus/0001-Remove-log4cplus-version-entry-from-ELF-.comment-sec.patch b/meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus/0001-Remove-log4cplus-version-entry-from-ELF-.comment-sec.patch new file mode 100644 index 000000000..44a835c35 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus/0001-Remove-log4cplus-version-entry-from-ELF-.comment-sec.patch @@ -0,0 +1,40 @@ +From da5338e68f146efadab7c221291ba4c949d8f12f Mon Sep 17 00:00:00 2001 +From: Vaclav Haisman <vhaisman@gmail.com> +Date: Sun, 21 Jul 2019 23:23:16 -0700 +Subject: [PATCH] Remove log4cplus version entry from ELF .comment section + +Reverts +https://github.com/log4cplus/log4cplus/commit/9cb0d4ade619da4e40628c9b95ff51de3df29f1b + +Upstream-Status: Backport [https://github.com/log4cplus/log4cplus/commit/7e6addc70dffd2e30e902efd18eb845c5d5dd7bb] + +Suggested-by: Adrian Bunk <bunk@stusta.de> +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/version.cxx | 12 ------------ + 1 file changed, 12 deletions(-) + +diff --git a/src/version.cxx b/src/version.cxx +index ce18212..e002de9 100644 +--- a/src/version.cxx ++++ b/src/version.cxx +@@ -34,16 +34,4 @@ namespace log4cplus + unsigned const version = LOG4CPLUS_VERSION; + char const versionStr[] = LOG4CPLUS_VERSION_STR LOG4CPLUS_VERSION_STR_SUFFIX; + +-namespace +-{ +- +-#if defined (__ELF__) && (defined (__GNUC__) || defined (__clang__)) +-char const versionStrComment[] +- __attribute__ ((__used__, __section__ ((".comment")))) +- = "log4cplus " LOG4CPLUS_VERSION_STR LOG4CPLUS_VERSION_STR_SUFFIX; +-#endif +- +- +-} // namespace +- + } // namespace log4cplus +-- +2.22.0 + diff --git a/meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus_2.0.3.bb b/meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus_2.0.4.bb index 56c62f1f2..566de2853 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus_2.0.3.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus_2.0.4.bb @@ -6,9 +6,11 @@ BUGTRACKER = "http://sourceforge.net/p/log4cplus/bugs/" LICENSE = "Apache-2.0 & BSD-2-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=41e8e060c26822886b592ab4765c756b" -SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}-stable/${PV}/${BP}.tar.gz" -SRC_URI[md5sum] = "20a87090cd8ec34ea11b3e59954234cb" -SRC_URI[sha256sum] = "2d8f627aa6417e6c6a100bc09dc407684ca4605c929defc1690ee7d6a575ce6a" +SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}-stable/${PV}/${BP}.tar.gz \ + file://0001-Remove-log4cplus-version-entry-from-ELF-.comment-sec.patch \ + " +SRC_URI[md5sum] = "2b5b7bc294698bf30a315a259ef9eec2" +SRC_URI[sha256sum] = "196eedbc7f2dd792dae721b1159c7ac132255bb368226353c24d4d5fa7c7797a" UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/log4cplus/files/log4cplus-stable/" UPSTREAM_CHECK_REGEX = "log4cplus-stable/(?P<pver>\d+(\.\d+)+)/" diff --git a/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/include_unistd_nr.patch b/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/include_unistd_nr.patch new file mode 100644 index 000000000..e4490bbb9 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/include_unistd_nr.patch @@ -0,0 +1,30 @@ +kernel headers have restructured mips syscall generation in kernel +in recent versions, however, ltrace still has logic to define the +syscall numbers based on old logic, this patch includes the legacy +UAPI headers to get these defines + +Fixes errors e.g. +../../../../git/sysdeps/linux-gnu/mips/trace.c:138:29: error: '__NR_O32_Linux' undeclared (first use in this function) + const int syscallbase[] = {__NR_O32_Linux, __NR_N32_Linux, + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- a/sysdeps/linux-gnu/mips/trace.c ++++ b/sysdeps/linux-gnu/mips/trace.c +@@ -34,6 +34,16 @@ + #include <assert.h> + #include <asm/unistd.h> + ++#ifndef __NR_O32_Linux ++#include <asm/unistd_nr_o32.h> ++#endif ++#ifndef __NR_N32_Linux ++#include <asm/unistd_nr_n64.h> ++#endif ++#ifndef __NR_N64_Linux ++#include <asm/unistd_nr_n32.h> ++#endif ++ + #include "backend.h" + #include "common.h" + #include "debug.h" diff --git a/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb b/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb index 3dc269c80..ead637cb7 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb @@ -27,6 +27,7 @@ SRC_URI = "git://github.com/sparkleholic/ltrace.git;branch=master;protocol=http file://0001-mips-plt.c-Delete-include-error.h.patch \ file://0001-move-fprintf-into-same-block-where-modname-and-symna.patch \ file://0001-hook-Do-not-append-int-to-std-string.patch \ + file://include_unistd_nr.patch \ " S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_10.15.3.bb b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_10.16.3.bb index d2e77ea0d..a978eebe4 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_10.15.3.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_10.16.3.bb @@ -1,9 +1,9 @@ DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript" HOMEPAGE = "http://nodejs.org" LICENSE = "MIT & BSD & Artistic-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=9ceeba79eb2ea1067b7b3ed16fff8bab" +LIC_FILES_CHKSUM = "file://LICENSE;md5=be980eb7ccafe287cb438076a65e888c" -DEPENDS = "openssl zlib icu" +DEPENDS = "openssl" DEPENDS_append_class-target = " nodejs-native" inherit pkgconfig @@ -12,6 +12,9 @@ COMPATIBLE_MACHINE_armv4 = "(!.*armv4).*" COMPATIBLE_MACHINE_armv5 = "(!.*armv5).*" COMPATIBLE_MACHINE_mips64 = "(!.*mips64).*" +COMPATIBLE_HOST_riscv64 = "null" +COMPATIBLE_HOST_riscv32 = "null" + SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \ file://0001-Disable-running-gyp-files-for-bundled-deps.patch \ file://0003-Crypto-reduce-memory-usage-of-SignFinal.patch \ @@ -23,8 +26,8 @@ SRC_URI_append_class-target = " \ file://0002-Using-native-torque.patch \ " -SRC_URI[md5sum] = "d76210a6ae1ea73d10254947684836fb" -SRC_URI[sha256sum] = "4e22d926f054150002055474e452ed6cbb85860aa7dc5422213a2002ed9791d5" +SRC_URI[md5sum] = "b41275a018e670947c1950b12f050a2f" +SRC_URI[sha256sum] = "7bf1123d7415964775b8f81fe6ec6dd5c3c08abb42bb71dfe4409dbeeba26bbd" S = "${WORKDIR}/node-v${PV}" @@ -49,16 +52,21 @@ ARCHFLAGS_arm = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '- GYP_DEFINES_append_mipsel = " mips_arch_variant='r1' " ARCHFLAGS ?= "" +PACKAGECONFIG ??= "zlib icu" +PACKAGECONFIG[zlib] = "--shared-zlib,,zlib" +PACKAGECONFIG[icu] = "--with-intl=system-icu,--without-intl,icu" + # Node is way too cool to use proper autotools, so we install two wrappers to forcefully inject proper arch cflags to workaround gypi do_configure () { rm -rf ${S}/deps/openssl export LD="${CXX}" GYP_DEFINES="${GYP_DEFINES}" export GYP_DEFINES # $TARGET_ARCH settings don't match --dest-cpu settings - ./configure --prefix=${prefix} --with-intl=system-icu --without-snapshot --shared-openssl --shared-zlib \ + ./configure --prefix=${prefix} --without-snapshot --shared-openssl \ --dest-cpu="${@map_nodejs_arch(d.getVar('TARGET_ARCH'), d)}" \ --dest-os=linux \ - ${ARCHFLAGS} + ${ARCHFLAGS} \ + ${PACKAGECONFIG_CONFARGS} } do_compile () { @@ -95,7 +103,7 @@ do_install_append_class-target() { PACKAGES =+ "${PN}-npm" FILES_${PN}-npm = "${exec_prefix}/lib/node_modules ${bindir}/npm ${bindir}/npx" -RDEPENDS_${PN}-npm = "bash python-shell python-datetime python-subprocess python-textutils \ +RDEPENDS_${PN}-npm = "bash python-core python-shell python-datetime python-subprocess python-textutils \ python-compiler python-misc python-multiprocessing" PACKAGES =+ "${PN}-systemtap" diff --git a/meta-openembedded/meta-oe/recipes-devtools/octave/octave_4.4.1.bb b/meta-openembedded/meta-oe/recipes-devtools/octave/octave_4.4.1.bb index 1ec32ce89..71d24504f 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/octave/octave_4.4.1.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/octave/octave_4.4.1.bb @@ -11,7 +11,7 @@ inherit autotools pkgconfig texinfo gettext EXTRA_OECONF = "--disable-java --disable-docs" -SRC_URI = "https://ftp.gnu.org/gnu/octave/${PN}-${PV}.tar.gz \ +SRC_URI = "${GNU_MIRROR}/octave/${PN}-${PV}.tar.gz \ file://fix-blas-library-integer-size.patch \ " diff --git a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-Do-not-include-syscrtl.h-with-glibc.patch b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-Do-not-include-syscrtl.h-with-glibc.patch new file mode 100644 index 000000000..618ce2689 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-Do-not-include-syscrtl.h-with-glibc.patch @@ -0,0 +1,33 @@ +From a763610719e7d7f6cdc45569b6fbfdb91bb7c87b Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 27 Jul 2019 14:30:08 -0700 +Subject: [PATCH] Do not include syscrtl.h with glibc + +glibc 2.30 has deprecated it see [1] +Fixes +sys/sysctl.h:21:2: error: "The <sys/sysctl.h> header is deprecated and will be removed." [-Werror,-W#warnings] + +[1] https://sourceware.org/git/?p=glibc.git;a=commit;h=744e829637162bb7d5029632aacf341c64b86990 + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/helper/options.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/helper/options.c b/src/helper/options.c +index 12755e010..4007e37f6 100644 +--- a/src/helper/options.c ++++ b/src/helper/options.c +@@ -34,7 +34,7 @@ + #if IS_DARWIN + #include <libproc.h> + #endif +-#ifdef HAVE_SYS_SYSCTL_H ++#if defined(HAVE_SYS_SYSCTL_H) && !defined(__GLIBC__) + #include <sys/sysctl.h> + #endif + #if IS_WIN32 && !IS_CYGWIN +-- +2.22.0 + diff --git a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb index b50c3acf4..241b4baa3 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb @@ -10,6 +10,7 @@ SRC_URI = " \ git://repo.or.cz/r/jimtcl.git;protocol=http;destsuffix=git/jimtcl;name=jimtcl \ git://repo.or.cz/r/libjaylink.git;protocol=http;destsuffix=git/src/jtag/drivers/libjaylink;name=libjaylink \ file://0001-esirisc_flash-Rename-PAGE_SIZE-to-FLASH_PAGE_SIZE.patch \ + file://0001-Do-not-include-syscrtl.h-with-glibc.patch \ " SRCREV_FORMAT = "openocd" @@ -25,7 +26,7 @@ inherit pkgconfig autotools-brokensep gettext BBCLASSEXTEND += "nativesdk" -EXTRA_OECONF = "--enable-ftdi --disable-doxygen-html" +EXTRA_OECONF = "--enable-ftdi --disable-doxygen-html --disable-werror" do_configure() { ./bootstrap nosubmodule diff --git a/meta-openembedded/meta-oe/recipes-devtools/packagegroups/packagegroup-sdk-target.bb b/meta-openembedded/meta-oe/recipes-devtools/packagegroups/packagegroup-sdk-target.bb index 53fc159c8..4bd9a1255 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/packagegroups/packagegroup-sdk-target.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/packagegroups/packagegroup-sdk-target.bb @@ -1,6 +1,4 @@ SUMMARY = "Packages required for a target (on-device) SDK" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" PR = "r1" diff --git a/meta-openembedded/meta-oe/recipes-devtools/perl/libdbi-perl_1.642.bb b/meta-openembedded/meta-oe/recipes-devtools/perl/libdbi-perl_1.642.bb index ff4a9d061..7532b3fa2 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/perl/libdbi-perl_1.642.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/perl/libdbi-perl_1.642.bb @@ -7,13 +7,6 @@ database interface independent of the actual database being used. \ HOMEPAGE = "http://search.cpan.org/dist/DBI/" SECTION = "libs" LICENSE = "Artistic-1.0 | GPL-1.0+" -RDEPENDS_${PN}_class-target = " \ - perl-module-carp \ - perl-module-exporter \ - perl-module-exporter-heavy \ - perl-module-dynaloader \ -" - LIC_FILES_CHKSUM = "file://LICENSE;md5=10982c7148e0a012c0fd80534522f5c5" SRC_URI = "http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-${PV}.tar.gz" @@ -34,4 +27,36 @@ do_install_prepend() { rm -rf ${B}/t/z*.t } +RDEPENDS_${PN}_class-target = " \ + perl \ + perl-module-carp \ + perl-module-exporter \ + perl-module-exporter-heavy \ + perl-module-dynaloader \ + perl-module-io-dir \ + perl-module-scalar-util \ + perl-module-universal \ +" + +RDEPENDS_${PN}-ptest = " \ + ${PN} \ + perl-module-b \ + perl-module-benchmark \ + perl-module-cwd \ + perl-module-data-dumper \ + perl-module-encode \ + perl-module-encode-byte \ + perl-module-encode-encoding \ + perl-module-file-copy \ + perl-module-file-path \ + perl-module-lib \ + perl-module-perlio \ + perl-module-perlio-scalar \ + perl-module-perlio-via \ + perl-module-sdbm-file \ + perl-module-storable \ + perl-module-test-more \ + perl-module-utf8 \ + " + BBCLASSEXTEND = "native" diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php.inc b/meta-openembedded/meta-oe/recipes-devtools/php/php.inc index 785c2f5ac..3d537e5b6 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/php/php.inc +++ b/meta-openembedded/meta-oe/recipes-devtools/php/php.inc @@ -47,7 +47,7 @@ EXTRA_OECONF = "--enable-mbstring \ --enable-fpm \ --with-libdir=${baselib} \ --with-gettext=${STAGING_LIBDIR}/.. \ - --with-libzip=${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} \ @@ -56,6 +56,9 @@ EXTRA_OECONF = "--enable-mbstring \ ${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 = " \ @@ -69,10 +72,11 @@ PACKAGECONFIG ??= "mysql sqlite3 imap opcache openssl \ " PACKAGECONFIG_class-native = "" -PACKAGECONFIG[mysql] = "--with-mysql=${STAGING_DIR_TARGET}${prefix} \ - --with-mysqli=${STAGING_BINDIR_CROSS}/mysql_config \ - --with-pdo-mysql=${STAGING_BINDIR_CROSS}/mysql_config \ - ,--without-mysql --without-mysqli --without-pdo-mysql \ +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}/.. \ @@ -90,11 +94,11 @@ PACKAGECONFIG[imap] = "--with-imap=${STAGING_DIR_HOST} \ 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" 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" -CFLAGS_append_aarch64 = " -O2" EXTRA_OEMAKE = "INSTALL_ROOT=${D}" @@ -170,12 +174,10 @@ do_install_append_class-target() { done 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-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 + 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 @@ -209,12 +211,12 @@ INITSCRIPT_PACKAGES = "${PN}-fpm" inherit update-rc.d FILES_${PN}-dbg =+ "${bindir}/.debug \ - ${libdir}/apache2/modules/.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" +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" @@ -235,7 +237,7 @@ FILES_${PN}-dev = "${includedir}/php ${PHP_LIBDIR}/build ${bindir}/phpize \ FILES_${PN}-staticdev += "${PHP_LIBDIR}/extensions/*/*.a" FILES_${PN}-opcache = "${PHP_LIBDIR}/extensions/*/opcache${SOLIBSDEV}" FILES_${PN} = "${PHP_LIBDIR}/php" -FILES_${PN} += "${bindir}" +FILES_${PN} += "${bindir} ${libexecdir}/apache2" SUMMARY_${PN}-modphp = "PHP module for the Apache HTTP server" FILES_${PN}-modphp = "${libdir}/apache2 ${sysconfdir}" diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-Add-lpthread-to-link.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-Add-lpthread-to-link.patch deleted file mode 100644 index f70e550ff..000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-Add-lpthread-to-link.patch +++ /dev/null @@ -1,38 +0,0 @@ -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 - diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-PHP-5.6-LibSSL-1.1-compatibility.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-PHP-5.6-LibSSL-1.1-compatibility.patch deleted file mode 100644 index ac8365b8e..000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-PHP-5.6-LibSSL-1.1-compatibility.patch +++ /dev/null @@ -1,1285 +0,0 @@ -Subject: [PATCH] PHP 5.6 - LibSSL 1.1 compatibility - -This patch does not try to backport the 7.1 openssl module, it is the -improved version of the 5.6 original openssl module. - -https://github.com/oerdnj/deb.sury.org/issues/566 -http://zettasystem.com/PHP-5.6.31-OpenSSL-1.1.0-compatibility-20170801.patch - -Upstream-Status: Deny [https://github.com/php/php-src/pull/2667] -Reason: As PHP 5.6 is no longer actively supported only security fixes -may land on this branch. As this change does not fall in this category, -I'm closing this PR. (All higher versions of PHP already have OpenSSL -1.1 support.) - -Author: zsalab@github https://github.com/zsalab - -Only port source modification, do not include the test case -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> ---- - ext/openssl/openssl.c | 683 +++++++++++++++++++++++++++++++++++++------------- - ext/openssl/xp_ssl.c | 18 +- - ext/phar/util.c | 13 +- - 3 files changed, 527 insertions(+), 187 deletions(-) - -diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c -index a78a8fb..b53114c 100644 ---- a/ext/openssl/openssl.c -+++ b/ext/openssl/openssl.c -@@ -42,6 +42,12 @@ - - /* OpenSSL includes */ - #include <openssl/evp.h> -+#if OPENSSL_VERSION_NUMBER >= 0x10002000L -+#include <openssl/bn.h> -+#include <openssl/rsa.h> -+#include <openssl/dsa.h> -+#include <openssl/dh.h> -+#endif - #include <openssl/x509.h> - #include <openssl/x509v3.h> - #include <openssl/crypto.h> -@@ -531,6 +537,133 @@ zend_module_entry openssl_module_entry = { - ZEND_GET_MODULE(openssl) - #endif - -+/* {{{ OpenSSL compatibility functions and macros */ -+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER) -+#define EVP_PKEY_get0_RSA(_pkey) _pkey->pkey.rsa -+#define EVP_PKEY_get0_DH(_pkey) _pkey->pkey.dh -+#define EVP_PKEY_get0_DSA(_pkey) _pkey->pkey.dsa -+#define EVP_PKEY_get0_EC_KEY(_pkey) _pkey->pkey.ec -+ -+static int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d) -+{ -+ r->n = n; -+ r->e = e; -+ r->d = d; -+ -+ return 1; -+} -+ -+static int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q) -+{ -+ r->p = p; -+ r->q = q; -+ -+ return 1; -+} -+ -+static int RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp) -+{ -+ r->dmp1 = dmp1; -+ r->dmq1 = dmq1; -+ r->iqmp = iqmp; -+ -+ return 1; -+} -+ -+static void RSA_get0_key(const RSA *r, const BIGNUM **n, const BIGNUM **e, const BIGNUM **d) -+{ -+ *n = r->n; -+ *e = r->e; -+ *d = r->d; -+} -+ -+static void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q) -+{ -+ *p = r->p; -+ *q = r->q; -+} -+ -+static void RSA_get0_crt_params(const RSA *r, const BIGNUM **dmp1, const BIGNUM **dmq1, const BIGNUM **iqmp) -+{ -+ *dmp1 = r->dmp1; -+ *dmq1 = r->dmq1; -+ *iqmp = r->iqmp; -+} -+ -+static void DH_get0_pqg(const DH *dh, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g) -+{ -+ *p = dh->p; -+ *q = dh->q; -+ *g = dh->g; -+} -+ -+static int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g) -+{ -+ dh->p = p; -+ dh->q = q; -+ dh->g = g; -+ -+ return 1; -+} -+ -+static void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key) -+{ -+ *pub_key = dh->pub_key; -+ *priv_key = dh->priv_key; -+} -+ -+static int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key) -+{ -+ dh->pub_key = pub_key; -+ dh->priv_key = priv_key; -+ -+ return 1; -+} -+ -+static void DSA_get0_pqg(const DSA *d, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g) -+{ -+ *p = d->p; -+ *q = d->q; -+ *g = d->g; -+} -+ -+int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g) -+{ -+ d->p = p; -+ d->q = q; -+ d->g = g; -+ -+ return 1; -+} -+ -+static void DSA_get0_key(const DSA *d, const BIGNUM **pub_key, const BIGNUM **priv_key) -+{ -+ *pub_key = d->pub_key; -+ *priv_key = d->priv_key; -+} -+ -+int DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key) -+{ -+ d->pub_key = pub_key; -+ d->priv_key = priv_key; -+ -+ return 1; -+} -+ -+#if OPENSSL_VERSION_NUMBER < 0x10002000L || defined (LIBRESSL_VERSION_NUMBER) -+#define EVP_PKEY_id(_pkey) _pkey->type -+#define EVP_PKEY_base_id(_key) EVP_PKEY_type(_key->type) -+ -+static int X509_get_signature_nid(const X509 *x) -+{ -+ return OBJ_obj2nid(x->sig_alg->algorithm); -+} -+ -+#endif -+ -+#endif -+/* }}} */ -+ - static int le_key; - static int le_x509; - static int le_csr; -@@ -825,7 +958,7 @@ static int add_oid_section(struct php_x509_request * req TSRMLS_DC) /* {{{ */ - } - for (i = 0; i < sk_CONF_VALUE_num(sktmp); i++) { - cnf = sk_CONF_VALUE_value(sktmp, i); -- if (OBJ_create(cnf->value, cnf->name, cnf->name) == NID_undef) { -+ if (OBJ_sn2nid(cnf->name) == NID_undef && OBJ_ln2nid(cnf->name) == NID_undef && OBJ_create(cnf->value, cnf->name, cnf->name) == NID_undef) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "problem creating object %s=%s", cnf->name, cnf->value); - return FAILURE; - } -@@ -967,7 +1100,7 @@ static void php_openssl_dispose_config(struct php_x509_request * req TSRMLS_DC) - } - /* }}} */ - --#ifdef PHP_WIN32 -+#if defined(PHP_WIN32) || (OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)) - #define PHP_OPENSSL_RAND_ADD_TIME() ((void) 0) - #else - #define PHP_OPENSSL_RAND_ADD_TIME() php_openssl_rand_add_timeval() -@@ -1053,9 +1186,11 @@ static EVP_MD * php_openssl_get_evp_md_from_algo(long algo) { /* {{{ */ - mdtype = (EVP_MD *) EVP_md2(); - break; - #endif -+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER) - case OPENSSL_ALGO_DSS1: - mdtype = (EVP_MD *) EVP_dss1(); - break; -+#endif - #if OPENSSL_VERSION_NUMBER >= 0x0090708fL - case OPENSSL_ALGO_SHA224: - mdtype = (EVP_MD *) EVP_sha224(); -@@ -1146,6 +1281,12 @@ PHP_MINIT_FUNCTION(openssl) - OpenSSL_add_all_digests(); - OpenSSL_add_all_algorithms(); - -+#if !defined(OPENSSL_NO_AES) && defined(EVP_CIPH_CCM_MODE) && OPENSSL_VERSION_NUMBER < 0x100020000 -+ EVP_add_cipher(EVP_aes_128_ccm()); -+ EVP_add_cipher(EVP_aes_192_ccm()); -+ EVP_add_cipher(EVP_aes_256_ccm()); -+#endif -+ - SSL_load_error_strings(); - - /* register a resource id number with OpenSSL so that we can map SSL -> stream structures in -@@ -1173,7 +1314,9 @@ PHP_MINIT_FUNCTION(openssl) - #ifdef HAVE_OPENSSL_MD2_H - REGISTER_LONG_CONSTANT("OPENSSL_ALGO_MD2", OPENSSL_ALGO_MD2, CONST_CS|CONST_PERSISTENT); - #endif -+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER) - REGISTER_LONG_CONSTANT("OPENSSL_ALGO_DSS1", OPENSSL_ALGO_DSS1, CONST_CS|CONST_PERSISTENT); -+#endif - #if OPENSSL_VERSION_NUMBER >= 0x0090708fL - REGISTER_LONG_CONSTANT("OPENSSL_ALGO_SHA224", OPENSSL_ALGO_SHA224, CONST_CS|CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("OPENSSL_ALGO_SHA256", OPENSSL_ALGO_SHA256, CONST_CS|CONST_PERSISTENT); -@@ -1251,7 +1394,9 @@ PHP_MINIT_FUNCTION(openssl) - } - - php_stream_xport_register("ssl", php_openssl_ssl_socket_factory TSRMLS_CC); -+#ifndef OPENSSL_NO_SSL3 - php_stream_xport_register("sslv3", php_openssl_ssl_socket_factory TSRMLS_CC); -+#endif - #ifndef OPENSSL_NO_SSL2 - php_stream_xport_register("sslv2", php_openssl_ssl_socket_factory TSRMLS_CC); - #endif -@@ -1308,7 +1453,9 @@ PHP_MSHUTDOWN_FUNCTION(openssl) - #ifndef OPENSSL_NO_SSL2 - php_stream_xport_unregister("sslv2" TSRMLS_CC); - #endif -+#ifndef OPENSSL_NO_SSL3 - php_stream_xport_unregister("sslv3" TSRMLS_CC); -+#endif - php_stream_xport_unregister("tls" TSRMLS_CC); - php_stream_xport_unregister("tlsv1.0" TSRMLS_CC); - #if OPENSSL_VERSION_NUMBER >= 0x10001001L -@@ -1893,6 +2040,7 @@ static int openssl_x509v3_subjectAltName(BIO *bio, X509_EXTENSION *extension) - { - GENERAL_NAMES *names; - const X509V3_EXT_METHOD *method = NULL; -+ ASN1_OCTET_STRING *extension_data; - long i, length, num; - const unsigned char *p; - -@@ -1901,8 +2049,9 @@ static int openssl_x509v3_subjectAltName(BIO *bio, X509_EXTENSION *extension) - return -1; - } - -- p = extension->value->data; -- length = extension->value->length; -+ extension_data = X509_EXTENSION_get_data(extension); -+ p = extension_data->data; -+ length = extension_data->length; - if (method->it) { - names = (GENERAL_NAMES*)(ASN1_item_d2i(NULL, &p, length, - ASN1_ITEM_ptr(method->it))); -@@ -1965,6 +2114,8 @@ PHP_FUNCTION(openssl_x509_parse) - char * tmpstr; - zval * subitem; - X509_EXTENSION *extension; -+ X509_NAME *subject_name; -+ char *cert_name; - char *extname; - BIO *bio_out; - BUF_MEM *bio_buf; -@@ -1979,10 +2130,10 @@ PHP_FUNCTION(openssl_x509_parse) - } - array_init(return_value); - -- if (cert->name) { -- add_assoc_string(return_value, "name", cert->name, 1); -- } --/* add_assoc_bool(return_value, "valid", cert->valid); */ -+ subject_name = X509_get_subject_name(cert); -+ cert_name = X509_NAME_oneline(subject_name, NULL, 0); -+ add_assoc_string(return_value, "name", cert_name, 1); -+ OPENSSL_free(cert_name); - - add_assoc_name_entry(return_value, "subject", X509_get_subject_name(cert), useshortnames TSRMLS_CC); - /* hash as used in CA directories to lookup cert by subject name */ -@@ -2008,7 +2159,7 @@ PHP_FUNCTION(openssl_x509_parse) - add_assoc_string(return_value, "alias", tmpstr, 1); - } - -- sig_nid = OBJ_obj2nid((cert)->sig_alg->algorithm); -+ sig_nid = X509_get_signature_nid(cert); - add_assoc_string(return_value, "signatureTypeSN", (char*)OBJ_nid2sn(sig_nid), 1); - add_assoc_string(return_value, "signatureTypeLN", (char*)OBJ_nid2ln(sig_nid), 1); - add_assoc_long(return_value, "signatureTypeNID", sig_nid); -@@ -3217,7 +3368,21 @@ PHP_FUNCTION(openssl_csr_get_public_key) - RETURN_FALSE; - } - -- tpubkey=X509_REQ_get_pubkey(csr); -+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) -+ /* Due to changes in OpenSSL 1.1 related to locking when decoding CSR, -+ * the pub key is not changed after assigning. It means if we pass -+ * a private key, it will be returned including the private part. -+ * If we duplicate it, then we get just the public part which is -+ * the same behavior as for OpenSSL 1.0 */ -+ csr = X509_REQ_dup(csr); -+#endif -+ /* Retrieve the public key from the CSR */ -+ tpubkey = X509_REQ_get_pubkey(csr); -+ -+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) -+ /* We need to free the CSR as it was duplicated */ -+ X509_REQ_free(csr); -+#endif - RETVAL_RESOURCE(zend_list_insert(tpubkey, le_key TSRMLS_CC)); - return; - } -@@ -3482,13 +3647,20 @@ static int php_openssl_is_private_key(EVP_PKEY* pkey TSRMLS_DC) - { - assert(pkey != NULL); - -- switch (pkey->type) { -+ switch (EVP_PKEY_id(pkey)) { - #ifndef NO_RSA - case EVP_PKEY_RSA: - case EVP_PKEY_RSA2: -- assert(pkey->pkey.rsa != NULL); -- if (pkey->pkey.rsa != NULL && (NULL == pkey->pkey.rsa->p || NULL == pkey->pkey.rsa->q)) { -- return 0; -+ { -+ RSA *rsa = EVP_PKEY_get0_RSA(pkey); -+ if (rsa != NULL) { -+ const BIGNUM *p, *q; -+ -+ RSA_get0_factors(rsa, &p, &q); -+ if (p == NULL || q == NULL) { -+ return 0; -+ } -+ } - } - break; - #endif -@@ -3498,28 +3670,51 @@ static int php_openssl_is_private_key(EVP_PKEY* pkey TSRMLS_DC) - case EVP_PKEY_DSA2: - case EVP_PKEY_DSA3: - case EVP_PKEY_DSA4: -- assert(pkey->pkey.dsa != NULL); -- -- if (NULL == pkey->pkey.dsa->p || NULL == pkey->pkey.dsa->q || NULL == pkey->pkey.dsa->priv_key){ -- return 0; -+ { -+ DSA *dsa = EVP_PKEY_get0_DSA(pkey); -+ if (dsa != NULL) { -+ const BIGNUM *p, *q, *g, *pub_key, *priv_key; -+ -+ DSA_get0_pqg(dsa, &p, &q, &g); -+ if (p == NULL || q == NULL) { -+ return 0; -+ } -+ -+ DSA_get0_key(dsa, &pub_key, &priv_key); -+ if (priv_key == NULL) { -+ return 0; -+ } -+ } - } - break; - #endif - #ifndef NO_DH - case EVP_PKEY_DH: -- assert(pkey->pkey.dh != NULL); -- -- if (NULL == pkey->pkey.dh->p || NULL == pkey->pkey.dh->priv_key) { -- return 0; -+ { -+ DH *dh = EVP_PKEY_get0_DH(pkey); -+ if (dh != NULL) { -+ const BIGNUM *p, *q, *g, *pub_key, *priv_key; -+ -+ DH_get0_pqg(dh, &p, &q, &g); -+ if (p == NULL) { -+ return 0; -+ } -+ -+ DH_get0_key(dh, &pub_key, &priv_key); -+ if (priv_key == NULL) { -+ return 0; -+ } -+ } - } - break; - #endif - #ifdef HAVE_EVP_PKEY_EC - case EVP_PKEY_EC: -- assert(pkey->pkey.ec != NULL); -- -- if ( NULL == EC_KEY_get0_private_key(pkey->pkey.ec)) { -- return 0; -+ { -+ EC_KEY *ec = EVP_PKEY_get0_EC_KEY(pkey); -+ if (ec != NULL && NULL == EC_KEY_get0_private_key(ec)) { -+ return 0; -+ } - } - break; - #endif -@@ -3531,34 +3726,80 @@ static int php_openssl_is_private_key(EVP_PKEY* pkey TSRMLS_DC) - } - /* }}} */ - --#define OPENSSL_PKEY_GET_BN(_type, _name) do { \ -- if (pkey->pkey._type->_name != NULL) { \ -- int len = BN_num_bytes(pkey->pkey._type->_name); \ -- char *str = emalloc(len + 1); \ -- BN_bn2bin(pkey->pkey._type->_name, (unsigned char*)str); \ -- str[len] = 0; \ -- add_assoc_stringl(_type, #_name, str, len, 0); \ -- } \ -- } while (0) -- --#define OPENSSL_PKEY_SET_BN(_ht, _type, _name) do { \ -- zval **bn; \ -- if (zend_hash_find(_ht, #_name, sizeof(#_name), (void**)&bn) == SUCCESS && \ -- Z_TYPE_PP(bn) == IS_STRING) { \ -- _type->_name = BN_bin2bn( \ -- (unsigned char*)Z_STRVAL_PP(bn), \ -- Z_STRLEN_PP(bn), NULL); \ -- } \ -+#define OPENSSL_GET_BN(_array, _bn, _name) do { \ -+ if (_bn != NULL) { \ -+ int len = BN_num_bytes(_bn); \ -+ char *str = emalloc(len + 1); \ -+ BN_bn2bin(_bn, (unsigned char*)str); \ -+ str[len] = 0; \ -+ add_assoc_stringl(_array, #_name, str, len, 0); \ -+ } \ - } while (0); - -+#define OPENSSL_PKEY_GET_BN(_type, _name) OPENSSL_GET_BN(_type, _name, _name) -+ -+#define OPENSSL_PKEY_SET_BN(_data, _name) do { \ -+ zval **bn; \ -+ if (zend_hash_find(Z_ARRVAL_P(_data), #_name, sizeof(#_name),(void**)&bn) == SUCCESS && \ -+ Z_TYPE_PP(bn) == IS_STRING) { \ -+ _name = BN_bin2bn( \ -+ (unsigned char*)Z_STRVAL_PP(bn), \ -+ Z_STRLEN_PP(bn), NULL); \ -+ } else { \ -+ _name = NULL; \ -+ } \ -+ } while (0); -+ -+/* {{{ php_openssl_pkey_init_rsa */ -+zend_bool php_openssl_pkey_init_and_assign_rsa(EVP_PKEY *pkey, RSA *rsa, zval *data) -+{ -+ BIGNUM *n, *e, *d, *p, *q, *dmp1, *dmq1, *iqmp; -+ -+ OPENSSL_PKEY_SET_BN(data, n); -+ OPENSSL_PKEY_SET_BN(data, e); -+ OPENSSL_PKEY_SET_BN(data, d); -+ if (!n || !d || !RSA_set0_key(rsa, n, e, d)) { -+ return 0; -+ } -+ -+ OPENSSL_PKEY_SET_BN(data, p); -+ OPENSSL_PKEY_SET_BN(data, q); -+ if ((p || q) && !RSA_set0_factors(rsa, p, q)) { -+ return 0; -+ } -+ -+ OPENSSL_PKEY_SET_BN(data, dmp1); -+ OPENSSL_PKEY_SET_BN(data, dmq1); -+ OPENSSL_PKEY_SET_BN(data, iqmp); -+ if ((dmp1 || dmq1 || iqmp) && !RSA_set0_crt_params(rsa, dmp1, dmq1, iqmp)) { -+ return 0; -+ } -+ -+ if (!EVP_PKEY_assign_RSA(pkey, rsa)) { -+ return 0; -+ } -+ -+ return 1; -+} -+/* }}} */ -+ - /* {{{ php_openssl_pkey_init_dsa */ --zend_bool php_openssl_pkey_init_dsa(DSA *dsa) -+zend_bool php_openssl_pkey_init_dsa(DSA *dsa, zval *data) - { -- if (!dsa->p || !dsa->q || !dsa->g) { -+ BIGNUM *p, *q, *g, *priv_key, *pub_key; -+ const BIGNUM *priv_key_const, *pub_key_const; -+ -+ OPENSSL_PKEY_SET_BN(data, p); -+ OPENSSL_PKEY_SET_BN(data, q); -+ OPENSSL_PKEY_SET_BN(data, g); -+ if (!p || !q || !g || !DSA_set0_pqg(dsa, p, q, g)) { - return 0; - } -- if (dsa->priv_key || dsa->pub_key) { -- return 1; -+ -+ OPENSSL_PKEY_SET_BN(data, pub_key); -+ OPENSSL_PKEY_SET_BN(data, priv_key); -+ if (pub_key) { -+ return DSA_set0_key(dsa, pub_key, priv_key); - } - PHP_OPENSSL_RAND_ADD_TIME(); - if (!DSA_generate_key(dsa)) { -@@ -3566,7 +3807,8 @@ zend_bool php_openssl_pkey_init_dsa(DSA *dsa) - } - /* if BN_mod_exp return -1, then DSA_generate_key succeed for failed key - * so we need to double check that public key is created */ -- if (!dsa->pub_key || BN_is_zero(dsa->pub_key)) { -+ DSA_get0_key(dsa, &pub_key_const, &priv_key_const); -+ if (!pub_key_const || BN_is_zero(pub_key_const)) { - return 0; - } - /* all good */ -@@ -3574,14 +3816,66 @@ zend_bool php_openssl_pkey_init_dsa(DSA *dsa) - } - /* }}} */ - -+/* {{{ php_openssl_dh_pub_from_priv */ -+static BIGNUM *php_openssl_dh_pub_from_priv(BIGNUM *priv_key, BIGNUM *g, BIGNUM *p) -+{ -+ BIGNUM *pub_key, *priv_key_const_time; -+ BN_CTX *ctx; -+ -+ pub_key = BN_new(); -+ if (pub_key == NULL) { -+ return NULL; -+ } -+ -+ priv_key_const_time = BN_new(); -+ if (priv_key_const_time == NULL) { -+ BN_free(pub_key); -+ return NULL; -+ } -+ ctx = BN_CTX_new(); -+ if (ctx == NULL) { -+ BN_free(pub_key); -+ BN_free(priv_key_const_time); -+ return NULL; -+ } -+ -+ BN_with_flags(priv_key_const_time, priv_key, BN_FLG_CONSTTIME); -+ -+ if (!BN_mod_exp_mont(pub_key, g, priv_key_const_time, p, ctx, NULL)) { -+ BN_free(pub_key); -+ pub_key = NULL; -+ } -+ -+ BN_free(priv_key_const_time); -+ BN_CTX_free(ctx); -+ -+ return pub_key; -+} -+/* }}} */ -+ - /* {{{ php_openssl_pkey_init_dh */ --zend_bool php_openssl_pkey_init_dh(DH *dh) -+zend_bool php_openssl_pkey_init_dh(DH *dh, zval *data) - { -- if (!dh->p || !dh->g) { -+ BIGNUM *p, *q, *g, *priv_key, *pub_key; -+ -+ OPENSSL_PKEY_SET_BN(data, p); -+ OPENSSL_PKEY_SET_BN(data, q); -+ OPENSSL_PKEY_SET_BN(data, g); -+ if (!p || !g || !DH_set0_pqg(dh, p, q, g)) { - return 0; - } -- if (dh->pub_key) { -- return 1; -+ -+ OPENSSL_PKEY_SET_BN(data, priv_key); -+ OPENSSL_PKEY_SET_BN(data, pub_key); -+ if (pub_key) { -+ return DH_set0_key(dh, pub_key, priv_key); -+ } -+ if (priv_key) { -+ pub_key = php_openssl_dh_pub_from_priv(priv_key, g, p); -+ if (pub_key == NULL) { -+ return 0; -+ } -+ return DH_set0_key(dh, pub_key, priv_key); - } - PHP_OPENSSL_RAND_ADD_TIME(); - if (!DH_generate_key(dh)) { -@@ -3614,18 +3908,8 @@ PHP_FUNCTION(openssl_pkey_new) - if (pkey) { - RSA *rsa = RSA_new(); - if (rsa) { -- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), rsa, n); -- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), rsa, e); -- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), rsa, d); -- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), rsa, p); -- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), rsa, q); -- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), rsa, dmp1); -- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), rsa, dmq1); -- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), rsa, iqmp); -- if (rsa->n && rsa->d) { -- if (EVP_PKEY_assign_RSA(pkey, rsa)) { -- RETURN_RESOURCE(zend_list_insert(pkey, le_key TSRMLS_CC)); -- } -+ if (php_openssl_pkey_init_and_assign_rsa(pkey, rsa, *data)) { -+ RETURN_RESOURCE(zend_list_insert(pkey, le_key TSRMLS_CC)); - } - RSA_free(rsa); - } -@@ -3638,12 +3922,7 @@ PHP_FUNCTION(openssl_pkey_new) - if (pkey) { - DSA *dsa = DSA_new(); - if (dsa) { -- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dsa, p); -- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dsa, q); -- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dsa, g); -- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dsa, priv_key); -- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dsa, pub_key); -- if (php_openssl_pkey_init_dsa(dsa)) { -+ if (php_openssl_pkey_init_dsa(dsa, *data)) { - if (EVP_PKEY_assign_DSA(pkey, dsa)) { - RETURN_RESOURCE(zend_list_insert(pkey, le_key TSRMLS_CC)); - } -@@ -3659,11 +3938,7 @@ PHP_FUNCTION(openssl_pkey_new) - if (pkey) { - DH *dh = DH_new(); - if (dh) { -- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dh, p); -- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dh, g); -- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dh, priv_key); -- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dh, pub_key); -- if (php_openssl_pkey_init_dh(dh)) { -+ if (php_openssl_pkey_init_dh(dh, *data)) { - if (EVP_PKEY_assign_DH(pkey, dh)) { - RETURN_RESOURCE(zend_list_insert(pkey, le_key TSRMLS_CC)); - } -@@ -3738,10 +4013,10 @@ PHP_FUNCTION(openssl_pkey_export_to_file) - cipher = NULL; - } - -- switch (EVP_PKEY_type(key->type)) { -+ switch (EVP_PKEY_base_id(key)) { - #ifdef HAVE_EVP_PKEY_EC - case EVP_PKEY_EC: -- pem_write = PEM_write_bio_ECPrivateKey(bio_out, EVP_PKEY_get1_EC_KEY(key), cipher, (unsigned char *)passphrase, passphrase_len, NULL, NULL); -+ pem_write = PEM_write_bio_ECPrivateKey(bio_out, EVP_PKEY_get0_EC_KEY(key), cipher, (unsigned char *)passphrase, passphrase_len, NULL, NULL); - break; - #endif - default: -@@ -3807,7 +4082,7 @@ PHP_FUNCTION(openssl_pkey_export) - cipher = NULL; - } - -- switch (EVP_PKEY_type(key->type)) { -+ switch (EVP_PKEY_base_id(key)) { - #ifdef HAVE_EVP_PKEY_EC - case EVP_PKEY_EC: - pem_write = PEM_write_bio_ECPrivateKey(bio_out, EVP_PKEY_get1_EC_KEY(key), cipher, (unsigned char *)passphrase, passphrase_len, NULL, NULL); -@@ -3928,25 +4203,33 @@ PHP_FUNCTION(openssl_pkey_get_details) - /*TODO: Use the real values once the openssl constants are used - * See the enum at the top of this file - */ -- switch (EVP_PKEY_type(pkey->type)) { -+ switch (EVP_PKEY_base_id(pkey)) { - case EVP_PKEY_RSA: - case EVP_PKEY_RSA2: -- ktype = OPENSSL_KEYTYPE_RSA; -- -- if (pkey->pkey.rsa != NULL) { -- zval *rsa; -- -- ALLOC_INIT_ZVAL(rsa); -- array_init(rsa); -- OPENSSL_PKEY_GET_BN(rsa, n); -- OPENSSL_PKEY_GET_BN(rsa, e); -- OPENSSL_PKEY_GET_BN(rsa, d); -- OPENSSL_PKEY_GET_BN(rsa, p); -- OPENSSL_PKEY_GET_BN(rsa, q); -- OPENSSL_PKEY_GET_BN(rsa, dmp1); -- OPENSSL_PKEY_GET_BN(rsa, dmq1); -- OPENSSL_PKEY_GET_BN(rsa, iqmp); -- add_assoc_zval(return_value, "rsa", rsa); -+ { -+ RSA *rsa = EVP_PKEY_get0_RSA(pkey); -+ ktype = OPENSSL_KEYTYPE_RSA; -+ -+ if (rsa != NULL) { -+ zval *z_rsa; -+ const BIGNUM *n, *e, *d, *p, *q, *dmp1, *dmq1, *iqmp; -+ -+ RSA_get0_key(rsa, &n, &e, &d); -+ RSA_get0_factors(rsa, &p, &q); -+ RSA_get0_crt_params(rsa, &dmp1, &dmq1, &iqmp); -+ -+ ALLOC_INIT_ZVAL(z_rsa); -+ array_init(z_rsa); -+ OPENSSL_PKEY_GET_BN(z_rsa, n); -+ OPENSSL_PKEY_GET_BN(z_rsa, e); -+ OPENSSL_PKEY_GET_BN(z_rsa, d); -+ OPENSSL_PKEY_GET_BN(z_rsa, p); -+ OPENSSL_PKEY_GET_BN(z_rsa, q); -+ OPENSSL_PKEY_GET_BN(z_rsa, dmp1); -+ OPENSSL_PKEY_GET_BN(z_rsa, dmq1); -+ OPENSSL_PKEY_GET_BN(z_rsa, iqmp); -+ add_assoc_zval(return_value, "rsa", z_rsa); -+ } - } - - break; -@@ -3954,42 +4237,55 @@ PHP_FUNCTION(openssl_pkey_get_details) - case EVP_PKEY_DSA2: - case EVP_PKEY_DSA3: - case EVP_PKEY_DSA4: -- ktype = OPENSSL_KEYTYPE_DSA; -- -- if (pkey->pkey.dsa != NULL) { -- zval *dsa; -- -- ALLOC_INIT_ZVAL(dsa); -- array_init(dsa); -- OPENSSL_PKEY_GET_BN(dsa, p); -- OPENSSL_PKEY_GET_BN(dsa, q); -- OPENSSL_PKEY_GET_BN(dsa, g); -- OPENSSL_PKEY_GET_BN(dsa, priv_key); -- OPENSSL_PKEY_GET_BN(dsa, pub_key); -- add_assoc_zval(return_value, "dsa", dsa); -+ { -+ DSA *dsa = EVP_PKEY_get0_DSA(pkey); -+ ktype = OPENSSL_KEYTYPE_DSA; -+ -+ if (dsa != NULL) { -+ zval *z_dsa; -+ const BIGNUM *p, *q, *g, *priv_key, *pub_key; -+ -+ DSA_get0_pqg(dsa, &p, &q, &g); -+ DSA_get0_key(dsa, &pub_key, &priv_key); -+ -+ ALLOC_INIT_ZVAL(z_dsa); -+ array_init(z_dsa); -+ OPENSSL_PKEY_GET_BN(z_dsa, p); -+ OPENSSL_PKEY_GET_BN(z_dsa, q); -+ OPENSSL_PKEY_GET_BN(z_dsa, g); -+ OPENSSL_PKEY_GET_BN(z_dsa, priv_key); -+ OPENSSL_PKEY_GET_BN(z_dsa, pub_key); -+ add_assoc_zval(return_value, "dsa", z_dsa); -+ } - } - break; - case EVP_PKEY_DH: -- -- ktype = OPENSSL_KEYTYPE_DH; -- -- if (pkey->pkey.dh != NULL) { -- zval *dh; -- -- ALLOC_INIT_ZVAL(dh); -- array_init(dh); -- OPENSSL_PKEY_GET_BN(dh, p); -- OPENSSL_PKEY_GET_BN(dh, g); -- OPENSSL_PKEY_GET_BN(dh, priv_key); -- OPENSSL_PKEY_GET_BN(dh, pub_key); -- add_assoc_zval(return_value, "dh", dh); -+ { -+ DH *dh = EVP_PKEY_get0_DH(pkey); -+ ktype = OPENSSL_KEYTYPE_DH; -+ -+ if (dh != NULL) { -+ zval *z_dh; -+ const BIGNUM *p, *q, *g, *priv_key, *pub_key; -+ -+ DH_get0_pqg(dh, &p, &q, &g); -+ DH_get0_key(dh, &pub_key, &priv_key); -+ -+ ALLOC_INIT_ZVAL(z_dh); -+ array_init(z_dh); -+ OPENSSL_PKEY_GET_BN(z_dh, p); -+ OPENSSL_PKEY_GET_BN(z_dh, g); -+ OPENSSL_PKEY_GET_BN(z_dh, priv_key); -+ OPENSSL_PKEY_GET_BN(z_dh, pub_key); -+ add_assoc_zval(return_value, "dh", z_dh); -+ } - } - - break; - #ifdef HAVE_EVP_PKEY_EC - case EVP_PKEY_EC: - ktype = OPENSSL_KEYTYPE_EC; -- if (pkey->pkey.ec != NULL) { -+ if (EVP_PKEY_get0_EC_KEY(pkey) != NULL) { - zval *ec; - const EC_GROUP *ec_group; - int nid; -@@ -4546,13 +4842,13 @@ PHP_FUNCTION(openssl_private_encrypt) - cryptedlen = EVP_PKEY_size(pkey); - cryptedbuf = emalloc(cryptedlen + 1); - -- switch (pkey->type) { -+ switch (EVP_PKEY_id(pkey)) { - case EVP_PKEY_RSA: - case EVP_PKEY_RSA2: - successful = (RSA_private_encrypt(data_len, - (unsigned char *)data, - cryptedbuf, -- pkey->pkey.rsa, -+ EVP_PKEY_get0_RSA(pkey), - padding) == cryptedlen); - break; - default: -@@ -4604,13 +4900,13 @@ PHP_FUNCTION(openssl_private_decrypt) - cryptedlen = EVP_PKEY_size(pkey); - crypttemp = emalloc(cryptedlen + 1); - -- switch (pkey->type) { -+ switch (EVP_PKEY_id(pkey)) { - case EVP_PKEY_RSA: - case EVP_PKEY_RSA2: - cryptedlen = RSA_private_decrypt(data_len, - (unsigned char *)data, - crypttemp, -- pkey->pkey.rsa, -+ EVP_PKEY_get0_RSA(pkey), - padding); - if (cryptedlen != -1) { - cryptedbuf = emalloc(cryptedlen + 1); -@@ -4669,13 +4965,13 @@ PHP_FUNCTION(openssl_public_encrypt) - cryptedlen = EVP_PKEY_size(pkey); - cryptedbuf = emalloc(cryptedlen + 1); - -- switch (pkey->type) { -+ switch (EVP_PKEY_id(pkey)) { - case EVP_PKEY_RSA: - case EVP_PKEY_RSA2: - successful = (RSA_public_encrypt(data_len, - (unsigned char *)data, - cryptedbuf, -- pkey->pkey.rsa, -+ EVP_PKEY_get0_RSA(pkey), - padding) == cryptedlen); - break; - default: -@@ -4728,13 +5024,13 @@ PHP_FUNCTION(openssl_public_decrypt) - cryptedlen = EVP_PKEY_size(pkey); - crypttemp = emalloc(cryptedlen + 1); - -- switch (pkey->type) { -+ switch (EVP_PKEY_id(pkey)) { - case EVP_PKEY_RSA: - case EVP_PKEY_RSA2: - cryptedlen = RSA_public_decrypt(data_len, - (unsigned char *)data, - crypttemp, -- pkey->pkey.rsa, -+ EVP_PKEY_get0_RSA(pkey), - padding); - if (cryptedlen != -1) { - cryptedbuf = emalloc(cryptedlen + 1); -@@ -4798,7 +5094,7 @@ PHP_FUNCTION(openssl_sign) - long keyresource = -1; - char * data; - int data_len; -- EVP_MD_CTX md_ctx; -+ EVP_MD_CTX *md_ctx; - zval *method = NULL; - long signature_algo = OPENSSL_ALGO_SHA1; - const EVP_MD *mdtype; -@@ -4831,9 +5127,10 @@ PHP_FUNCTION(openssl_sign) - siglen = EVP_PKEY_size(pkey); - sigbuf = emalloc(siglen + 1); - -- EVP_SignInit(&md_ctx, mdtype); -- EVP_SignUpdate(&md_ctx, data, data_len); -- if (EVP_SignFinal (&md_ctx, sigbuf,(unsigned int *)&siglen, pkey)) { -+ md_ctx = EVP_MD_CTX_create(); -+ EVP_SignInit(md_ctx, mdtype); -+ EVP_SignUpdate(md_ctx, data, data_len); -+ if (EVP_SignFinal (md_ctx, sigbuf,(unsigned int *)&siglen, pkey)) { - zval_dtor(signature); - sigbuf[siglen] = '\0'; - ZVAL_STRINGL(signature, (char *)sigbuf, siglen, 0); -@@ -4842,7 +5139,7 @@ PHP_FUNCTION(openssl_sign) - efree(sigbuf); - RETVAL_FALSE; - } -- EVP_MD_CTX_cleanup(&md_ctx); -+ EVP_MD_CTX_destroy(md_ctx); - if (keyresource == -1) { - EVP_PKEY_free(pkey); - } -@@ -4856,7 +5153,7 @@ PHP_FUNCTION(openssl_verify) - zval **key; - EVP_PKEY *pkey; - int err; -- EVP_MD_CTX md_ctx; -+ EVP_MD_CTX *md_ctx; - const EVP_MD *mdtype; - long keyresource = -1; - char * data; int data_len; -@@ -4890,10 +5187,11 @@ PHP_FUNCTION(openssl_verify) - RETURN_FALSE; - } - -- EVP_VerifyInit (&md_ctx, mdtype); -- EVP_VerifyUpdate (&md_ctx, data, data_len); -- err = EVP_VerifyFinal (&md_ctx, (unsigned char *)signature, signature_len, pkey); -- EVP_MD_CTX_cleanup(&md_ctx); -+ md_ctx = EVP_MD_CTX_create(); -+ EVP_VerifyInit (md_ctx, mdtype); -+ EVP_VerifyUpdate (md_ctx, data, data_len); -+ err = EVP_VerifyFinal (md_ctx, (unsigned char *)signature, signature_len, pkey); -+ EVP_MD_CTX_destroy(md_ctx); - - if (keyresource == -1) { - EVP_PKEY_free(pkey); -@@ -4917,7 +5215,7 @@ PHP_FUNCTION(openssl_seal) - char *method =NULL; - int method_len = 0; - const EVP_CIPHER *cipher; -- EVP_CIPHER_CTX ctx; -+ EVP_CIPHER_CTX *ctx; - - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "szza/|s", &data, &data_len, &sealdata, &ekeys, &pubkeys, &method, &method_len) == FAILURE) { - return; -@@ -4950,6 +5248,7 @@ PHP_FUNCTION(openssl_seal) - memset(eks, 0, sizeof(*eks) * nkeys); - key_resources = safe_emalloc(nkeys, sizeof(long), 0); - memset(key_resources, 0, sizeof(*key_resources) * nkeys); -+ memset(pkeys, 0, sizeof(*pkeys) * nkeys); - - /* get the public keys we are using to seal this data */ - zend_hash_internal_pointer_reset_ex(pubkeysht, &pos); -@@ -4967,27 +5266,28 @@ PHP_FUNCTION(openssl_seal) - i++; - } - -- if (!EVP_EncryptInit(&ctx,cipher,NULL,NULL)) { -+ ctx = EVP_CIPHER_CTX_new(); -+ if (ctx == NULL || !EVP_EncryptInit(ctx,cipher,NULL,NULL)) { - RETVAL_FALSE; -- EVP_CIPHER_CTX_cleanup(&ctx); -+ EVP_CIPHER_CTX_free(ctx); - goto clean_exit; - } - - #if 0 - /* Need this if allow ciphers that require initialization vector */ -- ivlen = EVP_CIPHER_CTX_iv_length(&ctx); -+ ivlen = EVP_CIPHER_CTX_iv_length(ctx); - iv = ivlen ? emalloc(ivlen + 1) : NULL; - #endif - /* allocate one byte extra to make room for \0 */ -- buf = emalloc(data_len + EVP_CIPHER_CTX_block_size(&ctx)); -- EVP_CIPHER_CTX_cleanup(&ctx); -+ buf = emalloc(data_len + EVP_CIPHER_CTX_block_size(ctx)); -+ EVP_CIPHER_CTX_cleanup(ctx); - -- if (EVP_SealInit(&ctx, cipher, eks, eksl, NULL, pkeys, nkeys) <= 0 || -- !EVP_SealUpdate(&ctx, buf, &len1, (unsigned char *)data, data_len) || -- !EVP_SealFinal(&ctx, buf + len1, &len2)) { -+ if (EVP_SealInit(ctx, cipher, eks, eksl, NULL, pkeys, nkeys) <= 0 || -+ !EVP_SealUpdate(ctx, buf, &len1, (unsigned char *)data, data_len) || -+ !EVP_SealFinal(ctx, buf + len1, &len2)) { - RETVAL_FALSE; - efree(buf); -- EVP_CIPHER_CTX_cleanup(&ctx); -+ EVP_CIPHER_CTX_free(ctx); - goto clean_exit; - } - -@@ -5018,7 +5318,7 @@ PHP_FUNCTION(openssl_seal) - efree(buf); - } - RETVAL_LONG(len1 + len2); -- EVP_CIPHER_CTX_cleanup(&ctx); -+ EVP_CIPHER_CTX_free(ctx); - - clean_exit: - for (i=0; i<nkeys; i++) { -@@ -5045,7 +5345,7 @@ PHP_FUNCTION(openssl_open) - int len1, len2; - unsigned char *buf; - long keyresource = -1; -- EVP_CIPHER_CTX ctx; -+ EVP_CIPHER_CTX *ctx; - char * data; int data_len; - char * ekey; int ekey_len; - char *method =NULL; -@@ -5074,8 +5374,9 @@ PHP_FUNCTION(openssl_open) - - buf = emalloc(data_len + 1); - -- if (EVP_OpenInit(&ctx, cipher, (unsigned char *)ekey, ekey_len, NULL, pkey) && EVP_OpenUpdate(&ctx, buf, &len1, (unsigned char *)data, data_len)) { -- if (!EVP_OpenFinal(&ctx, buf + len1, &len2) || (len1 + len2 == 0)) { -+ ctx = EVP_CIPHER_CTX_new(); -+ if (EVP_OpenInit(ctx, cipher, (unsigned char *)ekey, ekey_len, NULL, pkey) && EVP_OpenUpdate(ctx, buf, &len1, (unsigned char *)data, data_len)) { -+ if (!EVP_OpenFinal(ctx, buf + len1, &len2) || (len1 + len2 == 0)) { - efree(buf); - RETVAL_FALSE; - } else { -@@ -5091,7 +5392,7 @@ PHP_FUNCTION(openssl_open) - if (keyresource == -1) { - EVP_PKEY_free(pkey); - } -- EVP_CIPHER_CTX_cleanup(&ctx); -+ EVP_CIPHER_CTX_free(ctx); - } - /* }}} */ - -@@ -5151,7 +5452,7 @@ PHP_FUNCTION(openssl_digest) - char *data, *method; - int data_len, method_len; - const EVP_MD *mdtype; -- EVP_MD_CTX md_ctx; -+ EVP_MD_CTX *md_ctx; - int siglen; - unsigned char *sigbuf; - -@@ -5167,9 +5468,10 @@ PHP_FUNCTION(openssl_digest) - siglen = EVP_MD_size(mdtype); - sigbuf = emalloc(siglen + 1); - -- EVP_DigestInit(&md_ctx, mdtype); -- EVP_DigestUpdate(&md_ctx, (unsigned char *)data, data_len); -- if (EVP_DigestFinal (&md_ctx, (unsigned char *)sigbuf, (unsigned int *)&siglen)) { -+ md_ctx = EVP_MD_CTX_create(); -+ EVP_DigestInit(md_ctx, mdtype); -+ EVP_DigestUpdate(md_ctx, (unsigned char *)data, data_len); -+ if (EVP_DigestFinal (md_ctx, (unsigned char *)sigbuf, (unsigned int *)&siglen)) { - if (raw_output) { - sigbuf[siglen] = '\0'; - RETVAL_STRINGL((char *)sigbuf, siglen, 0); -@@ -5185,6 +5487,8 @@ PHP_FUNCTION(openssl_digest) - efree(sigbuf); - RETVAL_FALSE; - } -+ -+ EVP_MD_CTX_destroy(md_ctx); - } - /* }}} */ - -@@ -5230,7 +5534,7 @@ PHP_FUNCTION(openssl_encrypt) - char *data, *method, *password, *iv = ""; - int data_len, method_len, password_len, iv_len = 0, max_iv_len; - const EVP_CIPHER *cipher_type; -- EVP_CIPHER_CTX cipher_ctx; -+ EVP_CIPHER_CTX *cipher_ctx; - int i=0, outlen, keylen; - unsigned char *outbuf, *key; - zend_bool free_iv; -@@ -5262,19 +5566,24 @@ PHP_FUNCTION(openssl_encrypt) - outlen = data_len + EVP_CIPHER_block_size(cipher_type); - outbuf = safe_emalloc(outlen, 1, 1); - -- EVP_EncryptInit(&cipher_ctx, cipher_type, NULL, NULL); -+ cipher_ctx = EVP_CIPHER_CTX_new(); -+ if (!cipher_ctx) { -+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Failed to create cipher context"); -+ RETURN_FALSE; -+ } -+ EVP_EncryptInit(cipher_ctx, cipher_type, NULL, NULL); - if (password_len > keylen) { -- EVP_CIPHER_CTX_set_key_length(&cipher_ctx, password_len); -+ EVP_CIPHER_CTX_set_key_length(cipher_ctx, password_len); - } -- EVP_EncryptInit_ex(&cipher_ctx, NULL, NULL, key, (unsigned char *)iv); -+ EVP_EncryptInit_ex(cipher_ctx, NULL, NULL, key, (unsigned char *)iv); - if (options & OPENSSL_ZERO_PADDING) { -- EVP_CIPHER_CTX_set_padding(&cipher_ctx, 0); -+ EVP_CIPHER_CTX_set_padding(cipher_ctx, 0); - } - if (data_len > 0) { -- EVP_EncryptUpdate(&cipher_ctx, outbuf, &i, (unsigned char *)data, data_len); -+ EVP_EncryptUpdate(cipher_ctx, outbuf, &i, (unsigned char *)data, data_len); - } - outlen = i; -- if (EVP_EncryptFinal(&cipher_ctx, (unsigned char *)outbuf + i, &i)) { -+ if (EVP_EncryptFinal(cipher_ctx, (unsigned char *)outbuf + i, &i)) { - outlen += i; - if (options & OPENSSL_RAW_DATA) { - outbuf[outlen] = '\0'; -@@ -5301,7 +5610,8 @@ PHP_FUNCTION(openssl_encrypt) - if (free_iv) { - efree(iv); - } -- EVP_CIPHER_CTX_cleanup(&cipher_ctx); -+ EVP_CIPHER_CTX_cleanup(cipher_ctx); -+ EVP_CIPHER_CTX_free(cipher_ctx); - } - /* }}} */ - -@@ -5313,7 +5623,7 @@ PHP_FUNCTION(openssl_decrypt) - char *data, *method, *password, *iv = ""; - int data_len, method_len, password_len, iv_len = 0; - const EVP_CIPHER *cipher_type; -- EVP_CIPHER_CTX cipher_ctx; -+ EVP_CIPHER_CTX *cipher_ctx; - int i, outlen, keylen; - unsigned char *outbuf, *key; - int base64_str_len; -@@ -5359,17 +5669,23 @@ PHP_FUNCTION(openssl_decrypt) - outlen = data_len + EVP_CIPHER_block_size(cipher_type); - outbuf = emalloc(outlen + 1); - -- EVP_DecryptInit(&cipher_ctx, cipher_type, NULL, NULL); -+ cipher_ctx = EVP_CIPHER_CTX_new(); -+ if (!cipher_ctx) { -+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Failed to create cipher context"); -+ RETURN_FALSE; -+ } -+ -+ EVP_DecryptInit(cipher_ctx, cipher_type, NULL, NULL); - if (password_len > keylen) { -- EVP_CIPHER_CTX_set_key_length(&cipher_ctx, password_len); -+ EVP_CIPHER_CTX_set_key_length(cipher_ctx, password_len); - } -- EVP_DecryptInit_ex(&cipher_ctx, NULL, NULL, key, (unsigned char *)iv); -+ EVP_DecryptInit_ex(cipher_ctx, NULL, NULL, key, (unsigned char *)iv); - if (options & OPENSSL_ZERO_PADDING) { -- EVP_CIPHER_CTX_set_padding(&cipher_ctx, 0); -+ EVP_CIPHER_CTX_set_padding(cipher_ctx, 0); - } -- EVP_DecryptUpdate(&cipher_ctx, outbuf, &i, (unsigned char *)data, data_len); -+ EVP_DecryptUpdate(cipher_ctx, outbuf, &i, (unsigned char *)data, data_len); - outlen = i; -- if (EVP_DecryptFinal(&cipher_ctx, (unsigned char *)outbuf + i, &i)) { -+ if (EVP_DecryptFinal(cipher_ctx, (unsigned char *)outbuf + i, &i)) { - outlen += i; - outbuf[outlen] = '\0'; - RETVAL_STRINGL((char *)outbuf, outlen, 0); -@@ -5386,7 +5702,8 @@ PHP_FUNCTION(openssl_decrypt) - if (base64_str) { - efree(base64_str); - } -- EVP_CIPHER_CTX_cleanup(&cipher_ctx); -+ EVP_CIPHER_CTX_cleanup(cipher_ctx); -+ EVP_CIPHER_CTX_free(cipher_ctx); - } - /* }}} */ - -@@ -5424,6 +5741,7 @@ PHP_FUNCTION(openssl_dh_compute_key) - zval *key; - char *pub_str; - int pub_len; -+ DH *dh; - EVP_PKEY *pkey; - BIGNUM *pub; - char *data; -@@ -5433,14 +5751,21 @@ PHP_FUNCTION(openssl_dh_compute_key) - return; - } - ZEND_FETCH_RESOURCE(pkey, EVP_PKEY *, &key, -1, "OpenSSL key", le_key); -- if (!pkey || EVP_PKEY_type(pkey->type) != EVP_PKEY_DH || !pkey->pkey.dh) { -+ if (pkey == NULL) { -+ RETURN_FALSE; -+ } -+ if (EVP_PKEY_base_id(pkey) != EVP_PKEY_DH) { -+ RETURN_FALSE; -+ } -+ dh = EVP_PKEY_get0_DH(pkey); -+ if (dh == NULL) { - RETURN_FALSE; - } - - pub = BN_bin2bn((unsigned char*)pub_str, pub_len, NULL); - -- data = emalloc(DH_size(pkey->pkey.dh) + 1); -- len = DH_compute_key((unsigned char*)data, pub, pkey->pkey.dh); -+ data = emalloc(DH_size(dh) + 1); -+ len = DH_compute_key((unsigned char*)data, pub, dh); - - if (len >= 0) { - data[len] = 0; -diff --git a/ext/openssl/xp_ssl.c b/ext/openssl/xp_ssl.c -index d549033..c2d477c 100644 ---- a/ext/openssl/xp_ssl.c -+++ b/ext/openssl/xp_ssl.c -@@ -935,7 +935,7 @@ static int set_local_cert(SSL_CTX *ctx, php_stream *stream TSRMLS_DC) /* {{{ */ - static const SSL_METHOD *php_select_crypto_method(long method_value, int is_client TSRMLS_DC) /* {{{ */ - { - if (method_value == STREAM_CRYPTO_METHOD_SSLv2) { --#ifndef OPENSSL_NO_SSL2 -+#if !defined(OPENSSL_NO_SSL2) && OPENSSL_VERSION_NUMBER < 0x10100000L - return is_client ? SSLv2_client_method() : SSLv2_server_method(); - #else - php_error_docref(NULL TSRMLS_CC, E_WARNING, -@@ -1588,12 +1588,26 @@ int php_openssl_setup_crypto(php_stream *stream, - } - /* }}} */ - -+#define PHP_SSL_MAX_VERSION_LEN 32 -+ -+static char *php_ssl_cipher_get_version(const SSL_CIPHER *c, char *buffer, size_t max_len) /* {{{ */ -+{ -+ const char *version = SSL_CIPHER_get_version(c); -+ strncpy(buffer, version, max_len); -+ if (max_len <= strlen(version)) { -+ buffer[max_len - 1] = 0; -+ } -+ return buffer; -+} -+/* }}} */ -+ - static zval *capture_session_meta(SSL *ssl_handle) /* {{{ */ - { - zval *meta_arr; - char *proto_str; - long proto = SSL_version(ssl_handle); - const SSL_CIPHER *cipher = SSL_get_current_cipher(ssl_handle); -+ char version_str[PHP_SSL_MAX_VERSION_LEN]; - - switch (proto) { - #if OPENSSL_VERSION_NUMBER >= 0x10001001L -@@ -1611,7 +1625,7 @@ static zval *capture_session_meta(SSL *ssl_handle) /* {{{ */ - add_assoc_string(meta_arr, "protocol", proto_str, 1); - add_assoc_string(meta_arr, "cipher_name", (char *) SSL_CIPHER_get_name(cipher), 1); - add_assoc_long(meta_arr, "cipher_bits", SSL_CIPHER_get_bits(cipher, NULL)); -- add_assoc_string(meta_arr, "cipher_version", SSL_CIPHER_get_version(cipher), 1); -+ add_assoc_string(meta_arr, "cipher_version", php_ssl_cipher_get_version(cipher, version_str, PHP_SSL_MAX_VERSION_LEN), 1); - - return meta_arr; - } -diff --git a/ext/phar/util.c b/ext/phar/util.c -index 828be8f..06e4e55 100644 ---- a/ext/phar/util.c -+++ b/ext/phar/util.c -@@ -1531,7 +1531,7 @@ int phar_verify_signature(php_stream *fp, size_t end_of_phar, php_uint32 sig_typ - BIO *in; - EVP_PKEY *key; - EVP_MD *mdtype = (EVP_MD *) EVP_sha1(); -- EVP_MD_CTX md_ctx; -+ EVP_MD_CTX *md_ctx; - #else - int tempsig; - #endif -@@ -1608,7 +1608,8 @@ int phar_verify_signature(php_stream *fp, size_t end_of_phar, php_uint32 sig_typ - return FAILURE; - } - -- EVP_VerifyInit(&md_ctx, mdtype); -+ md_ctx = EVP_MD_CTX_create(); -+ EVP_VerifyInit(md_ctx, mdtype); - read_len = end_of_phar; - - if (read_len > sizeof(buf)) { -@@ -1620,7 +1621,7 @@ int phar_verify_signature(php_stream *fp, size_t end_of_phar, php_uint32 sig_typ - php_stream_seek(fp, 0, SEEK_SET); - - while (read_size && (len = php_stream_read(fp, (char*)buf, read_size)) > 0) { -- EVP_VerifyUpdate (&md_ctx, buf, len); -+ EVP_VerifyUpdate (md_ctx, buf, len); - read_len -= (off_t)len; - - if (read_len < read_size) { -@@ -1628,9 +1629,9 @@ int phar_verify_signature(php_stream *fp, size_t end_of_phar, php_uint32 sig_typ - } - } - -- if (EVP_VerifyFinal(&md_ctx, (unsigned char *)sig, sig_len, key) != 1) { -+ if (EVP_VerifyFinal(md_ctx, (unsigned char *)sig, sig_len, key) != 1) { - /* 1: signature verified, 0: signature does not match, -1: failed signature operation */ -- EVP_MD_CTX_cleanup(&md_ctx); -+ EVP_MD_CTX_destroy(md_ctx); - - if (error) { - spprintf(error, 0, "broken openssl signature"); -@@ -1639,7 +1640,7 @@ int phar_verify_signature(php_stream *fp, size_t end_of_phar, php_uint32 sig_typ - return FAILURE; - } - -- EVP_MD_CTX_cleanup(&md_ctx); -+ EVP_MD_CTX_destroy(md_ctx); - #endif - - *signature_len = phar_hex_str((const char*)sig, sig_len, signature TSRMLS_CC); --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude-use-pkgconfig-for-libxml2-config.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude-use-pkgconfig-for-libxml2-config.patch deleted file mode 100644 index e7d326d7e..000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude-use-pkgconfig-for-libxml2-config.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 003c9feaae6ed5c173edcea51193e49bc94ac39a Mon Sep 17 00:00:00 2001 -From: Koen Kooi <koen.kooi@linaro.org> -Date: Tue, 17 Jun 2014 09:53:00 +0200 -Subject: [PATCH 3/8] acinclude: use pkgconfig for libxml2 config - -Signed-off-by: Koen Kooi <koen.kooi@linaro.org> -Upstream-Status: Pending ---- - acinclude.m4 | 63 ++++++++++++++++++++++-------------------------------------- - 1 file changed, 23 insertions(+), 40 deletions(-) - -diff --git a/acinclude.m4 b/acinclude.m4 -index 206fcbf..a6c0d84 100644 ---- a/acinclude.m4 -+++ b/acinclude.m4 -@@ -2530,48 +2530,31 @@ dnl - dnl Common setup macro for libxml - dnl - AC_DEFUN([PHP_SETUP_LIBXML], [ --AC_CACHE_CHECK([for xml2-config path], ac_cv_php_xml2_config_path, --[ -- -- ac_cv_php_xml2_config_path="$PHP_LIBXML_DIR/xml2-config" -- -+PKG_CHECK_MODULES([LIBXML], [libxml-2.0 > 2.6.11], [ -+ PHP_EVAL_LIBLINE($LIBXML_LIBS, $1) -+ PHP_EVAL_INCLINE($LIBXML_CFLAGS) -+ -+ dnl Check that build works with given libs -+ AC_CACHE_CHECK(whether libxml build works, php_cv_libxml_build_works, [ -+ PHP_TEST_BUILD(xmlInitParser, -+ [ -+ php_cv_libxml_build_works=yes -+ AC_MSG_RESULT(yes) -+ ], [ -+ AC_MSG_RESULT(no) -+ AC_MSG_ERROR([build test failed. Please check the config.log for details.]) -+ ], [ -+ [$]$1 -+ ]) -+ ]) -+ if test "$php_cv_libxml_build_works" = "yes"; then -+ AC_DEFINE(HAVE_LIBXML, 1, [ ]) -+ fi -+ $2 -+], [ -+ AC_MSG_ERROR([$LIBXML_PKG_ERRORS]) - ]) - -- if test -x "$ac_cv_php_xml2_config_path"; then -- XML2_CONFIG="$ac_cv_php_xml2_config_path" -- libxml_full_version=`$XML2_CONFIG --version` -- ac_IFS=$IFS -- IFS="." -- set $libxml_full_version -- IFS=$ac_IFS -- LIBXML_VERSION=`expr [$]1 \* 1000000 + [$]2 \* 1000 + [$]3` -- if test "$LIBXML_VERSION" -ge "2006011"; then -- LIBXML_LIBS=`$XML2_CONFIG --libs` -- LIBXML_INCS=`$XML2_CONFIG --cflags` -- PHP_EVAL_LIBLINE($LIBXML_LIBS, $1) -- PHP_EVAL_INCLINE($LIBXML_INCS) -- -- dnl Check that build works with given libs -- AC_CACHE_CHECK(whether libxml build works, php_cv_libxml_build_works, [ -- PHP_TEST_BUILD(xmlInitParser, -- [ -- php_cv_libxml_build_works=yes -- ], [ -- AC_MSG_RESULT(no) -- AC_MSG_ERROR([build test failed. Please check the config.log for details.]) -- ], [ -- [$]$1 -- ]) -- ]) -- if test "$php_cv_libxml_build_works" = "yes"; then -- AC_DEFINE(HAVE_LIBXML, 1, [ ]) -- fi -- $2 -- else -- AC_MSG_ERROR([libxml2 version 2.6.11 or greater required.]) -- fi --ifelse([$3],[],,[else $3]) -- fi - ]) - - dnl ------------------------------------------------------------------------- --- -1.9.3 - diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/CVE-2019-6978.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/CVE-2019-6978.patch new file mode 100644 index 000000000..b7cdfd964 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/CVE-2019-6978.patch @@ -0,0 +1,192 @@ +From 089f7c0bc28d399b0420aa6ef058e4c1c120b2ae Mon Sep 17 00:00:00 2001 +From: "Christoph M. Becker" <cmbecker69@gmx.de> +Date: Sat, 19 Jan 2019 10:35:39 +0100 +Subject: [PATCH] Sync with upstream + +Even though libgd/libgd#492 is not a relevant bug fix for PHP, since +the binding doesn't use the `gdImage*Ptr()` functions at all, we're +porting the fix to stay in sync here. +--- + ext/gd/libgd/gd_gif_out.c | 20 +++++++++++++++++--- + ext/gd/libgd/gd_jpeg.c | 17 ++++++++++++++--- + ext/gd/libgd/gd_wbmp.c | 18 +++++++++++++++--- + 3 files changed, 46 insertions(+), 9 deletions(-) + +Upstream-Status: Backport [http://git.php.net/?p=php-src.git;a=commit;h=089f7c0bc28d399b0420aa6ef058e4c1c120b2ae] +CVE: CVE-2019-6978 + +Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com> + +diff --git a/ext/gd/libgd/gd_gif_out.c b/ext/gd/libgd/gd_gif_out.c +index 1f2a6b936a..2e1f38af70 100644 +--- a/ext/gd/libgd/gd_gif_out.c ++++ b/ext/gd/libgd/gd_gif_out.c +@@ -97,12 +97,18 @@ static void cl_hash (register count_int chsize, GifCtx *ctx); + static void char_init (GifCtx *ctx); + static void char_out (int c, GifCtx *ctx); + static void flush_char (GifCtx *ctx); ++ ++static int _gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out); ++ + void * gdImageGifPtr (gdImagePtr im, int *size) + { + void *rv; + gdIOCtx *out = gdNewDynamicCtx (2048, NULL); +- gdImageGifCtx (im, out); +- rv = gdDPExtractData (out, size); ++ if (!_gdImageGifCtx(im, out)) { ++ rv = gdDPExtractData(out, size); ++ } else { ++ rv = NULL; ++ } + out->gd_free (out); + return rv; + } +@@ -115,6 +121,12 @@ void gdImageGif (gdImagePtr im, FILE * outFile) + } + + void gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out) ++{ ++ _gdImageGifCtx(im, out); ++} ++ ++/* returns 0 on success, 1 on failure */ ++static int _gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out) + { + gdImagePtr pim = 0, tim = im; + int interlace, BitsPerPixel; +@@ -125,7 +137,7 @@ void gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out) + based temporary image. */ + pim = gdImageCreatePaletteFromTrueColor(im, 1, 256); + if (!pim) { +- return; ++ return 1; + } + tim = pim; + } +@@ -138,6 +150,8 @@ void gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out) + /* Destroy palette based temporary image. */ + gdImageDestroy( pim); + } ++ ++ return 0; + } + + static int +diff --git a/ext/gd/libgd/gd_jpeg.c b/ext/gd/libgd/gd_jpeg.c +index 8cf71fcbc9..ef46c4a22c 100644 +--- a/ext/gd/libgd/gd_jpeg.c ++++ b/ext/gd/libgd/gd_jpeg.c +@@ -132,6 +132,7 @@ const char * gdJpegGetVersionString() + } + } + ++static int _gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality); + + /* + * Write IM to OUTFILE as a JFIF-formatted JPEG image, using quality +@@ -153,8 +154,11 @@ void *gdImageJpegPtr (gdImagePtr im, int *size, int quality) + { + void *rv; + gdIOCtx *out = gdNewDynamicCtx (2048, NULL); +- gdImageJpegCtx (im, out, quality); +- rv = gdDPExtractData (out, size); ++ if (!_gdImageJpegCtx(im, out, quality)) { ++ rv = gdDPExtractData(out, size); ++ } else { ++ rv = NULL; ++ } + out->gd_free (out); + + return rv; +@@ -163,6 +167,12 @@ void *gdImageJpegPtr (gdImagePtr im, int *size, int quality) + void jpeg_gdIOCtx_dest (j_compress_ptr cinfo, gdIOCtx * outfile); + + void gdImageJpegCtx (gdImagePtr im, gdIOCtx * outfile, int quality) ++{ ++ _gdImageJpegCtx(im, outfile, quality); ++} ++ ++/* returns 0 on success, 1 on failure */ ++static int _gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality) + { + struct jpeg_compress_struct cinfo; + struct jpeg_error_mgr jerr; +@@ -184,7 +194,7 @@ void gdImageJpegCtx (gdImagePtr im, gdIOCtx * outfile, int quality) + if (row) { + gdFree (row); + } +- return; ++ return 1; + } + + cinfo.err->error_exit = fatal_jpeg_error; +@@ -277,6 +287,7 @@ void gdImageJpegCtx (gdImagePtr im, gdIOCtx * outfile, int quality) + jpeg_finish_compress (&cinfo); + jpeg_destroy_compress (&cinfo); + gdFree (row); ++ return 0; + } + + gdImagePtr gdImageCreateFromJpeg (FILE * inFile) +diff --git a/ext/gd/libgd/gd_wbmp.c b/ext/gd/libgd/gd_wbmp.c +index 55ced3443d..fd9edad2ca 100644 +--- a/ext/gd/libgd/gd_wbmp.c ++++ b/ext/gd/libgd/gd_wbmp.c +@@ -82,6 +82,7 @@ int gd_getin (void *in) + return (gdGetC((gdIOCtx *) in)); + } + ++static int _gdImageWBMPCtx(gdImagePtr image, int fg, gdIOCtx *out); + + /* gdImageWBMPCtx + ** -------------- +@@ -93,6 +94,12 @@ int gd_getin (void *in) + ** out: the stream where to write + */ + void gdImageWBMPCtx (gdImagePtr image, int fg, gdIOCtx * out) ++{ ++ _gdImageWBMPCtx(image, fg, out); ++} ++ ++/* returns 0 on success, 1 on failure */ ++static int _gdImageWBMPCtx(gdImagePtr image, int fg, gdIOCtx *out) + { + int x, y, pos; + Wbmp *wbmp; +@@ -100,7 +107,7 @@ void gdImageWBMPCtx (gdImagePtr image, int fg, gdIOCtx * out) + /* create the WBMP */ + if ((wbmp = createwbmp (gdImageSX (image), gdImageSY (image), WBMP_WHITE)) == NULL) { + gd_error("Could not create WBMP"); +- return; ++ return 1; + } + + /* fill up the WBMP structure */ +@@ -116,7 +123,9 @@ void gdImageWBMPCtx (gdImagePtr image, int fg, gdIOCtx * out) + + /* write the WBMP to a gd file descriptor */ + if (writewbmp (wbmp, &gd_putout, out)) { ++ freewbmp(wbmp); + gd_error("Could not save WBMP"); ++ return 1; + } + /* des submitted this bugfix: gdFree the memory. */ + freewbmp(wbmp); +@@ -204,8 +213,11 @@ void * gdImageWBMPPtr (gdImagePtr im, int *size, int fg) + { + void *rv; + gdIOCtx *out = gdNewDynamicCtx(2048, NULL); +- gdImageWBMPCtx(im, fg, out); +- rv = gdDPExtractData(out, size); ++ if (!_gdImageWBMPCtx(im, fg, out)) { ++ rv = gdDPExtractData(out, size); ++ } else { ++ rv = NULL; ++ } + out->gd_free(out); + + return rv; +-- +2.17.1 + diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/acinclude-xml2-config.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/acinclude-xml2-config.patch deleted file mode 100644 index d0831669f..000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/php/php/acinclude-xml2-config.patch +++ /dev/null @@ -1,25 +0,0 @@ -Upstream-Status: Pending - -diff --git a/acinclude.m4 b/acinclude.m4 -index 4fd452e..206fcbf 100644 ---- a/acinclude.m4 -+++ b/acinclude.m4 -@@ -2532,12 +2532,9 @@ dnl - AC_DEFUN([PHP_SETUP_LIBXML], [ - AC_CACHE_CHECK([for xml2-config path], ac_cv_php_xml2_config_path, - [ -- for i in $PHP_LIBXML_DIR /usr/local /usr; do -- if test -x "$i/bin/xml2-config"; then -- ac_cv_php_xml2_config_path="$i/bin/xml2-config" -- break -- fi -- done -+ -+ ac_cv_php_xml2_config_path="$PHP_LIBXML_DIR/xml2-config" -+ - ]) - - if test -x "$ac_cv_php_xml2_config_path"; then --- -1.9.3 - diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/debian-php-fixheader.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/debian-php-fixheader.patch new file mode 100755 index 000000000..21050f760 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/debian-php-fixheader.patch @@ -0,0 +1,31 @@ +php: remove host specific info from header file + +https://sources.debian.org/data/main/p/php7.3/7.3.6-1/debian/patches/ + 0036-php-5.4.9-fixheader.patch + +Upstream-Status: Inappropriate [not author] +Signed-off-by: Joe Slater <joe.slater@windriver.com> + +--- +From: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org> +Date: Sat, 2 May 2015 10:26:56 +0200 +Subject: php-5.4.9-fixheader + +Make generated php_config.h constant across rebuilds. +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 433d7e6..41893d7 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1357,7 +1357,7 @@ PHP_BUILD_DATE=`date -u +%Y-%m-%d` + fi + AC_DEFINE_UNQUOTED(PHP_BUILD_DATE,"$PHP_BUILD_DATE",[PHP build date]) + +-PHP_UNAME=`uname -a | xargs` ++PHP_UNAME=`uname | xargs` + AC_DEFINE_UNQUOTED(PHP_UNAME,"$PHP_UNAME",[uname -a output]) + PHP_OS=`uname | xargs` + AC_DEFINE_UNQUOTED(PHP_OS,"$PHP_OS",[uname output]) diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/php-fpm-apache.conf b/meta-openembedded/meta-oe/recipes-devtools/php/php/php-fpm-apache.conf index ef79a0cc9..f7f46d205 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/php/php/php-fpm-apache.conf +++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/php-fpm-apache.conf @@ -1,6 +1,6 @@ # Taken from http://wiki.apache.org/httpd/PHP-FPM -LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so -LoadModule proxy_fcgi_module /usr/lib/apache2/modules/mod_proxy_fcgi.so +LoadModule proxy_module /usr/libexec/apache2/modules/mod_proxy.so +LoadModule proxy_fcgi_module /usr/libexec/apache2/modules/mod_proxy_fcgi.so ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/usr/share/apache2/htdocs/ diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-0001-acinclude.m4-don-t-unset-cache-variables.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-0001-acinclude.m4-don-t-unset-cache-variables.patch deleted file mode 100644 index 72ad554a1..000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-0001-acinclude.m4-don-t-unset-cache-variables.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 1fb5a3b3e6c9cf0002ff76988de72f011b642005 Mon Sep 17 00:00:00 2001 -From: Changqing Li <changqing.li@windriver.com> -Date: Tue, 12 Feb 2019 16:25:37 +0800 -Subject: [PATCH] acinclude.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.mittal@intel.com> - -update patch to version 5.6.40 -Signed-off-by: Changqing Li <changqing.li@windriver.com> ---- - acinclude.m4 | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git a/acinclude.m4 b/acinclude.m4 -index b188eee..ed32fc5 100644 ---- a/acinclude.m4 -+++ b/acinclude.m4 -@@ -1897,8 +1897,6 @@ define([phpshift],[ifelse(index([$@],[,]),-1,,[substr([$@],incr(index([$@],[,])) - 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]) -@@ -1930,8 +1928,6 @@ dnl in the default libraries and as a fall back in the specified library. - dnl Defines HAVE_func and 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-openembedded/meta-oe/recipes-devtools/php/php/php5-0001-opcache-config.m4-enable-opcache.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-0001-opcache-config.m4-enable-opcache.patch deleted file mode 100644 index 7be67ea94..000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-0001-opcache-config.m4-enable-opcache.patch +++ /dev/null @@ -1,387 +0,0 @@ -From fafcfac0933c17e1bf551600080eb0541186caf5 Mon Sep 17 00:00:00 2001 -From: Anuj Mittal <anuj.mittal@intel.com> -Date: Mon, 2 Apr 2018 17:54:52 +0800 -Subject: [PATCH] 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.mittal@intel.com> - -%% original patch: php5-0001-opcache-config.m4-enable-opcache.patch ---- - ext/opcache/config.m4 | 349 ++------------------------------------------------ - 1 file changed, 8 insertions(+), 341 deletions(-) - -diff --git a/ext/opcache/config.m4 b/ext/opcache/config.m4 -index 5a8b86c..6e87fa5 100644 ---- a/ext/opcache/config.m4 -+++ b/ext/opcache/config.m4 -@@ -11,353 +11,20 @@ if test "$PHP_OPCACHE" != "no"; then - AC_DEFINE(HAVE_MPROTECT, 1, [Define if you have mprotect() function]) - ]) - -- AC_MSG_CHECKING(for sysvipc shared memory support) -- AC_TRY_RUN([ --#include <sys/types.h> --#include <sys/wait.h> --#include <sys/ipc.h> --#include <sys/shm.h> --#include <unistd.h> --#include <string.h> -+ AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support]) - --int main() { -- pid_t pid; -- int status; -- int ipc_id; -- char *shm; -- struct shmid_ds shmbuf; -+ AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support]) - -- ipc_id = shmget(IPC_PRIVATE, 4096, (IPC_CREAT | SHM_R | SHM_W)); -- if (ipc_id == -1) { -- return 1; -- } -+ AC_DEFINE(HAVE_SHM_MMAP_ZERO, 1, [Define if you have mmap("/dev/zero") SHM support]) - -- 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_MSG_CHECKING(for mmap() using MAP_ANON shared memory support) -- AC_TRY_RUN([ --#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 -- --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]) -- -- AC_MSG_CHECKING(for mmap() using /dev/zero shared memory support) -- AC_TRY_RUN([ --#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> -- --#ifndef MAP_FAILED --# define MAP_FAILED ((void*)-1) --#endif -- --int main() { -- pid_t pid; -- int status; -- int fd; -- char *shm; -- -- fd = open("/dev/zero", O_RDWR, S_IRUSR | S_IWUSR); -- if (fd == -1) { -- return 1; -- } -- -- shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); -- if (shm == MAP_FAILED) { -- return 2; -- } -- -- 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_ZERO, 1, [Define if you have mmap("/dev/zero") SHM support]) -- msg=yes,msg=no,msg=no) -- AC_MSG_RESULT([$msg]) -- -- AC_MSG_CHECKING(for mmap() using shm_open() shared memory support) -- AC_TRY_RUN([ --#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,"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]) -- msg=yes,msg=no,msg=no) -- AC_MSG_RESULT([$msg]) -+ AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support]) - - AC_MSG_CHECKING(for mmap() using regular file shared memory support) -- AC_TRY_RUN([ --#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,"test.shm.%dXXXXXX", getpid()); -- if (mktemp(tmpname) == NULL) { -- return 1; -- } -- fd = open(tmpname, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR); -- if (fd == -1) { -- return 2; -- } -- if (ftruncate(fd, 4096) < 0) { -- close(fd); -- unlink(tmpname); -- return 3; -- } -- -- shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); -- if (shm == MAP_FAILED) { -- return 4; -- } -- 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_FILE, 1, [Define if you have mmap() SHM support]) -- msg=yes,msg=no,msg=no) -- AC_MSG_RESULT([$msg]) -- --flock_type=unknown --AC_MSG_CHECKING("whether flock struct is linux ordered") --AC_TRY_RUN([ -- #include <fcntl.h> -- struct flock lock = { 1, 2, 3, 4, 5 }; -- int main() { -- if(lock.l_type == 1 && lock.l_whence == 2 && lock.l_start == 3 && lock.l_len == 4) { -- return 0; -- } -- return 1; -- } --], [ -- flock_type=linux -- AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type]) -- AC_MSG_RESULT("yes") --], AC_MSG_RESULT("no") ) -+ -+ AC_DEFINE(HAVE_SHM_MMAP_FILE, 1, [Define if you have mmap() SHM support]) - --AC_MSG_CHECKING("whether flock struct is BSD ordered") --AC_TRY_RUN([ -- #include <fcntl.h> -- struct flock lock = { 1, 2, 3, 4, 5 }; -- int main() { -- if(lock.l_start == 1 && lock.l_len == 2 && lock.l_type == 4 && lock.l_whence == 5) { -- return 0; -- } -- return 1; -- } --], [ -- flock_type=bsd -- AC_DEFINE([HAVE_FLOCK_BSD], [], [Struct flock is BSD-type]) -- AC_MSG_RESULT("yes") --], AC_MSG_RESULT("no") ) -+ flock_type=linux -+ AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type]) - - if test "$flock_type" = "unknown"; then - AC_MSG_ERROR([Don't know how to define struct flock on this system[,] set --enable-opcache=no]) --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-change-AC_TRY_RUN-to-AC_TRY_LINK.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-change-AC_TRY_RUN-to-AC_TRY_LINK.patch deleted file mode 100644 index 1d21f8c56..000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-change-AC_TRY_RUN-to-AC_TRY_LINK.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 5f49987e88dfcbdb84be6e0c9025432fbd998709 Mon Sep 17 00:00:00 2001 -From: Roy Li <rongqing.li@windriver.com> -Date: Thu, 20 Aug 2015 16:29:35 +0800 -Subject: [PATCH] config.m4: change AC_TRY_RUN to AC_TRY_LINK - -Upstream-Status: Pending - -AC_TRY_RUN is not suitable for cross-compile - -Signed-off-by: Roy Li <rongqing.li@windriver.com> - -%% original patch: change-AC_TRY_RUN-to-AC_TRY_LINK.patch - -%% original patch: php5-change-AC_TRY_RUN-to-AC_TRY_LINK.patch ---- - ext/fileinfo/config.m4 | 31 ++++++------------------------- - 1 file changed, 6 insertions(+), 25 deletions(-) - -diff --git a/ext/fileinfo/config.m4 b/ext/fileinfo/config.m4 -index 7e98d62..8a8ea0e 100644 ---- a/ext/fileinfo/config.m4 -+++ b/ext/fileinfo/config.m4 -@@ -14,31 +14,12 @@ if test "$PHP_FILEINFO" != "no"; then - libmagic/readcdf.c libmagic/softmagic.c" - - AC_MSG_CHECKING([for strcasestr]) -- AC_TRY_RUN([ --#include <string.h> --#include <strings.h> --#include <stdlib.h> -- --int main(void) --{ -- char *s0, *s1, *ret; -- -- s0 = (char *) malloc(42); -- s1 = (char *) malloc(8); -- -- memset(s0, 'X', 42); -- s0[24] = 'Y'; -- s0[26] = 'Z'; -- s0[41] = '\0'; -- memset(s1, 'x', 8); -- s1[0] = 'y'; -- s1[2] = 'Z'; -- s1[7] = '\0'; -- -- ret = strcasestr(s0, s1); -- -- return !(NULL != ret); --} -+ AC_TRY_COMPILE([ -+ #include <string.h> -+ #include <strings.h> -+ #include <stdlib.h> -+ ],[ -+ strcasestr(NULL, NULL); - ],[ - dnl using the platform implementation - AC_MSG_RESULT(yes) --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-pear-makefile.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-pear-makefile.patch deleted file mode 100644 index 997430309..000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-pear-makefile.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 79725e82d5981fc94eb657f0f46a499dbfc1cc40 Mon Sep 17 00:00:00 2001 -From: Koen Kooi <koen@dominion.thruhere.net> -Date: Wed, 2 Nov 2011 16:54:57 +0100 -Subject: [PATCH] Upstream-Status: Pending - -%% original patch: php5-pear-makefile.patch ---- - pear/Makefile.frag | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/pear/Makefile.frag b/pear/Makefile.frag -index 00bacae..739eeca 100644 ---- a/pear/Makefile.frag -+++ b/pear/Makefile.frag -@@ -11,7 +11,7 @@ PEAR_PREFIX = -dp a${program_prefix} - PEAR_SUFFIX = -ds a$(program_suffix) - - install-pear-installer: $(SAPI_CLI_PATH) -- @$(top_builddir)/sapi/cli/php $(PEAR_INSTALL_FLAGS) pear/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX} -+ @$(PHP_NATIVE_DIR)/php $(PEAR_INSTALL_FLAGS) $(builddir)/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX} - - install-pear: - @echo "Installing PEAR environment: $(INSTALL_ROOT)$(peardir)/" --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-phar-makefile.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-phar-makefile.patch deleted file mode 100644 index 4e1efd40c..000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-phar-makefile.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 3ea626a8d081f56b01004b7992534d4e6b81a9cc Mon Sep 17 00:00:00 2001 -From: Koen Kooi <koen@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] - -%% original patch: php5-phar-makefile.patch ---- - 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 b8b1b42..1005b2d 100644 ---- a/ext/phar/Makefile.frag -+++ b/ext/phar/Makefile.frag -@@ -5,20 +5,9 @@ pharcmd: $(builddir)/phar.php $(builddir)/phar.phar - - PHP_PHARCMD_SETTINGS = -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' -d phar.readonly=0 -d 'safe_mode=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-openembedded/meta-oe/recipes-devtools/php/php/pthread-check-threads-m4.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/pthread-check-threads-m4.patch deleted file mode 100644 index 0c564cd88..000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/php/php/pthread-check-threads-m4.patch +++ /dev/null @@ -1,30 +0,0 @@ -From d8067ceacbf54e79c9c6b68675332c09eaa0b55d Mon Sep 17 00:00:00 2001 -From: Jackie Huang <jackie.huang@windriver.com> -Date: Mon, 8 Apr 2013 14:29:51 +0800 -Subject: [PATCH] pthread-check - -Enable pthreads support when cross-compiling - -Upstream-Status: Inapproprate [config] - -Signed-off-by: Jackie Huang <jackie.huang@windriver.com> ---- - TSRM/threads.m4 | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/TSRM/threads.m4 b/TSRM/threads.m4 -index 38494ce..15d9454 100644 ---- a/TSRM/threads.m4 -+++ b/TSRM/threads.m4 -@@ -86,7 +86,7 @@ int main() { - pthreads_working=no - ], [ - dnl For cross compiling running this test is of no use. NetWare supports pthreads -- pthreads_working=no -+ pthreads_working=yes - case $host_alias in - *netware*) - pthreads_working=yes --- -1.7.4.1 - diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.40.bb b/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.40.bb deleted file mode 100644 index 9f5bac7e2..000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.40.bb +++ /dev/null @@ -1,25 +0,0 @@ -require php.inc - -LIC_FILES_CHKSUM = "file://LICENSE;md5=b602636d46a61c0ac0432bbf5c078fe4" - -SRC_URI += "file://php5-change-AC_TRY_RUN-to-AC_TRY_LINK.patch \ - file://pthread-check-threads-m4.patch \ - file://0001-Add-lpthread-to-link.patch \ - file://acinclude-xml2-config.patch \ - file://0001-acinclude-use-pkgconfig-for-libxml2-config.patch \ - file://0001-PHP-5.6-LibSSL-1.1-compatibility.patch \ - file://php5-0001-acinclude.m4-don-t-unset-cache-variables.patch \ - " - -SRC_URI_append_class-target = " \ - file://php5-pear-makefile.patch \ - file://php5-phar-makefile.patch \ - file://php5-0001-opcache-config.m4-enable-opcache.patch \ - " - -SRC_URI[md5sum] = "44633604d2fece1f53f508bc16751b74" -SRC_URI[sha256sum] = "ffd025d34623553ab2f7fd8fb21d0c9e6f9fa30dc565ca03a1d7b763023fba00" - -DEPENDS += "libmcrypt" -EXTRA_OECONF += "--with-mcrypt=${STAGING_DIR_TARGET}${exec_prefix} \ - " diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php_7.3.6.bb b/meta-openembedded/meta-oe/recipes-devtools/php/php_7.3.9.bb index b1cac1c07..a5c7b9b6b 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/php/php_7.3.6.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/php/php_7.3.9.bb @@ -6,6 +6,8 @@ SRC_URI += "file://0001-acinclude.m4-don-t-unset-cache-variables.patch \ file://0048-Use-pkg-config-for-FreeType2-detection.patch \ file://0049-ext-intl-Use-pkg-config-to-detect-icu.patch \ file://0001-Use-pkg-config-for-libxml2-detection.patch \ + file://debian-php-fixheader.patch \ + file://CVE-2019-6978.patch \ " SRC_URI_append_class-target = " \ file://pear-makefile.patch \ @@ -14,13 +16,5 @@ SRC_URI_append_class-target = " \ file://xfail_two_bug_tests.patch \ " -SRC_URI[md5sum] = "bde9a912fb311182cd460dad1abbc247" -SRC_URI[sha256sum] = "1e5ac8700154835c0910e3a814517da9b87bb4a82cc7011fea1a82096b6f6f77" - -PACKAGECONFIG[mysql] = "--with-mysqli=mysqlnd \ - --with-pdo-mysql=mysqlnd \ - ,--without-mysqli --without-pdo-mysql \ - ,mysql5" -PACKAGECONFIG[valgrind] = "--with-valgrind=${STAGING_DIR_TARGET}/usr,--with-valgrind=no,valgrind" - -FILES_${PN}-fpm += "${sysconfdir}/php-fpm.d/www.conf.default" +SRC_URI[md5sum] = "bcc37749815009c9201e4c126e1ab8ee" +SRC_URI[sha256sum] = "a39c9709a8c9eb7ea8ac4933ef7a78b92f7e5735a405c8b8e42ee39541d963c4" diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c/0001-avoid-race-condition.patch b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c/0001-avoid-race-condition.patch new file mode 100644 index 000000000..4fc7703d8 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c/0001-avoid-race-condition.patch @@ -0,0 +1,36 @@ +From 216e31260b618ec73862f9f5336597f391444dac Mon Sep 17 00:00:00 2001 +From: Chen Qi <Qi.Chen@windriver.com> +Date: Sun, 29 Sep 2019 17:20:42 +0800 +Subject: [PATCH] avoid race condition + +It's possible that the cxx-generate-packed-data.cc is compiled +while the t/test-full.pb.h is being generated. This will result +the following error. + + DEBUG: ./t/test-full.pb.h:4:0: error: unterminated #ifndef + ./t/test-full.pb.h:4:0: error: unterminated #ifndef + +Add a dependency to avoid such problem. + +Upstream-Status: Pending + +Signed-off-by: Chen Qi <Qi.Chen@windriver.com> +--- + Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Makefile.am b/Makefile.am +index b0cb065..1608ae0 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -156,6 +156,7 @@ noinst_PROGRAMS += \ + t_generated_code2_cxx_generate_packed_data_SOURCES = \ + t/generated-code2/cxx-generate-packed-data.cc \ + t/test-full.pb.cc ++t/generated-code2/cxx-generate-packed-data.cc: t/test-full.pb.h + $(t_generated_code2_cxx_generate_packed_data_OBJECTS): t/test-full.pb.h + t_generated_code2_cxx_generate_packed_data_CXXFLAGS = \ + $(AM_CXXFLAGS) \ +-- +2.17.1 + diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c/protobuf3-compatibility.patch b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c/protobuf3-compatibility.patch deleted file mode 100644 index 35914952d..000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c/protobuf3-compatibility.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 7456d1621223d425b8a3fd74e435a79c046169fb Mon Sep 17 00:00:00 2001 -From: Robert Edmonds <edmonds@users.noreply.github.com> -Date: Wed, 10 Apr 2019 20:47:48 -0400 -Subject: [PATCH] t/generated-code2/cxx-generate-packed-data.cc: Fix build - failure on newer protobuf - - Upstream-Status: Backport [https://github.com/protobuf-c/protobuf-c/pull/369] - -google::protobuf::Message::Reflection has been removed in newer versions -of protobuf. The replacement is google::protobuf::Reflection. - -protobuf in commit 779f61c6a3ce02a119e28e802f229e61b69b9046 ("Integrate -recent changes from google3.", from August 2008) changed the following -in message.h: - - @@ -336,7 +337,8 @@ class LIBPROTOBUF_EXPORT Message { - - // Introspection --------------------------------------------------- - - - class Reflection; // Defined below. - + // Typedef for backwards-compatibility. - + typedef google::protobuf::Reflection Reflection; - -The "typedef for backwards-compatibility" apparently lasted ten years -until protobuf commit 6bbe197e9c1b6fc38cbdc45e3bf83fa7ced792a3 -("Down-integrate from google3.", from August 2018) which finally removed -the typedef: - - @@ -327,8 +344,6 @@ class LIBPROTOBUF_EXPORT Message : public MessageLite { - - // Introspection --------------------------------------------------- - - - // Typedef for backwards-compatibility. - - typedef google::protobuf::Reflection Reflection; - -This commit updates the only use of this typedef (in the test suite) to -directly refer to the replacement, google::protobuf::Reflection. This -fixes the build failure in the test suite. ---- - t/generated-code2/cxx-generate-packed-data.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/t/generated-code2/cxx-generate-packed-data.cc b/t/generated-code2/cxx-generate-packed-data.cc -index 4fd3e25..0865d2e 100644 ---- a/t/generated-code2/cxx-generate-packed-data.cc -+++ b/t/generated-code2/cxx-generate-packed-data.cc -@@ -998,7 +998,7 @@ static void dump_test_packed_repeated_enum (void) - static void dump_test_unknown_fields (void) - { - EmptyMess mess; -- const google::protobuf::Message::Reflection *reflection = mess.GetReflection(); -+ const google::protobuf::Reflection *reflection = mess.GetReflection(); - google::protobuf::UnknownFieldSet *fs = reflection->MutableUnknownFields(&mess); - - #if GOOGLE_PROTOBUF_VERSION >= 2001000 diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.1.bb b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.2.bb index 1d1782306..b92f82dec 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.1.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.2.bb @@ -12,11 +12,10 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=cb901168715f4782a2b06c3ddaefa558" DEPENDS = "protobuf-native protobuf" -PV .= "+git${SRCPV}" -SRCREV = "269771b4b45d3aba04e59569f53600003db8d9ff" +SRCREV = "1390409f4ee4e26d0635310995b516eb702c3f9e" SRC_URI = "git://github.com/protobuf-c/protobuf-c.git \ - file://protobuf3-compatibility.patch \ + file://0001-avoid-race-condition.patch \ " S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-Added-stubs-map_util.h-to-list-of-installed-headers.patch b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-Added-stubs-map_util.h-to-list-of-installed-headers.patch deleted file mode 100644 index a160e5e97..000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-Added-stubs-map_util.h-to-list-of-installed-headers.patch +++ /dev/null @@ -1,52 +0,0 @@ -From ea6e776e50971c89ad2293046b6ae2a6a9753c56 Mon Sep 17 00:00:00 2001 -From: Adam Cozzette <acozzette@google.com> -Date: Thu, 6 Jun 2019 10:29:58 -0700 -Subject: [PATCH] Added stubs/map_util.h to list of installed headers - -This should fix issue #6186. I also had to remove a couple unnecessary -const keywords in map_util.h because the no_warning_test was showing -errors about those. - -Upstream-Status: Submitted [https://github.com/protocolbuffers/protobuf/pull/6223] ---- - src/Makefile.am | 1 + - src/google/protobuf/stubs/map_util.h | 4 ++-- - 2 files changed, 3 insertions(+), 2 deletions(-) - -diff --git a/src/Makefile.am b/src/Makefile.am -index be18ba76..1689e221 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -72,6 +72,7 @@ nobase_include_HEADERS = \ - google/protobuf/stubs/hash.h \ - google/protobuf/stubs/logging.h \ - google/protobuf/stubs/macros.h \ -+ google/protobuf/stubs/map_util.h \ - google/protobuf/stubs/mutex.h \ - google/protobuf/stubs/once.h \ - google/protobuf/stubs/platform_macros.h \ -diff --git a/src/google/protobuf/stubs/map_util.h b/src/google/protobuf/stubs/map_util.h -index 2313e1f5..b04d9d46 100644 ---- a/src/google/protobuf/stubs/map_util.h -+++ b/src/google/protobuf/stubs/map_util.h -@@ -620,7 +620,7 @@ bool UpdateReturnCopy(Collection* const collection, - // twice. Unlike UpdateReturnCopy this also does not come with the issue of an - // undefined previous* in case new data was inserted. - template <class Collection> --typename Collection::value_type::second_type* const -+typename Collection::value_type::second_type* - InsertOrReturnExisting(Collection* const collection, - const typename Collection::value_type& vt) { - std::pair<typename Collection::iterator, bool> ret = collection->insert(vt); -@@ -633,7 +633,7 @@ InsertOrReturnExisting(Collection* const collection, - - // Same as above, except for explicit key and data. - template <class Collection> --typename Collection::value_type::second_type* const -+typename Collection::value_type::second_type* - InsertOrReturnExisting( - Collection* const collection, - const typename Collection::value_type::first_type& key, --- -2.11.0 - diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-Makefile.am-include-descriptor.cc-when-building-libp.patch b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-Makefile.am-include-descriptor.cc-when-building-libp.patch new file mode 100644 index 000000000..fc7286122 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-Makefile.am-include-descriptor.cc-when-building-libp.patch @@ -0,0 +1,28 @@ +From 321709837f412e2f590e36e3fe33571bb40036a7 Mon Sep 17 00:00:00 2001 +From: Martin Jansa <Martin.Jansa@gmail.com> +Date: Thu, 27 Jun 2019 13:27:18 +0000 +Subject: [PATCH] Makefile.am: include descriptor.pb.cc when building libprotoc.so + +* otherwise plugin.pb.o has undefined symbol scc_info_FileDescriptorProto_google_2fprotobuf_2fdescriptor_2eproto + and build with gold fails with: + core2-32-oe-linux/protobuf/3.8.0-r0/recipe-sysroot-native/usr/bin/i686-oe-linux/../../libexec/i686-oe-linux/gcc/i686-oe-linux/9.1.0/ld.bfd: ./.libs/libprotoc.so: undefined reference to `descriptor_table_google_2fprotobuf_2fdescriptor_2eproto' + core2-32-oe-linux/protobuf/3.8.0-r0/recipe-sysroot-native/usr/bin/i686-oe-linux/../../libexec/i686-oe-linux/gcc/i686-oe-linux/9.1.0/ld.bfd: ./.libs/libprotoc.so: undefined reference to `scc_info_FileDescriptorProto_google_2fprotobuf_2fdescriptor_2eproto' + +Upstream-Status: Pending +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +--- + src/Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/Makefile.am b/src/Makefile.am +index be18ba761..57e3daec1 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -313,6 +313,7 @@ libprotoc_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libprotoc.map + EXTRA_libprotoc_la_DEPENDENCIES = libprotoc.map + endif + libprotoc_la_SOURCES = \ ++ google/protobuf/descriptor.pb.cc \ + google/protobuf/compiler/code_generator.cc \ + google/protobuf/compiler/command_line_interface.cc \ + google/protobuf/compiler/plugin.cc \ diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-examples-Makefile-respect-CXX-LDFLAGS-variables-fix-.patch b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-examples-Makefile-respect-CXX-LDFLAGS-variables-fix-.patch new file mode 100644 index 000000000..0a2e5e2df --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-examples-Makefile-respect-CXX-LDFLAGS-variables-fix-.patch @@ -0,0 +1,56 @@ +From a28e15092a298e0c73c6fc1ded0913275cf27cb0 Mon Sep 17 00:00:00 2001 +From: Martin Jansa <Martin.Jansa@gmail.com> +Date: Fri, 28 Jun 2019 13:50:52 +0000 +Subject: [PATCH] examples/Makefile: respect CXX,LDFLAGS variables, fix build + with gold + +* move pkg-config call to separate variable, so that the final version + of the whole command so it's shown in log.do_compile_ptest_base +* add ../src/google/protobuf/.libs/timestamp.pb.o when linking + add_person_cpp otherwise it fails to link with gold: + i686-oe-linux-g++ -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse --sysroot=core2-32-oe-linux/protobuf/3.8.0-r0/recipe-sysroot -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed add_person.cc addressbook.pb.cc -o add_person_cpp `pkg-config --cflags --libs protobuf` + /tmp/cccjSJQs.o:addressbook.pb.cc:scc_info_Person_addressbook_2eproto: error: undefined reference to 'scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto' + /tmp/cccjSJQs.o:addressbook.pb.cc:descriptor_table_addressbook_2eproto_deps: error: undefined reference to 'descriptor_table_google_2fprotobuf_2ftimestamp_2eproto' + collect2: error: ld returned 1 exit status + Makefile:43: recipe for target 'add_person_cpp' failed + +* and the same with list_people_cpp this time with pkg-config already through the variable: + i686-oe-linux-g++ -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse --sysroot=core2-32-oe-linux/protobuf/3.8.0-r0/recipe-sysroot -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -pthread -Icore2-32-oe-linux/protobuf/3.8.0-r0/git/src -Lcore2-32-oe-linux/protobuf/3.8.0-r0/git/src/.libs -Lcore2-32-oe-linux/protobuf/3.8.0-r0/recipe-sysroot/usr/lib -lprotobuf list_people.cc addressbook.pb.cc -o list_people_cpp + /tmp/ccpaI5Su.o:addressbook.pb.cc:scc_info_Person_addressbook_2eproto: error: undefined reference to 'scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto' + /tmp/ccpaI5Su.o:addressbook.pb.cc:descriptor_table_addressbook_2eproto_deps: error: undefined reference to 'descriptor_table_google_2fprotobuf_2ftimestamp_2eproto' + collect2: error: ld returned 1 exit status + Makefile:49: recipe for target 'list_people_cpp' failed + +Upstream-Status: Pending +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +--- + examples/Makefile | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/examples/Makefile b/examples/Makefile +index 4ad605641..31d887639 100644 +--- a/examples/Makefile ++++ b/examples/Makefile +@@ -2,6 +2,8 @@ + + .PHONY: all cpp java python clean + ++PROTOBUF := $(shell pkg-config --cflags --libs protobuf) ++ + all: cpp java python + + cpp: add_person_cpp list_people_cpp +@@ -41,11 +43,11 @@ protoc_middleman_dart: addressbook.proto + + add_person_cpp: add_person.cc protoc_middleman + pkg-config --cflags protobuf # fails if protobuf is not installed +- c++ add_person.cc addressbook.pb.cc -o add_person_cpp `pkg-config --cflags --libs protobuf` ++ $(CXX) $(CXXFLAGS) $(LDFLAGS) ../src/google/protobuf/.libs/timestamp.pb.o $(PROTOBUF) add_person.cc addressbook.pb.cc -o add_person_cpp + + list_people_cpp: list_people.cc protoc_middleman + pkg-config --cflags protobuf # fails if protobuf is not installed +- c++ list_people.cc addressbook.pb.cc -o list_people_cpp `pkg-config --cflags --libs protobuf` ++ $(CXX) $(CXXFLAGS) $(LDFLAGS) ../src/google/protobuf/.libs/timestamp.pb.o $(PROTOBUF) list_people.cc addressbook.pb.cc -o list_people_cpp + + add_person_dart: add_person.dart protoc_middleman_dart + diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.8.0.bb b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.9.2.bb index 476d1e309..a007b2a69 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.8.0.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.9.2.bb @@ -10,12 +10,13 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=37b5762e07f0af8c74ce80a8bda4266b" DEPENDS = "zlib" DEPENDS_append_class-target = " protobuf-native" -SRCREV = "09745575a923640154bcf307fba8aedff47f240a" +SRCREV = "52b2447247f535663ac1c292e088b4b27d2910ef" -SRC_URI = "git://github.com/google/protobuf.git;branch=3.8.x \ +SRC_URI = "git://github.com/google/protobuf.git;branch=3.9.x \ file://run-ptest \ file://0001-protobuf-fix-configure-error.patch \ - file://0001-Added-stubs-map_util.h-to-list-of-installed-headers.patch \ + file://0001-Makefile.am-include-descriptor.cc-when-building-libp.patch \ + file://0001-examples-Makefile-respect-CXX-LDFLAGS-variables-fix-.patch \ " S = "${WORKDIR}/git" @@ -30,9 +31,6 @@ TEST_SRC_DIR = "examples" LANG_SUPPORT = "cpp ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python', '', d)}" do_compile_ptest() { - # Modify makefile to use the cross-compiler - sed -e "s|c++|${CXX} \$(LDFLAGS)|g" -i "${S}/${TEST_SRC_DIR}/Makefile" - mkdir -p "${B}/${TEST_SRC_DIR}" # Add the location of the cross-compiled header and library files diff --git a/meta-openembedded/meta-oe/recipes-devtools/pugixml/pugixml_1.9.bb b/meta-openembedded/meta-oe/recipes-devtools/pugixml/pugixml_1.9.bb new file mode 100644 index 000000000..ad45f87ec --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/pugixml/pugixml_1.9.bb @@ -0,0 +1,20 @@ +SUMMARY = "Light-weight C++ XML Processing Library" +DESCRIPTION = "pugixml is a C++ XML processing library, which consists of a \ +DOM-like interface with rich traversal/modification capabilities, \ +an extremely fast XML parser which constructs the DOM tree from \ +n XML file/buffer, and an XPath 1.0 implementation for complex \ +data-driven tree queries." +HOMPAGE = "https://pugixml.org/" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://readme.txt;beginline=29;endline=52;md5=1d569c2ed59c94ddd9586051f8c67da6" + +SRC_URI = "https://github.com/zeux/${BPN}/releases/download/v${PV}/${BP}.tar.gz" +SRC_URI[md5sum] = "7286ee2ed11376b6b780ced19fae0b64" +SRC_URI[sha256sum] = "d156d35b83f680e40fd6412c4455fdd03544339779134617b9b28d19e11fdba6" + +inherit cmake + +EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON \ + -DCMAKE_BUILD_TYPE=Release \ + " diff --git a/meta-openembedded/meta-oe/recipes-devtools/python/python-cpuset_1.5.7.bb b/meta-openembedded/meta-oe/recipes-devtools/python/python-cpuset_1.6.bb index 156e52a3a..1255a51f7 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/python/python-cpuset_1.5.7.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/python/python-cpuset_1.6.bb @@ -4,7 +4,7 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" S = "${WORKDIR}/git" -SRCREV = "ae629aa1dc959342745ad97406adddf63bb6dbdd" +SRCREV = "6c46d71a1c6ee711063153b9f7787280128f7252" SRC_URI = "git://github.com/lpechacek/cpuset.git;protocol=https;" inherit distutils diff --git a/meta-openembedded/meta-oe/recipes-devtools/python/python-futures_3.2.0.bb b/meta-openembedded/meta-oe/recipes-devtools/python/python-futures_3.3.0.bb index 3ee945fc9..1636f7371 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/python/python-futures_3.2.0.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/python/python-futures_3.3.0.bb @@ -5,8 +5,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=834d982f973c48b6d662b5944c5ab567" HOMEPAGE = "https://github.com/agronholm/pythonfutures" DEPENDS = "python" -SRC_URI[md5sum] = "d1b299a06b96ccb59f70324716dc0016" -SRC_URI[sha256sum] = "9ec02aa7d674acb8618afb127e27fde7fc68994c0437ad759fa094a574adb265" +SRC_URI[md5sum] = "b43a39ae1475e3fd6940f2b4f7214675" +SRC_URI[sha256sum] = "7e033af76a5e35f58e56da7a91e687706faf4e7bdfb2cbc3f2cca6b9bcda9794" inherit pypi setuptools diff --git a/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject/0001-python-pyobject-fix-install-dir.patch b/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject/0001-python-pyobject-fix-install-dir.patch new file mode 100644 index 000000000..848cda5aa --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject/0001-python-pyobject-fix-install-dir.patch @@ -0,0 +1,121 @@ +From 8b4648d5bc50cb1c14961ed38bf97d5a693f5237 Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Mon, 24 Jun 2019 14:51:52 +0800 +Subject: [PATCH] python-pyobject: fix the wrong install dir for python2 + +* after upgrade to 3.32.1, pygobject switch to build with meson, and + default python option is python3, switch to python2 + +* default install dir get by python.install_sources and +python.get_install_dir is get from python's sysconfig info, +not like python3, for python2, the install dir include the basedir of +recipe-sysroot-native, add stagedir option for user to config +correct install dir. + +Upstream-Status: Inappropriate [oe-specific] + +Signed-off-by: Changqing Li <changqing.li@windriver.com> +--- + gi/meson.build | 7 +++---- + gi/overrides/meson.build | 4 ++-- + gi/repository/meson.build | 4 ++-- + meson.build | 4 +++- + meson_options.txt | 1 + + pygtkcompat/meson.build | 4 ++-- + 6 files changed, 13 insertions(+), 11 deletions(-) + +diff --git a/gi/meson.build b/gi/meson.build +index c1afd68..249c23d 100644 +--- a/gi/meson.build ++++ b/gi/meson.build +@@ -60,9 +60,8 @@ python_sources = [ + 'types.py', + ] + +-python.install_sources(python_sources, +- pure : false, +- subdir : 'gi' ++install_data(python_sources, ++ install_dir: join_paths(stagedir, 'gi') + ) + + # https://github.com/mesonbuild/meson/issues/4117 +@@ -76,7 +75,7 @@ giext = python.extension_module('_gi', sources, + dependencies : [python_ext_dep, glib_dep, gi_dep, ffi_dep], + include_directories: include_directories('..'), + install: true, +- subdir : 'gi', ++ install_dir: join_paths(stagedir, 'gi'), + c_args: pyext_c_args + main_c_args + ) + +diff --git a/gi/overrides/meson.build b/gi/overrides/meson.build +index 6ff073f..964fef1 100644 +--- a/gi/overrides/meson.build ++++ b/gi/overrides/meson.build +@@ -10,6 +10,6 @@ python_sources = [ + 'keysyms.py', + '__init__.py'] + +-python.install_sources(python_sources, +- subdir : join_paths('gi', 'overrides') ++install_data(python_sources, ++ install_dir: join_paths(stagedir, 'gi', 'overrides') + ) +diff --git a/gi/repository/meson.build b/gi/repository/meson.build +index fdc136b..fc88adf 100644 +--- a/gi/repository/meson.build ++++ b/gi/repository/meson.build +@@ -1,5 +1,5 @@ + python_sources = ['__init__.py'] + +-python.install_sources(python_sources, +- subdir : join_paths('gi', 'repository') ++install_data(python_sources, ++ install_dir: join_paths(stagedir, 'gi', 'repository') + ) +diff --git a/meson.build b/meson.build +index d27a005..ecd55d5 100644 +--- a/meson.build ++++ b/meson.build +@@ -165,12 +165,14 @@ else + py_version = pygobject_version + endif + ++stagedir = get_option('stagedir') ++ + pkginfo_conf = configuration_data() + pkginfo_conf.set('VERSION', py_version) + configure_file(input : 'PKG-INFO.in', + output : 'PyGObject-@0@.egg-info'.format(py_version), + configuration : pkginfo_conf, +- install_dir : python.get_install_dir(pure : false)) ++ install_dir : stagedir) + + subdir('gi') + subdir('pygtkcompat') +diff --git a/meson_options.txt b/meson_options.txt +index 5dd4cbc..21def16 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -1,3 +1,4 @@ + option('python', type : 'string', value : 'python3') + option('pycairo', type : 'boolean', value : true, description : 'build with pycairo integration') + option('tests', type : 'boolean', value : true, description : 'build unit tests') ++option('stagedir', type : 'string', value : '') +diff --git a/pygtkcompat/meson.build b/pygtkcompat/meson.build +index 9e43c44..ef3322d 100644 +--- a/pygtkcompat/meson.build ++++ b/pygtkcompat/meson.build +@@ -3,6 +3,6 @@ python_sources = [ + 'generictreemodel.py', + 'pygtkcompat.py'] + +-python.install_sources(python_sources, +- subdir : 'pygtkcompat' ++install_data(python_sources, ++ install_dir: join_paths(stagedir, 'pygtkcompat') + ) +-- +2.7.4 + diff --git a/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.32.1.bb b/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.34.0.bb index c26b3838e..0cbd07f66 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.32.1.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.34.0.bb @@ -12,21 +12,25 @@ DEPENDS += "python glib-2.0" SRCNAME = "pygobject" SRC_URI = " \ http://ftp.gnome.org/pub/GNOME/sources/${SRCNAME}/${@gnome_verdir("${PV}")}/${SRCNAME}-${PV}.tar.xz \ + file://0001-python-pyobject-fix-install-dir.patch \ " -SRC_URI[md5sum] = "9d5dbca10162dd9b0d03fed0c6cf865d" -SRC_URI[sha256sum] = "32c99def94b8dea5ce9e4bc99576ef87591ea779b4db77cfdca7af81b76d04d8" +SRC_URI[md5sum] = "ca1dc4f31c1d6d283758e8f315a88ab6" +SRC_URI[sha256sum] = "87e2c9aa785f352ef111dcc5f63df9b85cf6e05e52ff04f803ffbebdacf5271a" S = "${WORKDIR}/${SRCNAME}-${PV}" UNKNOWN_CONFIGURE_WHITELIST = "introspection" +PACKAGECONFIG ??= "stagedir" + PACKAGECONFIG[cairo] = "-Dpycairo=true,-Dpycairo=false, cairo python-pycairo, python-pycairo" PACKAGECONFIG[tests] = "-Dtests=true, -Dtests=false, , " - +PACKAGECONFIG[python] = "-Dpython=python3, -Dpython=python2, , " +PACKAGECONFIG[stagedir] = "-Dstagedir=${PYTHON_SITEPACKAGES_DIR}, -Dstagedir="", , " BBCLASSEXTEND = "native" -RDEPENDS_${PN} = "python-setuptools" +RDEPENDS_${PN} = "python-pkgutil" RDEPENDS_${PN}_class-native = "" do_install_append() { diff --git a/meta-openembedded/meta-oe/recipes-devtools/python/python-pytoml.inc b/meta-openembedded/meta-oe/recipes-devtools/python/python-pytoml.inc index 1019c09d0..180531d75 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/python/python-pytoml.inc +++ b/meta-openembedded/meta-oe/recipes-devtools/python/python-pytoml.inc @@ -4,8 +4,8 @@ SECTION = "devel/python" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=cfff423699bdaef24331933ac4f56078" -SRC_URI[md5sum] = "a11d8a4859b53f6ebe2f782314428911" -SRC_URI[sha256sum] = "ca2d0cb127c938b8b76a9a0d0f855cf930c1d50cc3a0af6d3595b566519a1013" +SRC_URI[md5sum] = "e59dd36a559dd2a876e4c149c69e947b" +SRC_URI[sha256sum] = "8eecf7c8d0adcff3b375b09fe403407aa9b645c499e5ab8cac670ac4a35f61e7" inherit pypi diff --git a/meta-openembedded/meta-oe/recipes-devtools/python/python-pytoml_0.1.20.bb b/meta-openembedded/meta-oe/recipes-devtools/python/python-pytoml_0.1.21.bb index 88fa95317..88fa95317 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/python/python-pytoml_0.1.20.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/python/python-pytoml_0.1.21.bb diff --git a/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.9.2.bb b/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.9.3.bb index 4f4016895..dba607c15 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.9.2.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.9.3.bb @@ -10,8 +10,8 @@ DEPENDS_append_libc-musl = " argp-standalone" inherit autotools -# v0.9.2 -SRCREV = "66fc1fb973f4a44aecd216541405ffe05196f11e" +# v0.9.3 +SRCREV = "e77780e7524c0a97f25313b205837191bbe9712a" SRC_URI = "git://github.com/namhyung/${BPN} \ " S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.51.03.bb b/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.51.03.bb index 524263760..6c31b6981 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.51.03.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.51.03.bb @@ -15,7 +15,6 @@ SRCREV = "343a3b98e54999d67edb644bcd395aa9784fb16e" S = "${WORKDIR}/git/stable" DEPENDS = "libxml2" -RDEPENDS_${PN} = "perl" inherit autotools-brokensep binconfig pkgconfig diff --git a/meta-openembedded/meta-oe/recipes-devtools/yajl/yajl_1.0.12.bb b/meta-openembedded/meta-oe/recipes-devtools/yajl/yajl_1.0.12.bb index 8ced7b84f..e112a5e30 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/yajl/yajl_1.0.12.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/yajl/yajl_1.0.12.bb @@ -17,3 +17,5 @@ inherit cmake lib_package S = "${WORKDIR}/git" EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}" + +UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>1(\.\d+)+)" |