subtree updates

meta-openembedded: 64974b8779..c95842cdca:
  Adrian Bunk (46):
        modemmanager: Remove the obsolete dependency on dbus-glib
        gpsd: Remove the obsolete dependency on dbus-glib
        eggdbus: Remove this obsolete package
        sanity-meta-gnome: Remove obsolete class
        gssdp: Merge inc
        vlc: notify switched to GTK+3 some time ago
        tremor: Upgrade 20150107 -> 20180319
        vlc: Remove the obsolete dependency on dbus-glib
        blueman: Enable thunar support by default but don't rdepend on it
        gnome-bluetooth: Drop bluez4 support
        networkmanager: Drop bluez4 support
        packagegroup-meta-networking-connectivity: Correct a DISTRO_FEATURES check
        packagegroup-tools-bluetooth: Remove bluez4 support
        cpprest: Fix build failure with gcc 8
        packagegroup-basic: Remove bluez4 support
        packagegroup-meta-oe: Remove bogus bluez4 DISTRO_FEATURES checks
        esound: Remove this obsolete package
        gpsd: Remove obsolete musl patch
        gpsd: Don't build without optimization
        zeromq: Upgrade 4.3.1 -> 4.3.2
        obex-data-server: Drop bluez4 support
        openobex: Drop bluez4 support
        gpsd: Drop bluez4 support
        libao: Remove the non-default esound PACKAGECONFIG
        gpsd: Disable manpage building by config option instead of patching
        gpsd: Upgrade 3.18.1 -> 3.19
        gnome-desktop3: Fix REQUIRED_DISTRO_FEATURES
        meta-gnome: Remove GNOME_COMPRESS_TYPE = "xz" in recipes
        jasper: Use the new upstream GitHub location instead of the defunct tarball URL
        fluidsynth: Add PACKAGECONFIG for readline
        meta-multimedia: Remove GNOME_COMPRESS_TYPE = "xz" in recipes
        udisks: Remove this obsolete version
        gpsd: Switch from python-scons-native to python3-scons-native
        meta-gnome: Inherit gnomebase instead of gnome
        meta-oe: Inherit gnomebase instead of gnome
        libgsf: Drop the obsolete inherit gconf
        gnome-system-monitor: Add DEPENDS on polkit
        meta-oe: Change some ftp:// URIs to http(s)://
        meta-oe: Use GNU_MIRROR in more recipes
        wireshark: Use an upstream URL that stays valid longer
        modemmanager: Use a simpler workaround for the clang build
        network-manager-applet: Remove obsolete do_configure_append
        network-manager-applet: Remove the obsolete DEPENDS on gconf
        wv: Remove, abiword was the only user
        gtkmathview: Remove, abiword was the last user
        t1lib: Remove, gtkmathview was the last user

  Alex Kiernan (6):
        keyutils: Fix build with usrmerge
        iwd: update to 0.18
        libzip: Upgrade 1.5.1 -> 1.5.2
        zstd: New recipe
        zstd: Update 1.4.0 -> 1.4.2
        iwd: Upgrade 0.18 -> 0.19

  Alexander Kanavin (3):
        python-matplotlib: remove the python 2.x version of the recipe
        python-oauthlib: remove the 2.x version of the recipe
        python-pandas: remove the python 2.x version of the recipe

  Alistair Francis (3):
        gpsd: Upgrade from 3.17 to 3.18.1
        gpsd: Fix the systemd service run paths
        python: pypi: Add python3-term

  Anatol Belski (1):
        gperftools: separate off libtcmalloc-minimal

  Andreas Müller (2):
        meta-xfce: Make Kai Kang layer maintainer
        abiword: remove

  Andrej Valek (2):
        nodejs: 10.15.3 -> 10.16.0
        nodejs: 10.16.0 -> 10.16.2

  André Draszik (1):
        layer.conf: ignore wireless-regdb->crda dep for siggen purposes

  Ankit Navik (1):
        safec: Remove aarch64 from COMPATIBLE_HOST

  Anuj Mittal (2):
        xterm: upgrade 330 -> 347
        libsdl: import from OE-Core

  Armin Kuster (5):
        keyutils: update to 1.6
        keyutils: improve ptests
        keyutils: fix QA WARNING
        keyutils: fix pulling in glibc when musl enabled
        keyutils: fix library install path

  Arturo Buzarra (1):
        lvm2: Fix RDEPEND on lvm2 to lvm2-udevrules

  Ayoub Zaki (1):
        pegtl: Initial recipe

  Bartosz Golaszewski (2):
        bats: new package
        libgpiod: bump version to v1.4.1

  Beniamin Sandu (1):
        unbound: create recipe for version 1.9.2

  Callaghan, Dan (1):
        unixodbc: mysql5 is not required but readline is

  Changqing Li (15):
        python-pygobject: fix install dir for python2
        dlm: upgrade 4.0.7 -> 4.0.9
        uthash: remove uthash-ptest dependencies
        waf-samba: switch to python3
        libtevent: upgrade 0.9.37 -> 0.10.0
        libtdb: upgrade 1.3.17 -> 1.4.0
        libtalloc: upgrade 2.1.14 -> 2.2.0
        samba: upgrade 4.8.12 -> 4.10.5
        libldb: upgrade 1.4.1 -> 1.5.4
        volume-key: fix "Nothing RPROVIDES" when multilib enabled
        isomd5sum: fix "Nothing RPROVIDES" when multilib enabled
        satyr: fix "Nothing RPROVIDES" when multilib enabled
        libtevent: fix do_package_qa issue
        libtdb: fix do_package_qa issue
        fio: Delete redundant tag

  Chin Huat Ang (1):
        opencv: 3.4.5 -> 4.1.0

  Denys Dmytriyenko (1):
        ufs-tool: add tool to access UFS (Universal Flash Storage) devices

  Douglas Royds (2):
        grpc: DEPENDS on googletest
        packagegroup-meta-oe: RDEPENDS on googletest

  Drew Moseley (1):
        networkmanager: Use ALTERNATIVES for resolv-conf handling.

  Erik Botö (1):
        paho-mqtt-c: enable SSL

  Fabian Klemp (1):
        openvpn: respect pid file in init.d service start

  Gianfranco Costamagna (3):
        iniparser: add initial recipe
        cpprest: update to 2.10.14
        cpprest: Do not export Werror from build system instead of adding -Wno-error to the same build command

  He Zhe (1):
        drbd-utils: Fix netlink failure with nested attributes for kernel v5.2

  Hongxu Jia (24):
        packagegroup-xfce-extended: conditional runtime recommends on xfce-polkit
        xfce-polkit: add required distro feature check to polkit
        xfce4-session: optional support polkit
        upower: remove polkit dependency
        gvfs: add meson option admin and udisks2 to PACKAGECONFIG
        mongodb: add to PNBLACKLIST
        itstool: use libxml2 to instead of python3-lxml
        meta-multimedia: add layer depends on meta-python
        itstool: use libxml2 to instead of python3-lxml
        python-six: remove duplicated recipe
        libauthen-radius-perl: ptest requires meta-networking to be present
        xfce4-panel: use lxdm to replace dm-tool
        drop lxdm_%.bbappend
        python3-pykickstart: 3.18 -> 3.20
        python3-blivet: 3.1.2 -> 3.1.4
        python-pyparted/python3-pyparted: 3.11.1 -> 3.11.2
        libbytesize: 1.4 -> 2.0
        libblockdev: 2.20 -> 2.22
        network-manager-applet: 1.8.20 -> 1.8.22
        thin-provisioning-tools: 0.7.6 -> 0.8.5
        libreport: 2.9.7 -> 2.10.0
        python3-blivetgui: fix blivet-gui broken
        php: remove 5.6.40
        lmsensors: support package lmsensors

  Jackie Huang (1):
        keyutils: add new recipe

  Jason Wessel (1):
        libbytesize: Add depends for gettext-native

  Joshua Lock (3):
        python-cffi: add missing RDEPENDS on pycparser
        python-attrs: add native BBCLASSEXTEND
        python-dateutil: add native BBCLASSEXTEND

  Kai Kang (39):
        mozjs: fix configure failure on CentOS 7.6
        libvncserver: update to latest commit 1354f7f
        libxfce4util: 4.13.3 -> 4.13.4
        libxfce4ui: 4.13.5 -> 4.13.6
        exo: 0.12.5 -> 0.12.6
        xfconf: 4.13.7 -> 4.13.8
        thunar: 1.8.6 -> 1.8.7
        xfce4-session: 4.13.2 -> 4.13.3
        xfwm4: 4.13.2 -> 4.13.3
        xfdesktop: 4.13.4 -> 4.13.5
        xfce4-power-manager: 1.6.2 -> 1.6.3
        xfce4-panel: 4.13.5 -> 4.13.6
        xfce4-dev-tools: 4.12.0 -> 4.13.0
        thunar-volman: 0.9.2 -> 0.9.3
        garcon: 0.6.2 -> 0.6.3
        xfce4-settings: 4.12.4 -> 4.13.7
        xfce4-pulseaudio-plugin: add dependency dbus-glib
        xfce4-verve-plugin: 1.1.0 -> 2.0.0
        net-snmp: update SRC_URI
        xfwm4: fix assertion error
        poppler: toggle gobject-introspection support
        xfce4-settings: rrecommends xfce4-datetime-setter
        xfce4-datetime-setter: add recipe
        libxfce4util: 4.13.4 -> 4.14.0
        xfconf: 4.13.8 -> 4.14.1
        libxfce4ui: 4.13.6 -> 4.14.1
        exo: 0.12.6 -> 0.12.8
        garcon: 0.6.3 -> 0.6.4
        thunar: 1.8.7 -> 1.8.9
        thunar-volman: 0.9.3 -> 0.9.5
        tumbler: 0.2.0 -> 0.2.7
        xfce4-appfinder: 4.13.3 -> 4.14.0
        xfce4-dev-tools: 4.13.0 -> 4.14.0
        xfce4-panel: 4.13.6 -> 4.14.0
        xfce4-power-manager: 1.6.3 -> 1.6.5
        xfce4-session: 4.13.3 -> 4.14.0
        xfce4-settings: 4.13.7 -> 4.14.0
        xfdesktop: 4.13.5 -> 4.14.1
        xfwm4: 4.13.3 -> 4.14.0

  Khem Raj (44):
        wvdial: Fix build with musl
        librelp: Pass Wno-error to compiler
        recipes: Use BPN instead of PN in SRC_URIs
        cli11: Refresh patch to fix fuzz
        sthttpd: Use git SRC_URI instead of github archive
        arno-iptables-firewall: Switch to git fetcher
        firewalld: Update to 0.6.3->0.6.4
        python-matplotlib: Use git src_uri
        mpv: Switch to using git fetcher
        x11vnc: Switch to git fetcher
        dumb-init: Switch to git fetcher
        pam-plugin-ldapdb: Use git fetcher
        libuv: Switch to using git fetcher
        usbctl: Switch to git fetcher
        pmdk: Fix libdir which is multi-lib aware
        kexec-tools-klibc: Refresh patch with no code change
        log4cplus: Fix build with gold linker
        orage: Fix build with libical3
        pegtl: Fix build with clang/libc++
        postfix: Fix build failures with glibc 2.30
        snort: Fix build with glibc 2.30
        opensaf: Add configure time check to detect gettid API in libc
        ypbind-mt: Fix build with glibc 2.30
        openocd: Fix build with glibc 2.30
        netkit-rusers: Add dep on rpcsvc-proto for rpc headers
        collectd: Fix build with glibc 2.30
        alsa-oss: Drop now not needed patch
        klcc-cross: Recognise --unwindlib clang option
        libsub-exporter-progressive-perl: Remove unneeded DEPENDS_PN
        libedit: Delete
        sjf2410-linux-native: Do not include sys/io.h
        gradm: Upgrade to 3.1-201903191516 release
        pmdk: Fix packaging errors when building on non-x86 host
        klibc: Pass -fno-builtin-bcmp with musl/clang combo
        graphviz: Fix build error that surfaced with latest pango
        graphviz: Do not build tcl support for target
        python-grpcio: Use gettid API from glibc 2.30+
        grpc: Update to 1.22.0
        android-tools: Fix build with glibc 2.30
        iperf2: Upgrade to 2.0.13
        netkit-rusers: Depend on rpcsvc-proto-native for rpcgen tool
        kpatch: Pass ARCH from environment
        python3-pillow: Provide python3-imaging
        netkit-rusers: Fix cross-build after glibc dropped rpc

  Laszlo Toth (1):
        networkmanager: fix typo in nonarch_base_libdir

  Liwei Song (2):
        pm-graph: fix time format parse error
        fio: fix first direct IO errored when ioengine is splice

  Luca Boccassi (2):
        python-pygobject: move python-setuptools from RDEPENDS to DEPENDS
        python-pygobject: remove build-dependency on setuptools and add dependency on pkgutil

  Luca Ceresoli (4):
        fuse-exfat: moved to github
        exfat-utils: moved to github
        fuse-exfat: update 1.2.3 -> 1.3.0
        exfat-utils: update 1.2.3 -> 1.3.0

  Luca Palano (1):
        Netdata upgrade: 1.8.0 -> 1.16.0

  Maciej Pijanowski (8):
        python3-websockets: upgrade to 8.0.2
        python3-multidict: upgrade to 4.5.2
        python-engineio: upgrade to 3.9.3
        python-socketio: upgrade to 4.3.1
        python-aiohttp.inc: add missing RDEPENDS
        python-async-timeout: add asyncio to RDEPENDS
        python-socketio.inc: add missing RDEPENDS
        python3-aiofiles: add recipe

  Mariano Lopez (1):
        nftables: 0.9.0 > 0.9.1

  Martin Jansa (8):
        protobuf: fix build with gold
        SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS add lsb and util-linux for phoronix-test-suite
        oprofile: drop kernel-vmlinux from RRECOMMENDS
        libdbi-perl: prevent native libdbi-perl depending on target perl
        redis: backport a fix for stack trace generation on aarch64
        ntop: fix missing return from non-void function
        python3-twofish: Fix missing return statements in module stubs
        kernel-selftest: skip -Werror=format-security and fortify

  Max Krummenacher (1):
        joe: update to 4.6

  Mikko Rapeli (2):
        protobuf: fix ptest compilation with hardening flags
        stress-ng: delete recipe

  Mingli Yu (7):
        fio: Upgrade to 3.15
        crash: Upgrade to 7.2.6
        makedumpfile: Upgrade to 1.6.6
        hwloc: Upgrade to 1.11.13
        iperf3: Upgrade to 3.7
        log4cplus: Upgrade to 2.0.4
        log4cplus: remove gold linker setting

  Oleksandr Kravchuk (22):
        nghttp2: update to 1.39.1
        drbd-utils: update to 9.10.0
        drbd: update to 9.0.18-1
        keepalived: update to 2.0.16
        nano: update to 4.3
        nuttcp: add systemd unit file
        mbedtls: update to 2.16.2
        dhcpcd: update to 7.2.2
        freediameter: update to 1.2.1
        sethdlc: set PV in filename
        miniupnpd: update to 2.1.20190210
        ipvsadm: update to 1.30
        uftp: update to 4.9.11
        libnftnl: update to 1.1.3
        dhcpcd: update to 7.2.3
        blueman: update to 2.1.1
        uftp: update to 4.10
        htpdate: update to 1.2.1
        dhcpcd: update to 8.0.1
        chrony: update to 3.5
        wolfssl: update to 4.1.0
        dhcpcd: update to 8.0.2

  Ovidiu Panait (2):
        python3-pillow: 5.4.1 -> 6.1
        python3-pillow: Add python3-misc/logging/numbers to RDEPENDS

  Paolo Valente (1):
        s-suite: push SRCREV to version 3.5

  Parthiban Nallathambi (1):
        python3-matplotlib: add version 3.1.1

  Pascal Bach (1):
        protobuf: 1.3.1 -> 1.3.2

  Paul Eggleton (3):
        mraa: update to 2.0.0
        upm: update to 2.0.0
        picocom: update to 3.1

  Pierre-Jean Texier (2):
        stunnel: bump to version 5.55
        cppzmq: bump to version 4.4.1

  Piotr Tworek (1):
        itstool: Don't use hardcoded, absolute path to python3 binary.

  Qi.Chen@windriver.com (3):
        turbostat: set PACKAGE_ARCH as MACHINE_ARCH
        esmtp: use alternatives to manage /usr/lib/sendmail
        postfix: use alternatives to manage /usr/lib/sendmail

  Radovan Scasny (2):
        dhcpcd: enable udev by default
        dhcpcd: fix building with pkgconfig

  Randy MacLeod (2):
        poppler: update from 0.75.0 to 0.79.0
        rsyslog: update from 8.1903.0 to 8.1907.0

  Ricardo Ribalda Delgado (1):
        fwts: Update to 19.06.00

  Robert Joslyn (1):
        cryptsetup: Don't enable udev for native build

  Roman Stratiienko (1):
        glmark2: Upgrade SRCREV to latest

  Ross Burton (2):
        gtk+: add (from oe-core)
        gnome-themes-standard: add recipe for GTK+ 2 Adwaita

  Ruslan Bilovol (2):
        libnss-nisplus: Add recipe
        kpatch: fix QA build errors for nativesdk

  Saravanan Sekar (1):
        liblightmodbus: Add version 2.0.2

  Scott Ellis (1):
        wireguard: Upgrade 20190406 to 20190702

  Slater, Joseph (3):
        drbd-utils: enable reproducible_build awareness
        php: remove host specific info from header file
        mozjs: do not expose intl api for mips64

  Tim Orling (9):
        libencode-perl: upgrade 2.94 -> 3.01; enable ptest
        libdbi-perl: fix dependencies
        libtest-nowarnings-perl: add recipe for 1.04
        libdbd-sqlite-perl: upgrade 1.54 -> 1.62; enable ptest
        libsub-uplevel-perl: add recipe for 0.36
        libtest-warn-perl: add recipe for 0.36
        libcgi-perl: upgrade 4.43 -> 4.44
        libnet-ldap-perl: upgrade 0.65 -> 0.66; enable ptest
        libunicode-linebreak-perl: upgrade 2017.004 -> 2019.001; enable ptest

  Trevor Gamblin (2):
        metacity; upgrade from 3.30.1 to 3.32.0
        gvfs: upgrade from 1.40.0 to 1.40.2

  Vincent Prince (1):
        mongodb: add mongo shell as a PACKAGECONF option

  William A. Kennington III via Openembedded-devel (5):
        gtest: Googletest project is back under github.com/google/googletest
        googletest: The gtest and gmock projects were combined under googletest in 2015
        libtar: Enable libtar-native build
        fmt: Init at 5.3.0
        cli11: 1.7.1 -> 1.8.0

  Windel Bouwman (3):
        python-humanfriendly: Add recipe for the humanfriendly package.
        Fix python-humanfriendly recipe for python2.
        Add recipe for the coloredlogs python package.

  Yi Zhao (7):
        strongswan: upgrade 5.7.1 -> 5.8.0
        snort: fix compile-host-path QA issue
        cryptsetup: set the default luks format to LUKS1
        libldb: upgrade 1.5.4 -> 1.5.5
        samba: upgrade 4.10.5 -> 4.10.6
        snort: upgrade 2.9.13 -> 2.9.14
        snort: upgrade 2.9.14 -> 2.9.14.1

  Yong, Jonathan (1):
        icewm: add recipe

  Yongxin Liu (3):
        keyutils: move recipe and patches from meta-security to meta-oe
        ndctl: v63 -> v65
        pmdk: update from 1.4.2 to 1.6

  Yuan Chao (9):
        python-pycodestyle: upgrade 2.4.0 -> 2.5.0
        python-lxml: upgrade 4.3.4 -> 4.4.0
        python-configparser: upgrade 3.5.0 -> 3.7.4
        protobuf: upgrade 3.9.0 -> 3.9.1
        python-markupsafe: upgrade 1.0 -> 1.1.1
        hostapd: upgrade 2.8 -> 2.9
        python-configparser: upgrade 3.7.4 -> 3.8.1
        python-lxml: upgrade 4.4.0 -> 4.4.1
        python-pip: upgrade 19.2.1 -> 19.2.2

  Zang Ruochen (47):
        postgresql: upgrade 11.3 -> 11.4
        wireshark: upgrade 3.0.1 -> 3.0.2
        python-pygobject: upgrade 3.32.1 -> 3.32.2
        python-alembic: upgrade 1.0.10 -> 1.0.11
        logwatch: upgrade 7.4.3 -> 7.5.1
        tcsh: upgrade 6.20.00 -> 6.21.00
        python-cython: upgrade 0.29.10 -> 0.29.11
        dialog: upgrade 1.3-20180621 -> 1.3-20190211
        php: upgrade 7.3.6 -> 7.3.7
        sessreg: upgrade 1.1.1 -> 1.1.2
        python-typing: upgrade 3.6.6 -> 3.7.4
        python-mako: upgrade 1.0.12 -> 1.0.13
        python-pbr: upgrade 5.2.1 -> 5.4.0
        python-cython: upgrade 0.29.11 -> 0.29.12
        adcli: added new recipe.
        python-pyflakes: upgrade 1.6.0 -> 2.1.1
        python-protobuf: upgrade 3.8.0 -> 3.9.0
        protobuf: upgrade 3.8.0 -> 3.9.0
        setxkbmap: upgrade 1.3.1 -> 1.3.2
        uftrace: upgrade 0.9.2 -> 0.9.3
        wireshark: upgrade 3.0.2 -> 3.0.3
        python-pbr: upgrade 5.4.0 -> 5.4.1
        dstat: upgrade 0.7.3 -> 0.7.4
        python-mako: upgrade 1.0.13 -> 1.0.14
        xfsprogs: upgrade 5.0.0 -> 5.1.0
        python-beautifulsoup4: upgrade 4.7.1 -> 4.8.0
        xterm: upgrade 347 -> 348
        python-pip: upgrade 19.1.1 -> 19.2.1
        python-paste: upgrade 3.0.8 -> 3.1.0
        syslog-ng: append syslog-ng.service
        dialog: upgrade 1.3-20190211 -> 1.3-20190728
        openldap: upgrade 2.4.47 -> 2.4.48
        python-cython: upgrade 0.29.12 -> 0.29.13
        libsodium: upgrade 1.0.17 -> 1.0.18
        hwdata: upgrade 0.322 -> 0.326
        python-jsonpatch: upgrade 1.23 -> 1.24
        python-pyasn1: upgrade 0.4.5 -> 0.4.6
        python-pyasn1-modules: upgrade 0.2.2 -> 0.2.6
        python-pyparsing: upgrade 2.4.0 -> 2.4.2
        python-pytest-runner: upgrade 4.2 -> 5.1
        python-pytz: upgrade 2019.1 -> 2019.2
        itstool: upgrade 2.0.5 -> 2.0.6
        opensaf: upgrade 5.19.03 -> 5.19.07
        libkcapi: upgrade 1.1.4 -> 1.1.5
        mcelog: upgrade 162 -> 164
        php: upgrade 7.3.7 -> 7.3.8
        kpatch: upgrade 0.61 -> 0.71

  Zheng Ruoqin (3):
        python-mako: upgrade 1.0.14 -> 1.1.0
        python-pbr: upgrade 5.4.1 -> 5.4.2
        dnf-plugin-tui: new recipe

  wouterlucas (1):
        python-jsonref: add recipe

meta-phosphor: fbd01b6e08..fe8cee7488:
  Brad Bishop (1):
        meta-phosphor: sdk: react to upstream gtest rename

meta-xilinx: 64aa3d35ae..f3c8b1c9a8:
  Alejandro Enedino Hernandez Samaniego (7):
        opencl-clhpp: Allow empty packages to be built
        opencl-headers: Allow empty packages to be built
        gcc-8: rebase microblaze patches for gcc 8.2.0
        gcc8: update microblaze patches
        gcc: update microblaze patches
        update gcc-8 patches
        gcc: Remove xilinx.ld requirement

  Jaewon Lee (6):
        zc1254-zynqmp.conf: Add support for zc1254 evaluation board
        zc1275-zynqmp.conf: Add support for zc1275 evaluation board
        zcu102-zynqmp.conf: Changing qemu boot mode
        Adding FPGA_MNGR_RECONFIG_ENABLE to control enabling fpga manager
        gcc: Removing already upstreamed patch
        Rebasing binutils patches from 2.31 to 2.32

  Madhurkiran Harikrishnan (2):
        kernel-module-mali: Fix errors associated with kernel upgrade to 4.19
        xf86-video-armsoc: Remove the recipe for xf86-video-armsoc

  Manjukumar Matha (10):
        libmali-xlnx_git.bb: Fix the package arch for libmali
        zcu111-zynqmp.conf: Add support for ZCU111 evaluation board
        qemu-system-aarch64-multiarch: Enable plm argument in runqemu
        arm-trusted-firmware.inc: Add support to build ATF for versal devices
        linux-xlnx.inc: Add support to build kernel for versal devices
        linux-xlnx.inc: Use KBUILD_DEFCONFIG in externalsrc mode if defined
        kernel-simpleimage.bbclass: Use dts for simpleImage generation for Microblaze
        kernel-simpleimage.bbclass: Deploy simpleImage unstrip file
        kernel-simpleimage.bbclass: Deploy simpleImage strip
        binutils%.bbappend: Update Microblaze binutils patches to v2.31

  Min Ma (4):
        ocl-icd_git.bb: Add recipe for OpenCL ICD loaders
        opencl-clhpp_git.bb: Recipe for OpenCL Host API C++ bindings
        zocl: Recipe for Xilinx runtime driver module
        xrt: Xilinx Runtime User Space Libraries and headers

  Sai Hari Chandana Kalluri (1):
        xilinx-testimage.bbclass: Include IMAGE_AUTOLOGIN and IMAGE_FSTYPES values for runqemu

  Sreeja Vadakattu (1):
        machine-xilinx-default.inc: Make u-boot.elf as UBOOT_ELF for zynq

  Vineeth Chowdary Karumanchi (1):
        tune-zynq.inc: Build zImage in addition to uImage

meta-security: c28b72e91d..ecb526ffab:
  Armin Kuster (34):
        linux-bbappends: simplify
        layers: set warrior only
        security-test-image: add a testing image
        runtime: clamav test cleanup
        packagegroup-core-security: cleanup and remove ptest
        test-image: add packagegroup-core-security-ptest
        test-image: add a few more packages to image
        ima-evm-utils: update to tip
        runtime: tpm2 fix names in packagecheck
        tpm2 images: create tpm2 image and fix packagegroup
        tpm image: split out tpm2
        tpm2-pkcs11/tpm2-pkcs11: update to tip
        tpm2-tcti-uefi: update to tip
        tpm2-tools: update to 3.2.0
        tpm2-tss: update to 2.2.3
        tpm2-totp: update to offical release v0.1.1
        tpm2-tss-engine: update to 1.0.0
        libmspack: update SRC_URI and package
        clamav: minor recipe cleanup
        lynis: update to 2.7.5
        meta-security-compliance: update README
        openscap_git: update to 1.3.0
        openscap: add 1.3.1 recipes for upstream source
        scap-security-guide: update to 0.1.44
        meta-security-compliance: add meta-python
        libldb: remove recipe
        waf-cross-answers: remove files
        samhain: update to 4.3.3
        keyutils: remove from meta-security
        linux-%: remove kernel fragments now in cache
        meta-integrity: remove kernel fragments now in cache
        linux-stable/5.2: add stable bbappend
        linux-yocto: use 4.19 kernel cache now
        linux-yocto-dev: update to use kernel cache

  Dmitry Eremin-Solenikov (11):
        packagegroup-security-tpm2: stop including tpm2-tcti-uefi
        tpm2-tss: fix compilation when using updated AX_CODE_COVERAGE macro
        tpm2-tcti-uefi: add autoconf-archive-native dependency
        tpm2-tcti-uefi: fix configure arguments
        tpm2-tcti-uefi: stop inserting host directories into build path
        tpm2-tcti-uefi: build and install examples
        meta-integrity: rename IMA_EVM_BASE to INTEGRITY_BASE
        ima-evm-utils: bump to release 1.2.1
        kernel-modsign.bbclass: add support for kernel modules signing
        linux: add support for kernel modules signing
        layer.conf: switch to keyutils from meta-oe

  He Zhe (1):
        kernel: Add conditional inclusion of fragments for linux-yocto-dev

  Mark Asselstine (1):
        openscap/scap-security-guide: use _git instead of versioned filenames

  Yi Zhao (5):
        openscap: update recipe
        scap-security-guide: update recipe
        openscap: cleanup DEPENDS
        scap-security-guide: fix typo
        xmlsec1: upgrade 1.2.27 -> 1.2.28

  lumag (3):
        layer.conf: add dependency on meta-security
        ima-evm-utils: bump version
        ima-evm-utils: refresh xattr patch

meta-raspberrypi: 8636b63752..b112816e95:
  Andrei Gherzan (46):
        rpi-base.inc: Include rpi4 dtb
        raspberrypi3.conf: Clarify machine mode
        linux-raspberrypi: Include configuration for RaspberryPi3 defconfig
        linux-raspberrypi: Update 4.19 kernel to 4.19.56
        rpi-base: Rename the rpi0w dtb
        firmware: Update to 20190620
        raspberrypi4.conf: Add initial machine 32 bit configuration
        linux-firmware-rpidistro: Fix WiFi on RaspberryPi 4
        rpi-base.inc: Include the "fake" KMS dtbo
        raspberrypi4: Use vc4-fkms-v3d
        linux-raspberrypi: Bump 4.19 revision to fix RPi 4 arm64 builds
        raspberrypi4-64.conf: Introduce RPi arm64 machine
        firmware: Rename firmware inc file to raspberrypi-firmware.inc
        armstubs: Add support for compiling ARM stubs
        rpi-config: Handle ARMSTUB
        sdcard_image-rpi.bbclass: Include in the SD card image the armstub file
        raspberrypi4-64.conf: Initial machine configuration
        raspberrypi-tools: Update to remove Makefile patch
        linux-raspberrypi: Fix defconfig for RPi4-64
        linux-raspberrypi.inc: Explicitly set defconfig for raspberrypi4-64
        sdcard_image-rpi.bbclass: Fix typo
        linux-raspberrypi: Bump 4.19 revision to have proper coherent_pool set
        raspberrypi4-64.conf: Define a machine feature for armstubs
        sdcard_image-rpi.bbclass: Use armstub machine feature
        linux-raspberrypi: Bump 4.19.57 revision
        raspberrypi4.conf: Define uboot defconfig
        raspberrypi4-64.conf: Uboot configuration and drop armstub
        u-boot: Use a temporary fork for RPi4 support
        raspberrypi-firmware: Update to 20190709
        raspberrypi4.conf: The firmware uses kernel7l.img when LPAE is supported
        linux-raspberrypi: Bump 4.19 to 4.19.58
        linux-raspberrypi: Build dtbs with dtbs make target for all 64bit targets
        linux-raspberrypi: Bump 4.19 revision
        raspberrypi4-64.conf: Remove memory limitation
        u-boot: Replace custom fork by patches
        u-boot: Update patches for RPi4
        rpi-config: Check for armstub based on machine feature
        sdcard_image-rpi: Check for armstub based on machine feature
        armstubs: Error out when ARMSTUBS is not defined
        raspberrypi*: Define ARMSTUB for all machines
        raspberrypi4-64.conf: Limit RAM to 3G
        README.md: Use matrix  chat room
        raspberrypi-firmware.inc: Update to 20190718
        linux-raspberrypi: Update 4.19 recipe to 4.19.66
        mesa: Add v3d and kmsro driver as well
        raspberrypi4-64: Remove the 3G RAM limitation

  Carton (2):
        bluez5: Fixed typo (RC_URI -> SRC_URI)
        rpi-config: Check some config values against "1"

  Francesco Giancane (1):
        linux-raspberrypi: update to 4.14.114

  Khem Raj (8):
        linux-raspberrypi: Upgrade to 4.19.57
        userland: Upgrade to latest
        webkitgtk: Remove -DUSE_GSTREAMER_GL=OFF for vc4graphics
        layer.conf: Add meta-networking to dynamic layers
        drbd: Disable for rpi machines
        packagegroup-rpi-test: Depend on wireless-regdb instead of crda
        xorg-xserver: Adapt bbappend to latest OE-core
        python-rtimu,python-sense-hat: Convert to py3 modules

  Kirill Goncharov (1):
        omxplayer: Bump revision

  Martin Jansa (1):
        sdcard_image-rpi.bbclass: use -v for all mcopy calls and add bbfatal in case mcopy fails

  Riyaz (1):
        rpi-base.inc: Enabling open-source vc4graphics driver for all RPI platforms

Change-Id: I9e37b5952a2e2e30745275fc89e4dd7c47b851e2
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
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 0000000..8524517
--- /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 e09cd82..d84fcae 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
@@ -41,6 +41,7 @@
     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} \
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 0000000..e891868
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_git.bb
@@ -0,0 +1,38 @@
+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} += " \
+  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 0000000..6c4502e
--- /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 6c1c153..84adc7a 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 @@
 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 @@
 }
 
 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/libedit/libedit/stdc-predef.patch b/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit/stdc-predef.patch
deleted file mode 100644
index c95cdc9..0000000
--- 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 9d333e7..0000000
--- 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/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 0000000..44a835c
--- /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
similarity index 69%
rename from meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus_2.0.3.bb
rename to meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus_2.0.4.bb
index 56c62f1..566de28 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 @@
 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/nodejs/nodejs_10.15.3.bb b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_10.16.2.bb
similarity index 86%
rename from meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_10.15.3.bb
rename to meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_10.16.2.bb
index d2e77ea..e259c45 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.2.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
@@ -23,8 +23,8 @@
            file://0002-Using-native-torque.patch \
            "
 
-SRC_URI[md5sum] = "d76210a6ae1ea73d10254947684836fb"
-SRC_URI[sha256sum] = "4e22d926f054150002055474e452ed6cbb85860aa7dc5422213a2002ed9791d5"
+SRC_URI[md5sum] = "fa70b942c5e3379ce96219fe90f50c8f"
+SRC_URI[sha256sum] = "6cbc17795e9259dce7a8f5fd5a2e46f9e6920fb48b7d9539c5b2faa5bb5db4d8"
 
 S = "${WORKDIR}/node-v${PV}"
 
@@ -49,16 +49,21 @@
 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 +100,7 @@
 
 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 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 1ec32ce..71d2450 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 @@
 
 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 0000000..618ce26
--- /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 b50c3ac..df10177 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 @@
     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"
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 ff4a9d0..91f94a1 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 @@
 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,35 @@
 	rm -rf ${B}/t/z*.t
 }
 
+RDEPENDS_${PN}_class-target = " \
+    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/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 f70e550..0000000
--- 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 ac8365b..0000000
--- 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 e7d326d..0000000
--- 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/acinclude-xml2-config.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/acinclude-xml2-config.patch
deleted file mode 100644
index d083166..0000000
--- 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 0000000..21050f7
--- /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/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 72ad554..0000000
--- 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 7be67ea..0000000
--- 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 1d21f8c..0000000
--- 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 9974303..0000000
--- 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 4e1efd4..0000000
--- 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 0c564cd..0000000
--- 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 9f5bac7..0000000
--- 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.8.bb
similarity index 84%
rename from meta-openembedded/meta-oe/recipes-devtools/php/php_7.3.6.bb
rename to meta-openembedded/meta-oe/recipes-devtools/php/php_7.3.8.bb
index b1cac1c..072d53a 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.8.bb
@@ -6,6 +6,7 @@
             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 \
            "
 SRC_URI_append_class-target = " \
                                 file://pear-makefile.patch \
@@ -14,8 +15,8 @@
                                 file://xfail_two_bug_tests.patch \
                                 "
 
-SRC_URI[md5sum] = "bde9a912fb311182cd460dad1abbc247"
-SRC_URI[sha256sum] = "1e5ac8700154835c0910e3a814517da9b87bb4a82cc7011fea1a82096b6f6f77"
+SRC_URI[md5sum] = "4ffc06e803cd782a95483eb02213301e"
+SRC_URI[sha256sum] = "d566c630175d9fa84a98d3c9170ec033069e9e20c8d23dea49ae2a976b6c76f5"
 
 PACKAGECONFIG[mysql] = "--with-mysqli=mysqlnd \
                         --with-pdo-mysql=mysqlnd \
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 3591495..0000000
--- 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
similarity index 89%
rename from meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.1.bb
rename to meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.2.bb
index 1d17823..6d1ffc3 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,9 @@
 
 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 \
           "
 
 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 a160e5e..0000000
--- 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 0000000..fc72861
--- /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 0000000..0a2e5e2
--- /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.1.bb
similarity index 89%
rename from meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.8.0.bb
rename to meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.9.1.bb
index 476d1e3..94d8def 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.1.bb
@@ -10,12 +10,13 @@
 DEPENDS = "zlib"
 DEPENDS_append_class-target = " protobuf-native"
 
-SRCREV = "09745575a923640154bcf307fba8aedff47f240a"
+SRCREV = "655310ca192a6e3a050e0ca0b7084a2968072260"
 
-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 @@
 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/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 0000000..848cda5
--- /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.32.2.bb
similarity index 69%
rename from meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.32.1.bb
rename to meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.32.2.bb
index c26b383..0ea70b2 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.32.2.bb
@@ -12,21 +12,25 @@
 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] = "92ffa25351782feb96362f0dace2089f"
+SRC_URI[sha256sum] = "c39ca2a28364b57fa00549c6e836346031e6b886c3ceabfd8ab4b4fed0a83611"
 
 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/uftrace/uftrace_0.9.2.bb b/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.9.3.bb
similarity index 94%
rename from meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.9.2.bb
rename to meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.9.3.bb
index 4f40168..dba607c 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 @@
 
 inherit autotools
 
-# v0.9.2
-SRCREV = "66fc1fb973f4a44aecd216541405ffe05196f11e"
+# v0.9.3
+SRCREV = "e77780e7524c0a97f25313b205837191bbe9712a"
 SRC_URI = "git://github.com/namhyung/${BPN} \
            "
 S = "${WORKDIR}/git"