Upgrade to thud
authorScott Murray <scott.murray@konsulko.com>
Fri, 8 Feb 2019 15:53:08 +0000 (10:53 -0500)
committerStephane Desneux <stephane.desneux@iot.bzh>
Thu, 4 Apr 2019 16:02:11 +0000 (18:02 +0200)
Changes include:
- Add LAYERSERIES_COMPAT definitions to layer.conf files
- Remove now unnecessary SECURITY_*FLAGS over-rides from distro
  configuration
- Set intel-corei7-64 preferred kernel version to 4.19 to match
  latest linux-intel kernel available in meta-intel
- Update qemuarm preferred kernel version to 4.18 to match latest
  linux-yocto
- Update firmware package and devicetree file names for raspberrypi3
- Remove linux-firmware bbappend specific to raspberrypi, it seems no
  longer required and breaks the cross SDK build
- Update linux-intel bbappend to 4.19, remove now unnecessary patch
- Remove now unnecessary lttng-modules backport
- Update linux-raspberrypi bbappend to 4.14 kernel
- Added kernel configuration fragment for raspberrypi to disable
  Kprobes. This is required until linux-raspberrypi is updated to
  greater than 4.14.104 to avoid a build failure in lttng-modules
  related to a check for known breakage in the kernel CONFIG_OPTPROBES
  code.
- Replace obsolete base_conditional usage with oe.utils.conditional
- Add gstreamer1.0-plugins-bad bbappend for raspberrypi3 to disable
  faad PACKAGECONFIG to avoid commercial license issues
- Remove unused and unbuildable Vayu gstreamer recipes
- Update linux-ti-staging bbappend for new BSP kernel
- Regen dcan2_pinmux_enable.patch for linux-ti-staging to remove fuzz
  warning, and remove upstreamed fix_dcan_addresses.patch
- Remove ipumm-fw from meta-agl-bsp/meta-ti, as newer version is
  available in the upstream BSP
- Update meta-agl-bsp/meta-ti weston patch to apply against 5.0.0
- Update meta-agl-bsp/meta-ti wayland-ivi-extension patch to apply
  against 2.2.0
- Add ti-sgx-ddk-km patch to add AGL toolchain configuration file
- Remove now unnecessary fdtoverlay recipe
- Update core.cfg and ivishell.cfg in weston-ini-conf recipe to handle
  move of ivi-controller.so configuration in Weston 5.0.0
- Update connman-ncurses patch to remove fuzz warning
- Add installation of systemd over-ride file for run-postinsts.service
  in run-postinsts bbappend to workaround race condition between
  ldconfig.service and the /sbin/ldconfig invocations in the
  post-install scripts run by run-postinsts.service.  The observed
  failure was cynara's post-install script failing and its database
  not being created.
- Remove now unnecessary valgrind backport
- Add patches to fix most driver compilation against newer kernels
- Update libmicrohttpd bbappend
- Remove libssp-dev from agl-image-graphical-qt5-crosssdk and
  agl-demo-platform-html5-crosssdk, upstream have removed it from
  non-mingw32 platform SDKs
- Update wayland-ivi-extension recipe to build 2.2.0, and update
  local patches
- Update weston patches for 5.0.0. Patches:

  0016-ivi-shell_add_screen_remove_layer_api.patch
  0017-ivi-shell-register-ivi_layout_interface.patch

  have been removed as they have been applied upstream and are no longer
  necessary. Patches:

  0018-compositor-add-output-type-to-weston_output.patch
  0019-compositor-drm-introduce-drm_get_dmafd_from_view.patch

  (both related to Waltham) have been disabled for now as they need
  significant rework.
- Remove weston-conf RRECOMMENDS in weston bbappend to avoid conflict
  with weston-ini-conf
- Add OECMAKE_GENERATOR = "Unix Makefiles" to aglwgt.bbclass to work
  around CMake+ninja issue in cmake-apps-module
- Update dbus cynara patches for 1.12.10
- Add do_install_append in cynara recipe to remove /var/cynara from
  cynara package so the directory creation and labelling in the
  post-install scriptlet will function as intended
- Remove now unnecessary e2fsprogs backport
- Remove now unnecessary libcap-ng backport
- Update pulseaudio patches to remove fuzz warnings
- Update neardal patch to remove fuzz warning
- Update freetype patch to remove fuzz warning
- Rename opencv bbappend to 3.% to handle 3.x backports in upstream
- Updated qtwayland patch to remove fuzz warning

Changes from Stephane Desneux <stephane.desneux@iot.bzh>:
- Remove wayland-ivi-extension PREFERRED_VERSION
- Remove now unnecessary nativesdk-cmake patch
- Remove now unnecessary ptest-runner patches
- Remove now unnecessary harfbuzz patches
- Disable waltham-transmitter as it does not build against weston 5.0.0
- Update af-main, cynara, and security-manager to use pkg_postinst_ontarget
- Bump connman-ncurses revision to avoid deprecated ncurses functions
- Update libva package usage with new intel-vaapi-driver name
- Add patches to security-manager to fix compilation with gcc8
- Updated systemd bbappend

Changes from Jan-Simon Möller <jsmoeller@linuxfoundation.org>:
- Remove meta-agl-bsp/ROCKO.FIXMEs
- Remove linux-yocto_4.12.bbappend and now unnecessary associated
  patch
- Remove now unneeded kern-tools-native patch
- Bump gstreamer PREFERRED_VERSIONs to 1.14.x
- Remove latencytop from packagegroup-agl-core-devel, it has been
  dropped by upstream
- Remove now unnecessary rpm patches
- Update pulseaudio bbappend to 12.2
- Update opencv bbappend to 3.4
- Update freetype bbappend to 2.9.1
- Update dbus bbappend to 1.12.10
- Update weston bbappend to 5.0.0
- Update cynara patches to remove fuzz warnings
- Add patch to cynara to fix compilation with gcc8
- Add xmlsec1 bbappend to clear EXTRA_OECONF to fix compilation on
  sumo or newer

Changes from Ronan Le Martet <ronan.lemartet@iot.bzh>:
- Update meta-rcar-gen3-adas layer gstreamer1.0-plugin-vspfilter
  bbappend to version 1.0.1

Known issues (marked with FIXME):
- CMake+ninja issue in cmake-apps-module has been worked around with
  OECMAKE_GENERATOR
- waltham-transmitter and the patches to weston related to it have been
  disabled
- Currently unclear if patch to libcap-native is actually required or
  not

Bug-AGL: SPEC-1837

Change-Id: I7b8b9ef667aec2d229952eace6663dfc761654d0
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
186 files changed:
meta-agl-bsp/ROCKO.FIXMEs [deleted file]
meta-agl-bsp/conf/include/agl_dra7xx-evm.inc
meta-agl-bsp/conf/include/agl_intel-corei7-64.inc
meta-agl-bsp/conf/include/agl_joule.inc
meta-agl-bsp/conf/include/agl_raspberrypi3.inc
meta-agl-bsp/conf/layer.conf
meta-agl-bsp/conf/machine/qemuarm.conf
meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/harfbuzz/harfbuzz_1.4.8.bbappend [deleted file]
meta-agl-bsp/meta-core/recipes-kernel/linux/linux-yocto/0001-NFC-pn533-don-t-send-USB-data-off-of-the-stack.patch [deleted file]
meta-agl-bsp/meta-core/recipes-kernel/linux/linux-yocto_4.12.bbappend [deleted file]
meta-agl-bsp/meta-intel/recipes-kernel/linux/files/0001-NFC-pn533-don-t-send-USB-data-off-of-the-stack.patch [deleted file]
meta-agl-bsp/meta-intel/recipes-kernel/linux/linux-intel_4.19%.bbappend [moved from meta-agl-bsp/meta-intel/recipes-kernel/linux/linux-intel_4.14%.bbappend with 83% similarity]
meta-agl-bsp/meta-intel/recipes-kernel/lttng/lttng-modules/BUILD_RUNTIME_BUG_ON-vs-gcc7.patch [deleted file]
meta-agl-bsp/meta-intel/recipes-kernel/lttng/lttng-modules/Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch [deleted file]
meta-agl-bsp/meta-intel/recipes-kernel/lttng/lttng-modules_2.10.5.bb [deleted file]
meta-agl-bsp/meta-raspberrypi/recipes-graphics/userland/userland_%.bbappend [new file with mode: 0644]
meta-agl-bsp/meta-raspberrypi/recipes-kernel/create-combined-dtb/create-combined-dtb_1.0.0.bb
meta-agl-bsp/meta-raspberrypi/recipes-kernel/fdtoverlay/fdtoverlay.inc [deleted file]
meta-agl-bsp/meta-raspberrypi/recipes-kernel/fdtoverlay/fdtoverlay/make_install.patch [deleted file]
meta-agl-bsp/meta-raspberrypi/recipes-kernel/fdtoverlay/fdtoverlay_1.4.7.bb [deleted file]
meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_%.bbappend [deleted file]
meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi/disable_kprobes.cfg [new file with mode: 0644]
meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_%.bbappend
meta-agl-bsp/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend [new file with mode: 0644]
meta-agl-bsp/meta-rcar-gen3-adas/conf/layer.conf
meta-agl-bsp/meta-rcar-gen3-adas/recipes-multimedia/gstreamer/gstreamer1.0-plugin-vspfilter_1.0.1.bbappend [moved from meta-agl-bsp/meta-rcar-gen3-adas/recipes-multimedia/gstreamer/gstreamer1.0-plugin-vspfilter_1.0.0.bbappend with 100% similarity]
meta-agl-bsp/meta-ti/recipes-arago/gst-plugins-ti/gstreamer1.0-plugins-ducati_git.bb [deleted file]
meta-agl-bsp/meta-ti/recipes-arago/gst-plugins-ti/gstreamer1.0-plugins-ti.inc [deleted file]
meta-agl-bsp/meta-ti/recipes-arago/gst-plugins-ti/gstreamer1.0-plugins-vpe/ti-video.conf [deleted file]
meta-agl-bsp/meta-ti/recipes-arago/gst-plugins-ti/gstreamer1.0-plugins-vpe_git.bb [deleted file]
meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0001-Enable-mouse-movement-for-videos-on-waylandsink.patch [deleted file]
meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0001-gstdrmallocator-Add-DRM-allocator-support.patch [deleted file]
meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0001-gstwaylandsink-Add-mouse-drag-and-drop-support.patch [deleted file]
meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0001-gstwaylandsink-add-input-format-I420-support.patch [deleted file]
meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0002-kmssink-remove-DCE-dependencies.patch [deleted file]
meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0002-parsers-Pick-previos-bug-fixes-on-different-parsers.patch [deleted file]
meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0003-gstkmssink-Add-support-for-KMS-based-sink.patch [deleted file]
meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0003-kmssink-add-YUYV-support.patch [deleted file]
meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0004-gstwaylandsink-Add-DRM-support-on-waylandsink.patch [deleted file]
meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0005-gstwaylandsink-Implement-callbacks-for-version-5-of-.patch [deleted file]
meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad_%.bbappend [deleted file]
meta-agl-bsp/meta-ti/recipes-arago/ipumm-fw/ipumm-fw_3.00.13.00.bb [deleted file]
meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0003-Weston-Fix-virtual-keyboard-display-issue-for-QT5-ap.patch
meta-agl-bsp/meta-ti/recipes-bsp/ti-sgx-ddk-km/ti-sgx-ddk-km/add-AGL-toolchain-config.patch [new file with mode: 0644]
meta-agl-bsp/meta-ti/recipes-bsp/ti-sgx-ddk-km/ti-sgx-ddk-km_%.bbappend [new file with mode: 0644]
meta-agl-bsp/meta-ti/recipes-graphics/wayland/wayland-ivi-extension/force-type-conversion.patch
meta-agl-bsp/meta-ti/recipes-graphics/wayland/wayland-ivi-extension_%.bbappend [moved from meta-agl-bsp/meta-ti/recipes-graphics/wayland/wayland-ivi-extension_2.%.bbappend with 100% similarity]
meta-agl-bsp/meta-ti/recipes-kernel/linux/files/dcan2_pinmux_enable.patch
meta-agl-bsp/meta-ti/recipes-kernel/linux/files/fix_dcan_addresses.patch [deleted file]
meta-agl-bsp/meta-ti/recipes-kernel/linux/linux-ti-staging_%.bbappend
meta-agl-bsp/recipes-graphics/opencv/opencv_3.%.bbappend [moved from meta-agl-bsp/recipes-graphics/opencv/opencv_3.3.bbappend with 100% similarity]
meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/core.cfg
meta-agl-bsp/recipes-graphics/wayland/weston-ini-conf/ivishell.cfg
meta-agl-bsp/recipes-kernel/kern-tools-native/files/0001-merge_config.sh-add-CR-after-fragment.patch [deleted file]
meta-agl-bsp/recipes-kernel/kern-tools-native/kern-tools-native_git.bbappend [deleted file]
meta-agl-bsp/recipes-support/ptest-runner/ptest-runner/0001-utils.c-Prefer-monotonic-clock-to-calculate-elapsed-.patch [deleted file]
meta-agl-bsp/recipes-support/ptest-runner/ptest-runner/0002-Makefile-libcheck-now-requires-to-link-subunit.patch [deleted file]
meta-agl-bsp/recipes-support/ptest-runner/ptest-runner/0003-Add-support-to-avoid-load-run-twice-a-run_ptest-scri.patch [deleted file]
meta-agl-bsp/recipes-support/ptest-runner/ptest-runner/0004-README.md-Update-to-my-current-email.patch [deleted file]
meta-agl-bsp/recipes-support/ptest-runner/ptest-runner/0005-main.c-Use-realpath-to-get-the-actual-directory-of-p.patch [deleted file]
meta-agl-bsp/recipes-support/ptest-runner/ptest-runner/0006-main.c-Add-option-e-to-exclude-certain-tests-for-exe.patch [deleted file]
meta-agl-bsp/recipes-support/ptest-runner/ptest-runner_2.1.bbappend [deleted file]
meta-agl-bsp/recipes-support/ptest-runner/ptest-runner_2.2.bbappend [new file with mode: 0644]
meta-agl-distro/conf/distro/poky-agl.conf
meta-agl-distro/conf/layer.conf
meta-agl-profile-cluster-qt5/conf/layer.conf
meta-agl-profile-cluster/conf/layer.conf
meta-agl-profile-core/conf/layer.conf
meta-agl-profile-core/recipes-connectivity/connman-ncurses/connman-ncurses_git.bb
meta-agl-profile-core/recipes-connectivity/connman/files/0001-disable-when-booting-over-nfs.patch
meta-agl-profile-core/recipes-connectivity/neardal/neardal/0001-neardal-ncl-fix-segfault-on-help-page-being-displaye.patch
meta-agl-profile-core/recipes-devtools/cmake/cmake_%.bbappend
meta-agl-profile-core/recipes-devtools/cmake/files/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch [deleted file]
meta-agl-profile-core/recipes-devtools/packagegroups/packagegroup-agl-core-devel.bb
meta-agl-profile-core/recipes-devtools/rpm/files/0001-Factor-out-and-unify-setting-CLOEXEC.patch [deleted file]
meta-agl-profile-core/recipes-devtools/rpm/files/0002-Optimize-rpmSetCloseOnExec.patch [deleted file]
meta-agl-profile-core/recipes-devtools/rpm/files/0003-rpmSetCloseOnExec-use-getrlimit.patch [deleted file]
meta-agl-profile-core/recipes-devtools/rpm/rpm_%.bbappend [deleted file]
meta-agl-profile-core/recipes-devtools/run-postinsts/run-postinsts/ldconfig-wait.conf [new file with mode: 0644]
meta-agl-profile-core/recipes-devtools/run-postinsts/run-postinsts_%.bbappend
meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-Remove-tests-that-fail-to-build-on-some-PPC32-config.patch [deleted file]
meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-makefiles-Drop-setting-mcpu-to-cortex-a8-on-arm-arch.patch [deleted file]
meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-memcheck-arm64-Define-__THROW-if-not-already-defined.patch [deleted file]
meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-memcheck-tests-Use-ucontext_t-instead-of-struct-ucon.patch [deleted file]
meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-sigqueue-Rename-_sifields-to-__si_fields-on-musl.patch [deleted file]
meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-str_tester.c-Limit-rawmemchr-test-to-glibc.patch [deleted file]
meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0002-context-APIs-are-not-available-on-musl.patch [deleted file]
meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0002-memcheck-x86-Define-__THROW-if-not-defined.patch [deleted file]
meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0002-remove-rpath.patch [deleted file]
meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0003-correct-include-directive-path-for-config.h.patch [deleted file]
meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0003-tests-seg_override-Replace-__modify_ldt-with-syscall.patch [deleted file]
meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0004-Fix-out-of-tree-builds.patch [deleted file]
meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0004-pth_atfork1.c-Define-error-API-for-musl.patch [deleted file]
meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0005-Modify-vg_test-wrapper-to-support-PTEST-formats.patch [deleted file]
meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0005-tc20_verifywrap.c-Fake-__GLIBC_PREREQ-with-musl.patch [deleted file]
meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0006-pth_detached3.c-Dereference-pthread_t-before-adding-.patch [deleted file]
meta-agl-profile-core/recipes-devtools/valgrind/valgrind/Added-support-for-PPC-instructions-mfatbu-mfatbl.patch [deleted file]
meta-agl-profile-core/recipes-devtools/valgrind/valgrind/avoid-neon-for-targets-which-don-t-support-it.patch [deleted file]
meta-agl-profile-core/recipes-devtools/valgrind/valgrind/fixed-perl-path.patch [deleted file]
meta-agl-profile-core/recipes-devtools/valgrind/valgrind/link-gz-tests.patch [deleted file]
meta-agl-profile-core/recipes-devtools/valgrind/valgrind/ppc-headers.patch [deleted file]
meta-agl-profile-core/recipes-devtools/valgrind/valgrind/run-ptest [deleted file]
meta-agl-profile-core/recipes-devtools/valgrind/valgrind/use-appropriate-march-mcpu-mfpu-for-ARM-test-apps.patch [deleted file]
meta-agl-profile-core/recipes-devtools/valgrind/valgrind/valgrind-make-ld-XXX.so-strlen-intercept-optional.patch [deleted file]
meta-agl-profile-core/recipes-devtools/valgrind/valgrind_git.bb [deleted file]
meta-agl-profile-core/recipes-kernel/most/files/0010-backport-usb-setup-timer.patch [new file with mode: 0644]
meta-agl-profile-core/recipes-kernel/most/files/0011-handle-snd_pcm_lib_mmap_vmalloc-removal.patch [new file with mode: 0644]
meta-agl-profile-core/recipes-kernel/most/most.bbappend
meta-agl-profile-core/recipes-multimedia/pulseaudio/pulseaudio-12.2/0001-install-files-for-a-module-development.patch [moved from meta-agl-profile-core/recipes-multimedia/pulseaudio/pulseaudio-10.0/0001-install-files-for-a-module-development.patch with 79% similarity]
meta-agl-profile-core/recipes-multimedia/pulseaudio/pulseaudio-12.2/0002-volume-ramp-additions-to-the-low-level-infra.patch [moved from meta-agl-profile-core/recipes-multimedia/pulseaudio/pulseaudio-10.0/0002-volume-ramp-additions-to-the-low-level-infra.patch with 96% similarity]
meta-agl-profile-core/recipes-multimedia/pulseaudio/pulseaudio-12.2/0003-volume-ramp-adding-volume-ramping-to-sink-input.patch [moved from meta-agl-profile-core/recipes-multimedia/pulseaudio/pulseaudio-10.0/0003-volume-ramp-adding-volume-ramping-to-sink-input.patch with 100% similarity]
meta-agl-profile-core/recipes-multimedia/pulseaudio/pulseaudio-12.2/0004-sink-input-Code-cleanup-regarding-volume-ramping.patch [moved from meta-agl-profile-core/recipes-multimedia/pulseaudio/pulseaudio-10.0/0004-sink-input-Code-cleanup-regarding-volume-ramping.patch with 100% similarity]
meta-agl-profile-core/recipes-multimedia/pulseaudio/pulseaudio-12.2/0005-sink-input-volume-Add-support-for-volume-ramp-factor.patch [moved from meta-agl-profile-core/recipes-multimedia/pulseaudio/pulseaudio-10.0/0005-sink-input-volume-Add-support-for-volume-ramp-factor.patch with 100% similarity]
meta-agl-profile-core/recipes-multimedia/pulseaudio/pulseaudio-12.2/0006-sink-input-Remove-pa_sink_input_set_volume_ramp.patch [moved from meta-agl-profile-core/recipes-multimedia/pulseaudio/pulseaudio-10.0/0006-sink-input-Remove-pa_sink_input_set_volume_ramp.patch with 100% similarity]
meta-agl-profile-core/recipes-multimedia/pulseaudio/pulseaudio-12.2/enable-ofono-hfp-backend.patch [moved from meta-agl-profile-core/recipes-multimedia/pulseaudio/pulseaudio-10.0/enable-ofono-hfp-backend.patch with 100% similarity]
meta-agl-profile-core/recipes-multimedia/pulseaudio/pulseaudio_12.2.bbappend [moved from meta-agl-profile-core/recipes-multimedia/pulseaudio/pulseaudio_10.0.bbappend with 91% similarity]
meta-agl-profile-core/recipes-support/opencv/opencv_3.%.bbappend [moved from meta-agl-profile-core/recipes-support/opencv/opencv_3.3.bbappend with 100% similarity]
meta-agl-profile-core/recipes-test/freetype/files/0001-Makefile-dont-build-gfx-demos.patch
meta-agl-profile-core/recipes-test/freetype/freetype_2.9.1.bbappend [moved from meta-agl-profile-core/recipes-test/freetype/freetype_2.8.bbappend with 83% similarity]
meta-agl-profile-graphical-html5/conf/layer.conf
meta-agl-profile-graphical-html5/recipes-platform/images/agl-demo-platform-html5-crosssdk.bb
meta-agl-profile-graphical-qt5/conf/layer.conf
meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5-crosssdk.bb
meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0099_qtwayland_no_evdev.patch
meta-agl-profile-graphical/conf/layer.conf
meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0001-Added-ivi-id-agent-to-CMake.patch
meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0002-ivi-id-agent-added-ivi-id-agent.patch
meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0003-ivi-controller-load-id-agent-module.patch
meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0004-ivi-ilmcontrol-added-focus-notification.patch
meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension_git.bb [moved from meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension_2.0.2.bb with 63% similarity]
meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_2.0.0.patch
meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-ivi-shell-rework-goto-labels-to-avoid-memory-leaks.patch
meta-agl-profile-graphical/recipes-graphics/wayland/weston/0003-ivi-shell-introduction-of-IVI_INVALID_ID.patch
meta-agl-profile-graphical/recipes-graphics/wayland/weston/0011-ivi-shell-create-weston-desktop-in_wet_shell_init.patch
meta-agl-profile-graphical/recipes-graphics/wayland/weston/0012-hmi-controller-register-for-desktop_surface_configured.patch
meta-agl-profile-graphical/recipes-graphics/wayland/weston/0013-simple-egl-remove-ivi-application-support.patch
meta-agl-profile-graphical/recipes-graphics/wayland/weston/0016-ivi-shell_add_screen_remove_layer_api.patch [deleted file]
meta-agl-profile-graphical/recipes-graphics/wayland/weston/0017-ivi-shell-register-ivi_layout_interface.patch [deleted file]
meta-agl-profile-graphical/recipes-graphics/wayland/weston/use-XDG_RUNTIMESHARE_DIR.patch
meta-agl-profile-graphical/recipes-graphics/wayland/weston_%.bbappend
meta-agl-profile-graphical/recipes-graphics/wayland/weston_5.0.0.bbappend [moved from meta-agl-profile-graphical/recipes-graphics/wayland/weston_2.0.0.bbappend with 82% similarity]
meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-profile-graphical.bb
meta-agl-profile-hud/conf/layer.conf
meta-agl-profile-telematics/conf/layer.conf
meta-agl/conf/layer.conf
meta-app-framework/classes/aglwgt.bbclass
meta-app-framework/conf/layer.conf
meta-app-framework/recipes-core/af-main/af-main_git.bb
meta-app-framework/recipes-support/libcap/libcap_%.bbappend
meta-netboot/conf/layer.conf
meta-security/conf/layer.conf
meta-security/recipes-core/dbus-cynara/dbus-cynara/0001-Integration-of-Cynara-asynchronous-security-checks.patch
meta-security/recipes-core/dbus-cynara/dbus-cynara/0002-Disable-message-dispatching-when-send-rule-result-is.patch
meta-security/recipes-core/dbus-cynara/dbus-cynara/0003-Handle-unavailability-of-policy-results-for-broadcas.patch
meta-security/recipes-core/dbus-cynara/dbus-cynara/0004-Add-own-rule-result-unavailability-handling.patch
meta-security/recipes-core/dbus-cynara/dbus-cynara/0005-Perform-Cynara-runtime-policy-checks-by-default.patch
meta-security/recipes-core/dbus-cynara/dbus-cynara_1.12.10.bb [moved from meta-security/recipes-core/dbus-cynara/dbus-cynara_1.10.20.bb with 96% similarity]
meta-security/recipes-core/dbus-cynara/dbus_%.bbappend
meta-security/recipes-core/systemd/systemd_239.bbappend [moved from meta-security/recipes-core/systemd/systemd_234.bbappend with 80% similarity]
meta-security/recipes-devtools/e2fsprogs/e2fsprogs.inc [deleted file]
meta-security/recipes-devtools/e2fsprogs/e2fsprogs/acinclude.m4 [deleted file]
meta-security/recipes-devtools/e2fsprogs/e2fsprogs/mkdir.patch [deleted file]
meta-security/recipes-devtools/e2fsprogs/e2fsprogs/ptest.patch [deleted file]
meta-security/recipes-devtools/e2fsprogs/e2fsprogs/quiet-debugfs.patch [deleted file]
meta-security/recipes-devtools/e2fsprogs/e2fsprogs/remove.ldconfig.call.patch [deleted file]
meta-security/recipes-devtools/e2fsprogs/e2fsprogs/run-ptest [deleted file]
meta-security/recipes-devtools/e2fsprogs/e2fsprogs_%.bbappend [deleted file]
meta-security/recipes-devtools/e2fsprogs/e2fsprogs_git.bb [deleted file]
meta-security/recipes-devtools/e2fsprogs/files/ext_attr.c-fix-adding-multiple-xattrs-during-image-c.patch [deleted file]
meta-security/recipes-security/cynara/cynara/0001-Add-fallthrough-tags.patch
meta-security/recipes-security/cynara/cynara/0001-fix-fallthrough-in-cmdlineparser.patch [new file with mode: 0644]
meta-security/recipes-security/cynara/cynara/0002-gcc-7-requires-include-functional-for-std-function.patch
meta-security/recipes-security/cynara/cynara/0003-Avoid-warning-when-compiling-without-smack.patch
meta-security/recipes-security/cynara/cynara/0004-Fix-mode-of-sockets.patch
meta-security/recipes-security/cynara/cynara/0005-Allow-to-tune-sockets.patch
meta-security/recipes-security/cynara/cynara/0006-Install-socket-activation-by-default.patch
meta-security/recipes-security/cynara/cynara/cynara-db-migration-abort-on-errors.patch
meta-security/recipes-security/cynara/cynara_0.14.10.bb
meta-security/recipes-security/libcap-ng/libcap-ng/CVE-2014-3215.patch [deleted file]
meta-security/recipes-security/libcap-ng/libcap-ng/python.patch [deleted file]
meta-security/recipes-security/libcap-ng/libcap-ng_0.7.3.bb [deleted file]
meta-security/recipes-security/security-manager/security-manager.inc
meta-security/recipes-security/security-manager/security-manager/0001-Avoid-casting-from-const-T-to-void.patch [new file with mode: 0644]
meta-security/recipes-security/security-manager/security-manager/0001-Fix-gcc8-warning-error-Werror-catch-value.patch [new file with mode: 0644]
meta-security/recipes-security/security-manager/security-manager_git.bb
meta-security/recipes-security/xmlsec1/xmlsec1_%.bbappend [new file with mode: 0644]

diff --git a/meta-agl-bsp/ROCKO.FIXMEs b/meta-agl-bsp/ROCKO.FIXMEs
deleted file mode 100644 (file)
index c21e2ec..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-FIXME:
-
-- ti:
- -  gst and ducati:
-        modified:   conf/include/agl_dra7xx-evm.inc
-        modified:   meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad_%.bbappend
-
-- i.mx: 
-        Thus remove old bsp adaptations.
-        deleted:    meta-boundary/recipes-kernel/linux/linux-boundary_4.1.15.bbappend
-
-- meta-oe:
- - change is upstream
-        deleted:    meta-openembedded-layer/recipes-devtools/lua/lua_%.bbappend
-
-- meta-intel:
- - move libva patch to parent folder (generalize)
-
index 876d6e9..12c0a27 100644 (file)
@@ -24,22 +24,11 @@ PREFERRED_VERSION_libgbm            = "10.0.0"
 ## Multimedia section ##
 #-------------------------------------------------
 
-# FIXME
-GSTREAMER_PLUGINS = ""
-DISABLED_ROCKO_GSTREAMER_PLUGINS = " \
-     gstreamer1.0-plugins-bad-meta \
-     gstreamer1.0-plugins-ducati \
-     gstreamer1.0-plugins-vpe \
-"
-
 PACKAGES_MULTIMEDIA   = " \
     ipumm-fw \
     pulseaudio-misc      \
-    ${GSTREAMER_PLUGINS} \
 "
 
-PREFERRED_VERSION_ipumm-fw          = "3.00.13.00"
-
 PREFERRED_PROVIDER_virtual/kernel  = "linux-ti-staging"
 PREFERRED_VERSION_virtual/kernel  = "4.9"
 
index 534d364..4fab692 100644 (file)
@@ -2,7 +2,7 @@
 #
 IMAGE_INSTALL_append = " \
         libva \
-        va-intel \
+        intel-vaapi-driver \
         gstreamer1.0-vaapi"
 
 AGL_EXTRA_IMAGE_FSTYPES = "wic.xz wic.bmap wic.xz.sha256sum"
@@ -12,5 +12,5 @@ INITRD_LIVE = "${DEPLOY_DIR_IMAGE}/${INITRD_IMAGE_LIVE}-${MACHINE}.ext4.gz"
 # kernel command line, including to change the screen resolution.
 WKS_FILE = "systemd-intel-corei7-64-bootdisk.wks"
 
-PREFERRED_VERSION_linux-intel ?= "4.14%"
-PREFERRED_VERSION_linux-intel-rt ?= "4.14%"
+PREFERRED_VERSION_linux-intel ?= "4.19%"
+PREFERRED_VERSION_linux-intel-rt ?= "4.19%"
index a7773b2..642fe42 100644 (file)
@@ -3,7 +3,7 @@ INTEL_MACHINE_SUBTYPE = "broxton-m"
 IMAGE_INSTALL_append = " linux-firmware-iwlwifi-8000c linux-firmware-ibt"
 IMAGE_INSTALL_append = " \
         libva \
-        va-intel \
+        intel-vaapi-driver \
         gstreamer1.0-vaapi"
 OSTREE_BOOTLOADER ?= "u-boot"
 
index 23a37c2..298cacd 100644 (file)
@@ -17,7 +17,7 @@ MACHINE_FEATURES += "vc4graphics"
 # For libomxil
 #LICENSE_FLAGS_WHITELIST = "commercial"
 
-IMAGE_INSTALL_append = " kernel-modules linux-firmware-raspbian-bcm43430 linux-firmware-raspbian-bcm43455 create-combined-dtb "
+IMAGE_INSTALL_append = " kernel-modules linux-firmware-rpidistro-bcm43430 linux-firmware-rpidistro-bcm43455 create-combined-dtb "
 
 # Psplash causes crash on first boot on RPi
 IMAGE_FEATURES_remove = "splash"
index 7c996ca..35bf811 100644 (file)
@@ -22,3 +22,5 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend"
 BBFILE_COLLECTIONS += "aglbsp"
 BBFILE_PATTERN_aglbsp = "^${LAYERDIR}/"
 BBFILE_PRIORITY_aglbsp = "60"
+
+LAYERSERIES_COMPAT_aglbsp = "thud"
index d47c052..8d41d69 100644 (file)
@@ -15,4 +15,4 @@ QB_MACHINE = "-machine virt"
 
 # Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
 QB_OPT_APPEND = "-show-cursor -usb -device virtio-rng-pci"
-PREFERRED_VERSION_linux-yocto ??= "4.12%"
+PREFERRED_VERSION_linux-yocto ??= "4.18%"
diff --git a/meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/harfbuzz/harfbuzz_1.4.8.bbappend b/meta-agl-bsp/meta-aglprofilegraphical/recipes-graphics/harfbuzz/harfbuzz_1.4.8.bbappend
deleted file mode 100644 (file)
index db50df5..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-# 2017-09-13 hotfix for harfbuzz build
-# Reference https://www.mail-archive.com/yocto@yoctoproject.org/msg36472.html
-
-acpaths = "-I ${STAGING_DATADIR_NATIVE}/aclocal/"
diff --git a/meta-agl-bsp/meta-core/recipes-kernel/linux/linux-yocto/0001-NFC-pn533-don-t-send-USB-data-off-of-the-stack.patch b/meta-agl-bsp/meta-core/recipes-kernel/linux/linux-yocto/0001-NFC-pn533-don-t-send-USB-data-off-of-the-stack.patch
deleted file mode 100644 (file)
index b64cc16..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-From dbafc28955fa6779dc23d1607a0fee5e509a278b Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Date: Sun, 20 May 2018 15:19:46 +0200
-Subject: [PATCH] NFC: pn533: don't send USB data off of the stack
-
-It's amazing that this driver ever worked, but now that x86 doesn't
-allow USB data to be sent off of the stack, it really does not work at
-all.  Fix this up by properly allocating the data for the small
-"commands" that get sent to the device off of the stack.
-
-We do this for one command by having a whole urb just for ack messages,
-as they can be submitted in interrupt context, so we can not use
-usb_bulk_msg().  But the poweron command can sleep (and does), so use
-usb_bulk_msg() for that transfer.
-
-Reported-by: Carlos Manuel Santos <cmmpsantos@gmail.com>
-Cc: Samuel Ortiz <sameo@linux.intel.com>
-Cc: Stephen Hemminger <stephen@networkplumber.org>
-Cc: stable <stable@vger.kernel.org>
-Reviewed-by: Johan Hovold <johan@kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/nfc/pn533/usb.c | 42 +++++++++++++++++++++++++++++------------
- 1 file changed, 30 insertions(+), 12 deletions(-)
-
-diff --git a/drivers/nfc/pn533/usb.c b/drivers/nfc/pn533/usb.c
-index e153e8b64bb8..d5553c47014f 100644
---- a/drivers/nfc/pn533/usb.c
-+++ b/drivers/nfc/pn533/usb.c
-@@ -62,6 +62,9 @@ struct pn533_usb_phy {
-       struct urb *out_urb;
-       struct urb *in_urb;
-+      struct urb *ack_urb;
-+      u8 *ack_buffer;
-+
-       struct pn533 *priv;
- };
-@@ -150,13 +153,16 @@ static int pn533_usb_send_ack(struct pn533 *dev, gfp_t flags)
-       struct pn533_usb_phy *phy = dev->phy;
-       static const u8 ack[6] = {0x00, 0x00, 0xff, 0x00, 0xff, 0x00};
-       /* spec 7.1.1.3:  Preamble, SoPC (2), ACK Code (2), Postamble */
--      int rc;
--      phy->out_urb->transfer_buffer = (u8 *)ack;
--      phy->out_urb->transfer_buffer_length = sizeof(ack);
--      rc = usb_submit_urb(phy->out_urb, flags);
-+      if (!phy->ack_buffer) {
-+              phy->ack_buffer = kmemdup(ack, sizeof(ack), flags);
-+              if (!phy->ack_buffer)
-+                      return -ENOMEM;
-+      }
--      return rc;
-+      phy->ack_urb->transfer_buffer = phy->ack_buffer;
-+      phy->ack_urb->transfer_buffer_length = sizeof(ack);
-+      return usb_submit_urb(phy->ack_urb, flags);
- }
- static int pn533_usb_send_frame(struct pn533 *dev,
-@@ -375,26 +381,31 @@ static int pn533_acr122_poweron_rdr(struct pn533_usb_phy *phy)
-       /* Power on th reader (CCID cmd) */
-       u8 cmd[10] = {PN533_ACR122_PC_TO_RDR_ICCPOWERON,
-                     0, 0, 0, 0, 0, 0, 3, 0, 0};
-+      char *buffer;
-+      int transferred;
-       int rc;
-       void *cntx;
-       struct pn533_acr122_poweron_rdr_arg arg;
-       dev_dbg(&phy->udev->dev, "%s\n", __func__);
-+      buffer = kmemdup(cmd, sizeof(cmd), GFP_KERNEL);
-+      if (!buffer)
-+              return -ENOMEM;
-+
-       init_completion(&arg.done);
-       cntx = phy->in_urb->context;  /* backup context */
-       phy->in_urb->complete = pn533_acr122_poweron_rdr_resp;
-       phy->in_urb->context = &arg;
--      phy->out_urb->transfer_buffer = cmd;
--      phy->out_urb->transfer_buffer_length = sizeof(cmd);
--
-       print_hex_dump_debug("ACR122 TX: ", DUMP_PREFIX_NONE, 16, 1,
-                      cmd, sizeof(cmd), false);
--      rc = usb_submit_urb(phy->out_urb, GFP_KERNEL);
--      if (rc) {
-+      rc = usb_bulk_msg(phy->udev, phy->out_urb->pipe, buffer, sizeof(cmd),
-+                        &transferred, 0);
-+      kfree(buffer);
-+      if (rc || (transferred != sizeof(cmd))) {
-               nfc_err(&phy->udev->dev,
-                       "Reader power on cmd error %d\n", rc);
-               return rc;
-@@ -490,8 +501,9 @@ static int pn533_usb_probe(struct usb_interface *interface,
-       phy->in_urb = usb_alloc_urb(0, GFP_KERNEL);
-       phy->out_urb = usb_alloc_urb(0, GFP_KERNEL);
-+      phy->ack_urb = usb_alloc_urb(0, GFP_KERNEL);
--      if (!phy->in_urb || !phy->out_urb)
-+      if (!phy->in_urb || !phy->out_urb || !phy->ack_urb)
-               goto error;
-       usb_fill_bulk_urb(phy->in_urb, phy->udev,
-@@ -501,7 +513,9 @@ static int pn533_usb_probe(struct usb_interface *interface,
-       usb_fill_bulk_urb(phy->out_urb, phy->udev,
-                         usb_sndbulkpipe(phy->udev, out_endpoint),
-                         NULL, 0, pn533_send_complete, phy);
--
-+      usb_fill_bulk_urb(phy->ack_urb, phy->udev,
-+                        usb_sndbulkpipe(phy->udev, out_endpoint),
-+                        NULL, 0, pn533_send_complete, phy);
-       switch (id->driver_info) {
-       case PN533_DEVICE_STD:
-@@ -554,6 +568,7 @@ static int pn533_usb_probe(struct usb_interface *interface,
- error:
-       usb_free_urb(phy->in_urb);
-       usb_free_urb(phy->out_urb);
-+      usb_free_urb(phy->ack_urb);
-       usb_put_dev(phy->udev);
-       kfree(in_buf);
-@@ -573,10 +588,13 @@ static void pn533_usb_disconnect(struct usb_interface *interface)
-       usb_kill_urb(phy->in_urb);
-       usb_kill_urb(phy->out_urb);
-+      usb_kill_urb(phy->ack_urb);
-       kfree(phy->in_urb->transfer_buffer);
-       usb_free_urb(phy->in_urb);
-       usb_free_urb(phy->out_urb);
-+      usb_free_urb(phy->ack_urb);
-+      kfree(phy->ack_buffer);
-       nfc_info(&interface->dev, "NXP PN533 NFC device disconnected\n");
- }
--- 
-2.17.1
-
diff --git a/meta-agl-bsp/meta-core/recipes-kernel/linux/linux-yocto_4.12.bbappend b/meta-agl-bsp/meta-core/recipes-kernel/linux/linux-yocto_4.12.bbappend
deleted file mode 100755 (executable)
index 124a1f4..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/linux-yocto:"
-
-SRC_URI_append = " file://0001-NFC-pn533-don-t-send-USB-data-off-of-the-stack.patch"
diff --git a/meta-agl-bsp/meta-intel/recipes-kernel/linux/files/0001-NFC-pn533-don-t-send-USB-data-off-of-the-stack.patch b/meta-agl-bsp/meta-intel/recipes-kernel/linux/files/0001-NFC-pn533-don-t-send-USB-data-off-of-the-stack.patch
deleted file mode 100644 (file)
index b64cc16..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-From dbafc28955fa6779dc23d1607a0fee5e509a278b Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Date: Sun, 20 May 2018 15:19:46 +0200
-Subject: [PATCH] NFC: pn533: don't send USB data off of the stack
-
-It's amazing that this driver ever worked, but now that x86 doesn't
-allow USB data to be sent off of the stack, it really does not work at
-all.  Fix this up by properly allocating the data for the small
-"commands" that get sent to the device off of the stack.
-
-We do this for one command by having a whole urb just for ack messages,
-as they can be submitted in interrupt context, so we can not use
-usb_bulk_msg().  But the poweron command can sleep (and does), so use
-usb_bulk_msg() for that transfer.
-
-Reported-by: Carlos Manuel Santos <cmmpsantos@gmail.com>
-Cc: Samuel Ortiz <sameo@linux.intel.com>
-Cc: Stephen Hemminger <stephen@networkplumber.org>
-Cc: stable <stable@vger.kernel.org>
-Reviewed-by: Johan Hovold <johan@kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/nfc/pn533/usb.c | 42 +++++++++++++++++++++++++++++------------
- 1 file changed, 30 insertions(+), 12 deletions(-)
-
-diff --git a/drivers/nfc/pn533/usb.c b/drivers/nfc/pn533/usb.c
-index e153e8b64bb8..d5553c47014f 100644
---- a/drivers/nfc/pn533/usb.c
-+++ b/drivers/nfc/pn533/usb.c
-@@ -62,6 +62,9 @@ struct pn533_usb_phy {
-       struct urb *out_urb;
-       struct urb *in_urb;
-+      struct urb *ack_urb;
-+      u8 *ack_buffer;
-+
-       struct pn533 *priv;
- };
-@@ -150,13 +153,16 @@ static int pn533_usb_send_ack(struct pn533 *dev, gfp_t flags)
-       struct pn533_usb_phy *phy = dev->phy;
-       static const u8 ack[6] = {0x00, 0x00, 0xff, 0x00, 0xff, 0x00};
-       /* spec 7.1.1.3:  Preamble, SoPC (2), ACK Code (2), Postamble */
--      int rc;
--      phy->out_urb->transfer_buffer = (u8 *)ack;
--      phy->out_urb->transfer_buffer_length = sizeof(ack);
--      rc = usb_submit_urb(phy->out_urb, flags);
-+      if (!phy->ack_buffer) {
-+              phy->ack_buffer = kmemdup(ack, sizeof(ack), flags);
-+              if (!phy->ack_buffer)
-+                      return -ENOMEM;
-+      }
--      return rc;
-+      phy->ack_urb->transfer_buffer = phy->ack_buffer;
-+      phy->ack_urb->transfer_buffer_length = sizeof(ack);
-+      return usb_submit_urb(phy->ack_urb, flags);
- }
- static int pn533_usb_send_frame(struct pn533 *dev,
-@@ -375,26 +381,31 @@ static int pn533_acr122_poweron_rdr(struct pn533_usb_phy *phy)
-       /* Power on th reader (CCID cmd) */
-       u8 cmd[10] = {PN533_ACR122_PC_TO_RDR_ICCPOWERON,
-                     0, 0, 0, 0, 0, 0, 3, 0, 0};
-+      char *buffer;
-+      int transferred;
-       int rc;
-       void *cntx;
-       struct pn533_acr122_poweron_rdr_arg arg;
-       dev_dbg(&phy->udev->dev, "%s\n", __func__);
-+      buffer = kmemdup(cmd, sizeof(cmd), GFP_KERNEL);
-+      if (!buffer)
-+              return -ENOMEM;
-+
-       init_completion(&arg.done);
-       cntx = phy->in_urb->context;  /* backup context */
-       phy->in_urb->complete = pn533_acr122_poweron_rdr_resp;
-       phy->in_urb->context = &arg;
--      phy->out_urb->transfer_buffer = cmd;
--      phy->out_urb->transfer_buffer_length = sizeof(cmd);
--
-       print_hex_dump_debug("ACR122 TX: ", DUMP_PREFIX_NONE, 16, 1,
-                      cmd, sizeof(cmd), false);
--      rc = usb_submit_urb(phy->out_urb, GFP_KERNEL);
--      if (rc) {
-+      rc = usb_bulk_msg(phy->udev, phy->out_urb->pipe, buffer, sizeof(cmd),
-+                        &transferred, 0);
-+      kfree(buffer);
-+      if (rc || (transferred != sizeof(cmd))) {
-               nfc_err(&phy->udev->dev,
-                       "Reader power on cmd error %d\n", rc);
-               return rc;
-@@ -490,8 +501,9 @@ static int pn533_usb_probe(struct usb_interface *interface,
-       phy->in_urb = usb_alloc_urb(0, GFP_KERNEL);
-       phy->out_urb = usb_alloc_urb(0, GFP_KERNEL);
-+      phy->ack_urb = usb_alloc_urb(0, GFP_KERNEL);
--      if (!phy->in_urb || !phy->out_urb)
-+      if (!phy->in_urb || !phy->out_urb || !phy->ack_urb)
-               goto error;
-       usb_fill_bulk_urb(phy->in_urb, phy->udev,
-@@ -501,7 +513,9 @@ static int pn533_usb_probe(struct usb_interface *interface,
-       usb_fill_bulk_urb(phy->out_urb, phy->udev,
-                         usb_sndbulkpipe(phy->udev, out_endpoint),
-                         NULL, 0, pn533_send_complete, phy);
--
-+      usb_fill_bulk_urb(phy->ack_urb, phy->udev,
-+                        usb_sndbulkpipe(phy->udev, out_endpoint),
-+                        NULL, 0, pn533_send_complete, phy);
-       switch (id->driver_info) {
-       case PN533_DEVICE_STD:
-@@ -554,6 +568,7 @@ static int pn533_usb_probe(struct usb_interface *interface,
- error:
-       usb_free_urb(phy->in_urb);
-       usb_free_urb(phy->out_urb);
-+      usb_free_urb(phy->ack_urb);
-       usb_put_dev(phy->udev);
-       kfree(in_buf);
-@@ -573,10 +588,13 @@ static void pn533_usb_disconnect(struct usb_interface *interface)
-       usb_kill_urb(phy->in_urb);
-       usb_kill_urb(phy->out_urb);
-+      usb_kill_urb(phy->ack_urb);
-       kfree(phy->in_urb->transfer_buffer);
-       usb_free_urb(phy->in_urb);
-       usb_free_urb(phy->out_urb);
-+      usb_free_urb(phy->ack_urb);
-+      kfree(phy->ack_buffer);
-       nfc_info(&interface->dev, "NXP PN533 NFC device disconnected\n");
- }
--- 
-2.17.1
-
@@ -15,9 +15,6 @@ KERNEL_CONFIG_FRAGMENTS_append = " ${WORKDIR}/net-devices.cfg"
 # Ensure we have a startup.nsh file
 SRC_URI_append = " file://startup.nsh"
 
-# SPEC-1553 fix for pn333_usb devices not being functional
-SRC_URI_append = " file://0001-NFC-pn533-don-t-send-USB-data-off-of-the-stack.patch"
-
 do_deploy_append() {
        install -m 0755 ${WORKDIR}/startup.nsh ${DEPLOYDIR}/
 }
diff --git a/meta-agl-bsp/meta-intel/recipes-kernel/lttng/lttng-modules/BUILD_RUNTIME_BUG_ON-vs-gcc7.patch b/meta-agl-bsp/meta-intel/recipes-kernel/lttng/lttng-modules/BUILD_RUNTIME_BUG_ON-vs-gcc7.patch
deleted file mode 100644 (file)
index 7606360..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-From ab07574ef90fa510f293c37897d577066a88fe0d Mon Sep 17 00:00:00 2001
-From: Nathan Lynch <nathan_lynch@mentor.com>
-Date: Tue, 25 Apr 2017 16:26:57 -0500
-Subject: [PATCH] BUILD_RUNTIME_BUG_ON vs gcc7
-
-Avoid using LTTng's BUILD_RUNTIME_BUG_ON macro, as it appears to run
-into a similar problem as Linux experienced with ilog2.
-
-See:
-https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=474c90156c8dcc2fa815e6716cc9394d7930cb9c
-https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72785
-
-Upstream-Status: Pending
-Signed-off-by: Nathan Lynch <nathan_lynch@mentor.com>
----
- lib/align.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/lib/align.h b/lib/align.h
-index 5b91ae87410b..5e134cd485fe 100644
---- a/lib/align.h
-+++ b/lib/align.h
-@@ -48,7 +48,7 @@
-  */
- #define offset_align(align_drift, alignment)                                 \
-       ({                                                                     \
--              BUILD_RUNTIME_BUG_ON((alignment) == 0                          \
-+              BUG_ON((alignment) == 0                                        \
-                                  || ((alignment) & ((alignment) - 1)));      \
-               (((alignment) - (align_drift)) & ((alignment) - 1));           \
-       })
-@@ -63,7 +63,7 @@
-  */
- #define offset_align_floor(align_drift, alignment)                           \
-       ({                                                                     \
--              BUILD_RUNTIME_BUG_ON((alignment) == 0                          \
-+              BUG_ON((alignment) == 0                                        \
-                                  || ((alignment) & ((alignment) - 1)));      \
-               (((align_drift) - (alignment)) & ((alignment) - 1));           \
-       })
--- 
-2.9.3
-
diff --git a/meta-agl-bsp/meta-intel/recipes-kernel/lttng/lttng-modules/Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch b/meta-agl-bsp/meta-intel/recipes-kernel/lttng/lttng-modules/Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch
deleted file mode 100644 (file)
index aa165ba..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
-<head>
-<title>poky - Poky Build Tool and Metadata</title>
-<meta name='generator' content='cgit v0.10.2'/>
-<meta name='robots' content='index, nofollow'/>
-<link rel='stylesheet' type='text/css' href='/cgit/cgit.css'/>
-<link rel='shortcut icon' href='/favicon.ico'/>
-<link rel='alternate' title='Atom feed' href='http://git.yoctoproject.org/cgit/cgit.cgi/poky/atom/meta/recipes-kernel/lttng/lttng-modules/Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch?h=master' type='application/atom+xml'/>
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
-<script type="text/javascript">
-$(document).ready(function() {
-fragment = '';
-if (window.location.href.lastIndexOf('?') > -1) {
-       fragment = window.location.href.substring(window.location.href.lastIndexOf('?'));
-}
-$('.logo').append('<a href="http://git.yoctoproject.org/clean/cgit.cgi/' + window.location.pathname.substring(window.location.pathname.lastIndexOf("cgit.cgi")+9) + fragment + '">light theme</a>');
-});
-</script>
-</head>
-<body>
-<div id='cgit'><table id='header'>
-<tr>
-<td class='logo' rowspan='2'><a href='/cgit/cgit.cgi/'><img src='/cgit/yocto-project-transp.png' alt='cgit logo'/></a></td>
-<td class='main'><a href='/cgit/cgit.cgi/'>index</a> : <a title='poky' href='/cgit/cgit.cgi/poky/'>poky</a></td><td class='form'><form method='get' action=''>
-<input type='hidden' name='id' value='1a97243bf86468a9dfd44f60c9f7563aff54b284'/><select name='h' onchange='this.form.submit();'>
-<option value='1.1_M1'>1.1_M1</option>
-<option value='1.1_M2'>1.1_M2</option>
-<option value='1.1_M3'>1.1_M3</option>
-<option value='1.1_M4'>1.1_M4</option>
-<option value='1.2_M1'>1.2_M1</option>
-<option value='1.2_M2'>1.2_M2</option>
-<option value='1.2_M3'>1.2_M3</option>
-<option value='1.2_M4'>1.2_M4</option>
-<option value='1.3_M1'>1.3_M1</option>
-<option value='1.3_M2'>1.3_M2</option>
-<option value='1.3_M3'>1.3_M3</option>
-<option value='1.3_M4'>1.3_M4</option>
-<option value='1.3_M5'>1.3_M5</option>
-<option value='1.3_beta'>1.3_beta</option>
-<option value='1.4_M1'>1.4_M1</option>
-<option value='1.4_M3'>1.4_M3</option>
-<option value='1.4_M4'>1.4_M4</option>
-<option value='1.4_M5'>1.4_M5</option>
-<option value='1.6_M5'>1.6_M5</option>
-<option value='bernard'>bernard</option>
-<option value='blinky'>blinky</option>
-<option value='clyde'>clyde</option>
-<option value='daisy'>daisy</option>
-<option value='danny'>danny</option>
-<option value='danny-next'>danny-next</option>
-<option value='denzil'>denzil</option>
-<option value='dizzy'>dizzy</option>
-<option value='dora'>dora</option>
-<option value='dora-toaster'>dora-toaster</option>
-<option value='dylan'>dylan</option>
-<option value='edison'>edison</option>
-<option value='elroy'>elroy</option>
-<option value='fido'>fido</option>
-<option value='green'>green</option>
-<option value='jethro'>jethro</option>
-<option value='krogoth'>krogoth</option>
-<option value='krogoth-next'>krogoth-next</option>
-<option value='laverne'>laverne</option>
-<option value='master' selected='selected'>master</option>
-<option value='master-next'>master-next</option>
-<option value='master-next2'>master-next2</option>
-<option value='morty'>morty</option>
-<option value='morty-next'>morty-next</option>
-<option value='pinky'>pinky</option>
-<option value='purple'>purple</option>
-<option value='pyro'>pyro</option>
-<option value='pyro-next'>pyro-next</option>
-<option value='rocko'>rocko</option>
-<option value='rocko-next'>rocko-next</option>
-</select> <input type='submit' name='' value='switch'/></form></td></tr>
-<tr><td class='sub'>Poky Build Tool and Metadata</td><td class='sub right'>git repository hosting</td></tr></table>
-<table class='tabs'><tr><td>
-<a href='/cgit/cgit.cgi/poky/'>summary</a><a href='/cgit/cgit.cgi/poky/refs/?id=1a97243bf86468a9dfd44f60c9f7563aff54b284'>refs</a><a href='/cgit/cgit.cgi/poky/log/meta/recipes-kernel/lttng/lttng-modules/Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch'>log</a><a class='active' href='/cgit/cgit.cgi/poky/tree/meta/recipes-kernel/lttng/lttng-modules/Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch?id=1a97243bf86468a9dfd44f60c9f7563aff54b284'>tree</a><a href='/cgit/cgit.cgi/poky/commit/meta/recipes-kernel/lttng/lttng-modules/Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch?id=1a97243bf86468a9dfd44f60c9f7563aff54b284'>commit</a><a href='/cgit/cgit.cgi/poky/diff/meta/recipes-kernel/lttng/lttng-modules/Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch?id=1a97243bf86468a9dfd44f60c9f7563aff54b284'>diff</a><a href='/cgit/cgit.cgi/poky/stats/meta/recipes-kernel/lttng/lttng-modules/Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch'>stats</a></td><td class='form'><form class='right' method='get' action='/cgit/cgit.cgi/poky/log/meta/recipes-kernel/lttng/lttng-modules/Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch'>
-<input type='hidden' name='id' value='1a97243bf86468a9dfd44f60c9f7563aff54b284'/><select name='qt'>
-<option value='grep'>log msg</option>
-<option value='author'>author</option>
-<option value='committer'>committer</option>
-<option value='range'>range</option>
-</select>
-<input class='txt' type='text' size='10' name='q' value=''/>
-<input type='submit' value='search'/>
-</form>
-</td></tr></table>
-<div class='path'>path: <a href='/cgit/cgit.cgi/poky/tree/?id=1a97243bf86468a9dfd44f60c9f7563aff54b284'>root</a>/<a href='/cgit/cgit.cgi/poky/tree/meta?id=1a97243bf86468a9dfd44f60c9f7563aff54b284'>meta</a>/<a href='/cgit/cgit.cgi/poky/tree/meta/recipes-kernel?id=1a97243bf86468a9dfd44f60c9f7563aff54b284'>recipes-kernel</a>/<a href='/cgit/cgit.cgi/poky/tree/meta/recipes-kernel/lttng?id=1a97243bf86468a9dfd44f60c9f7563aff54b284'>lttng</a>/<a href='/cgit/cgit.cgi/poky/tree/meta/recipes-kernel/lttng/lttng-modules?id=1a97243bf86468a9dfd44f60c9f7563aff54b284'>lttng-modules</a>/<a href='/cgit/cgit.cgi/poky/tree/meta/recipes-kernel/lttng/lttng-modules/Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch?id=1a97243bf86468a9dfd44f60c9f7563aff54b284'>Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch</a></div><div class='content'>blob: e41124227201a9d7bb53cd6a7a5ef6aa733328e2 (<a href='/cgit/cgit.cgi/poky/plain/meta/recipes-kernel/lttng/lttng-modules/Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch?id=1a97243bf86468a9dfd44f60c9f7563aff54b284'>plain</a>)
-<table summary='blob content' class='blob'>
-<tr><td class='linenumbers'><pre><a id='n1' href='#n1'>1</a>
-<a id='n2' href='#n2'>2</a>
-<a id='n3' href='#n3'>3</a>
-<a id='n4' href='#n4'>4</a>
-<a id='n5' href='#n5'>5</a>
-<a id='n6' href='#n6'>6</a>
-<a id='n7' href='#n7'>7</a>
-<a id='n8' href='#n8'>8</a>
-<a id='n9' href='#n9'>9</a>
-<a id='n10' href='#n10'>10</a>
-<a id='n11' href='#n11'>11</a>
-<a id='n12' href='#n12'>12</a>
-<a id='n13' href='#n13'>13</a>
-<a id='n14' href='#n14'>14</a>
-<a id='n15' href='#n15'>15</a>
-<a id='n16' href='#n16'>16</a>
-<a id='n17' href='#n17'>17</a>
-<a id='n18' href='#n18'>18</a>
-<a id='n19' href='#n19'>19</a>
-<a id='n20' href='#n20'>20</a>
-<a id='n21' href='#n21'>21</a>
-<a id='n22' href='#n22'>22</a>
-<a id='n23' href='#n23'>23</a>
-<a id='n24' href='#n24'>24</a>
-<a id='n25' href='#n25'>25</a>
-<a id='n26' href='#n26'>26</a>
-<a id='n27' href='#n27'>27</a>
-<a id='n28' href='#n28'>28</a>
-<a id='n29' href='#n29'>29</a>
-<a id='n30' href='#n30'>30</a>
-<a id='n31' href='#n31'>31</a>
-<a id='n32' href='#n32'>32</a>
-<a id='n33' href='#n33'>33</a>
-<a id='n34' href='#n34'>34</a>
-<a id='n35' href='#n35'>35</a>
-<a id='n36' href='#n36'>36</a>
-<a id='n37' href='#n37'>37</a>
-<a id='n38' href='#n38'>38</a>
-<a id='n39' href='#n39'>39</a>
-<a id='n40' href='#n40'>40</a>
-<a id='n41' href='#n41'>41</a>
-<a id='n42' href='#n42'>42</a>
-<a id='n43' href='#n43'>43</a>
-<a id='n44' href='#n44'>44</a>
-<a id='n45' href='#n45'>45</a>
-<a id='n46' href='#n46'>46</a>
-<a id='n47' href='#n47'>47</a>
-<a id='n48' href='#n48'>48</a>
-<a id='n49' href='#n49'>49</a>
-</pre></td>
-<td class='lines'><pre><code>From 1b0e574d680101105a6c1e8931c78824f5a97a42 Mon Sep 17 00:00:00 2001
-From: Otavio Salvador &lt;otavio@ossystems.com.br&gt;
-Date: Mon, 5 Sep 2016 17:08:56 +0000
-Subject: [PATCH] Makefile: Do not fail if CONFIG_TRACEPOINTS is not enabled
-Organization: O.S. Systems Software LTDA.
-
-The lttng-modules are being pulled by the tools-profile image feature,
-however, not every kernel has the CONFIG_TRACEPOINTS feature enabled.
-
-This change makes the build do not fail when CONFIG_TRACEPOINTS is not
-available, allowing it to be kept being pulled by default.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Otavio Salvador &lt;otavio@ossystems.com.br&gt;
----
- Makefile | 9 +++++----
- 1 file changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 8602649..75550cc 100644
---- a/Makefile
-+++ b/Makefile
-@@ -8,10 +8,7 @@ ifneq ($(KERNELRELEASE),)
-   # and defines the modules to be built.
-   ifdef CONFIG_LOCALVERSION   # Check if dot-config is included.
--    ifeq ($(CONFIG_TRACEPOINTS),)
--      $(error The option CONFIG_TRACEPOINTS needs to be enabled in your kernel configuration)
--    endif # CONFIG_TRACEPOINTS
--  endif # ifdef CONFIG_LOCALVERSION
-+    ifneq ($(CONFIG_TRACEPOINTS),)
-   TOP_LTTNG_MODULES_DIR := $(shell dirname $(lastword $(MAKEFILE_LIST)))
-@@ -94,6 +91,10 @@ ifneq ($(KERNELRELEASE),)
-   obj-$(CONFIG_LTTNG) += lib/
-   obj-$(CONFIG_LTTNG) += tests/
-+    else
-+      $(warning The option CONFIG_TRACEPOINTS needs to be enabled in your kernel configuration)
-+    endif # CONFIG_TRACEPOINTS
-+  endif # ifdef CONFIG_LOCALVERSION
- else # KERNELRELEASE
- # This part of the Makefile is used when the 'make' command is runned in the
--- 
-2.1.4
-
-</code></pre></td></tr></table>
-</div> <!-- class=content -->
-<div class='footer'>generated  by cgit v0.10.2 at 2018-02-19 12:16:57 (GMT)</div>
-</div> <!-- id=cgit -->
-</body>
-</html>
diff --git a/meta-agl-bsp/meta-intel/recipes-kernel/lttng/lttng-modules_2.10.5.bb b/meta-agl-bsp/meta-intel/recipes-kernel/lttng/lttng-modules_2.10.5.bb
deleted file mode 100644 (file)
index 370b78a..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-SECTION = "devel"
-SUMMARY = "Linux Trace Toolkit KERNEL MODULE"
-DESCRIPTION = "The lttng-modules 2.0 package contains the kernel tracer modules"
-LICENSE = "LGPLv2.1 & GPLv2 & MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c4613d1f8a9587bd7b366191830364b3 \
-                    file://gpl-2.0.txt;md5=751419260aa954499f7abaabaa882bbe \
-                    file://lgpl-2.1.txt;md5=243b725d71bb5df4a1e5920b344b86ad \
-                    "
-
-inherit module
-
-COMPATIBLE_HOST = '(x86_64|i.86|powerpc|aarch64|mips|nios2|arm).*-linux'
-
-SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \
-           file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \
-           file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \
-"
-
-SRC_URI[md5sum] = "4aaabaafd15d9455c83972e26ccfbca7"
-SRC_URI[sha256sum] = "b8dbbbee45a673c381f51b99c555e36655c3c2c7a5477aab927591cc7f003a1f"
-
-export INSTALL_MOD_DIR="kernel/lttng-modules"
-
-EXTRA_OEMAKE += "KERNELDIR='${STAGING_KERNEL_DIR}'"
-
-do_install_append() {
-       # Delete empty directories to avoid QA failures if no modules were built
-       find ${D}/${nonarch_base_libdir} -depth -type d -empty -exec rmdir {} \;
-}
-
-python do_package_prepend() {
-    if not os.path.exists(os.path.join(d.getVar('D'), d.getVar('nonarch_base_libdir')[1:], 'modules')):
-        bb.warn("%s: no modules were created; this may be due to CONFIG_TRACEPOINTS not being enabled in your kernel." % d.getVar('PN'))
-}
-
diff --git a/meta-agl-bsp/meta-raspberrypi/recipes-graphics/userland/userland_%.bbappend b/meta-agl-bsp/meta-raspberrypi/recipes-graphics/userland/userland_%.bbappend
new file mode 100644 (file)
index 0000000..d4c74ef
--- /dev/null
@@ -0,0 +1,4 @@
+# FIXME: Temporary fix that can be removed once commit 752db52 gets backported
+#        from master to thud branch of meta-raspberrypi
+RDEPENDS_${PN}_remove = "libegl1"
+RDEPENDS_${PN} += "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "libegl-mesa", "", d)}"
index 44f9027..7cc76c0 100644 (file)
@@ -5,7 +5,7 @@ PR = "r1"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
 
-DEPENDS = "fdtoverlay-native"
+DEPENDS = "dtc-native"
 
 ALLOW_EMPTY_${PN} = "1"
 FILES_${PN} = ""
@@ -16,20 +16,20 @@ do_compile[depends] += "virtual/kernel:do_deploy"
 
 do_compile () {
        # Official touchscreen setup (rpi3b/rpi3b dtb, vc4-kms-v3d and ft5406)
-       fdtoverlay -v -i ${DEPLOY_DIR_IMAGE}/uImage-bcm2710-rpi-3-b-plus.dtb -o uImage-bcm2710-rpi-3-b+vc4+ft5406.dtb ${DEPLOY_DIR_IMAGE}/rpi-ft5406.dtbo ${DEPLOY_DIR_IMAGE}/uImage-vc4-kms-v3d.dtbo
-       fdtoverlay -v -i ${DEPLOY_DIR_IMAGE}/uImage-bcm2710-rpi-3-b.dtb -o uImage-bcm2710-rpi-3+vc4+ft5406.dtb ${DEPLOY_DIR_IMAGE}/rpi-ft5406.dtbo ${DEPLOY_DIR_IMAGE}/uImage-vc4-kms-v3d.dtbo
+       fdtoverlay -v -i ${DEPLOY_DIR_IMAGE}/bcm2710-rpi-3-b-plus.dtb -o bcm2710-rpi-3-b+vc4+ft5406.dtb ${DEPLOY_DIR_IMAGE}/rpi-ft5406.dtbo ${DEPLOY_DIR_IMAGE}/vc4-kms-v3d.dtbo
+       fdtoverlay -v -i ${DEPLOY_DIR_IMAGE}/bcm2710-rpi-3-b.dtb -o bcm2710-rpi-3+vc4+ft5406.dtb ${DEPLOY_DIR_IMAGE}/rpi-ft5406.dtbo ${DEPLOY_DIR_IMAGE}/vc4-kms-v3d.dtbo
 
        # HDMI screen setup (rpi3b/rpi3b dtb and vc4-kms-v3d)
-       fdtoverlay -v -i ${DEPLOY_DIR_IMAGE}/uImage-bcm2710-rpi-3-b-plus.dtb -o uImage-bcm2710-rpi-3-b+vc4.dtb ${DEPLOY_DIR_IMAGE}/uImage-vc4-kms-v3d.dtbo
-       fdtoverlay -v -i ${DEPLOY_DIR_IMAGE}/uImage-bcm2710-rpi-3-b.dtb -o uImage-bcm2710-rpi-3+vc4.dtb ${DEPLOY_DIR_IMAGE}/uImage-vc4-kms-v3d.dtbo
+       fdtoverlay -v -i ${DEPLOY_DIR_IMAGE}/bcm2710-rpi-3-b-plus.dtb -o bcm2710-rpi-3-b+vc4.dtb ${DEPLOY_DIR_IMAGE}/vc4-kms-v3d.dtbo
+       fdtoverlay -v -i ${DEPLOY_DIR_IMAGE}/bcm2710-rpi-3-b.dtb -o bcm2710-rpi-3+vc4.dtb ${DEPLOY_DIR_IMAGE}/vc4-kms-v3d.dtbo
 }
 
 do_deploy () {
        install -d ${DEPLOY_DIR_IMAGE}
-       install -m 0644 ${S}/uImage-bcm2710-rpi-3-b+vc4+ft5406.dtb ${DEPLOY_DIR_IMAGE}
-       install -m 0644 ${S}/uImage-bcm2710-rpi-3+vc4+ft5406.dtb ${DEPLOY_DIR_IMAGE}
-       install -m 0644 ${S}/uImage-bcm2710-rpi-3-b+vc4.dtb ${DEPLOY_DIR_IMAGE}
-       install -m 0644 ${S}/uImage-bcm2710-rpi-3+vc4.dtb ${DEPLOY_DIR_IMAGE}
+       install -m 0644 ${S}/bcm2710-rpi-3-b+vc4+ft5406.dtb ${DEPLOY_DIR_IMAGE}
+       install -m 0644 ${S}/bcm2710-rpi-3+vc4+ft5406.dtb ${DEPLOY_DIR_IMAGE}
+       install -m 0644 ${S}/bcm2710-rpi-3-b+vc4.dtb ${DEPLOY_DIR_IMAGE}
+       install -m 0644 ${S}/bcm2710-rpi-3+vc4.dtb ${DEPLOY_DIR_IMAGE}
 }
 
 addtask deploy after do_install
diff --git a/meta-agl-bsp/meta-raspberrypi/recipes-kernel/fdtoverlay/fdtoverlay.inc b/meta-agl-bsp/meta-raspberrypi/recipes-kernel/fdtoverlay/fdtoverlay.inc
deleted file mode 100644 (file)
index e769a18..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "fdtoverlay from the device tree compiler"
-HOMEPAGE = "https://devicetree.org/"
-DESCRIPTION = "fdtoverlay is a tool to apply a number of overlays to a base blob."
-SECTION = "bootloader"
-LICENSE = "GPLv2 | BSD"
-DEPENDS = "flex-native bison-native"
-
-SRC_URI = "git://git.kernel.org/pub/scm/utils/dtc/dtc.git \
-           file://make_install.patch \
-           "
-UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
-
-EXTRA_OEMAKE='NO_PYTHON=1 PREFIX="${prefix}" LIBDIR="${libdir}" DESTDIR="${D}"'
-
-S = "${WORKDIR}/git"
-
-do_compile () {
-       oe_runmake fdtoverlay
-}
-
-do_install () {
-       install -d ${D}/${bindir}
-       install -m 0755 ${S}/fdtoverlay ${D}/${bindir}/fdtoverlay
-}
-
-FILES_${PN} = "${bindir}/fdtoverlay"
diff --git a/meta-agl-bsp/meta-raspberrypi/recipes-kernel/fdtoverlay/fdtoverlay/make_install.patch b/meta-agl-bsp/meta-raspberrypi/recipes-kernel/fdtoverlay/fdtoverlay/make_install.patch
deleted file mode 100644 (file)
index ea9359e..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-From e9852b9d206df1e42aa4c8afec55a0f5e099b533 Mon Sep 17 00:00:00 2001
-From: Saul Wold <sgw@linux.intel.com>
-Date: Thu, 3 Nov 2011 08:35:47 -0700
-Subject: [PATCH] dtc: Add patch to correctly install shared libraries and
-
-Upstream-Status: Inappropriate [configuration]
-
----
- Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index d8ebc4f..f5e01be 100644
---- a/Makefile
-+++ b/Makefile
-@@ -205,8 +205,8 @@ install-bin: all $(SCRIPTS)
- install-lib: all
-       @$(VECHO) INSTALL-LIB
-       $(INSTALL) -d $(DESTDIR)$(LIBDIR)
--      $(INSTALL_LIB) $(LIBFDT_lib) $(DESTDIR)$(LIBDIR)
--      ln -sf $(notdir $(LIBFDT_lib)) $(DESTDIR)$(LIBDIR)/$(LIBFDT_soname)
-+      $(INSTALL) $(LIBFDT_lib) $(DESTDIR)$(LIBDIR)/$(LIBFDT_soname)
-+      ln -sf $(LIBFDT_soname) $(DESTDIR)$(LIBDIR)/$(notdir $(LIBFDT_lib))
-       ln -sf $(LIBFDT_soname) $(DESTDIR)$(LIBDIR)/libfdt.$(SHAREDLIB_EXT)
-       $(INSTALL_DATA) $(LIBFDT_archive) $(DESTDIR)$(LIBDIR)
diff --git a/meta-agl-bsp/meta-raspberrypi/recipes-kernel/fdtoverlay/fdtoverlay_1.4.7.bb b/meta-agl-bsp/meta-raspberrypi/recipes-kernel/fdtoverlay/fdtoverlay_1.4.7.bb
deleted file mode 100644 (file)
index 9198198..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-require fdtoverlay.inc
-
-LIC_FILES_CHKSUM = "file://GPL;md5=94d55d512a9ba36caa9b7df079bae19f \
-                   file://libfdt/libfdt.h;beginline=3;endline=52;md5=fb360963151f8ec2d6c06b055bcbb68c"
-
-SRCREV = "88f18909db731a627456f26d779445f84e449536"
-
-S = "${WORKDIR}/git"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_%.bbappend b/meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_%.bbappend
deleted file mode 100644 (file)
index 9df797f..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-# In releases based on Rocko firmware files for bcm43430 and
-# bcm43455 are provided by linux-firmware-raspbian. The lines
-# below fix eventual duplication of these files.
-FILES_${PN}-bcm43455 = ""
-FILES_${PN}-bcm43430 = ""
diff --git a/meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi/disable_kprobes.cfg b/meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi/disable_kprobes.cfg
new file mode 100644 (file)
index 0000000..4a67a7e
--- /dev/null
@@ -0,0 +1 @@
+CONFIG_KPROBES=n
index 855a862..92dd6e7 100644 (file)
@@ -1,17 +1,20 @@
 FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"
 
 require recipes-kernel/linux/linux-agl.inc
-require recipes-kernel/linux/linux-agl-4.9.inc
+require recipes-kernel/linux/linux-agl-4.14.inc
 
+# NOTE: Kprobes need to be disabled until linux-raspberrypi gets updated
+#       to newer than 4.14.104 to avoid lttng-modules failing to build.
 SRC_URI_append = "\
-    ${@base_conditional('USE_FAYTECH_MONITOR', '1', 'file://0002-faytech-fix-rpi.patch', '', d)} \
+    ${@oe.utils.conditional('USE_FAYTECH_MONITOR', '1', 'file://0002-faytech-fix-rpi.patch', '', d)} \
+    file://disable_kprobes.cfg \
 "
 
 CMDLINE_DEBUG = ""
 CMDLINE_append = " usbhid.mousepoll=0"
 
 # Add options to allow CMA to operate
-CMDLINE_append = ' ${@base_conditional("ENABLE_CMA", "1", "coherent_pool=6M smsc95xx.turbo_mode=N", "", d)}'
+CMDLINE_append = ' ${@oe.utils.conditional("ENABLE_CMA", "1", "coherent_pool=6M smsc95xx.turbo_mode=N", "", d)}'
 
 KERNEL_MODULE_AUTOLOAD += "snd-bcm2835"
 KERNEL_MODULE_AUTOLOAD += "hid-multitouch"
diff --git a/meta-agl-bsp/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend b/meta-agl-bsp/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend
new file mode 100644 (file)
index 0000000..e48a380
--- /dev/null
@@ -0,0 +1,2 @@
+# Disable faad by default to avoid licensing issues
+PACKAGECONFIG_remove_rpi = "faad"
index 2b1ac5a..277186f 100644 (file)
@@ -13,6 +13,8 @@ BBFILE_COLLECTIONS += "rcar-gen3-cogent"
 BBFILE_PATTERN_rcar-gen3-cogent := "^${LAYERDIR}/../../../meta-rcar/meta-rcar-gen3-adas/"
 BBFILE_PRIORITY_rcar-gen3-cogent = "7"
 
+LAYERSERIES_COMPAT_rcar-gen3-cogent = "thud"
+
 # Custom packages
 IMAGE_INSTALL_append_rcar-gen3 = " \
     can-utils \
@@ -39,7 +41,6 @@ IMAGE_INSTALL_append_rcar-gen3 = " \
 IMAGE_INSTALL_append_rcar-gen3 += " \
     si-tools \
     linux-firmware-wl18xx \
-    wireless-tools \
     ti-bt \
     ti-bt-firmware \
     bluez5 \
diff --git a/meta-agl-bsp/meta-ti/recipes-arago/gst-plugins-ti/gstreamer1.0-plugins-ducati_git.bb b/meta-agl-bsp/meta-ti/recipes-arago/gst-plugins-ti/gstreamer1.0-plugins-ducati_git.bb
deleted file mode 100644 (file)
index 3f806eb..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-DESCRIPTION = "GStreamer elements to use the multimedia accelerators available on some TI parts"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
-
-require gstreamer1.0-plugins-ti.inc
-
-PR = "${INC_PR}.24"
-SRCREV = "e797c1d832cc8ee1dd66d1683991cb6d7316ed63"
-
-BRANCH ?= "master"
-
-SRC_URI = "git://git.ti.com/glsdk/gst-plugin-ducati.git;protocol=git;branch=${BRANCH} \
-          "
-
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-agl-bsp/meta-ti/recipes-arago/gst-plugins-ti/gstreamer1.0-plugins-ti.inc b/meta-agl-bsp/meta-ti/recipes-arago/gst-plugins-ti/gstreamer1.0-plugins-ti.inc
deleted file mode 100644 (file)
index 529306b..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-# Include file for common build settings for TI GStreamer plugins
-DEPENDS += "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad libdrm libdce"
-
-inherit autotools-brokensep pkgconfig gettext
-
-INC_PR = "r2"
-
-S = "${WORKDIR}/git"
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-do_configure() {
-       cd ${S}
-       chmod +x autogen.sh
-       ./autogen.sh --host=arm-linux --with-libtool-sysroot=${STAGING_DIR_TARGET} --prefix=/usr
-}
-
-EXTRA_OECONF += "--enable-maintainer-mode"
-EXTRA_OEMAKE += "'ERROR_CFLAGS=-Wno-deprecated-declarations'"
-
-FILES_${PN} += "${libdir}/gstreamer-1.0/*.so"
-FILES_${PN}-dbg += "${libdir}/gstreamer-1.0/.debug"
-FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la"
diff --git a/meta-agl-bsp/meta-ti/recipes-arago/gst-plugins-ti/gstreamer1.0-plugins-vpe/ti-video.conf b/meta-agl-bsp/meta-ti/recipes-arago/gst-plugins-ti/gstreamer1.0-plugins-vpe/ti-video.conf
deleted file mode 100644 (file)
index 339a0c1..0000000
+++ /dev/null
@@ -1 +0,0 @@
-install ti-vip /sbin/modprobe ti-vpe; /sbin/modprobe --ignore-install ti-vip
diff --git a/meta-agl-bsp/meta-ti/recipes-arago/gst-plugins-ti/gstreamer1.0-plugins-vpe_git.bb b/meta-agl-bsp/meta-ti/recipes-arago/gst-plugins-ti/gstreamer1.0-plugins-vpe_git.bb
deleted file mode 100644 (file)
index e0fb640..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-DESCRIPTION = "GStreamer elements to use the Video Processing Engine (VPE) found on some TI devices"
-
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
-
-require gstreamer1.0-plugins-ti.inc
-
-PR = "${INC_PR}.14"
-SRCREV = "6ec1a9c9fc17e0cae781aed067a2a6f2c1f92d68"
-
-SRC_URI = "git://git.ti.com/glsdk/gst-plugin-vpe.git;protocol=git \
-           file://ti-video.conf \
-"
-
-do_install_append() {
-    install -d ${D}/etc/modprobe.d
-    install -m 644 ${WORKDIR}/ti-video.conf ${D}/etc/modprobe.d
-}
diff --git a/meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0001-Enable-mouse-movement-for-videos-on-waylandsink.patch b/meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0001-Enable-mouse-movement-for-videos-on-waylandsink.patch
deleted file mode 100644 (file)
index 06d28bc..0000000
+++ /dev/null
@@ -1,404 +0,0 @@
-From 90fafb6ea39940161f3bf86ab7f557197ff389ff Mon Sep 17 00:00:00 2001
-From: Pooja Prajod <a0132412@ti.com>
-Date: Fri, 26 Feb 2016 16:46:39 -0500
-Subject: [PATCH] Enable mouse movement for videos on waylandsink
-
-This patch enables grab, drag and ungrab of videos
-that are being played on waylandsink.
-
-Signed-off-by: Pooja Prajod <a0132412@ti.com>
----
- ext/wayland/gstwaylandsink.c | 283 +++++++++++++++++++++++++++++++++++++++++++
- ext/wayland/gstwaylandsink.h |  26 ++++
- 2 files changed, 309 insertions(+)
-
-diff --git a/ext/wayland/gstwaylandsink.c b/ext/wayland/gstwaylandsink.c
-index cabf310..7394a2b 100644
---- a/ext/wayland/gstwaylandsink.c
-+++ b/ext/wayland/gstwaylandsink.c
-@@ -41,6 +41,7 @@
- #endif
- #include "gstwaylandsink.h"
-+#include <linux/input.h>
- /* signals */
- enum
-@@ -100,6 +101,9 @@ static void create_window (GstWaylandSink * sink, struct display *display,
-     int width, int height);
- static void shm_pool_destroy (struct shm_pool *pool);
-+static void input_grab (struct input *input, struct window *window);
-+static void input_ungrab (struct input *input);
-+
- typedef struct
- {
-   uint32_t wl_format;
-@@ -225,6 +229,54 @@ gst_wayland_sink_set_property (GObject * object,
- }
- static void
-+input_grab (struct input *input, struct window *window)
-+{
-+  input->grab = window;
-+}
-+
-+static void
-+input_ungrab (struct input *input)
-+{
-+  input->grab = NULL;
-+}
-+
-+static void
-+input_remove_pointer_focus (struct input *input)
-+{
-+  struct window *window = input->pointer_focus;
-+
-+  if (!window)
-+    return;
-+
-+  input->pointer_focus = NULL;
-+}
-+
-+static void
-+input_destroy (struct input *input)
-+{
-+  input_remove_pointer_focus (input);
-+
-+  if (input->display->seat_version >= 3) {
-+    if (input->pointer)
-+      wl_pointer_release (input->pointer);
-+  }
-+
-+  wl_list_remove (&input->link);
-+  wl_seat_destroy (input->seat);
-+  free (input);
-+}
-+
-+static void
-+display_destroy_inputs (struct display *display)
-+{
-+  struct input *tmp;
-+  struct input *input;
-+
-+  wl_list_for_each_safe (input, tmp, &display->input_list, link)
-+      input_destroy (input);
-+}
-+
-+static void
- destroy_display (struct display *display)
- {
-   if (display->shm)
-@@ -236,6 +288,7 @@ destroy_display (struct display *display)
-   if (display->compositor)
-     wl_compositor_destroy (display->compositor);
-+  display_destroy_inputs (display);
-   wl_display_flush (display->display);
-   wl_display_disconnect (display->display);
-   free (display);
-@@ -318,6 +371,229 @@ struct wl_shm_listener shm_listenter = {
-   shm_format
- };
-+
-+static void
-+pointer_handle_enter (void *data, struct wl_pointer *pointer,
-+    uint32_t serial, struct wl_surface *surface,
-+    wl_fixed_t sx_w, wl_fixed_t sy_w)
-+{
-+  struct input *input = data;
-+
-+  if (!surface) {
-+    /* enter event for a window we've just destroyed */
-+    return;
-+  }
-+
-+  input->display->serial = serial;
-+  input->pointer_focus = wl_surface_get_user_data (surface);
-+}
-+
-+static void
-+pointer_handle_leave (void *data, struct wl_pointer *pointer,
-+    uint32_t serial, struct wl_surface *surface)
-+{
-+  struct input *input = data;
-+
-+  input_remove_pointer_focus (input);
-+}
-+
-+static void
-+pointer_handle_motion (void *data, struct wl_pointer *pointer,
-+    uint32_t time, wl_fixed_t sx_w, wl_fixed_t sy_w)
-+{
-+  struct input *input = data;
-+  struct window *window = input->pointer_focus;
-+
-+  if (!window)
-+    return;
-+
-+  if (input->grab)
-+    wl_shell_surface_move (input->grab->shell_surface, input->seat,
-+        input->display->serial);
-+
-+}
-+
-+static void
-+pointer_handle_button (void *data, struct wl_pointer *pointer, uint32_t serial,
-+    uint32_t time, uint32_t button, uint32_t state_w)
-+{
-+  struct input *input = data;
-+  enum wl_pointer_button_state state = state_w;
-+  input->display->serial = serial;
-+
-+  if (button == BTN_LEFT) {
-+    if (state == WL_POINTER_BUTTON_STATE_PRESSED)
-+      input_grab (input, input->pointer_focus);
-+
-+    if (input->grab && state == WL_POINTER_BUTTON_STATE_RELEASED)
-+      input_ungrab (input);
-+  }
-+
-+  if (input->grab)
-+    wl_shell_surface_move (input->grab->shell_surface, input->seat,
-+        input->display->serial);
-+}
-+
-+static void
-+pointer_handle_axis (void *data, struct wl_pointer *pointer,
-+    uint32_t time, uint32_t axis, wl_fixed_t value)
-+{
-+}
-+
-+static const struct wl_pointer_listener pointer_listener = {
-+  pointer_handle_enter,
-+  pointer_handle_leave,
-+  pointer_handle_motion,
-+  pointer_handle_button,
-+  pointer_handle_axis,
-+};
-+
-+static void
-+touch_handle_down (void *data, struct wl_touch *wl_touch,
-+    uint32_t serial, uint32_t time, struct wl_surface *surface,
-+    int32_t id, wl_fixed_t x_w, wl_fixed_t y_w)
-+{
-+  struct input *input = data;
-+  struct touch_point *tp;
-+
-+  input->display->serial = serial;
-+  input->touch_focus = wl_surface_get_user_data (surface);
-+  if (!input->touch_focus) {
-+    return;
-+  }
-+
-+  tp = malloc (sizeof *tp);
-+  if (tp) {
-+    tp->id = id;
-+    wl_list_insert (&input->touch_point_list, &tp->link);
-+    wl_shell_surface_move (input->touch_focus->shell_surface, input->seat,
-+        serial);
-+  }
-+}
-+
-+static void
-+touch_handle_motion (void *data, struct wl_touch *wl_touch,
-+    uint32_t time, int32_t id, wl_fixed_t x_w, wl_fixed_t y_w)
-+{
-+  struct input *input = data;
-+  struct touch_point *tp;
-+
-+
-+  if (!input->touch_focus) {
-+    return;
-+  }
-+  wl_list_for_each (tp, &input->touch_point_list, link) {
-+    if (tp->id != id)
-+      continue;
-+
-+    wl_shell_surface_move (input->touch_focus->shell_surface, input->seat,
-+        input->display->serial);
-+
-+    return;
-+  }
-+}
-+
-+static void
-+touch_handle_frame (void *data, struct wl_touch *wl_touch)
-+{
-+}
-+
-+static void
-+touch_handle_cancel (void *data, struct wl_touch *wl_touch)
-+{
-+}
-+
-+static void
-+touch_handle_up (void *data, struct wl_touch *wl_touch,
-+    uint32_t serial, uint32_t time, int32_t id)
-+{
-+  struct input *input = data;
-+  struct touch_point *tp, *tmp;
-+
-+  if (!input->touch_focus) {
-+    return;
-+  }
-+
-+  wl_list_for_each_safe (tp, tmp, &input->touch_point_list, link) {
-+    if (tp->id != id)
-+      continue;
-+
-+    wl_list_remove (&tp->link);
-+    free (tp);
-+
-+    return;
-+  }
-+}
-+
-+static const struct wl_touch_listener touch_listener = {
-+  touch_handle_down,
-+  touch_handle_up,
-+  touch_handle_motion,
-+  touch_handle_frame,
-+  touch_handle_cancel,
-+};
-+
-+
-+
-+static void
-+seat_handle_capabilities (void *data, struct wl_seat *seat,
-+    enum wl_seat_capability caps)
-+{
-+  struct input *input = data;
-+
-+  if ((caps & WL_SEAT_CAPABILITY_POINTER) && !input->pointer) {
-+    input->pointer = wl_seat_get_pointer (seat);
-+    wl_pointer_set_user_data (input->pointer, input);
-+    wl_pointer_add_listener (input->pointer, &pointer_listener, input);
-+  } else if (!(caps & WL_SEAT_CAPABILITY_POINTER) && input->pointer) {
-+    wl_pointer_destroy (input->pointer);
-+    input->pointer = NULL;
-+  }
-+
-+  if ((caps & WL_SEAT_CAPABILITY_TOUCH) && !input->touch) {
-+    input->touch = wl_seat_get_touch (seat);
-+    wl_touch_set_user_data (input->touch, input);
-+    wl_touch_add_listener (input->touch, &touch_listener, input);
-+  } else if (!(caps & WL_SEAT_CAPABILITY_TOUCH) && input->touch) {
-+    wl_touch_destroy (input->touch);
-+    input->touch = NULL;
-+  }
-+}
-+
-+static void
-+seat_handle_name (void *data, struct wl_seat *seat, const char *name)
-+{
-+
-+}
-+
-+static const struct wl_seat_listener seat_listener = {
-+  seat_handle_capabilities,
-+  seat_handle_name
-+};
-+
-+static void
-+display_add_input (struct display *d, uint32_t id)
-+{
-+  struct input *input;
-+
-+  input = calloc (1, sizeof (*input));
-+  if (input == NULL) {
-+    fprintf (stderr, "%s: out of memory\n", "gst-wayland-sink");
-+    exit (EXIT_FAILURE);
-+  }
-+  input->display = d;
-+  input->seat = wl_registry_bind (d->registry, id, &wl_seat_interface,
-+      MAX (d->seat_version, 3));
-+  input->touch_focus = NULL;
-+  input->pointer_focus = NULL;
-+  wl_list_init (&input->touch_point_list);
-+  wl_list_insert (d->input_list.prev, &input->link);
-+
-+  wl_seat_add_listener (input->seat, &seat_listener, input);
-+  wl_seat_set_user_data (input->seat, input);
-+
-+}
-+
- static void
- registry_handle_global (void *data, struct wl_registry *registry,
-     uint32_t id, const char *interface, uint32_t version)
-@@ -332,6 +608,9 @@ registry_handle_global (void *data, struct wl_registry *registry,
-   } else if (strcmp (interface, "wl_shm") == 0) {
-     d->shm = wl_registry_bind (registry, id, &wl_shm_interface, 1);
-     wl_shm_add_listener (d->shm, &shm_listenter, d);
-+  } else if (strcmp (interface, "wl_seat") == 0) {
-+    d->seat_version = version;
-+    display_add_input (d, id);
-   }
- }
-@@ -352,6 +631,8 @@ create_display (void)
-     return NULL;
-   }
-+  wl_list_init (&display->input_list);
-+
-   display->registry = wl_display_get_registry (display->display);
-   wl_registry_add_listener (display->registry, &registry_listener, display);
-@@ -491,6 +772,8 @@ create_window (GstWaylandSink * sink, struct display *display, int width,
-   window->surface = wl_compositor_create_surface (display->compositor);
-+  wl_surface_set_user_data (window->surface, window);
-+
-   window->shell_surface = wl_shell_get_shell_surface (display->shell,
-       window->surface);
-diff --git a/ext/wayland/gstwaylandsink.h b/ext/wayland/gstwaylandsink.h
-index cb3383e..f7d30dc 100644
---- a/ext/wayland/gstwaylandsink.h
-+++ b/ext/wayland/gstwaylandsink.h
-@@ -55,6 +55,27 @@
- #define GST_WAYLAND_SINK_GET_CLASS(inst) \
-         (G_TYPE_INSTANCE_GET_CLASS ((inst), GST_TYPE_WAYLAND_SINK, GstWaylandSinkClass))
-+struct touch_point
-+{
-+  int32_t id;
-+  struct wl_list link;
-+};
-+
-+struct input
-+{
-+  struct display *display;
-+  struct wl_seat *seat;
-+  struct wl_pointer *pointer;
-+  struct wl_touch *touch;
-+  struct wl_list touch_point_list;
-+  struct window *pointer_focus;
-+  struct window *touch_focus;
-+  struct wl_list link;
-+  struct window *grab;
-+
-+};
-+
-+
- struct  display
- {
-   struct wl_display *display;
-@@ -63,6 +84,11 @@ struct  display
-   struct wl_shell *shell;
-   struct wl_shm *shm;
-   uint32_t formats;
-+
-+  struct wl_list input_list;
-+  int seat_version;
-+  uint32_t serial;
-+
- };
- struct window
--- 
-1.9.1
-
diff --git a/meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0001-gstdrmallocator-Add-DRM-allocator-support.patch b/meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0001-gstdrmallocator-Add-DRM-allocator-support.patch
deleted file mode 100644 (file)
index 38eb5a1..0000000
+++ /dev/null
@@ -1,482 +0,0 @@
-From c5d115bf88f0d2fb64f58b21b72a3195eae98d0a Mon Sep 17 00:00:00 2001
-From: Pooja Prajod <a0132412@ti.com>
-Date: Fri, 20 Jan 2017 14:41:45 +0530
-Subject: [PATCH 1/5] gstdrmallocator: Add DRM allocator support
-
-Add DRM based allocator support.
-
-The following changes are included :
-1. Use DRM dumb buffers and associated APIs for
-dmabuf allocation.
-2. Have DRM device fd a member of allocator object
-3. Allocate GstMemory objects with mem_type as 'dmabuf'
-
-Signed-off-by: Pooja Prajod <a0132412@ti.com>
----
- configure.ac                              |   5 +
- gst-libs/gst/Makefile.am                  |   4 +-
- gst-libs/gst/drm/Makefile.am              |  33 +++++
- gst-libs/gst/drm/gstdrmallocator.c        | 206 ++++++++++++++++++++++++++++++
- gst-libs/gst/drm/gstdrmallocator.h        |  77 +++++++++++
- pkgconfig/Makefile.am                     |   3 +
- pkgconfig/gstreamer-drm-uninstalled.pc.in |  11 ++
- pkgconfig/gstreamer-drm.pc.in             |  12 ++
- 8 files changed, 349 insertions(+), 2 deletions(-)
- create mode 100644 gst-libs/gst/drm/Makefile.am
- create mode 100644 gst-libs/gst/drm/gstdrmallocator.c
- create mode 100644 gst-libs/gst/drm/gstdrmallocator.h
- create mode 100644 pkgconfig/gstreamer-drm-uninstalled.pc.in
- create mode 100644 pkgconfig/gstreamer-drm.pc.in
-
-diff --git a/configure.ac b/configure.ac
-index 5e85e56..e254605 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -621,6 +621,8 @@ if test x$with_egl_module_name != x; then
-   AC_DEFINE_UNQUOTED(GST_GL_LIBEGL_MODULE_NAME, "$with_egl_module_name", [EGL module name])
- fi
-+PKG_CHECK_MODULES([DRM], [libdrm libdrm_omap], HAVE_KMS=yes, HAVE_KMS=no)
-+
- AC_ARG_ENABLE([wgl],
-      [  --enable-wgl            Enable WGL support @<:@default=auto@:>@],
-      [case "${enableval}" in
-@@ -3590,6 +3592,7 @@ gst-libs/Makefile
- gst-libs/gst/Makefile
- gst-libs/gst/adaptivedemux/Makefile
- gst-libs/gst/basecamerabinsrc/Makefile
-+gst-libs/gst/drm/Makefile
- gst-libs/gst/gl/Makefile
- gst-libs/gst/gl/android/Makefile
- gst-libs/gst/gl/cocoa/Makefile
-@@ -3749,6 +3752,8 @@ pkgconfig/gstreamer-plugins-bad.pc
- pkgconfig/gstreamer-plugins-bad-uninstalled.pc
- pkgconfig/gstreamer-codecparsers.pc
- pkgconfig/gstreamer-codecparsers-uninstalled.pc
-+pkgconfig/gstreamer-drm.pc
-+pkgconfig/gstreamer-drm-uninstalled.pc
- pkgconfig/gstreamer-insertbin.pc
- pkgconfig/gstreamer-insertbin-uninstalled.pc
- pkgconfig/gstreamer-gl.pc
-diff --git a/gst-libs/gst/Makefile.am b/gst-libs/gst/Makefile.am
-index 7d0b309..5ec3967 100644
---- a/gst-libs/gst/Makefile.am
-+++ b/gst-libs/gst/Makefile.am
-@@ -11,7 +11,7 @@ WAYLAND_DIR=wayland
- endif
- SUBDIRS = uridownloader adaptivedemux interfaces basecamerabinsrc codecparsers \
--       insertbin mpegts base video audio player $(GL_DIR) $(WAYLAND_DIR)
-+       insertbin mpegts base video audio player drm $(GL_DIR) $(WAYLAND_DIR)
- noinst_HEADERS = gst-i18n-plugin.h gettext.h glib-compat-private.h
- DIST_SUBDIRS = uridownloader adaptivedemux interfaces gl basecamerabinsrc \
-@@ -24,7 +24,7 @@ adaptivedemux: uridownloader
- INDEPENDENT_SUBDIRS = \
-       interfaces basecamerabinsrc codecparsers insertbin uridownloader \
--      mpegts base player $(GL_DIR) $(WAYLAND_DIR)
-+      mpegts base player drm $(GL_DIR) $(WAYLAND_DIR)
- .PHONY: independent-subdirs $(INDEPENDENT_SUBDIRS)
-diff --git a/gst-libs/gst/drm/Makefile.am b/gst-libs/gst/drm/Makefile.am
-new file mode 100644
-index 0000000..9a45dfb
---- /dev/null
-+++ b/gst-libs/gst/drm/Makefile.am
-@@ -0,0 +1,33 @@
-+lib_LTLIBRARIES = libgstdrm-@GST_API_VERSION@.la
-+
-+CLEANFILES = $(BUILT_SOURCES)
-+
-+libgstdrm_@GST_API_VERSION@_la_SOURCES = \
-+      gstdrmallocator.c 
-+
-+libgstdrm_@GST_API_VERSION@includedir = \
-+      $(includedir)/gstreamer-@GST_API_VERSION@/gst/drm
-+
-+libgstdrm_@GST_API_VERSION@include_HEADERS = \
-+      gstdrmallocator.h 
-+
-+libgstdrm_@GST_API_VERSION@_la_CFLAGS = \
-+      $(DRM_CFLAGS) \
-+      $(OMAPDRM_CFLAGS) \
-+      $(GST_PLUGINS_BAD_CFLAGS) \
-+      $(GST_PLUGINS_BASE_CFLAGS) \
-+      -DGST_USE_UNSTABLE_API \
-+      $(GST_CFLAGS)
-+
-+libgstdrm_@GST_API_VERSION@_la_LIBADD = \
-+      $(DRM_LIBS) \
-+      $(GST_PLUGINS_BASE_LIBS) \
-+      $(GST_BASE_LIBS) \
-+        -lgstallocators-$(GST_API_VERSION) \
-+      $(GST_LIBS) 
-+
-+libgstdrm_@GST_API_VERSION@_la_LDFLAGS = \
-+      $(DRM_LDFLAGS) \
-+      $(GST_LIB_LDFLAGS) \
-+      $(GST_ALL_LDFLAGS) \
-+      $(GST_LT_LDFLAGS)
-diff --git a/gst-libs/gst/drm/gstdrmallocator.c b/gst-libs/gst/drm/gstdrmallocator.c
-new file mode 100644
-index 0000000..b557ad2
---- /dev/null
-+++ b/gst-libs/gst/drm/gstdrmallocator.c
-@@ -0,0 +1,206 @@
-+/*
-+ * GStreamer
-+ *
-+ * Copyright (C) 2012 Texas Instruments
-+ *
-+ * Authors:
-+ *  Pooja Prajod <poojaprajod@ti.com>
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License as published by the Free Software Foundation
-+ * version 2.1 of the License.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * Lesser General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-+ */
-+
-+/**
-+ * SECTION:GstDRMAllocator
-+ * @short_description: GStreamer DRM allocator support
-+ *
-+ * Since: 1.6.3
-+ */
-+
-+
-+#include "gstdrmallocator.h"
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <errno.h>
-+#include <unistd.h>
-+#include <sys/mman.h>
-+#include <sys/types.h>
-+
-+#define INVALID_DRM_FD (-1)
-+
-+GST_DEBUG_CATEGORY (drmallocator_debug);
-+#define GST_CAT_DEFAULT drmallocator_debug
-+
-+#define gst_drm_allocator_parent_class parent_class
-+G_DEFINE_TYPE (GstDRMAllocator, gst_drm_allocator, GST_TYPE_FD_ALLOCATOR);
-+
-+static GstMemory *
-+gst_drm_allocator_alloc (GstAllocator * allocator, gsize size,
-+    GstAllocationParams * params)
-+{
-+  GstDRMAllocator *self = GST_DRM_ALLOCATOR (allocator);
-+  int fd = -1;
-+  int DrmDeviceFD = self->DrmDeviceFD;
-+  GstMemory *mem;
-+  /* Variable for DRM Dumb Buffers */
-+
-+  struct drm_mode_create_dumb creq;
-+  struct drm_mode_destroy_dumb dreq;
-+  int ret ;
-+  
-+  GST_LOG_OBJECT (self, "DRM Memory alloc");  
-+  
-+  memset(&creq, 0, sizeof(struct drm_mode_create_dumb));
-+  /* 
-+   We have only total size as argument to _allocator_alloc.
-+   Since the DDR storage is linear, it is as good as saying
-+   the buffer is of width = size and height = 1
-+  */
-+  creq.width = size;
-+  creq.height = 1;
-+  creq.bpp = 8;
-+
-+  /* Create a DRM dumb buffer */
-+  ret = drmIoctl (DrmDeviceFD, DRM_IOCTL_MODE_CREATE_DUMB, &creq);
-+  if (ret < 0) {
-+    GST_ERROR_OBJECT (self, "Create DRM dumb buffer failed");
-+    return NULL;
-+  }
-+  /* Get a dmabuf fd from the dumb buffer handle */
-+  drmPrimeHandleToFD (DrmDeviceFD, creq.handle, DRM_CLOEXEC | O_RDWR, &fd);
-+
-+  if (fd < 0) {
-+    GST_ERROR_OBJECT (self, "Invalid fd returned: %d", fd);
-+    goto fail;
-+  }
-+
-+  /* Get a dmabuf gstmemory with the fd */
-+  mem = gst_fd_allocator_alloc (allocator, fd, size, 0);  
-+
-+  if (G_UNLIKELY (!mem)) {
-+    GST_ERROR_OBJECT (self, "GstDmaBufMemory allocation failed");
-+    close (fd);
-+    goto fail;
-+  }
-+
-+  return mem;
-+
-+  fail:
-+    memset(&dreq, 0, sizeof(struct drm_mode_destroy_dumb));
-+    dreq.handle = creq.handle;
-+    drmIoctl (DrmDeviceFD, DRM_IOCTL_MODE_DESTROY_DUMB, &dreq);
-+    return NULL;
-+}
-+
-+static void
-+gst_drm_allocator_free (GstAllocator * allocator, GstMemory * mem)
-+{
-+  GstDRMAllocator *self = GST_DRM_ALLOCATOR (allocator);
-+  uint32_t handle = 0;
-+  int DrmDeviceFD = self->DrmDeviceFD;
-+  int fd = -1;
-+
-+  GST_LOG_OBJECT (self, "DRM Memory free");
-+
-+  g_return_if_fail (GST_IS_ALLOCATOR (allocator));
-+  g_return_if_fail (mem != NULL);
-+  g_return_if_fail (gst_is_drm_memory (mem));
-+
-+  fd = gst_fd_memory_get_fd (mem);
-+  drmPrimeFDToHandle(DrmDeviceFD, fd, &handle);    
-+
-+  /* Incase there are some mapped memory, we unmap and ready it to be cleaned*/
-+  GST_ALLOCATOR_CLASS (parent_class)->free (allocator, mem);
-+
-+  if (handle) {
-+    struct drm_mode_destroy_dumb dreq;
-+    memset(&dreq, 0, sizeof(struct drm_mode_destroy_dumb));
-+    dreq.handle = handle;
-+    drmIoctl (DrmDeviceFD, DRM_IOCTL_MODE_DESTROY_DUMB, &dreq);
-+  }
-+  
-+  close (fd);
-+}
-+
-+static void
-+gst_drm_allocator_finalize (GObject * obj)
-+{
-+  GstDRMAllocator *self = GST_DRM_ALLOCATOR (obj);
-+  GST_LOG_OBJECT (obj, "DRM Allocator finalize");
-+
-+  close (self->DrmDeviceFD);
-+  self->DrmDeviceFD = INVALID_DRM_FD;
-+
-+  G_OBJECT_CLASS (parent_class)->finalize (obj);
-+}
-+
-+static void
-+gst_drm_allocator_class_init (GstDRMAllocatorClass * klass)
-+{
-+  GstAllocatorClass *drm_alloc = (GstAllocatorClass *) klass;
-+
-+  drm_alloc->alloc = GST_DEBUG_FUNCPTR (gst_drm_allocator_alloc);
-+  drm_alloc->free = GST_DEBUG_FUNCPTR (gst_drm_allocator_free);
-+  GST_DEBUG_CATEGORY_INIT (drmallocator_debug, "drmallocator", 0,
-+    "GstDRMAllocator debug");
-+
-+}
-+
-+static void
-+gst_drm_allocator_init (GstDRMAllocator * self)
-+{
-+  GstAllocator *alloc = GST_ALLOCATOR_CAST (self);
-+  GObjectClass *object_class = G_OBJECT_CLASS (GST_DRM_ALLOCATOR_GET_CLASS(self));
-+  
-+  if (self->DrmDeviceFD <= 0) {
-+    self->DrmDeviceFD = open("/dev/dri/card0", O_RDWR | O_CLOEXEC);
-+    if (self->DrmDeviceFD < 0) {
-+      GST_ERROR_OBJECT (self, "Failed to open DRM device");
-+    } else {
-+      drmDropMaster (self->DrmDeviceFD);
-+    }
-+  }
-+
-+  alloc->mem_type = GST_ALLOCATOR_DMABUF;
-+
-+  object_class->finalize = gst_drm_allocator_finalize;
-+
-+  GST_OBJECT_FLAG_UNSET (self, GST_ALLOCATOR_FLAG_CUSTOM_ALLOC);
-+}
-+
-+void
-+gst_drm_allocator_register (void)
-+{
-+  gst_allocator_register (GST_ALLOCATOR_DRM,
-+      g_object_new (GST_TYPE_DRM_ALLOCATOR, NULL));
-+}
-+
-+GstAllocator *
-+gst_drm_allocator_get (void)
-+{
-+  GstAllocator *alloc;
-+  alloc = gst_allocator_find (GST_ALLOCATOR_DRM);
-+  if (!alloc) {
-+    gst_drm_allocator_register();
-+    alloc = gst_allocator_find (GST_ALLOCATOR_DRM);
-+  }
-+  return alloc; 
-+}
-+
-+gboolean
-+gst_is_drm_memory (GstMemory * mem)
-+{
-+  return gst_memory_is_type (mem, GST_ALLOCATOR_DMABUF);
-+}
-diff --git a/gst-libs/gst/drm/gstdrmallocator.h b/gst-libs/gst/drm/gstdrmallocator.h
-new file mode 100644
-index 0000000..1ca93ba
---- /dev/null
-+++ b/gst-libs/gst/drm/gstdrmallocator.h
-@@ -0,0 +1,77 @@
-+/*
-+ * GStreamer
-+ *
-+ * Copyright (C) 2012 Texas Instruments
-+ *
-+ * Authors:
-+ *  Pooja Prajod <poojaprajod@ti.com>
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License as published by the Free Software Foundation
-+ * version 2.1 of the License.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * Lesser General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-+ */
-+
-+/**
-+ * SECTION:GstDRMAllocator
-+ * @short_description: GStreamer DRM allocator support
-+ *
-+ * Since: 1.6.3
-+ */
-+
-+#ifndef __GSTDRMALLOCATOR_H__
-+#define __GSTDRMALLOCATOR_H__
-+
-+#include <gst/gst.h>
-+#include <gst/video/video.h>
-+#include <gst/allocators/allocators.h>
-+#include <stdint.h>
-+
-+#include <xf86drm.h>
-+#include <xf86drmMode.h>
-+#include <fcntl.h>
-+
-+G_BEGIN_DECLS
-+
-+#define GST_TYPE_DRM_ALLOCATOR                  (gst_drm_allocator_get_type ())
-+#define GST_DRM_ALLOCATOR(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_DRM_ALLOCATOR, GstDRMAllocator))
-+#define GST_IS_DRM_ALLOCATOR(obj)               (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_DRM_ALLOCATOR))
-+#define GST_DRM_ALLOCATOR_CLASS(klass)          (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_DRM_ALLOCATOR, GstDRMAllocatorClass))
-+#define GST_IS_DRM_ALLOCATOR_CLASS(klass)       (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_DRM_ALLOCATOR))
-+#define GST_DRM_ALLOCATOR_GET_CLASS(obj)        (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_DRM_ALLOCATOR, GstDRMAllocatorClass))
-+
-+#define GST_ALLOCATOR_DRM "DRM"
-+
-+typedef struct _GstDRMAllocator GstDRMAllocator;
-+typedef struct _GstDRMAllocatorClass GstDRMAllocatorClass;
-+
-+struct _GstDRMAllocator
-+{
-+  GstFdAllocator parent;
-+  int DrmDeviceFD;
-+};
-+
-+struct _GstDRMAllocatorClass
-+{
-+  GstFdAllocatorClass parent_class;
-+};
-+
-+void gst_drm_allocator_register (void);
-+GstAllocator * gst_drm_allocator_get (void);
-+
-+gboolean gst_is_drm_memory (GstMemory * mem);
-+
-+GType gst_drm_allocator_get_type (void);
-+
-+G_END_DECLS
-+
-+#endif /* __GSTDRMALLOCATOR_H__ */
-diff --git a/pkgconfig/Makefile.am b/pkgconfig/Makefile.am
-index 88c7e52..5fdccbf 100644
---- a/pkgconfig/Makefile.am
-+++ b/pkgconfig/Makefile.am
-@@ -2,6 +2,7 @@
- ### all of the standard pc files we need to generate
- pcverfiles =  \
-       gstreamer-plugins-bad-@GST_API_VERSION@.pc \
-+        gstreamer-drm-@GST_API_VERSION@.pc \
-       gstreamer-codecparsers-@GST_API_VERSION@.pc \
-       gstreamer-insertbin-@GST_API_VERSION@.pc \
-       gstreamer-mpegts-@GST_API_VERSION@.pc \
-@@ -12,6 +13,7 @@ pcverfiles =  \
- pcverfiles_uninstalled = \
-       gstreamer-plugins-bad-@GST_API_VERSION@-uninstalled.pc \
-+        gstreamer-drm-@GST_API_VERSION@-uninstalled.pc \
-       gstreamer-codecparsers-@GST_API_VERSION@-uninstalled.pc \
-       gstreamer-insertbin-@GST_API_VERSION@-uninstalled.pc \
-       gstreamer-mpegts-@GST_API_VERSION@-uninstalled.pc \
-@@ -43,6 +45,7 @@ pkgconfig_DATA = $(pcverfiles)
- CLEANFILES = $(pcverfiles) $(pcverfiles_uninstalled)
- pcinfiles = \
-            gstreamer-plugins-bad.pc.in gstreamer-plugins-bad-uninstalled.pc.in \
-+           gstreamer-drm.pc.in gstreamer-drm-uninstalled.pc.in \
-            gstreamer-codecparsers.pc.in gstreamer-codecparsers-uninstalled.pc.in \
-            gstreamer-gl.pc.in gstreamer-gl-uninstalled.pc.in \
-            gstreamer-insertbin.pc.in gstreamer-insertbin-uninstalled.pc.in \
-diff --git a/pkgconfig/gstreamer-drm-uninstalled.pc.in b/pkgconfig/gstreamer-drm-uninstalled.pc.in
-new file mode 100644
-index 0000000..9dcf978
---- /dev/null
-+++ b/pkgconfig/gstreamer-drm-uninstalled.pc.in
-@@ -0,0 +1,11 @@
-+prefix=
-+exec_prefix=
-+libdir=${pcfiledir}/../gst-libs/gst/drm
-+includedir=${pcfiledir}/../gst-libs
-+
-+Name: GStreamer DRM Allocator, Uninstalled
-+Description: DRM Allocator for GStreamer elements, uninstalled
-+Requires: gstreamer-@GST_MAJORMINOR@ gstreamer-base-@GST_MAJORMINOR@
-+Version: @VERSION@
-+Libs: -L${libdir} ${libdir}/libgstdrm-@GST_MAJORMINOR@.la
-+Cflags: -I${includedir}
-diff --git a/pkgconfig/gstreamer-drm.pc.in b/pkgconfig/gstreamer-drm.pc.in
-new file mode 100644
-index 0000000..d155e80
---- /dev/null
-+++ b/pkgconfig/gstreamer-drm.pc.in
-@@ -0,0 +1,12 @@
-+prefix=@prefix@
-+exec_prefix=@exec_prefix@
-+libdir=@libdir@
-+includedir=@includedir@/gstreamer-@GST_MAJORMINOR@
-+
-+Name: GStreamer DRM Allocator
-+Description: DRM Allocator for GStreamer elements
-+Requires: gstreamer-@GST_MAJORMINOR@ gstreamer-base-@GST_MAJORMINOR@
-+Version: @VERSION@
-+Libs: -L${libdir} -lgstdrm-@GST_MAJORMINOR@
-+Cflags: -I${includedir}
-+
--- 
-1.9.1
-
diff --git a/meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0001-gstwaylandsink-Add-mouse-drag-and-drop-support.patch b/meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0001-gstwaylandsink-Add-mouse-drag-and-drop-support.patch
deleted file mode 100644 (file)
index 6962026..0000000
+++ /dev/null
@@ -1,408 +0,0 @@
-From 79db7e4cab226515f0e4d40afdb5a5b478755396 Mon Sep 17 00:00:00 2001
-From: Pooja Prajod <a0132412@ti.com>
-Date: Wed, 14 Sep 2016 16:03:17 -0400
-Subject: [PATCH] gstwaylandsink: Add mouse drag and drop support
-
-This patch adds mouse input listeners to WlDisplay instance.
-
-Signed-off-by: Pooja Prajod <a0132412@ti.com>
-Signed-off-by: Eric Ruei <e-ruei1@ti.com>
----
- ext/wayland/wldisplay.c | 305 +++++++++++++++++++++++++++++++++++++++++++++++-
- ext/wayland/wldisplay.h |   4 +
- ext/wayland/wlwindow.c  |   2 +
- 3 files changed, 310 insertions(+), 1 deletion(-)
-
-diff --git a/ext/wayland/wldisplay.c b/ext/wayland/wldisplay.c
-index 8c5eeaf..c647f34 100644
---- a/ext/wayland/wldisplay.c
-+++ b/ext/wayland/wldisplay.c
-@@ -21,18 +21,45 @@
- #ifdef HAVE_CONFIG_H
- #include <config.h>
- #endif
--
-+#include <stdlib.h>
-+#include <stdio.h>
- #include "wldisplay.h"
- #include "wlbuffer.h"
-+#include "wlwindow.h"
-+
-+#include <wayland-client-protocol.h>
-+#include <unistd.h>
- #include <errno.h>
-+#include <linux/input.h>
- GST_DEBUG_CATEGORY_EXTERN (gstwayland_debug);
- #define GST_CAT_DEFAULT gstwayland_debug
- G_DEFINE_TYPE (GstWlDisplay, gst_wl_display, G_TYPE_OBJECT);
-+struct touch_point
-+{
-+  int32_t id;
-+  struct wl_list link;
-+};
-+
-+struct input
-+{
-+  GstWlDisplay *display;
-+  struct wl_seat *seat;
-+  struct wl_pointer *pointer;
-+  struct wl_touch *touch;
-+  struct wl_list touch_point_list;
-+  GstWlWindow *pointer_focus;
-+  GstWlWindow *touch_focus;
-+  struct wl_list link;
-+  GstWlWindow *grab;
-+};
-+
- static void gst_wl_display_finalize (GObject * gobject);
-+static void input_grab (struct input *input, GstWlWindow *window);
-+static void input_ungrab (struct input *input);
- static void
- gst_wl_display_class_init (GstWlDisplayClass * klass)
-@@ -51,6 +78,54 @@ gst_wl_display_init (GstWlDisplay * self)
- }
- static void
-+input_grab (struct input *input, GstWlWindow *window)
-+{
-+  input->grab = window;
-+}
-+
-+static void
-+input_ungrab (struct input *input)
-+{
-+  input->grab = NULL;
-+}
-+
-+static void
-+input_remove_pointer_focus (struct input *input)
-+{
-+  GstWlWindow *window = input->pointer_focus;
-+
-+  if (!window)
-+    return;
-+
-+  input->pointer_focus = NULL;
-+}
-+
-+static void
-+input_destroy (struct input *input)
-+{
-+  input_remove_pointer_focus (input);
-+
-+  if (input->display->seat_version >= 3) {
-+    if (input->pointer)
-+      wl_pointer_release (input->pointer);
-+  }
-+
-+  wl_list_remove (&input->link);
-+  wl_seat_destroy (input->seat);
-+  free (input);
-+}
-+
-+static void
-+display_destroy_inputs (GstWlDisplay *display)
-+{
-+  struct input *tmp;
-+  struct input *input;
-+
-+  wl_list_for_each_safe (input, tmp, &display->input_list, link)
-+      input_destroy (input);
-+}
-+
-+static void
- gst_wl_display_finalize (GObject * gobject)
- {
-   GstWlDisplay *self = GST_WL_DISPLAY (gobject);
-@@ -74,6 +149,8 @@ gst_wl_display_finalize (GObject * gobject)
-   g_hash_table_unref (self->buffers);
-   g_mutex_clear (&self->buffers_mutex);
-+  display_destroy_inputs (self);
-+
-   if (self->shm)
-     wl_shm_destroy (self->shm);
-@@ -143,6 +220,228 @@ static const struct wl_shm_listener shm_listener = {
-   shm_format
- };
-+
-+static void
-+pointer_handle_enter (void *data, struct wl_pointer *pointer,
-+    uint32_t serial, struct wl_surface *surface,
-+    wl_fixed_t sx_w, wl_fixed_t sy_w)
-+{
-+  struct input *input = data;
-+
-+  if (!surface) {
-+    /* enter event for a window we've just destroyed */
-+    return;
-+  }
-+
-+  input->display->serial = serial;
-+  input->pointer_focus = wl_surface_get_user_data (surface);
-+}
-+
-+static void
-+pointer_handle_leave (void *data, struct wl_pointer *pointer,
-+    uint32_t serial, struct wl_surface *surface)
-+{
-+  struct input *input = data;
-+
-+  input_remove_pointer_focus (input);
-+}
-+
-+static void
-+pointer_handle_motion (void *data, struct wl_pointer *pointer,
-+    uint32_t time, wl_fixed_t sx_w, wl_fixed_t sy_w)
-+{
-+  struct input *input = data;
-+  GstWlWindow *window = input->pointer_focus;
-+
-+  if (!window)
-+    return;
-+
-+  if (input->grab)
-+    wl_shell_surface_move (input->grab->shell_surface, input->seat,
-+        input->display->serial);
-+
-+}
-+
-+static void
-+pointer_handle_button (void *data, struct wl_pointer *pointer, uint32_t serial,
-+    uint32_t time, uint32_t button, uint32_t state_w)
-+{
-+  struct input *input = data;
-+  enum wl_pointer_button_state state = state_w;
-+  input->display->serial = serial;
-+
-+  if (button == BTN_LEFT) {
-+    if (state == WL_POINTER_BUTTON_STATE_PRESSED)
-+      input_grab (input, input->pointer_focus);
-+
-+    if (input->grab && state == WL_POINTER_BUTTON_STATE_RELEASED)
-+      input_ungrab (input);
-+  }
-+
-+  if (input->grab)
-+    wl_shell_surface_move (input->grab->shell_surface, input->seat,
-+        input->display->serial);
-+}
-+
-+static void
-+pointer_handle_axis (void *data, struct wl_pointer *pointer,
-+    uint32_t time, uint32_t axis, wl_fixed_t value)
-+{
-+}
-+
-+static const struct wl_pointer_listener pointer_listener = {
-+  pointer_handle_enter,
-+  pointer_handle_leave,
-+  pointer_handle_motion,
-+  pointer_handle_button,
-+  pointer_handle_axis,
-+};
-+
-+static void
-+touch_handle_down (void *data, struct wl_touch *wl_touch,
-+    uint32_t serial, uint32_t time, struct wl_surface *surface,
-+    int32_t id, wl_fixed_t x_w, wl_fixed_t y_w)
-+{
-+  struct input *input = data;
-+  struct touch_point *tp;
-+
-+  input->display->serial = serial;
-+  input->touch_focus = wl_surface_get_user_data (surface);
-+  if (!input->touch_focus) {
-+    return;
-+  }
-+
-+  tp = malloc (sizeof *tp);
-+  if (tp) {
-+    tp->id = id;
-+    wl_list_insert (&input->touch_point_list, &tp->link);
-+    wl_shell_surface_move (input->touch_focus->shell_surface, input->seat,
-+        serial);
-+  }
-+}
-+
-+static void
-+touch_handle_motion (void *data, struct wl_touch *wl_touch,
-+    uint32_t time, int32_t id, wl_fixed_t x_w, wl_fixed_t y_w)
-+{
-+  struct input *input = data;
-+  struct touch_point *tp;
-+
-+
-+  if (!input->touch_focus) {
-+    return;
-+  }
-+  wl_list_for_each (tp, &input->touch_point_list, link) {
-+    if (tp->id != id)
-+      continue;
-+
-+    wl_shell_surface_move (input->touch_focus->shell_surface, input->seat,
-+        input->display->serial);
-+
-+    return;
-+  }
-+}
-+
-+static void
-+touch_handle_frame (void *data, struct wl_touch *wl_touch)
-+{
-+}
-+
-+static void
-+touch_handle_cancel (void *data, struct wl_touch *wl_touch)
-+{
-+}
-+
-+static void
-+touch_handle_up (void *data, struct wl_touch *wl_touch,
-+    uint32_t serial, uint32_t time, int32_t id)
-+{
-+  struct input *input = data;
-+  struct touch_point *tp, *tmp;
-+
-+  if (!input->touch_focus) {
-+    return;
-+  }
-+
-+  wl_list_for_each_safe (tp, tmp, &input->touch_point_list, link) {
-+    if (tp->id != id)
-+      continue;
-+
-+    wl_list_remove (&tp->link);
-+    free (tp);
-+
-+    return;
-+  }
-+}
-+
-+static const struct wl_touch_listener touch_listener = {
-+  touch_handle_down,
-+  touch_handle_up,
-+  touch_handle_motion,
-+  touch_handle_frame,
-+  touch_handle_cancel,
-+};
-+
-+
-+static void
-+seat_handle_capabilities (void *data, struct wl_seat *seat,
-+    enum wl_seat_capability caps)
-+{
-+  struct input *input = data;
-+
-+  if ((caps & WL_SEAT_CAPABILITY_POINTER) && !input->pointer) {
-+    input->pointer = wl_seat_get_pointer (seat);
-+    wl_pointer_set_user_data (input->pointer, input);
-+    wl_pointer_add_listener (input->pointer, &pointer_listener, input);
-+  } else if (!(caps & WL_SEAT_CAPABILITY_POINTER) && input->pointer) {
-+    wl_pointer_destroy (input->pointer);
-+    input->pointer = NULL;
-+  }
-+
-+  if ((caps & WL_SEAT_CAPABILITY_TOUCH) && !input->touch) {
-+    input->touch = wl_seat_get_touch (seat);
-+    wl_touch_set_user_data (input->touch, input);
-+    wl_touch_add_listener (input->touch, &touch_listener, input);
-+  } else if (!(caps & WL_SEAT_CAPABILITY_TOUCH) && input->touch) {
-+    wl_touch_destroy (input->touch);
-+    input->touch = NULL;
-+  }
-+}
-+
-+static void
-+seat_handle_name (void *data, struct wl_seat *seat, const char *name)
-+{
-+
-+}
-+
-+static const struct wl_seat_listener seat_listener = {
-+  seat_handle_capabilities,
-+  seat_handle_name
-+};
-+
-+static void
-+display_add_input (GstWlDisplay *d, uint32_t id)
-+{
-+  struct input *input;
-+
-+  input = calloc (1, sizeof (*input));
-+  if (input == NULL) {
-+    fprintf (stderr, "%s: out of memory\n", "gst-wayland-sink");
-+    exit (EXIT_FAILURE);
-+  }
-+  input->display = d;
-+  input->seat = wl_registry_bind (d->registry, id, &wl_seat_interface,
-+      MAX (d->seat_version, 3));
-+  input->touch_focus = NULL;
-+  input->pointer_focus = NULL;
-+  wl_list_init (&input->touch_point_list);
-+  wl_list_insert (d->input_list.prev, &input->link);
-+
-+  wl_seat_add_listener (input->seat, &seat_listener, input);
-+  wl_seat_set_user_data (input->seat, input);
-+
-+}
-+
- static void
- registry_handle_global (void *data, struct wl_registry *registry,
-     uint32_t id, const char *interface, uint32_t version)
-@@ -160,6 +459,9 @@ registry_handle_global (void *data, struct wl_registry *registry,
-   } else if (g_strcmp0 (interface, "wl_shm") == 0) {
-     self->shm = wl_registry_bind (registry, id, &wl_shm_interface, 1);
-     wl_shm_add_listener (self->shm, &shm_listener, self);
-+  } else if (g_strcmp0 (interface, "wl_seat") == 0) {
-+    self->seat_version = version;
-+    display_add_input (self, id);
-   } else if (g_strcmp0 (interface, "wl_scaler") == 0) {
-     self->scaler = wl_registry_bind (registry, id, &wl_scaler_interface, 2);
-   }
-@@ -237,6 +539,7 @@ gst_wl_display_new_existing (struct wl_display * display,
-   self->own_display = take_ownership;
-   self->queue = wl_display_create_queue (self->display);
-+  wl_list_init (&self->input_list);
-   self->registry = wl_display_get_registry (self->display);
-   wl_proxy_set_queue ((struct wl_proxy *) self->registry, self->queue);
-   wl_registry_add_listener (self->registry, &registry_listener, self);
-diff --git a/ext/wayland/wldisplay.h b/ext/wayland/wldisplay.h
-index 5505d60..d8c2cef 100644
---- a/ext/wayland/wldisplay.h
-+++ b/ext/wayland/wldisplay.h
-@@ -62,6 +62,10 @@ struct _GstWlDisplay
-   GMutex buffers_mutex;
-   GHashTable *buffers;
-   gboolean shutting_down;
-+
-+  struct wl_list input_list;
-+  int seat_version;
-+  uint32_t serial;
- };
- struct _GstWlDisplayClass
-diff --git a/ext/wayland/wlwindow.c b/ext/wayland/wlwindow.c
-index a964335..34ae385 100644
---- a/ext/wayland/wlwindow.c
-+++ b/ext/wayland/wlwindow.c
-@@ -111,6 +111,8 @@ gst_wl_window_new_internal (GstWlDisplay * display)
-   window->area_surface = wl_compositor_create_surface (display->compositor);
-   window->video_surface = wl_compositor_create_surface (display->compositor);
-+  wl_surface_set_user_data (window->area_surface, window);
-+  wl_surface_set_user_data (window->video_surface, window);
-   wl_proxy_set_queue ((struct wl_proxy *) window->area_surface, display->queue);
-   wl_proxy_set_queue ((struct wl_proxy *) window->video_surface,
--- 
-1.9.1
-
diff --git a/meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0001-gstwaylandsink-add-input-format-I420-support.patch b/meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0001-gstwaylandsink-add-input-format-I420-support.patch
deleted file mode 100644 (file)
index 507f57b..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-From 1364ee6e60eb09a3fe3b072fe4671c5d645e523a Mon Sep 17 00:00:00 2001
-From: Eric Ruei <e-ruei1@ti.com>
-Date: Wed, 22 Feb 2017 10:49:01 -0500
-Subject: [PATCH 1/3] gstwaylandsink: add input format I420 support
-
-The software-based video decoder produces the output in I420 format. To display
-the output without additional ARM MHz consumed in video format conversion,
-the function gst_wl_memory_construct_wl_buffer is enhanced to support I420 format.
-
-Signed-off-by: Eric Ruei <e-ruei1@ti.com>
----
- ext/wayland/wldrm.c | 41 ++++++++++++++++++++++++++++++++++-------
- 1 file changed, 34 insertions(+), 7 deletions(-)
-
-diff --git a/ext/wayland/wldrm.c b/ext/wayland/wldrm.c
-index 3dc9c21..ecbdc88 100644
---- a/ext/wayland/wldrm.c
-+++ b/ext/wayland/wldrm.c
-@@ -5,33 +5,60 @@
- #include <omap_drmif.h>
- #include <wayland-client.h>
-+GST_DEBUG_CATEGORY_EXTERN (gstwayland_debug);
-+#define GST_CAT_DEFAULT gstwayland_debug
-+
-+
- struct wl_buffer *
- gst_wl_drm_memory_construct_wl_buffer (GstMemory * mem, GstWlDisplay * display,
-     const GstVideoInfo * info)
- {
-   gint video_width = GST_VIDEO_INFO_WIDTH (info);
-   gint video_height = GST_VIDEO_INFO_HEIGHT (info);
-+  GstVideoFormat format = GST_VIDEO_INFO_FORMAT (info);
-   int fd = -1;
-   struct omap_bo *bo;
-   struct wl_buffer *buffer;
--
--  /* TODO get format, etc from caps.. and query device for
--   * supported formats, and make this all more flexible to
--   * cope with various formats:
--   */
--  uint32_t fourcc = GST_MAKE_FOURCC ('N', 'V', '1', '2');
-+  uint32_t fourcc;
-   uint32_t name;
-   /* note: wayland and mesa use the terminology:
-    *    stride - rowstride in bytes
-    *    pitch  - rowstride in pixels
-    */
-   uint32_t strides[3] = {
--    GST_ROUND_UP_4 (video_width), GST_ROUND_UP_4 (video_width), 0,
-+    GST_ROUND_UP_4 (video_width), 0, 0,
-   };
-   uint32_t offsets[3] = {
-     0, strides[0] * video_height, 0
-   };
-+  if (format == GST_VIDEO_FORMAT_NV12)
-+  {
-+    /* NV12 */
-+    fourcc = GST_MAKE_FOURCC ('N', 'V', '1', '2');
-+    strides[1] = GST_ROUND_UP_4 (video_width);
-+  }
-+  else if(format == GST_VIDEO_FORMAT_I420)
-+  {
-+    /* YUV420 */
-+    fourcc = GST_MAKE_FOURCC ('Y', 'U', '1', '2');
-+    strides[1] = strides[2] = GST_ROUND_UP_4 (video_width/2);
-+    offsets[2] = offsets[1] + strides[1] * video_height/2;
-+  }
-+  else
-+  {
-+
-+    GST_DEBUG ("Unsupported video format: %d", format);
-+    /*
-+     * There are two xRGB frames with width and height = 1 required in the begining of a video stream.
-+     * If we consider them as errot, then it will case libwayland-clent.so crashes
-+     * due to invalid error handling.
-+     * Consider them as NV12 until we can figure out a better solution
-+     */
-+    fourcc = GST_MAKE_FOURCC ('N', 'V', '1', '2');
-+    strides[1] = GST_ROUND_UP_4 (video_width);
-+  }
-+
-   fd = gst_fd_memory_get_fd (mem);
-   if (fd < 0 ) {
--- 
-1.9.1
-
diff --git a/meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0002-kmssink-remove-DCE-dependencies.patch b/meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0002-kmssink-remove-DCE-dependencies.patch
deleted file mode 100644 (file)
index 308a849..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-From 68936c7fb864440bb4d2ab737a651888ac7c253a Mon Sep 17 00:00:00 2001
-From: Eric Ruei <e-ruei1@ti.com>
-Date: Fri, 17 Mar 2017 10:42:32 -0400
-Subject: [PATCH 2/3] kmssink: remove DCE dependencies
-
-Replace DCE related API calls to libdrm and omapdrm API calls
-to decouple DCE from kmssink
-
-Signed-off-by: Eric Ruei <e-ruei1@ti.com>
----
- configure.ac         |  1 -
- sys/kms/Makefile.am  |  2 --
- sys/kms/gstkmssink.c | 17 +++++++++++++----
- 3 files changed, 13 insertions(+), 7 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index f93d52d..a6f93a5 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -2321,7 +2321,6 @@ dnl *** kms ***
- translit(dnm, m, l) AM_CONDITIONAL(USE_KMS, true)
- AG_GST_CHECK_FEATURE(KMS, [kmssink], kms, [
- PKG_CHECK_MODULES([DRM], [libdrm libdrm_omap], HAVE_KMS=yes, HAVE_KMS=no)
--PKG_CHECK_MODULES(LIBDCE, [libdce >= 1.0.0], HAVE_KMS=yes, HAVE_KMS=no)
- AC_SUBST(DRM_CFLAGS)
- AC_SUBST(DRM_LIBS)
- ])
-diff --git a/sys/kms/Makefile.am b/sys/kms/Makefile.am
-index 6d56073..cc7353e 100644
---- a/sys/kms/Makefile.am
-+++ b/sys/kms/Makefile.am
-@@ -9,7 +9,6 @@ libgstkmssink_la_CFLAGS = \
-       $(GST_PLUGINS_BAD_CFLAGS) \
-       $(GST_PLUGINS_BASE_CFLAGS) \
-       $(GST_BASE_CFLAGS) \
--      $(LIBDCE_CFLAGS) \
-       $(GST_CFLAGS) \
-       $(DRM_CFLAGS)
-@@ -17,7 +16,6 @@ libgstkmssink_la_LIBADD = \
-       $(GST_PLUGINS_BASE_LIBS) \
-       $(GST_BASE_LIBS) \
-       $(GST_LIBS) \
--      $(LIBDCE_LIBS) \
-       $(DRM_LIBS) \
-       -lgstvideo-$(GST_API_VERSION) \
-       $(top_builddir)/gst-libs/gst/drm/libgstdrm-$(GST_API_VERSION).la
-diff --git a/sys/kms/gstkmssink.c b/sys/kms/gstkmssink.c
-index 17e6407..9795bdf 100644
---- a/sys/kms/gstkmssink.c
-+++ b/sys/kms/gstkmssink.c
-@@ -31,7 +31,6 @@
- #include "gstkmssink.h"
- #include "gstkmsbufferpriv.h"
--#include <libdce.h>
- #include <omap_drm.h>
- #include <omap_drmif.h>
- #include <xf86drmMode.h>
-@@ -516,13 +515,18 @@ gst_kms_sink_start (GstBaseSink * bsink)
-   sink = GST_KMS_SINK (bsink);
--  drm_dev = dce_init ();
-+  drm_fd = open("/dev/dri/card0", O_RDWR | O_CLOEXEC);
-+  if(drm_fd == NULL)
-+    goto drm_failed;
-+  else {
-+    drm_dev = omap_device_new(drm_fd);
-+  }
-+
-   if (drm_dev == NULL)
-     goto device_failed;
-   else {
-+    sink->fd = drm_fd;
-     sink->dev = drm_dev;
--    sink->fd = dce_get_fd ();
--    drm_fd = dce_get_fd ();
-   }
-   sink->resources = drmModeGetResources (sink->fd);
-@@ -539,6 +543,11 @@ fail:
-   gst_kms_sink_reset (sink);
-   return FALSE;
-+drm_failed:
-+  GST_ELEMENT_ERROR (sink, RESOURCE, FAILED,
-+      (NULL), ("drmOpen failed"));
-+  goto fail;
-+
- device_failed:
-   GST_ELEMENT_ERROR (sink, RESOURCE, FAILED,
-       (NULL), ("omap_device_new failed"));
--- 
-1.9.1
-
diff --git a/meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0002-parsers-Pick-previos-bug-fixes-on-different-parsers.patch b/meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0002-parsers-Pick-previos-bug-fixes-on-different-parsers.patch
deleted file mode 100644 (file)
index 707cfc2..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-From c748e947ff35c4137178aef9bf229e0c67952982 Mon Sep 17 00:00:00 2001
-From: Pooja Prajod <a0132412@ti.com>
-Date: Fri, 20 Jan 2017 14:57:29 +0530
-Subject: [PATCH 2/5] parsers: Pick previos bug fixes on different parsers
-
-The following bug fixes which were previously identified are picked :
-1. Increase rank for vc1parse and jpegparse
-2. Modify h264 and mpeg4 parsers to interpolate pts
-3. Fix create() width and height calculation on h264parse
-
-Signed-off-by: Pooja Prajod <a0132412@ti.com>
----
- gst/jpegformat/gstjpegformat.c        |  2 +-
- gst/jpegformat/gstjpegparse.c         |  2 +-
- gst/videoparsers/gsth264parse.c       | 22 +++++++---------------
- gst/videoparsers/gstmpeg4videoparse.c |  2 +-
- gst/videoparsers/gstmpegvideoparse.c  |  2 +-
- gst/videoparsers/plugin.c             |  2 +-
- 6 files changed, 12 insertions(+), 20 deletions(-)
-
-diff --git a/gst/jpegformat/gstjpegformat.c b/gst/jpegformat/gstjpegformat.c
-index b410466..ecb9311 100644
---- a/gst/jpegformat/gstjpegformat.c
-+++ b/gst/jpegformat/gstjpegformat.c
-@@ -30,7 +30,7 @@
- static gboolean
- plugin_init (GstPlugin * plugin)
- {
--  if (!gst_element_register (plugin, "jpegparse", GST_RANK_NONE,
-+  if (!gst_element_register (plugin, "jpegparse", GST_RANK_PRIMARY + 2,
-           GST_TYPE_JPEG_PARSE))
-     return FALSE;
-   if (!gst_element_register (plugin, "jifmux", GST_RANK_SECONDARY,
-diff --git a/gst/jpegformat/gstjpegparse.c b/gst/jpegformat/gstjpegparse.c
-index 77e53a6..5bfba7b 100644
---- a/gst/jpegformat/gstjpegparse.c
-+++ b/gst/jpegformat/gstjpegparse.c
-@@ -151,7 +151,7 @@ gst_jpeg_parse_class_init (GstJpegParseClass * klass)
-   gst_element_class_set_static_metadata (gstelement_class,
-       "JPEG stream parser",
--      "Video/Parser",
-+      "Codec/Parser/Video",
-       "Parse JPEG images into single-frame buffers",
-       "Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>");
-diff --git a/gst/videoparsers/gsth264parse.c b/gst/videoparsers/gsth264parse.c
-index 05b6b75..6fe2914 100644
---- a/gst/videoparsers/gsth264parse.c
-+++ b/gst/videoparsers/gsth264parse.c
-@@ -162,7 +162,7 @@ static void
- gst_h264_parse_init (GstH264Parse * h264parse)
- {
-   h264parse->frame_out = gst_adapter_new ();
--  gst_base_parse_set_pts_interpolation (GST_BASE_PARSE (h264parse), FALSE);
-+  gst_base_parse_set_pts_interpolation (GST_BASE_PARSE (h264parse), TRUE);
-   GST_PAD_SET_ACCEPT_INTERSECT (GST_BASE_PARSE_SINK_PAD (h264parse));
-   GST_PAD_SET_ACCEPT_TEMPLATE (GST_BASE_PARSE_SINK_PAD (h264parse));
- }
-@@ -1722,13 +1722,8 @@ gst_h264_parse_update_src_caps (GstH264Parse * h264parse, GstCaps * caps)
-     gint fps_num, fps_den;
-     gint par_n, par_d;
--    if (sps->frame_cropping_flag) {
--      crop_width = sps->crop_rect_width;
--      crop_height = sps->crop_rect_height;
--    } else {
--      crop_width = sps->width;
--      crop_height = sps->height;
--    }
-+    crop_width = (sps->crop_rect_width > sps->width)? sps->crop_rect_width: sps->width;
-+    crop_height = (sps->crop_rect_height > sps->height)? sps->crop_rect_height: sps->height;
-     if (G_UNLIKELY (h264parse->width != crop_width ||
-             h264parse->height != crop_height)) {
-@@ -1762,7 +1757,7 @@ gst_h264_parse_update_src_caps (GstH264Parse * h264parse, GstCaps * caps)
-     }
-     if (G_UNLIKELY (modified || h264parse->update_caps)) {
--      gint width, height;
-+      gint width=0, height=0;
-       GstClockTime latency;
-       const gchar *caps_mview_mode = NULL;
-@@ -1774,16 +1769,13 @@ gst_h264_parse_update_src_caps (GstH264Parse * h264parse, GstCaps * caps)
-       caps = gst_caps_copy (sink_caps);
--      /* sps should give this but upstream overrides */
-       if (s && gst_structure_has_field (s, "width"))
-         gst_structure_get_int (s, "width", &width);
--      else
--        width = h264parse->width;
--
-+      width = (width > h264parse->width)? width: h264parse->width;
-+     
-       if (s && gst_structure_has_field (s, "height"))
-         gst_structure_get_int (s, "height", &height);
--      else
--        height = h264parse->height;
-+      height = (height > h264parse->height)? height: h264parse->height;
-       if (s == NULL ||
-           !gst_structure_get_fraction (s, "pixel-aspect-ratio", &par_n,
-diff --git a/gst/videoparsers/gstmpeg4videoparse.c b/gst/videoparsers/gstmpeg4videoparse.c
-index a1fd3b2..7912254 100644
---- a/gst/videoparsers/gstmpeg4videoparse.c
-+++ b/gst/videoparsers/gstmpeg4videoparse.c
-@@ -185,7 +185,7 @@ gst_mpeg4vparse_init (GstMpeg4VParse * parse)
-   parse->interval = DEFAULT_CONFIG_INTERVAL;
-   parse->last_report = GST_CLOCK_TIME_NONE;
--  gst_base_parse_set_pts_interpolation (GST_BASE_PARSE (parse), FALSE);
-+  gst_base_parse_set_pts_interpolation (GST_BASE_PARSE (parse), TRUE);
-   GST_PAD_SET_ACCEPT_INTERSECT (GST_BASE_PARSE_SINK_PAD (parse));
-   GST_PAD_SET_ACCEPT_TEMPLATE (GST_BASE_PARSE_SINK_PAD (parse));
- }
-diff --git a/gst/videoparsers/gstmpegvideoparse.c b/gst/videoparsers/gstmpegvideoparse.c
-index bf71a3e..f203cca 100644
---- a/gst/videoparsers/gstmpegvideoparse.c
-+++ b/gst/videoparsers/gstmpegvideoparse.c
-@@ -175,7 +175,7 @@ gst_mpegv_parse_init (GstMpegvParse * parse)
- {
-   parse->config_flags = FLAG_NONE;
--  gst_base_parse_set_pts_interpolation (GST_BASE_PARSE (parse), FALSE);
-+  gst_base_parse_set_pts_interpolation (GST_BASE_PARSE (parse), TRUE);
-   GST_PAD_SET_ACCEPT_INTERSECT (GST_BASE_PARSE_SINK_PAD (parse));
-   GST_PAD_SET_ACCEPT_TEMPLATE (GST_BASE_PARSE_SINK_PAD (parse));
- }
-diff --git a/gst/videoparsers/plugin.c b/gst/videoparsers/plugin.c
-index 79d1df6..fb866b5 100644
---- a/gst/videoparsers/plugin.c
-+++ b/gst/videoparsers/plugin.c
-@@ -51,7 +51,7 @@ plugin_init (GstPlugin * plugin)
-   ret |= gst_element_register (plugin, "h265parse",
-       GST_RANK_SECONDARY, GST_TYPE_H265_PARSE);
-   ret |= gst_element_register (plugin, "vc1parse",
--      GST_RANK_NONE, GST_TYPE_VC1_PARSE);
-+      GST_RANK_PRIMARY + 2, GST_TYPE_VC1_PARSE);
-   return ret;
- }
--- 
-1.9.1
-
diff --git a/meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0003-gstkmssink-Add-support-for-KMS-based-sink.patch b/meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0003-gstkmssink-Add-support-for-KMS-based-sink.patch
deleted file mode 100644 (file)
index 1068fda..0000000
+++ /dev/null
@@ -1,1592 +0,0 @@
-From 44ba6f9839a410e981c9c941f099316ebfac2659 Mon Sep 17 00:00:00 2001
-From: Pooja Prajod <a0132412@ti.com>
-Date: Fri, 20 Jan 2017 16:18:22 +0530
-Subject: [PATCH 3/5] gstkmssink: Add support for KMS based sink
-
-The following features are enabled:
-1. Add support for kmssink
-2. Fix memory leak by using API's that do not hold
-   reference to GstMemory
-3. Restrict the number of buffers that will be allocated
-   by kmssink bufferpool
-4. Use Atomic mode setting instead of SetPlane
-5. Store encoder and plane data as static data to enable
-   same process looping usecase
-6. Handle usecase where display is disabled by default
-
-Signed-off-by: Pooja Prajod <a0132412@ti.com>
----
- configure.ac               |  14 +
- sys/Makefile.am            |  10 +-
- sys/kms/Makefile.am        |  28 ++
- sys/kms/gstdrmutils.c      | 347 +++++++++++++++++++++
- sys/kms/gstdrmutils.h      |  50 +++
- sys/kms/gstkmsbufferpriv.c | 121 ++++++++
- sys/kms/gstkmsbufferpriv.h |  64 ++++
- sys/kms/gstkmssink.c       | 740 +++++++++++++++++++++++++++++++++++++++++++++
- sys/kms/gstkmssink.h       |  92 ++++++
- 9 files changed, 1464 insertions(+), 2 deletions(-)
- create mode 100644 sys/kms/Makefile.am
- create mode 100644 sys/kms/gstdrmutils.c
- create mode 100644 sys/kms/gstdrmutils.h
- create mode 100644 sys/kms/gstkmsbufferpriv.c
- create mode 100644 sys/kms/gstkmsbufferpriv.h
- create mode 100644 sys/kms/gstkmssink.c
- create mode 100644 sys/kms/gstkmssink.h
-
-diff --git a/configure.ac b/configure.ac
-index e254605..9fdfbc7 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -2324,6 +2324,18 @@ AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
-   AC_SUBST(TIGER_LIBS)
- ],,,[AM_CONDITIONAL(USE_TIGER, false)])
-+      
-+      
-+dnl *** kms ***
-+translit(dnm, m, l) AM_CONDITIONAL(USE_KMS, true)
-+AG_GST_CHECK_FEATURE(KMS, [kmssink], kms, [
-+PKG_CHECK_MODULES([DRM], [libdrm libdrm_omap], HAVE_KMS=yes, HAVE_KMS=no)
-+PKG_CHECK_MODULES(LIBDCE, [libdce >= 1.0.0], HAVE_KMS=yes, HAVE_KMS=no)
-+AC_SUBST(DRM_CFLAGS)
-+AC_SUBST(DRM_LIBS)
-+])
-+
-+
- dnl *** ladspa ***
- translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
- AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
-@@ -3383,6 +3395,7 @@ AM_CONDITIONAL(USE_GTK3_GL, false)
- AM_CONDITIONAL(USE_HLS, false)
- AM_CONDITIONAL(USE_KATE, false)
- AM_CONDITIONAL(USE_TIGER, false)
-+AM_CONDITIONAL(USE_KMS, false)
- AM_CONDITIONAL(USE_LADSPA, false)
- AM_CONDITIONAL(USE_LV2, false)
- AM_CONDITIONAL(USE_LIBDE265, false)
-@@ -3632,6 +3645,7 @@ sys/fbdev/Makefile
- sys/linsys/Makefile
- sys/nvenc/Makefile
- sys/opensles/Makefile
-+sys/kms/Makefile
- sys/shm/Makefile
- sys/tinyalsa/Makefile
- sys/uvch264/Makefile
-diff --git a/sys/Makefile.am b/sys/Makefile.am
-index 32f79fb..325b4af 100644
---- a/sys/Makefile.am
-+++ b/sys/Makefile.am
-@@ -87,6 +87,12 @@ PVR_DIR=pvr2d
- else
- PVR_DIR=
- endif
-+      
-+if USE_KMS
-+KMS_DIR=kms
-+else
-+KMS_DIR=
-+endif
- if USE_SHM
- SHM_DIR=shm
-@@ -148,10 +154,10 @@ else
- TINYALSA_DIR=
- endif
--SUBDIRS = $(ACM_DIR) $(ANDROID_MEDIA_DIR) $(APPLE_MEDIA_DIR) $(AVC_DIR) $(BLUEZ_DIR) $(D3DVIDEOSINK_DIR) $(DECKLINK_DIR) $(DIRECTSOUND_DIR) $(WINKS_DIR) $(DVB_DIR) $(FBDEV_DIR) $(LINSYS_DIR) $(OPENSLES_DIR) $(PVR_DIR) $(SHM_DIR) $(UVCH264_DIR) $(VCD_DIR) $(VDPAU_DIR) $(WININET_DIR) $(WINSCREENCAP_DIR) $(WASAPI_DIR) $(NVENC_DIR) $(TINYALSA_DIR)
-+SUBDIRS = $(ACM_DIR) $(ANDROID_MEDIA_DIR) $(APPLE_MEDIA_DIR) $(AVC_DIR) $(BLUEZ_DIR) $(D3DVIDEOSINK_DIR) $(DECKLINK_DIR) $(DIRECTSOUND_DIR) $(WINKS_DIR) $(DVB_DIR) $(FBDEV_DIR) $(LINSYS_DIR) $(OPENSLES_DIR) $(PVR_DIR) $(KMS_DIR) $(SHM_DIR) $(UVCH264_DIR) $(VCD_DIR) $(VDPAU_DIR) $(WININET_DIR) $(WINSCREENCAP_DIR) $(WASAPI_DIR) $(NVENC_DIR) $(TINYALSA_DIR)
- DIST_SUBDIRS = acmenc acmmp3dec androidmedia applemedia applemedia-nonpublic avc bluez d3dvideosink decklink directsound dvb linsys fbdev dshowdecwrapper dshowsrcwrapper dshowvideosink \
--              opensles pvr2d shm uvch264 vcd vdpau wasapi wininet winks winscreencap \
-+              opensles pvr2d kms shm uvch264 vcd vdpau wasapi wininet winks winscreencap \
-               nvenc tinyalsa
- include $(top_srcdir)/common/parallel-subdirs.mak
-diff --git a/sys/kms/Makefile.am b/sys/kms/Makefile.am
-new file mode 100644
-index 0000000..6d56073
---- /dev/null
-+++ b/sys/kms/Makefile.am
-@@ -0,0 +1,28 @@
-+plugin_LTLIBRARIES = libgstkmssink.la
-+
-+libgstkmssink_la_SOURCES = \
-+      gstkmssink.c \
-+      gstkmsbufferpriv.c \
-+      gstdrmutils.c
-+
-+libgstkmssink_la_CFLAGS = \
-+      $(GST_PLUGINS_BAD_CFLAGS) \
-+      $(GST_PLUGINS_BASE_CFLAGS) \
-+      $(GST_BASE_CFLAGS) \
-+      $(LIBDCE_CFLAGS) \
-+      $(GST_CFLAGS) \
-+      $(DRM_CFLAGS)
-+
-+libgstkmssink_la_LIBADD = \
-+      $(GST_PLUGINS_BASE_LIBS) \
-+      $(GST_BASE_LIBS) \
-+      $(GST_LIBS) \
-+      $(LIBDCE_LIBS) \
-+      $(DRM_LIBS) \
-+      -lgstvideo-$(GST_API_VERSION) \
-+      $(top_builddir)/gst-libs/gst/drm/libgstdrm-$(GST_API_VERSION).la
-+
-+libgstkmssink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-+libgstkmssink_la_LIBTOOLFLAGS = --tag=disable-static
-+
-+noinst_HEADERS = gstkmssink.h gstdrmutils.h gstkmsbufferpriv.h
-diff --git a/sys/kms/gstdrmutils.c b/sys/kms/gstdrmutils.c
-new file mode 100644
-index 0000000..0e67a48
---- /dev/null
-+++ b/sys/kms/gstdrmutils.c
-@@ -0,0 +1,347 @@
-+/* GStreamer
-+ *
-+ * Copyright (C) 2012 Texas Instruments
-+ * Copyright (C) 2012 Collabora Ltd
-+ *
-+ * Authors:
-+ *  Alessandro Decina <alessandro.decina@collabora.co.uk>
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Library General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2 of the License, or (at your option) any later version.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+ * Library General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Library General Public
-+ * License along with this library; if not, write to the
-+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-+ * Boston, MA 02111-1307, USA.
-+ */
-+
-+#include <gst/gst.h>
-+#include "gstdrmutils.h"
-+
-+static int stored_enc = 0;
-+static drmModeEncoder *enc;
-+static struct plane_data *stored_plane;
-+
-+GST_DEBUG_CATEGORY_EXTERN (gst_debug_kms_sink);
-+#define GST_CAT_DEFAULT gst_debug_kms_sink
-+
-+void
-+gst_drm_connector_cleanup (int fd, struct connector *c)
-+{
-+  if (c->connector) {
-+    drmModeFreeConnector (c->connector);
-+    c->connector = NULL;
-+  }
-+
-+  if (c->fb_id) {
-+    drmModeRmFB (fd, c->fb_id);
-+    c->fb_id = 0;
-+  }
-+  if (c->fb_bo) {
-+    omap_bo_del (c->fb_bo);
-+    c->fb_bo = NULL;
-+  }
-+}
-+
-+
-+static gboolean
-+gst_drm_connector_find_mode_and_plane_helper (int fd,
-+    struct omap_device *dev, int width, int height,
-+    drmModeRes * resources, drmModePlaneRes * plane_resources,
-+    struct connector *c)
-+{
-+  int i, best_area = 0, ret;
-+  struct drm_set_client_cap req;
-+  unsigned int j;
-+  int32_t crtc;
-+
-+  gst_drm_connector_cleanup (fd, c);
-+
-+  req.capability = DRM_CLIENT_CAP_ATOMIC;
-+  req.value = 1;
-+  ret = ioctl(fd, DRM_IOCTL_SET_CLIENT_CAP, &req);
-+  if(ret < 0) {
-+    GST_DEBUG("drm set atomic cap failed");
-+    goto fail;
-+  }
-+
-+  /* First, find the connector & mode */
-+  c->connector = drmModeGetConnector (fd, c->id);
-+  if (!c->connector)
-+    goto error_no_connector;
-+
-+  if (!c->connector->count_modes)
-+    goto error_no_mode;
-+
-+  /* just look for the highest resolution: */
-+  for (i = 0; i < c->connector->count_modes; i++) {
-+    drmModeModeInfo *mode = &c->connector->modes[i];
-+    int area = mode->hdisplay * mode->vdisplay;
-+
-+    if (area > best_area) {
-+      c->mode = mode;
-+      best_area = area;
-+    }
-+  }
-+
-+  if (c->mode == NULL) {
-+    /* XXX: just pick the first available mode. Not sure this is correct... */
-+    c->mode = &c->connector->modes[0];
-+#if 0
-+    goto error_no_mode;
-+#endif
-+  }
-+
-+  /* Now get the encoder */
-+
-+  if (stored_enc) {
-+    c->encoder = enc;
-+    c->connector->encoder_id = stored_enc;
-+  } else {
-+    c->encoder = drmModeGetEncoder (fd, c->connector->encoder_id);
-+    enc = c->encoder;
-+    stored_enc = c->connector->encoder_id;
-+  }
-+
-+  if (!c->encoder) {
-+    for (i = 0; i < c->connector->count_encoders; ++i) {
-+       c->encoder = drmModeGetEncoder(fd, c->connector->encoders[i]);
-+       if (!c->encoder) {
-+          GST_DEBUG ("Cannot retrieve encoder %u:%u (%d): %m\n",
-+              i, c->connector->encoders[i], errno);
-+          continue;
-+       }
-+       /* iterate all global CRTCs */
-+       for (j = 0; j < resources->count_crtcs; ++j) {
-+          /* check whether this CRTC works with the encoder */
-+          if (!(c->encoder->possible_crtcs & (1 << j)))
-+             continue;
-+          crtc = resources->crtcs[j];
-+          break;
-+       }
-+      if (crtc >= 0) {
-+         enc = c->encoder;
-+         stored_enc = c->connector->encoder_id;
-+         c->crtc = crtc;
-+         goto found_encoder;
-+      }
-+    }
-+  }
-+
-+found_encoder:
-+
-+  if (!c->encoder)
-+    goto error_no_encoder;
-+
-+  if (c->crtc == -1)
-+    c->crtc = c->encoder->crtc_id;
-+
-+  /* and figure out which crtc index it is: */
-+  c->pipe = -1;
-+  for (i = 0; i < resources->count_crtcs; i++) {
-+    if (c->crtc == (int) resources->crtcs[i]) {
-+      c->pipe = i;
-+      break;
-+    }
-+  }
-+
-+  if (c->pipe == -1)
-+    goto error_no_crtc;
-+
-+  if (stored_plane) {
-+    c->pdata = stored_plane;
-+  } else {
-+
-+    c->pdata = calloc(sizeof(struct plane_data), 1);
-+    for (i = 0; i < plane_resources->count_planes; i++) {
-+      drmModePlane *plane = drmModeGetPlane (fd, plane_resources->planes[i]);
-+      int propc;
-+      if (plane->possible_crtcs & (1 << c->pipe)) {
-+        drmModeObjectPropertiesPtr props = drmModeObjectGetProperties(fd, plane_resources->planes[i], DRM_MODE_OBJECT_PLANE);
-+        for(propc = 0; propc < props->count_props; propc++) {
-+          drmModePropertyPtr prop = drmModeGetProperty(fd, props->props[propc]);
-+          if(strcmp(prop->name, "FB_ID") == 0)
-+            c->pdata[0].fb_id_property = props->props[propc];
-+        }
-+        c->pdata[0].plane = plane_resources->planes[i];
-+        stored_plane = c->pdata;
-+        break;
-+      }
-+    }
-+    if (stored_plane == NULL)
-+      goto error_no_plane;
-+  }
-+  c->fb_bo = omap_bo_new (dev, best_area * 2, OMAP_BO_WC);
-+  if (c->fb_bo) {
-+    uint32_t fourcc = DRM_FORMAT_RGB565;
-+    uint32_t handles[4] = { omap_bo_handle (c->fb_bo) };
-+    uint32_t pitches[4] = { c->mode->hdisplay * 2 };
-+    uint32_t offsets[4] = { 0 };
-+    ret = drmModeAddFB2 (fd, c->mode->hdisplay, c->mode->vdisplay,
-+        fourcc, handles, pitches, offsets, &c->fb_id, 0);
-+    if (ret) {
-+      GST_DEBUG ("RGB565 AddFb2 failed");
-+    }
-+  }
-+
-+  /* now set the desired mode: */
-+  ret = drmModeSetCrtc (fd, c->crtc, c->fb_id, 0, 0, &c->id, 1, c->mode);
-+  if (ret) {
-+    GST_DEBUG ("SetCrtc failed");
-+  }
-+
-+  return TRUE;
-+
-+fail:
-+  gst_drm_connector_cleanup (fd, c);
-+
-+  return FALSE;
-+
-+error_no_connector:
-+  GST_DEBUG ("could not get connector %s", strerror (errno));
-+  goto fail;
-+
-+error_no_mode:
-+  GST_DEBUG ("could not find mode %dx%d (count_modes %d)",
-+      width, height, c->connector->count_modes);
-+  goto fail;
-+
-+error_no_encoder:
-+  GST_DEBUG ("could not get encoder: %s", strerror (errno));
-+  goto fail;
-+
-+error_no_crtc:
-+  GST_DEBUG ("couldn't find a crtc");
-+  goto fail;
-+
-+error_no_plane:
-+  GST_DEBUG ("couldn't find a plane");
-+  goto fail;
-+}
-+
-+gboolean
-+gst_drm_connector_find_mode_and_plane (int fd,
-+    struct omap_device *dev, int width, int height,
-+    drmModeRes * resources, drmModePlaneRes * plane_resources,
-+    struct connector *c)
-+{
-+  int i;
-+  gboolean found = FALSE;
-+
-+  /* First, find the connector & mode */
-+  if (c->id == 0) {
-+    /* Any connector */
-+    GST_DEBUG ("Any connector, %d available", resources->count_connectors);
-+    for (i = 0; i < resources->count_connectors; i++) {
-+      GST_DEBUG ("  %d", resources->connectors[i]);
-+    }
-+    for (i = 0; i < resources->count_connectors; i++) {
-+      GST_DEBUG ("Trying connector %d: %d", i, resources->connectors[i]);
-+      c->id = resources->connectors[i];
-+      if (gst_drm_connector_find_mode_and_plane_helper (fd, dev, width, height,
-+              resources, plane_resources, c)) {
-+        GST_DEBUG ("Found suitable connector");
-+        found = TRUE;
-+        break;
-+      }
-+      GST_DEBUG ("Connector not suitable");
-+    }
-+  } else {
-+    /* A specific connector */
-+    GST_DEBUG ("Connector %d", c->id);
-+    found =
-+        gst_drm_connector_find_mode_and_plane_helper (fd, dev, width, height,
-+        resources, plane_resources, c);
-+  }
-+
-+  return found;
-+}
-+
-+/* table nicked off libdrm's modetest.c */
-+/* *INDENT-OFF* */
-+static const struct {
-+  int type_id;
-+  const char *type_name;
-+} connector_type_names[] = {
-+  { DRM_MODE_CONNECTOR_Unknown, "unknown" },
-+  { DRM_MODE_CONNECTOR_VGA, "VGA" },
-+  { DRM_MODE_CONNECTOR_DVII, "DVI-I" },
-+  { DRM_MODE_CONNECTOR_DVID, "DVI-D" },
-+  { DRM_MODE_CONNECTOR_DVIA, "DVI-A" },
-+  { DRM_MODE_CONNECTOR_Composite, "composite" },
-+  { DRM_MODE_CONNECTOR_SVIDEO, "s-video" },
-+  { DRM_MODE_CONNECTOR_LVDS, "LVDS" },
-+  { DRM_MODE_CONNECTOR_Component, "component" },
-+  { DRM_MODE_CONNECTOR_9PinDIN, "9-pin-DIN" },
-+  { DRM_MODE_CONNECTOR_DisplayPort, "displayport" },
-+  { DRM_MODE_CONNECTOR_HDMIA, "HDMI-A" },
-+  { DRM_MODE_CONNECTOR_HDMIB, "HDMI-B" },
-+  { DRM_MODE_CONNECTOR_TV, "TV" },
-+  { DRM_MODE_CONNECTOR_eDP, "embedded-displayport" },
-+};
-+/* *INDENT-ON* */
-+
-+gboolean
-+gst_drm_connector_find_mode_and_plane_by_name (int fd,
-+    struct omap_device * dev, int width, int height,
-+    drmModeRes * resources, drmModePlaneRes * plane_resources,
-+    struct connector * c, const char *name)
-+{
-+  int i, n;
-+  char tmp[64];
-+  const char *type_name;
-+  int found[G_N_ELEMENTS (connector_type_names)] = { 0 };
-+
-+  /* Find connector from name */
-+  for (i = 0; i < resources->count_connectors; i++) {
-+    GST_DEBUG ("Trying connector %d: %d", i, resources->connectors[i]);
-+    c->id = resources->connectors[i];
-+    c->connector = drmModeGetConnector (fd, c->id);
-+    if (!c->connector)
-+      continue;
-+
-+    /* Find type name from this connector */
-+    for (n = 0; n < G_N_ELEMENTS (connector_type_names); n++)
-+      if (connector_type_names[n].type_id == c->connector->connector_type)
-+        break;
-+    if (n == G_N_ELEMENTS (connector_type_names))
-+      continue;
-+
-+    type_name = connector_type_names[n].type_name;
-+    GST_DEBUG ("Connector %d has type %s", i, type_name);
-+    ++found[n];
-+
-+    drmModeFreeConnector (c->connector);
-+    c->connector = NULL;
-+
-+    /* Try a few different matches, such as modetest and xrandr
-+       output, and also a indexless one matching first found */
-+    snprintf (tmp, sizeof (tmp), "%s-%u", type_name, found[n]);
-+    if (!g_ascii_strcasecmp (tmp, name))
-+      goto found;
-+    snprintf (tmp, sizeof (tmp), "%s%u", type_name, found[n]);
-+    if (!g_ascii_strcasecmp (tmp, name))
-+      goto found;
-+    if (!g_ascii_strcasecmp (name, type_name))
-+      goto found;
-+
-+    continue;
-+
-+  found:
-+    if (gst_drm_connector_find_mode_and_plane_helper (fd, dev, width, height,
-+            resources, plane_resources, c)) {
-+      GST_DEBUG ("Found suitable connector");
-+      return TRUE;
-+    }
-+    GST_DEBUG ("Connector not suitable");
-+  }
-+
-+  return FALSE;
-+}
-diff --git a/sys/kms/gstdrmutils.h b/sys/kms/gstdrmutils.h
-new file mode 100644
-index 0000000..ebc5fc6
---- /dev/null
-+++ b/sys/kms/gstdrmutils.h
-@@ -0,0 +1,50 @@
-+#ifndef __GST_DRMUTILS_H__
-+#define __GST_DRMUTILS_H__
-+
-+#include <fcntl.h>
-+#include <xf86drm.h>
-+#include <stdio.h>
-+#include <stdint.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <errno.h>
-+#include <unistd.h>
-+#include <assert.h>
-+#include <libdrm/drm.h>
-+#include <libdrm/drm_mode.h>
-+#include <xf86drmMode.h>
-+#include <omap_drm.h>
-+#include <omap_drmif.h>
-+#include <drm_fourcc.h>
-+#include <gst/gst.h>
-+#include <sys/ioctl.h>
-+
-+struct plane_data {
-+      int plane;
-+      int fb_id_property;
-+};
-+
-+struct connector {
-+      uint32_t id;
-+      char mode_str[64];
-+      drmModeConnector *connector;
-+      drmModeModeInfo *mode;
-+      drmModeEncoder *encoder;
-+      uint32_t fb_id;
-+      struct omap_bo *fb_bo;
-+      int crtc;
-+      int pipe;
-+        struct plane_data *pdata;
-+};
-+
-+void gst_drm_connector_cleanup (int fd, struct connector * c);
-+gboolean gst_drm_connector_find_mode_and_plane (int fd,
-+    struct omap_device * dev, int width, int height,
-+    drmModeRes * resources, drmModePlaneRes * plane_resources,
-+    struct connector *c);
-+gboolean gst_drm_connector_find_mode_and_plane_by_name (int fd,
-+    struct omap_device *dev, int width, int height,
-+    drmModeRes * resources, drmModePlaneRes * plane_resources,
-+    struct connector *c, const char *name);
-+
-+#endif /* __GST_DRMUTILS_H__ */
-diff --git a/sys/kms/gstkmsbufferpriv.c b/sys/kms/gstkmsbufferpriv.c
-new file mode 100644
-index 0000000..172a4c3
---- /dev/null
-+++ b/sys/kms/gstkmsbufferpriv.c
-@@ -0,0 +1,121 @@
-+/*
-+ * GStreamer
-+ *
-+ * Copyright (C) 2012 Texas Instruments
-+ * Copyright (C) 2012 Collabora Ltd
-+ *
-+ * Authors:
-+ *  Alessandro Decina <alessandro.decina@collabora.co.uk>
-+ *  Rob Clark <rob.clark@linaro.org>
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License as published by the Free Software Foundation
-+ * version 2.1 of the License.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * Lesser General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-+ */
-+
-+#ifdef HAVE_CONFIG_H
-+#include "config.h"
-+#endif
-+
-+#include <stdint.h>
-+#include <gst/gst.h>
-+#include <gst/allocators/allocators.h>
-+
-+#include <omap_drm.h>
-+#include <omap_drmif.h>
-+#include <xf86drmMode.h>
-+
-+#include "gstkmssink.h"
-+#include "gstkmsbufferpriv.h"
-+
-+static int
-+create_fb (GstKMSBufferPriv * priv, GstKMSSink * sink)
-+{
-+  /* TODO get format, etc from caps.. and query device for
-+   * supported formats, and make this all more flexible to
-+   * cope with various formats:
-+   */
-+  uint32_t fourcc = GST_MAKE_FOURCC ('N', 'V', '1', '2');
-+
-+  uint32_t handles[4] = {
-+    omap_bo_handle (priv->bo), omap_bo_handle (priv->bo),
-+  };
-+  uint32_t pitches[4] = {
-+    GST_ROUND_UP_4 (sink->input_width), GST_ROUND_UP_4 (sink->input_width),
-+  };
-+  uint32_t offsets[4] = {
-+    0, pitches[0] * sink->input_height
-+  };
-+
-+  return drmModeAddFB2 (priv->fd, sink->input_width, sink->input_height,
-+      fourcc, handles, pitches, offsets, &priv->fb_id, 0);
-+}
-+
-+/**
-+ * gst_kms_buffer_priv:
-+ * @sink: a #GstKMSSink
-+ * @buf: a pointer to #GstBuffer
-+ *
-+ * Checks if the @buf has a GstMetaDmaBuf metadata set. If it doesn't we return a NULL
-+ * indicating its not a dmabuf buffer. We maintain a hashtable with dmabuf fd as key and 
-+ * the GstKMSBufferPriv structure as value
-+ *
-+ * Returns: the #GstKMSBufferPriv
-+ *
-+ * Since: 1.2.?
-+ */
-+GstKMSBufferPriv *
-+gst_kms_buffer_priv (GstKMSSink * sink, GstBuffer * buf)
-+{
-+    struct omap_bo *bo;
-+    int fd;
-+    int fd_copy;
-+    GstKMSBufferPriv * priv;
-+    GstMemory *mem;
-+
-+    /* if it isn't a dmabuf buffer that we can import, then there
-+     * is nothing we can do with it:
-+     */
-+    mem = gst_buffer_peek_memory (buf, 0);
-+    fd_copy = gst_fd_memory_get_fd (mem); 
-+    if (fd_copy < 0) {
-+      GST_DEBUG_OBJECT (sink, "not importing non dmabuf buffer");
-+      return NULL;
-+    }
-+
-+    /* lookup the hashtable with fd as key. If present return bo & buffer structure */
-+    priv = g_hash_table_lookup (sink->kmsbufferpriv, (gpointer)fd_copy);
-+    if(priv) {
-+       return priv;
-+     }
-+
-+    priv = g_malloc0 (sizeof (GstKMSBufferPriv));
-+    bo = omap_bo_from_dmabuf (sink->dev, fd_copy);
-+    fd = sink->fd;
-+
-+      priv->bo = bo;
-+      priv->fd = fd;
-+
-+    if (create_fb (priv, sink)) {
-+      GST_WARNING_OBJECT (sink, "could not create framebuffer: %s",
-+          strerror (errno));
-+      g_free(priv);
-+      return NULL;
-+    }
-+
-+    /* if fd not present, write to hash table fd and the corresponding priv. */
-+    g_hash_table_insert(sink->kmsbufferpriv, (gpointer)fd_copy, priv); 
-+   
-+  
-+  return priv;
-+}
-diff --git a/sys/kms/gstkmsbufferpriv.h b/sys/kms/gstkmsbufferpriv.h
-new file mode 100644
-index 0000000..a1070da
---- /dev/null
-+++ b/sys/kms/gstkmsbufferpriv.h
-@@ -0,0 +1,64 @@
-+/*
-+ * GStreamer
-+ *
-+ * Copyright (C) 2012 Texas Instruments
-+ * Copyright (C) 2012 Collabora Ltd
-+ *
-+ * Authors:
-+ *  Alessandro Decina <alessandro.decina@collabora.co.uk>
-+ *  Rob Clark <rob.clark@linaro.org>
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License as published by the Free Software Foundation
-+ * version 2.1 of the License.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * Lesser General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-+ */
-+
-+#ifndef __GSTKMSBUFFERPRIV_H__
-+#define __GSTKMSBUFFERPRIV_H__
-+
-+#include <stdint.h>
-+#include <gst/gst.h>
-+
-+G_BEGIN_DECLS
-+
-+/*
-+ * per-buffer private data so kmssink can attach a drm_framebuffer
-+ * handle (fb_id) to a buffer, which gets deleted when the buffer
-+ * is finalized
-+ */
-+
-+#define GST_TYPE_KMS_BUFFER_PRIV      \
-+  (gst_kms_buffer_priv_get_type ())
-+#define GST_KMS_BUFFER_PRIV(obj)      \
-+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_KMS_BUFFER_PRIV, GstKMSBufferPriv))
-+#define GST_IS_KMS_BUFFER_PRIV(obj)     \
-+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_KMS_BUFFER_PRIV))
-+
-+
-+typedef struct
-+{
-+  struct omap_bo *bo;
-+  int fd;
-+  uint32_t fb_id;
-+}GstKMSBufferPriv;
-+
-+
-+GType gst_kms_buffer_priv_get_type (void);
-+
-+/* Returns a GstKMSBufferPriv, if it has a dmabuf fd metadata */
-+GstKMSBufferPriv * gst_kms_buffer_priv (GstKMSSink *sink, GstBuffer * buf);
-+
-+G_END_DECLS
-+
-+
-+#endif /* __GSTKMSBUFFERPRIV_H__ */
-diff --git a/sys/kms/gstkmssink.c b/sys/kms/gstkmssink.c
-new file mode 100644
-index 0000000..17e6407
---- /dev/null
-+++ b/sys/kms/gstkmssink.c
-@@ -0,0 +1,740 @@
-+/* GStreamer
-+ * Copyright (C) 2012 Texas Instruments
-+ * Copyright (C) 2012 Collabora Ltd
-+ *
-+ * Authors:
-+ *  Alessandro Decina <alessandro.decina@collabora.co.uk>
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Library General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2 of the License, or (at your option) any later version.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+ * Library General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Library General Public
-+ * License along with this library; if not, write to the
-+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-+ * Boston, MA 02111-1307, USA.
-+ *
-+ * Authors:
-+ *  Alessandro Decina <alessandro.decina@collabora.co.uk>
-+ */
-+
-+#ifdef HAVE_CONFIG_H
-+#include "config.h"
-+#endif
-+
-+#include "gstkmssink.h"
-+#include "gstkmsbufferpriv.h"
-+
-+#include <libdce.h>
-+#include <omap_drm.h>
-+#include <omap_drmif.h>
-+#include <xf86drmMode.h>
-+
-+static int drm_fd = -1;
-+static struct omap_device *drm_dev;
-+static int once =1;
-+
-+GST_DEBUG_CATEGORY (gst_debug_kms_sink);
-+#define GST_CAT_DEFAULT gst_debug_kms_sink
-+
-+G_DEFINE_TYPE (GstKMSSink, gst_kms_sink, GST_TYPE_VIDEO_SINK);
-+
-+static void gst_kms_sink_reset (GstKMSSink * sink);
-+
-+static GstStaticPadTemplate gst_kms_sink_template_factory =
-+GST_STATIC_PAD_TEMPLATE ("sink",
-+    GST_PAD_SINK,
-+    GST_PAD_ALWAYS,
-+    GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE("NV12"))
-+    );
-+
-+enum
-+{
-+  PROP_0,
-+  PROP_PIXEL_ASPECT_RATIO,
-+  PROP_FORCE_ASPECT_RATIO,
-+  PROP_SCALE,
-+  PROP_CONNECTOR,
-+  PROP_CONNECTOR_NAME,
-+};
-+
-+
-+static inline void
-+display_bufs_queue (GstKMSSink * sink, GstBuffer * buf)
-+{
-+  int i;
-+  for (i = 0; i < (NUM_DISPLAY_BUFS - 1); i++)
-+    gst_buffer_replace (&sink->display_bufs[i], sink->display_bufs[i + 1]);
-+  gst_buffer_replace (&sink->display_bufs[i], buf);
-+}
-+
-+static inline void
-+display_bufs_free (GstKMSSink * sink)
-+{
-+  int i;
-+  for (i = 0; i < NUM_DISPLAY_BUFS; i++)
-+    gst_buffer_replace (&sink->display_bufs[i], NULL);
-+}
-+
-+static gboolean
-+gst_kms_sink_calculate_aspect_ratio (GstKMSSink * sink, gint width,
-+    gint height, gint video_par_n, gint video_par_d)
-+{
-+  guint calculated_par_n;
-+  guint calculated_par_d;
-+
-+  if (!gst_video_calculate_display_ratio (&calculated_par_n, &calculated_par_d,
-+          width, height, video_par_n, video_par_d, 1, 1)) {
-+    GST_ELEMENT_ERROR (sink, CORE, NEGOTIATION, (NULL),
-+        ("Error calculating the output display ratio of the video."));
-+    return FALSE;
-+  }
-+  GST_DEBUG_OBJECT (sink,
-+      "video width/height: %dx%d, calculated display ratio: %d/%d",
-+      width, height, calculated_par_n, calculated_par_d);
-+
-+  /* now find a width x height that respects this display ratio.
-+   * prefer those that have one of w/h the same as the incoming video
-+   * using wd / hd = calculated_pad_n / calculated_par_d */
-+
-+  /* start with same height, because of interlaced video */
-+  /* check hd / calculated_par_d is an integer scale factor, and scale wd with the PAR */
-+  if (height % calculated_par_d == 0) {
-+    GST_DEBUG_OBJECT (sink, "keeping video height");
-+    GST_VIDEO_SINK_WIDTH (sink) = (guint)
-+        gst_util_uint64_scale_int (height, calculated_par_n, calculated_par_d);
-+    GST_VIDEO_SINK_HEIGHT (sink) = height;
-+  } else if (width % calculated_par_n == 0) {
-+    GST_DEBUG_OBJECT (sink, "keeping video width");
-+    GST_VIDEO_SINK_WIDTH (sink) = width;
-+    GST_VIDEO_SINK_HEIGHT (sink) = (guint)
-+        gst_util_uint64_scale_int (width, calculated_par_d, calculated_par_n);
-+  } else {
-+    GST_DEBUG_OBJECT (sink, "approximating while keeping video height");
-+    GST_VIDEO_SINK_WIDTH (sink) = (guint)
-+        gst_util_uint64_scale_int (height, calculated_par_n, calculated_par_d);
-+    GST_VIDEO_SINK_HEIGHT (sink) = height;
-+  }
-+  GST_DEBUG_OBJECT (sink, "scaling to %dx%d",
-+      GST_VIDEO_SINK_WIDTH (sink), GST_VIDEO_SINK_HEIGHT (sink));
-+
-+  return TRUE;
-+}
-+
-+static gboolean
-+gst_kms_sink_setcaps (GstBaseSink * bsink, GstCaps * caps)
-+{
-+  GstKMSSink *sink;
-+  gboolean ret = TRUE;
-+  gint width, height;
-+  gint fps_n, fps_d;
-+  gint par_n, par_d;
-+  GstVideoFormat format;
-+  GstVideoInfo info;
-+  GstStructure *conf;
-+  GstStructure *s;
-+  int size;
-+
-+  sink = GST_KMS_SINK (bsink);
-+
-+  ret = gst_video_info_from_caps (&info, caps);
-+  format = GST_VIDEO_INFO_FORMAT(&info);
-+  width = GST_VIDEO_INFO_WIDTH(&info);
-+  height = GST_VIDEO_INFO_HEIGHT(&info);
-+  fps_n = GST_VIDEO_INFO_FPS_N(&info);
-+  fps_d = GST_VIDEO_INFO_FPS_D(&info);
-+  par_n = GST_VIDEO_INFO_PAR_N(&info);
-+  par_d = GST_VIDEO_INFO_PAR_D(&info);
-+
-+  if (!ret)
-+    return FALSE;
-+
-+  if (width <= 0 || height <= 0) {
-+    GST_ELEMENT_ERROR (sink, CORE, NEGOTIATION, (NULL),
-+        ("Invalid image size."));
-+    return FALSE;
-+  }
-+
-+  sink->format = format;
-+  sink->par_n = par_n;
-+  sink->par_d = par_d;
-+  sink->src_rect.x = sink->src_rect.y = 0;
-+  sink->src_rect.w = width;
-+  sink->src_rect.h = height;
-+  sink->input_width = width;
-+  sink->input_height = height;
-+  size = info.size;
-+
-+  if (!sink->pool) {
-+    GstAllocator *allocator;
-+
-+    allocator = gst_drm_allocator_get ();
-+    sink->pool = gst_buffer_pool_new ();
-+    conf = gst_buffer_pool_get_config (GST_BUFFER_POOL(sink->pool));
-+    gst_buffer_pool_config_set_params (conf, caps, size, 0, 0);
-+    gst_buffer_pool_config_set_allocator (conf, allocator, NULL);
-+    gst_buffer_pool_set_config (GST_BUFFER_POOL(sink->pool), conf);
-+    if (allocator)
-+      gst_object_unref (allocator);
-+  }
-+
-+  sink->conn.crtc = -1;
-+  return TRUE;
-+}
-+
-+static void
-+gst_kms_sink_get_times (GstBaseSink * bsink, GstBuffer * buf,
-+    GstClockTime * start, GstClockTime * end)
-+{
-+  GstKMSSink *sink;
-+
-+  sink = GST_KMS_SINK (bsink);
-+
-+  if (GST_BUFFER_PTS_IS_VALID (buf)) {
-+    *start = GST_BUFFER_PTS (buf);
-+    if (GST_BUFFER_DURATION_IS_VALID (buf)) {
-+      *end = *start + GST_BUFFER_DURATION (buf);
-+    } else {
-+      if (sink->fps_n > 0) {
-+        *end = *start +
-+            gst_util_uint64_scale_int (GST_SECOND, sink->fps_d, sink->fps_n);
-+      }
-+    }
-+  }
-+}
-+
-+
-+static void page_flip_handler(int fd, unsigned int frame,
-+                  unsigned int sec, unsigned int usec, void *data)
-+{
-+        int *waiting_for_flip = data;
-+        *waiting_for_flip = 0;
-+}
-+
-+
-+static GstFlowReturn
-+gst_kms_sink_show_frame (GstVideoSink * vsink, GstBuffer * inbuf)
-+{
-+  GstKMSSink *sink = GST_KMS_SINK (vsink);
-+  GstBuffer *buf = NULL;
-+  GstKMSBufferPriv *priv;
-+  GstFlowReturn flow_ret = GST_FLOW_OK;
-+  int ret = 0;
-+  gint width, height;
-+  GstVideoRectangle *c = &sink->src_rect;
-+  int waiting_for_flip = 1;
-+
-+  fd_set fds;
-+  drmEventContext evctx = {
-+                          .version = DRM_EVENT_CONTEXT_VERSION,
-+                          .vblank_handler = 0,
-+                          .page_flip_handler = page_flip_handler,
-+                           };
-+
-+  g_mutex_lock (&sink->render_lock);
-+  GstVideoCropMeta* crop = gst_buffer_get_video_crop_meta (inbuf);
-+  if (crop){
-+    c->y = crop->y;
-+    c->x = crop->x;
-+
-+    if (crop->width >= 0) {
-+      width = crop->width;
-+    } else {
-+      width = sink->input_width;
-+    }
-+    if (crop->height >= 0){
-+      height = crop->height;
-+    } else {
-+      height = sink->input_height;
-+    }
-+  } else {
-+    width = sink->input_width;
-+    height = sink->input_height;
-+  }
-+
-+  c->w = width;
-+  c->h = height;
-+
-+
-+  if (!gst_kms_sink_calculate_aspect_ratio (sink, width, height,
-+              sink->par_n, sink->par_d))
-+    GST_DEBUG_OBJECT (sink, "calculate aspect ratio failed");
-+
-+
-+  GST_INFO_OBJECT (sink, "enter");
-+
-+  if (sink->conn.crtc == -1) {
-+    if (sink->conn_name) {
-+      if (!gst_drm_connector_find_mode_and_plane_by_name (sink->fd,
-+              sink->dev, sink->src_rect.w, sink->src_rect.h,
-+              sink->resources, sink->plane_resources, &sink->conn,
-+              sink->conn_name))
-+        goto connector_not_found;
-+    } else {
-+      sink->conn.id = sink->conn_id;
-+      if (!gst_drm_connector_find_mode_and_plane (sink->fd,
-+              sink->dev, sink->src_rect.w, sink->src_rect.h,
-+              sink->resources, sink->plane_resources, &sink->conn))
-+        goto connector_not_found;
-+    }
-+   once = 1;
-+  }
-+
-+  priv = gst_kms_buffer_priv (sink, inbuf);
-+
-+  if (priv) {
-+    buf = inbuf;
-+  } else {
-+    GST_LOG_OBJECT (sink, "not a KMS buffer, slow-path!");
-+    gst_buffer_pool_acquire_buffer (sink->pool, &buf, NULL);
-+    if (buf) {
-+      GST_BUFFER_PTS (buf) = GST_BUFFER_PTS (inbuf);
-+      GST_BUFFER_DURATION (buf) = GST_BUFFER_DURATION (inbuf);
-+      gst_buffer_copy_into (buf, inbuf, GST_BUFFER_COPY_DEEP, 0 ,-1);
-+      priv = gst_kms_buffer_priv (sink, buf);
-+    }
-+    if (!priv)
-+      goto add_fb2_failed;
-+  }
-+  
-+ if (once) {
-+    once = 0;
-+    static  GstVideoRectangle dest = { 0 };
-+    dest.w = sink->conn.mode->hdisplay;
-+    dest.h = sink->conn.mode->vdisplay;
-+
-+    gst_video_sink_center_rect (sink->src_rect, dest, &sink->dst_rect,
-+        sink->scale);
-+    ret = drmModeSetPlane (sink->fd, sink->conn.pdata[0].plane,
-+        sink->conn.crtc, priv->fb_id, 0,
-+        sink->dst_rect.x, sink->dst_rect.y, sink->dst_rect.w, sink->dst_rect.h,
-+        sink->src_rect.x << 16, sink->src_rect.y << 16,
-+        sink->src_rect.w << 16, sink->src_rect.h << 16);
-+    if (ret)
-+      goto set_plane_failed;
-+  }
-+
-+  drmModeAtomicReqPtr m_req = drmModeAtomicAlloc();
-+
-+  drmModeAtomicAddProperty(m_req, sink->conn.pdata[0].plane,
-+                      sink->conn.pdata[0].fb_id_property,
-+                      priv->fb_id);
-+
-+  drmModeAtomicCommit(sink->fd, m_req, DRM_MODE_ATOMIC_TEST_ONLY, 0);
-+  drmModeAtomicCommit(sink->fd, m_req, DRM_MODE_PAGE_FLIP_EVENT | DRM_MODE_ATOMIC_NONBLOCK, &waiting_for_flip);
-+  drmModeAtomicFree(m_req);
-+
-+  while (waiting_for_flip) {
-+    FD_ZERO(&fds);
-+    FD_SET(sink->fd, &fds);
-+    int err;
-+    err = select(sink->fd + 1, &fds, NULL, NULL, NULL);
-+    if (err < 0) {
-+      GST_ERROR_OBJECT (sink,"select err: %s\n", strerror(errno));
-+      flow_ret = GST_FLOW_ERROR;
-+      goto out;
-+    }
-+    if (FD_ISSET(sink->fd, &fds)) {
-+      drmHandleEvent(sink->fd, &evctx);
-+    }
-+  }
-+
-+  display_bufs_queue (sink, buf);
-+
-+out:
-+  GST_INFO_OBJECT (sink, "exit");
-+  if (buf != inbuf)
-+    gst_buffer_unref (buf);
-+  g_mutex_unlock (&sink->render_lock);
-+  return flow_ret;
-+
-+add_fb2_failed:
-+  GST_ELEMENT_ERROR (sink, RESOURCE, FAILED,
-+      (NULL), ("drmModeAddFB2 failed: %s (%d)", strerror (errno), errno));
-+  flow_ret = GST_FLOW_ERROR;
-+  goto out;
-+
-+set_plane_failed:
-+  GST_ELEMENT_ERROR (sink, RESOURCE, FAILED,
-+      (NULL), ("drmModeSetPlane failed: %s (%d)", strerror (errno), errno));
-+  flow_ret = GST_FLOW_ERROR;
-+  goto out;
-+
-+connector_not_found:
-+  GST_ELEMENT_ERROR (sink, RESOURCE, NOT_FOUND,
-+      (NULL), ("connector not found", strerror (errno), errno));
-+  goto out;
-+}
-+
-+
-+static gboolean
-+gst_kms_sink_event (GstBaseSink * bsink, GstEvent * event)
-+{
-+  GstKMSSink *sink = GST_KMS_SINK (bsink);
-+
-+  switch (GST_EVENT_TYPE (event)) {
-+    default:
-+      break;
-+  }
-+  if (GST_BASE_SINK_CLASS (gst_kms_sink_parent_class)->event)
-+    return GST_BASE_SINK_CLASS (gst_kms_sink_parent_class)->event (bsink,
-+        event);
-+  else
-+    return TRUE;
-+}
-+
-+static void
-+gst_kms_sink_set_property (GObject * object, guint prop_id,
-+    const GValue * value, GParamSpec * pspec)
-+{
-+  GstKMSSink *sink;
-+
-+  g_return_if_fail (GST_IS_KMS_SINK (object));
-+
-+  sink = GST_KMS_SINK (object);
-+
-+  switch (prop_id) {
-+    case PROP_FORCE_ASPECT_RATIO:
-+      sink->keep_aspect = g_value_get_boolean (value);
-+      break;
-+    case PROP_SCALE:
-+      sink->scale = g_value_get_boolean (value);
-+      break;
-+    case PROP_CONNECTOR:
-+      sink->conn_id = g_value_get_uint (value);
-+      break;
-+    case PROP_CONNECTOR_NAME:
-+      g_free (sink->conn_name);
-+      sink->conn_name = g_strdup (g_value_get_string (value));
-+      break;
-+    case PROP_PIXEL_ASPECT_RATIO:
-+    {
-+      GValue *tmp;
-+
-+      tmp = g_new0 (GValue, 1);
-+      g_value_init (tmp, GST_TYPE_FRACTION);
-+
-+      if (!g_value_transform (value, tmp)) {
-+        GST_WARNING_OBJECT (sink, "Could not transform string to aspect ratio");
-+      } else {
-+        sink->par_n = gst_value_get_fraction_numerator (tmp);
-+        sink->par_d = gst_value_get_fraction_denominator (tmp);
-+        GST_DEBUG_OBJECT (sink, "set PAR to %d/%d", sink->par_n, sink->par_d);
-+      }
-+      g_free (tmp);
-+    }
-+      break;
-+    default:
-+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-+      break;
-+  }
-+}
-+
-+static void
-+gst_kms_sink_get_property (GObject * object, guint prop_id,
-+    GValue * value, GParamSpec * pspec)
-+{
-+  GstKMSSink *sink;
-+
-+  g_return_if_fail (GST_IS_KMS_SINK (object));
-+
-+  sink = GST_KMS_SINK (object);
-+
-+  switch (prop_id) {
-+    case PROP_FORCE_ASPECT_RATIO:
-+      g_value_set_boolean (value, sink->keep_aspect);
-+      break;
-+    case PROP_SCALE:
-+      g_value_set_boolean (value, sink->scale);
-+      break;
-+    case PROP_CONNECTOR:
-+      g_value_set_uint (value, sink->conn.id);
-+      break;
-+    case PROP_PIXEL_ASPECT_RATIO:
-+    {
-+      char *v = g_strdup_printf ("%d/%d", sink->par_n, sink->par_d);
-+      g_value_take_string (value, v);
-+      break;
-+    }
-+    default:
-+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-+      break;
-+  }
-+}
-+
-+static void
-+gst_kms_sink_reset (GstKMSSink * sink)
-+{
-+  GST_DEBUG_OBJECT (sink, "reset");
-+
-+  if (sink->fd != -1) {
-+    gst_drm_connector_cleanup (sink->fd, &sink->conn);
-+  }
-+  memset (&sink->conn, 0, sizeof (struct connector));
-+
-+  display_bufs_free (sink);
-+  
-+ if (sink->pool) {
-+    gst_buffer_pool_set_active (GST_BUFFER_POOL(sink->pool), FALSE);
-+    gst_object_unref(sink->pool);
-+    sink->pool = NULL;
-+  }
-+
-+  if (sink->plane_resources) {
-+    drmModeFreePlaneResources (sink->plane_resources);
-+    sink->plane_resources = NULL;
-+  }
-+
-+  if (sink->resources) {
-+    drmModeFreeResources (sink->resources);
-+    sink->resources = NULL;
-+  }
-+
-+  sink->par_n = sink->par_d = 1;
-+  sink->src_rect.x = 0;
-+  sink->src_rect.y = 0;
-+  sink->src_rect.w = 0;
-+  sink->src_rect.h = 0;
-+  sink->input_width = 0;
-+  sink->input_height = 0;
-+  sink->format = GST_VIDEO_FORMAT_UNKNOWN;
-+
-+  memset (&sink->src_rect, 0, sizeof (GstVideoRectangle));
-+  memset (&sink->dst_rect, 0, sizeof (GstVideoRectangle));
-+}
-+
-+static gboolean
-+gst_kms_sink_start (GstBaseSink * bsink)
-+{
-+  GstKMSSink *sink;
-+
-+  sink = GST_KMS_SINK (bsink);
-+
-+  drm_dev = dce_init ();
-+  if (drm_dev == NULL)
-+    goto device_failed;
-+  else {
-+    sink->dev = drm_dev;
-+    sink->fd = dce_get_fd ();
-+    drm_fd = dce_get_fd ();
-+  }
-+
-+  sink->resources = drmModeGetResources (sink->fd);
-+  if (sink->resources == NULL)
-+    goto resources_failed;
-+
-+  sink->plane_resources = drmModeGetPlaneResources (sink->fd);
-+  if (sink->plane_resources == NULL)
-+    goto plane_resources_failed;
-+
-+  return TRUE;
-+
-+fail:
-+  gst_kms_sink_reset (sink);
-+  return FALSE;
-+
-+device_failed:
-+  GST_ELEMENT_ERROR (sink, RESOURCE, FAILED,
-+      (NULL), ("omap_device_new failed"));
-+  goto fail;
-+
-+resources_failed:
-+  GST_ELEMENT_ERROR (sink, RESOURCE, FAILED,
-+      (NULL), ("drmModeGetResources failed: %s (%d)", strerror (errno), errno));
-+  goto fail;
-+
-+plane_resources_failed:
-+  GST_ELEMENT_ERROR (sink, RESOURCE, FAILED,
-+      (NULL), ("drmModeGetPlaneResources failed: %s (%d)",
-+          strerror (errno), errno));
-+  goto fail;
-+}
-+
-+static gboolean
-+gst_kms_sink_stop (GstBaseSink * bsink)
-+{
-+  GstKMSSink *sink;
-+
-+  sink = GST_KMS_SINK (bsink);
-+  gst_kms_sink_reset (sink);
-+
-+  return TRUE;
-+}
-+
-+
-+static gboolean
-+gst_kms_sink_propose_allocation (GstBaseSink * bsink, GstQuery * query)
-+{
-+  GstKMSSink *sink;
-+  GstStructure *conf;
-+  GstCaps *caps;
-+  guint size;
-+  gboolean need_pool;
-+  GstStructure *s;
-+  int num_buffers = 0;
-+
-+
-+  sink = GST_KMS_SINK (bsink);
-+
-+  GST_DEBUG_OBJECT (sink, "begin");
-+
-+  gst_query_parse_allocation (query, &caps, &need_pool);
-+
-+  if (G_UNLIKELY (!caps)) {
-+    GST_WARNING_OBJECT (sink, "have no caps, doing fallback allocation");
-+    return FALSE;
-+  }
-+
-+  if (need_pool) {
-+    GstVideoInfo info;
-+  
-+    if (!gst_video_info_from_caps (&info, caps))
-+      goto invalid_caps;
-+
-+    GST_LOG_OBJECT (sink,
-+        "a bufferpool was requested with caps %" GST_PTR_FORMAT, caps);
-+
-+    /* We already have a pool after set_caps */
-+    if (sink->pool) {
-+      GstStructure *config;
-+      int min,max;
-+      config = gst_buffer_pool_get_config (sink->pool);
-+      gst_buffer_pool_config_get_params (config, NULL, &size, &min, &max);
-+      gst_structure_free (config);
-+    
-+      gst_query_add_allocation_pool (query, sink->pool, size, min, max);
-+      gst_query_add_allocation_param (query, gst_drm_allocator_get (), NULL);
-+      return TRUE;
-+   } else {
-+     GST_LOG_OBJECT (sink, "No bufferpool available");
-+     return FALSE;
-+   }
-+  }
-+ 
-+
-+invalid_caps:
-+  GST_DEBUG_OBJECT (sink, "invalid caps specified");
-+  return FALSE;
-+}
-+
-+static void
-+gst_kms_sink_finalize (GObject * object)
-+{
-+  GstKMSSink *sink;
-+
-+  sink = GST_KMS_SINK (object);
-+  g_mutex_clear (&sink->render_lock);
-+  g_free (sink->conn_name);
-+  if (sink->kmsbufferpriv){
-+    g_hash_table_destroy (sink->kmsbufferpriv);
-+    sink->kmsbufferpriv = NULL;
-+  gst_kms_sink_reset (sink);
-+}
-+
-+  G_OBJECT_CLASS (gst_kms_sink_parent_class)->finalize (object);
-+}
-+
-+static void
-+kmsbufferpriv_free_func (GstKMSBufferPriv *priv)
-+{
-+  drmModeRmFB (priv->fd, priv->fb_id);
-+  omap_bo_del (priv->bo);
-+  g_free(priv);
-+}
-+
-+
-+static void
-+gst_kms_sink_init (GstKMSSink * sink)
-+{
-+  sink->fd = -1;
-+  gst_kms_sink_reset (sink);
-+  sink->kmsbufferpriv = g_hash_table_new_full (g_direct_hash, g_direct_equal,
-+      NULL, (GDestroyNotify) kmsbufferpriv_free_func);
-+  g_mutex_init (&sink->render_lock);
-+}
-+
-+static void
-+gst_kms_sink_class_init (GstKMSSinkClass * klass)
-+{
-+  GObjectClass *gobject_class;
-+  GstElementClass *gstelement_class;
-+  GstBaseSinkClass *gstbasesink_class;
-+  GstVideoSinkClass *videosink_class;
-+
-+  gobject_class = (GObjectClass *) klass;
-+  gstelement_class = (GstElementClass *) klass;
-+  gstbasesink_class = (GstBaseSinkClass *) klass;
-+  videosink_class = (GstVideoSinkClass *) klass;
-+
-+  gobject_class->finalize = gst_kms_sink_finalize;
-+  gobject_class->set_property = gst_kms_sink_set_property;
-+  gobject_class->get_property = gst_kms_sink_get_property;
-+
-+  g_object_class_install_property (gobject_class, PROP_FORCE_ASPECT_RATIO,
-+      g_param_spec_boolean ("force-aspect-ratio", "Force aspect ratio",
-+          "When enabled, reverse caps negotiation (scaling) will respect "
-+          "original aspect ratio", FALSE,
-+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-+  g_object_class_install_property (gobject_class, PROP_PIXEL_ASPECT_RATIO,
-+      g_param_spec_string ("pixel-aspect-ratio", "Pixel Aspect Ratio",
-+          "The pixel aspect ratio of the device", "1/1",
-+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-+  g_object_class_install_property (gobject_class, PROP_SCALE,
-+      g_param_spec_boolean ("scale", "Scale",
-+          "When true, scale to render fullscreen", FALSE,
-+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-+  g_object_class_install_property (gobject_class, PROP_CONNECTOR,
-+      g_param_spec_uint ("connector", "Connector",
-+          "DRM connector id (0 for automatic selection)", 0, G_MAXUINT32, 0,
-+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT));
-+  g_object_class_install_property (gobject_class, PROP_CONNECTOR_NAME,
-+      g_param_spec_string ("connector-name", "Connector name",
-+          "DRM connector name (alternative to the connector property, "
-+          "use $type$index, $type-$index, or $type)", "",
-+          G_PARAM_WRITABLE | G_PARAM_STATIC_STRINGS));
-+
-+  gst_element_class_set_details_simple (gstelement_class,
-+      "Video sink", "Sink/Video",
-+      "A video sink using the linux kernel mode setting API",
-+      "Alessandro Decina <alessandro.d@gmail.com>");
-+
-+  gst_element_class_add_pad_template (gstelement_class,
-+      gst_static_pad_template_get (&gst_kms_sink_template_factory));
-+
-+  gstbasesink_class->set_caps = GST_DEBUG_FUNCPTR (gst_kms_sink_setcaps);
-+  gstbasesink_class->get_times = GST_DEBUG_FUNCPTR (gst_kms_sink_get_times);
-+  gstbasesink_class->event = GST_DEBUG_FUNCPTR (gst_kms_sink_event);
-+  gstbasesink_class->start = GST_DEBUG_FUNCPTR (gst_kms_sink_start);
-+  gstbasesink_class->stop = GST_DEBUG_FUNCPTR (gst_kms_sink_stop);
-+  gstbasesink_class->propose_allocation = GST_DEBUG_FUNCPTR (gst_kms_sink_propose_allocation);
-+
-+  /* disable preroll as it's called before GST_CROP_EVENT has been received, so
-+   * we end up configuring the wrong mode... (based on padded caps)
-+   */
-+  gstbasesink_class->preroll = NULL;
-+  videosink_class->show_frame = GST_DEBUG_FUNCPTR (gst_kms_sink_show_frame);
-+}
-+
-+static gboolean
-+plugin_init (GstPlugin * plugin)
-+{
-+  if (!gst_element_register (plugin, "kmssink",
-+          GST_RANK_PRIMARY + 1, GST_TYPE_KMS_SINK))
-+    return FALSE;
-+
-+  GST_DEBUG_CATEGORY_INIT (gst_debug_kms_sink, "kmssink", 0, "kmssink element");
-+
-+  return TRUE;
-+}
-+
-+GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
-+    GST_VERSION_MINOR,
-+    kms,
-+    "KMS video output element",
-+    plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN)
-diff --git a/sys/kms/gstkmssink.h b/sys/kms/gstkmssink.h
-new file mode 100644
-index 0000000..9f76839
---- /dev/null
-+++ b/sys/kms/gstkmssink.h
-@@ -0,0 +1,92 @@
-+/* GStreamer
-+ *
-+ * Copyright (C) 2012 Texas Instruments 
-+ * Copyright (C) 2012 Collabora Ltd
-+ *
-+ * Authors:
-+ *  Alessandro Decina <alessandro.decina@collabora.co.uk>
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Library General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2 of the License, or (at your option) any later version.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+ * Library General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Library General Public
-+ * License along with this library; if not, write to the
-+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-+ * Boston, MA 02111-1307, USA.
-+ */
-+
-+#ifndef __GST_KMS_SINK_H__
-+#define __GST_KMS_SINK_H__
-+
-+#include <gst/video/video.h>
-+#include <gst/video/gstvideosink.h>
-+#include <gst/drm/gstdrmallocator.h>
-+
-+#include <stdio.h>
-+#include <stdint.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <errno.h>
-+#include <unistd.h>
-+#include <assert.h>
-+
-+#include "gstdrmutils.h"
-+
-+G_BEGIN_DECLS
-+#define GST_TYPE_KMS_SINK \
-+  (gst_kms_sink_get_type())
-+#define GST_KMS_SINK(obj) \
-+  (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_KMS_SINK, GstKMSSink))
-+#define GST_KMS_SINK_CLASS(klass) \
-+  (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_KMS_SINK, GstKMSSinkClass))
-+#define GST_IS_KMS_SINK(obj) \
-+  (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_KMS_SINK))
-+#define GST_IS_KMS_SINK_CLASS(klass) \
-+  (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_KMS_SINK))
-+typedef struct _GstKMSSink GstKMSSink;
-+typedef struct _GstKMSSinkClass GstKMSSinkClass;
-+
-+#define NUM_DISPLAY_BUFS 1
-+
-+struct _GstKMSSink
-+{
-+  GstVideoSink videosink;
-+  gint input_width, input_height;
-+  GstVideoFormat format;
-+  gint par_n, par_d;
-+  gint fps_n, fps_d;
-+  gboolean keep_aspect;
-+  GstVideoRectangle src_rect;
-+  GstVideoRectangle dst_rect;
-+  int fd;
-+  struct omap_device *dev;
-+  drmModeRes *resources;
-+  drmModePlaneRes *plane_resources;
-+  struct connector conn;
-+  uint32_t conn_id;
-+  char *conn_name;
-+  drmModePlane *plane;
-+  GstBufferPool *pool;
-+  GHashTable *kmsbufferpriv;
-+  /* current displayed buffer and last displayed buffer: */
-+  GstBuffer *display_bufs[NUM_DISPLAY_BUFS];
-+  gboolean scale;
-+  GMutex render_lock;
-+};
-+
-+struct _GstKMSSinkClass
-+{
-+  GstVideoSinkClass parent_class;
-+};
-+
-+GType gst_kms_sink_get_type (void);
-+
-+G_END_DECLS
-+#endif /* __GST_KMS_SINK_H__ */
--- 
-1.9.1
-
diff --git a/meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0003-kmssink-add-YUYV-support.patch b/meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0003-kmssink-add-YUYV-support.patch
deleted file mode 100644 (file)
index a57a0bb..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-From 11a3ff4b9451f12374006f853ef5736f5d098932 Mon Sep 17 00:00:00 2001
-From: Eric Ruei <e-ruei1@ti.com>
-Date: Tue, 14 Mar 2017 17:24:07 -0400
-Subject: [PATCH 3/3] kmssink: add YUYV support
-
-Signed-off-by: Eric Ruei <e-ruei1@ti.com>
----
- sys/kms/gstkmsbufferpriv.c | 32 +++++++++++++++++++++++++++-----
- sys/kms/gstkmssink.c       |  2 +-
- 2 files changed, 28 insertions(+), 6 deletions(-)
-
-diff --git a/sys/kms/gstkmsbufferpriv.c b/sys/kms/gstkmsbufferpriv.c
-index 172a4c3..57c01f8 100644
---- a/sys/kms/gstkmsbufferpriv.c
-+++ b/sys/kms/gstkmsbufferpriv.c
-@@ -41,22 +41,44 @@
- static int
- create_fb (GstKMSBufferPriv * priv, GstKMSSink * sink)
- {
-+
-   /* TODO get format, etc from caps.. and query device for
-    * supported formats, and make this all more flexible to
-    * cope with various formats:
-    */
--  uint32_t fourcc = GST_MAKE_FOURCC ('N', 'V', '1', '2');
--
-+  GstVideoFormat format = sink->format;
-+  uint32_t fourcc;
-   uint32_t handles[4] = {
--    omap_bo_handle (priv->bo), omap_bo_handle (priv->bo),
-+    omap_bo_handle (priv->bo),
-   };
-   uint32_t pitches[4] = {
--    GST_ROUND_UP_4 (sink->input_width), GST_ROUND_UP_4 (sink->input_width),
-+    GST_ROUND_UP_4 (sink->input_width),
-   };
-   uint32_t offsets[4] = {
--    0, pitches[0] * sink->input_height
-+    0,
-   };
-+  /**
-+   * Only two formats are supported:
-+   * AM3/4: YUYV
-+   * AM5: NV12, YUYV
-+   */
-+  if(format == GST_VIDEO_FORMAT_YUY2)
-+  {
-+    /* YUYV */
-+    fourcc = GST_MAKE_FOURCC ('Y', 'U', 'Y', 'V');
-+    pitches[0] = GST_ROUND_UP_4 (sink->input_width*2);
-+  }
-+  else
-+  {
-+    /* NV12 */
-+    fourcc = GST_MAKE_FOURCC ('N', 'V', '1', '2');
-+    handles[1] = omap_bo_handle (priv->bo);
-+    pitches[1] = GST_ROUND_UP_4 (sink->input_width);
-+    offsets[1] = pitches[0] * sink->input_height;
-+  }
-+
-+
-   return drmModeAddFB2 (priv->fd, sink->input_width, sink->input_height,
-       fourcc, handles, pitches, offsets, &priv->fb_id, 0);
- }
-diff --git a/sys/kms/gstkmssink.c b/sys/kms/gstkmssink.c
-index 9795bdf..b36d88f 100644
---- a/sys/kms/gstkmssink.c
-+++ b/sys/kms/gstkmssink.c
-@@ -50,7 +50,7 @@ static GstStaticPadTemplate gst_kms_sink_template_factory =
- GST_STATIC_PAD_TEMPLATE ("sink",
-     GST_PAD_SINK,
-     GST_PAD_ALWAYS,
--    GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE("NV12"))
-+    GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE("{NV12,YUY2}"))
-     );
- enum
--- 
-1.9.1
-
diff --git a/meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0004-gstwaylandsink-Add-DRM-support-on-waylandsink.patch b/meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0004-gstwaylandsink-Add-DRM-support-on-waylandsink.patch
deleted file mode 100644 (file)
index 2902bc3..0000000
+++ /dev/null
@@ -1,1728 +0,0 @@
-From 78ddc83ebfe7cf69c62610e1f7d14e7f49bf65c9 Mon Sep 17 00:00:00 2001
-From: Pooja Prajod <a0132412@ti.com>
-Date: Wed, 25 Jan 2017 17:09:35 +0530
-Subject: [gst-bad-1.8] gstwaylandsink: Add DRM support on waylandsink
-
-Add wl_drm interface on waylandsink.
-The following features are supported:
-1. Support for mouse drag and drop.
-2. Support for video cropping
-
-The following bug fixes identified earlier have been picked:
-1. Consolidate header files to avoid circular dependency
-2. Fix bug reported on waylandsink incase of same process looping
-
-Signed-off-by: Pooja Prajod <a0132412@ti.com>
----
- configure.ac                              |   4 +-
- ext/wayland/Makefile.am                   |  17 +-
- ext/wayland/gstwaylandsink.c              |  82 ++++++-
- ext/wayland/gstwaylandsink.h              |   4 +-
- ext/wayland/wayland-drm-client-protocol.h | 213 ++++++++++++++++++
- ext/wayland/wayland-drm-protocol.c        |  74 +++++++
- ext/wayland/wlbuffer.c                    |   2 +-
- ext/wayland/wlbuffer.h                    |  67 ------
- ext/wayland/wldisplay-wlwindow-wlbuffer.h | 216 ++++++++++++++++++
- ext/wayland/wldisplay.c                   | 350 +++++++++++++++++++++++++++++-
- ext/wayland/wldisplay.h                   |  84 -------
- ext/wayland/wldrm.c                       |  69 ++++++
- ext/wayland/wldrm.h                       |   3 +
- ext/wayland/wlshmallocator.h              |   2 +-
- ext/wayland/wlvideoformat.c               |   8 +-
- ext/wayland/wlwindow.c                    |  47 +++-
- ext/wayland/wlwindow.h                    |  84 -------
- 17 files changed, 1056 insertions(+), 270 deletions(-)
- create mode 100644 ext/wayland/wayland-drm-client-protocol.h
- create mode 100644 ext/wayland/wayland-drm-protocol.c
- delete mode 100644 ext/wayland/wlbuffer.h
- create mode 100644 ext/wayland/wldisplay-wlwindow-wlbuffer.h
- delete mode 100644 ext/wayland/wldisplay.h
- create mode 100644 ext/wayland/wldrm.c
- create mode 100644 ext/wayland/wldrm.h
- delete mode 100644 ext/wayland/wlwindow.h
-
-diff --git a/configure.ac b/configure.ac
-index 9fdfbc7..76166cb 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -2172,8 +2172,10 @@ AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
- dnl **** Wayland ****
- translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
- AC_PATH_PROG([wayland_scanner], [wayland-scanner])
--AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
-+AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland libdrm libdrm_omap, [
-   PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0, [
-+    AC_SUBST(DRM_CFLAGS)
-+    AC_SUBST(DRM_LIBS)
-     if test "x$wayland_scanner" != "x"; then
-       HAVE_WAYLAND="yes"
-     else
-diff --git a/ext/wayland/Makefile.am b/ext/wayland/Makefile.am
-index c742bfc..eb6e326 100644
---- a/ext/wayland/Makefile.am
-+++ b/ext/wayland/Makefile.am
-@@ -3,31 +3,34 @@ plugin_LTLIBRARIES = libgstwaylandsink.la
- libgstwaylandsink_la_SOURCES =  \
-       gstwaylandsink.c \
-       wlshmallocator.c \
-+        wldrm.c \
-       wlbuffer.c \
-       wldisplay.c \
-       wlwindow.c \
-       wlvideoformat.c \
--      scaler-protocol.c
-+      scaler-protocol.c \
-+        wayland-drm-protocol.c
- libgstwaylandsink_la_CFLAGS = $(GST_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \
--                               $(WAYLAND_CFLAGS) $(GST_PLUGINS_BAD_CFLAGS)
-+                               $(WAYLAND_CFLAGS) $(GST_PLUGINS_BAD_CFLAGS) $(DRM_CFLAGS)
- libgstwaylandsink_la_LIBADD = \
-       $(GST_PLUGINS_BASE_LIBS) \
-       -lgstvideo-$(GST_API_VERSION) \
-       -lgstallocators-$(GST_API_VERSION) \
-       $(WAYLAND_LIBS) \
--      $(top_builddir)/gst-libs/gst/wayland/libgstwayland-$(GST_API_VERSION).la
-+      $(top_builddir)/gst-libs/gst/wayland/libgstwayland-$(GST_API_VERSION).la \
-+        $(top_builddir)/gst-libs/gst/drm/libgstdrm-$(GST_API_VERSION).la
- libgstwaylandsink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
- libgstwaylandsink_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
- noinst_HEADERS = \
-       gstwaylandsink.h \
-       wlshmallocator.h \
--      wlbuffer.h \
--      wldisplay.h \
--      wlwindow.h \
-+        wldisplay-wlwindow-wlbuffer.h \
-+        wldrm.h \
-       wlvideoformat.h \
--      scaler-client-protocol.h
-+      scaler-client-protocol.h \
-+        wayland-drm-client-protocol.h
- EXTRA_DIST = scaler.xml
- CLEANFILES = scaler-protocol.c scaler-client-protocol.h
-diff --git a/ext/wayland/gstwaylandsink.c b/ext/wayland/gstwaylandsink.c
-index f4f34a8..3e8ff19 100644
---- a/ext/wayland/gstwaylandsink.c
-+++ b/ext/wayland/gstwaylandsink.c
-@@ -43,8 +43,14 @@
- #include "gstwaylandsink.h"
- #include "wlvideoformat.h"
--#include "wlbuffer.h"
- #include "wlshmallocator.h"
-+#include "wldrm.h"
-+
-+#include <gst/drm/gstdrmallocator.h>
-+#include "wayland-drm-client-protocol.h"
-+#include <omap_drm.h>
-+#include <omap_drmif.h>
-+#include <wayland-client.h>
- #include <gst/wayland/wayland.h>
- #include <gst/video/videooverlay.h>
-@@ -60,7 +66,8 @@ enum
- enum
- {
-   PROP_0,
--  PROP_DISPLAY
-+  PROP_DISPLAY,
-+  PROP_ALLOCATION
- };
- GST_DEBUG_CATEGORY (gstwayland_debug);
-@@ -75,6 +82,7 @@ static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
-             "YUV9, YVU9, Y41B, I420, YV12, Y42B, v308 }"))
-     );
-+
- static void gst_wayland_sink_get_property (GObject * object,
-     guint prop_id, GValue * value, GParamSpec * pspec);
- static void gst_wayland_sink_set_property (GObject * object,
-@@ -158,6 +166,11 @@ gst_wayland_sink_class_init (GstWaylandSinkClass * klass)
-       g_param_spec_string ("display", "Wayland Display name", "Wayland "
-           "display name to connect to, if not supplied via the GstContext",
-           NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-+  
-+  g_object_class_install_property (gobject_class, PROP_ALLOCATION,
-+      g_param_spec_boolean ("use-drm", "Wayland Allocation name", "Wayland "
-+          "Use DRM based memory for allocation",
-+          FALSE, G_PARAM_WRITABLE));
- }
- static void
-@@ -197,6 +210,11 @@ gst_wayland_sink_set_property (GObject * object,
-       sink->display_name = g_value_dup_string (value);
-       GST_OBJECT_UNLOCK (sink);
-       break;
-+   case PROP_ALLOCATION:
-+      GST_OBJECT_LOCK (sink);
-+      sink->use_drm = g_value_get_boolean (value);
-+      GST_OBJECT_UNLOCK (sink);
-+      break;     
-     default:
-       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-       break;
-@@ -281,6 +299,7 @@ gst_wayland_sink_find_display (GstWaylandSink * sink)
-         /* if the application didn't set a display, let's create it ourselves */
-         GST_OBJECT_LOCK (sink);
-         sink->display = gst_wl_display_new (sink->display_name, &error);
-+        sink->display->use_drm = sink->use_drm;
-         GST_OBJECT_UNLOCK (sink);
-         if (error) {
-@@ -408,7 +427,6 @@ gst_wayland_sink_get_caps (GstBaseSink * bsink, GstCaps * filter)
-     caps = gst_caps_make_writable (caps);
-     gst_structure_set_value (gst_caps_get_structure (caps, 0), "format", &list);
--
-     GST_DEBUG_OBJECT (sink, "display caps: %" GST_PTR_FORMAT, caps);
-   }
-@@ -426,6 +444,18 @@ gst_wayland_sink_get_caps (GstBaseSink * bsink, GstCaps * filter)
-   return caps;
- }
-+static void
-+wait_authentication (GstWaylandSink * sink)
-+{
-+  GST_DEBUG_OBJECT (sink, "Before wait aunthenticated value is %d : \n", sink->display->authenticated );
-+  while (!sink->display->authenticated) {
-+    GST_DEBUG_OBJECT (sink, "waiting for authentication");
-+    wl_display_roundtrip (sink->display->display);
-+  }
-+  GST_DEBUG_OBJECT (sink, "After wait aunthenticated value is %d : \n", sink->display->authenticated );
-+}
-+
-+
- static gboolean
- gst_wayland_sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
- {
-@@ -436,11 +466,20 @@ gst_wayland_sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-   GArray *formats;
-   gint i;
-   GstStructure *structure;
-+  GstStructure *s;
-+  gboolean use_drm = 0;
-+  int num_buffers = 0;
-   sink = GST_WAYLAND_SINK (bsink);
-   GST_DEBUG_OBJECT (sink, "set caps %" GST_PTR_FORMAT, caps);
-+  wait_authentication (sink);
-+
-+  while (!sink->display->authenticated) {
-+    GST_DEBUG_OBJECT (sink, "not authenticated yet");
-+  } 
-+
-   /* extract info from caps */
-   if (!gst_video_info_from_caps (&info, caps))
-     goto invalid_format;
-@@ -460,14 +499,27 @@ gst_wayland_sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
-     goto unsupported_format;
-   /* create a new pool for the new configuration */
--  newpool = gst_video_buffer_pool_new ();
-+
-+  s = gst_caps_get_structure (caps, 0);
-+  gst_structure_get_boolean (s, "drm_mem", &use_drm);
-+  gst_structure_get_int (s, "max-ref-frames", &num_buffers);
-+  if (num_buffers )
-+    num_buffers = num_buffers + 2;
-+
-+  newpool = gst_buffer_pool_new ();
-   if (!newpool)
-     goto pool_failed;
-   structure = gst_buffer_pool_get_config (newpool);
--  gst_buffer_pool_config_set_params (structure, caps, info.size, 2, 0);
--  gst_buffer_pool_config_set_allocator (structure, gst_wl_shm_allocator_get (),
--      NULL);
-+  gst_buffer_pool_config_set_params (structure, caps, info.size, 2, num_buffers);
-+  if ( use_drm ) {
-+    gst_buffer_pool_config_set_allocator (structure, gst_drm_allocator_get (),
-+        NULL);
-+    sink->display->use_drm = TRUE;
-+  } else {
-+    gst_buffer_pool_config_set_allocator (structure, gst_wl_shm_allocator_get (),
-+        NULL);
-+  }
-   if (!gst_buffer_pool_set_config (newpool, structure))
-     goto config_failed;
-@@ -518,8 +570,11 @@ gst_wayland_sink_propose_allocation (GstBaseSink * bsink, GstQuery * query)
-   /* we do have a pool for sure (created in set_caps),
-    * so let's propose it anyway, but also propose the allocator on its own */
-   gst_query_add_allocation_pool (query, sink->pool, size, min_bufs, max_bufs);
--  gst_query_add_allocation_param (query, gst_wl_shm_allocator_get (), NULL);
--
-+  if (sink->display->use_drm) {
-+    gst_query_add_allocation_param (query, gst_drm_allocator_get (), NULL);
-+  } else {
-+    gst_query_add_allocation_param (query, gst_wl_shm_allocator_get (), NULL);
-+  }
-   gst_structure_free (config);
-   return TRUE;
-@@ -582,6 +637,10 @@ gst_wayland_sink_render (GstBaseSink * bsink, GstBuffer * buffer)
-   GST_LOG_OBJECT (sink, "render buffer %p", buffer);
-+  if (sink->display) {
-+    sink->display->crop = gst_buffer_get_video_crop_meta (buffer); 
-+  }
-+
-   if (G_UNLIKELY (!sink->window)) {
-     /* ask for window handle. Unlock render_lock while doing that because
-      * set_window_handle & friends will lock it in this context */
-@@ -623,6 +682,11 @@ gst_wayland_sink_render (GstBaseSink * bsink, GstBuffer * buffer)
-       wbuf = gst_wl_shm_memory_construct_wl_buffer (mem, sink->display,
-           &sink->video_info);
-     }
-+    
-+    if (gst_is_drm_memory (mem)) {
-+      wbuf = gst_wl_drm_memory_construct_wl_buffer (mem, sink->display,
-+          &sink->video_info);      
-+    }
-     if (wbuf) {
-       gst_buffer_add_wl_buffer (buffer, wbuf, sink->display);
-diff --git a/ext/wayland/gstwaylandsink.h b/ext/wayland/gstwaylandsink.h
-index afbed40..c1092ce 100644
---- a/ext/wayland/gstwaylandsink.h
-+++ b/ext/wayland/gstwaylandsink.h
-@@ -27,8 +27,7 @@
- #include <wayland-client.h>
--#include "wldisplay.h"
--#include "wlwindow.h"
-+#include "wldisplay-wlwindow-wlbuffer.h"
- G_BEGIN_DECLS
-@@ -61,6 +60,7 @@ struct _GstWaylandSink
-   GstVideoInfo video_info;
-   gchar *display_name;
-+  gboolean use_drm;  
-   gboolean redraw_pending;
-   GMutex render_lock;
-diff --git a/ext/wayland/wayland-drm-client-protocol.h b/ext/wayland/wayland-drm-client-protocol.h
-new file mode 100644
-index 0000000..7ddb614
---- /dev/null
-+++ b/ext/wayland/wayland-drm-client-protocol.h
-@@ -0,0 +1,213 @@
-+/* 
-+ * Copyright © 2008-2011 Kristian Høgsberg
-+ * Copyright © 2010-2011 Intel Corporation
-+ * 
-+ * Permission to use, copy, modify, distribute, and sell this
-+ * software and its documentation for any purpose is hereby granted
-+ * without fee, provided that\n the above copyright notice appear in
-+ * all copies and that both that copyright notice and this permission
-+ * notice appear in supporting documentation, and that the name of
-+ * the copyright holders not be used in advertising or publicity
-+ * pertaining to distribution of the software without specific,
-+ * written prior permission.  The copyright holders make no
-+ * representations about the suitability of this software for any
-+ * purpose.  It is provided "as is" without express or implied
-+ * warranty.
-+ * 
-+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
-+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
-+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-+ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-+ * THIS SOFTWARE.
-+ */
-+
-+#ifndef DRM_CLIENT_PROTOCOL_H
-+#define DRM_CLIENT_PROTOCOL_H
-+
-+#ifdef  __cplusplus
-+extern "C" {
-+#endif
-+
-+#include <stdint.h>
-+#include <stddef.h>
-+#include "wayland-util.h"
-+
-+struct wl_client;
-+struct wl_resource;
-+
-+struct wl_drm;
-+
-+extern const struct wl_interface wl_drm_interface;
-+
-+#ifndef WL_DRM_ERROR_ENUM
-+#define WL_DRM_ERROR_ENUM
-+enum wl_drm_error {
-+      WL_DRM_ERROR_AUTHENTICATE_FAIL = 0,
-+      WL_DRM_ERROR_INVALID_FORMAT = 1,
-+      WL_DRM_ERROR_INVALID_NAME = 2,
-+};
-+#endif /* WL_DRM_ERROR_ENUM */
-+
-+#ifndef WL_DRM_FORMAT_ENUM
-+#define WL_DRM_FORMAT_ENUM
-+enum wl_drm_format {
-+      WL_DRM_FORMAT_C8 = 0x20203843,
-+      WL_DRM_FORMAT_RGB332 = 0x38424752,
-+      WL_DRM_FORMAT_BGR233 = 0x38524742,
-+      WL_DRM_FORMAT_XRGB4444 = 0x32315258,
-+      WL_DRM_FORMAT_XBGR4444 = 0x32314258,
-+      WL_DRM_FORMAT_RGBX4444 = 0x32315852,
-+      WL_DRM_FORMAT_BGRX4444 = 0x32315842,
-+      WL_DRM_FORMAT_ARGB4444 = 0x32315241,
-+      WL_DRM_FORMAT_ABGR4444 = 0x32314241,
-+      WL_DRM_FORMAT_RGBA4444 = 0x32314152,
-+      WL_DRM_FORMAT_BGRA4444 = 0x32314142,
-+      WL_DRM_FORMAT_XRGB1555 = 0x35315258,
-+      WL_DRM_FORMAT_XBGR1555 = 0x35314258,
-+      WL_DRM_FORMAT_RGBX5551 = 0x35315852,
-+      WL_DRM_FORMAT_BGRX5551 = 0x35315842,
-+      WL_DRM_FORMAT_ARGB1555 = 0x35315241,
-+      WL_DRM_FORMAT_ABGR1555 = 0x35314241,
-+      WL_DRM_FORMAT_RGBA5551 = 0x35314152,
-+      WL_DRM_FORMAT_BGRA5551 = 0x35314142,
-+      WL_DRM_FORMAT_RGB565 = 0x36314752,
-+      WL_DRM_FORMAT_BGR565 = 0x36314742,
-+      WL_DRM_FORMAT_RGB888 = 0x34324752,
-+      WL_DRM_FORMAT_BGR888 = 0x34324742,
-+      WL_DRM_FORMAT_XRGB8888 = 0x34325258,
-+      WL_DRM_FORMAT_XBGR8888 = 0x34324258,
-+      WL_DRM_FORMAT_RGBX8888 = 0x34325852,
-+      WL_DRM_FORMAT_BGRX8888 = 0x34325842,
-+      WL_DRM_FORMAT_ARGB8888 = 0x34325241,
-+      WL_DRM_FORMAT_ABGR8888 = 0x34324241,
-+      WL_DRM_FORMAT_RGBA8888 = 0x34324152,
-+      WL_DRM_FORMAT_BGRA8888 = 0x34324142,
-+      WL_DRM_FORMAT_XRGB2101010 = 0x30335258,
-+      WL_DRM_FORMAT_XBGR2101010 = 0x30334258,
-+      WL_DRM_FORMAT_RGBX1010102 = 0x30335852,
-+      WL_DRM_FORMAT_BGRX1010102 = 0x30335842,
-+      WL_DRM_FORMAT_ARGB2101010 = 0x30335241,
-+      WL_DRM_FORMAT_ABGR2101010 = 0x30334241,
-+      WL_DRM_FORMAT_RGBA1010102 = 0x30334152,
-+      WL_DRM_FORMAT_BGRA1010102 = 0x30334142,
-+      WL_DRM_FORMAT_YUYV = 0x56595559,
-+      WL_DRM_FORMAT_YVYU = 0x55595659,
-+      WL_DRM_FORMAT_UYVY = 0x59565955,
-+      WL_DRM_FORMAT_VYUY = 0x59555956,
-+      WL_DRM_FORMAT_AYUV = 0x56555941,
-+      WL_DRM_FORMAT_NV12 = 0x3231564e,
-+      WL_DRM_FORMAT_NV21 = 0x3132564e,
-+      WL_DRM_FORMAT_NV16 = 0x3631564e,
-+      WL_DRM_FORMAT_NV61 = 0x3136564e,
-+      WL_DRM_FORMAT_YUV410 = 0x39565559,
-+      WL_DRM_FORMAT_YVU410 = 0x39555659,
-+      WL_DRM_FORMAT_YUV411 = 0x31315559,
-+      WL_DRM_FORMAT_YVU411 = 0x31315659,
-+      WL_DRM_FORMAT_YUV420 = 0x32315559,
-+      WL_DRM_FORMAT_YVU420 = 0x32315659,
-+      WL_DRM_FORMAT_YUV422 = 0x36315559,
-+      WL_DRM_FORMAT_YVU422 = 0x36315659,
-+      WL_DRM_FORMAT_YUV444 = 0x34325559,
-+      WL_DRM_FORMAT_YVU444 = 0x34325659,
-+};
-+#endif /* WL_DRM_FORMAT_ENUM */
-+
-+struct wl_drm_listener {
-+      /**
-+       * device - (none)
-+       * @name: (none)
-+       */
-+      void (*device)(void *data,
-+                     struct wl_drm *wl_drm,
-+                     const char *name);
-+      /**
-+       * format - (none)
-+       * @format: (none)
-+       */
-+      void (*format)(void *data,
-+                     struct wl_drm *wl_drm,
-+                     uint32_t format);
-+      /**
-+       * authenticated - (none)
-+       */
-+      void (*authenticated)(void *data,
-+                            struct wl_drm *wl_drm);
-+};
-+
-+static inline int
-+wl_drm_add_listener(struct wl_drm *wl_drm,
-+                  const struct wl_drm_listener *listener, void *data)
-+{
-+      return wl_proxy_add_listener((struct wl_proxy *) wl_drm,
-+                                   (void (**)(void)) listener, data);
-+}
-+
-+#define WL_DRM_AUTHENTICATE   0
-+#define WL_DRM_CREATE_BUFFER  1
-+#define WL_DRM_CREATE_PLANAR_BUFFER   2
-+
-+static inline void
-+wl_drm_set_user_data(struct wl_drm *wl_drm, void *user_data)
-+{
-+      wl_proxy_set_user_data((struct wl_proxy *) wl_drm, user_data);
-+}
-+
-+static inline void *
-+wl_drm_get_user_data(struct wl_drm *wl_drm)
-+{
-+      return wl_proxy_get_user_data((struct wl_proxy *) wl_drm);
-+}
-+
-+static inline void
-+wl_drm_destroy(struct wl_drm *wl_drm)
-+{
-+      wl_proxy_destroy((struct wl_proxy *) wl_drm);
-+}
-+
-+static inline void
-+wl_drm_authenticate(struct wl_drm *wl_drm, uint32_t id)
-+{
-+      wl_proxy_marshal((struct wl_proxy *) wl_drm,
-+                       WL_DRM_AUTHENTICATE, id);
-+}
-+
-+static inline struct wl_buffer *
-+wl_drm_create_buffer(struct wl_drm *wl_drm, uint32_t name, int32_t width, int32_t height, uint32_t stride, uint32_t format)
-+{
-+      struct wl_proxy *id;
-+
-+      id = wl_proxy_create((struct wl_proxy *) wl_drm,
-+                           &wl_buffer_interface);
-+      if (!id)
-+              return NULL;
-+
-+      wl_proxy_marshal((struct wl_proxy *) wl_drm,
-+                       WL_DRM_CREATE_BUFFER, id, name, width, height, stride, format);
-+
-+      return (struct wl_buffer *) id;
-+}
-+
-+static inline struct wl_buffer *
-+wl_drm_create_planar_buffer(struct wl_drm *wl_drm, uint32_t name, int32_t width, int32_t height, uint32_t format, int32_t offset0, int32_t stride0, int32_t offset1, int32_t stride1, int32_t offset2, int32_t stride2)
-+{
-+      struct wl_proxy *id;
-+
-+      id = wl_proxy_create((struct wl_proxy *) wl_drm,
-+                           &wl_buffer_interface);
-+      if (!id)
-+              return NULL;
-+
-+      wl_proxy_marshal((struct wl_proxy *) wl_drm,
-+                       WL_DRM_CREATE_PLANAR_BUFFER, id, name, width, height, format, offset0, stride0, offset1, stride1, offset2, stride2);
-+
-+      return (struct wl_buffer *) id;
-+}
-+
-+#ifdef  __cplusplus
-+}
-+#endif
-+
-+#endif
-diff --git a/ext/wayland/wayland-drm-protocol.c b/ext/wayland/wayland-drm-protocol.c
-new file mode 100644
-index 0000000..939af53
---- /dev/null
-+++ b/ext/wayland/wayland-drm-protocol.c
-@@ -0,0 +1,74 @@
-+/* 
-+ * Copyright © 2008-2011 Kristian Høgsberg
-+ * Copyright © 2010-2011 Intel Corporation
-+ * 
-+ * Permission to use, copy, modify, distribute, and sell this
-+ * software and its documentation for any purpose is hereby granted
-+ * without fee, provided that\n the above copyright notice appear in
-+ * all copies and that both that copyright notice and this permission
-+ * notice appear in supporting documentation, and that the name of
-+ * the copyright holders not be used in advertising or publicity
-+ * pertaining to distribution of the software without specific,
-+ * written prior permission.  The copyright holders make no
-+ * representations about the suitability of this software for any
-+ * purpose.  It is provided "as is" without express or implied
-+ * warranty.
-+ * 
-+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
-+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
-+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-+ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-+ * THIS SOFTWARE.
-+ */
-+
-+#include <stdlib.h>
-+#include <stdint.h>
-+#include "wayland-util.h"
-+
-+#define ARRAY_LENGTH(a) (sizeof (a) /sizeof (a)[0])
-+
-+extern const struct wl_interface wl_buffer_interface;
-+extern const struct wl_interface wl_buffer_interface;
-+
-+static const struct wl_interface *types[] = {
-+      NULL,
-+      &wl_buffer_interface,
-+      NULL,
-+      NULL,
-+      NULL,
-+      NULL,
-+      NULL,
-+      &wl_buffer_interface,
-+      NULL,
-+      NULL,
-+      NULL,
-+      NULL,
-+      NULL,
-+      NULL,
-+      NULL,
-+      NULL,
-+      NULL,
-+      NULL,
-+};
-+
-+static const struct wl_message wl_drm_requests[] = {
-+      { "authenticate", "u", types + 0 },
-+      { "create_buffer", "nuiiuu", types + 1 },
-+      { "create_planar_buffer", "nuiiuiiiiii", types + 7 },
-+};
-+
-+static const struct wl_message wl_drm_events[] = {
-+      { "device", "s", types + 0 },
-+      { "format", "u", types + 0 },
-+      { "authenticated", "", types + 0 },
-+};
-+
-+WL_EXPORT const struct wl_interface wl_drm_interface = {
-+      "wl_drm", 1,
-+      ARRAY_LENGTH(wl_drm_requests), wl_drm_requests,
-+      ARRAY_LENGTH(wl_drm_events), wl_drm_events,
-+};
-+
-diff --git a/ext/wayland/wlbuffer.c b/ext/wayland/wlbuffer.c
-index 4ac99ef..0e38d2e 100644
---- a/ext/wayland/wlbuffer.c
-+++ b/ext/wayland/wlbuffer.c
-@@ -76,7 +76,7 @@
-  * as soon as we remove the reference that GstWlDisplay holds.
-  */
--#include "wlbuffer.h"
-+#include "wldisplay-wlwindow-wlbuffer.h"
- GST_DEBUG_CATEGORY_EXTERN (gstwayland_debug);
- #define GST_CAT_DEFAULT gstwayland_debug
-diff --git a/ext/wayland/wlbuffer.h b/ext/wayland/wlbuffer.h
-deleted file mode 100644
-index cbb50f7..0000000
---- a/ext/wayland/wlbuffer.h
-+++ /dev/null
-@@ -1,67 +0,0 @@
--/* GStreamer Wayland video sink
-- *
-- * Copyright (C) 2014 Collabora Ltd.
-- *
-- * This library is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Library General Public
-- * License as published by the Free Software Foundation; either
-- * version 2 of the License, or (at your option) any later version.
-- *
-- * This library is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-- * Library General Public License for more details.
-- *
-- * You should have received a copy of the GNU Library General Public
-- * License along with this library; if not, write to the Free
-- * Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-- * Boston, MA 02110-1301 USA.
-- */
--
--#ifndef __GST_WL_BUFFER_H__
--#define __GST_WL_BUFFER_H__
--
--#include "wldisplay.h"
--
--G_BEGIN_DECLS
--
--#define GST_TYPE_WL_BUFFER                  (gst_wl_buffer_get_type ())
--#define GST_WL_BUFFER(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_WL_BUFFER, GstWlBuffer))
--#define GST_IS_WL_BUFFER(obj)               (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_WL_BUFFER))
--#define GST_WL_BUFFER_CLASS(klass)          (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_WL_BUFFER, GstWlBufferClass))
--#define GST_IS_WL_BUFFER_CLASS(klass)       (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_WL_BUFFER))
--#define GST_WL_BUFFER_GET_CLASS(obj)        (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_WL_BUFFER, GstWlBufferClass))
--
--typedef struct _GstWlBuffer GstWlBuffer;
--typedef struct _GstWlBufferClass GstWlBufferClass;
--
--struct _GstWlBuffer
--{
--  GObject parent_instance;
--
--  struct wl_buffer * wlbuffer;
--  GstBuffer *gstbuffer;
--
--  GstWlDisplay *display;
--
--  gboolean used_by_compositor;
--};
--
--struct _GstWlBufferClass
--{
--  GObjectClass parent_class;
--};
--
--GType gst_wl_buffer_get_type (void);
--
--GstWlBuffer * gst_buffer_add_wl_buffer (GstBuffer * gstbuffer,
--    struct wl_buffer * wlbuffer, GstWlDisplay * display);
--GstWlBuffer * gst_buffer_get_wl_buffer (GstBuffer * gstbuffer);
--
--void gst_wl_buffer_force_release_and_unref (GstWlBuffer * self);
--
--void gst_wl_buffer_attach (GstWlBuffer * self, struct wl_surface *surface);
--
--G_END_DECLS
--
--#endif /* __GST_WL_BUFFER_H__ */
-diff --git a/ext/wayland/wldisplay-wlwindow-wlbuffer.h b/ext/wayland/wldisplay-wlwindow-wlbuffer.h
-new file mode 100644
-index 0000000..684d145
---- /dev/null
-+++ b/ext/wayland/wldisplay-wlwindow-wlbuffer.h
-@@ -0,0 +1,216 @@
-+/* GStreamer Wayland video sink
-+ *
-+ * Copyright (C) 2014 Collabora Ltd.
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Library General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2 of the License, or (at your option) any later version.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+ * Library General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Library General Public
-+ * License along with this library; if not, write to the Free
-+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-+ * Boston, MA 02110-1301 USA.
-+ */
-+
-+#ifndef __GST_WL_DISPLAY_WL_WINDOW_H__
-+#define __GST_WL_DISPLAY_WL_WINDOW_H__
-+
-+#include <gst/gst.h>
-+#include <stdlib.h>
-+#include <stdio.h>
-+#include <wayland-client.h>
-+#include "scaler-client-protocol.h"
-+#include <gst/video/video.h>
-+#include <gst/video/gstvideometa.h>
-+
-+G_BEGIN_DECLS
-+
-+#define GST_TYPE_WL_DISPLAY                  (gst_wl_display_get_type ())
-+#define GST_WL_DISPLAY(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_WL_DISPLAY, GstWlDisplay))
-+#define GST_IS_WL_DISPLAY(obj)               (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_WL_DISPLAY))
-+#define GST_WL_DISPLAY_CLASS(klass)          (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_WL_DISPLAY, GstWlDisplayClass))
-+#define GST_IS_WL_DISPLAY_CLASS(klass)       (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_WL_DISPLAY))
-+#define GST_WL_DISPLAY_GET_CLASS(obj)        (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_WL_DISPLAY, GstWlDisplayClass))
-+
-+#define GST_TYPE_WL_WINDOW                  (gst_wl_window_get_type ())
-+#define GST_WL_WINDOW(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_WL_WINDOW, GstWlWindow))
-+#define GST_IS_WL_WINDOW(obj)               (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_WL_WINDOW))
-+#define GST_WL_WINDOW_CLASS(klass)          (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_WL_WINDOW, GstWlWindowClass))
-+#define GST_IS_WL_WINDOW_CLASS(klass)       (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_WL_WINDOW))
-+#define GST_WL_WINDOW_GET_CLASS(obj)        (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_WL_WINDOW, GstWlWindowClass))
-+
-+#define GST_TYPE_WL_BUFFER                  (gst_wl_buffer_get_type ())
-+#define GST_WL_BUFFER(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_WL_BUFFER, GstWlBuffer))
-+#define GST_IS_WL_BUFFER(obj)               (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_WL_BUFFER))
-+#define GST_WL_BUFFER_CLASS(klass)          (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_WL_BUFFER, GstWlBufferClass))
-+#define GST_IS_WL_BUFFER_CLASS(klass)       (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_WL_BUFFER))
-+#define GST_WL_BUFFER_GET_CLASS(obj)        (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_WL_BUFFER, GstWlBufferClass))
-+
-+typedef struct _GstWlBuffer GstWlBuffer;
-+typedef struct _GstWlBufferClass GstWlBufferClass;
-+
-+typedef struct _GstWlWindow GstWlWindow;
-+typedef struct _GstWlWindowClass GstWlWindowClass;
-+
-+typedef struct _GstWlDisplay GstWlDisplay;
-+typedef struct _GstWlDisplayClass GstWlDisplayClass;
-+
-+struct _GstWlBuffer
-+{
-+  GObject parent_instance;
-+
-+  struct wl_buffer * wlbuffer;
-+  GstBuffer *gstbuffer;
-+
-+  GstWlDisplay *display;
-+
-+  gboolean used_by_compositor;
-+};
-+
-+struct _GstWlBufferClass
-+{
-+  GObjectClass parent_class;
-+};
-+
-+GType gst_wl_buffer_get_type (void);
-+
-+GstWlBuffer * gst_buffer_add_wl_buffer (GstBuffer * gstbuffer,
-+    struct wl_buffer * wlbuffer, GstWlDisplay * display);
-+GstWlBuffer * gst_buffer_get_wl_buffer (GstBuffer * gstbuffer);
-+
-+void gst_wl_buffer_force_release_and_unref (GstWlBuffer * self);
-+
-+void gst_wl_buffer_attach (GstWlBuffer * self, struct wl_surface *surface);
-+
-+
-+struct touch_point
-+{
-+  int32_t id;
-+  struct wl_list link;
-+};
-+       
-+struct input
-+{
-+  GstWlDisplay *display;
-+  struct wl_seat *seat;
-+  struct wl_pointer *pointer;
-+  struct wl_touch *touch;
-+  struct wl_list touch_point_list;
-+  GstWlWindow *pointer_focus;
-+  GstWlWindow *touch_focus;
-+  struct wl_list link; 
-+  GstWlWindow *grab;      
-+};
-+
-+
-+struct _GstWlWindow
-+{
-+  GObject parent_instance;
-+
-+  GstWlDisplay *display;
-+  struct wl_surface *area_surface;
-+  struct wl_subsurface *area_subsurface;
-+  struct wl_viewport *area_viewport;
-+  struct wl_surface *video_surface;
-+  struct wl_subsurface *video_subsurface;
-+  struct wl_viewport *video_viewport;
-+  struct wl_shell_surface *shell_surface;
-+
-+  /* the size and position of the area_(sub)surface */
-+  GstVideoRectangle render_rectangle;
-+  /* the size of the video in the buffers */
-+  gint video_width, video_height;
-+  /* the size of the video_(sub)surface */
-+  gint surface_width, surface_height;
-+};
-+
-+struct _GstWlWindowClass
-+{
-+  GObjectClass parent_class;
-+};
-+
-+GType gst_wl_window_get_type (void);
-+
-+GstWlWindow *gst_wl_window_new_toplevel (GstWlDisplay * display,
-+        const GstVideoInfo * info);
-+GstWlWindow *gst_wl_window_new_in_surface (GstWlDisplay * display,
-+        struct wl_surface * parent);
-+
-+GstWlDisplay *gst_wl_window_get_display (GstWlWindow * window);
-+struct wl_surface *gst_wl_window_get_wl_surface (GstWlWindow * window);
-+gboolean gst_wl_window_is_toplevel (GstWlWindow *window);
-+
-+void gst_wl_window_render (GstWlWindow * window, GstWlBuffer * buffer,
-+        const GstVideoInfo * info);
-+void gst_wl_window_set_render_rectangle (GstWlWindow * window, gint x, gint y,
-+        gint w, gint h);
-+
-+
-+struct _GstWlDisplay
-+{
-+  GObject parent_instance;
-+
-+  /* public objects */
-+  struct wl_display *display;
-+  struct wl_event_queue *queue;
-+
-+  /* globals */
-+  struct wl_registry *registry;
-+  struct wl_compositor *compositor;
-+  struct wl_subcompositor *subcompositor;
-+  struct wl_shell *shell;
-+  struct wl_shm *shm;
-+  struct wl_drm *drm;
-+  struct wl_scaler *scaler;
-+  GArray *shm_formats;
-+
-+  /* private */
-+  gboolean own_display;
-+  GThread *thread;
-+  GstPoll *wl_fd_poll;
-+
-+  GMutex buffers_mutex;
-+  GHashTable *buffers;
-+  gboolean shutting_down;
-+
-+  /* the drm device.. needed for sharing direct-render buffers..
-+   * TODO nothing about this should really be omapdrm specific.  But some
-+   * of the code, like hashtable of imported buffers in libdrm_omap should
-+   * be refactored out into some generic libdrm code..
-+   */
-+  struct omap_device *dev;
-+  int fd;
-+  int authenticated;
-+  gboolean use_drm;
-+
-+  struct wl_list input_list;
-+  int seat_version;
-+  uint32_t serial;
-+
-+  GstVideoCropMeta *crop;
-+};
-+
-+struct _GstWlDisplayClass
-+{
-+  GObjectClass parent_class;
-+};
-+
-+GType gst_wl_display_get_type (void);
-+
-+GstWlDisplay *gst_wl_display_new (const gchar * name, GError ** error);
-+GstWlDisplay *gst_wl_display_new_existing (struct wl_display * display,
-+    gboolean take_ownership, GError ** error);
-+
-+/* see wlbuffer.c for explanation */
-+void gst_wl_display_register_buffer (GstWlDisplay * self, gpointer buf);
-+void gst_wl_display_unregister_buffer (GstWlDisplay * self, gpointer buf);
-+
-+G_END_DECLS
-+
-+#endif /* __GST_WL_DISPLAY_WL_WINDOW_H__ */
-diff --git a/ext/wayland/wldisplay.c b/ext/wayland/wldisplay.c
-index 3318095..2f58fd2 100644
---- a/ext/wayland/wldisplay.c
-+++ b/ext/wayland/wldisplay.c
-@@ -22,9 +22,15 @@
- #include <config.h>
- #endif
--#include "wldisplay.h"
--#include "wlbuffer.h"
--
-+#include "wldisplay-wlwindow-wlbuffer.h"
-+
-+#include <wayland-client-protocol.h>
-+#include "wayland-drm-client-protocol.h"
-+#include <linux/input.h>
-+#include <omap_drm.h>
-+#include <omap_drmif.h>
-+#include <fcntl.h>
-+#include <unistd.h>
- #include <errno.h>
- GST_DEBUG_CATEGORY_EXTERN (gstwayland_debug);
-@@ -33,6 +39,8 @@ GST_DEBUG_CATEGORY_EXTERN (gstwayland_debug);
- G_DEFINE_TYPE (GstWlDisplay, gst_wl_display, G_TYPE_OBJECT);
- static void gst_wl_display_finalize (GObject * gobject);
-+static void input_grab (struct input *input, GstWlWindow *window);
-+static void input_ungrab (struct input *input);
- static void
- gst_wl_display_class_init (GstWlDisplayClass * klass)
-@@ -45,12 +53,62 @@ static void
- gst_wl_display_init (GstWlDisplay * self)
- {
-   self->shm_formats = g_array_new (FALSE, FALSE, sizeof (uint32_t));
-+  self->fd = -1;
-+  self->use_drm = FALSE;
-   self->wl_fd_poll = gst_poll_new (TRUE);
-   self->buffers = g_hash_table_new (g_direct_hash, g_direct_equal);
-   g_mutex_init (&self->buffers_mutex);
- }
- static void
-+input_grab (struct input *input, GstWlWindow *window)
-+{
-+  input->grab = window;
-+}
-+
-+static void
-+input_ungrab (struct input *input)
-+{
-+  input->grab = NULL;
-+}
-+
-+static void
-+input_remove_pointer_focus (struct input *input)
-+{
-+  GstWlWindow *window = input->pointer_focus;
-+
-+  if (!window)
-+    return;
-+
-+  input->pointer_focus = NULL;
-+}
-+
-+static void
-+input_destroy (struct input *input)
-+{
-+  input_remove_pointer_focus (input);
-+
-+  if (input->display->seat_version >= 3) {
-+    if (input->pointer)
-+      wl_pointer_release (input->pointer);
-+  }
-+
-+  wl_list_remove (&input->link);
-+  wl_seat_destroy (input->seat);
-+  free (input);
-+}
-+
-+static void
-+display_destroy_inputs (GstWlDisplay *display)
-+{
-+  struct input *tmp;
-+  struct input *input;
-+
-+  wl_list_for_each_safe (input, tmp, &display->input_list, link)
-+      input_destroy (input);
-+}
-+
-+static void
- gst_wl_display_finalize (GObject * gobject)
- {
-   GstWlDisplay *self = GST_WL_DISPLAY (gobject);
-@@ -71,13 +129,26 @@ gst_wl_display_finalize (GObject * gobject)
-   g_hash_table_remove_all (self->buffers);
-   g_array_unref (self->shm_formats);
-+
-+  if (self->dev) {
-+    omap_device_del (self->dev);
-+    self->dev = NULL;
-+  }
-+  if (self->fd !=-1)
-+    close (self->fd);
-+
-   gst_poll_free (self->wl_fd_poll);
-   g_hash_table_unref (self->buffers);
-   g_mutex_clear (&self->buffers_mutex);
-+  display_destroy_inputs (self);
-+
-   if (self->shm)
-     wl_shm_destroy (self->shm);
-+  if (self->drm)
-+    wl_drm_destroy (self->drm);
-+
-   if (self->shell)
-     wl_shell_destroy (self->shell);
-@@ -138,12 +209,277 @@ shm_format (void *data, struct wl_shm *wl_shm, uint32_t format)
-   GstWlDisplay *self = data;
-   g_array_append_val (self->shm_formats, format);
-+  GST_DEBUG ("shm got format: %" GST_FOURCC_FORMAT, GST_FOURCC_ARGS (format));
- }
- static const struct wl_shm_listener shm_listener = {
-   shm_format
- };
-+/* For wl_drm_listener */
-+
-+static void
-+drm_handle_device (void *data, struct wl_drm *drm, const char *device)
-+{
-+  GstWlDisplay *d = data;
-+  drm_magic_t magic;
-+  d->fd = open (device, O_RDWR | O_CLOEXEC);
-+  if (d->fd == -1) {
-+    GST_ERROR ("could not open %s: %m", device);
-+    return;
-+  }
-+  drmGetMagic (d->fd, &magic);
-+  wl_drm_authenticate (d->drm, magic);
-+}
-+
-+static void
-+drm_handle_format (void *data, struct wl_drm *drm, uint32_t format)
-+{
-+  GstWlDisplay *self = data;
-+  g_array_append_val (self->shm_formats, format);
-+  GST_DEBUG ("drm got format: %" GST_FOURCC_FORMAT, GST_FOURCC_ARGS (format));
-+}
-+
-+static void
-+drm_handle_authenticated (void *data, struct wl_drm *drm)
-+{
-+  GstWlDisplay *d = data;
-+  GST_DEBUG ("authenticated");
-+  d->dev = omap_device_new (d->fd);
-+  d->authenticated = 1;
-+  GST_DEBUG ("drm_handle_authenticated: dev: %p, d->authenticated: %d\n",
-+      d->dev, d->authenticated);
-+}
-+
-+static const struct wl_drm_listener drm_listener = {
-+  drm_handle_device,
-+  drm_handle_format,
-+  drm_handle_authenticated
-+};
-+
-+
-+static void
-+pointer_handle_enter (void *data, struct wl_pointer *pointer,
-+    uint32_t serial, struct wl_surface *surface,
-+    wl_fixed_t sx_w, wl_fixed_t sy_w)
-+{
-+  struct input *input = data;
-+
-+  if (!surface) {
-+    /* enter event for a window we've just destroyed */
-+    return;
-+  }
-+
-+  input->display->serial = serial;
-+  input->pointer_focus = wl_surface_get_user_data (surface);
-+}
-+
-+static void
-+pointer_handle_leave (void *data, struct wl_pointer *pointer,
-+    uint32_t serial, struct wl_surface *surface)
-+{
-+  struct input *input = data;
-+
-+  input_remove_pointer_focus (input);
-+}
-+
-+static void
-+pointer_handle_motion (void *data, struct wl_pointer *pointer,
-+    uint32_t time, wl_fixed_t sx_w, wl_fixed_t sy_w)
-+{
-+  struct input *input = data;
-+  GstWlWindow *window = input->pointer_focus;
-+
-+  if (!window)
-+    return;
-+
-+  if (input->grab)
-+    wl_shell_surface_move (input->grab->shell_surface, input->seat,
-+        input->display->serial);
-+
-+}
-+
-+static void
-+pointer_handle_button (void *data, struct wl_pointer *pointer, uint32_t serial,
-+    uint32_t time, uint32_t button, uint32_t state_w)
-+{
-+  struct input *input = data;
-+  enum wl_pointer_button_state state = state_w;
-+  input->display->serial = serial;
-+
-+  if (button == BTN_LEFT) {
-+    if (state == WL_POINTER_BUTTON_STATE_PRESSED)
-+      input_grab (input, input->pointer_focus);
-+
-+    if (input->grab && state == WL_POINTER_BUTTON_STATE_RELEASED)
-+      input_ungrab (input);
-+  }
-+
-+  if (input->grab)
-+    wl_shell_surface_move (input->grab->shell_surface, input->seat,
-+        input->display->serial);
-+}
-+
-+static void
-+pointer_handle_axis (void *data, struct wl_pointer *pointer,
-+    uint32_t time, uint32_t axis, wl_fixed_t value)
-+{
-+}
-+
-+static const struct wl_pointer_listener pointer_listener = {
-+  pointer_handle_enter,
-+  pointer_handle_leave,
-+  pointer_handle_motion,
-+  pointer_handle_button,
-+  pointer_handle_axis,
-+};
-+
-+static void
-+touch_handle_down (void *data, struct wl_touch *wl_touch,
-+    uint32_t serial, uint32_t time, struct wl_surface *surface,
-+    int32_t id, wl_fixed_t x_w, wl_fixed_t y_w)
-+{
-+  struct input *input = data;
-+  struct touch_point *tp;
-+
-+  input->display->serial = serial;
-+  input->touch_focus = wl_surface_get_user_data (surface);
-+  if (!input->touch_focus) {
-+    return;
-+  }
-+
-+  tp = malloc (sizeof *tp);
-+  if (tp) {
-+    tp->id = id;
-+    wl_list_insert (&input->touch_point_list, &tp->link);
-+    wl_shell_surface_move (input->touch_focus->shell_surface, input->seat,
-+        serial);
-+  }
-+}
-+
-+static void
-+touch_handle_motion (void *data, struct wl_touch *wl_touch,
-+    uint32_t time, int32_t id, wl_fixed_t x_w, wl_fixed_t y_w)
-+{
-+  struct input *input = data;
-+  struct touch_point *tp;
-+
-+
-+  if (!input->touch_focus) {
-+    return;
-+  }
-+  wl_list_for_each (tp, &input->touch_point_list, link) {
-+    if (tp->id != id)
-+      continue;
-+
-+    wl_shell_surface_move (input->touch_focus->shell_surface, input->seat,
-+        input->display->serial);
-+
-+    return;
-+  }
-+}
-+
-+static void
-+touch_handle_frame (void *data, struct wl_touch *wl_touch)
-+{
-+}
-+
-+static void
-+touch_handle_cancel (void *data, struct wl_touch *wl_touch)
-+{
-+}
-+
-+static void
-+touch_handle_up (void *data, struct wl_touch *wl_touch,
-+    uint32_t serial, uint32_t time, int32_t id)
-+{
-+  struct input *input = data;
-+  struct touch_point *tp, *tmp;
-+
-+  if (!input->touch_focus) {
-+    return;
-+  }
-+
-+  wl_list_for_each_safe (tp, tmp, &input->touch_point_list, link) {
-+    if (tp->id != id)
-+      continue;
-+
-+    wl_list_remove (&tp->link);
-+    free (tp);
-+
-+    return;
-+  }
-+}
-+
-+static const struct wl_touch_listener touch_listener = {
-+  touch_handle_down,
-+  touch_handle_up,
-+  touch_handle_motion,
-+  touch_handle_frame,
-+  touch_handle_cancel,
-+};
-+
-+
-+static void
-+seat_handle_capabilities (void *data, struct wl_seat *seat,
-+    enum wl_seat_capability caps)
-+{
-+  struct input *input = data;
-+
-+  if ((caps & WL_SEAT_CAPABILITY_POINTER) && !input->pointer) {
-+    input->pointer = wl_seat_get_pointer (seat);
-+    wl_pointer_set_user_data (input->pointer, input);
-+    wl_pointer_add_listener (input->pointer, &pointer_listener, input);
-+  } else if (!(caps & WL_SEAT_CAPABILITY_POINTER) && input->pointer) {
-+    wl_pointer_destroy (input->pointer);
-+    input->pointer = NULL;
-+  }
-+
-+  if ((caps & WL_SEAT_CAPABILITY_TOUCH) && !input->touch) {
-+    input->touch = wl_seat_get_touch (seat);
-+    wl_touch_set_user_data (input->touch, input);
-+    wl_touch_add_listener (input->touch, &touch_listener, input);
-+  } else if (!(caps & WL_SEAT_CAPABILITY_TOUCH) && input->touch) {
-+    wl_touch_destroy (input->touch);
-+    input->touch = NULL;
-+  }
-+}
-+
-+static void
-+seat_handle_name (void *data, struct wl_seat *seat, const char *name)
-+{
-+ 
-+}
-+
-+static const struct wl_seat_listener seat_listener = {
-+  seat_handle_capabilities,
-+  seat_handle_name
-+};
-+
-+static void
-+display_add_input (GstWlDisplay *d, uint32_t id)
-+{
-+  struct input *input;
-+
-+  input = calloc (1, sizeof (*input));
-+  if (input == NULL) {
-+    fprintf (stderr, "%s: out of memory\n", "gst-wayland-sink");
-+    exit (EXIT_FAILURE);
-+  }
-+  input->display = d;
-+  input->seat = wl_registry_bind (d->registry, id, &wl_seat_interface,
-+      MAX (d->seat_version, 3));
-+  input->touch_focus = NULL;
-+  input->pointer_focus = NULL;
-+  wl_list_init (&input->touch_point_list);
-+  wl_list_insert (d->input_list.prev, &input->link);
-+
-+  wl_seat_add_listener (input->seat, &seat_listener, input);
-+  wl_seat_set_user_data (input->seat, input);
-+
-+}
-+
-+
- static void
- registry_handle_global (void *data, struct wl_registry *registry,
-     uint32_t id, const char *interface, uint32_t version)
-@@ -161,6 +497,12 @@ registry_handle_global (void *data, struct wl_registry *registry,
-   } else if (g_strcmp0 (interface, "wl_shm") == 0) {
-     self->shm = wl_registry_bind (registry, id, &wl_shm_interface, 1);
-     wl_shm_add_listener (self->shm, &shm_listener, self);
-+  } else if (g_strcmp0 (interface, "wl_drm") == 0) {
-+    self->drm = wl_registry_bind (registry, id, &wl_drm_interface, 1);
-+    wl_drm_add_listener (self->drm, &drm_listener, self);
-+  } else if (g_strcmp0 (interface, "wl_seat") == 0) {
-+    self->seat_version = version;
-+    display_add_input (self, id);
-   } else if (g_strcmp0 (interface, "wl_scaler") == 0) {
-     self->scaler = wl_registry_bind (registry, id, &wl_scaler_interface, 2);
-   }
-@@ -238,6 +580,7 @@ gst_wl_display_new_existing (struct wl_display * display,
-   self->own_display = take_ownership;
-   self->queue = wl_display_create_queue (self->display);
-+  wl_list_init (&self->input_list);
-   self->registry = wl_display_get_registry (self->display);
-   wl_proxy_set_queue ((struct wl_proxy *) self->registry, self->queue);
-   wl_registry_add_listener (self->registry, &registry_listener, self);
-@@ -266,6 +609,7 @@ gst_wl_display_new_existing (struct wl_display * display,
-   VERIFY_INTERFACE_EXISTS (subcompositor, "wl_subcompositor");
-   VERIFY_INTERFACE_EXISTS (shell, "wl_shell");
-   VERIFY_INTERFACE_EXISTS (shm, "wl_shm");
-+  VERIFY_INTERFACE_EXISTS (drm, "wl_drm");
-   VERIFY_INTERFACE_EXISTS (scaler, "wl_scaler");
- #undef VERIFY_INTERFACE_EXISTS
-diff --git a/ext/wayland/wldisplay.h b/ext/wayland/wldisplay.h
-deleted file mode 100644
-index e9df749..0000000
---- a/ext/wayland/wldisplay.h
-+++ /dev/null
-@@ -1,84 +0,0 @@
--/* GStreamer Wayland video sink
-- *
-- * Copyright (C) 2014 Collabora Ltd.
-- *
-- * This library is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Library General Public
-- * License as published by the Free Software Foundation; either
-- * version 2 of the License, or (at your option) any later version.
-- *
-- * This library is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-- * Library General Public License for more details.
-- *
-- * You should have received a copy of the GNU Library General Public
-- * License along with this library; if not, write to the Free
-- * Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-- * Boston, MA 02110-1301 USA.
-- */
--
--#ifndef __GST_WL_DISPLAY_H__
--#define __GST_WL_DISPLAY_H__
--
--#include <gst/gst.h>
--#include <wayland-client.h>
--#include "scaler-client-protocol.h"
--
--G_BEGIN_DECLS
--
--#define GST_TYPE_WL_DISPLAY                  (gst_wl_display_get_type ())
--#define GST_WL_DISPLAY(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_WL_DISPLAY, GstWlDisplay))
--#define GST_IS_WL_DISPLAY(obj)               (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_WL_DISPLAY))
--#define GST_WL_DISPLAY_CLASS(klass)          (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_WL_DISPLAY, GstWlDisplayClass))
--#define GST_IS_WL_DISPLAY_CLASS(klass)       (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_WL_DISPLAY))
--#define GST_WL_DISPLAY_GET_CLASS(obj)        (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_WL_DISPLAY, GstWlDisplayClass))
--
--typedef struct _GstWlDisplay GstWlDisplay;
--typedef struct _GstWlDisplayClass GstWlDisplayClass;
--
--struct _GstWlDisplay
--{
--  GObject parent_instance;
--
--  /* public objects */
--  struct wl_display *display;
--  struct wl_event_queue *queue;
--
--  /* globals */
--  struct wl_registry *registry;
--  struct wl_compositor *compositor;
--  struct wl_subcompositor *subcompositor;
--  struct wl_shell *shell;
--  struct wl_shm *shm;
--  struct wl_scaler *scaler;
--  GArray *shm_formats;
--
--  /* private */
--  gboolean own_display;
--  GThread *thread;
--  GstPoll *wl_fd_poll;
--
--  GMutex buffers_mutex;
--  GHashTable *buffers;
--  gboolean shutting_down;
--};
--
--struct _GstWlDisplayClass
--{
--  GObjectClass parent_class;
--};
--
--GType gst_wl_display_get_type (void);
--
--GstWlDisplay *gst_wl_display_new (const gchar * name, GError ** error);
--GstWlDisplay *gst_wl_display_new_existing (struct wl_display * display,
--    gboolean take_ownership, GError ** error);
--
--/* see wlbuffer.c for explanation */
--void gst_wl_display_register_buffer (GstWlDisplay * self, gpointer buf);
--void gst_wl_display_unregister_buffer (GstWlDisplay * self, gpointer buf);
--
--G_END_DECLS
--
--#endif /* __GST_WL_DISPLAY_H__ */
-diff --git a/ext/wayland/wldrm.c b/ext/wayland/wldrm.c
-new file mode 100644
-index 0000000..3dc9c21
---- /dev/null
-+++ b/ext/wayland/wldrm.c
-@@ -0,0 +1,69 @@
-+#include "wldisplay-wlwindow-wlbuffer.h"
-+#include <gst/drm/gstdrmallocator.h>
-+#include "wayland-drm-client-protocol.h"
-+#include <omap_drm.h>
-+#include <omap_drmif.h>
-+#include <wayland-client.h>
-+
-+struct wl_buffer *
-+gst_wl_drm_memory_construct_wl_buffer (GstMemory * mem, GstWlDisplay * display,
-+    const GstVideoInfo * info)
-+{
-+  gint video_width = GST_VIDEO_INFO_WIDTH (info);
-+  gint video_height = GST_VIDEO_INFO_HEIGHT (info);
-+  int fd = -1;
-+  struct omap_bo *bo;
-+  struct wl_buffer *buffer;
-+
-+  /* TODO get format, etc from caps.. and query device for
-+   * supported formats, and make this all more flexible to
-+   * cope with various formats:
-+   */
-+  uint32_t fourcc = GST_MAKE_FOURCC ('N', 'V', '1', '2');
-+  uint32_t name;
-+  /* note: wayland and mesa use the terminology:
-+   *    stride - rowstride in bytes
-+   *    pitch  - rowstride in pixels
-+   */
-+  uint32_t strides[3] = {
-+    GST_ROUND_UP_4 (video_width), GST_ROUND_UP_4 (video_width), 0,
-+  };
-+  uint32_t offsets[3] = {
-+    0, strides[0] * video_height, 0
-+  };
-+
-+  fd = gst_fd_memory_get_fd (mem);
-+
-+  if (fd < 0 ) {
-+    GST_DEBUG ("Invalid fd");
-+    return NULL;
-+  }
-+
-+  bo = omap_bo_from_dmabuf (display->dev, fd);
-+
-+  struct drm_gem_flink req = {
-+                  .handle = omap_bo_handle(bo),
-+  };
-+
-+  int ret;
-+  ret = drmIoctl(display->fd, DRM_IOCTL_GEM_FLINK, &req);
-+  if (ret) {
-+    GST_DEBUG ("could not get name, DRM_IOCTL_GEM_FLINK returned %d", ret);
-+    return NULL;
-+  }
-+
-+  name = req.name;
-+
-+ GST_LOG ("width = %d , height = %d , fourcc = %d ",  video_width, video_height, fourcc );
-+ buffer = wl_drm_create_planar_buffer (display->drm, name,
-+      video_width, video_height, fourcc,
-+      offsets[0], strides[0],
-+      offsets[1], strides[1],
-+      offsets[2], strides[2]);
-+
-+  GST_DEBUG ("create planar buffer: %p (name=%d)",
-+      buffer, name);
-+
-+  return buffer;
-+}
-+
-diff --git a/ext/wayland/wldrm.h b/ext/wayland/wldrm.h
-new file mode 100644
-index 0000000..9751029
---- /dev/null
-+++ b/ext/wayland/wldrm.h
-@@ -0,0 +1,3 @@
-+struct wl_buffer *
-+gst_wl_drm_memory_construct_wl_buffer (GstMemory * mem, GstWlDisplay * display,
-+    const GstVideoInfo * info);
-diff --git a/ext/wayland/wlshmallocator.h b/ext/wayland/wlshmallocator.h
-index 07ae17f..2860fc3 100644
---- a/ext/wayland/wlshmallocator.h
-+++ b/ext/wayland/wlshmallocator.h
-@@ -26,7 +26,7 @@
- #include <gst/video/video.h>
- #include <gst/allocators/allocators.h>
- #include <wayland-client-protocol.h>
--#include "wldisplay.h"
-+#include "wldisplay-wlwindow-wlbuffer.h"
- G_BEGIN_DECLS
-diff --git a/ext/wayland/wlvideoformat.c b/ext/wayland/wlvideoformat.c
-index 1302da6..aa336aa 100644
---- a/ext/wayland/wlvideoformat.c
-+++ b/ext/wayland/wlvideoformat.c
-@@ -106,6 +106,10 @@ gst_wl_shm_format_to_video_format (enum wl_shm_format wl_format)
- const gchar *
- gst_wl_shm_format_to_string (enum wl_shm_format wl_format)
- {
--  return gst_video_format_to_string
--      (gst_wl_shm_format_to_video_format (wl_format));
-+  GstVideoFormat fmt = gst_wl_shm_format_to_video_format (wl_format);
-+  if (fmt != GST_VIDEO_FORMAT_UNKNOWN) {
-+    return gst_video_format_to_string (fmt);
-+  } else {
-+    return NULL;
-+  }
- }
-diff --git a/ext/wayland/wlwindow.c b/ext/wayland/wlwindow.c
-index 79000ae..f7e3324 100644
---- a/ext/wayland/wlwindow.c
-+++ b/ext/wayland/wlwindow.c
-@@ -24,9 +24,10 @@
- #include <config.h>
- #endif
--#include "wlwindow.h"
-+#include "wldisplay-wlwindow-wlbuffer.h"
- #include "wlshmallocator.h"
--#include "wlbuffer.h"
-+#include "wldrm.h"
-+#include <gst/drm/gstdrmallocator.h>
- GST_DEBUG_CATEGORY_EXTERN (gstwayland_debug);
- #define GST_CAT_DEFAULT gstwayland_debug
-@@ -111,6 +112,8 @@ gst_wl_window_new_internal (GstWlDisplay * display)
-   window->area_surface = wl_compositor_create_surface (display->compositor);
-   window->video_surface = wl_compositor_create_surface (display->compositor);
-+  wl_surface_set_user_data (window->area_surface, window);
-+  wl_surface_set_user_data (window->video_surface, window);
-   wl_proxy_set_queue ((struct wl_proxy *) window->area_surface, display->queue);
-   wl_proxy_set_queue ((struct wl_proxy *) window->video_surface,
-@@ -126,6 +129,21 @@ gst_wl_window_new_internal (GstWlDisplay * display)
-       window->area_surface);
-   window->video_viewport = wl_scaler_get_viewport (display->scaler,
-       window->video_surface);
-+  if (display->crop) {
-+    GST_DEBUG ("Setting source crop : %d %d %d %d",display->crop->x, display->crop->y,
-+                    display->crop->width, display->crop->height);
-+    wl_viewport_set_source (window->area_viewport,
-+                                        wl_fixed_from_int(display->crop->x),
-+                                        wl_fixed_from_int(display->crop->y),
-+                                        wl_fixed_from_int(display->crop->width),
-+                                        wl_fixed_from_int(display->crop->height));
-+    wl_viewport_set_source (window->video_viewport,
-+                                        wl_fixed_from_int(display->crop->x),
-+                                        wl_fixed_from_int(display->crop->y),
-+                                        wl_fixed_from_int(display->crop->width),
-+                                        wl_fixed_from_int(display->crop->height));
-+
-+  }
-   /* draw the area_subsurface */
-   gst_video_info_set_format (&info,
-@@ -136,14 +154,25 @@ gst_wl_window_new_internal (GstWlDisplay * display)
-       GST_VIDEO_FORMAT_BGRx,
- #endif
-       1, 1);
--
--  buf = gst_buffer_new_allocate (gst_wl_shm_allocator_get (), info.size, NULL);
-+  if (display->use_drm) {
-+    buf = gst_buffer_new_allocate (gst_drm_allocator_get (), info.size, NULL);
-+  } else {
-+    buf = gst_buffer_new_allocate (gst_wl_shm_allocator_get (), info.size, NULL);
-+  } 
-   gst_buffer_map (buf, &mapinfo, GST_MAP_WRITE);
--  *((guint32 *) mapinfo.data) = 0;      /* paint it black */
--  gst_buffer_unmap (buf, &mapinfo);
--  wlbuf =
--      gst_wl_shm_memory_construct_wl_buffer (gst_buffer_peek_memory (buf, 0),
--      display, &info);
-+   *((guint32 *) mapinfo.data) = 0;      /* paint it black */
-+   gst_buffer_unmap (buf, &mapinfo);
-+   
-+  if (display->use_drm) {
-+     wlbuf =
-+       gst_wl_drm_memory_construct_wl_buffer (gst_buffer_peek_memory (buf, 0),
-+       display, &info);
-+   } else {
-+     wlbuf =
-+       gst_wl_shm_memory_construct_wl_buffer (gst_buffer_peek_memory (buf, 0),
-+       display, &info);
-+   }
-+
-   gwlbuf = gst_buffer_add_wl_buffer (buf, wlbuf, display);
-   gst_wl_buffer_attach (gwlbuf, window->area_surface);
-diff --git a/ext/wayland/wlwindow.h b/ext/wayland/wlwindow.h
-deleted file mode 100644
-index e22cb26..0000000
---- a/ext/wayland/wlwindow.h
-+++ /dev/null
-@@ -1,84 +0,0 @@
--/* GStreamer Wayland video sink
-- *
-- * Copyright (C) 2014 Collabora Ltd.
-- *
-- * This library is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Library General Public
-- * License as published by the Free Software Foundation; either
-- * version 2 of the License, or (at your option) any later version.
-- *
-- * This library is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-- * Library General Public License for more details.
-- *
-- * You should have received a copy of the GNU Library General Public
-- * License along with this library; if not, write to the Free
-- * Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-- * Boston, MA 02110-1301 USA.
-- */
--
--#ifndef __GST_WL_WINDOW_H__
--#define __GST_WL_WINDOW_H__
--
--#include "wldisplay.h"
--#include "wlbuffer.h"
--#include <gst/video/video.h>
--
--G_BEGIN_DECLS
--
--#define GST_TYPE_WL_WINDOW                  (gst_wl_window_get_type ())
--#define GST_WL_WINDOW(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_WL_WINDOW, GstWlWindow))
--#define GST_IS_WL_WINDOW(obj)               (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_WL_WINDOW))
--#define GST_WL_WINDOW_CLASS(klass)          (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_WL_WINDOW, GstWlWindowClass))
--#define GST_IS_WL_WINDOW_CLASS(klass)       (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_WL_WINDOW))
--#define GST_WL_WINDOW_GET_CLASS(obj)        (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_WL_WINDOW, GstWlWindowClass))
--
--typedef struct _GstWlWindow GstWlWindow;
--typedef struct _GstWlWindowClass GstWlWindowClass;
--
--struct _GstWlWindow
--{
--  GObject parent_instance;
--
--  GstWlDisplay *display;
--  struct wl_surface *area_surface;
--  struct wl_subsurface *area_subsurface;
--  struct wl_viewport *area_viewport;
--  struct wl_surface *video_surface;
--  struct wl_subsurface *video_subsurface;
--  struct wl_viewport *video_viewport;
--  struct wl_shell_surface *shell_surface;
--
--  /* the size and position of the area_(sub)surface */
--  GstVideoRectangle render_rectangle;
--  /* the size of the video in the buffers */
--  gint video_width, video_height;
--  /* the size of the video_(sub)surface */
--  gint surface_width, surface_height;
--};
--
--struct _GstWlWindowClass
--{
--  GObjectClass parent_class;
--};
--
--GType gst_wl_window_get_type (void);
--
--GstWlWindow *gst_wl_window_new_toplevel (GstWlDisplay * display,
--        const GstVideoInfo * info);
--GstWlWindow *gst_wl_window_new_in_surface (GstWlDisplay * display,
--        struct wl_surface * parent);
--
--GstWlDisplay *gst_wl_window_get_display (GstWlWindow * window);
--struct wl_surface *gst_wl_window_get_wl_surface (GstWlWindow * window);
--gboolean gst_wl_window_is_toplevel (GstWlWindow *window);
--
--void gst_wl_window_render (GstWlWindow * window, GstWlBuffer * buffer,
--        const GstVideoInfo * info);
--void gst_wl_window_set_render_rectangle (GstWlWindow * window, gint x, gint y,
--        gint w, gint h);
--
--G_END_DECLS
--
--#endif /* __GST_WL_WINDOW_H__ */
--- 
-2.7.4
-
diff --git a/meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0005-gstwaylandsink-Implement-callbacks-for-version-5-of-.patch b/meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad/0005-gstwaylandsink-Implement-callbacks-for-version-5-of-.patch
deleted file mode 100644 (file)
index bcb66c8..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-From adfc38273882a102d25fc420adc82b3f225588f9 Mon Sep 17 00:00:00 2001
-From: Pooja Prajod <a0132412@ti.com>
-Date: Mon, 27 Mar 2017 18:27:06 +0530
-Subject: [PATCH] gstwaylandsink: Implement callbacks for version 5 of
- wl_pointer
-
-Few extra callbacks are required for wl_pointer listener
-with the newer weston. Without the extra dummy callbacks
-the pipelines results in segfault.
-
-Signed-off-by: Pooja Prajod <a0132412@ti.com>
----
- ext/wayland/wldisplay.c | 22 +++++++++++++++++++++-
- 1 file changed, 21 insertions(+), 1 deletion(-)
-
-diff --git a/ext/wayland/wldisplay.c b/ext/wayland/wldisplay.c
-index 2f58fd2..54acfdb 100644
---- a/ext/wayland/wldisplay.c
-+++ b/ext/wayland/wldisplay.c
-@@ -326,12 +326,25 @@ pointer_handle_axis (void *data, struct wl_pointer *pointer,
- {
- }
-+static void pointer_frame(void *data, struct wl_pointer *wl_pointer)
-+{
-+}
-+static void pointer_axis_source(void *data, struct wl_pointer *wl_pointer, uint32_t axis_source)
-+{
-+}
-+void pointer_axis_stop(void *data, struct wl_pointer *wl_pointer, uint32_t time, uint32_t axis)
-+{
-+}
-+
- static const struct wl_pointer_listener pointer_listener = {
-   pointer_handle_enter,
-   pointer_handle_leave,
-   pointer_handle_motion,
-   pointer_handle_button,
-   pointer_handle_axis,
-+  pointer_frame,
-+  pointer_axis_source,
-+  pointer_axis_stop
- };
- static void
-@@ -508,8 +521,15 @@ registry_handle_global (void *data, struct wl_registry *registry,
-   }
- }
-+static void
-+registry_handle_global_remove(void *data, struct wl_registry *registry,
-+                uint32_t name)
-+{
-+}
-+
- static const struct wl_registry_listener registry_listener = {
--  registry_handle_global
-+  registry_handle_global,
-+  registry_handle_global_remove
- };
- static gpointer
--- 
-1.9.1
-
diff --git a/meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad_%.bbappend b/meta-agl-bsp/meta-ti/recipes-arago/gstreamer/gstreamer1.0-plugins-bad_%.bbappend
deleted file mode 100644 (file)
index 8d3e6c7..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-
-PACKAGECONFIG = "faad"
-
-# gstreamer is now also included on Keystone, be mindful of any Graphics dependencies
-PACKAGECONFIG_append_omap-a15 = " ${@bb.utils.contains('DISTRO_FEATURES','wayland','wayland','',d)}"
-PACKAGECONFIG_append_ti43x = " ${@bb.utils.contains('DISTRO_FEATURES','wayland','wayland','',d)}"
-PACKAGECONFIG_append_ti33x = " ${@bb.utils.contains('DISTRO_FEATURES','wayland','wayland','',d)}"
-
-DEPENDS_append_omap-a15 = " \
-    libdrm \
-"
-
-DEPENDS_append_ti43x = " \
-    libdrm \
-"
-
-DEPENDS_append_ti33x = " \
-    libdrm \
-"
-
-############## F I X M E #####################
-# FIXME rocko
-DISABLED_ROCKO_SRC_URI_append = " \
-    file://0001-gstdrmallocator-Add-DRM-allocator-support.patch \
-"
-################ F I X M E ####################
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-PR = "r4"
diff --git a/meta-agl-bsp/meta-ti/recipes-arago/ipumm-fw/ipumm-fw_3.00.13.00.bb b/meta-agl-bsp/meta-ti/recipes-arago/ipumm-fw/ipumm-fw_3.00.13.00.bb
deleted file mode 100644 (file)
index a9653f4..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-python __anonymous() {
-    features = d.getVar("MACHINE_FEATURES", 1)
-    if not features:
-        return
-    if "mmip" not in features:
-        raise bb.parse.SkipPackage('ipumm-fw does not apply to systems without the "mmip" flag in MACHINE_FEATURES')
-}
-
-DESCRIPTION = "Firmware for IPU for supporting Accelerated MM decode and encode"
-LICENSE = "TI-TSPA"
-
-LIC_FILES_CHKSUM = "file://MMIP-${PV}-Manifest.doc;md5=255f135205844dcbeab09b481ff9fb3a"
-
-COMPATIBLE_MACHINE = "dra7xx"
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-RDEPENDS_${PN} = " libdce"
-
-SRC_URI = "http://downloads.ti.com/infotainment/esd/jacinto6/processor-sdk-linux-automotive/03_02_00_03/exports/ipumm-dra7xx-evm-${PV}.tar.gz;protocol=http"
-
-SRC_URI[md5sum] = "d5cf8c3be28f22cd94e97ab2b781a4df"
-SRC_URI[sha256sum] = "b003a981cc97d834c81ec653dca9888c0e6c99500ee695a24f3221898f6afed4"
-
-S = "${WORKDIR}/ipumm-dra7xx-evm-${PV}"
-
-TARGET = "dra7-ipu2-fw.xem4"
-
-do_install() {
-        mkdir -p ${D}${base_libdir}/firmware
-        cp ${S}/firmware/${TARGET} ${D}${base_libdir}/firmware/${TARGET}
-}
-
-FILES_${PN} += "${base_libdir}/firmware/${TARGET}"
index 806f490..126d4ed 100644 (file)
@@ -17,23 +17,23 @@ cannot be hidden.
 It is required to set the current_panel to the text_input when the input_panel
 becomes visible at the first time.
 
+Updated for weston 5.0.0 by Scott Murray <scott.murray@konsulko.com>.
+
 Signed-off-by: Eric Ruei <e-ruei1@ti.com>
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
 ---
  compositor/text-backend.c | 1 +
  1 file changed, 1 insertion(+)
 
 diff --git a/compositor/text-backend.c b/compositor/text-backend.c
-index ab4667f..36c70a5 100644
+index 664c36f7..b610dfb1 100644
 --- a/compositor/text-backend.c
 +++ b/compositor/text-backend.c
-@@ -337,6 +337,7 @@ text_input_show_input_panel(struct wl_client *client,
+@@ -349,6 +349,7 @@ text_input_show_input_panel(struct wl_client *client,
                               text_input->surface);
                wl_signal_emit(&ec->update_input_panel_signal,
                               &text_input->cursor_rectangle);
-+              text_input->manager->current_panel = text_input;
++              text_input->manager->current_text_input = text_input;
        }
  }
  
--- 
-1.9.1
-
diff --git a/meta-agl-bsp/meta-ti/recipes-bsp/ti-sgx-ddk-km/ti-sgx-ddk-km/add-AGL-toolchain-config.patch b/meta-agl-bsp/meta-ti/recipes-bsp/ti-sgx-ddk-km/ti-sgx-ddk-km/add-AGL-toolchain-config.patch
new file mode 100644 (file)
index 0000000..9fdd95b
--- /dev/null
@@ -0,0 +1,12 @@
+diff --git a/eurasia_km/eurasiacon/build/linux2/config/compilers/arm-agl-linux-gnueabi.mk b/eurasia_km/eurasiacon/build/linux2/config/compilers/arm-agl-linux-gnueabi.mk
+new file mode 100644
+index 0000000..2abaa9f
+--- /dev/null
++++ b/eurasia_km/eurasiacon/build/linux2/config/compilers/arm-agl-linux-gnueabi.mk
+@@ -0,0 +1,6 @@
++# 32-bit ARM hard float compiler
++ifeq ($(MULTIARCH),1)
++ TARGET_SECONDARY_ARCH := target_armhf
++else
++ TARGET_PRIMARY_ARCH   := target_armhf
++endif
diff --git a/meta-agl-bsp/meta-ti/recipes-bsp/ti-sgx-ddk-km/ti-sgx-ddk-km_%.bbappend b/meta-agl-bsp/meta-ti/recipes-bsp/ti-sgx-ddk-km/ti-sgx-ddk-km_%.bbappend
new file mode 100644 (file)
index 0000000..fd3c6ad
--- /dev/null
@@ -0,0 +1,3 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+SRC_URI += "file://add-AGL-toolchain-config.patch"
index a72aeed..7256abb 100644 (file)
@@ -1,13 +1,13 @@
 diff --git a/ivi-layermanagement-examples/EGLWLMockNavigation/src/OpenGLES2App.cpp b/ivi-layermanagement-examples/EGLWLMockNavigation/src/OpenGLES2App.cpp
-index 2e65864..e14dbc0 100644
+index 50c3e38..2f4910e 100644
 --- a/ivi-layermanagement-examples/EGLWLMockNavigation/src/OpenGLES2App.cpp
 +++ b/ivi-layermanagement-examples/EGLWLMockNavigation/src/OpenGLES2App.cpp
-@@ -244,7 +247,7 @@ bool OpenGLES2App::createEGLContext()
+@@ -248,7 +248,7 @@ bool OpenGLES2App::createEGLContext(SurfaceConfiguration* config)
      m_eglContextStruct.eglSurface = NULL;
      m_eglContextStruct.eglContext = NULL;
  
 -    m_eglContextStruct.eglDisplay = eglGetDisplay(m_wlContextStruct.wlDisplay);
 +    m_eglContextStruct.eglDisplay = eglGetDisplay((EGLNativeDisplayType)m_wlContextStruct.wlDisplay);
-     eglstatus = eglGetError();
      if (!m_eglContextStruct.eglDisplay)
      {
+       cout << "Error: eglGetDisplay() failed.\n";
index 22f4675..6c54c5e 100644 (file)
@@ -1,9 +1,9 @@
 diff --git a/arch/arm/boot/dts/dra7-evm.dts b/arch/arm/boot/dts/dra7-evm.dts
-index 02dc1ae..ec0acfe 100644
+index 35424da..08fca09 100644
 --- a/arch/arm/boot/dts/dra7-evm.dts
 +++ b/arch/arm/boot/dts/dra7-evm.dts
-@@ -166,6 +166,20 @@
-                       DRA7XX_CORE_IOPAD(0x3818, MUX_MODE15 | PULL_UP) /* wakeup0.off */
+@@ -243,6 +243,20 @@
+                       DRA7XX_CORE_IOPAD(0x380c, PIN_INPUT | MUX_MODE1) /* i2c2_scl.hdmi1_ddc_sda */
                >;
        };
 +      dcan2_pins_default: dcan2_pins_default {
@@ -21,12 +21,12 @@ index 02dc1ae..ec0acfe 100644
 +        };
 +
  };
-
  &i2c1 {
-@@ -652,6 +666,13 @@
-       pinctrl-2 = <&dcan1_pins_default>;
+@@ -703,6 +717,13 @@
+       memory-region = <&ipu1_memory_region>;
  };
-
 +&dcan2 {
 +        status = "ok";
 +        pinctrl-names = "default", "sleep";
@@ -36,4 +36,4 @@ index 02dc1ae..ec0acfe 100644
 +
  &dsp1 {
        status = "okay";
-       memory-region = <&dsp1_cma_pool>;
+       memory-region = <&dsp1_memory_region>;
diff --git a/meta-agl-bsp/meta-ti/recipes-kernel/linux/files/fix_dcan_addresses.patch b/meta-agl-bsp/meta-ti/recipes-kernel/linux/files/fix_dcan_addresses.patch
deleted file mode 100644 (file)
index e4b116f..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/arch/arm/boot/dts/dra7.dtsi b/arch/arm/boot/dts/dra7.dtsi
-index 9be07c5..9ecc1f5 100644
---- a/arch/arm/boot/dts/dra7.dtsi
-+++ b/arch/arm/boot/dts/dra7.dtsi
-@@ -2032,7 +2032,7 @@
-                       };
-               };
-
--              dcan1: can@481cc000 {
-+              dcan1: can@4ae3c000 {
-                       compatible = "ti,dra7-d_can";
-                       ti,hwmods = "dcan1";
-                       reg = <0x4ae3c000 0x2000>;
-@@ -2042,7 +2042,7 @@
-                       status = "disabled";
-               };
-
--              dcan2: can@481d0000 {
-+              dcan2: can@48480000 {
-                       compatible = "ti,dra7-d_can";
-                       ti,hwmods = "dcan2";
-                       reg = <0x48480000 0x2000>;
index 356f24f..2f6c449 100644 (file)
@@ -1,5 +1,4 @@
 require recipes-kernel/linux/linux-agl.inc
-require recipes-kernel/linux/linux-agl-4.9.inc
 
 FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
 
@@ -8,6 +7,5 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
 
 SRC_URI += " \
        file://dcan2_pinmux_enable.patch \
-       file://fix_dcan_addresses.patch \
-       "
+"
 
index 8d809a6..eb5d470 100644 (file)
@@ -2,4 +2,4 @@
 shell=ivi-shell.so
 backend=drm-backend.so
 require-input=false
-modules=systemd-notify.so
+modules=systemd-notify.so,ivi-controller.so
diff --git a/meta-agl-bsp/recipes-kernel/kern-tools-native/files/0001-merge_config.sh-add-CR-after-fragment.patch b/meta-agl-bsp/recipes-kernel/kern-tools-native/files/0001-merge_config.sh-add-CR-after-fragment.patch
deleted file mode 100644 (file)
index 350f9d4..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-From 8d12bbfc6179d7e9777e4663e10f1795de158b57 Mon Sep 17 00:00:00 2001
-From: Stephane Desneux <stephane.desneux@iot.bzh>
-Date: Tue, 5 Jun 2018 10:53:24 +0200
-Subject: [PATCH] tools/merge_config.sh: add CR after each fragment
-
-If a fragment file doesn't contain a CR at the end, two config options
-may be merged on the same line in the result file, leading to misconfiguration.
-
-This patch adds a CR after each fragment to ensure that config options
-are well separated in the result file.
-
-Bug-AGL: SPEC-1475
-
-Signed-off-by: Stephane Desneux <stephane.desneux@iot.bzh>
----
- tools/merge_config.sh | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/tools/merge_config.sh b/tools/merge_config.sh
-index 67d1314..296e759 100755
---- a/tools/merge_config.sh
-+++ b/tools/merge_config.sh
-@@ -129,6 +129,8 @@ for MERGE_FILE in $MERGE_LIST ; do
-               sed -i "/$CFG[ =]/d" $TMP_FILE
-       done
-       cat $MERGE_FILE >> $TMP_FILE
-+      # workaround for fragments not ending with carriage return
-+      echo >> $TMP_FILE
- done
- if [ "$RUNMAKE" = "false" ]; then
--- 
-2.1.4
-
diff --git a/meta-agl-bsp/recipes-kernel/kern-tools-native/kern-tools-native_git.bbappend b/meta-agl-bsp/recipes-kernel/kern-tools-native/kern-tools-native_git.bbappend
deleted file mode 100644 (file)
index 8142783..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-
-SRC_URI += "\
-       file://0001-merge_config.sh-add-CR-after-fragment.patch;patchdir=git \
-       "
-
diff --git a/meta-agl-bsp/recipes-support/ptest-runner/ptest-runner/0001-utils.c-Prefer-monotonic-clock-to-calculate-elapsed-.patch b/meta-agl-bsp/recipes-support/ptest-runner/ptest-runner/0001-utils.c-Prefer-monotonic-clock-to-calculate-elapsed-.patch
deleted file mode 100644 (file)
index 6ca593b..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-From 41b7f4814d39c1930b1fcf0be2e247a73546fb80 Mon Sep 17 00:00:00 2001
-From: Jeffrey Pautler <jeffrey.pautler@ni.com>
-Date: Tue, 31 Oct 2017 14:38:39 -0500
-Subject: [PATCH 1/7] utils.c: Prefer monotonic clock to calculate elapsed time
-
-The current implementation uses the system clock to calculate how long
-a ptest has been running with no output. If a ptest changes the system
-clock as part of the test, that can cause the current implementation
-to falsely trigger a timeout or miss an actual timeout. It is
-preferrable to use a monotonic clock for calculating elapsed time in
-order to avoid these issues.
-
-This change tries to use the monotonic clock first and falls back to
-the realtime clock if the monotonic clock is not supported.
-
-Signed-off-by: Jeffrey Pautler <jeffrey.pautler@ni.com>
----
- utils.c | 24 +++++++++++++++++-------
- 1 file changed, 17 insertions(+), 7 deletions(-)
-
-diff --git a/utils.c b/utils.c
-index 6d653887e9e4..933ecedf57e8 100644
---- a/utils.c
-+++ b/utils.c
-@@ -257,7 +257,8 @@ wait_child(const char *ptest_dir, const char *run_ptest, pid_t pid,
-               int timeout, int *fds, FILE **fps)
- {
-       struct pollfd pfds[2];
--      time_t sentinel;
-+      struct timespec sentinel;
-+      clockid_t clock = CLOCK_MONOTONIC;
-       int r;
-       int timeouted = 0;
-@@ -269,7 +270,11 @@ wait_child(const char *ptest_dir, const char *run_ptest, pid_t pid,
-       pfds[1].fd = fds[1];
-       pfds[1].events = POLLIN;
--      sentinel = time(NULL);
-+      if (clock_gettime(clock, &sentinel) == -1) {
-+              clock = CLOCK_REALTIME;
-+              clock_gettime(clock, &sentinel);
-+      }
-+
-       while (1) {
-               waitflags = WNOHANG;
-@@ -288,11 +293,16 @@ wait_child(const char *ptest_dir, const char *run_ptest, pid_t pid,
-                                       fwrite(buf, n, 1, fps[1]);
-                       }
--                      sentinel = time(NULL);
--              } else if (timeout >= 0 && ((time(NULL) - sentinel) > timeout)) {
--                      timeouted = 1;
--                      kill(pid, SIGKILL);
--                      waitflags = 0;
-+                      clock_gettime(clock, &sentinel);
-+              } else if (timeout >= 0) {
-+                      struct timespec time;
-+
-+                      clock_gettime(clock, &time);
-+                      if ((time.tv_sec - sentinel.tv_sec) > timeout) {
-+                              timeouted = 1;
-+                              kill(pid, SIGKILL);
-+                              waitflags = 0;
-+                      }
-               }
-               if (waitpid(pid, &status, waitflags) == pid)
--- 
-2.11.0
-
diff --git a/meta-agl-bsp/recipes-support/ptest-runner/ptest-runner/0002-Makefile-libcheck-now-requires-to-link-subunit.patch b/meta-agl-bsp/recipes-support/ptest-runner/ptest-runner/0002-Makefile-libcheck-now-requires-to-link-subunit.patch
deleted file mode 100644 (file)
index 4ada994..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-From 4f6d6c5e3f2f181e3cc380a76e635e7c34d3c5d1 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linaro.org>
-Date: Thu, 7 Dec 2017 17:42:44 -0600
-Subject: [PATCH 2/7] Makefile: libcheck now requires to link subunit
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
----
- Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 434b89f34688..1bde7beff9d1 100644
---- a/Makefile
-+++ b/Makefile
-@@ -22,7 +22,7 @@ TEST_SOURCES=tests/main.c tests/ptest_list.c tests/utils.c $(BASE_SOURCES)
- TEST_OBJECTS=$(TEST_SOURCES:.c=.o)
- TEST_EXECUTABLE=ptest-runner-test
- TEST_LDFLAGS=-lm -lrt -lpthread
--TEST_LIBSTATIC=-lcheck
-+TEST_LIBSTATIC=-lcheck -lsubunit
- TEST_DATA=$(shell echo `pwd`/tests/data)
--- 
-2.11.0
-
diff --git a/meta-agl-bsp/recipes-support/ptest-runner/ptest-runner/0003-Add-support-to-avoid-load-run-twice-a-run_ptest-scri.patch b/meta-agl-bsp/recipes-support/ptest-runner/ptest-runner/0003-Add-support-to-avoid-load-run-twice-a-run_ptest-scri.patch
deleted file mode 100644 (file)
index 4795733..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-From 0e566f65fa31eaa5208d4a17413c7a4aad7eade5 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linaro.org>
-Date: Thu, 7 Dec 2017 17:42:45 -0600
-Subject: [PATCH 3/7] Add support to avoid load/run twice a run_ptest script
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-In some ptest packages exists symlink in the ptest directory causing
-to load/run twice the same ptest,
-
-For example in perl5:
-
-/usr/lib/perl -> /usr/lib/perl5
-
-Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
----
- ptest_list.c       | 40 ++++++++++++++++++++++++++++++++++++++++
- ptest_list.h       |  3 +++
- tests/data/python3 |  1 +
- tests/utils.c      |  1 +
- utils.c            |  6 ++++++
- 5 files changed, 51 insertions(+)
- create mode 120000 tests/data/python3
-
-diff --git a/ptest_list.c b/ptest_list.c
-index 2e1aa305752d..3e393d5fabe2 100644
---- a/ptest_list.c
-+++ b/ptest_list.c
-@@ -110,6 +110,46 @@ ptest_list_search(struct ptest_list *head, char *ptest)
-       return q;
- }
-+
-+struct ptest_list *
-+ptest_list_search_by_file(struct ptest_list *head, char *run_ptest, struct stat st_buf)
-+{
-+      struct ptest_list *q = NULL;
-+      struct ptest_list *p;
-+      struct stat st_buf_p;
-+
-+      VALIDATE_PTR_RNULL(head);
-+      VALIDATE_PTR_RNULL(run_ptest);
-+
-+      for (p = head; p != NULL; p = p->next) {
-+              if (p->ptest == NULL) 
-+                      continue;
-+
-+              if (stat(p->run_ptest, &st_buf_p) == -1)
-+                      continue;
-+
-+              if (strcmp(p->run_ptest, run_ptest) == 0) {
-+                      q = p;
-+                      break;
-+              }
-+
-+              /* *
-+               * In some ptest packages exists symlink in the ptest directory
-+               * causing to load/run twice the same ptest, 
-+               *
-+               * For example in perl5:
-+               * /usr/lib/perl -> /usr/lib/perl5
-+               * */
-+              if (st_buf.st_dev == st_buf_p.st_dev &&
-+                  st_buf.st_ino == st_buf_p.st_ino) {
-+                      q = p;
-+                      break;
-+              }
-+      }
-+
-+      return q;
-+}
-+
- struct ptest_list *
- ptest_list_add(struct ptest_list *head, char *ptest, char *run_ptest)
- {
-diff --git a/ptest_list.h b/ptest_list.h
-index 8b394853c25b..03d75390a51d 100644
---- a/ptest_list.h
-+++ b/ptest_list.h
-@@ -28,6 +28,8 @@
- #define PTEST_LIST_ITERATE_START(head, p) for (p = head->next; p != NULL; p = p->next) { 
- #define PTEST_LIST_ITERATE_END }
-+#include <sys/stat.h>
-+
- struct ptest_list {
-       char *ptest;
-       char *run_ptest;
-@@ -42,6 +44,7 @@ extern int ptest_list_free_all(struct ptest_list *);
- extern int ptest_list_length(struct ptest_list *);
- extern struct ptest_list *ptest_list_search(struct ptest_list *, char *);
-+extern struct ptest_list *ptest_list_search_by_file(struct ptest_list *, char *, struct stat);
- extern struct ptest_list *ptest_list_add(struct ptest_list *, char *, char *);
- extern struct ptest_list *ptest_list_remove(struct ptest_list *, char *, int);
-diff --git a/tests/data/python3 b/tests/data/python3
-new file mode 120000
-index 000000000000..d8654aa0e2f2
---- /dev/null
-+++ b/tests/data/python3
-@@ -0,0 +1 @@
-+python
-\ No newline at end of file
-diff --git a/tests/utils.c b/tests/utils.c
-index ecf3e8af9a81..cf093793c4f2 100644
---- a/tests/utils.c
-+++ b/tests/utils.c
-@@ -48,6 +48,7 @@ static int ptests_found_length = 6;
- static char *ptests_not_found[] = {
-       "busybox",
-       "perl",
-+      "python3",
-       NULL,
- };
-diff --git a/utils.c b/utils.c
-index 933ecedf57e8..ed2eff7900c1 100644
---- a/utils.c
-+++ b/utils.c
-@@ -143,6 +143,12 @@ get_available_ptests(const char *dir)
-                               continue;
-                       }
-+                      if (ptest_list_search_by_file(head, run_ptest, st_buf)) {
-+                              free(run_ptest);
-+                              free(d_name);
-+                              continue;
-+                      }
-+
-                       struct ptest_list *p = ptest_list_add(head,
-                               d_name, run_ptest);
-                       CHECK_ALLOCATION(p, sizeof(struct ptest_list *), 0);
--- 
-2.11.0
-
diff --git a/meta-agl-bsp/recipes-support/ptest-runner/ptest-runner/0004-README.md-Update-to-my-current-email.patch b/meta-agl-bsp/recipes-support/ptest-runner/ptest-runner/0004-README.md-Update-to-my-current-email.patch
deleted file mode 100644 (file)
index dbfe648..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-From 16413d71cc06b02a6d859c35a017cc49b88283f7 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linaro.org>
-Date: Thu, 7 Dec 2017 17:42:46 -0600
-Subject: [PATCH 4/7] README.md: Update to my current email
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
----
- README.md | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/README.md b/README.md
-index fedab04b7f00..22b36a4b7bed 100644
---- a/README.md
-+++ b/README.md
-@@ -50,7 +50,7 @@ $ mtrace ./ptest-runner $(MALLOC_TRACE)
- For contribute please send a patch with subject prefix "[ptest-runner]" to 
- yocto@yoctoproject.org and cc the current maintainer that is Aníbal Limón 
--<anibal.limon@linux.intel.com>.
-+<anibal.limon@linaro.org>.
- ## Links
--- 
-2.11.0
-
diff --git a/meta-agl-bsp/recipes-support/ptest-runner/ptest-runner/0005-main.c-Use-realpath-to-get-the-actual-directory-of-p.patch b/meta-agl-bsp/recipes-support/ptest-runner/ptest-runner/0005-main.c-Use-realpath-to-get-the-actual-directory-of-p.patch
deleted file mode 100644 (file)
index cb9e20a..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-From 5bd94a93c89978c5e729db86b86b49919cd3b523 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linaro.org>
-Date: Wed, 25 Apr 2018 12:05:29 -0500
-Subject: [PATCH 5/7] main.c: Use realpath to get the actual directory of
- ptests
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Fix usage of relative paths in -d argument.
-
-$ ./ptest-runner -d ./tests/data
-
-Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
----
- main.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/main.c b/main.c
-index 505829cdad58..593aff1a1956 100644
---- a/main.c
-+++ b/main.c
-@@ -19,6 +19,7 @@
-  *    Aníbal Limón <anibal.limon@intel.com>
-  */
-+#include <limits.h>
- #include <unistd.h>
- #include <string.h>
- #include <stdlib.h>
-@@ -70,7 +71,7 @@ main(int argc, char *argv[])
-               switch (opt) {
-                       case 'd':
-                               free(opts.directory);
--                              opts.directory = strdup(optarg);
-+                              opts.directory = realpath(optarg, NULL);
-                               CHECK_ALLOCATION(opts.directory, 1, 1);
-                       break;
-                       case 'l':
--- 
-2.11.0
-
diff --git a/meta-agl-bsp/recipes-support/ptest-runner/ptest-runner/0006-main.c-Add-option-e-to-exclude-certain-tests-for-exe.patch b/meta-agl-bsp/recipes-support/ptest-runner/ptest-runner/0006-main.c-Add-option-e-to-exclude-certain-tests-for-exe.patch
deleted file mode 100644 (file)
index 7a4de86..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-From 49956f65bb53ea2a2c1b394e5e59ffdfcdcc490f Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linaro.org>
-Date: Wed, 25 Apr 2018 11:55:03 -0500
-Subject: [PATCH 6/7] main.c: Add option (-e) to exclude certain tests for
- execution
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-You can specify a set of ptests to be excluded, it will not fail
-if some ptest excluded isn't found in the list of execution.
-
-$ ./ptest-runner -e "hang glibc" -d tests/data
-
-Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
----
- main.c  | 38 +++++++++++++++++++++++++++++++++++---
- utils.h |  1 +
- 2 files changed, 36 insertions(+), 3 deletions(-)
-
-diff --git a/main.c b/main.c
-index 593aff1a1956..83600b7d1b31 100644
---- a/main.c
-+++ b/main.c
-@@ -19,6 +19,7 @@
-  *    Aníbal Limón <anibal.limon@intel.com>
-  */
-+#include <ctype.h>
- #include <limits.h>
- #include <unistd.h>
- #include <string.h>
-@@ -42,8 +43,8 @@
- static inline void
- print_usage(FILE *stream, char *progname)
- {
--      fprintf(stream, "Usage: %s [-d directory] [-l list] [-t timeout] [-x xml-filename]"
--                      " [-h] [ptest1 ptest2 ...]\n", progname);
-+      fprintf(stream, "Usage: %s [-d directory] [-e exclude] [-l list] [-t timeout]"
-+                      " [-x xml-filename] [-h] [ptest1 ptest2 ...]\n", progname);
- }
- int
-@@ -53,6 +54,8 @@ main(int argc, char *argv[])
-       int ptest_num = 0;
-       int i;
-       int rc;
-+      int ptest_exclude_num = 0;
-+      char *c, *tok;
- #ifdef MEMCHECK
-       mtrace();
-@@ -62,18 +65,44 @@ main(int argc, char *argv[])
-       struct ptest_options opts;
-       opts.directory = strdup(DEFAULT_DIRECTORY);
-+      opts.exclude = NULL;
-       opts.list = 0;
-       opts.timeout = DEFAULT_TIMEOUT;
-       opts.ptests = NULL;
-       opts.xml_filename = NULL;
--      while ((opt = getopt(argc, argv, "d:lt:x:h")) != -1) {
-+      while ((opt = getopt(argc, argv, "d:e:lt:x:h")) != -1) {
-               switch (opt) {
-                       case 'd':
-                               free(opts.directory);
-                               opts.directory = realpath(optarg, NULL);
-                               CHECK_ALLOCATION(opts.directory, 1, 1);
-                       break;
-+                      case 'e':
-+                              c = optarg;
-+                              ptest_exclude_num = 1;
-+
-+                              while (*c) {
-+                                      if (isspace(*c))
-+                                              ptest_exclude_num++;
-+                                      c++;
-+                              }
-+
-+
-+                              opts.exclude = malloc(ptest_exclude_num * sizeof(char));
-+                              CHECK_ALLOCATION(opts.exclude, 1, 1);
-+
-+                              i = 0;
-+                              tok = strtok_r(optarg, " ", &c);
-+                              opts.exclude[i] = strdup(tok);
-+                              CHECK_ALLOCATION(opts.exclude[i], 1, 1);
-+                              i++;
-+                              while ((tok = strtok_r(NULL, " ", &c)) != NULL) {
-+                                      opts.exclude[i] = strdup(tok);
-+                                      CHECK_ALLOCATION(opts.exclude[i], 1, 1);
-+                                      i++;
-+                              }
-+                      break;
-                       case 'l':
-                               opts.list = 1;
-                       break;
-@@ -134,6 +163,9 @@ main(int argc, char *argv[])
-               ptest_list_free_all(head);
-       }
-+      for (i = 0; i < ptest_exclude_num; i++)
-+              ptest_list_remove(run, opts.exclude[i], 1);
-+
-       rc = run_ptests(run, opts, argv[0], stdout, stderr);
-       ptest_list_free_all(run);
-diff --git a/utils.h b/utils.h
-index 8fa20a8bf621..ee85163ddfff 100644
---- a/utils.h
-+++ b/utils.h
-@@ -32,6 +32,7 @@
- struct ptest_options {
-       char *directory;
-+      char **exclude;
-       int list;
-       int timeout;
-       char **ptests;
--- 
-2.11.0
-
diff --git a/meta-agl-bsp/recipes-support/ptest-runner/ptest-runner_2.1.bbappend b/meta-agl-bsp/recipes-support/ptest-runner/ptest-runner_2.1.bbappend
deleted file mode 100644 (file)
index 000ab3d..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-
-SRC_URI += "file://0004-README.md-Update-to-my-current-email.patch file://0001-utils.c-Prefer-monotonic-clock-to-calculate-elapsed-.patch file://0002-Makefile-libcheck-now-requires-to-link-subunit.patch file://0003-Add-support-to-avoid-load-run-twice-a-run_ptest-scri.patch file://0005-main.c-Use-realpath-to-get-the-actual-directory-of-p.patch file://0006-main.c-Add-option-e-to-exclude-certain-tests-for-exe.patch file://0007-WIP-Initial-LAVA-support.patch"
-
diff --git a/meta-agl-bsp/recipes-support/ptest-runner/ptest-runner_2.2.bbappend b/meta-agl-bsp/recipes-support/ptest-runner/ptest-runner_2.2.bbappend
new file mode 100644 (file)
index 0000000..7a1d2a8
--- /dev/null
@@ -0,0 +1,4 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+SRC_URI += "file://0007-WIP-Initial-LAVA-support.patch"
+
index 2d03836..601d447 100644 (file)
@@ -83,16 +83,14 @@ DISTRO_FEATURES_APPEND = " "
 DISTRO_FEATURES_remove = "x11"
 DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit pulseaudio"
 
-PREFERRED_VERSION_wayland-ivi-extension ?= "2.0.%"
-
-# Prefer GStreamer 1.10.x by default
-PREFERRED_VERSION_gstreamer1.0              ?= "1.12.%"
-PREFERRED_VERSION_gstreamer1.0-plugins-bad  ?= "1.12.%"
-PREFERRED_VERSION_gstreamer1.0-plugins-base ?= "1.12.%"
-PREFERRED_VERSION_gstreamer1.0-plugins-good ?= "1.12.%"
-PREFERRED_VERSION_gstreamer1.0-plugins-ugly ?= "1.12.%"
-PREFERRED_VERSION_gstreamer1.0-libav        ?= "1.12.%"
-PREFERRED_VERSION_gstreamer1.0-omx          ?= "1.12.%"
+# Prefer GStreamer 1.14.x by default
+PREFERRED_VERSION_gstreamer1.0              ?= "1.14.%"
+PREFERRED_VERSION_gstreamer1.0-plugins-bad  ?= "1.14.%"
+PREFERRED_VERSION_gstreamer1.0-plugins-base ?= "1.14.%"
+PREFERRED_VERSION_gstreamer1.0-plugins-good ?= "1.14.%"
+PREFERRED_VERSION_gstreamer1.0-plugins-ugly ?= "1.14.%"
+PREFERRED_VERSION_gstreamer1.0-libav        ?= "1.14.%"
+PREFERRED_VERSION_gstreamer1.0-omx          ?= "1.14.%"
 
 # Prefer libjpeg-turbo
 PREFERRED_PROVIDER_jpeg = "libjpeg-turbo"
@@ -101,26 +99,6 @@ PREFERRED_PROVIDER_jpeg = "libjpeg-turbo"
 # turn it into a warning
 #BB_DANGLINGAPPENDS_WARNONLY = "1"
 
-# enforce security-related compiler flags by default
-require conf/distro/include/security_flags.inc
-# required overrides, upstreamed but not merged yet:
-# http://lists.openembedded.org/pipermail/openembedded-devel/2016-June/107727.html
-SECURITY_CFLAGS_pn-llvm3.3 = ""
-SECURITY_LDFLAGS_remove_pn-llvm3.3 = "-fstack-protector-strong"
-SECURITY_STRINGFORMAT_pn-gpm = ""
-SECURITY_CFLAGS_pn-libdbus-c++ = ""
-SECURITY_LDFLAGS_pn-libdbus-c++ = ""
-
-# more than 2 targets fail to compile these with the SECURITY compiler flags:
-# Bug tracked as SPEC-593
-SECURITY_CFLAGS_pn-mozjs = ""
-SECURITY_LDFLAGS_pn-mozjs = ""
-SECURITY_CFLAGS_pn-gpm = ""
-SECURITY_LDFLAGS_pn-gpm = ""
-SECURITY_CFLAGS_pn-libatasmart = ""
-SECURITY_LDFLAGS_pn-libatasmart = ""
-SECURITY_CFLAGS_pn-optee-client = ""
-
 # Not yet upstreamed; should be submitted.
 SECURITY_CFLAGS_pn-qtwebengine = "${SECURITY_NO_PIE_CFLAGS}"
 
@@ -180,8 +158,3 @@ DIRFILES_pn-nativesdk-cmake = "1"
 # We exclude the conflicting vars from the sstate task hash.
 # This needs to be verified.
 do_package_write_rpm[vardepsexclude] += "ARCHIVER_TOPDIR PF"
-
-# For https://jira.automotivelinux.org/browse/SPEC-1677
-# Some issues appear, with the yocto version of valgrind, on aarch64.
-# (valgrind exits due to an unhandled instruction')
-PREFERRED_VERSION_valgrind ?= "git"
index 9810f4a..3c60fd4 100644 (file)
@@ -8,3 +8,5 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
 BBFILE_COLLECTIONS += "agl-distro"
 BBFILE_PATTERN_agl-distro = "^${LAYERDIR}/"
 BBFILE_PRIORITY_agl-distro = "70"
+
+LAYERSERIES_COMPAT_agl-distro = "thud"
index 30a2229..aa11e32 100644 (file)
@@ -8,3 +8,5 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
 BBFILE_COLLECTIONS += "aglprofileclusterqt5"
 BBFILE_PATTERN_aglprofileclusterqt5 = "^${LAYERDIR}/"
 BBFILE_PRIORITY_aglprofileclusterqt5 = "70"
+
+LAYERSERIES_COMPAT_aglprofileclusterqt5 = "thud"
index 4ac5d96..e15c3be 100644 (file)
@@ -8,3 +8,5 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
 BBFILE_COLLECTIONS += "aglprofilecluster"
 BBFILE_PATTERN_aglprofilecluster = "^${LAYERDIR}/"
 BBFILE_PRIORITY_aglprofilecluster = "70"
+
+LAYERSERIES_COMPAT_aglprofilecluster = "thud"
index 83c5555..641b228 100644 (file)
@@ -8,3 +8,5 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
 BBFILE_COLLECTIONS += "aglprofilecore"
 BBFILE_PATTERN_aglprofilecore = "^${LAYERDIR}/"
 BBFILE_PRIORITY_aglprofilecore = "80"
+
+LAYERSERIES_COMPAT_aglprofilecore = "thud"
index 02afef7..61086df 100644 (file)
@@ -9,7 +9,8 @@ DEPENDS = "dbus ncurses connman json-c"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=8c16666ae6c159876a0ba63099614381"
 
-SRC_URI = "git://gitlab.com/iotbzh/connman-json-client.git;protocol=https;rev=ad4261a2f87c914667b1f6841c913f6b08d373e2"
+SRC_URI = "git://gitlab.com/iotbzh/connman-json-client.git;protocol=https"
+SRCREV = "2b0f93ec9518c978c04807fe52e95315d6d80e6b"
 
 inherit autotools pkgconfig
 
index 95fc0a9..f129a65 100644 (file)
@@ -1,7 +1,6 @@
---- a/src/connman.service.in   2016-08-15 13:51:03.479478140 +0200
-+++ b/src/connman.service.in   2016-08-15 13:51:33.469478267 +0200
-@@ -7,6 +7,7 @@ RequiresMountsFor=@localstatedir@/lib/co
- After=dbus.service network-pre.target systemd-sysusers.service
+--- connman-1.36.orig/src/connman.service.in   2019-02-18 18:02:07.034947373 -0500
++++ connman-1.36/src/connman.service.in        2019-02-18 18:07:24.689959219 -0500
+@@ -7,6 +7,7 @@
  Before=network.target multi-user.target shutdown.target
  Wants=network.target
  Conflicts=systemd-resolved.service
index 8e45e1c..596fe05 100644 (file)
@@ -1,4 +1,4 @@
-From 0f33143d13d9224ffa8b648e2d9cf11c62ba234d Mon Sep 17 00:00:00 2001
+From 795308b2452ee617da4096914b53ba3a1142e3db Mon Sep 17 00:00:00 2001
 From: Matt Ranostay <matt.ranostay@konsulko.com>
 Date: Fri, 6 Jul 2018 17:19:09 -0700
 Subject: [PATCH] neardal: ncl: fix segfault on help page being displayed
@@ -7,23 +7,21 @@ LISTCMD_NAME is declared as a const char due to being defined in a
 macro so g_strdup it to stop proceeding operations from segfaulting.
 
 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
+
 ---
  ncl/ncl.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/ncl/ncl.c b/ncl/ncl.c
-index ef42862..c26e757 100644
+index 590d13b..f4165b7 100644
 --- a/ncl/ncl.c
 +++ b/ncl/ncl.c
-@@ -342,7 +342,7 @@ int main(int argc, char *argv[])
+@@ -329,7 +329,7 @@ int main(int argc, char *argv[])
                g_io_channel_unref(gNclCtx.channel);
  
                if (show_help)
 -                      ncl_exec(LISTCMD_NAME);
 +                      ncl_exec(g_strdup(LISTCMD_NAME));
  
-               g_main_loop_run(gNclCtx.main_loop);
-       }
--- 
-2.17.1
-
+               rl_callback_handler_install(NCL_PROMPT, ncl_parse_line);
index 22f8163..2de1e68 100644 (file)
@@ -1,7 +1,6 @@
 FILESEXTRAPATHS_append := ":${THISDIR}/files"
 
 SRC_URI_append_class-nativesdk = " \
-    file://0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch \
     file://environment.d-cmake-agl.sh \
 "
 
diff --git a/meta-agl-profile-core/recipes-devtools/cmake/files/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch b/meta-agl-profile-core/recipes-devtools/cmake/files/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch
deleted file mode 100644 (file)
index a233287..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-From a42cfebcd6c684cccf8ad33e5bd5130f7cdba135 Mon Sep 17 00:00:00 2001
-From: Cody P Schafer <dev@codyps.com>
-Date: Thu, 27 Apr 2017 11:35:05 -0400
-Subject: [PATCH] CMakeDetermineSystem: use oe environment vars to load default
- toolchain file in sdk
-
-Passing the toolchain by:
-
- - shell aliases does not work if cmake is called by a script
- - unconditionally by a wrapper script causes cmake to believe it is
-   configuring things when it is not (for example, `cmake --build` breaks).
-
-The OE_CMAKE_TOOLCHAIN_FILE variable is only used as a default if no
-toolchain is explicitly specified.
-
-Setting the CMAKE_TOOLCHAIN_FILE cmake variable is marked as cached
-because '-D' options are cache entries themselves.
-
-Upstream-Status: Inappropriate [oe-core specific]
-Signed-off-by: Cody P Schafer <dev@codyps.com>
----
- Modules/CMakeDetermineSystem.cmake | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/Modules/CMakeDetermineSystem.cmake b/Modules/CMakeDetermineSystem.cmake
-index f34ec5d61..bcac3ef16 100644
---- a/Modules/CMakeDetermineSystem.cmake
-+++ b/Modules/CMakeDetermineSystem.cmake
-@@ -74,6 +74,13 @@ else()
-   endif()
- endif()
-+if(NOT DEFINED CMAKE_TOOLCHAIN_FILE)
-+  if(DEFINED ENV{OE_CMAKE_TOOLCHAIN_FILE})
-+    set(CMAKE_TOOLCHAIN_FILE "$ENV{OE_CMAKE_TOOLCHAIN_FILE}" CACHE FILEPATH "toolchain file")
-+    message(STATUS "Toolchain file defaulted to '${CMAKE_TOOLCHAIN_FILE}'")
-+  endif()
-+endif()
-+
- # if a toolchain file is used, the user wants to cross compile.
- # in this case read the toolchain file and keep the CMAKE_HOST_SYSTEM_*
- # variables around so they can be used in CMakeLists.txt.
--- 
-2.12.2
-
index 576f62c..09f6520 100644 (file)
@@ -15,7 +15,6 @@ RDEPENDS_${PN} = "\
         perf \
         htop \
         powertop \
-        latencytop \
         systemtap \
         screen \
         usbutils \
diff --git a/meta-agl-profile-core/recipes-devtools/rpm/files/0001-Factor-out-and-unify-setting-CLOEXEC.patch b/meta-agl-profile-core/recipes-devtools/rpm/files/0001-Factor-out-and-unify-setting-CLOEXEC.patch
deleted file mode 100644 (file)
index cfddec6..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-From 0a66176074560303bf0870957464239e9757d891 Mon Sep 17 00:00:00 2001
-From: Kir Kolyshkin <kolyshkin@gmail.com>
-Date: Tue, 29 May 2018 17:37:05 -0700
-Subject: [PATCH 1/3] Factor out and unify setting CLOEXEC
-
-Commit 7a7c31f5 ("Set FD_CLOEXEC on opened files before exec from
-lua script is called") copied the code that sets CLOEXEC flag on all
-possible file descriptors from lib/rpmscript.c to luaext/lposix.c,
-essentially creating two copies of the same code (modulo comments
-and the unused assignment).
-
-This commit moves the functionality into its own function, without
-any code modifications, using the version from luaext/lposix.c.
-
-Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
-(cherry picked from commit 9c3e5de3240554c8ea1b29d52eeadee4840fefac)
----
- lib/rpmscript.c        | 17 ++---------------
- luaext/lposix.c        | 13 ++-----------
- rpmio/rpmio.c          | 14 ++++++++++++++
- rpmio/rpmio_internal.h |  6 ++++++
- 4 files changed, 24 insertions(+), 26 deletions(-)
-
-diff --git a/lib/rpmscript.c b/lib/rpmscript.c
-index 98d3f42..61dff83 100644
---- a/lib/rpmscript.c
-+++ b/lib/rpmscript.c
-@@ -18,6 +18,7 @@
- #include "rpmio/rpmlua.h"
- #include "lib/rpmscript.h"
-+#include "rpmio/rpmio_internal.h"
- #include "lib/rpmplugins.h"     /* rpm plugins hooks */
-@@ -161,25 +162,11 @@ static const char * const SCRIPT_PATH = "PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr
- static void doScriptExec(ARGV_const_t argv, ARGV_const_t prefixes,
-                       FD_t scriptFd, FD_t out)
- {
--    int flag;
--    int fdno;
-     int xx;
--    int open_max;
-     (void) signal(SIGPIPE, SIG_DFL);
--    /* XXX Force FD_CLOEXEC on all inherited fdno's. */
--    open_max = sysconf(_SC_OPEN_MAX);
--    if (open_max == -1) {
--      open_max = 1024;
--    }
--    for (fdno = 3; fdno < open_max; fdno++) {
--      flag = fcntl(fdno, F_GETFD);
--      if (flag == -1 || (flag & FD_CLOEXEC))
--          continue;
--      xx = fcntl(fdno, F_SETFD, FD_CLOEXEC);
--      /* XXX W2DO? debug msg for inheirited fdno w/o FD_CLOEXEC */
--    }
-+    rpmSetCloseOnExec();
-     if (scriptFd != NULL) {
-       int sfdno = Fileno(scriptFd);
-diff --git a/luaext/lposix.c b/luaext/lposix.c
-index 0a7c26c..5d7ad3c 100644
---- a/luaext/lposix.c
-+++ b/luaext/lposix.c
-@@ -27,6 +27,7 @@
- #include <unistd.h>
- #include <utime.h>
- #include <rpm/rpmutil.h>
-+#include "rpmio/rpmio_internal.h"
- #define MYNAME                "posix"
- #define MYVERSION     MYNAME " library for " LUA_VERSION " / Nov 2003"
-@@ -335,21 +336,11 @@ static int Pexec(lua_State *L)                   /** exec(path,[args]) */
-       const char *path = luaL_checkstring(L, 1);
-       int i,n=lua_gettop(L);
-       char **argv;
--      int flag, fdno, open_max;
-       if (!have_forked)
-           return luaL_error(L, "exec not permitted in this context");
--      open_max = sysconf(_SC_OPEN_MAX);
--      if (open_max == -1) {
--          open_max = 1024;
--      }
--      for (fdno = 3; fdno < open_max; fdno++) {
--          flag = fcntl(fdno, F_GETFD);
--          if (flag == -1 || (flag & FD_CLOEXEC))
--              continue;
--          fcntl(fdno, F_SETFD, FD_CLOEXEC);
--      }
-+      rpmSetCloseOnExec();
-       argv = malloc((n+1)*sizeof(char*));
-       if (argv==NULL) return luaL_error(L,"not enough memory");
-diff --git a/rpmio/rpmio.c b/rpmio/rpmio.c
-index 0b90984..747bf3c 100644
---- a/rpmio/rpmio.c
-+++ b/rpmio/rpmio.c
-@@ -1477,4 +1477,18 @@ void fdFiniDigest(FD_t fd, int hashalgo,
-     }
- }
-+void rpmSetCloseOnExec(void)
-+{
-+      int flag, fdno, open_max;
-+      open_max = sysconf(_SC_OPEN_MAX);
-+      if (open_max == -1) {
-+              open_max = 1024;
-+      }
-+      for (fdno = 3; fdno < open_max; fdno++) {
-+              flag = fcntl(fdno, F_GETFD);
-+              if (flag == -1 || (flag & FD_CLOEXEC))
-+                      continue;
-+              fcntl(fdno, F_SETFD, FD_CLOEXEC);
-+      }
-+}
-diff --git a/rpmio/rpmio_internal.h b/rpmio/rpmio_internal.h
-index 8c9f1a8..da39250 100644
---- a/rpmio/rpmio_internal.h
-+++ b/rpmio/rpmio_internal.h
-@@ -37,6 +37,12 @@ void fdFiniDigest(FD_t fd, int hashalgo,
- int rpmioSlurp(const char * fn,
-                 uint8_t ** bp, ssize_t * blenp);
-+/**
-+ * Set close-on-exec flag for all opened file descriptors, except
-+ * stdin/stdout/stderr.
-+ */
-+void rpmSetCloseOnExec(void);
-+
- #ifdef __cplusplus
- }
- #endif
--- 
-2.7.4
-
diff --git a/meta-agl-profile-core/recipes-devtools/rpm/files/0002-Optimize-rpmSetCloseOnExec.patch b/meta-agl-profile-core/recipes-devtools/rpm/files/0002-Optimize-rpmSetCloseOnExec.patch
deleted file mode 100644 (file)
index 9354dd6..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-From 6f56aa01a357bbcf9401d79a378ae380f5f939d4 Mon Sep 17 00:00:00 2001
-From: Kir Kolyshkin <kolyshkin@gmail.com>
-Date: Tue, 29 May 2018 17:52:56 -0700
-Subject: [PATCH 2/3] Optimize rpmSetCloseOnExec
-
-In case maximum number of open files limit is set too high, both
-luaext/Pexec() and lib/doScriptExec() spend way too much time
-trying to set FD_CLOEXEC flag for all those file descriptors,
-resulting in severe increase of time it takes to execute say
-rpm or dnf.
-
-This becomes increasingly noticeable when running with e.g. under
-Docker, the reason being:
-
-> $ docker run fedora ulimit -n
-> 1048576
-
-One obvious fix is to use procfs to get the actual list of opened fds
-and iterate over it. My quick-n-dirty benchmark shows the /proc approach
-is about 10x faster than iterating through a list of just 1024 fds,
-so it's an improvement even for default ulimit values.
-
-Note that the old method is still used in case /proc is not available.
-
-While at it,
-
- 1. fix the function by making sure we modify (rather than set)
-    the existing flags. As the only known flag is FD_CLOEXEC,
-    this change is currently purely aesthetical, but in case
-    other flags will appear it will become a real bug fix.
-
- 2. get rid of magic number 3; use STDERR_FILENO
-
-Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
-
-Fixes #444
-
-(cherry picked from commit 5e6f05cd8dad6c1ee6bd1e6e43f176976c9c3416)
----
- rpmio/rpmio.c | 43 ++++++++++++++++++++++++++++++++++---------
- 1 file changed, 34 insertions(+), 9 deletions(-)
-
-diff --git a/rpmio/rpmio.c b/rpmio/rpmio.c
-index 747bf3c..8148aa2 100644
---- a/rpmio/rpmio.c
-+++ b/rpmio/rpmio.c
-@@ -1477,18 +1477,43 @@ void fdFiniDigest(FD_t fd, int hashalgo,
-     }
- }
-+static void set_cloexec(int fd)
-+{
-+      int flags = fcntl(fd, F_GETFD);
-+
-+      if (flags == -1 || (flags & FD_CLOEXEC))
-+              return;
-+
-+      fcntl(fd, F_SETFD, flags | FD_CLOEXEC);
-+}
-+
- void rpmSetCloseOnExec(void)
- {
--      int flag, fdno, open_max;
-+      const int min_fd = STDERR_FILENO; /* don't touch stdin/out/err */
-+      int fd;
-+
-+      DIR *dir = opendir("/proc/self/fd");
-+      if (dir == NULL) { /* /proc not available */
-+              /* iterate over all possible fds, might be slow */
-+              int open_max = sysconf(_SC_OPEN_MAX);
-+              if (open_max == -1)
-+                      open_max = 1024;
--      open_max = sysconf(_SC_OPEN_MAX);
--      if (open_max == -1) {
--              open_max = 1024;
-+              for (fd = min_fd + 1; fd < open_max; fd++)
-+                      set_cloexec(fd);
-+
-+              return;
-       }
--      for (fdno = 3; fdno < open_max; fdno++) {
--              flag = fcntl(fdno, F_GETFD);
--              if (flag == -1 || (flag & FD_CLOEXEC))
--                      continue;
--              fcntl(fdno, F_SETFD, FD_CLOEXEC);
-+
-+      /* iterate over fds obtained from /proc */
-+      struct dirent *entry;
-+      while ((entry = readdir(dir)) != NULL) {
-+              fd = atoi(entry->d_name);
-+              if (fd > min_fd)
-+                      set_cloexec(fd);
-       }
-+
-+      closedir(dir);
-+
-+      return;
- }
--- 
-2.7.4
-
diff --git a/meta-agl-profile-core/recipes-devtools/rpm/files/0003-rpmSetCloseOnExec-use-getrlimit.patch b/meta-agl-profile-core/recipes-devtools/rpm/files/0003-rpmSetCloseOnExec-use-getrlimit.patch
deleted file mode 100644 (file)
index d9b813e..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-From 1f5438d677dca330642158ec0b1c0366c6a65725 Mon Sep 17 00:00:00 2001
-From: Kir Kolyshkin <kolyshkin@gmail.com>
-Date: Tue, 29 May 2018 18:09:27 -0700
-Subject: [PATCH 3/3] rpmSetCloseOnExec: use getrlimit()
-
-In case /proc is not available to get the actual list of opened fds,
-we fall back to iterating through the list of all possible fds.
-
-It is possible that during the course of the program execution the limit
-on number of open file descriptors might be lowered, so using the
-current limit, as returned by sysconf(_SC_OPEN_MAX), might omit some
-fds. Therefore, it is better to use rlim_max from the structure
-filled in by gertlimit(RLIMIT_NOFILE) to make sure we're checking
-all fds.
-
-This slows down the function, but only in the case /proc is not
-available, which should be rare in practice.
-
-Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
-(cherry picked from commit 307e28b4cb08b05bc044482058eeebc9f59bb9a9)
----
- rpmio/rpmio.c | 10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
-
-diff --git a/rpmio/rpmio.c b/rpmio/rpmio.c
-index 8148aa2..0698e53 100644
---- a/rpmio/rpmio.c
-+++ b/rpmio/rpmio.c
-@@ -10,6 +10,7 @@
- #include <sys/personality.h>
- #endif
- #include <sys/utsname.h>
-+#include <sys/resource.h>
- #include <rpm/rpmlog.h>
- #include <rpm/rpmmacro.h>
-@@ -1495,7 +1496,14 @@ void rpmSetCloseOnExec(void)
-       DIR *dir = opendir("/proc/self/fd");
-       if (dir == NULL) { /* /proc not available */
-               /* iterate over all possible fds, might be slow */
--              int open_max = sysconf(_SC_OPEN_MAX);
-+              struct rlimit rl;
-+              int open_max;
-+
-+              if (getrlimit(RLIMIT_NOFILE, &rl) == 0 && rl.rlim_max != RLIM_INFINITY)
-+                      open_max = rl.rlim_max;
-+              else
-+                      open_max = sysconf(_SC_OPEN_MAX);
-+
-               if (open_max == -1)
-                       open_max = 1024;
--- 
-2.7.4
-
diff --git a/meta-agl-profile-core/recipes-devtools/rpm/rpm_%.bbappend b/meta-agl-profile-core/recipes-devtools/rpm/rpm_%.bbappend
deleted file mode 100644 (file)
index 1333a97..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-FILESEXTRAPATHS_append := ":${THISDIR}/files"
-
-SRC_URI_append = "\
-    file://0001-Factor-out-and-unify-setting-CLOEXEC.patch \
-    file://0002-Optimize-rpmSetCloseOnExec.patch \
-    file://0003-rpmSetCloseOnExec-use-getrlimit.patch \
-"
diff --git a/meta-agl-profile-core/recipes-devtools/run-postinsts/run-postinsts/ldconfig-wait.conf b/meta-agl-profile-core/recipes-devtools/run-postinsts/run-postinsts/ldconfig-wait.conf
new file mode 100644 (file)
index 0000000..d706cc5
--- /dev/null
@@ -0,0 +1,2 @@
+[Unit]
+After=ldconfig.service
index fc327b6..4cc2edf 100644 (file)
@@ -1,5 +1,14 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+SRC_URI += "file://ldconfig-wait.conf"
+
 do_configure_append() {
        if ! grep -q StandardOutput= ${WORKDIR}/run-postinsts.service; then
                sed -i '/ExecStart=/iStandardOutput=journal+console' ${WORKDIR}/run-postinsts.service
        fi
 }
+
+do_install_append() {
+       install -d ${D}${sysconfdir}/systemd/system/run-postinsts.service.d
+       install -m 0644 ${WORKDIR}/ldconfig-wait.conf ${D}${sysconfdir}/systemd/system/run-postinsts.service.d
+}
diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-Remove-tests-that-fail-to-build-on-some-PPC32-config.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-Remove-tests-that-fail-to-build-on-some-PPC32-config.patch
deleted file mode 100644 (file)
index a78e195..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-From 9762fd23e1f1db66d4b977c694a17d3bca3fe99a Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Fri, 8 Jan 2016 16:36:29 +0200
-Subject: [PATCH] Remove tests that fail to build on some PPC32 configurations
-
-Failures are documented here:
-http://errors.yoctoproject.org/Errors/Search/?items=10&query=862d702fbb99e484631315aa44b9e46f8fc567da&filter=valgrind&type=recipe
-
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-Upstream-Status: Pending
----
- memcheck/tests/ppc32/Makefile.am | 2 +-
- none/tests/ppc32/Makefile.am     | 4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/memcheck/tests/ppc32/Makefile.am b/memcheck/tests/ppc32/Makefile.am
-index 26b95a2..8f05743 100644
---- a/memcheck/tests/ppc32/Makefile.am
-+++ b/memcheck/tests/ppc32/Makefile.am
-@@ -10,7 +10,7 @@ EXTRA_DIST = $(noinst_SCRIPTS) \
-       power_ISA2_07.stderr.exp power_ISA2_07.vgtest
- check_PROGRAMS = \
--      power_ISA2_05 power_ISA2_07
-+      power_ISA2_07
- power_ISA2_05_CFLAGS = $(AM_CFLAGS) $(WERROR) -Winline -Wall -Wshadow -g \
-               -I$(top_srcdir)/include @FLAG_M32@
-diff --git a/none/tests/ppc32/Makefile.am b/none/tests/ppc32/Makefile.am
-index 196239e..0fe3425 100644
---- a/none/tests/ppc32/Makefile.am
-+++ b/none/tests/ppc32/Makefile.am
-@@ -50,13 +50,13 @@ EXTRA_DIST = \
- check_PROGRAMS = \
-       allexec \
--      lsw jm-insns round \
-+      lsw \
-       test_isa_2_06_part1 test_isa_2_06_part2 test_isa_2_06_part3 \
-       test_dfp1 test_dfp2 test_dfp3 test_dfp4 test_dfp5 \
-       test_isa_2_07_part1 test_isa_2_07_part2 \
-       test_tm test_touch_tm ldst_multiple data-cache-instructions \
-       test_fx test_gx \
--      testVMX twi tw xlc_dbl_u32 power5+_round power6_bcmp \
-+      twi tw xlc_dbl_u32 power6_bcmp \
-       bug129390-ppc32 bug139050-ppc32 \
-       ldstrev mftocrf mcrfs
--- 
-2.6.4
-
diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-makefiles-Drop-setting-mcpu-to-cortex-a8-on-arm-arch.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-makefiles-Drop-setting-mcpu-to-cortex-a8-on-arm-arch.patch
deleted file mode 100644 (file)
index 9f1da7b..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-From 715cf122388f3527afa5649cebf9f1522c240693 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 20 Apr 2017 10:11:16 -0700
-Subject: [PATCH] makefiles: Drop setting -mcpu to cortex-a8 on arm
- architecture
-
-We can not assume that all arches armv7+ are cortex-a8 only
-it fails to build for rpi which is armv7ve based (cortex-a8) cpu
-implementation.
-Fixes
-| cc1: warning: switch -mcpu=cortex-a8 conflicts with -march=armv7ve switch
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Makefile.all.am            |  6 +++---
- helgrind/tests/Makefile.am |  6 +++---
- none/tests/arm/Makefile.am | 18 +++++++++---------
- 3 files changed, 15 insertions(+), 15 deletions(-)
-
-diff --git a/Makefile.all.am b/Makefile.all.am
-index 02059a3..c7c4700 100644
---- a/Makefile.all.am
-+++ b/Makefile.all.am
-@@ -197,11 +197,11 @@ AM_CCASFLAGS_PPC64LE_LINUX  = @FLAG_M64@ -g
- AM_FLAG_M3264_ARM_LINUX   = @FLAG_M32@
- AM_CFLAGS_ARM_LINUX       = @FLAG_M32@ \
--                              $(AM_CFLAGS_BASE) -marm -mcpu=cortex-a8
-+                              $(AM_CFLAGS_BASE) -marm
- AM_CFLAGS_PSO_ARM_LINUX   = @FLAG_M32@ $(AM_CFLAGS_BASE) \
--                              -marm -mcpu=cortex-a8 $(AM_CFLAGS_PSO_BASE)
-+                              -marm $(AM_CFLAGS_PSO_BASE)
- AM_CCASFLAGS_ARM_LINUX    = @FLAG_M32@ \
--                              -marm -mcpu=cortex-a8 -g
-+                              -marm -g
- AM_FLAG_M3264_ARM64_LINUX = @FLAG_M64@
- AM_CFLAGS_ARM64_LINUX     = @FLAG_M64@ $(AM_CFLAGS_BASE)
-diff --git a/helgrind/tests/Makefile.am b/helgrind/tests/Makefile.am
-index df82169..07eb66a 100644
---- a/helgrind/tests/Makefile.am
-+++ b/helgrind/tests/Makefile.am
-@@ -189,9 +189,9 @@ if ! VGCONF_PLATFORMS_INCLUDE_X86_DARWIN
- endif
- if VGCONF_PLATFORMS_INCLUDE_ARM_LINUX
--annotate_hbefore_CFLAGS = $(AM_CFLAGS) -mcpu=cortex-a8
--tc07_hbl1_CFLAGS        = $(AM_CFLAGS) -mcpu=cortex-a8
--tc08_hbl2_CFLAGS        = $(AM_CFLAGS) -mcpu=cortex-a8
-+annotate_hbefore_CFLAGS = $(AM_CFLAGS)
-+tc07_hbl1_CFLAGS        = $(AM_CFLAGS)
-+tc08_hbl2_CFLAGS        = $(AM_CFLAGS)
- else
- annotate_hbefore_CFLAGS = $(AM_CFLAGS)
- tc07_hbl1_CFLAGS        = $(AM_CFLAGS)
-diff --git a/none/tests/arm/Makefile.am b/none/tests/arm/Makefile.am
-index 024eb6d..ccecb90 100644
---- a/none/tests/arm/Makefile.am
-+++ b/none/tests/arm/Makefile.am
-@@ -52,10 +52,10 @@ allexec_CFLAGS             = $(AM_CFLAGS) @FLAG_W_NO_NONNULL@
- # need special helping w.r.t -mfpu and -mfloat-abi, though.
- # Also force -O0 since -O takes hundreds of MB of memory 
- # for v6intThumb.c.
--v6intARM_CFLAGS   = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 -marm
--v6intThumb_CFLAGS = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 -mthumb
-+v6intARM_CFLAGS   = $(AM_CFLAGS) -g -O0 -marm
-+v6intThumb_CFLAGS = $(AM_CFLAGS) -g -O0 -mthumb
--v6media_CFLAGS    = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 -mthumb
-+v6media_CFLAGS    = $(AM_CFLAGS) -g -O0 -mthumb
- v8crypto_a_CFLAGS = $(AM_CFLAGS) -g -O0 -mfpu=crypto-neon-fp-armv8 -marm
- v8crypto_t_CFLAGS = $(AM_CFLAGS) -g -O0 -mfpu=crypto-neon-fp-armv8 -mthumb
-@@ -65,23 +65,23 @@ v8memory_a_CFLAGS = $(AM_CFLAGS) -g -O0 \
- v8memory_t_CFLAGS = $(AM_CFLAGS) -g -O0 \
-                       -march=armv8-a -mfpu=crypto-neon-fp-armv8 -mthumb
--vfp_CFLAGS        = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 \
-+vfp_CFLAGS        = $(AM_CFLAGS) -g -O0 \
-                       -mfpu=neon \
-                       -mthumb
--neon128_CFLAGS    = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 \
-+neon128_CFLAGS    = $(AM_CFLAGS) -g -O0 \
-                       -mfpu=neon \
-                       -mthumb
--neon64_CFLAGS     = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 \
-+neon64_CFLAGS     = $(AM_CFLAGS) -g -O0 \
-                       -mfpu=neon \
-                       -mthumb
- intdiv_CFLAGS   = $(AM_CFLAGS) -g -march=armv7ve -mcpu=cortex-a15 -mthumb
--ldrt_CFLAGS     = $(AM_CFLAGS) -g -mcpu=cortex-a8 -mthumb
--ldrt_arm_CFLAGS         = $(AM_CFLAGS) -g -mcpu=cortex-a8 -marm
-+ldrt_CFLAGS     = $(AM_CFLAGS) -g -mthumb
-+ldrt_arm_CFLAGS         = $(AM_CFLAGS) -g -marm
--vcvt_fixed_float_VFP_CFLAGS = $(AM_CFLAGS) -g -mcpu=cortex-a8 -mfpu=vfpv3
-+vcvt_fixed_float_VFP_CFLAGS = $(AM_CFLAGS) -g -mfpu=vfpv3
- vfpv4_fma_CFLAGS  = $(AM_CFLAGS) -g -O0 -march=armv7ve -mcpu=cortex-a15 -mfpu=vfpv4 -marm
--- 
-2.12.2
-
diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-memcheck-arm64-Define-__THROW-if-not-already-defined.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-memcheck-arm64-Define-__THROW-if-not-already-defined.patch
deleted file mode 100644 (file)
index a48d7db..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-From 3409dc35c15bb14c8a525239806322648e079ab1 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 5 Jul 2017 17:12:43 -0700
-Subject: [PATCH 1/3] memcheck/arm64: Define __THROW if not already defined
-
-Helps compiling with musl where __THROW is not available
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted
-
- memcheck/tests/arm64-linux/scalar.h | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/memcheck/tests/arm64-linux/scalar.h b/memcheck/tests/arm64-linux/scalar.h
-index 9008816..8ef050f 100644
---- a/memcheck/tests/arm64-linux/scalar.h
-+++ b/memcheck/tests/arm64-linux/scalar.h
-@@ -12,6 +12,10 @@
- #include <sys/types.h>
- #include <sys/mman.h>
-+#ifndef __THROW
-+#define __THROW
-+#endif
-+
- // Since we use vki_unistd.h, we can't include <unistd.h>.  So we have to
- // declare this ourselves.
- extern long int syscall (long int __sysno, ...) __THROW;
--- 
-2.13.2
-
diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-memcheck-tests-Use-ucontext_t-instead-of-struct-ucon.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-memcheck-tests-Use-ucontext_t-instead-of-struct-ucon.patch
deleted file mode 100644 (file)
index bf16a1a..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-From 629ac492b1d9bc709d17337eb9b1c28603eca250 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 28 Jun 2017 11:01:25 -0700
-Subject: [PATCH] memcheck/tests: Use ucontext_t instead of struct ucontext
-
-glibc 2.26 does not expose struct ucontext anymore
-
-Upstream-Status: Submitted [https://bugs.kde.org/show_bug.cgi?id=381769]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- memcheck/tests/linux/stack_changes.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/memcheck/tests/linux/stack_changes.c b/memcheck/tests/linux/stack_changes.c
-index ffb49c6..acc4109 100644
---- a/memcheck/tests/linux/stack_changes.c
-+++ b/memcheck/tests/linux/stack_changes.c
-@@ -11,7 +11,7 @@
- // checks that Valgrind notices their stack changes properly.
- #ifdef __GLIBC__
--typedef  struct ucontext  mycontext;
-+typedef ucontext_t  mycontext;
- mycontext ctx1, ctx2, oldc;
- int count;
--- 
-2.13.2
-
diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-sigqueue-Rename-_sifields-to-__si_fields-on-musl.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-sigqueue-Rename-_sifields-to-__si_fields-on-musl.patch
deleted file mode 100644 (file)
index 2736615..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-From 64ad2744acfb4fa40b1c114633a053f87125a203 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 10 Jun 2017 00:46:39 -0700
-Subject: [PATCH 1/6] sigqueue: Rename _sifields to __si_fields on musl
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- memcheck/tests/linux/sigqueue.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/memcheck/tests/linux/sigqueue.c b/memcheck/tests/linux/sigqueue.c
-index d18bd72..acb7cba 100644
---- a/memcheck/tests/linux/sigqueue.c
-+++ b/memcheck/tests/linux/sigqueue.c
-@@ -8,6 +8,11 @@
- #include <syscall.h>
- #include <unistd.h>
-+/* musl libc defines siginfo_t __si_fields instead of _sifields */
-+#if defined(__linux__) && !defined(__GLIBC__)
-+#define _sifields __si_fields
-+#endif
-+
- int main(int argc, char **argv)
- {
-   siginfo_t *si;
--- 
-2.13.1
-
diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-str_tester.c-Limit-rawmemchr-test-to-glibc.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0001-str_tester.c-Limit-rawmemchr-test-to-glibc.patch
deleted file mode 100644 (file)
index 185b8f9..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-From de692e359801a1f0488c76267e4f904dd2efe754 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 10 Jun 2017 00:39:07 -0700
-Subject: [PATCH] str_tester.c: Limit rawmemchr() test to glibc
-
-rawmemchr() is a GNU extention therefore mark it so
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- memcheck/tests/str_tester.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/memcheck/tests/str_tester.c b/memcheck/tests/str_tester.c
-index 9f7790a..47e4b4a 100644
---- a/memcheck/tests/str_tester.c
-+++ b/memcheck/tests/str_tester.c
-@@ -504,7 +504,7 @@ test_strchrnul (void)
- #endif
- // DDD: better done by testing for the function.
--#if !defined(__APPLE__) && !defined(__sun)
-+#if !defined(__APPLE__) && !defined(__sun) && defined(__GLIBC__)
- static void
- test_rawmemchr (void)
- {
-@@ -1442,7 +1442,7 @@ main (void)
-   test_strchrnul ();
- # endif
--# if !defined(__APPLE__) && !defined(__sun)
-+# if !defined(__APPLE__) && !defined(__sun) && defined(__GLIBC__)
-   /* rawmemchr.  */
-   test_rawmemchr ();
- # endif
--- 
-2.13.1
-
diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0002-context-APIs-are-not-available-on-musl.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0002-context-APIs-are-not-available-on-musl.patch
deleted file mode 100644 (file)
index ccf404d..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-From 862b807076d57f2f58ed9d572ddac8bb402774a2 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 10 Jun 2017 01:01:10 -0700
-Subject: [PATCH 2/6] context APIs are not available on musl
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- memcheck/tests/linux/stack_changes.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/memcheck/tests/linux/stack_changes.c b/memcheck/tests/linux/stack_changes.c
-index a978fc2..ffb49c6 100644
---- a/memcheck/tests/linux/stack_changes.c
-+++ b/memcheck/tests/linux/stack_changes.c
-@@ -10,6 +10,7 @@
- // This test is checking the libc context calls (setcontext, etc.) and
- // checks that Valgrind notices their stack changes properly.
-+#ifdef __GLIBC__
- typedef  ucontext_t  mycontext;
- mycontext ctx1, ctx2, oldc;
-@@ -51,9 +52,11 @@ int init_context(mycontext *uc)
-     return ret;
- }
-+#endif
- int main(int argc, char **argv)
- {
-+#ifdef __GLIBC__
-     int c1 = init_context(&ctx1);
-     int c2 = init_context(&ctx2);
-@@ -66,6 +69,8 @@ int main(int argc, char **argv)
-     //free(ctx1.uc_stack.ss_sp);
-     VALGRIND_STACK_DEREGISTER(c2);
-     //free(ctx2.uc_stack.ss_sp);
--
-+#else
-+    printf("libc context call APIs e.g. getcontext() are deprecated by posix\n");
-+#endif
-     return 0;
- }
-
diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0002-memcheck-x86-Define-__THROW-if-not-defined.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0002-memcheck-x86-Define-__THROW-if-not-defined.patch
deleted file mode 100644 (file)
index 5433472..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-From 67d199dbdcbb3feff5f8928f87725fc64c0307d7 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 5 Jul 2017 17:36:42 -0700
-Subject: [PATCH 2/3] memcheck/x86: Define __THROW if not defined
-
-musl does not have __THROW, therefore make it null
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted
-
- memcheck/tests/x86-linux/scalar.h | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/memcheck/tests/x86-linux/scalar.h b/memcheck/tests/x86-linux/scalar.h
-index ef28b03..52f742e 100644
---- a/memcheck/tests/x86-linux/scalar.h
-+++ b/memcheck/tests/x86-linux/scalar.h
-@@ -11,6 +11,10 @@
- #include <sys/types.h>
- #include <sys/mman.h>
-+#ifndef __THROW
-+#define __THROW
-+#endif
-+
- // Since we use vki_unistd.h, we can't include <unistd.h>.  So we have to
- // declare this ourselves.
- extern long int syscall (long int __sysno, ...) __THROW;
--- 
-2.13.2
-
diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0002-remove-rpath.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0002-remove-rpath.patch
deleted file mode 100644 (file)
index e9112da..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-From f96cf1f4eaa72860ab8b5e18ad10fdc704d78c5f Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Tue, 15 Dec 2015 15:01:34 +0200
-Subject: [PATCH 2/5] remove rpath
-
-Upstream-Status: Inappropriate [embedded config]
-Signed-off-by: Saul Wold <sgw@linux.intel.com>
----
- none/tests/Makefile.am | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/none/tests/Makefile.am b/none/tests/Makefile.am
-index 54f2a7e..25b0f49 100644
---- a/none/tests/Makefile.am
-+++ b/none/tests/Makefile.am
-@@ -326,7 +326,6 @@ threadederrno_CFLAGS       += --std=c99
- endif
- tls_SOURCES           = tls.c tls2.c
- tls_DEPENDENCIES      = tls.so tls2.so
--tls_LDFLAGS           = -Wl,-rpath,$(abs_top_builddir)/none/tests
- tls_LDADD             = tls.so tls2.so -lpthread
- tls_so_SOURCES                = tls_so.c
- tls_so_DEPENDENCIES   = tls2.so
-@@ -334,7 +333,7 @@ if VGCONF_OS_IS_DARWIN
-  tls_so_LDFLAGS               = -dynamic -dynamiclib -all_load -fpic
-  tls_so_LDADD         = `pwd`/tls2.so
- else
-- tls_so_LDFLAGS               = -Wl,-rpath,$(abs_top_builddir)/none/tests -shared -fPIC
-+ tls_so_LDFLAGS               = -shared -fPIC
-  tls_so_LDADD         = tls2.so
- endif
- tls_so_CFLAGS         = $(AM_CFLAGS) -fPIC
--- 
-2.6.2
-
diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0003-correct-include-directive-path-for-config.h.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0003-correct-include-directive-path-for-config.h.patch
deleted file mode 100644 (file)
index c2965c4..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-From ecbdea7bd8b08205f1bc3f6b72d4b4a80f313fcb Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 10 Jun 2017 01:03:17 -0700
-Subject: [PATCH 3/6] correct include directive path for config.h
-
-when building out of source tree, it can not find
-the generated config.h otherwise
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- memcheck/tests/linux/syscalls-2007.c  | 2 +-
- memcheck/tests/linux/syslog-syscall.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/memcheck/tests/linux/syscalls-2007.c b/memcheck/tests/linux/syscalls-2007.c
-index b61c6d5..cc3fd62 100644
---- a/memcheck/tests/linux/syscalls-2007.c
-+++ b/memcheck/tests/linux/syscalls-2007.c
-@@ -10,7 +10,7 @@
- #define _GNU_SOURCE
--#include "../../config.h"
-+#include "config.h"
- #include <fcntl.h>
- #include <signal.h>
- #include <stdint.h>
-diff --git a/memcheck/tests/linux/syslog-syscall.c b/memcheck/tests/linux/syslog-syscall.c
-index 1143722..21e758b 100644
---- a/memcheck/tests/linux/syslog-syscall.c
-+++ b/memcheck/tests/linux/syslog-syscall.c
-@@ -6,7 +6,7 @@
-  *    klogctl().
-  */
--#include "../../config.h"
-+#include "config.h"
- #include <stdio.h>
- #if defined(HAVE_SYS_KLOG_H)
- #include <sys/klog.h>
--- 
-2.13.1
-
diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0003-tests-seg_override-Replace-__modify_ldt-with-syscall.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0003-tests-seg_override-Replace-__modify_ldt-with-syscall.patch
deleted file mode 100644 (file)
index fa1344c..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-From d103475875858ab8a2e6b53ce178bb2f63883d4c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 5 Jul 2017 17:37:56 -0700
-Subject: [PATCH 3/3] tests/seg_override: Replace __modify_ldt() with syscall()
-
-__modify_ldt() is specific to glibc, replacing it with syscall()
-makes it more portable.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted
-
- none/tests/x86-linux/seg_override.c | 15 ++++++---------
- 1 file changed, 6 insertions(+), 9 deletions(-)
-
-diff --git a/none/tests/x86-linux/seg_override.c b/none/tests/x86-linux/seg_override.c
-index b7619c9..c89874b 100644
---- a/none/tests/x86-linux/seg_override.c
-+++ b/none/tests/x86-linux/seg_override.c
-@@ -2,6 +2,8 @@
- #include <stdio.h>
- #include <errno.h>
- #include <string.h>
-+#include <unistd.h>
-+#include <syscall.h>
- /* Stuff from Wine. */
-@@ -52,14 +54,11 @@ inline static unsigned int wine_ldt_get_limit( const LDT_ENTRY *ent )
- /* our copy of the ldt */
- LDT_ENTRY ldt_copy[8192];
--/* System call to set LDT entry.  */
--//extern int __modify_ldt (int, struct modify_ldt_ldt_s *, size_t);
--extern int __modify_ldt (int, void *, size_t);
--
- void print_ldt ( void )
- {
-    int res;
--   res = __modify_ldt( 0, ldt_copy, 8192*sizeof(LDT_ENTRY) );
-+   /* System call to set LDT entry.  */
-+   res = syscall(SYS_modify_ldt, 0, ldt_copy, 8192*sizeof(LDT_ENTRY) );
-    printf("got %d bytes\n", res );   
-    perror("error is");
- }
-@@ -83,9 +82,6 @@ struct modify_ldt_ldt_s
-   unsigned int empty:25;
- };
--/* System call to set LDT entry.  */
--//extern int __modify_ldt (int, struct modify_ldt_ldt_s *, size_t);
--
- void set_ldt1 ( void* base )
- {
-   int stat;
-@@ -102,7 +98,8 @@ void set_ldt1 ( void* base )
-   ldt_entry.read_exec_only = 0;
-   ldt_entry.limit_in_pages = 0;
-   ldt_entry.seg_not_present = 0;
--  stat = __modify_ldt (1, &ldt_entry, sizeof (ldt_entry));
-+  /* System call to set LDT entry.  */
-+  stat = syscall(SYS_modify_ldt, 1, &ldt_entry, sizeof (ldt_entry));
-   printf("stat = %d\n", stat);
- }
--- 
-2.13.2
-
diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0004-Fix-out-of-tree-builds.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0004-Fix-out-of-tree-builds.patch
deleted file mode 100644 (file)
index e3b03c9..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-From 739421e253e6eba3eb6438651822f80fa9c0502a Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Tue, 15 Dec 2015 15:31:50 +0200
-Subject: [PATCH 1/2] Fix out of tree builds.
-
-The paths to these files need to be fully specified in
-the out of tree build case. glibc-2.X.supp is a generated file so the full path
-is deliberately not specified in that case.
-
-RP 2013/03/23
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- configure.ac | 68 ++++++++++++++++++++++++++++++------------------------------
- 1 file changed, 34 insertions(+), 34 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 3874296fde0b..7a5ba2c8557e 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -373,50 +373,50 @@ case "${host_os}" in
-            9.*)
-                 AC_MSG_RESULT([Darwin 9.x (${kernel}) / Mac OS X 10.5 Leopard])
-                 AC_DEFINE([DARWIN_VERS], DARWIN_10_5, [Darwin / Mac OS X version])
--                DEFAULT_SUPP="darwin9.supp ${DEFAULT_SUPP}"
--                DEFAULT_SUPP="darwin9-drd.supp ${DEFAULT_SUPP}"
-+                DEFAULT_SUPP="$srcdir/darwin9.supp ${DEFAULT_SUPP}"
-+                DEFAULT_SUPP="$srcdir/darwin9-drd.supp ${DEFAULT_SUPP}"
-                 ;;
-            10.*)
-                 AC_MSG_RESULT([Darwin 10.x (${kernel}) / Mac OS X 10.6 Snow Leopard])
-                 AC_DEFINE([DARWIN_VERS], DARWIN_10_6, [Darwin / Mac OS X version])
--                DEFAULT_SUPP="darwin10.supp ${DEFAULT_SUPP}"
--                DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
-+                DEFAULT_SUPP="$srcdir/darwin10.supp ${DEFAULT_SUPP}"
-+                DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}"
-                 ;;
-            11.*)
-                 AC_MSG_RESULT([Darwin 11.x (${kernel}) / Mac OS X 10.7 Lion])
-                 AC_DEFINE([DARWIN_VERS], DARWIN_10_7, [Darwin / Mac OS X version])
--                DEFAULT_SUPP="darwin11.supp ${DEFAULT_SUPP}"
--                DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
-+                DEFAULT_SUPP="$srcdir/darwin11.supp ${DEFAULT_SUPP}"
-+                DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}"
-                 ;;
-            12.*)
-                 AC_MSG_RESULT([Darwin 12.x (${kernel}) / Mac OS X 10.8 Mountain Lion])
-                 AC_DEFINE([DARWIN_VERS], DARWIN_10_8, [Darwin / Mac OS X version])
--                DEFAULT_SUPP="darwin12.supp ${DEFAULT_SUPP}"
--                DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
-+                DEFAULT_SUPP="$srcdir/darwin12.supp ${DEFAULT_SUPP}"
-+                DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}"
-                 ;;
-            13.*)
-                 AC_MSG_RESULT([Darwin 13.x (${kernel}) / Mac OS X 10.9 Mavericks])
-                 AC_DEFINE([DARWIN_VERS], DARWIN_10_9, [Darwin / Mac OS X version])
--                DEFAULT_SUPP="darwin13.supp ${DEFAULT_SUPP}"
--                DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
-+                DEFAULT_SUPP="$srcdir/darwin13.supp ${DEFAULT_SUPP}"
-+                DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}"
-                 ;;
-            14.*)
-                 AC_MSG_RESULT([Darwin 14.x (${kernel}) / Mac OS X 10.10 Yosemite])
-                 AC_DEFINE([DARWIN_VERS], DARWIN_10_10, [Darwin / Mac OS X version])
--                DEFAULT_SUPP="darwin14.supp ${DEFAULT_SUPP}"
--                DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
-+                DEFAULT_SUPP="$srcdir/darwin14.supp ${DEFAULT_SUPP}"
-+                DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}"
-                 ;;
-            15.*)
-                 AC_MSG_RESULT([Darwin 15.x (${kernel}) / Mac OS X 10.11 El Capitan])
-                 AC_DEFINE([DARWIN_VERS], DARWIN_10_11, [Darwin / Mac OS X version])
--                DEFAULT_SUPP="darwin15.supp ${DEFAULT_SUPP}"
--                DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
-+                DEFAULT_SUPP="$srcdir/darwin15.supp ${DEFAULT_SUPP}"
-+                DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}"
-                 ;;
-            16.*)
-                 AC_MSG_RESULT([Darwin 16.x (${kernel}) / macOS 10.12 Sierra])
-                 AC_DEFINE([DARWIN_VERS], DARWIN_10_12, [Darwin / Mac OS X version])
--                DEFAULT_SUPP="darwin16.supp ${DEFAULT_SUPP}"
--                DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
-+                DEFAULT_SUPP="$srcdir/darwin16.supp ${DEFAULT_SUPP}"
-+                DEFAULT_SUPP="$srcdir/darwin10-drd.supp ${DEFAULT_SUPP}"
-                 ;;
-              *) 
-                 AC_MSG_RESULT([unsupported (${kernel})])
-@@ -457,10 +457,10 @@ case "${host_os}" in
-         uname_v=$( uname -v )
-         case "$uname_v" in
-              11.4.*)
--                 DEFAULT_SUPP="solaris12.supp ${DEFAULT_SUPP}"
-+                 DEFAULT_SUPP="$srcdir/solaris12.supp ${DEFAULT_SUPP}"
-                  ;;
-              *)
--                 DEFAULT_SUPP="solaris11.supp ${DEFAULT_SUPP}"
-+                 DEFAULT_SUPP="$srcdir/solaris11.supp ${DEFAULT_SUPP}"
-                  ;;
-        esac
-         ;;
-@@ -468,7 +468,7 @@ case "${host_os}" in
-      solaris2.12*)
-         AC_MSG_RESULT([ok (${host_os})])
-         VGCONF_OS="solaris"
--        DEFAULT_SUPP="solaris12.supp ${DEFAULT_SUPP}"
-+        DEFAULT_SUPP="$srcdir/solaris12.supp ${DEFAULT_SUPP}"
-         ;;
-      *)
-@@ -982,29 +982,29 @@ AC_MSG_CHECKING([the glibc version])
- case "${GLIBC_VERSION}" in
-      2.2)
-       AC_MSG_RESULT(${GLIBC_VERSION} family)
--      DEFAULT_SUPP="glibc-2.2.supp ${DEFAULT_SUPP}"
--      DEFAULT_SUPP="glibc-2.2-LinuxThreads-helgrind.supp ${DEFAULT_SUPP}"
--      DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
-+      DEFAULT_SUPP="$srcdir/glibc-2.2.supp ${DEFAULT_SUPP}"
-+      DEFAULT_SUPP="$srcdir/glibc-2.2-LinuxThreads-helgrind.supp ${DEFAULT_SUPP}"
-+      DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
-       ;;
-      2.[[3-6]])
-       AC_MSG_RESULT(${GLIBC_VERSION} family)
--      DEFAULT_SUPP="glibc-${GLIBC_VERSION}.supp ${DEFAULT_SUPP}"
--      DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
--      DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
-+      DEFAULT_SUPP="$srcdir/glibc-${GLIBC_VERSION}.supp ${DEFAULT_SUPP}"
-+      DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
-+      DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
-       ;;
-      2.[[7-9]])
-       AC_MSG_RESULT(${GLIBC_VERSION} family)
-       DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
--      DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
--      DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
-+      DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
-+      DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
-       ;;
-      2.10|2.11)
-       AC_MSG_RESULT(${GLIBC_VERSION} family)
-       AC_DEFINE([GLIBC_MANDATORY_STRLEN_REDIRECT], 1,
-                 [Define to 1 if strlen() has been optimized heavily (amd64 glibc >= 2.10)])
-       DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
--      DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
--      DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
-+      DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
-+      DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
-       ;;
-      2.*)
-       AC_MSG_RESULT(${GLIBC_VERSION} family)
-@@ -1013,8 +1013,8 @@ case "${GLIBC_VERSION}" in
-       AC_DEFINE([GLIBC_MANDATORY_INDEX_AND_STRLEN_REDIRECT], 1,
-                 [Define to 1 if index() and strlen() have been optimized heavily (x86 glibc >= 2.12)])
-       DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
--      DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
--      DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
-+      DEFAULT_SUPP="$srcdir/glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
-+      DEFAULT_SUPP="$srcdir/glibc-2.X-drd.supp ${DEFAULT_SUPP}"
-       ;;
-      darwin)
-       AC_MSG_RESULT(Darwin)
-@@ -1024,7 +1024,7 @@ case "${GLIBC_VERSION}" in
-      bionic)
-       AC_MSG_RESULT(Bionic)
-       AC_DEFINE([BIONIC_LIBC], 1, [Define to 1 if you're using Bionic])
--      DEFAULT_SUPP="bionic.supp ${DEFAULT_SUPP}"
-+      DEFAULT_SUPP="$srcdir/bionic.supp ${DEFAULT_SUPP}"
-       ;;
-      solaris)
-       AC_MSG_RESULT(Solaris)
-@@ -1051,11 +1051,11 @@ if test "$VGCONF_OS" != "solaris"; then
-     # attempt to detect whether such libraries are installed on the
-     # build machine (or even if any X facilities are present); just
-     # add the suppressions antidisirregardless.
--    DEFAULT_SUPP="xfree-4.supp ${DEFAULT_SUPP}"
--    DEFAULT_SUPP="xfree-3.supp ${DEFAULT_SUPP}"
-+    DEFAULT_SUPP="$srcdir/xfree-4.supp ${DEFAULT_SUPP}"
-+    DEFAULT_SUPP="$srcdir/xfree-3.supp ${DEFAULT_SUPP}"
-     # Add glibc and X11 suppressions for exp-sgcheck
--    DEFAULT_SUPP="exp-sgcheck.supp ${DEFAULT_SUPP}"
-+    DEFAULT_SUPP="$srcdir/exp-sgcheck.supp ${DEFAULT_SUPP}"
- fi
--- 
-2.13.2.3.g44cd85c14
-
diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0004-pth_atfork1.c-Define-error-API-for-musl.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0004-pth_atfork1.c-Define-error-API-for-musl.patch
deleted file mode 100644 (file)
index 1cb7062..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-From fb77fef4f866dac7bcc6d1ae025da60564869f84 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 10 Jun 2017 01:06:11 -0700
-Subject: [PATCH 4/6] pth_atfork1.c: Define error() API for musl
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- none/tests/pth_atfork1.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/none/tests/pth_atfork1.c b/none/tests/pth_atfork1.c
-index 34201ef..b7f5f2d 100644
---- a/none/tests/pth_atfork1.c
-+++ b/none/tests/pth_atfork1.c
-@@ -18,7 +18,7 @@
-    Boston, MA 02111-1307, USA.  */
- #include <errno.h>
--#if !defined(__APPLE__) && !defined(__sun)
-+#if !defined(__APPLE__) && !defined(__sun) && defined(__GLIBC__)
- # include <error.h>
- #endif
- #include <stdlib.h>
-@@ -27,7 +27,7 @@
- #include <sys/wait.h>
- #include <stdio.h>
--#if defined(__APPLE__) || defined(__sun)
-+#if defined(__APPLE__) || defined(__sun) || (defined(__linux__) && !defined(__GLIBC__))
- #include <string.h>  /* strerror */
- static void error (int status, int errnum, char* msg)
- {
--- 
-2.13.1
-
diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0005-Modify-vg_test-wrapper-to-support-PTEST-formats.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0005-Modify-vg_test-wrapper-to-support-PTEST-formats.patch
deleted file mode 100644 (file)
index 7985308..0000000
+++ /dev/null
@@ -1,252 +0,0 @@
-From f49f27f1bc67d07440b0ac9a7d767a8ea1589bfe Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Tue, 15 Dec 2015 15:50:44 +0200
-Subject: [PATCH 5/5] Modify vg_test wrapper to support PTEST formats
-
-Change the valgrind regression test script vg_regtest to
-support the yocto ptest stdout reporting format.  The commit adds
-'--yocto-ptest' as an optional argument to vg_regtest, which alters
-the output to use the ptest infrastructure reporting format:
-    "[PASS|SKIP|FAIL]: testname"
-instead of valgrind's internal test reporting format.  Without the added
-option, --yocto-ptest, the valgrind regression test output is unchanged.
-
-Enforce 30 seconds limit for the test.
-This resume execution of the remaining tests when valgrind hangs.
-
-Upstream-Status: Pending
-
-Signed-off-by: Dave Lerner <dave.lerner@windriver.com>
-Signed-off-by: Tudor Florea <tudor.florea@enea.com>
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- tests/vg_regtest.in | 75 +++++++++++++++++++++++++++++++++++++++--------------
- 1 file changed, 55 insertions(+), 20 deletions(-)
-
-diff --git a/tests/vg_regtest.in b/tests/vg_regtest.in
-index a441f42..cb05b52 100755
---- a/tests/vg_regtest.in
-+++ b/tests/vg_regtest.in
-@@ -47,6 +47,7 @@
- #   --loop-till-fail: loops on the test(s) till one fail, then exit
- #              This is useful to obtain detailed trace or --keep-unfiltered
- #              output of a non deterministic test failure
-+#   --yocto-ptest: output in yocto ptest format
- #
- # The easiest way is to run all tests in valgrind/ with (assuming you installed
- # in $PREFIX):
-@@ -139,7 +140,7 @@ my $usage="\n"
-      . "Usage:\n"
-      . "   vg_regtest [--all, --valgrind, --valgrind-lib, --keep-unfiltered\n"
-      . "                 --outer-valgrind, --outer-tool, --outer-args\n"
--     . "                 --loop-till-fail]\n"
-+     . "                 --loop-till-fail, --yocto-ptest]\n"
-      . "   Use EXTRA_REGTEST_OPTS to supply extra args for all tests\n"
-      . "\n";
-@@ -186,6 +187,7 @@ my $outer_args;
- my $valgrind_lib = "$tests_dir/.in_place";
- my $keepunfiltered = 0;
- my $looptillfail = 0;
-+my $yoctoptest = 0;
- # default filter is the one named "filter_stderr" in the test's directory
- my $default_stderr_filter = "filter_stderr";
-@@ -244,6 +246,8 @@ sub process_command_line()
-                 $keepunfiltered = 1;
-             } elsif ($arg =~ /^--loop-till-fail$/) {
-                 $looptillfail = 1;
-+            } elsif ($arg =~ /^--yocto-ptest$/) {
-+                $yoctoptest = 1;
-             } else {
-                 die $usage;
-             }
-@@ -365,13 +369,28 @@ sub read_vgtest_file($)
- #----------------------------------------------------------------------------
- # Since most of the program time is spent in system() calls, need this to
- # propagate a Ctrl-C enabling us to quit.
--sub mysystem($) 
-+# Enforce 30 seconds limit for the test.
-+# This resume execution of the remaining tests if valgrind hangs.
-+sub mysystem($)
- {
--    my $exit_code = system($_[0]);
--    ($exit_code == 2) and exit 1;      # 2 is SIGINT
--    return $exit_code;
-+    my $exit_code=0;
-+    eval {
-+        local $SIG{'ALRM'} = sub { die "timed out\n" };
-+        alarm(30);
-+        $exit_code = system($_[0]);
-+        alarm (0);
-+        ($exit_code == 2) and die "SIGINT\n";   # 2 is SIGINT
-+    };
-+    if ($@) {
-+        if ($@ eq "timed out\n") {
-+            print "timed out\n";
-+            return 1;
-+        }
-+        if ($@ eq "SIGINT\n") {
-+            exit 1;
-+        }
-+    }
- }
--
- # if $keepunfiltered, copies $1 to $1.unfiltered.out
- # renames $0 tp $1
- sub filtered_rename($$) 
-@@ -419,23 +438,25 @@ sub do_diffs($$$$)
-                 # A match;  remove .out and any previously created .diff files.
-                 unlink("$name.$mid.out");
-                 unlink(<$name.$mid.diff*>);
--                return;
-+                return 0;
-             }
-         }
-     }
-     # If we reach here, none of the .exp files matched.
--    print "*** $name failed ($mid) ***\n";
-+    print "*** $name failed ($mid) ***\n" if ($yoctoptest == 0) ;
-     push(@failures, sprintf("%-40s ($mid)", "$fullname"));
-     $num_failures{$mid}++;
-     if ($looptillfail == 1) {
-        print "Failure encountered, stopping to loop\n";
-        exit 1
-     }
-+    return 1;
- }
- sub do_one_test($$) 
- {
-     my ($dir, $vgtest) = @_;
-+    my $diffStatus = 0;
-     $vgtest =~ /^(.*)\.vgtest/;
-     my $name = $1;
-     my $fullname = "$dir/$name"; 
-@@ -454,7 +475,11 @@ sub do_one_test($$)
-         } elsif (256 == $prereq_res) {
-             # Nb: weird Perl-ism -- exit code of '1' is seen by Perl as 256...
-             # Prereq failed, skip.
--            printf("%-16s (skipping, prereq failed: $prereq)\n", "$name:");
-+            if ($yoctoptest == 0) {
-+                printf("%-16s (skipping, prereq failed: $prereq)\n", "$name:");
-+            } else {
-+                printf("SKIP: $fullname\n");
-+            }
-             return;
-         } else {
-             # Bad prereq; abort.
-@@ -472,7 +497,7 @@ sub do_one_test($$)
-         }
-         # If there is a progB, let's start it in background:
-         printf("%-16s valgrind $extraopts $vgopts $prog $args (progB: $progB $argsB)\n",
--               "$name:");
-+               "$name:") if ($yoctoptest == 0);
-         # progB.done used to detect child has finished. See below.
-         # Note: redirection of stdout and stderr is before $progB to allow argsB
-         # to e.g. redirect stdoutB to stderrB
-@@ -488,7 +513,8 @@ sub do_one_test($$)
-                      . "touch progB.done)  &");
-         }
-     } else {
--        printf("%-16s valgrind $extraopts $vgopts $prog $args\n", "$name:");
-+        printf("%-16s valgrind $extraopts $vgopts $prog $args\n", "$name:")
-+            if ($yoctoptest == 0);
-     }
-     # Collect environment variables, if any.
-@@ -529,7 +555,7 @@ sub do_one_test($$)
-     # Find all the .stdout.exp files.  If none, use /dev/null.
-     my @stdout_exps = <$name.stdout.exp*>;
-     @stdout_exps = ( "/dev/null" ) if (0 == scalar @stdout_exps);
--    do_diffs($fullname, $name, "stdout", \@stdout_exps); 
-+    $diffStatus |= do_diffs($fullname, $name, "stdout", \@stdout_exps);
-     # Filter stderr
-     $stderr_filter_args = $name if (! defined $stderr_filter_args);
-@@ -538,7 +564,7 @@ sub do_one_test($$)
-     # Find all the .stderr.exp files.  At least one must exist.
-     my @stderr_exps = <$name.stderr.exp*>;
-     (0 != scalar @stderr_exps) or die "Could not find `$name.stderr.exp*'\n";
--    do_diffs($fullname, $name, "stderr", \@stderr_exps); 
-+    $diffStatus |= do_diffs($fullname, $name, "stderr", \@stderr_exps);
-     if (defined $progB) {
-         # wait for the child to be finished
-@@ -562,7 +588,7 @@ sub do_one_test($$)
-         # Find all the .stdoutB.exp files.  If none, use /dev/null.
-         my @stdoutB_exps = <$name.stdoutB.exp*>;
-         @stdoutB_exps = ( "/dev/null" ) if (0 == scalar @stdoutB_exps);
--        do_diffs($fullname, $name, "stdoutB", \@stdoutB_exps); 
-+        $diffStatus |= do_diffs($fullname, $name, "stdoutB", \@stdoutB_exps);
-         
-         # Filter stderr
-         $stderrB_filter_args = $name if (! defined $stderrB_filter_args);
-@@ -571,7 +597,7 @@ sub do_one_test($$)
-         # Find all the .stderrB.exp files.  At least one must exist.
-         my @stderrB_exps = <$name.stderrB.exp*>;
-         (0 != scalar @stderrB_exps) or die "Could not find `$name.stderrB.exp*'\n";
--        do_diffs($fullname, $name, "stderrB", \@stderrB_exps); 
-+        $diffStatus |= do_diffs($fullname, $name, "stderrB", \@stderrB_exps);
-     }
-     # Maybe do post-test check
-@@ -583,7 +609,7 @@ sub do_one_test($$)
-           # Find all the .post.exp files.  If none, use /dev/null.
-           my @post_exps = <$name.post.exp*>;
-           @post_exps = ( "/dev/null" ) if (0 == scalar @post_exps);
--          do_diffs($fullname, $name, "post", \@post_exps);
-+          $diffStatus |= do_diffs($fullname, $name, "post", \@post_exps);
-       }
-     }
-  
-@@ -592,6 +618,13 @@ sub do_one_test($$)
-             print("(cleanup operation failed: $cleanup)\n");
-     }
-+    if ($yoctoptest == 1) {
-+        if ($diffStatus == 0) {
-+            print("PASS: $fullname\n");
-+        } else {
-+            print("FAIL: $fullname\n");
-+        }
-+    }
-     $num_tests_done++;
- }
-@@ -631,7 +664,7 @@ sub test_one_dir($$)
-     my $found_tests = (0 != (grep { $_ =~ /\.vgtest$/ } @fs));
-     if ($found_tests) {
--        print "-- Running  tests in $full_dir $dashes\n";
-+        print "-- Running  tests in $full_dir $dashes\n" if ($yoctoptest == 0);
-     }
-     foreach my $f (@fs) {
-         if (-d $f) {
-@@ -641,7 +674,7 @@ sub test_one_dir($$)
-         }
-     }
-     if ($found_tests) {
--        print "-- Finished tests in $full_dir $dashes\n";
-+        print "-- Finished tests in $full_dir $dashes\n" if ($yoctoptest == 0);
-     }
-     chdir("..");
-@@ -667,10 +700,12 @@ sub summarise_results
-            $num_failures{"stdout"},   plural($num_failures{"stdout"}),
-            $num_failures{"stderrB"},  plural($num_failures{"stderrB"}),
-            $num_failures{"stdoutB"},  plural($num_failures{"stdoutB"}),
--           $num_failures{"post"},     plural($num_failures{"post"}));
-+           $num_failures{"post"},     plural($num_failures{"post"}))
-+               if ($yoctoptest == 0);
-     foreach my $failure (@failures) {
--        print "$failure\n";
-+        print "$failure\n"
-+           if ($yoctoptest == 0);
-     }
-     print "\n";
- }
--- 
-2.6.2
-
diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0005-tc20_verifywrap.c-Fake-__GLIBC_PREREQ-with-musl.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0005-tc20_verifywrap.c-Fake-__GLIBC_PREREQ-with-musl.patch
deleted file mode 100644 (file)
index 6176640..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-From b4b9f072c22f96844e02cb9d68f7ff2408680817 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 10 Jun 2017 01:07:59 -0700
-Subject: [PATCH 5/6] tc20_verifywrap.c: Fake __GLIBC_PREREQ with musl
-
-similar to sun
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- helgrind/tests/tc20_verifywrap.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/helgrind/tests/tc20_verifywrap.c b/helgrind/tests/tc20_verifywrap.c
-index c110000..a311a49 100644
---- a/helgrind/tests/tc20_verifywrap.c
-+++ b/helgrind/tests/tc20_verifywrap.c
-@@ -20,7 +20,7 @@
- #if !defined(__APPLE__)
--#if defined(__sun__)
-+#if defined(__sun__) || (defined(__linux__) && !defined(__GLIBC__))
- /* Fake __GLIBC_PREREQ on Solaris. Pretend glibc >= 2.4. */
- # define __GLIBC_PREREQ
- #else
--- 
-2.13.1
-
diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0006-pth_detached3.c-Dereference-pthread_t-before-adding-.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/0006-pth_detached3.c-Dereference-pthread_t-before-adding-.patch
deleted file mode 100644 (file)
index 05886c7..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-From a6547fc17c120dbd95b852f50b0c4bdee4fedb9a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 10 Jun 2017 01:20:32 -0700
-Subject: [PATCH 6/6] pth_detached3.c: Dereference pthread_t before adding
- offset to it
-
-Fixes
-error: invalid use of undefined type 'struct __pthread'
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- drd/tests/pth_detached3.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drd/tests/pth_detached3.c b/drd/tests/pth_detached3.c
-index c02eef1..35d43a6 100644
---- a/drd/tests/pth_detached3.c
-+++ b/drd/tests/pth_detached3.c
-@@ -21,7 +21,7 @@ int main(int argc, char** argv)
-   pthread_detach(thread);
-   /* Invoke pthread_detach() with an invalid thread ID. */
--  pthread_detach(thread + 8);
-+  pthread_detach((pthread_t*)(&thread + 8));
-   fprintf(stderr, "Finished.\n");
--- 
-2.13.1
-
diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/Added-support-for-PPC-instructions-mfatbu-mfatbl.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/Added-support-for-PPC-instructions-mfatbu-mfatbl.patch
deleted file mode 100644 (file)
index 07774f3..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-From 0bf4b0ac18d1ea41b32ad781d214b295ca1998f3 Mon Sep 17 00:00:00 2001
-From: Aneesh Bansal <aneesh.bansal@freescale.com>
-Date: Mon, 21 Nov 2011 17:31:39 +0530
-Subject: [PATCH] Added support for PPC instructions mfatbu, mfatbl.
-
-Upstream-Status: Pending
-
-Signed-off-by: Aneesh Bansal <aneesh.bansal@freescale.com>
----
-Currently Valgrind 3.7.0 does not have support for PPC instructions mfatbu and mfatbl. When we run a USDPAA application with VALGRIND, the following error is given by valgrind :
-dis_proc_ctl(ppc)(mfspr,SPR)(0x20F)
-disInstr(ppc): unhandled instruction: 0x7C0F82A6
-
-
- VEX/priv/guest_ppc_defs.h    |    2 ++
- VEX/priv/guest_ppc_helpers.c |   18 ++++++++++++++++++
- VEX/priv/guest_ppc_toIR.c    |   22 ++++++++++++++++++++++
- 3 files changed, 42 insertions(+), 0 deletions(-)
-
-diff --git a/VEX/priv/guest_ppc_defs.h b/VEX/priv/guest_ppc_defs.h
-index dd3c62e..11a34aa 100644
---- a/VEX/priv/guest_ppc_defs.h
-+++ b/VEX/priv/guest_ppc_defs.h
-@@ -146,6 +146,8 @@ extern UInt ppc32g_dirtyhelper_MFSPR_268_269 ( UInt );
- extern UInt ppc32g_dirtyhelper_MFSPR_287 ( void );
-+extern UInt ppc32g_dirtyhelper_MFSPR_526_527 ( UInt );
-+
- extern void ppc32g_dirtyhelper_LVS ( VexGuestPPC32State* gst,
-                                      UInt vD_idx, UInt sh,
-                                      UInt shift_right );
-diff --git a/VEX/priv/guest_ppc_helpers.c b/VEX/priv/guest_ppc_helpers.c
-index 11aa428..b49ea3f 100644
---- a/VEX/priv/guest_ppc_helpers.c
-+++ b/VEX/priv/guest_ppc_helpers.c
-@@ -119,6 +119,24 @@ UInt ppc32g_dirtyhelper_MFSPR_287 ( void )
- #  endif
- }
-+/* CALLED FROM GENERATED CODE */
-+/* DIRTY HELPER (non-referentially transparent) */
-+UInt ppc32g_dirtyhelper_MFSPR_526_527 ( UInt r527 )
-+{
-+#  if defined(__powerpc__) || defined(_AIX)
-+   UInt spr;
-+   if (r527) {
-+      __asm__ __volatile__("mfspr %0,527" : "=b"(spr));
-+   } else {
-+      __asm__ __volatile__("mfspr %0,526" : "=b"(spr));
-+   }
-+   return spr;
-+#  else
-+   return 0;
-+#  endif
-+}
-+
-+
- /* CALLED FROM GENERATED CODE */
- /* DIRTY HELPER (reads guest state, writes guest mem) */
-diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
-index f8d220d..37c8974 100644
---- a/VEX/priv/guest_ppc_toIR.c
-+++ b/VEX/priv/guest_ppc_toIR.c
-@@ -5657,6 +5657,28 @@ static Bool dis_proc_ctl ( VexAbiInfo* vbi, UInt theInstr )
-          break;
-       }
-+
-+      case 526 /* 0x20E */:
-+      case 527 /* 0x20F */: {
-+         UInt     arg  = SPR==526 ? 0 : 1;
-+         IRTemp   val  = newTemp(Ity_I32);
-+         IRExpr** args = mkIRExprVec_1( mkU32(arg) );
-+         IRDirty* d    = unsafeIRDirty_1_N(
-+                            val,
-+                            0/*regparms*/,
-+                            "ppc32g_dirtyhelper_MFSPR_526_527",
-+                            fnptr_to_fnentry
-+                               (vbi, &ppc32g_dirtyhelper_MFSPR_526_527),
-+                            args
-+                         );
-+         /* execute the dirty call, dumping the result in val. */
-+         stmt( IRStmt_Dirty(d) );
-+         putIReg( rD_addr,
-+                  mkWidenFrom32(ty, mkexpr(val), False/*unsigned*/) );
-+         DIP("mfspr r%u,%u", rD_addr, (UInt)SPR);
-+         break;
-+      }
-+
-       default:
-          vex_printf("dis_proc_ctl(ppc)(mfspr,SPR)(0x%x)\n", SPR);
-          return False;
--- 
-1.7.0.4
diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/avoid-neon-for-targets-which-don-t-support-it.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/avoid-neon-for-targets-which-don-t-support-it.patch
deleted file mode 100644 (file)
index 5fcfec0..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-From 8facc29c3c56e6cf9cfef70986cf73876044a3fb Mon Sep 17 00:00:00 2001
-From: Andre McCurdy <armccurdy@gmail.com>
-Date: Tue, 19 Jan 2016 16:42:36 -0800
-Subject: [PATCH] avoid neon for targets which don't support it
-
-The sh-mem-random.c test app tries to use neon loads and stores to
-test 64-bit float copies when building for ARM. Allow it to do so if
-possible, but fallback to C when building for ARM targets which don't
-support neon.
-
-Upstream-Status: Pending
-
-Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
----
- memcheck/tests/sh-mem-random.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/memcheck/tests/sh-mem-random.c b/memcheck/tests/sh-mem-random.c
-index ae82248..816e139 100644
---- a/memcheck/tests/sh-mem-random.c
-+++ b/memcheck/tests/sh-mem-random.c
-@@ -191,7 +191,7 @@ void do_test_at ( U1* arr )
-                "emms"
-                : : "r"(arr+dst), "r"(arr+src) : "memory"
-             );
--#elif defined(__linux__) && defined(__arm__) && !defined(__aarch64__)
-+#elif defined(__linux__) && defined(__arm__) && defined(__ARM_NEON__) && !defined(__aarch64__)
-             /* On arm32, many compilers generate a 64-bit float move
-                using two 32 bit integer registers, which completely
-                defeats this test.  Hence force a 64-bit NEON load and
--- 
-1.9.1
-
diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/fixed-perl-path.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/fixed-perl-path.patch
deleted file mode 100644 (file)
index b431d33..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-From 67e7a690107efb16d6d5aebfe420b64a552accdf Mon Sep 17 00:00:00 2001
-From: Qing He <qing.he@intel.com>
-Date: Tue, 31 Aug 2010 22:51:58 +0800
-Subject: [PATCH] valgrind: fix perl scripts
-
-this is a temporary patch to workaround cross compilation.
-otherwise @PERL@ will be replaced to perl-native binary,
-this creates unusable scripts and fails FILERDEPENDS mechanism
-(esp. rpm)
-
-a better fix would need:
- 1. configure.ac should differentiate PERL and HOSTPERL
- 2. optionally remove ${STAGING_DIR} in #! line before do_install
-
-8/31/2010 - created by Qing He <qing.he@intel.com>
-
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Maxin B. John <maxin.john@intel.com>
----
- cachegrind/cg_annotate.in | 2 +-
- cachegrind/cg_diff.in     | 2 +-
- massif/ms_print.in        | 2 +-
- perf/vg_perf.in           | 2 +-
- 4 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/cachegrind/cg_annotate.in b/cachegrind/cg_annotate.in
-index 69365e8..978265d 100644
---- a/cachegrind/cg_annotate.in
-+++ b/cachegrind/cg_annotate.in
-@@ -1,4 +1,4 @@
--#! @PERL@
-+#! /usr/bin/perl
- ##--------------------------------------------------------------------##
- ##--- Cachegrind's annotator.                       cg_annotate.in ---##
-diff --git a/cachegrind/cg_diff.in b/cachegrind/cg_diff.in
-index 395460b..05873cc 100755
---- a/cachegrind/cg_diff.in
-+++ b/cachegrind/cg_diff.in
-@@ -1,4 +1,4 @@
--#! @PERL@
-+#! /usr/bin/perl
- ##--------------------------------------------------------------------##
- ##--- Cachegrind's differencer.                         cg_diff.in ---##
-diff --git a/massif/ms_print.in b/massif/ms_print.in
-index e6fae89..3b85b40 100755
---- a/massif/ms_print.in
-+++ b/massif/ms_print.in
-@@ -1,4 +1,4 @@
--#! @PERL@
-+#! /usr/bin/perl
- ##--------------------------------------------------------------------##
- ##--- Massif's results printer                         ms_print.in ---##
-diff --git a/perf/vg_perf.in b/perf/vg_perf.in
-index 7a80cb0..28f6156 100644
---- a/perf/vg_perf.in
-+++ b/perf/vg_perf.in
-@@ -1,4 +1,4 @@
--#! @PERL@
-+#! /usr/bin/perl
- ##--------------------------------------------------------------------##
- ##--- Valgrind performance testing script                  vg_perf ---##
- ##--------------------------------------------------------------------##
-diff --git a/tests/vg_regtest.in b/tests/vg_regtest.in
-index cb05b52..032e947 100755
---- a/tests/vg_regtest.in
-+++ b/tests/vg_regtest.in
-@@ -1,4 +1,4 @@
--#! @PERL@
-+#! /usr/bin/perl
- ##--------------------------------------------------------------------##
- ##--- Valgrind regression testing script                vg_regtest ---##
- ##--------------------------------------------------------------------##
----
-2.4.0
diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/link-gz-tests.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/link-gz-tests.patch
deleted file mode 100644 (file)
index db32239..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-When checking if the compiler supports compressed debug sections we need to
-actually link instead of just compile.  Otherwise the compiler thinks that
-they are supported, but gold does not support -gz=zlib.
-
-Upstream-Status: Backport (r16459)
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
---- a/configure.ac~    2017-07-11 11:53:16.000000000 +0100
-+++ b/configure.ac     2017-07-11 18:16:13.674130483 +0100
-@@ -2119,7 +2119,7 @@
- safe_CFLAGS=$CFLAGS
- CFLAGS="-g -gz=zlib"
--AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]], [[
-+AC_LINK_IFELSE([AC_LANG_PROGRAM([[ ]], [[
-   return 0;
- ]])], [
- ac_have_gz_zlib=yes
-@@ -2139,7 +2139,7 @@
- safe_CFLAGS=$CFLAGS
- CFLAGS="-g -gz=zlib-gnu"
--AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]], [[
-+AC_LINK_IFELSE([AC_LANG_PROGRAM([[ ]], [[
-   return 0;
- ]])], [
- ac_have_gz_zlib_gnu=yes
diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/ppc-headers.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/ppc-headers.patch
deleted file mode 100644 (file)
index 51259db..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-Backport a patch from upstream to fix test compilation for PPC where
-system headers don't get included.
-
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-r16450 | mjw | 2017-06-16 10:33:35 +0100 (Fri, 16 Jun 2017) | 7 lines
-
-ppc64 doesn't compile test_isa_2_06_partx.c without VSX support
-
-The #ifdef HAS_VSX guard is wrongly placed. It makes the standard
-include headers not be used. Causing a build failure. Fix by moving
-the #ifdef HAS_VSX after the standard includes.
-
-Index: none/tests/ppc32/test_isa_2_06_part3.c
-===================================================================
---- a/none/tests/ppc32/test_isa_2_06_part3.c   (revision 16449)
-+++ b/none/tests/ppc32/test_isa_2_06_part3.c   (revision 16450)
-@@ -20,17 +20,18 @@
-  The GNU General Public License is contained in the file COPYING.
-  */
--#ifdef HAS_VSX
--
- #include <stdio.h>
- #include <stdint.h>
- #include <stdlib.h>
- #include <string.h>
- #include <malloc.h>
--#include <altivec.h>
- #include <math.h>
- #include <unistd.h>    // getopt
-+#ifdef HAS_VSX
-+
-+#include <altivec.h>
-+
- #ifndef __powerpc64__
- typedef uint32_t HWord_t;
- #else
-Index: none/tests/ppc32/test_isa_2_06_part1.c
-===================================================================
---- a/none/tests/ppc32/test_isa_2_06_part1.c   (revision 16449)
-+++ b/none/tests/ppc32/test_isa_2_06_part1.c   (revision 16450)
-@@ -20,13 +20,14 @@
-  The GNU General Public License is contained in the file COPYING.
-  */
--#ifdef HAS_VSX
--
- #include <stdio.h>
- #include <stdint.h>
- #include <stdlib.h>
- #include <string.h>
- #include <malloc.h>
-+
-+#ifdef HAS_VSX
-+
- #include <altivec.h>
- #ifndef __powerpc64__
-Index: none/tests/ppc32/test_isa_2_06_part2.c
-===================================================================
---- a/none/tests/ppc32/test_isa_2_06_part2.c   (revision 16449)
-+++ b/none/tests/ppc32/test_isa_2_06_part2.c   (revision 16450)
-@@ -20,17 +20,18 @@
-  The GNU General Public License is contained in the file COPYING.
-  */
--#ifdef HAS_VSX
--
- #include <stdio.h>
- #include <stdint.h>
- #include <stdlib.h>
- #include <string.h>
- #include <malloc.h>
--#include <altivec.h>
- #include <math.h>
- #include <unistd.h>    // getopt
-+#ifdef HAS_VSX
-+
-+#include <altivec.h>
-+
- #ifndef __powerpc64__
- typedef uint32_t HWord_t;
- #else
diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/run-ptest b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/run-ptest
deleted file mode 100755 (executable)
index 447d33c..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh
-
-# run-ptest - 'ptest' test infrastructure shell script that
-#   wraps the valgrind regression script vg_regtest. 
-#
-# Dave Lerner <dave.lerner@windriver.com>
-###############################################################
-VALGRINDLIB=@libdir@/valgrind
-LOG="${VALGRINDLIB}/ptest/valgrind_ptest_$(date +%Y%m%d-%H%M%S).log"
-
-cd ${VALGRINDLIB}/ptest && ./tests/vg_regtest --all \
-    --valgrind=/usr/bin/valgrind --valgrind-lib=$VALGRINDLIB \
-    --yocto-ptest 2>&1|tee ${LOG}
-
-passed=`grep PASS: ${LOG}|wc -l`
-failed=`grep FAIL: ${LOG}|wc -l`
-skipped=`grep SKIP: ${LOG}|wc -l`
-all=$((passed + failed + skipped))
-
-( echo "=== Test Summary ==="
-  echo "TOTAL: ${all}"
-  echo "PASSED: ${passed}"
-  echo "FAILED: ${failed}"
-  echo "SKIPPED: ${skipped}"
-) | tee -a /${LOG}
diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/use-appropriate-march-mcpu-mfpu-for-ARM-test-apps.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/use-appropriate-march-mcpu-mfpu-for-ARM-test-apps.patch
deleted file mode 100644 (file)
index adea405..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-From d134dafc2f11e0d247420a0ba360bcdef77b4093 Mon Sep 17 00:00:00 2001
-From: Andre McCurdy <armccurdy@gmail.com>
-Date: Tue, 19 Jan 2016 16:00:00 -0800
-Subject: [PATCH] use appropriate -march/-mcpu/-mfpu for ARM test apps
-
-Ensure that test apps in none/tests/arm are compiled with appropriate
--march/-mcpu/-mfpu flags to support the instructions being tested.
-The aim is to build all tests, even ones which may not run correctly
-on all target CPUs.
-
-For tests requiring armv7ve instructions, ensure that we set both
--march=armv7ve and -mcpu=cortex-a15 (since some TUNE_CCARGS may set
--march=armv7-a and adding -mcpu=cortex-a15 alone is not enough to
-over-ride that).
-
-See similar cases in none/tests/arm/Makefile.am
-
-Upstream-Status: Pending
-
-Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
----
- none/tests/arm/Makefile.am | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/none/tests/arm/Makefile.am b/none/tests/arm/Makefile.am
-index 4507a20..825290f 100644
---- a/none/tests/arm/Makefile.am
-+++ b/none/tests/arm/Makefile.am
-@@ -62,8 +62,10 @@ neon64_CFLAGS     = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a8 \
-                       -mfpu=neon \
-                       -mthumb
--intdiv_CFLAGS   = $(AM_CFLAGS) -g -mcpu=cortex-a15 -mthumb
-+intdiv_CFLAGS   = $(AM_CFLAGS) -g -march=armv7ve -mcpu=cortex-a15 -mthumb
- ldrt_CFLAGS     = $(AM_CFLAGS) -g -mcpu=cortex-a8 -mthumb
- ldrt_arm_CFLAGS         = $(AM_CFLAGS) -g -mcpu=cortex-a8 -marm
--vfpv4_fma_CFLAGS  = $(AM_CFLAGS) -g -O0 -mcpu=cortex-a15 -mfpu=vfpv4 -marm
-+vcvt_fixed_float_VFP_CFLAGS = $(AM_CFLAGS) -g -mcpu=cortex-a8 -mfpu=vfpv3
-+
-+vfpv4_fma_CFLAGS  = $(AM_CFLAGS) -g -O0 -march=armv7ve -mcpu=cortex-a15 -mfpu=vfpv4 -marm
--- 
-1.9.1
-
diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/valgrind-make-ld-XXX.so-strlen-intercept-optional.patch b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind/valgrind-make-ld-XXX.so-strlen-intercept-optional.patch
deleted file mode 100644 (file)
index d04297d..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-From 005bd11809a1ce65e9f2c28e884354a4741650b9 Mon Sep 17 00:00:00 2001
-From: Andre McCurdy <armccurdy@gmail.com>
-Date: Tue, 13 Dec 2016 11:29:55 +0800
-Subject: [PATCH] make ld-XXX.so strlen intercept optional
-
-Hack: Depending on how glibc was compiled (e.g. optimised for size or
-built with _FORTIFY_SOURCE enabled) the strlen symbol might not be
-found in ld-XXX.so. Therefore although we should still try to
-intercept it, don't make it mandatory to do so.
-
-Upstream-Status: Inappropriate
-
-Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- coregrind/m_redir.c | 13 ++++++++++++-
- 1 file changed, 12 insertions(+), 1 deletion(-)
-
-diff --git a/coregrind/m_redir.c b/coregrind/m_redir.c
-index ff35009..d7d6816 100644
---- a/coregrind/m_redir.c
-+++ b/coregrind/m_redir.c
-@@ -1275,7 +1275,18 @@ static void add_hardwired_spec (const  HChar* sopatt, const HChar* fnpatt,
-    spec->to_addr     = to_addr;
-    spec->isWrap      = False;
-    spec->isGlobal    = False;
--   spec->mandatory   = mandatory;
-+
-+   /* Hack: Depending on how glibc was compiled (e.g. optimised for size or
-+      built with _FORTIFY_SOURCE enabled) the strlen symbol might not be found.
-+      Therefore although we should still try to intercept it, don't make it
-+      mandatory to do so. We over-ride "mandatory" here to avoid the need to
-+      patch the many different architecture specific callers to
-+      add_hardwired_spec(). */
-+   if (0==VG_(strcmp)("strlen", fnpatt))
-+      spec->mandatory = NULL;
-+   else
-+      spec->mandatory = mandatory;
-+
-    /* VARIABLE PARTS */
-    spec->mark        = False; /* not significant */
-    spec->done        = False; /* not significant */
--- 
-1.9.1
-
diff --git a/meta-agl-profile-core/recipes-devtools/valgrind/valgrind_git.bb b/meta-agl-profile-core/recipes-devtools/valgrind/valgrind_git.bb
deleted file mode 100644 (file)
index 3514997..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-SUMMARY = "Valgrind memory debugger and instrumentation framework"
-HOMEPAGE = "http://valgrind.org/"
-BUGTRACKER = "http://valgrind.org/support/bug_reports.html"
-LICENSE = "GPLv2 & GPLv2+ & BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
-                    file://include/pub_tool_basics.h;beginline=6;endline=29;md5=d4de0407239381463cf01dd276d7c22e \
-                    file://include/valgrind.h;beginline=1;endline=56;md5=ad3b317f3286b6b704575d9efe6ca5df \
-                    file://COPYING.DOCS;md5=24ea4c7092233849b4394699333b5c56"
-
-X11DEPENDS = "virtual/libx11"
-DEPENDS = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '${X11DEPENDS}', '', d)} \
-           ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'boost', '', d)} \
-        "
-SRC_URI = "git://sourceware.org/git/valgrind.git;protocol=git;branch=master"
-SRCREV = "2b0aa0a5b88f900e986a3360952fcb3d2513419d"
-S = "${WORKDIR}/git"
-
-#
-#
-
-SRC_URI += " \
-           file://fixed-perl-path.patch \
-           file://Added-support-for-PPC-instructions-mfatbu-mfatbl.patch \
-           file://run-ptest \
-           file://0002-remove-rpath.patch \
-           file://0004-Fix-out-of-tree-builds.patch \
-           file://0005-Modify-vg_test-wrapper-to-support-PTEST-formats.patch \
-           file://0001-Remove-tests-that-fail-to-build-on-some-PPC32-config.patch \
-           file://use-appropriate-march-mcpu-mfpu-for-ARM-test-apps.patch \
-           file://avoid-neon-for-targets-which-don-t-support-it.patch \
-           file://valgrind-make-ld-XXX.so-strlen-intercept-optional.patch \
-           file://0001-makefiles-Drop-setting-mcpu-to-cortex-a8-on-arm-arch.patch \
-           file://0001-str_tester.c-Limit-rawmemchr-test-to-glibc.patch \
-           file://0001-sigqueue-Rename-_sifields-to-__si_fields-on-musl.patch \
-           file://0002-context-APIs-are-not-available-on-musl.patch \
-           file://0003-correct-include-directive-path-for-config.h.patch \
-           file://0004-pth_atfork1.c-Define-error-API-for-musl.patch \
-           file://0005-tc20_verifywrap.c-Fake-__GLIBC_PREREQ-with-musl.patch \
-           file://0006-pth_detached3.c-Dereference-pthread_t-before-adding-.patch \
-           file://0001-memcheck-arm64-Define-__THROW-if-not-already-defined.patch \
-           file://0002-memcheck-x86-Define-__THROW-if-not-defined.patch \
-           file://0003-tests-seg_override-Replace-__modify_ldt-with-syscall.patch \
-           file://link-gz-tests.patch \
-           "
-SRC_URI[md5sum] = "817dd08f1e8a66336b9ff206400a5369"
-SRC_URI[sha256sum] = "d76680ef03f00cd5e970bbdcd4e57fb1f6df7d2e2c071635ef2be74790190c3b"
-UPSTREAM_CHECK_REGEX = "valgrind-(?P<pver>\d+(\.\d+)+)\.tar"
-
-COMPATIBLE_HOST = '(i.86|x86_64|arm|aarch64|mips|powerpc|powerpc64).*-linux'
-
-# valgrind supports armv7 and above
-COMPATIBLE_HOST_armv4 = 'null'
-COMPATIBLE_HOST_armv5 = 'null'
-COMPATIBLE_HOST_armv6 = 'null'
-
-# X32 isn't supported by valgrind at this time
-COMPATIBLE_HOST_linux-gnux32 = 'null'
-COMPATIBLE_HOST_linux-muslx32 = 'null'
-
-# Disable for some MIPS variants
-COMPATIBLE_HOST_mipsarchn32 = 'null'
-COMPATIBLE_HOST_mipsarchr6 = 'null'
-
-inherit autotools ptest multilib_header
-
-EXTRA_OECONF = "--enable-tls --without-mpicc"
-EXTRA_OECONF += "${@['--enable-only32bit','--enable-only64bit'][d.getVar('SITEINFO_BITS') != '32']}"
-
-# valgrind checks host_cpu "armv7*)", so we need to over-ride the autotools.bbclass default --host option
-EXTRA_OECONF_append_arm = " --host=armv7${HOST_VENDOR}-${HOST_OS}"
-TARGET_CC_ARCH_remove_arm = "${@get_mcpu(d)}"
-
-EXTRA_OEMAKE = "-w"
-
-CACHED_CONFIGUREVARS += "ac_cv_path_PERL='/usr/bin/env perl'"
-
-# valgrind likes to control its own optimisation flags. It generally defaults
-# to -O2 but uses -O0 for some specific test apps etc. Passing our own flags
-# (via CFLAGS) means we interfere with that. Only pass DEBUG_FLAGS to it
-# which fixes build path issue in DWARF.
-SELECTED_OPTIMIZATION = "${DEBUG_FLAGS}"
-
-def get_mcpu(d):
-    for arg in (d.getVar('TUNE_CCARGS') or '').split():
-        if arg.startswith('-mcpu='):
-            return arg
-        else:
-            continue
-    return ""
-
-do_configure_prepend () {
-    rm -rf ${S}/config.h
-}
-
-do_install_append () {
-    install -m 644 ${B}/default.supp ${D}/${libdir}/valgrind/
-    oe_multilib_header valgrind/config.h
-}
-
-TUNE = "${@strip_mcpu(d)}"
-
-RDEPENDS_${PN} += "perl"
-
-# valgrind needs debug information for ld.so at runtime in order to
-# redirect functions like strlen.
-RRECOMMENDS_${PN} += "${TCLIBC}-dbg"
-
-RDEPENDS_${PN}-ptest += " sed perl perl-module-file-glob"
-RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils"
-
-# One of the tests contains a bogus interpreter path on purpose.
-# Skip file dependency check
-SKIP_FILEDEPS_${PN}-ptest = '1'
-
-do_compile_ptest() {
-    oe_runmake check
-}
-
-do_install_ptest() {
-    chmod +x ${B}/tests/vg_regtest
-
-    # The test application binaries are not automatically installed.
-    # Grab them from the build directory.
-    #
-    # The regression tests require scripts and data files that are not
-    # copied to the build directory.  They must be copied from the
-    # source directory.
-    saved_dir=$PWD
-    for parent_dir in ${S} ${B} ; do
-        cd $parent_dir
-
-        # exclude shell or the package won't install
-        rm -rf none/tests/shell* 2>/dev/null
-
-        subdirs="tests cachegrind/tests callgrind/tests drd/tests helgrind/tests massif/tests memcheck/tests none/tests"
-
-        # Get the vg test scripts, filters, and expected files
-        for dir in $subdirs ; do
-            find $dir | cpio -pvdu ${D}${PTEST_PATH}
-        done
-        cd $saved_dir
-    done
-
-    # clean out build artifacts before building the rpm
-    find ${D}${PTEST_PATH} \
-         \( -name "Makefile*" \
-        -o -name "*.o" \
-        -o -name "*.c" \
-        -o -name "*.S" \
-        -o -name "*.h" \) \
-        -exec rm {} \;
-
-    # needed by massif tests
-    cp ${B}/massif/ms_print ${D}${PTEST_PATH}/massif/ms_print
-
-    # handle multilib
-    sed -i s:@libdir@:${libdir}:g ${D}${PTEST_PATH}/run-ptest
-}
diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0010-backport-usb-setup-timer.patch b/meta-agl-profile-core/recipes-kernel/most/files/0010-backport-usb-setup-timer.patch
new file mode 100644 (file)
index 0000000..ff21b21
--- /dev/null
@@ -0,0 +1,35 @@
+From 8eaec876f732c7e4b238ada5f9304c6da2380eb1 Mon Sep 17 00:00:00 2001
+From: Andrey Shvetsov <andrey.shvetsov@k2l.de>
+Date: Fri, 8 Feb 2019 22:44:32 +0000
+Subject: [PATCH] backport: usb: setup_timer
+
+---
+ driver/hdm-usb/hdm_usb.c | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/hdm-usb/hdm_usb.c b/hdm-usb/hdm_usb.c
+index 5b0af88..9896835 100644
+--- a/hdm-usb/hdm_usb.c
++++ b/hdm-usb/hdm_usb.c
+@@ -760,9 +760,9 @@ static void hdm_request_netinfo(struct most_interface *iface, int channel,
+  * The handler runs in interrupt context. That's why we need to defer the
+  * tasks to a work queue.
+  */
+-static void link_stat_timer_handler(unsigned long data)
++static void link_stat_timer_handler(struct timer_list *t)
+ {
+-      struct most_dev *mdev = (struct most_dev *)data;
++      struct most_dev *mdev = from_timer(mdev, t, link_stat_timer);
+       schedule_work(&mdev->poll_work_obj);
+       mdev->link_stat_timer.expires = jiffies + (2 * HZ);
+@@ -1154,8 +1154,7 @@ hdm_probe(struct usb_interface *interface, const struct usb_device_id *id)
+       num_endpoints = usb_iface_desc->desc.bNumEndpoints;
+       mutex_init(&mdev->io_mutex);
+       INIT_WORK(&mdev->poll_work_obj, wq_netinfo);
+-      setup_timer(&mdev->link_stat_timer, link_stat_timer_handler,
+-                  (unsigned long)mdev);
++      timer_setup(&mdev->link_stat_timer, link_stat_timer_handler, 0);
+       mdev->usb_device = usb_dev;
+       mdev->link_stat_timer.expires = jiffies + (2 * HZ);
diff --git a/meta-agl-profile-core/recipes-kernel/most/files/0011-handle-snd_pcm_lib_mmap_vmalloc-removal.patch b/meta-agl-profile-core/recipes-kernel/most/files/0011-handle-snd_pcm_lib_mmap_vmalloc-removal.patch
new file mode 100644 (file)
index 0000000..8f83dba
--- /dev/null
@@ -0,0 +1,18 @@
+Handle snd_pcm_lib_mmap_vmalloc removal in 4.19
+
+Upstream-Status: Pending
+
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
+diff --git a/driver/aim-sound/sound.c b/driver/aim-sound/sound.c
+index 6a290ff..4b3329b 100644
+--- a/aim-sound/sound.c
++++ b/aim-sound/sound.c
+@@ -463,7 +463,6 @@ static const struct snd_pcm_ops pcm_ops = {
+       .trigger    = pcm_trigger,
+       .pointer    = pcm_pointer,
+       .page       = snd_pcm_lib_get_vmalloc_page,
+-      .mmap       = snd_pcm_lib_mmap_vmalloc,
+ };
+ static int split_arg_list(char *buf, char **card_name, u16 *ch_num,
index 8515d4c..a90210d 100644 (file)
@@ -12,6 +12,7 @@ ORIG_KERN_VER = "${@prep_version(d)}"
 VANILLA_KERNEL_VERSION = "${@str(ORIG_KERN_VER.split("-")[0].split(".")[0]+ORIG_KERN_VER.split("-")[0].split(".")[1])}"
 
 APPLY = "${@str('no' if ${VANILLA_KERNEL_VERSION} > 412 else 'yes')}"
+APPLY_419 = "${@str('no' if ${VANILLA_KERNEL_VERSION} < 419 else 'yes')}"
 
 SRC_URI_append = " \
            file://0001-most-aim-network-backport-Kernel-API.patch;apply=${APPLY} \
@@ -23,6 +24,8 @@ SRC_URI_append = " \
            file://0007-dim2-use-device-tree.patch \
            file://0008-dim2-read-clock-speed-from-the-device-tree.patch \
            file://0009-dim2-use-device-for-coherent-memory-allocation.patch \
+           file://0010-backport-usb-setup-timer.patch \
+           file://0011-handle-snd_pcm_lib_mmap_vmalloc-removal.patch;apply=${APPLY_419} \
           "
 # Make sure we can expose KERNEL_VERSION ...
 do_patch[depends] += "virtual/kernel:do_populate_sysroot"
@@ -5,17 +5,12 @@ Subject: [PATCH 1/6] install files for a module development
 
 Signed-off-by: Yannick Gicquel <yannick.gicquel@iot.bzh>
 ---
- Makefile.am                   | 14 +++++++++++++-
- configure.ac                  |  1 +
- pulseaudio-module-devel.pc.in | 12 ++++++++++++
- 3 files changed, 26 insertions(+), 1 deletion(-)
- create mode 100644 pulseaudio-module-devel.pc.in
 
 diff --git a/Makefile.am b/Makefile.am
-index 13bc469..f0d68a2 100644
+index 275ceea..77dd7a5 100644
 --- a/Makefile.am
 +++ b/Makefile.am
-@@ -53,7 +53,16 @@ dist_vapi_DATA = \
+@@ -54,7 +54,16 @@ dist_vapi_DATA = \
                vala/libpulse-simple.deps vala/libpulse-simple.vapi
  
  pkgconfigdir = $(libdir)/pkgconfig
@@ -33,7 +28,7 @@ index 13bc469..f0d68a2 100644
  
  if HAVE_GLIB20
  pkgconfig_DATA += \
-@@ -107,6 +116,9 @@ dist-hook:
+@@ -108,6 +117,9 @@ dist-hook:
  check-daemon:
        $(MAKE) -C src check-daemon
  
@@ -44,17 +39,17 @@ index 13bc469..f0d68a2 100644
  
  # see git-version-gen
 diff --git a/configure.ac b/configure.ac
-index 9250c05..f9201ee 100644
+index c9c414f..87aa9b1 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -1502,6 +1502,7 @@ man/pulse-client.conf.5.xml
+@@ -1548,6 +1548,7 @@ man/pulse-client.conf.5.xml
  man/default.pa.5.xml
  man/pulse-cli-syntax.5.xml
  man/start-pulseaudio-x11.1.xml
 +pulseaudio-module-devel.pc
  ])
  
- AC_CONFIG_FILES([src/esdcompat:src/daemon/esdcompat.in], [chmod +x src/esdcompat])
+ AS_IF([test "x$HAVE_ESOUND" = "x1"],
 diff --git a/pulseaudio-module-devel.pc.in b/pulseaudio-module-devel.pc.in
 new file mode 100644
 index 0000000..85aadbc
@@ -73,6 +68,3 @@ index 0000000..85aadbc
 +Libs: -L${libdir} -L${libdir}/pulseaudio -L${modlibexecdir} -lpulsecommon-@PA_MAJORMINOR@ -lpulsecore-@PA_MAJORMINOR@ -lprotocol-native
 +Libs.private:
 +Cflags: -I${includedir}/pulsemodule -D_REENTRANT
--- 
-1.9.1
-
@@ -1,4 +1,4 @@
-From 7757059ffc6e63ea20ba9013682d72d619e7aefc Mon Sep 17 00:00:00 2001
+From c28b5faa6745b525c11d1f54d8bf52386a90fcc1 Mon Sep 17 00:00:00 2001
 From: Sangchul Lee <sangchul1011@gmail.com>
 Date: Sat, 27 Aug 2016 21:33:16 +0900
 Subject: [PATCH 2/6] volume ramp: additions to the low level infra
@@ -8,6 +8,7 @@ The original patch is
  - by Jaska Uimonen <jaska.uimonen <at> helsinki.fi>
 
 Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
+
 ---
  src/map-file        |   4 +
  src/pulse/def.h     |  13 ++-
@@ -18,7 +19,7 @@ Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
  6 files changed, 459 insertions(+), 2 deletions(-)
 
 diff --git a/src/map-file b/src/map-file
-index 93a62b8..ef9b57d 100644
+index 9b6cba2..946ab54 100644
 --- a/src/map-file
 +++ b/src/map-file
 @@ -138,6 +138,10 @@ pa_cvolume_max_mask;
@@ -33,10 +34,10 @@ index 93a62b8..ef9b57d 100644
  pa_cvolume_scale;
  pa_cvolume_scale_mask;
 diff --git a/src/pulse/def.h b/src/pulse/def.h
-index 680bdc9..bc3cedd 100644
+index 100df5b..b13eed7 100644
 --- a/src/pulse/def.h
 +++ b/src/pulse/def.h
-@@ -347,11 +347,15 @@ typedef enum pa_stream_flags {
+@@ -349,11 +349,15 @@ typedef enum pa_stream_flags {
       * consider absolute when the sink is in flat volume mode,
       * relative otherwise. \since 0.9.20 */
  
@@ -53,7 +54,7 @@ index 680bdc9..bc3cedd 100644
  } pa_stream_flags_t;
  
  /** \cond fulldocs */
-@@ -380,6 +384,7 @@ typedef enum pa_stream_flags {
+@@ -382,6 +386,7 @@ typedef enum pa_stream_flags {
  #define PA_STREAM_FAIL_ON_SUSPEND PA_STREAM_FAIL_ON_SUSPEND
  #define PA_STREAM_RELATIVE_VOLUME PA_STREAM_RELATIVE_VOLUME
  #define PA_STREAM_PASSTHROUGH PA_STREAM_PASSTHROUGH
@@ -61,7 +62,7 @@ index 680bdc9..bc3cedd 100644
  
  /** \endcond */
  
-@@ -1047,6 +1052,12 @@ typedef enum pa_port_available {
+@@ -1070,6 +1075,12 @@ typedef enum pa_port_available {
  /** \endcond */
  #endif
  
@@ -75,10 +76,10 @@ index 680bdc9..bc3cedd 100644
  
  #endif
 diff --git a/src/pulse/volume.c b/src/pulse/volume.c
-index 1667b94..85072c1 100644
+index ead5415..83a1e05 100644
 --- a/src/pulse/volume.c
 +++ b/src/pulse/volume.c
-@@ -445,7 +445,10 @@ int pa_cvolume_channels_equal_to(const pa_cvolume *a, pa_volume_t v) {
+@@ -457,7 +457,10 @@ int pa_cvolume_channels_equal_to(const pa_cvolume *a, pa_volume_t v) {
      unsigned c;
      pa_assert(a);
  
@@ -90,7 +91,7 @@ index 1667b94..85072c1 100644
      pa_return_val_if_fail(PA_VOLUME_IS_VALID(v), 0);
  
      for (c = 0; c < a->channels; c++)
-@@ -977,3 +980,72 @@ pa_cvolume* pa_cvolume_dec(pa_cvolume *v, pa_volume_t dec) {
+@@ -989,3 +992,72 @@ pa_cvolume* pa_cvolume_dec(pa_cvolume *v, pa_volume_t dec) {
  
      return pa_cvolume_scale(v, m);
  }
@@ -164,11 +165,11 @@ index 1667b94..85072c1 100644
 +    return ramp;
 +}
 diff --git a/src/pulse/volume.h b/src/pulse/volume.h
-index 8cf4fa4..2ae3451 100644
+index 2503c3f..0b74833 100644
 --- a/src/pulse/volume.h
 +++ b/src/pulse/volume.h
-@@ -431,6 +431,39 @@ pa_cvolume* pa_cvolume_inc(pa_cvolume *v, pa_volume_t inc);
-  * the channels are kept. \since 0.9.16 */
+@@ -437,6 +437,39 @@ pa_cvolume* pa_cvolume_inc(pa_cvolume *v, pa_volume_t inc);
+  * the channels are kept. Returns \a v, or NULL on error. \since 0.9.16 */
  pa_cvolume* pa_cvolume_dec(pa_cvolume *v, pa_volume_t dec);
  
 +/** Volume ramp type
@@ -561,6 +562,3 @@ index 8102bcd..0f86b6f 100644
 +        pa_cvolume_ramp_int *ramp);
 +
  #endif
--- 
-1.9.1
-
index 1f3acf2..4d0d09a 100644 (file)
@@ -1,7 +1,7 @@
-diff -urN /tmp/ft2demos-2.6.orig/Makefile /tmp/ft2demos-2.6/Makefile
---- ft2demos-2.6.orig/Makefile 2015-06-07 07:34:19.000000000 +0000
-+++ ft2demos-2.6/Makefile      2016-06-17 14:25:37.640456725 +0000
-@@ -153,7 +153,8 @@
+diff -ur ft2demos-2.9.1.orig/Makefile ft2demos-2.9.1/Makefile
+--- ft2demos-2.9.1.orig/Makefile       2018-04-22 05:41:50.000000000 -0400
++++ ft2demos-2.9.1/Makefile    2019-02-18 23:28:59.794678736 -0500
+@@ -163,7 +163,8 @@
  
    ifeq ($(PLATFORM),unix)
      CC        = $(CCraw)
@@ -10,8 +10,8 @@ diff -urN /tmp/ft2demos-2.6.orig/Makefile /tmp/ft2demos-2.6/Makefile
 +    LINK_CMD  = $(subst /,$(SEP),$(LIBTOOL)) \
                  --mode=link $(CC) \
                  $(subst /,$(COMPILER_SEP),$(LDFLAGS))
-     LINK_LIBS = $(subst /,$(COMPILER_SEP),$(FTLIB) $(EFENCE))
-@@ -279,12 +280,12 @@
+     LINK_LIBS = $(subst /,$(COMPILER_SEP),$(FTLIB) $(EFENCE)) $(LIB_CLOCK_GETTIME)
+@@ -289,12 +290,12 @@
            ttdebug
  
    # Comment out the next line if you don't have a graphics subsystem.
@@ -4,8 +4,8 @@ SRC_URI =+ "${SOURCEFORGE_MIRROR}/freetype/ft2demos-${PV}.tar.bz2;name=ft2demos
            file://0001-Makefile-dont-build-gfx-demos.patch;patchdir=../ft2demos-${PV} \
            file://0001-ft2demos-Makefile-Do-not-hardcode-libtool-path.patch;patchdir=../ft2demos-${PV} \
           "
-SRC_URI[ft2demos.md5sum] = "61db5831e213acb843f0fc6d10186054"
-SRC_URI[ft2demos.sha256sum] = "2b6ce0d36bcb43fcc8aac07a0287982d855571ee271c3803c768e501f9c1a233"
+SRC_URI[ft2demos.md5sum] = "178827156d90e07bce8f354c9565d84b"
+SRC_URI[ft2demos.sha256sum] = "806eb6363ee5963174a6740f9b7893377912165899c2c1f6372c422aab818c6a"
 
 PACKAGES =+ "${PN}-demos"
 
index 4d84dba..69967b0 100644 (file)
@@ -8,3 +8,5 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
 BBFILE_COLLECTIONS += "aglprofilegraphicalhtml5"
 BBFILE_PATTERN_aglprofilegraphicalhtml5 = "^${LAYERDIR}/"
 BBFILE_PRIORITY_aglprofilegraphicalhtml5 = "70"
+
+LAYERSERIES_COMPAT_aglprofilegraphicalhtml5 = "thud"
index a278e09..2d81120 100755 (executable)
@@ -41,7 +41,6 @@ TOOLCHAIN_TARGET_TASK += " \
     libexif-dev \
     pango-dev \
     libdrm-dev  \
-    libssp-dev \
     lua-dev \
     lua-staticdev \
     ${@bb.utils.contains('LICENSE_FLAGS_WHITELIST', 'commercial', 'ffmpeg-dev', '', d)} \
index eb47e5d..d73b8aa 100644 (file)
@@ -8,3 +8,5 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
 BBFILE_COLLECTIONS += "aglprofilegraphicalqt5"
 BBFILE_PATTERN_aglprofilegraphicalqt5 = "^${LAYERDIR}/"
 BBFILE_PRIORITY_aglprofilegraphicalqt5 = "70"
+
+LAYERSERIES_COMPAT_aglprofilegraphicalqt5 = "thud"
index 4ff7791..8477b39 100755 (executable)
@@ -41,7 +41,6 @@ TOOLCHAIN_TARGET_TASK += " \
     libexif-dev \
     pango-dev \
     libdrm-dev  \
-    libssp-dev \
     lua-dev \
     lua-staticdev \
     ${@bb.utils.contains('LICENSE_FLAGS_WHITELIST', 'commercial', 'ffmpeg-dev', '', d)} \
index 99b5193..984ae81 100644 (file)
@@ -1,5 +1,5 @@
 diff --git a/tests/auto/compositor/compositor/compositor.pro b/tests/auto/compositor/compositor/compositor.pro
-index f0cdaf32..64b60218 100644
+index 2919fa4..d9acac3 100644
 --- a/tests/auto/compositor/compositor/compositor.pro
 +++ b/tests/auto/compositor/compositor/compositor.pro
 @@ -7,9 +7,6 @@ QT += core-private gui-private waylandcompositor waylandcompositor-private
index 4b0b8cb..a857b0c 100644 (file)
@@ -8,3 +8,5 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
 BBFILE_COLLECTIONS += "aglprofilegraphical"
 BBFILE_PATTERN_aglprofilegraphical = "^${LAYERDIR}/"
 BBFILE_PRIORITY_aglprofilegraphical = "70"
+
+LAYERSERIES_COMPAT_aglprofilegraphical = "thud"
index feeef0e..7ea0b6e 100644 (file)
@@ -3,33 +3,20 @@ From: Michael Teyfel <mteyfel@de.adit-jv.com>
 Date: Fri, 12 Oct 2018 17:12:24 +0200
 Subject: [PATCH 1/3] Added ivi-id-agent to CMake
 
+Reworked for wayland-ivi-extension 2.2.0 by Scott Murray.
+
 Signed-off-by: Michael Teyfel <mteyfel@de.adit-jv.com>
----
- CMakeLists.txt | 4 ++++
- 1 file changed, 4 insertions(+)
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
 
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index c82136e..33662b9 100644
+index 7d0044a..988fc89 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -23,6 +23,9 @@ SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)
- project(wayland-ivi-extension)
-+find_package(PkgConfig REQUIRED)
-+pkg_check_modules(WESTON weston>=2.0.0 REQUIRED)
-+
- SET(IVI_EXTENSION_VERSION 2.0.2)
- SET(ILM_API_VERSION 2.0.2)
-@@ -35,6 +38,7 @@ add_subdirectory(ivi-layermanagement-api/ilmClient)
- add_subdirectory(ivi-layermanagement-api/ilmControl)
- add_subdirectory(ivi-layermanagement-api/test)
+@@ -40,6 +40,7 @@ add_subdirectory(ivi-layermanagement-api/test)
  add_subdirectory(ivi-layermanagement-examples)
+ add_subdirectory(ivi-layermanagement-api/ilmInput)
+ add_subdirectory(ivi-input-modules/ivi-input-controller)
 +add_subdirectory(ivi-id-agent-modules/ivi-id-agent)
  
- if(WITH_ILM_INPUT)
-     add_subdirectory(ivi-input-api/ilmInput)
--- 
-2.7.4
-
+ #=============================================================================================
index 2b78357..c39c239 100644 (file)
@@ -35,19 +35,14 @@ weston: https://github.com/mtey/weston/tree/xdg_support_ivi_id_agent
 Since libweston-desktop is used to introduce desktop-surface support,
 xdg-protocol is supported.
 
+Reworked for wayland-ivi-extension 2.2.0 by Scott Murray.
+
 Signed-off-by: Michael Teyfel <mteyfel@de.adit-jv.com>
----
- ivi-id-agent-modules/ivi-id-agent/CMakeLists.txt   |  69 ++++
- .../ivi-id-agent/src/ivi-id-agent.c                | 381 +++++++++++++++++++++
- ivi-id-agent-modules/ivi-id-agent/weston.ini.in    |  20 ++
- 3 files changed, 470 insertions(+)
- create mode 100644 ivi-id-agent-modules/ivi-id-agent/CMakeLists.txt
- create mode 100644 ivi-id-agent-modules/ivi-id-agent/src/ivi-id-agent.c
- create mode 100644 ivi-id-agent-modules/ivi-id-agent/weston.ini.in
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
 
 diff --git a/ivi-id-agent-modules/ivi-id-agent/CMakeLists.txt b/ivi-id-agent-modules/ivi-id-agent/CMakeLists.txt
 new file mode 100644
-index 0000000..2def105
+index 0000000..7354a7e
 --- /dev/null
 +++ b/ivi-id-agent-modules/ivi-id-agent/CMakeLists.txt
 @@ -0,0 +1,69 @@
@@ -76,9 +71,9 @@ index 0000000..2def105
 +
 +find_package(PkgConfig REQUIRED)
 +pkg_check_modules(WAYLAND_SERVER wayland-server REQUIRED)
-+pkg_check_modules(WESTON weston>=2.0.0 REQUIRED)
++pkg_check_modules(WESTON weston>=5.0.0 REQUIRED)
 +pkg_check_modules(PIXMAN pixman-1 REQUIRED)
-+pkg_check_modules(LIBWESTON_DESKTOP libweston-desktop-2 REQUIRED)
++pkg_check_modules(LIBWESTON_DESKTOP libweston-desktop-5 REQUIRED)
 +
 +find_package(Threads REQUIRED)
 +
@@ -533,6 +528,3 @@ index 0000000..48a196c
 +[desktop-app-default]
 +default-surface-id=2000000
 +default-surface-id-max=2001000
--- 
-2.7.4
-
index 06fe784..8985879 100644 (file)
@@ -3,16 +3,16 @@ From: Michael Teyfel <mteyfel@de.adit-jv.com>
 Date: Fri, 12 Oct 2018 16:57:24 +0200
 Subject: [PATCH 3/3] ivi-controller: load id-agent module
 
+Reworked for wayland-ivi-extension 2.2.0 by Scott Murray.
+
 Signed-off-by: Michael Teyfel <mteyfel@de.adit-jv.com>
----
- weston-ivi-shell/src/ivi-controller.c | 39 +++++++++++++++++++++++++++++++++++
- 1 file changed, 39 insertions(+)
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
 
 diff --git a/weston-ivi-shell/src/ivi-controller.c b/weston-ivi-shell/src/ivi-controller.c
-index 6d95c88..f6ac174 100644
+index 8faec2a..8fa51f4 100644
 --- a/weston-ivi-shell/src/ivi-controller.c
 +++ b/weston-ivi-shell/src/ivi-controller.c
-@@ -2164,6 +2164,41 @@ load_input_module(struct ivishell *shell)
+@@ -2154,6 +2154,41 @@ load_input_module(struct ivishell *shell)
      return 0;
  }
  
@@ -54,9 +54,9 @@ index 6d95c88..f6ac174 100644
  static void
  launch_client_process(void *data)
  {
-@@ -2229,6 +2264,10 @@ controller_module_init(struct weston_compositor *compositor,
-         return -1;
-     }
+@@ -2221,6 +2256,10 @@ wet_module_init(struct weston_compositor *compositor,
+     shell->destroy_listener.notify = ivi_shell_destroy;
+     wl_signal_add(&compositor->destroy_signal, &shell->destroy_listener);
  
 +    if (load_id_agent_module(shell) < 0) {
 +        weston_log("ivi-controller: id-agent module not loaded\n");
@@ -65,6 +65,3 @@ index 6d95c88..f6ac174 100644
      if (shell->bkgnd_surface_id && shell->ivi_client_name) {
          loop = wl_display_get_event_loop(compositor->wl_display);
          wl_event_loop_add_idle(loop, launch_client_process, shell);
--- 
-2.7.4
-
index a665c06..05d1cc2 100644 (file)
@@ -11,10 +11,10 @@ index a88f2b0..12a2017 100644
  } t_ilm_notification_mask;
  
 diff --git a/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c b/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c
-index 9b4762b..5104459 100644
+index a912e50..5166839 100644
 --- a/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c
 +++ b/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c
-@@ -779,6 +779,12 @@ input_listener_input_focus(void *data,
+@@ -819,6 +819,12 @@ input_listener_input_focus(void *data,
              surf_ctx->prop.focus |= device;
          else
              surf_ctx->prop.focus &= ~device;
@@ -25,4 +25,5 @@ index 9b4762b..5104459 100644
 +                                    ILM_NOTIFICATION_FOCUS);
 +        }
      }
- }
\ No newline at end of file
+ }
@@ -5,25 +5,23 @@ BUGTRACKER = "http://bugs.genivi.org/enter_bug.cgi?product=Wayland%20IVI%20Exten
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=1f1a56bb2dadf5f2be8eb342acf4ed79"
 
-SRCREV = "ff067a640451de46836200624ece7ac777977c30"
-SRC_URI = "git://github.com/GENIVI/${BPN}.git;branch=2.0;protocol=http \
-        file://0001-Added-ivi-id-agent-to-CMake.patch \
-        file://0002-ivi-id-agent-added-ivi-id-agent.patch \
-        file://0003-ivi-controller-load-id-agent-module.patch \
-        file://0002-add-LayerManagerControl-error-status.patch \
-        file://0004-ivi-ilmcontrol-added-focus-notification.patch \
+SRC_URI = "git://github.com/GENIVI/${BPN}.git;protocol=http \
+           file://0001-Added-ivi-id-agent-to-CMake.patch \
+           file://0002-ivi-id-agent-added-ivi-id-agent.patch \
+           file://0003-ivi-controller-load-id-agent-module.patch \
+           file://0002-add-LayerManagerControl-error-status.patch \
+           file://0004-ivi-ilmcontrol-added-focus-notification.patch \
 "
 SRC_URI_append_wandboard = " file://wandboard_fix_build.patch"
+SRCREV = "736fb654ac81230cf4f9e51a5772d3a02d7639bf"
 
+PV = "2.2.0+git${SRCPV}"
 S = "${WORKDIR}/git"
 
 DEPENDS = "weston virtual/libgles2 pixman wayland-native"
 
 FILESEXTRAPATHS_prepend := ":${THISDIR}/wayland-ivi-extension:"
 
-# workaround paralellism issue:
-PARALLEL_MAKE = ""
-
 inherit cmake
 
 EXTRA_OECMAKE := "-DWITH_ILM_INPUT=1"
index bd1a72b..3a59ba0 100644 (file)
@@ -4,18 +4,14 @@ Date: Wed, 31 May 2017 22:48:18 +0000
 Subject: [PATCH] Allow regular users to launch Weston
 
 Signed-off-by: Ronan Le Martret <ronan.lemartret@iot.bzh>
----
- configure.ac                | 6 ++++++
- libweston/launcher-direct.c | 2 ++
- 2 files changed, 8 insertions(+)
 
 diff --git a/configure.ac b/configure.ac
-index 7e84c14..8b3e17e 100644
+index 50f8e013..2043b9b0 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -155,6 +155,12 @@ if test x$enable_xkbcommon = xyes; then
-                           true)
- fi
+@@ -156,6 +156,12 @@ PKG_CHECK_MODULES(XKBCOMMON_COMPOSE, [xkbcommon >= 0.5.0],
+                   [AC_DEFINE(HAVE_XKBCOMMON_COMPOSE, 1,
+                    [Define if xkbcommon is 0.5.0 or newer])],true)
  
 +AC_ARG_ENABLE(sys-uid, [  --enable-sys-uid],,
 +              enable_sys_uid=no)
@@ -27,10 +23,10 @@ index 7e84c14..8b3e17e 100644
              enable_setuid_install=yes)
  AM_CONDITIONAL(ENABLE_SETUID_INSTALL, test x$enable_setuid_install = xyes)
 diff --git a/libweston/launcher-direct.c b/libweston/launcher-direct.c
-index 4fc1c3c..8f16a69 100644
+index e0ce6d63..d0db9bb5 100644
 --- a/libweston/launcher-direct.c
 +++ b/libweston/launcher-direct.c
-@@ -275,8 +275,10 @@ launcher_direct_connect(struct weston_launcher **out, struct weston_compositor *
+@@ -283,8 +283,10 @@ launcher_direct_connect(struct weston_launcher **out, struct weston_compositor *
  {
        struct launcher_direct *launcher;
  
@@ -41,6 +37,3 @@ index 4fc1c3c..8f16a69 100644
  
        launcher = zalloc(sizeof(*launcher));
        if (launcher == NULL)
--- 
-2.7.4
-
index 449b7a0..b1e0b8a 100644 (file)
@@ -1,40 +1,40 @@
-index 67619b8f..e9ddf9a4 100644
+diff --git a/ivi-shell/ivi-shell.c b/ivi-shell/ivi-shell.c
+index 58f53bc5..34cdce27 100644
 --- a/ivi-shell/ivi-shell.c
 +++ b/ivi-shell/ivi-shell.c
-@@ -497,44 +497,53 @@ wet_shell_init(struct weston_compositor *compositor,
+@@ -484,13 +484,14 @@ wet_shell_init(struct weston_compositor *compositor,
+              int *argc, char *argv[])
  {
        struct ivi_shell *shell;
-       struct ivi_shell_setting setting = { };
 -      int retval = -1;
  
        shell = zalloc(sizeof *shell);
        if (shell == NULL)
-               return -1;
-       if (ivi_shell_setting_create(&setting, compositor, argc, argv) != 0)
 -              return -1;
 +              goto err_shell;
  
-       init_ivi_shell(compositor, shell, &setting);
+       init_ivi_shell(compositor, shell);
 +      /* TODO deinit_ivi_shell should be implemented, since init_ivi_shell is
 +       * initializing multiple lists. */
  
        shell->destroy_listener.notify = shell_destroy;
        wl_signal_add(&compositor->destroy_signal, &shell->destroy_listener);
+@@ -499,22 +500,29 @@ wet_shell_init(struct weston_compositor *compositor,
+       wl_signal_add(&compositor->wake_signal, &shell->wake_listener);
  
        if (input_panel_setup(shell) < 0)
--              goto out_settings;
-+              goto err_settings;
+-              goto out;
++              goto err_shell;
  
        shell->text_backend = text_backend_init(compositor);
        if (!shell->text_backend)
--              goto out_settings;
-+              goto err_settings;
+-              goto out;
++              goto err_shell;
  
        if (wl_global_create(compositor->wl_display,
                             &ivi_application_interface, 1,
                             shell, bind_ivi_application) == NULL)
--              goto out_settings;
+-              goto out;
 +              goto err_text_backend;
  
        ivi_layout_init_with_compositor(compositor);
@@ -42,23 +42,14 @@ index 67619b8f..e9ddf9a4 100644
 +       * and signals are initialized.*/
        shell_add_bindings(compositor, shell);
  
-       /* Call module_init of ivi-modules which are defined in weston.ini */
-       if (load_controller_modules(compositor, setting.ivi_module,
-                                   argc, argv) < 0)
--              goto out_settings;
-+              goto err_text_backend;
-+
+-      retval = 0;
 +      return IVI_SUCCEEDED;
  
--      retval = 0;
+-out:
+-      return retval;
 +err_text_backend:
 +      text_backend_destroy(shell->text_backend);
--out_settings:
-+err_settings:
-       free(setting.ivi_module);
--      return retval;
++
 +err_shell:
 +      free(shell);
 +
index 6f683ca..9f696d8 100644 (file)
@@ -1,7 +1,8 @@
-index 2317d6e9..e1e897ed 100644
+diff --git a/ivi-shell/ivi-layout-export.h b/ivi-shell/ivi-layout-export.h
+index 016d8b5c..02bfb2cb 100644
 --- a/ivi-shell/ivi-layout-export.h
 +++ b/ivi-shell/ivi-layout-export.h
-@@ -56,12 +56,14 @@ extern "C" {
+@@ -56,6 +56,7 @@ extern "C" {
  #endif /* __cplusplus */
  
  #include <stdint.h>
@@ -9,6 +10,7 @@ index 2317d6e9..e1e897ed 100644
  
  #include "stdbool.h"
  #include "compositor.h"
+@@ -63,6 +64,7 @@ extern "C" {
  
  #define IVI_SUCCEEDED (0)
  #define IVI_FAILED (-1)
index 551e449..f6256f7 100644 (file)
@@ -1,9 +1,10 @@
-index 5f64e72d..dc8e6f1d 100644
+diff --git a/ivi-shell/ivi-shell.c b/ivi-shell/ivi-shell.c
+index b0a2a2b9..a889afdb 100644
 --- a/ivi-shell/ivi-shell.c
 +++ b/ivi-shell/ivi-shell.c
-@@ -677,10 +677,14 @@ wet_shell_init(struct weston_compositor *compositor,
+@@ -664,10 +664,14 @@ wet_shell_init(struct weston_compositor *compositor,
        if (!shell->text_backend)
-               goto err_settings;
+               goto err_shell;
  
 +      shell->desktop = weston_desktop_create(compositor, &shell_desktop_api, shell);
 +      if (!shell->desktop)
@@ -17,12 +18,7 @@ index 5f64e72d..dc8e6f1d 100644
  
        ivi_layout_init_with_compositor(compositor);
        /* TODO ivi_layout_destroy should be implemented, since multiple lists
-@@ -690,10 +694,13 @@ wet_shell_init(struct weston_compositor *compositor,
-       /* Call module_init of ivi-modules which are defined in weston.ini */
-       if (load_controller_modules(compositor, setting.ivi_module,
-                                   argc, argv) < 0)
--              goto err_text_backend;
-+              goto err_desktop;
+@@ -676,6 +680,9 @@ wet_shell_init(struct weston_compositor *compositor,
  
        return IVI_SUCCEEDED;
  
index c5d85bb..447cff4 100644 (file)
@@ -1,4 +1,5 @@
-index d5403e06..7b2f2707 100644
+diff --git a/ivi-shell/hmi-controller.c b/ivi-shell/hmi-controller.c
+index a0e49ba0..340d1915 100644
 --- a/ivi-shell/hmi-controller.c
 +++ b/ivi-shell/hmi-controller.c
 @@ -129,9 +129,9 @@ struct hmi_controller {
@@ -12,7 +13,7 @@ index d5403e06..7b2f2707 100644
  
        struct wl_client                   *user_interface;
        struct ui_setting                   ui_setting;
-@@ -581,28 +581,6 @@ create_layer(struct weston_output *output,
+@@ -576,28 +576,6 @@ create_layer(struct weston_output *output,
  /**
   * Internal set notification
   */
@@ -34,14 +35,14 @@ index d5403e06..7b2f2707 100644
 -      if (is_surf_in_ui_widget(hmi_ctrl, ivisurf))
 -              return;
 -
--      ret = ivi_layout_interface->layer_add_surface(application_layer, ivisurf);
+-      ret = hmi_ctrl->interface->layer_add_surface(application_layer, ivisurf);
 -      assert(!ret);
 -}
 -
  static void
  set_notification_remove_surface(struct wl_listener *listener, void *data)
  {
-@@ -670,6 +648,42 @@ set_notification_configure_surface(struct wl_listener *listener, void *data)
+@@ -665,6 +643,42 @@ set_notification_configure_surface(struct wl_listener *listener, void *data)
        switch_mode(hmi_ctrl, hmi_ctrl->layout_mode);
  }
  
@@ -64,55 +65,54 @@ index d5403e06..7b2f2707 100644
 +      if (is_surf_in_ui_widget(hmi_ctrl, ivisurf))
 +              return;
 +
-+      ret = ivi_layout_interface->layer_add_surface(application_layer, ivisurf);
++      ret = hmi_ctrl->interface->layer_add_surface(application_layer, ivisurf);
 +      assert(!ret);
 +
 +      /*
 +       * if application changes size of wl_buffer. The source rectangle shall be
 +       * fit to the size.
 +       */
-+      surface = ivi_layout_interface->surface_get_weston_surface(ivisurf);
++      surface = hmi_ctrl->interface->surface_get_weston_surface(ivisurf);
 +      if (surface) {
-+              ivi_layout_interface->surface_set_source_rectangle(ivisurf, 0,
++              hmi_ctrl->interface->surface_set_source_rectangle(ivisurf, 0,
 +                              0, surface->width, surface->height);
 +      }
 +
-+      ivi_layout_interface->commit_changes();
++      hmi_ctrl->interface->commit_changes();
 +      switch_mode(hmi_ctrl, hmi_ctrl->layout_mode);
 +}
 +
  /**
   * A hmi_controller used 4 ivi_layers to manage ivi_surfaces. The IDs of
   * corresponding ivi_layer are defined in weston.ini. Default scene graph
-@@ -852,6 +866,9 @@ hmi_controller_create(struct weston_compositor *ec)
+@@ -868,6 +882,9 @@ hmi_controller_create(struct weston_compositor *ec)
        hmi_ctrl->surface_configured.notify = set_notification_configure_surface;
-       ivi_layout_interface->add_listener_configure_surface(&hmi_ctrl->surface_configured);
+       hmi_ctrl->interface->add_listener_configure_surface(&hmi_ctrl->surface_configured);
  
 +      hmi_ctrl->desktop_surface_configured.notify = set_notification_configure_desktop_surface;
-+      ivi_layout_interface->add_listener_configure_desktop_surface(&hmi_ctrl->desktop_surface_configured);
++      hmi_ctrl->interface->add_listener_configure_desktop_surface(&hmi_ctrl->desktop_surface_configured);
 +
        hmi_ctrl->destroy_listener.notify = hmi_controller_destroy;
        wl_signal_add(&hmi_ctrl->compositor->destroy_signal,
                      &hmi_ctrl->destroy_listener);
-@@ -1275,13 +1292,6 @@ ivi_hmi_controller_UI_ready(struct wl_client *client,
-       ivi_layout_interface->commit_changes();
+@@ -1289,12 +1306,6 @@ ivi_hmi_controller_UI_ready(struct wl_client *client,
  
        ivi_hmi_controller_add_launchers(hmi_ctrl, 256);
--
 -      /* Add surface_created listener after the initialization of launchers.
 -       * Otherwise, surfaces of the launchers will be added to application
 -       * layer too.*/
 -      hmi_ctrl->surface_created.notify = set_notification_create_surface;
--      ivi_layout_interface->add_listener_create_surface(&hmi_ctrl->surface_created);
+-      hmi_ctrl->interface->add_listener_create_surface(&hmi_ctrl->surface_created);
 -
        hmi_ctrl->is_initialized = 1;
  }
  
 diff --git a/ivi-shell/ivi-layout.c b/ivi-shell/ivi-layout.c
-index 6b854503..22d63708 100644
+index b06bf309..ef354d49 100644
 --- a/ivi-shell/ivi-layout.c
 +++ b/ivi-shell/ivi-layout.c
-@@ -787,9 +787,15 @@ commit_surface_list(struct ivi_layout *layout)
+@@ -715,9 +715,15 @@ commit_surface_list(struct ivi_layout *layout)
                        ivisurf->pending.prop.transition_type = IVI_LAYOUT_TRANSITION_NONE;
  
                        if (configured && !is_surface_transition(ivisurf)) {
index 8094f9b..036b14c 100644 (file)
@@ -1,7 +1,8 @@
-index 23f79dfe..f9c8010b 100644
+diff --git a/Makefile.am b/Makefile.am
+index 17c053e6..e0d3cb78 100644
 --- a/Makefile.am
 +++ b/Makefile.am
-@@ -616,9 +616,7 @@ demo_clients += weston-simple-egl
+@@ -609,9 +609,7 @@ demo_clients += weston-simple-egl
  weston_simple_egl_SOURCES = clients/simple-egl.c
  nodist_weston_simple_egl_SOURCES =            \
        protocol/xdg-shell-unstable-v6-protocol.c               \
@@ -13,7 +14,7 @@ index 23f79dfe..f9c8010b 100644
  weston_simple_egl_LDADD = $(SIMPLE_EGL_CLIENT_LIBS) -lm
  endif
 diff --git a/clients/simple-egl.c b/clients/simple-egl.c
-index dad0f09b..07e7e785 100644
+index a1e57aef..936e015e 100644
 --- a/clients/simple-egl.c
 +++ b/clients/simple-egl.c
 @@ -45,8 +45,6 @@
@@ -40,8 +41,8 @@ index dad0f09b..07e7e785 100644
 -      struct ivi_surface *ivi_surface;
        EGLSurface egl_surface;
        struct wl_callback *callback;
-       int fullscreen, opaque, buffer_size, frame_sync, delay;
-@@ -355,27 +351,22 @@ static const struct zxdg_toplevel_v6_listener xdg_toplevel_listener = {
+       int fullscreen, maximized, opaque, buffer_size, frame_sync, delay;
+@@ -359,27 +355,22 @@ static const struct zxdg_toplevel_v6_listener xdg_toplevel_listener = {
  };
  
  static void
@@ -81,7 +82,7 @@ index dad0f09b..07e7e785 100644
        window->xdg_surface = zxdg_shell_v6_get_xdg_surface(display->shell,
                                                            window->surface);
        zxdg_surface_v6_add_listener(window->xdg_surface,
-@@ -390,50 +381,6 @@ create_xdg_surface(struct window *window, struct display *display)
+@@ -394,50 +385,6 @@ create_xdg_surface(struct window *window, struct display *display)
  
        window->wait_for_configure = true;
        wl_surface_commit(window->surface);
@@ -132,7 +133,7 @@ index dad0f09b..07e7e785 100644
  
        ret = eglMakeCurrent(window->display->egl.dpy, window->egl_surface,
                             window->egl_surface, window->display->egl.ctx);
-@@ -465,8 +412,6 @@ destroy_surface(struct window *window)
+@@ -469,8 +416,6 @@ destroy_surface(struct window *window)
                zxdg_toplevel_v6_destroy(window->xdg_toplevel);
        if (window->xdg_surface)
                zxdg_surface_v6_destroy(window->xdg_surface);
@@ -141,7 +142,7 @@ index dad0f09b..07e7e785 100644
        wl_surface_destroy(window->surface);
  
        if (window->callback)
-@@ -821,10 +766,6 @@ registry_handle_global(void *data, struct wl_registry *registry,
+@@ -825,10 +770,6 @@ registry_handle_global(void *data, struct wl_registry *registry,
                        fprintf(stderr, "unable to load default left pointer\n");
                        // TODO: abort ?
                }
@@ -152,7 +153,7 @@ index dad0f09b..07e7e785 100644
        }
  }
  
-@@ -939,9 +880,6 @@ main(int argc, char **argv)
+@@ -943,9 +884,6 @@ main(int argc, char **argv)
        if (display.shell)
                zxdg_shell_v6_destroy(display.shell);
  
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0016-ivi-shell_add_screen_remove_layer_api.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0016-ivi-shell_add_screen_remove_layer_api.patch
deleted file mode 100644 (file)
index 3e85e93..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-From deee858b0b199d8cfa8033a46d7078f30b23725e Mon Sep 17 00:00:00 2001
-From: "Ucan, Emre (ADITG/SW1)" <eucan@de.adit-jv.com>
-Date: Thu, 2 Mar 2017 08:47:33 +0000
-Subject: ivi-shell: add_screen_remove_layer API
-
-It is analagous to layer_remove_surface API.
-The API removes a layer from the render order
-of the screen.
-
-v3:
-add the new vfunc at the end of
-the ivi_layout_interface struct.
-
-Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
-Reviewed-by: Eugen Friedrich <friedrix@gmail.com>
-Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
-diff --git a/ivi-shell/ivi-layout-export.h b/ivi-shell/ivi-layout-export.h
-index 2317d6e..39ffde1 100644
---- a/ivi-shell/ivi-layout-export.h
-+++ b/ivi-shell/ivi-layout-export.h
-@@ -578,6 +578,16 @@ struct ivi_layout_interface {
-        */
-       struct ivi_layout_surface *
-               (*get_surface)(struct weston_surface *surface);
-+
-+      /**
-+       * \brief Remove a ivi_layer to a weston_output which is currently managed
-+       * by the service
-+       *
-+       * \return IVI_SUCCEEDED if the method call was successful
-+       * \return IVI_FAILED if the method call was failed
-+       */
-+      int32_t (*screen_remove_layer)(struct weston_output *output,
-+                                     struct ivi_layout_layer *removelayer);
- };
- #ifdef __cplusplus
-diff --git a/ivi-shell/ivi-layout.c b/ivi-shell/ivi-layout.c
-index 298e18e..8e4280b 100644
---- a/ivi-shell/ivi-layout.c
-+++ b/ivi-shell/ivi-layout.c
-@@ -1664,6 +1664,27 @@ ivi_layout_screen_add_layer(struct weston_output *output,
- }
- static int32_t
-+ivi_layout_screen_remove_layer(struct weston_output *output,
-+                          struct ivi_layout_layer *removelayer)
-+{
-+      struct ivi_layout_screen *iviscrn;
-+
-+      if (output == NULL || removelayer == NULL) {
-+              weston_log("ivi_layout_screen_remove_layer: invalid argument\n");
-+              return IVI_FAILED;
-+      }
-+
-+      iviscrn = get_screen_from_output(output);
-+
-+      wl_list_remove(&removelayer->pending.link);
-+      wl_list_init(&removelayer->pending.link);
-+
-+      iviscrn->order.dirty = 1;
-+
-+      return IVI_SUCCEEDED;
-+}
-+
-+static int32_t
- ivi_layout_screen_set_render_order(struct weston_output *output,
-                                  struct ivi_layout_layer **pLayer,
-                                  const int32_t number)
-@@ -2088,6 +2109,7 @@ static struct ivi_layout_interface ivi_layout_interface = {
-        */
-       .get_screens_under_layer        = ivi_layout_get_screens_under_layer,
-       .screen_add_layer               = ivi_layout_screen_add_layer,
-+      .screen_remove_layer            = ivi_layout_screen_remove_layer,
-       .screen_set_render_order        = ivi_layout_screen_set_render_order,
-       /**
--- 
-cgit v0.10.2
-
-
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0017-ivi-shell-register-ivi_layout_interface.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0017-ivi-shell-register-ivi_layout_interface.patch
deleted file mode 100644 (file)
index 87d883c..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-From 5b1d282c7a7d2badf74bb19f9ddc0d49d3d4562b Mon Sep 17 00:00:00 2001
-From: Emre Ucan <eucan@de.adit-jv.com>
-Date: Thu, 25 Jan 2018 14:36:10 +0100
-Subject: [PATCH] ivi-shell: register ivi_layout_interface
-
-Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
-Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
----
- ivi-shell/ivi-layout-export.h | 13 +++++++++++++
- ivi-shell/ivi-layout.c        |  6 ++++++
- ivi-shell/ivi-shell.c         |  2 --
- 3 files changed, 19 insertions(+), 2 deletions(-)
-
-diff --git a/ivi-shell/ivi-layout-export.h b/ivi-shell/ivi-layout-export.h
-index 2317d6e..9452691 100644
---- a/ivi-shell/ivi-layout-export.h
-+++ b/ivi-shell/ivi-layout-export.h
-@@ -59,6 +59,7 @@ extern "C" {
- #include "stdbool.h"
- #include "compositor.h"
-+#include "plugin-registry.h"
- #define IVI_SUCCEEDED (0)
- #define IVI_FAILED (-1)
-@@ -140,6 +141,8 @@ enum ivi_layout_transition_type{
-       IVI_LAYOUT_TRANSITION_MAX,
- };
-+#define IVI_LAYOUT_API_NAME "ivi_layout_api_v1"
-+
- struct ivi_layout_interface {
-       /**
-@@ -580,6 +583,16 @@ struct ivi_layout_interface {
-               (*get_surface)(struct weston_surface *surface);
- };
-+static inline const struct ivi_layout_interface *
-+ivi_layout_get_api(struct weston_compositor *compositor)
-+{
-+      const void *api;
-+      api = weston_plugin_api_get(compositor, IVI_LAYOUT_API_NAME,
-+                                  sizeof(struct ivi_layout_interface));
-+
-+      return (const struct ivi_layout_interface *)api;
-+}
-+
- #ifdef __cplusplus
- }
- #endif /* __cplusplus */
-diff --git a/ivi-shell/ivi-layout.c b/ivi-shell/ivi-layout.c
-index 64e4ead..c2c1a35 100644
---- a/ivi-shell/ivi-layout.c
-+++ b/ivi-shell/ivi-layout.c
-@@ -2000,6 +2000,8 @@ ivi_layout_surface_create(struct weston_surface *wl_surface,
-       return ivisurf;
- }
-+static struct ivi_layout_interface ivi_layout_interface;
-+
- void
- ivi_layout_init_with_compositor(struct weston_compositor *ec)
- {
-@@ -2028,6 +2030,10 @@ ivi_layout_init_with_compositor(struct weston_compositor *ec)
-       layout->transitions = ivi_layout_transition_set_create(ec);
-       wl_list_init(&layout->pending_transition_list);
-+
-+      weston_plugin_api_register(ec, IVI_LAYOUT_API_NAME,
-+                                 &ivi_layout_interface,
-+                                 sizeof(struct ivi_layout_interface));
- }
- static struct ivi_layout_interface ivi_layout_interface = {
-diff --git a/ivi-shell/ivi-shell.c b/ivi-shell/ivi-shell.c
-index 67619b8..2dabdf9 100644
---- a/ivi-shell/ivi-shell.c
-+++ b/ivi-shell/ivi-shell.c
-@@ -425,8 +425,6 @@ ivi_shell_setting_create(struct ivi_shell_setting *dest,
-       if (!dest->ivi_module &&
-           weston_config_section_get_string(section, "ivi-module",
-                                            &dest->ivi_module, NULL) < 0) {
--              weston_log("Error: ivi-shell: No ivi-module set\n");
--              result = -1;
-       }
-       weston_config_section_get_bool(section, "developermode",
--- 
-2.7.4
-
index 91c2239..2f3b010 100644 (file)
@@ -29,15 +29,12 @@ remain maintained locally out of mainstream in the wait
 of further investigations.
 
 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
----
- shared/os-compatibility.c | 1 +
- 1 file changed, 1 insertion(+)
 
 diff --git a/shared/os-compatibility.c b/shared/os-compatibility.c
-index e19fb61b..7e93e818 100644
+index e19fb61b..826e48b8 100644
 --- a/shared/os-compatibility.c
 +++ b/shared/os-compatibility.c
-@@ -157,6 +157,8 @@ os_create_anonymous_file(off_t size)
+@@ -157,7 +157,9 @@ os_create_anonymous_file(off_t size)
        int fd;
        int ret;
  
@@ -47,6 +44,4 @@ index e19fb61b..7e93e818 100644
 +              path = getenv("XDG_RUNTIME_DIR");
        if (!path) {
                errno = ENOENT;
--- 
-2.13.6
-
+               return -1;
index 51e640e..bcfe11b 100644 (file)
@@ -1,2 +1,4 @@
 PACKAGECONFIG[notify] = "--enable-systemd-notify,--disable-systemd-notify,systemd"
 PACKAGECONFIG_append = " notify"
+
+RRECOMMENDS_${PN}_remove = "weston-conf"
@@ -17,11 +17,12 @@ SRC_URI_append = "\
     file://0013-simple-egl-remove-ivi-application-support.patch \
     file://0014-simple-shm-remove-ivi-application-support.patch \
     file://0015-window-client-remove-ivi-application-support.patch \
-    file://0016-ivi-shell_add_screen_remove_layer_api.patch \
-    file://0017-ivi-shell-register-ivi_layout_interface.patch \
-    file://0018-compositor-add-output-type-to-weston_output.patch \
-    file://0019-compositor-drm-introduce-drm_get_dmafd_from_view.patch \
     file://use-XDG_RUNTIMESHARE_DIR.patch \
     "
 
+# FIXME: The following patches need to be updated for weston 5.0.0:
+#    file://0018-compositor-add-output-type-to-weston_output.patch
+#    file://0019-compositor-drm-introduce-drm_get_dmafd_from_view.patch
+
+
 EXTRA_OECONF_append = " --enable-sys-uid"
index ed79040..ced2b53 100644 (file)
@@ -15,7 +15,8 @@ RDEPENDS_${PN} += "\
     packagegroup-agl-image-minimal \
     packagegroup-agl-graphical-weston \
     packagegroup-agl-graphical-services \
-    waltham-transmitter \
 "
+# FIXME: Removed due to issues building against weston 5.0.0:
+#    waltham-transmitter
 
 RDEPENDS_profile-graphical = "${PN}"
index 57fb70f..4f5d06f 100644 (file)
@@ -8,3 +8,5 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
 BBFILE_COLLECTIONS += "aglprofilehud"
 BBFILE_PATTERN_aglprofilehud = "^${LAYERDIR}/"
 BBFILE_PRIORITY_aglprofilehud = "70"
+
+LAYERSERIES_COMPAT_aglprofilehud = "thud"
index e563143..6d17746 100644 (file)
@@ -8,3 +8,5 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
 BBFILE_COLLECTIONS += "aglprofiletelematics"
 BBFILE_PATTERN_aglprofiletelematics = "^${LAYERDIR}/"
 BBFILE_PRIORITY_aglprofiletelematics = "70"
+
+LAYERSERIES_COMPAT_aglprofiletelematics = "thud"
index dd0784a..c46ec80 100644 (file)
@@ -8,3 +8,5 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
 BBFILE_COLLECTIONS += "agl"
 BBFILE_PATTERN_agl = "^${LAYERDIR}/"
 BBFILE_PRIORITY_agl = "70"
+
+LAYERSERIES_COMPAT_agl = "thud"
index ab3416a..717bd7b 100644 (file)
@@ -23,6 +23,9 @@ DEPENDS_append = " af-binder-devtools-native"
 
 EXTRA_OECMAKE_append_agl-ptest = " -DBUILD_TEST_WGT=TRUE"
 
+# FIXME: Remove once CMake+ninja issues are resolved
+OECMAKE_GENERATOR = "Unix Makefiles"
+
 do_aglwgt_package()  {
         cd ${B}
         ${S}/autobuild/agl/autobuild package BUILD_DIR=${B} DEST=${B} VERBOSE=TRUE || \
index 97ca552..4af5354 100644 (file)
@@ -9,3 +9,4 @@ BBFILE_COLLECTIONS += "app-framework"
 BBFILE_PATTERN_app-framework = "^${LAYERDIR}/"
 BBFILE_PRIORITY_app-framework = "70"
 
+LAYERSERIES_COMPAT_app-framework = "thud"
index 0418162..0b21530 100644 (file)
@@ -98,7 +98,7 @@ do_install_append_class-target() {
     echo "QT_WAYLAND_SHELL_INTEGRATION=ivi-shell" > ${D}${afm_confdir}/unit.env.d/qt-for-ivi-shell
 }
 
-pkg_postinst_${PN}() {
+pkg_postinst_ontarget_${PN}() {
     if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
         chgrp ${afm_name} $D${systemd_units_root}/system
         chgrp ${afm_name} $D${systemd_units_root}/system/afm-user-session@.target.wants
@@ -110,7 +110,7 @@ pkg_postinst_${PN}() {
     chown ${afm_name}:${afm_name} $D${afm_datadir}/icons
 }
 
-pkg_postinst_${PN}_append_with-lsm-smack() {
+pkg_postinst_ontarget_${PN}_append_with-lsm-smack() {
     if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
         chsmack -a 'System::Shared' -t $D${systemd_units_root}/system
         chsmack -a 'System::Shared' -t $D${systemd_units_root}/system/afm-user-session@.target.wants
index c4561db..ac909a6 100644 (file)
@@ -1,2 +1,3 @@
 FILESEXTRAPATHS_append_class-native := ":${THISDIR}/${PN}"
-SRC_URI_append_class-native = " file://removing-capability-enforcement.patch"
+# FIXME: It needs to be determined if this is still required
+#SRC_URI_append_class-native = " file://removing-capability-enforcement.patch"
index 7ee6f6f..d22a864 100644 (file)
@@ -11,3 +11,5 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
 BBFILE_COLLECTIONS += "meta-netboot"
 BBFILE_PATTERN_meta-netboot = "^${LAYERDIR}/"
 BBFILE_PRIORITY_meta-netboot = "60"
+
+LAYERSERIES_COMPAT_meta-netboot = "thud"
index 2da233a..16dae39 100644 (file)
@@ -10,3 +10,5 @@ BBFILES += " ${LAYERDIR}/recipes-*/*/*.bb \
 BBFILE_COLLECTIONS += "security-smack"
 BBFILE_PATTERN_security-smack := "^${LAYERDIR}/"
 BBFILE_PRIORITY_security-smack = "60"
+
+LAYERSERIES_COMPAT_security-smack = "thud"
index 6a7e8a3..d04c60c 100644 (file)
@@ -19,46 +19,17 @@ Currently such return value results in message denial.
 Cherry picked from 4dcfb02f17247ff9de966b62182cd2e08f301238
 by José Bollo.
 
+Updated for dbus 1.10.20 by Scott Murray.
+
 Change-Id: I9bcbce34577e5dc2a3cecf6233a0a2b0e43e1108
 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
----
- bus/Makefile.am                                    |   6 +
- bus/bus.c                                          | 136 +++++---
- bus/bus.h                                          |  32 +-
- bus/check.c                                        | 217 ++++++++++++
- bus/check.h                                        |  68 ++++
- bus/config-parser-common.c                         |   6 +
- bus/config-parser-common.h                         |   1 +
- bus/config-parser.c                                |  71 +++-
- bus/connection.c                                   |  56 ++-
- bus/connection.h                                   |   4 +
- bus/cynara.c                                       | 374 +++++++++++++++++++++
- bus/cynara.h                                       |  37 ++
- bus/dispatch.c                                     |  44 ++-
- bus/policy.c                                       | 193 +++++++----
- bus/policy.h                                       |  51 ++-
- configure.ac                                       |  12 +
- test/Makefile.am                                   |   1 +
- test/data/invalid-config-files/badcheck-1.conf     |   9 +
- test/data/invalid-config-files/badcheck-2.conf     |   9 +
- test/data/valid-config-files/check-1.conf          |   9 +
- .../valid-config-files/debug-check-some.conf.in    |  18 +
- tools/dbus-send.c                                  |   2 +-
- 22 files changed, 1193 insertions(+), 163 deletions(-)
- create mode 100644 bus/check.c
- create mode 100644 bus/check.h
- create mode 100644 bus/cynara.c
- create mode 100644 bus/cynara.h
- create mode 100644 test/data/invalid-config-files/badcheck-1.conf
- create mode 100644 test/data/invalid-config-files/badcheck-2.conf
- create mode 100644 test/data/valid-config-files/check-1.conf
- create mode 100644 test/data/valid-config-files/debug-check-some.conf.in
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
 
 diff --git a/bus/Makefile.am b/bus/Makefile.am
-index 33af09b0..3f57cc48 100644
+index 9ae3071..46afb31 100644
 --- a/bus/Makefile.am
 +++ b/bus/Makefile.am
-@@ -9,6 +9,7 @@ DBUS_BUS_LIBS = \
+@@ -13,6 +13,7 @@ DBUS_BUS_LIBS = \
        $(THREAD_LIBS) \
        $(ADT_LIBS) \
        $(NETWORK_libs) \
@@ -66,7 +37,7 @@ index 33af09b0..3f57cc48 100644
        $(NULL)
  
  DBUS_LAUNCHER_LIBS = \
-@@ -24,6 +25,7 @@ AM_CPPFLAGS = \
+@@ -30,6 +31,7 @@ AM_CPPFLAGS = \
        $(APPARMOR_CFLAGS) \
        -DDBUS_SYSTEM_CONFIG_FILE=\""$(dbusdatadir)/system.conf"\" \
        -DDBUS_COMPILATION \
@@ -74,15 +45,16 @@ index 33af09b0..3f57cc48 100644
        $(NULL)
  
  # if assertions are enabled, improve backtraces
-@@ -82,12 +84,16 @@ BUS_SOURCES=                                       \
+@@ -90,6 +92,8 @@ BUS_SOURCES=                                 \
        audit.h                                 \
        bus.c                                   \
        bus.h                                   \
 +      check.c                                 \
 +      check.h                                 \
+       config-loader-expat.c                   \
        config-parser.c                         \
        config-parser.h                         \
-       config-parser-common.c                  \
+@@ -97,6 +101,8 @@ BUS_SOURCES=                                        \
        config-parser-common.h                  \
        connection.c                            \
        connection.h                            \
@@ -91,19 +63,33 @@ index 33af09b0..3f57cc48 100644
        desktop-file.c                          \
        desktop-file.h                          \
        $(DIR_WATCH_SOURCE)                     \
+diff --git a/bus/activation.c b/bus/activation.c
+index 6f009f5..451179d 100644
+--- a/bus/activation.c
++++ b/bus/activation.c
+@@ -1795,7 +1795,8 @@ bus_activation_activate_service (BusActivation  *activation,
+         NULL, /* proposed recipient */
+         activation_message,
+         entry,
+-        error))
++        error,
++        NULL))
+     {
+       _DBUS_ASSERT_ERROR_IS_SET (error);
+       _dbus_verbose ("activation not authorized: %s: %s\n",
 diff --git a/bus/bus.c b/bus/bus.c
-index fd4ab9e4..c4008505 100644
+index 30ce4e1..237efe3 100644
 --- a/bus/bus.c
 +++ b/bus/bus.c
-@@ -37,6 +37,7 @@
+@@ -38,6 +38,7 @@
  #include "apparmor.h"
  #include "audit.h"
  #include "dir-watch.h"
 +#include "check.h"
+ #include <dbus/dbus-auth.h>
  #include <dbus/dbus-list.h>
  #include <dbus/dbus-hash.h>
- #include <dbus/dbus-credentials.h>
-@@ -65,6 +66,7 @@ struct BusContext
+@@ -67,6 +68,7 @@ struct BusContext
    BusRegistry *registry;
    BusPolicy *policy;
    BusMatchmaker *matchmaker;
@@ -111,7 +97,7 @@ index fd4ab9e4..c4008505 100644
    BusLimits limits;
    DBusRLimit *initial_fd_limit;
    unsigned int fork : 1;
-@@ -988,6 +990,10 @@ bus_context_new (const DBusString *config_file,
+@@ -1003,6 +1005,10 @@ bus_context_new (const DBusString *config_file,
        parser = NULL;
      }
  
@@ -122,7 +108,7 @@ index fd4ab9e4..c4008505 100644
    dbus_server_free_data_slot (&server_data_slot);
  
    return context;
-@@ -1112,6 +1118,12 @@ bus_context_unref (BusContext *context)
+@@ -1127,6 +1133,12 @@ bus_context_unref (BusContext *context)
  
        bus_context_shutdown (context);
  
@@ -135,7 +121,7 @@ index fd4ab9e4..c4008505 100644
        if (context->connections)
          {
            bus_connections_unref (context->connections);
-@@ -1241,6 +1253,12 @@ bus_context_get_loop (BusContext *context)
+@@ -1256,6 +1268,12 @@ bus_context_get_loop (BusContext *context)
    return context->loop;
  }
  
@@ -148,7 +134,7 @@ index fd4ab9e4..c4008505 100644
  dbus_bool_t
  bus_context_allow_unix_user (BusContext   *context,
                               unsigned long uid)
-@@ -1456,6 +1474,7 @@ complain_about_message (BusContext     *context,
+@@ -1451,6 +1469,7 @@ complain_about_message (BusContext     *context,
                          DBusConnection *proposed_recipient,
                          dbus_bool_t     requested_reply,
                          dbus_bool_t     log,
@@ -156,7 +142,7 @@ index fd4ab9e4..c4008505 100644
                          DBusError      *error)
  {
    DBusError stack_error = DBUS_ERROR_INIT;
-@@ -1485,7 +1504,8 @@ complain_about_message (BusContext     *context,
+@@ -1480,7 +1499,8 @@ complain_about_message (BusContext     *context,
    dbus_set_error (&stack_error, error_name,
        "%s, %d matched rules; type=\"%s\", sender=\"%s\" (%s) "
        "interface=\"%s\" member=\"%s\" error name=\"%s\" "
@@ -166,7 +152,7 @@ index fd4ab9e4..c4008505 100644
        complaint,
        matched_rules,
        dbus_message_type_to_string (dbus_message_get_type (message)),
-@@ -1496,7 +1516,8 @@ complain_about_message (BusContext     *context,
+@@ -1491,7 +1511,8 @@ complain_about_message (BusContext     *context,
        nonnull (dbus_message_get_error_name (message), "(unset)"),
        requested_reply,
        nonnull (dbus_message_get_destination (message), DBUS_SERVICE_DBUS),
@@ -176,26 +162,21 @@ index fd4ab9e4..c4008505 100644
  
    /* If we hit OOM while setting the error, this will syslog "out of memory"
     * which is itself an indication that something is seriously wrong */
-@@ -1520,14 +1541,15 @@ complain_about_message (BusContext     *context,
+@@ -1519,7 +1540,7 @@ complain_about_message (BusContext     *context,
   * NULL for addressed_recipient may mean the bus driver, or may mean
   * no destination was specified in the message (e.g. a signal).
   */
 -dbus_bool_t
--bus_context_check_security_policy (BusContext     *context,
--                                   BusTransaction *transaction,
--                                   DBusConnection *sender,
--                                   DBusConnection *addressed_recipient,
--                                   DBusConnection *proposed_recipient,
--                                   DBusMessage    *message,
--                                   DBusError      *error)
 +BusResult
-+bus_context_check_security_policy (BusContext          *context,
-+                                   BusTransaction      *transaction,
-+                                   DBusConnection      *sender,
-+                                   DBusConnection      *addressed_recipient,
-+                                   DBusConnection      *proposed_recipient,
-+                                   DBusMessage         *message,
-+                                   DBusError           *error,
+ bus_context_check_security_policy (BusContext     *context,
+                                    BusTransaction *transaction,
+                                    DBusConnection *sender,
+@@ -1527,7 +1548,8 @@ bus_context_check_security_policy (BusContext     *context,
+                                    DBusConnection *proposed_recipient,
+                                    DBusMessage    *message,
+                                    BusActivationEntry *activation_entry,
+-                                   DBusError      *error)
++                                   DBusError      *error,
 +                                   BusDeferredMessage **deferred_message)
  {
    const char *src, *dest;
@@ -208,7 +189,7 @@ index fd4ab9e4..c4008505 100644
  
    type = dbus_message_get_type (message);
    src = dbus_message_get_sender (message);
-@@ -1564,7 +1587,7 @@ bus_context_check_security_policy (BusContext     *context,
+@@ -1565,7 +1588,7 @@ bus_context_check_security_policy (BusContext     *context,
        dbus_set_error (error, DBUS_ERROR_ACCESS_DENIED,
                        "Message bus will not accept messages of unknown type\n");
  
@@ -217,7 +198,7 @@ index fd4ab9e4..c4008505 100644
      }
  
    requested_reply = FALSE;
-@@ -1594,7 +1617,7 @@ bus_context_check_security_policy (BusContext     *context,
+@@ -1595,7 +1618,7 @@ bus_context_check_security_policy (BusContext     *context,
                    if (dbus_error_is_set (&error2))
                      {
                        dbus_move_error (&error2, error);
@@ -226,7 +207,7 @@ index fd4ab9e4..c4008505 100644
                      }
                  }
              }
-@@ -1621,11 +1644,11 @@ bus_context_check_security_policy (BusContext     *context,
+@@ -1624,11 +1647,11 @@ bus_context_check_security_policy (BusContext     *context,
                complain_about_message (context, DBUS_ERROR_ACCESS_DENIED,
                    "An SELinux policy prevents this sender from sending this "
                    "message to this recipient",
@@ -240,16 +221,16 @@ index fd4ab9e4..c4008505 100644
          }
  
        /* next verify AppArmor access controls.  If allowed then
-@@ -1642,7 +1665,7 @@ bus_context_check_security_policy (BusContext     *context,
-                                      dest ? dest : DBUS_SERVICE_DBUS,
+@@ -1646,7 +1669,7 @@ bus_context_check_security_policy (BusContext     *context,
                                       src ? src : DBUS_SERVICE_DBUS,
+                                      activation_entry,
                                       error))
 -        return FALSE;
 +        return BUS_RESULT_FALSE;
  
        if (!bus_connection_is_active (sender))
          {
-@@ -1656,7 +1679,7 @@ bus_context_check_security_policy (BusContext     *context,
+@@ -1660,7 +1683,7 @@ bus_context_check_security_policy (BusContext     *context,
              {
                _dbus_verbose ("security check allowing %s message\n",
                               "Hello");
@@ -258,7 +239,7 @@ index fd4ab9e4..c4008505 100644
              }
            else
              {
-@@ -1667,7 +1690,7 @@ bus_context_check_security_policy (BusContext     *context,
+@@ -1671,7 +1694,7 @@ bus_context_check_security_policy (BusContext     *context,
                                "Client tried to send a message other than %s without being registered",
                                "Hello");
  
@@ -267,7 +248,7 @@ index fd4ab9e4..c4008505 100644
              }
          }
      }
-@@ -1716,20 +1739,29 @@ bus_context_check_security_policy (BusContext     *context,
+@@ -1720,20 +1743,29 @@ bus_context_check_security_policy (BusContext     *context,
                  (proposed_recipient == NULL && recipient_policy == NULL));
  
    log = FALSE;
@@ -311,7 +292,7 @@ index fd4ab9e4..c4008505 100644
  
    if (log)
      {
-@@ -1738,23 +1770,29 @@ bus_context_check_security_policy (BusContext     *context,
+@@ -1742,23 +1774,29 @@ bus_context_check_security_policy (BusContext     *context,
        complain_about_message (context, DBUS_ERROR_ACCESS_DENIED,
            "Would reject message", toggles,
            message, sender, proposed_recipient, requested_reply,
@@ -355,7 +336,7 @@ index fd4ab9e4..c4008505 100644
      }
  
    /* See if limits on size have been exceeded */
-@@ -1764,10 +1802,10 @@ bus_context_check_security_policy (BusContext     *context,
+@@ -1768,10 +1806,10 @@ bus_context_check_security_policy (BusContext     *context,
      {
        complain_about_message (context, DBUS_ERROR_LIMITS_EXCEEDED,
            "Rejected: destination has a full message queue",
@@ -368,7 +349,7 @@ index fd4ab9e4..c4008505 100644
      }
  
    /* Record that we will allow a reply here in the future (don't
-@@ -1784,11 +1822,11 @@ bus_context_check_security_policy (BusContext     *context,
+@@ -1792,11 +1830,11 @@ bus_context_check_security_policy (BusContext     *context,
                                       message, error))
      {
        _dbus_verbose ("Failed to record reply expectation or problem with the message expecting a reply\n");
@@ -383,13 +364,13 @@ index fd4ab9e4..c4008505 100644
  
  void
 diff --git a/bus/bus.h b/bus/bus.h
-index 3fab59ff..dab7791f 100644
+index 2e0de82..82c32c8 100644
 --- a/bus/bus.h
 +++ b/bus/bus.h
-@@ -44,6 +44,22 @@ typedef struct BusOwner             BusOwner;
- typedef struct BusTransaction   BusTransaction;
+@@ -45,6 +45,22 @@ typedef struct BusTransaction   BusTransaction;
  typedef struct BusMatchmaker    BusMatchmaker;
  typedef struct BusMatchRule     BusMatchRule;
+ typedef struct BusActivationEntry BusActivationEntry;
 +typedef struct BusCheck         BusCheck;
 +typedef struct BusDeferredMessage BusDeferredMessage;
 +typedef struct BusCynara        BusCynara;
@@ -409,7 +390,7 @@ index 3fab59ff..dab7791f 100644
  
  typedef struct
  {
-@@ -97,6 +113,7 @@ BusConnections*   bus_context_get_connections                    (BusContext
+@@ -101,6 +117,7 @@ BusConnections*   bus_context_get_connections                    (BusContext
  BusActivation*    bus_context_get_activation                     (BusContext       *context);
  BusMatchmaker*    bus_context_get_matchmaker                     (BusContext       *context);
  DBusLoop*         bus_context_get_loop                           (BusContext       *context);
@@ -417,31 +398,27 @@ index 3fab59ff..dab7791f 100644
  dbus_bool_t       bus_context_allow_unix_user                    (BusContext       *context,
                                                                    unsigned long     uid);
  dbus_bool_t       bus_context_allow_windows_user                 (BusContext       *context,
-@@ -131,13 +148,14 @@ void              bus_context_log_and_set_error                  (BusContext
+@@ -136,14 +153,15 @@ void              bus_context_log_and_set_error                  (BusContext
                                                                    const char       *name,
                                                                    const char       *msg,
                                                                    ...) _DBUS_GNUC_PRINTF (5, 6);
 -dbus_bool_t       bus_context_check_security_policy              (BusContext       *context,
--                                                                  BusTransaction   *transaction,
--                                                                  DBusConnection   *sender,
--                                                                  DBusConnection   *addressed_recipient,
--                                                                  DBusConnection   *proposed_recipient,
--                                                                  DBusMessage      *message,
++BusResult         bus_context_check_security_policy              (BusContext       *context,
+                                                                   BusTransaction   *transaction,
+                                                                   DBusConnection   *sender,
+                                                                   DBusConnection   *addressed_recipient,
+                                                                   DBusConnection   *proposed_recipient,
+                                                                   DBusMessage      *message,
+                                                                   BusActivationEntry *activation_entry,
 -                                                                  DBusError        *error);
-+BusResult         bus_context_check_security_policy              (BusContext          *context,
-+                                                                  BusTransaction      *transaction,
-+                                                                  DBusConnection      *sender,
-+                                                                  DBusConnection      *addressed_recipient,
-+                                                                  DBusConnection      *proposed_recipient,
-+                                                                  DBusMessage         *message,
-+                                                                  DBusError           *error,
++                                                                  DBusError        *error,
 +                                                                  BusDeferredMessage **deferred_message);
  void              bus_context_check_all_watches                  (BusContext       *context);
  
  #endif /* BUS_BUS_H */
 diff --git a/bus/check.c b/bus/check.c
 new file mode 100644
-index 00000000..5b72d31c
+index 0000000..5b72d31
 --- /dev/null
 +++ b/bus/check.c
 @@ -0,0 +1,217 @@
@@ -664,7 +641,7 @@ index 00000000..5b72d31c
 +}
 diff --git a/bus/check.h b/bus/check.h
 new file mode 100644
-index 00000000..c3fcaf90
+index 0000000..c3fcaf9
 --- /dev/null
 +++ b/bus/check.h
 @@ -0,0 +1,68 @@
@@ -737,7 +714,7 @@ index 00000000..c3fcaf90
 +                                                             BusResult result);
 +#endif /* BUS_CHECK_H */
 diff --git a/bus/config-parser-common.c b/bus/config-parser-common.c
-index 5db6b289..ea25f5e6 100644
+index c1c4191..e2f253d 100644
 --- a/bus/config-parser-common.c
 +++ b/bus/config-parser-common.c
 @@ -75,6 +75,10 @@ bus_config_parser_element_name_to_type (const char *name)
@@ -761,7 +738,7 @@ index 5db6b289..ea25f5e6 100644
        return "fork";
      case ELEMENT_PIDFILE:
 diff --git a/bus/config-parser-common.h b/bus/config-parser-common.h
-index 382a0141..9e026d10 100644
+index 382a014..9e026d1 100644
 --- a/bus/config-parser-common.h
 +++ b/bus/config-parser-common.h
 @@ -36,6 +36,7 @@ typedef enum
@@ -773,10 +750,10 @@ index 382a0141..9e026d10 100644
    ELEMENT_PIDFILE,
    ELEMENT_SERVICEDIR,
 diff --git a/bus/config-parser.c b/bus/config-parser.c
-index d9f6042c..a8c4ca5d 100644
+index be27d38..b54b0e4 100644
 --- a/bus/config-parser.c
 +++ b/bus/config-parser.c
-@@ -1172,7 +1172,7 @@ append_rule_from_element (BusConfigParser   *parser,
+@@ -1318,7 +1318,7 @@ append_rule_from_element (BusConfigParser   *parser,
                            const char        *element_name,
                            const char       **attribute_names,
                            const char       **attribute_values,
@@ -785,15 +762,15 @@ index d9f6042c..a8c4ca5d 100644
                            DBusError         *error)
  {
    const char *log;
-@@ -1195,6 +1195,7 @@ append_rule_from_element (BusConfigParser   *parser,
+@@ -1360,6 +1360,7 @@ append_rule_from_element (BusConfigParser   *parser,
    const char *own_prefix;
    const char *user;
    const char *group;
 +  const char *privilege;
  
    BusPolicyRule *rule;
-   
-@@ -1222,6 +1223,7 @@ append_rule_from_element (BusConfigParser   *parser,
+@@ -1390,6 +1391,7 @@ append_rule_from_element (BusConfigParser   *parser,
                            "user", &user,
                            "group", &group,
                            "log", &log,
@@ -801,15 +778,15 @@ index d9f6042c..a8c4ca5d 100644
                            NULL))
      return FALSE;
  
-@@ -1230,6 +1232,7 @@ append_rule_from_element (BusConfigParser   *parser,
-         receive_interface || receive_member || receive_error || receive_sender ||
-         receive_type || receive_path || eavesdrop ||
-         send_requested_reply || receive_requested_reply ||
+@@ -1422,6 +1424,7 @@ append_rule_from_element (BusConfigParser   *parser,
+   if (!(any_send_attribute ||
+         any_receive_attribute ||
 +        privilege ||
          own || own_prefix || user || group))
      {
        dbus_set_error (error, DBUS_ERROR_FAILED,
-@@ -1246,7 +1249,30 @@ append_rule_from_element (BusConfigParser   *parser,
+@@ -1438,7 +1441,30 @@ append_rule_from_element (BusConfigParser   *parser,
                        element_name);
        return FALSE;
      }
@@ -841,25 +818,25 @@ index d9f6042c..a8c4ca5d 100644
    /* Allowed combinations of elements are:
     *
     *   base, must be all send or all receive:
-@@ -1420,7 +1446,7 @@ append_rule_from_element (BusConfigParser   *parser,
-           return FALSE;
-         }
-       
+@@ -1589,7 +1615,7 @@ append_rule_from_element (BusConfigParser   *parser,
+                                 error))
+         return FALSE;
 -      rule = bus_policy_rule_new (BUS_POLICY_RULE_SEND, allow); 
-+      rule = bus_policy_rule_new (BUS_POLICY_RULE_SEND, access);
++      rule = bus_policy_rule_new (BUS_POLICY_RULE_SEND, access); 
        if (rule == NULL)
          goto nomem;
        
-@@ -1502,7 +1528,7 @@ append_rule_from_element (BusConfigParser   *parser,
-           return FALSE;
-         }
-       
+@@ -1694,7 +1720,7 @@ append_rule_from_element (BusConfigParser   *parser,
+                                 error))
+         return FALSE;
 -      rule = bus_policy_rule_new (BUS_POLICY_RULE_RECEIVE, allow); 
-+      rule = bus_policy_rule_new (BUS_POLICY_RULE_RECEIVE, access);
++      rule = bus_policy_rule_new (BUS_POLICY_RULE_RECEIVE, access); 
        if (rule == NULL)
          goto nomem;
  
-@@ -1532,7 +1558,7 @@ append_rule_from_element (BusConfigParser   *parser,
+@@ -1726,7 +1752,7 @@ append_rule_from_element (BusConfigParser   *parser,
      }
    else if (own || own_prefix)
      {
@@ -868,7 +845,7 @@ index d9f6042c..a8c4ca5d 100644
        if (rule == NULL)
          goto nomem;
  
-@@ -1558,7 +1584,7 @@ append_rule_from_element (BusConfigParser   *parser,
+@@ -1752,7 +1778,7 @@ append_rule_from_element (BusConfigParser   *parser,
      {      
        if (IS_WILDCARD (user))
          {
@@ -877,7 +854,7 @@ index d9f6042c..a8c4ca5d 100644
            if (rule == NULL)
              goto nomem;
  
-@@ -1573,7 +1599,7 @@ append_rule_from_element (BusConfigParser   *parser,
+@@ -1767,7 +1793,7 @@ append_rule_from_element (BusConfigParser   *parser,
        
            if (_dbus_parse_unix_user_from_config (&username, &uid))
              {
@@ -886,7 +863,7 @@ index d9f6042c..a8c4ca5d 100644
                if (rule == NULL)
                  goto nomem;
  
-@@ -1590,7 +1616,7 @@ append_rule_from_element (BusConfigParser   *parser,
+@@ -1784,7 +1810,7 @@ append_rule_from_element (BusConfigParser   *parser,
      {
        if (IS_WILDCARD (group))
          {
@@ -895,7 +872,7 @@ index d9f6042c..a8c4ca5d 100644
            if (rule == NULL)
              goto nomem;
  
-@@ -1605,7 +1631,7 @@ append_rule_from_element (BusConfigParser   *parser,
+@@ -1799,7 +1825,7 @@ append_rule_from_element (BusConfigParser   *parser,
            
            if (_dbus_parse_unix_group_from_config (&groupname, &gid))
              {
@@ -904,7 +881,7 @@ index d9f6042c..a8c4ca5d 100644
                if (rule == NULL)
                  goto nomem;
  
-@@ -1629,6 +1655,10 @@ append_rule_from_element (BusConfigParser   *parser,
+@@ -1823,6 +1849,10 @@ append_rule_from_element (BusConfigParser   *parser,
        _dbus_assert (pe != NULL);
        _dbus_assert (pe->type == ELEMENT_POLICY);
  
@@ -915,7 +892,7 @@ index d9f6042c..a8c4ca5d 100644
        switch (pe->d.policy.type)
          {
          case POLICY_IGNORED:
-@@ -1703,7 +1733,7 @@ start_policy_child (BusConfigParser   *parser,
+@@ -1898,7 +1928,7 @@ start_policy_child (BusConfigParser   *parser,
      {
        if (!append_rule_from_element (parser, element_name,
                                       attribute_names, attribute_values,
@@ -924,7 +901,7 @@ index d9f6042c..a8c4ca5d 100644
          return FALSE;
        
        if (push_element (parser, ELEMENT_ALLOW) == NULL)
-@@ -1718,7 +1748,7 @@ start_policy_child (BusConfigParser   *parser,
+@@ -1913,7 +1943,7 @@ start_policy_child (BusConfigParser   *parser,
      {
        if (!append_rule_from_element (parser, element_name,
                                       attribute_names, attribute_values,
@@ -933,7 +910,7 @@ index d9f6042c..a8c4ca5d 100644
          return FALSE;
        
        if (push_element (parser, ELEMENT_DENY) == NULL)
-@@ -1727,6 +1757,21 @@ start_policy_child (BusConfigParser   *parser,
+@@ -1922,6 +1952,21 @@ start_policy_child (BusConfigParser   *parser,
            return FALSE;
          }
        
@@ -955,7 +932,7 @@ index d9f6042c..a8c4ca5d 100644
        return TRUE;
      }
    else
-@@ -2088,6 +2133,7 @@ bus_config_parser_end_element (BusConfigParser   *parser,
+@@ -2284,6 +2329,7 @@ bus_config_parser_end_element (BusConfigParser   *parser,
      case ELEMENT_POLICY:
      case ELEMENT_ALLOW:
      case ELEMENT_DENY:
@@ -963,7 +940,7 @@ index d9f6042c..a8c4ca5d 100644
      case ELEMENT_FORK:
      case ELEMENT_SYSLOG:
      case ELEMENT_KEEP_UMASK:
-@@ -2397,6 +2443,7 @@ bus_config_parser_content (BusConfigParser   *parser,
+@@ -2600,6 +2646,7 @@ bus_config_parser_content (BusConfigParser   *parser,
      case ELEMENT_POLICY:
      case ELEMENT_ALLOW:
      case ELEMENT_DENY:
@@ -971,7 +948,7 @@ index d9f6042c..a8c4ca5d 100644
      case ELEMENT_FORK:
      case ELEMENT_SYSLOG:
      case ELEMENT_KEEP_UMASK:
-@@ -2862,6 +2909,8 @@ do_load (const DBusString *full_path,
+@@ -3127,6 +3174,8 @@ do_load (const DBusString *full_path,
    dbus_error_init (&error);
  
    parser = bus_config_load (full_path, TRUE, NULL, &error);
@@ -981,7 +958,7 @@ index d9f6042c..a8c4ca5d 100644
      {
        _DBUS_ASSERT_ERROR_IS_SET (&error);
 diff --git a/bus/connection.c b/bus/connection.c
-index 02d6c220..eea50ecd 100644
+index 53605fa..deebde3 100644
 --- a/bus/connection.c
 +++ b/bus/connection.c
 @@ -36,6 +36,10 @@
@@ -1061,7 +1038,7 @@ index 02d6c220..eea50ecd 100644
  }
  
  static void
-@@ -451,6 +458,10 @@ free_connection_data (void *data)
+@@ -448,6 +455,10 @@ free_connection_data (void *data)
    
    dbus_free (d->name);
    
@@ -1072,7 +1049,7 @@ index 02d6c220..eea50ecd 100644
    dbus_free (d);
  }
  
-@@ -1063,6 +1074,22 @@ bus_connection_get_policy (DBusConnection *connection)
+@@ -1078,6 +1089,22 @@ bus_connection_get_policy (DBusConnection *connection)
    return d->policy;
  }
  
@@ -1095,7 +1072,7 @@ index 02d6c220..eea50ecd 100644
  static dbus_bool_t
  foreach_active (BusConnections               *connections,
                  BusConnectionForeachFunction  function,
-@@ -2289,6 +2316,7 @@ bus_transaction_send_from_driver (BusTransaction *transaction,
+@@ -2333,6 +2360,7 @@ bus_transaction_send_from_driver (BusTransaction *transaction,
                                    DBusMessage    *message)
  {
    DBusError error = DBUS_ERROR_INIT;
@@ -1103,22 +1080,24 @@ index 02d6c220..eea50ecd 100644
  
    /* We have to set the sender to the driver, and have
     * to check security policy since it was not done in
-@@ -2326,9 +2354,11 @@ bus_transaction_send_from_driver (BusTransaction *transaction,
+@@ -2370,10 +2398,12 @@ bus_transaction_send_from_driver (BusTransaction *transaction,
     * if we're actively capturing messages, it's nice to log that we
     * tried to send it and did not allow ourselves to do so.
     */
 -  if (!bus_context_check_security_policy (bus_transaction_get_context (transaction),
 -                                          transaction,
--                                          NULL, connection, connection, message, &error))
+-                                          NULL, connection, connection,
+-                                          message, NULL, &error))
 +  res = bus_context_check_security_policy (bus_transaction_get_context (transaction),
 +                                           transaction,
-+                                           NULL, connection, connection, message, &error,
++                                           NULL, connection, connection,
++                                           message, NULL, &error,
 +                                           NULL);
 +  if (res == BUS_RESULT_FALSE)
      {
-       if (!bus_transaction_capture_error_reply (transaction, &error, message))
-         {
-@@ -2342,6 +2372,12 @@ bus_transaction_send_from_driver (BusTransaction *transaction,
+       if (!bus_transaction_capture_error_reply (transaction, connection,
+                                                 &error, message))
+@@ -2388,6 +2418,12 @@ bus_transaction_send_from_driver (BusTransaction *transaction,
        dbus_error_free (&error);
        return TRUE;
      }
@@ -1132,7 +1111,7 @@ index 02d6c220..eea50ecd 100644
    return bus_transaction_send (transaction, connection, message);
  }
 diff --git a/bus/connection.h b/bus/connection.h
-index 8c68d0a0..a6e5dfde 100644
+index 9e253ae..71078ea 100644
 --- a/bus/connection.h
 +++ b/bus/connection.h
 @@ -31,6 +31,7 @@
@@ -1143,7 +1122,7 @@ index 8c68d0a0..a6e5dfde 100644
  
  BusConnections* bus_connections_new               (BusContext                   *context);
  BusConnections* bus_connections_ref               (BusConnections               *connections);
-@@ -122,6 +123,9 @@ dbus_bool_t bus_connection_be_monitor (DBusConnection  *connection,
+@@ -124,6 +125,9 @@ dbus_bool_t bus_connection_be_monitor (DBusConnection  *connection,
                                         BusTransaction  *transaction,
                                         DBusList       **rules,
                                         DBusError       *error);
@@ -1155,7 +1134,7 @@ index 8c68d0a0..a6e5dfde 100644
  
 diff --git a/bus/cynara.c b/bus/cynara.c
 new file mode 100644
-index 00000000..57a4c45c
+index 0000000..57a4c45
 --- /dev/null
 +++ b/bus/cynara.c
 @@ -0,0 +1,374 @@
@@ -1535,7 +1514,7 @@ index 00000000..57a4c45c
 +#endif /* DBUS_ENABLE_CYNARA */
 diff --git a/bus/cynara.h b/bus/cynara.h
 new file mode 100644
-index 00000000..c4728bb7
+index 0000000..c4728bb
 --- /dev/null
 +++ b/bus/cynara.h
 @@ -0,0 +1,37 @@
@@ -1577,7 +1556,7 @@ index 00000000..c4728bb7
 +                                       BusDeferredMessageStatus check_type,
 +                                       BusDeferredMessage **deferred_message);
 diff --git a/bus/dispatch.c b/bus/dispatch.c
-index edfa1b44..05be3bdf 100644
+index 19228be..7e51bc1 100644
 --- a/bus/dispatch.c
 +++ b/bus/dispatch.c
 @@ -25,6 +25,7 @@
@@ -1588,7 +1567,7 @@ index edfa1b44..05be3bdf 100644
  #include "connection.h"
  #include "driver.h"
  #include "services.h"
-@@ -64,13 +65,17 @@ send_one_message (DBusConnection *connection,
+@@ -64,14 +65,18 @@ send_one_message (DBusConnection *connection,
                    DBusError      *error)
  {
    DBusError stack_error = DBUS_ERROR_INIT;
@@ -1601,14 +1580,15 @@ index edfa1b44..05be3bdf 100644
                                            addressed_recipient,
                                            connection,
                                            message,
+                                           NULL,
 -                                          &stack_error))
 +                                          &stack_error,
 +                                          &deferred_message);
 +  if (result != BUS_RESULT_TRUE)
      {
-       if (!bus_transaction_capture_error_reply (transaction, &stack_error,
-                                                 message))
-@@ -129,6 +134,7 @@ bus_dispatch_matches (BusTransaction *transaction,
+       if (!bus_transaction_capture_error_reply (transaction, sender,
+                                                 &stack_error, message))
+@@ -130,6 +135,7 @@ bus_dispatch_matches (BusTransaction *transaction,
    BusMatchmaker *matchmaker;
    DBusList *link;
    BusContext *context;
@@ -1616,19 +1596,19 @@ index edfa1b44..05be3bdf 100644
  
    _DBUS_ASSERT_ERROR_IS_CLEAR (error);
  
-@@ -144,11 +150,21 @@ bus_dispatch_matches (BusTransaction *transaction,
+@@ -145,11 +151,21 @@ bus_dispatch_matches (BusTransaction *transaction,
    /* First, send the message to the addressed_recipient, if there is one. */
    if (addressed_recipient != NULL)
      {
 -      if (!bus_context_check_security_policy (context, transaction,
 -                                              sender, addressed_recipient,
 -                                              addressed_recipient,
--                                              message, error))
+-                                              message, NULL, error))
 +      BusResult res;
 +      res = bus_context_check_security_policy (context, transaction,
 +                                               sender, addressed_recipient,
 +                                               addressed_recipient,
-+                                               message, error,
++                                               message, NULL, error,
 +                                               &deferred_message);
 +      if (res == BUS_RESULT_FALSE)
          return FALSE;
@@ -1642,16 +1622,25 @@ index edfa1b44..05be3bdf 100644
  
        if (dbus_message_contains_unix_fds (message) &&
            !dbus_connection_can_send_type (addressed_recipient,
-@@ -379,12 +395,24 @@ bus_dispatch (DBusConnection *connection,
+@@ -374,19 +390,32 @@ bus_dispatch (DBusConnection *connection,
    if (service_name &&
        strcmp (service_name, DBUS_SERVICE_DBUS) == 0) /* to bus driver */
      {
--      if (!bus_context_check_security_policy (context, transaction,
--                                              connection, NULL, NULL, message, &error))
 +      BusDeferredMessage *deferred_message;
 +      BusResult res;
++
+       if (!bus_transaction_capture (transaction, connection, NULL, message))
+         {
+           BUS_SET_OOM (&error);
+           goto out;
+         }
+-      if (!bus_context_check_security_policy (context, transaction,
+-                                              connection, NULL, NULL, message,
+-                                              NULL, &error))
 +      res = bus_context_check_security_policy (context, transaction,
-+                                               connection, NULL, NULL, message, &error,
++                                               connection, NULL, NULL, message,
++                                               NULL, &error,
 +                                               &deferred_message);
 +      if (res == BUS_RESULT_FALSE)
          {
@@ -1670,7 +1659,7 @@ index edfa1b44..05be3bdf 100644
        _dbus_verbose ("Giving message to %s\n", DBUS_SERVICE_DBUS);
        if (!bus_driver_handle_message (connection, transaction, message, &error))
 diff --git a/bus/policy.c b/bus/policy.c
-index 082f3853..bcade176 100644
+index a37be80..7ee1ce5 100644
 --- a/bus/policy.c
 +++ b/bus/policy.c
 @@ -22,6 +22,7 @@
@@ -1681,7 +1670,7 @@ index 082f3853..bcade176 100644
  #include "policy.h"
  #include "services.h"
  #include "test.h"
-@@ -32,7 +33,7 @@
+@@ -33,7 +34,7 @@
  
  BusPolicyRule*
  bus_policy_rule_new (BusPolicyRuleType type,
@@ -1690,7 +1679,7 @@ index 082f3853..bcade176 100644
  {
    BusPolicyRule *rule;
  
-@@ -42,7 +43,7 @@ bus_policy_rule_new (BusPolicyRuleType type,
+@@ -43,7 +44,7 @@ bus_policy_rule_new (BusPolicyRuleType type,
  
    rule->type = type;
    rule->refcount = 1;
@@ -1699,7 +1688,7 @@ index 082f3853..bcade176 100644
  
    switch (rule->type)
      {
-@@ -54,18 +55,19 @@ bus_policy_rule_new (BusPolicyRuleType type,
+@@ -55,18 +56,19 @@ bus_policy_rule_new (BusPolicyRuleType type,
        break;
      case BUS_POLICY_RULE_SEND:
        rule->d.send.message_type = DBUS_MESSAGE_TYPE_INVALID;
@@ -1722,9 +1711,9 @@ index 082f3853..bcade176 100644
        break;
      case BUS_POLICY_RULE_OWN:
        break;
-@@ -117,7 +119,8 @@ bus_policy_rule_unref (BusPolicyRule *rule)
-         case BUS_POLICY_RULE_GROUP:
-           break;
+@@ -122,7 +124,8 @@ bus_policy_rule_unref (BusPolicyRule *rule)
+         default:
+           _dbus_assert_not_reached ("invalid rule");
          }
 -      
 +
@@ -1732,7 +1721,7 @@ index 082f3853..bcade176 100644
        dbus_free (rule);
      }
  }
-@@ -427,7 +430,10 @@ list_allows_user (dbus_bool_t           def,
+@@ -435,7 +438,10 @@ list_allows_user (dbus_bool_t           def,
        else
          continue;
  
@@ -1744,7 +1733,7 @@ index 082f3853..bcade176 100644
      }
    
    return allowed;
-@@ -862,18 +868,23 @@ bus_client_policy_append_rule (BusClientPolicy *policy,
+@@ -873,18 +879,23 @@ bus_client_policy_append_rule (BusClientPolicy *policy,
    return TRUE;
  }
  
@@ -1778,7 +1767,7 @@ index 082f3853..bcade176 100644
    /* policy->rules is in the order the rules appeared
     * in the config file, i.e. last rule that applies wins
     */
-@@ -881,7 +892,7 @@ bus_client_policy_check_can_send (BusClientPolicy *policy,
+@@ -892,7 +903,7 @@ bus_client_policy_check_can_send (BusClientPolicy *policy,
    _dbus_verbose ("  (policy) checking send rules\n");
    *toggles = 0;
    
@@ -1787,7 +1776,7 @@ index 082f3853..bcade176 100644
    link = _dbus_list_get_first_link (&policy->rules);
    while (link != NULL)
      {
-@@ -912,13 +923,14 @@ bus_client_policy_check_can_send (BusClientPolicy *policy,
+@@ -923,13 +934,14 @@ bus_client_policy_check_can_send (BusClientPolicy *policy,
        /* If it's a reply, the requested_reply flag kicks in */
        if (dbus_message_get_reply_serial (message) != 0)
          {
@@ -1807,7 +1796,7 @@ index 082f3853..bcade176 100644
                continue;
              }
  
-@@ -926,7 +938,7 @@ bus_client_policy_check_can_send (BusClientPolicy *policy,
+@@ -937,7 +949,7 @@ bus_client_policy_check_can_send (BusClientPolicy *policy,
             * when the reply was not requested. requested_reply=true means the
             * rule always applies.
             */
@@ -1816,7 +1805,7 @@ index 082f3853..bcade176 100644
              {
                _dbus_verbose ("  (policy) skipping deny rule since it only applies to unrequested replies\n");
                continue;
-@@ -949,13 +961,15 @@ bus_client_policy_check_can_send (BusClientPolicy *policy,
+@@ -960,13 +972,15 @@ bus_client_policy_check_can_send (BusClientPolicy *policy,
            /* The interface is optional in messages. For allow rules, if the message
             * has no interface we want to skip the rule (and thus not allow);
             * for deny rules, if the message has no interface we want to use the
@@ -1834,7 +1823,7 @@ index 082f3853..bcade176 100644
                (!no_interface && 
                 strcmp (dbus_message_get_interface (message),
                         rule->d.send.interface) != 0))
-@@ -1029,33 +1043,63 @@ bus_client_policy_check_can_send (BusClientPolicy *policy,
+@@ -1079,33 +1093,63 @@ bus_client_policy_check_can_send (BusClientPolicy *policy,
          }
  
        /* Use this rule */
@@ -1912,7 +1901,7 @@ index 082f3853..bcade176 100644
  
    eavesdropping =
      addressed_recipient != proposed_recipient &&
-@@ -1068,7 +1112,7 @@ bus_client_policy_check_can_receive (BusClientPolicy *policy,
+@@ -1118,7 +1162,7 @@ bus_client_policy_check_can_receive (BusClientPolicy *policy,
    _dbus_verbose ("  (policy) checking receive rules, eavesdropping = %d\n", eavesdropping);
    *toggles = 0;
    
@@ -1921,7 +1910,7 @@ index 082f3853..bcade176 100644
    link = _dbus_list_get_first_link (&policy->rules);
    while (link != NULL)
      {
-@@ -1091,19 +1135,21 @@ bus_client_policy_check_can_receive (BusClientPolicy *policy,
+@@ -1141,19 +1185,21 @@ bus_client_policy_check_can_receive (BusClientPolicy *policy,
              }
          }
  
@@ -1948,7 +1937,7 @@ index 082f3853..bcade176 100644
          {
            _dbus_verbose ("  (policy) skipping deny rule since it only applies to eavesdropping\n");
            continue;
-@@ -1112,13 +1158,14 @@ bus_client_policy_check_can_receive (BusClientPolicy *policy,
+@@ -1162,13 +1208,14 @@ bus_client_policy_check_can_receive (BusClientPolicy *policy,
        /* If it's a reply, the requested_reply flag kicks in */
        if (dbus_message_get_reply_serial (message) != 0)
          {
@@ -1968,7 +1957,7 @@ index 082f3853..bcade176 100644
                continue;
              }
  
-@@ -1126,7 +1173,7 @@ bus_client_policy_check_can_receive (BusClientPolicy *policy,
+@@ -1176,7 +1223,7 @@ bus_client_policy_check_can_receive (BusClientPolicy *policy,
             * when the reply was not requested. requested_reply=true means the
             * rule always applies.
             */
@@ -1977,7 +1966,7 @@ index 082f3853..bcade176 100644
              {
                _dbus_verbose ("  (policy) skipping deny rule since it only applies to unrequested replies\n");
                continue;
-@@ -1149,13 +1196,13 @@ bus_client_policy_check_can_receive (BusClientPolicy *policy,
+@@ -1199,13 +1246,13 @@ bus_client_policy_check_can_receive (BusClientPolicy *policy,
            /* The interface is optional in messages. For allow rules, if the message
             * has no interface we want to skip the rule (and thus not allow);
             * for deny rules, if the message has no interface we want to use the
@@ -1993,9 +1982,9 @@ index 082f3853..bcade176 100644
                (!no_interface &&
                 strcmp (dbus_message_get_interface (message),
                         rule->d.receive.interface) != 0))
-@@ -1230,14 +1277,42 @@ bus_client_policy_check_can_receive (BusClientPolicy *policy,
+@@ -1295,14 +1342,42 @@ bus_client_policy_check_can_receive (BusClientPolicy *policy,
          }
-       
        /* Use this rule */
 -      allowed = rule->allow;
 +      switch (rule->access)
@@ -2040,7 +2029,7 @@ index 082f3853..bcade176 100644
  }
  
  
-@@ -1289,7 +1364,7 @@ bus_rules_check_can_own (DBusList *rules,
+@@ -1354,7 +1429,7 @@ bus_rules_check_can_own (DBusList *rules,
          }
  
        /* Use this rule */
@@ -2050,12 +2039,12 @@ index 082f3853..bcade176 100644
  
    return allowed;
 diff --git a/bus/policy.h b/bus/policy.h
-index d1d3e72b..e9f193af 100644
+index ec43ffa..f306a3c 100644
 --- a/bus/policy.h
 +++ b/bus/policy.h
-@@ -39,6 +39,14 @@ typedef enum
-   BUS_POLICY_RULE_GROUP
- } BusPolicyRuleType;
+@@ -46,6 +46,14 @@ typedef enum
+   BUS_POLICY_TRISTATE_TRUE
+ } BusPolicyTristate;
  
 +typedef enum
 +{
@@ -2068,7 +2057,7 @@ index d1d3e72b..e9f193af 100644
  /** determines whether the rule affects a connection, or some global item */
  #define BUS_POLICY_RULE_IS_PER_CLIENT(rule) (!((rule)->type == BUS_POLICY_RULE_USER || \
                                                 (rule)->type == BUS_POLICY_RULE_GROUP))
-@@ -49,8 +57,9 @@ struct BusPolicyRule
+@@ -56,8 +64,9 @@ struct BusPolicyRule
    
    BusPolicyRuleType type;
  
@@ -2080,7 +2069,7 @@ index d1d3e72b..e9f193af 100644
    union
    {
      struct
-@@ -106,7 +115,7 @@ struct BusPolicyRule
+@@ -118,7 +127,7 @@ struct BusPolicyRule
  };
  
  BusPolicyRule* bus_policy_rule_new   (BusPolicyRuleType type,
@@ -2089,7 +2078,7 @@ index d1d3e72b..e9f193af 100644
  BusPolicyRule* bus_policy_rule_ref   (BusPolicyRule    *rule);
  void           bus_policy_rule_unref (BusPolicyRule    *rule);
  
-@@ -140,21 +149,27 @@ dbus_bool_t      bus_policy_merge                 (BusPolicy        *policy,
+@@ -152,21 +161,27 @@ dbus_bool_t      bus_policy_merge                 (BusPolicy        *policy,
  BusClientPolicy* bus_client_policy_new               (void);
  BusClientPolicy* bus_client_policy_ref               (BusClientPolicy  *policy);
  void             bus_client_policy_unref             (BusClientPolicy  *policy);
@@ -2133,10 +2122,10 @@ index d1d3e72b..e9f193af 100644
                                                        const DBusString *service_name);
  dbus_bool_t      bus_client_policy_append_rule       (BusClientPolicy  *policy,
 diff --git a/configure.ac b/configure.ac
-index 71e3515c..f3a2ffc1 100644
+index 80671b2..d975b04 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -1873,6 +1873,17 @@ AC_ARG_ENABLE([user-session],
+@@ -1761,6 +1761,17 @@ AC_ARG_ENABLE([user-session],
  AM_CONDITIONAL([DBUS_ENABLE_USER_SESSION],
    [test "x$enable_user_session" = xyes])
  
@@ -2154,7 +2143,7 @@ index 71e3515c..f3a2ffc1 100644
  AC_CONFIG_FILES([
  Doxyfile
  dbus/Version
-@@ -1952,6 +1963,7 @@ echo "
+@@ -1843,6 +1854,7 @@ echo "
          Building bus stats API:   ${enable_stats}
          Building SELinux support: ${have_selinux}
          Building AppArmor support: ${have_apparmor}
@@ -2163,20 +2152,20 @@ index 71e3515c..f3a2ffc1 100644
          Building kqueue support:  ${have_kqueue}
          Building systemd support: ${have_systemd}
 diff --git a/test/Makefile.am b/test/Makefile.am
-index 914dd7f2..86882537 100644
+index 6a6e1a3..ce84dbc 100644
 --- a/test/Makefile.am
 +++ b/test/Makefile.am
-@@ -341,6 +341,7 @@ in_data = \
+@@ -439,6 +439,7 @@ in_data = \
        data/valid-config-files/debug-allow-all.conf.in \
        data/valid-config-files/finite-timeout.conf.in \
        data/valid-config-files/forbidding.conf.in \
 +      data/valid-config-files/debug-check-some.conf.in \
        data/valid-config-files/incoming-limit.conf.in \
-       data/valid-config-files/multi-user.conf.in \
-       data/valid-config-files/systemd-activation.conf.in \
+       data/valid-config-files/max-completed-connections.conf.in \
+       data/valid-config-files/max-connections-per-user.conf.in \
 diff --git a/test/data/invalid-config-files/badcheck-1.conf b/test/data/invalid-config-files/badcheck-1.conf
 new file mode 100644
-index 00000000..fad9f502
+index 0000000..fad9f50
 --- /dev/null
 +++ b/test/data/invalid-config-files/badcheck-1.conf
 @@ -0,0 +1,9 @@
@@ -2191,7 +2180,7 @@ index 00000000..fad9f502
 +</busconfig>
 diff --git a/test/data/invalid-config-files/badcheck-2.conf b/test/data/invalid-config-files/badcheck-2.conf
 new file mode 100644
-index 00000000..63c7ef25
+index 0000000..63c7ef2
 --- /dev/null
 +++ b/test/data/invalid-config-files/badcheck-2.conf
 @@ -0,0 +1,9 @@
@@ -2206,7 +2195,7 @@ index 00000000..63c7ef25
 +</busconfig>
 diff --git a/test/data/valid-config-files/check-1.conf b/test/data/valid-config-files/check-1.conf
 new file mode 100644
-index 00000000..ad714733
+index 0000000..ad71473
 --- /dev/null
 +++ b/test/data/valid-config-files/check-1.conf
 @@ -0,0 +1,9 @@
@@ -2221,7 +2210,7 @@ index 00000000..ad714733
 +</busconfig>
 diff --git a/test/data/valid-config-files/debug-check-some.conf.in b/test/data/valid-config-files/debug-check-some.conf.in
 new file mode 100644
-index 00000000..47ee8548
+index 0000000..47ee854
 --- /dev/null
 +++ b/test/data/valid-config-files/debug-check-some.conf.in
 @@ -0,0 +1,18 @@
@@ -2243,19 +2232,3 @@ index 00000000..47ee8548
 +    <check privilege="foo" send_interface="org.freedesktop.TestSuite" send_member="Echo"/>
 +  </policy>
 +</busconfig>
-diff --git a/tools/dbus-send.c b/tools/dbus-send.c
-index 0dc1f5b3..76ddab3f 100644
---- a/tools/dbus-send.c
-+++ b/tools/dbus-send.c
-@@ -458,7 +458,7 @@ main (int argc, char *argv[])
-       char *arg;
-       char *c;
-       int type;
--      int secondary_type;
-+      int secondary_type = 0;
-       int container_type;
-       DBusMessageIter *target_iter;
-       DBusMessageIter container_iter;
--- 
-2.14.3
-
index b1c3f3f..4fd7551 100644 (file)
@@ -22,27 +22,16 @@ Change-Id: I57eccbf973525fd51369c7d4e58908292f44da80
 Cherry-picked from b1b87ad9f20b2052c28431b48e81073078a745ce
 by Jose Bollo.
 
+Updated for dbus 1.12.10 by Scott Murray.
+
 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
----
- bus/activation.c                |  78 +++++++++++++++--
- bus/check.c                     | 109 ++++++++++++++++++++++--
- bus/check.h                     |  10 +++
- bus/cynara.c                    |   1 -
- bus/dispatch.c                  | 184 ++++++++++++++++++++++++++++++++++++----
- bus/dispatch.h                  |   2 +-
- bus/driver.c                    |  12 ++-
- dbus/dbus-connection-internal.h |  15 ++++
- dbus/dbus-connection.c          | 125 +++++++++++++++++++++++++--
- dbus/dbus-list.c                |  29 +++++++
- dbus/dbus-list.h                |   3 +
- dbus/dbus-shared.h              |   3 +-
- 12 files changed, 528 insertions(+), 43 deletions(-)
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
 
 diff --git a/bus/activation.c b/bus/activation.c
-index 1a98af6d..343d3f22 100644
+index 451179d..5f02153 100644
 --- a/bus/activation.c
 +++ b/bus/activation.c
-@@ -31,6 +31,7 @@
+@@ -32,6 +32,7 @@
  #include "services.h"
  #include "test.h"
  #include "utils.h"
@@ -50,7 +39,7 @@ index 1a98af6d..343d3f22 100644
  #include <dbus/dbus-internals.h>
  #include <dbus/dbus-hash.h>
  #include <dbus/dbus-list.h>
-@@ -91,6 +92,8 @@ struct BusPendingActivationEntry
+@@ -94,6 +95,8 @@ struct BusPendingActivationEntry
    DBusConnection *connection;
  
    dbus_bool_t auto_activation;
@@ -59,7 +48,7 @@ index 1a98af6d..343d3f22 100644
  };
  
  typedef struct
-@@ -1180,20 +1183,23 @@ bus_activation_send_pending_auto_activation_messages (BusActivation  *activation
+@@ -1241,20 +1244,23 @@ bus_activation_send_pending_auto_activation_messages (BusActivation  *activation
        BusPendingActivationEntry *entry = link->data;
        DBusList *next = _dbus_list_get_next_link (&pending_activation->entries, link);
  
@@ -88,7 +77,7 @@ index 1a98af6d..343d3f22 100644
              {
                /* If permission is denied, we just want to return the error
                 * to the original method invoker; in particular, we don't
-@@ -1205,9 +1211,40 @@ bus_activation_send_pending_auto_activation_messages (BusActivation  *activation
+@@ -1266,9 +1272,40 @@ bus_activation_send_pending_auto_activation_messages (BusActivation  *activation
                    bus_connection_send_oom_error (entry->connection,
                                                   entry->activation_message);
                  }
@@ -131,7 +120,7 @@ index 1a98af6d..343d3f22 100644
              }
          }
  
-@@ -1225,6 +1262,19 @@ bus_activation_send_pending_auto_activation_messages (BusActivation  *activation
+@@ -1286,6 +1323,19 @@ bus_activation_send_pending_auto_activation_messages (BusActivation  *activation
    return TRUE;
  
   error:
@@ -151,20 +140,22 @@ index 1a98af6d..343d3f22 100644
    return FALSE;
  }
  
-@@ -2028,13 +2078,23 @@ bus_activation_activate_service (BusActivation  *activation,
+@@ -2078,6 +2128,7 @@ bus_activation_activate_service (BusActivation  *activation,
  
            if (service != NULL)
              {
 +              BusResult res;
                bus_context_log (activation->context,
-                                DBUS_SYSTEM_LOG_INFO, "Activating via systemd: service name='%s' unit='%s'",
+                                DBUS_SYSTEM_LOG_INFO, "Activating via systemd: service name='%s' unit='%s' requested by '%s' (%s)",
                                 service_name,
-                                entry->systemd_service);
+@@ -2085,8 +2136,17 @@ bus_activation_activate_service (BusActivation  *activation,
+                                bus_connection_get_name (connection),
+                                bus_connection_get_loginfo (connection));
                /* Wonderful, systemd is connected, let's just send the msg */
--              retval = bus_dispatch_matches (activation_transaction, NULL, bus_service_get_primary_owners_connection (service),
--                                             message, error);
-+              res = bus_dispatch_matches (activation_transaction, NULL, bus_service_get_primary_owners_connection (service),
-+                                            message, error);
+-              retval = bus_dispatch_matches (activation_transaction, NULL,
+-                                             systemd, message, error);
++              res = bus_dispatch_matches (activation_transaction, NULL,
++                                          systemd, message, error);
 +
 +              if (res == BUS_RESULT_TRUE)
 +                retval = TRUE;
@@ -178,7 +169,7 @@ index 1a98af6d..343d3f22 100644
            else
              {
 diff --git a/bus/check.c b/bus/check.c
-index 5b72d31c..4b8a6994 100644
+index 5b72d31..4b8a699 100644
 --- a/bus/check.c
 +++ b/bus/check.c
 @@ -55,6 +55,8 @@ typedef struct BusDeferredMessage
@@ -348,7 +339,7 @@ index 5b72d31c..4b8a6994 100644
  bus_deferred_message_response_received (BusDeferredMessage *deferred_message,
                                          BusResult result)
 diff --git a/bus/check.h b/bus/check.h
-index c3fcaf90..d1775497 100644
+index c3fcaf9..d177549 100644
 --- a/bus/check.h
 +++ b/bus/check.h
 @@ -55,6 +55,7 @@ BusResult   bus_check_privilege   (BusCheck *check,
@@ -374,7 +365,7 @@ index c3fcaf90..d1775497 100644
 +
  #endif /* BUS_CHECK_H */
 diff --git a/bus/cynara.c b/bus/cynara.c
-index 57a4c45c..77aed623 100644
+index 57a4c45..77aed62 100644
 --- a/bus/cynara.c
 +++ b/bus/cynara.c
 @@ -36,7 +36,6 @@
@@ -386,7 +377,7 @@ index 57a4c45c..77aed623 100644
  typedef struct BusCynara
  {
 diff --git a/bus/dispatch.c b/bus/dispatch.c
-index 05be3bdf..7353501b 100644
+index 7e51bc1..0250b53 100644
 --- a/bus/dispatch.c
 +++ b/bus/dispatch.c
 @@ -35,6 +35,7 @@
@@ -397,7 +388,7 @@ index 05be3bdf..7353501b 100644
  #include <dbus/dbus-misc.h>
  #include <string.h>
  
-@@ -121,7 +122,7 @@ send_one_message (DBusConnection *connection,
+@@ -122,7 +123,7 @@ send_one_message (DBusConnection *connection,
    return TRUE;
  }
  
@@ -406,8 +397,8 @@ index 05be3bdf..7353501b 100644
  bus_dispatch_matches (BusTransaction *transaction,
                        DBusConnection *sender,
                        DBusConnection *addressed_recipient,
-@@ -157,13 +158,29 @@ bus_dispatch_matches (BusTransaction *transaction,
-                                                message, error,
+@@ -158,13 +159,29 @@ bus_dispatch_matches (BusTransaction *transaction,
+                                                message, NULL, error,
                                                 &deferred_message);
        if (res == BUS_RESULT_FALSE)
 -        return FALSE;
@@ -441,7 +432,7 @@ index 05be3bdf..7353501b 100644
          }
  
        if (dbus_message_contains_unix_fds (message) &&
-@@ -174,14 +191,14 @@ bus_dispatch_matches (BusTransaction *transaction,
+@@ -175,14 +192,14 @@ bus_dispatch_matches (BusTransaction *transaction,
                            DBUS_ERROR_NOT_SUPPORTED,
                            "Tried to send message with Unix file descriptors"
                            "to a client that doesn't support that.");
@@ -459,7 +450,7 @@ index 05be3bdf..7353501b 100644
          }
      }
  
-@@ -196,7 +213,7 @@ bus_dispatch_matches (BusTransaction *transaction,
+@@ -197,7 +214,7 @@ bus_dispatch_matches (BusTransaction *transaction,
                                        &recipients))
      {
        BUS_SET_OOM (error);
@@ -468,7 +459,7 @@ index 05be3bdf..7353501b 100644
      }
  
    link = _dbus_list_get_first_link (&recipients);
-@@ -218,10 +235,10 @@ bus_dispatch_matches (BusTransaction *transaction,
+@@ -219,10 +236,10 @@ bus_dispatch_matches (BusTransaction *transaction,
    if (dbus_error_is_set (&tmp_error))
      {
        dbus_move_error (&tmp_error, error);
@@ -481,7 +472,7 @@ index 05be3bdf..7353501b 100644
  }
  
  static DBusHandlerResult
-@@ -407,10 +424,12 @@ bus_dispatch (DBusConnection *connection,
+@@ -410,10 +427,12 @@ bus_dispatch (DBusConnection *connection,
          }
        else if (res == BUS_RESULT_LATER)
          {
@@ -498,7 +489,7 @@ index 05be3bdf..7353501b 100644
            goto out;
          }
  
-@@ -475,8 +494,14 @@ bus_dispatch (DBusConnection *connection,
+@@ -515,8 +534,14 @@ bus_dispatch (DBusConnection *connection,
     * addressed_recipient == NULL), and match it against other connections'
     * match rules.
     */
@@ -515,9 +506,9 @@ index 05be3bdf..7353501b 100644
  
   out:
    if (dbus_error_is_set (&error))
-@@ -5001,9 +5026,132 @@ bus_dispatch_test_conf_fail (const DBusString *test_data_dir,
-   return TRUE;
+@@ -5061,9 +5086,132 @@ bus_dispatch_test_conf_fail (const DBusString *test_data_dir,
  }
+ #endif
  
 +typedef struct {
 +  DBusTimeout *timeout;
@@ -649,7 +640,7 @@ index 05be3bdf..7353501b 100644
    _dbus_verbose ("Normal activation tests\n");
    if (!bus_dispatch_test_conf (test_data_dir,
 diff --git a/bus/dispatch.h b/bus/dispatch.h
-index fb5ba7a5..afba6a24 100644
+index fb5ba7a..afba6a2 100644
 --- a/bus/dispatch.h
 +++ b/bus/dispatch.h
 @@ -29,7 +29,7 @@
@@ -662,10 +653,10 @@ index fb5ba7a5..afba6a24 100644
                                              DBusConnection *recipient,
                                              DBusMessage    *message,
 diff --git a/bus/driver.c b/bus/driver.c
-index b7e1a0a0..a5823d4d 100644
+index cd0a714..f414f64 100644
 --- a/bus/driver.c
 +++ b/bus/driver.c
-@@ -225,6 +225,7 @@ bus_driver_send_service_owner_changed (const char     *service_name,
+@@ -218,6 +218,7 @@ bus_driver_send_service_owner_changed (const char     *service_name,
  {
    DBusMessage *message;
    dbus_bool_t retval;
@@ -673,8 +664,8 @@ index b7e1a0a0..a5823d4d 100644
    const char *null_service;
  
    _DBUS_ASSERT_ERROR_IS_CLEAR (error);
-@@ -260,7 +261,16 @@ bus_driver_send_service_owner_changed (const char     *service_name,
-   if (!bus_transaction_capture (transaction, NULL, message))
+@@ -253,7 +254,16 @@ bus_driver_send_service_owner_changed (const char     *service_name,
+   if (!bus_transaction_capture (transaction, NULL, NULL, message))
      goto oom;
  
 -  retval = bus_dispatch_matches (transaction, NULL, NULL, message, error);
@@ -692,7 +683,7 @@ index b7e1a0a0..a5823d4d 100644
  
    return retval;
 diff --git a/dbus/dbus-connection-internal.h b/dbus/dbus-connection-internal.h
-index 48357321..94b1c951 100644
+index 4835732..94b1c95 100644
 --- a/dbus/dbus-connection-internal.h
 +++ b/dbus/dbus-connection-internal.h
 @@ -118,6 +118,21 @@ DBUS_PRIVATE_EXPORT
@@ -718,7 +709,7 @@ index 48357321..94b1c951 100644
  DBUS_PRIVATE_EXPORT
  void _dbus_connection_get_stats (DBusConnection *connection,
 diff --git a/dbus/dbus-connection.c b/dbus/dbus-connection.c
-index 7f5b3292..ed0be70d 100644
+index c525b6d..f1b0ea0 100644
 --- a/dbus/dbus-connection.c
 +++ b/dbus/dbus-connection.c
 @@ -311,7 +311,8 @@ struct DBusConnection
@@ -771,7 +762,7 @@ index 7f5b3292..ed0be70d 100644
  #ifdef DBUS_ENABLE_EMBEDDED_TESTS
  /**
   * Gets the locks so we can examine them
-@@ -4070,6 +4104,82 @@ _dbus_connection_putback_message_link_unlocked (DBusConnection *connection,
+@@ -4069,6 +4103,82 @@ _dbus_connection_putback_message_link_unlocked (DBusConnection *connection,
        "_dbus_connection_putback_message_link_unlocked");
  }
  
@@ -854,7 +845,7 @@ index 7f5b3292..ed0be70d 100644
  /**
   * Returns the first-received message from the incoming message queue,
   * removing it from the queue. The caller owns a reference to the
-@@ -4253,8 +4363,9 @@ static DBusDispatchStatus
+@@ -4252,8 +4362,9 @@ static DBusDispatchStatus
  _dbus_connection_get_dispatch_status_unlocked (DBusConnection *connection)
  {
    HAVE_LOCK_CHECK (connection);
@@ -866,7 +857,7 @@ index 7f5b3292..ed0be70d 100644
      return DBUS_DISPATCH_DATA_REMAINS;
    else if (!_dbus_transport_queue_messages (connection->transport))
      return DBUS_DISPATCH_NEED_MEMORY;
-@@ -4717,6 +4828,8 @@ dbus_connection_dispatch (DBusConnection *connection)
+@@ -4716,6 +4827,8 @@ dbus_connection_dispatch (DBusConnection *connection)
    
    CONNECTION_LOCK (connection);
  
@@ -875,7 +866,7 @@ index 7f5b3292..ed0be70d 100644
    if (result == DBUS_HANDLER_RESULT_NEED_MEMORY)
      {
        _dbus_verbose ("No memory\n");
-@@ -4839,9 +4952,11 @@ dbus_connection_dispatch (DBusConnection *connection)
+@@ -4838,9 +4951,11 @@ dbus_connection_dispatch (DBusConnection *connection)
                   connection);
    
   out:
@@ -890,7 +881,7 @@ index 7f5b3292..ed0be70d 100644
        /* Put message back, and we'll start over.
         * Yes this means handlers must be idempotent if they
 diff --git a/dbus/dbus-list.c b/dbus/dbus-list.c
-index c4c1856f..f84918b1 100644
+index 8e713c0..32ea871 100644
 --- a/dbus/dbus-list.c
 +++ b/dbus/dbus-list.c
 @@ -458,6 +458,35 @@ _dbus_list_remove_last (DBusList **list,
@@ -930,7 +921,7 @@ index c4c1856f..f84918b1 100644
   * Finds a value in the list. Returns the last link
   * with value equal to the given data pointer.
 diff --git a/dbus/dbus-list.h b/dbus/dbus-list.h
-index 9350a0da..fee9f1bc 100644
+index 9350a0d..fee9f1b 100644
 --- a/dbus/dbus-list.h
 +++ b/dbus/dbus-list.h
 @@ -68,6 +68,9 @@ DBUS_PRIVATE_EXPORT
@@ -944,7 +935,7 @@ index 9350a0da..fee9f1bc 100644
                                             void      *data);
  DBUS_PRIVATE_EXPORT
 diff --git a/dbus/dbus-shared.h b/dbus/dbus-shared.h
-index 7ab91035..e5bfbed6 100644
+index 7ab9103..e5bfbed 100644
 --- a/dbus/dbus-shared.h
 +++ b/dbus/dbus-shared.h
 @@ -67,7 +67,8 @@ typedef enum
@@ -957,6 +948,3 @@ index 7ab91035..e5bfbed6 100644
  } DBusHandlerResult;
  
  /* Bus names */
--- 
-2.14.3
-
index b797064..7f17bd0 100644 (file)
@@ -23,26 +23,16 @@ Change-Id: Iecd5395f75a4c7811fa97247a37d8fc4d42e8814
 
 Cherry picked from 1e231194610892dd4360224998d91336097b05a1 by Jose Bollo
 
+Updated for dbus 1.12.10 by Scott Murray.
+
 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
----
- bus/activation.c |   4 +-
- bus/bus.c        |  50 +++++++--
- bus/bus.h        |  19 ++++
- bus/check.c      | 307 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
- bus/check.h      |  25 +++++
- bus/connection.c | 169 ++++++++++++++++++++++++++++--
- bus/connection.h |  19 +++-
- bus/dispatch.c   | 121 ++++++++++++++++++----
- bus/dispatch.h   |  11 +-
- bus/driver.c     |   2 +-
- bus/policy.c     |   6 ++
- 11 files changed, 686 insertions(+), 47 deletions(-)
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
 
 diff --git a/bus/activation.c b/bus/activation.c
-index 343d3f22..11bd8386 100644
+index 5f02153..f2981e1 100644
 --- a/bus/activation.c
 +++ b/bus/activation.c
-@@ -1198,7 +1198,7 @@ bus_activation_send_pending_auto_activation_messages (BusActivation  *activation
+@@ -1259,7 +1259,7 @@ bus_activation_send_pending_auto_activation_messages (BusActivation  *activation
            res = bus_dispatch_matches (transaction,
                                        entry->connection,
                                        addressed_recipient,
@@ -51,20 +41,20 @@ index 343d3f22..11bd8386 100644
            if (res == BUS_RESULT_FALSE)
              {
                /* If permission is denied, we just want to return the error
-@@ -2085,7 +2085,7 @@ bus_activation_activate_service (BusActivation  *activation,
-                                entry->systemd_service);
+@@ -2137,7 +2137,7 @@ bus_activation_activate_service (BusActivation  *activation,
+                                bus_connection_get_loginfo (connection));
                /* Wonderful, systemd is connected, let's just send the msg */
-               res = bus_dispatch_matches (activation_transaction, NULL, bus_service_get_primary_owners_connection (service),
--                                            message, error);
-+                                          message, NULL, error);
+               res = bus_dispatch_matches (activation_transaction, NULL,
+-                                          systemd, message, error);
++                                          systemd, message, NULL, error);
  
                if (res == BUS_RESULT_TRUE)
                  retval = TRUE;
 diff --git a/bus/bus.c b/bus/bus.c
-index c4008505..911e2340 100644
+index 237efe3..5bb5637 100644
 --- a/bus/bus.c
 +++ b/bus/bus.c
-@@ -1796,17 +1796,9 @@ bus_context_check_security_policy (BusContext          *context,
+@@ -1800,17 +1800,9 @@ bus_context_check_security_policy (BusContext     *context,
      }
  
    /* See if limits on size have been exceeded */
@@ -84,7 +74,7 @@ index c4008505..911e2340 100644
  
    /* Record that we will allow a reply here in the future (don't
     * bother if the recipient is the bus or this is an eavesdropping
-@@ -1861,3 +1853,41 @@ bus_context_check_all_watches (BusContext *context)
+@@ -1869,3 +1861,41 @@ bus_context_check_all_watches (BusContext *context)
        _dbus_server_toggle_all_watches (server, enabled);
      }
  }
@@ -127,10 +117,10 @@ index c4008505..911e2340 100644
 +  return TRUE;
 +}
 diff --git a/bus/bus.h b/bus/bus.h
-index dab7791f..445165c9 100644
+index 82c32c8..1b08f7c 100644
 --- a/bus/bus.h
 +++ b/bus/bus.h
-@@ -158,4 +158,23 @@ BusResult         bus_context_check_security_policy              (BusContext
+@@ -164,4 +164,23 @@ BusResult         bus_context_check_security_policy              (BusContext
                                                                    BusDeferredMessage **deferred_message);
  void              bus_context_check_all_watches                  (BusContext       *context);
  
@@ -155,7 +145,7 @@ index dab7791f..445165c9 100644
 +
  #endif /* BUS_BUS_H */
 diff --git a/bus/check.c b/bus/check.c
-index 4b8a6994..b8833349 100644
+index 4b8a699..f3d283f 100644
 --- a/bus/check.c
 +++ b/bus/check.c
 @@ -49,6 +49,9 @@ typedef struct BusDeferredMessage
@@ -370,7 +360,7 @@ index 4b8a6994..b8833349 100644
 +                                                      deferred_message->sender,
 +                                                      deferred_message->addressed_recipient,
 +                                                      deferred_message->proposed_recipient,
-+                                                      deferred_message->message, NULL,
++                                                      deferred_message->message, NULL, NULL,
 +                                                      &deferred_message2);
 +
 +          if (result == BUS_RESULT_LATER)
@@ -511,7 +501,7 @@ index 4b8a6994..b8833349 100644
  }
 +
 diff --git a/bus/check.h b/bus/check.h
-index d1775497..9c13c184 100644
+index d177549..9c13c18 100644
 --- a/bus/check.h
 +++ b/bus/check.h
 @@ -64,12 +64,37 @@ BusDeferredMessage *bus_deferred_message_new                (DBusMessage *messag
@@ -553,7 +543,7 @@ index d1775497..9c13c184 100644
  extern BusResult (*bus_check_test_override) (DBusConnection *connection,
                                                 const char *privilege);
 diff --git a/bus/connection.c b/bus/connection.c
-index eea50ecd..1c0bdffb 100644
+index deebde3..f9e563b 100644
 --- a/bus/connection.c
 +++ b/bus/connection.c
 @@ -31,11 +31,13 @@
@@ -587,7 +577,7 @@ index eea50ecd..1c0bdffb 100644
    bus_dispatch_remove_connection (connection);
    
    /* no more watching */
-@@ -2264,7 +2269,7 @@ bus_transaction_capture (BusTransaction *transaction,
+@@ -2307,7 +2312,7 @@ bus_transaction_capture (BusTransaction *transaction,
      {
        DBusConnection *recipient = link->data;
  
@@ -596,7 +586,7 @@ index eea50ecd..1c0bdffb 100644
          goto out;
      }
  
-@@ -2317,6 +2322,7 @@ bus_transaction_send_from_driver (BusTransaction *transaction,
+@@ -2361,6 +2366,7 @@ bus_transaction_send_from_driver (BusTransaction *transaction,
  {
    DBusError error = DBUS_ERROR_INIT;
    BusResult res;
@@ -604,17 +594,17 @@ index eea50ecd..1c0bdffb 100644
  
    /* We have to set the sender to the driver, and have
     * to check security policy since it was not done in
-@@ -2357,7 +2363,8 @@ bus_transaction_send_from_driver (BusTransaction *transaction,
-   res = bus_context_check_security_policy (bus_transaction_get_context (transaction),
+@@ -2402,7 +2408,8 @@ bus_transaction_send_from_driver (BusTransaction *transaction,
                                             transaction,
-                                            NULL, connection, connection, message, &error,
+                                            NULL, connection, connection,
+                                            message, NULL, &error,
 -                                           NULL);
 +                                           &deferred_message);
 +
    if (res == BUS_RESULT_FALSE)
      {
-       if (!bus_transaction_capture_error_reply (transaction, &error, message))
-@@ -2374,18 +2381,20 @@ bus_transaction_send_from_driver (BusTransaction *transaction,
+       if (!bus_transaction_capture_error_reply (transaction, connection,
+@@ -2420,18 +2427,20 @@ bus_transaction_send_from_driver (BusTransaction *transaction,
      }
    else if (res == BUS_RESULT_LATER)
      {
@@ -639,7 +629,7 @@ index eea50ecd..1c0bdffb 100644
  {
    MessageToSend *to_send;
    BusConnectionData *d;
-@@ -2411,7 +2420,28 @@ bus_transaction_send (BusTransaction *transaction,
+@@ -2457,7 +2466,28 @@ bus_transaction_send (BusTransaction *transaction,
    
    d = BUS_CONNECTION_DATA (connection);
    _dbus_assert (d != NULL);
@@ -669,7 +659,7 @@ index eea50ecd..1c0bdffb 100644
    to_send = dbus_new (MessageToSend, 1);
    if (to_send == NULL)
      {
-@@ -2663,6 +2693,131 @@ bus_transaction_add_cancel_hook (BusTransaction               *transaction,
+@@ -2709,6 +2739,131 @@ bus_transaction_add_cancel_hook (BusTransaction               *transaction,
    return TRUE;
  }
  
@@ -802,10 +792,10 @@ index eea50ecd..1c0bdffb 100644
  bus_connections_get_n_active (BusConnections *connections)
  {
 diff --git a/bus/connection.h b/bus/connection.h
-index a6e5dfde..46e883e6 100644
+index 71078ea..97dae96 100644
 --- a/bus/connection.h
 +++ b/bus/connection.h
-@@ -83,6 +83,22 @@ dbus_bool_t bus_connection_preallocate_oom_error (DBusConnection *connection);
+@@ -85,6 +85,22 @@ dbus_bool_t bus_connection_preallocate_oom_error (DBusConnection *connection);
  void        bus_connection_send_oom_error        (DBusConnection *connection,
                                                    DBusMessage    *in_reply_to);
  
@@ -828,7 +818,7 @@ index a6e5dfde..46e883e6 100644
  /* called by signals.c */
  dbus_bool_t bus_connection_add_match_rule      (DBusConnection *connection,
                                                  BusMatchRule   *rule);
-@@ -135,7 +151,8 @@ BusTransaction* bus_transaction_new              (BusContext                   *
+@@ -137,7 +153,8 @@ BusTransaction* bus_transaction_new              (BusContext                   *
  BusContext*     bus_transaction_get_context      (BusTransaction               *transaction);
  dbus_bool_t     bus_transaction_send             (BusTransaction               *transaction,
                                                    DBusConnection               *connection,
@@ -837,9 +827,9 @@ index a6e5dfde..46e883e6 100644
 +                                                  dbus_bool_t                   deferred_dispatch);
  dbus_bool_t     bus_transaction_capture          (BusTransaction               *transaction,
                                                    DBusConnection               *connection,
-                                                   DBusMessage                  *message);
+                                                   DBusConnection               *addressed_recipient,
 diff --git a/bus/dispatch.c b/bus/dispatch.c
-index 7353501b..e32c9263 100644
+index 0250b53..1bdcbf0 100644
 --- a/bus/dispatch.c
 +++ b/bus/dispatch.c
 @@ -33,6 +33,7 @@
@@ -850,16 +840,16 @@ index 7353501b..e32c9263 100644
  #include "test.h"
  #include <dbus/dbus-internals.h>
  #include <dbus/dbus-connection-internal.h>
-@@ -76,7 +77,7 @@ send_one_message (DBusConnection *connection,
-                                           message,
+@@ -77,7 +78,7 @@ send_one_message (DBusConnection *connection,
+                                           NULL,
                                            &stack_error,
                                            &deferred_message);
 -  if (result != BUS_RESULT_TRUE)
 +  if (result == BUS_RESULT_FALSE)
      {
-       if (!bus_transaction_capture_error_reply (transaction, &stack_error,
-                                                 message))
-@@ -111,9 +112,19 @@ send_one_message (DBusConnection *connection,
+       if (!bus_transaction_capture_error_reply (transaction, sender,
+                                                 &stack_error, message))
+@@ -112,9 +113,19 @@ send_one_message (DBusConnection *connection,
        return TRUE; /* don't send it but don't return an error either */
      }
  
@@ -880,7 +870,7 @@ index 7353501b..e32c9263 100644
      {
        BUS_SET_OOM (error);
        return FALSE;
-@@ -123,11 +134,12 @@ send_one_message (DBusConnection *connection,
+@@ -124,11 +135,12 @@ send_one_message (DBusConnection *connection,
  }
  
  BusResult
@@ -898,7 +888,7 @@ index 7353501b..e32c9263 100644
  {
    DBusError tmp_error;
    BusConnections *connections;
-@@ -151,17 +163,78 @@ bus_dispatch_matches (BusTransaction *transaction,
+@@ -152,17 +164,78 @@ bus_dispatch_matches (BusTransaction *transaction,
    /* First, send the message to the addressed_recipient, if there is one. */
    if (addressed_recipient != NULL)
      {
@@ -906,7 +896,7 @@ index 7353501b..e32c9263 100644
 -      res = bus_context_check_security_policy (context, transaction,
 -                                               sender, addressed_recipient,
 -                                               addressed_recipient,
--                                               message, error,
+-                                               message, NULL, error,
 -                                               &deferred_message);
 -      if (res == BUS_RESULT_FALSE)
 +      BusResult result;
@@ -961,7 +951,7 @@ index 7353501b..e32c9263 100644
 +
 +      if (result == BUS_RESULT_LATER)
 +        result = bus_context_check_security_policy(context, transaction,
-+            sender, addressed_recipient, addressed_recipient, message, error,
++            sender, addressed_recipient, addressed_recipient, message, NULL, error,
 +            &deferred_message);
 +
 +      if (result == BUS_RESULT_FALSE)
@@ -985,7 +975,7 @@ index 7353501b..e32c9263 100644
            status = bus_deferred_message_get_status(deferred_message);
  
            if (status & BUS_DEFERRED_MESSAGE_CHECK_SEND)
-@@ -172,13 +245,18 @@ bus_dispatch_matches (BusTransaction *transaction,
+@@ -173,13 +246,18 @@ bus_dispatch_matches (BusTransaction *transaction,
              }
            else if (status & BUS_DEFERRED_MESSAGE_CHECK_RECEIVE)
              {
@@ -1008,7 +998,7 @@ index 7353501b..e32c9263 100644
                return BUS_RESULT_FALSE;
              }
          }
-@@ -195,7 +273,8 @@ bus_dispatch_matches (BusTransaction *transaction,
+@@ -196,7 +274,8 @@ bus_dispatch_matches (BusTransaction *transaction,
          }
  
        /* Dispatch the message */
@@ -1018,7 +1008,7 @@ index 7353501b..e32c9263 100644
          {
            BUS_SET_OOM (error);
            return BUS_RESULT_FALSE;
-@@ -495,7 +574,7 @@ bus_dispatch (DBusConnection *connection,
+@@ -535,7 +614,7 @@ bus_dispatch (DBusConnection *connection,
     * match rules.
     */
    if (BUS_RESULT_LATER == bus_dispatch_matches (transaction, connection, addressed_recipient,
@@ -1028,7 +1018,7 @@ index 7353501b..e32c9263 100644
        /* Roll back and dispatch the message once the policy result is available */
        bus_transaction_cancel_and_free (transaction);
 diff --git a/bus/dispatch.h b/bus/dispatch.h
-index afba6a24..f6102e80 100644
+index afba6a2..f6102e8 100644
 --- a/bus/dispatch.h
 +++ b/bus/dispatch.h
 @@ -29,10 +29,11 @@
@@ -1049,11 +1039,11 @@ index afba6a24..f6102e80 100644
  
  #endif /* BUS_DISPATCH_H */
 diff --git a/bus/driver.c b/bus/driver.c
-index a5823d4d..5acdd62a 100644
+index f414f64..d89a658 100644
 --- a/bus/driver.c
 +++ b/bus/driver.c
-@@ -261,7 +261,7 @@ bus_driver_send_service_owner_changed (const char     *service_name,
-   if (!bus_transaction_capture (transaction, NULL, message))
+@@ -254,7 +254,7 @@ bus_driver_send_service_owner_changed (const char     *service_name,
+   if (!bus_transaction_capture (transaction, NULL, NULL, message))
      goto oom;
  
 -  res = bus_dispatch_matches (transaction, NULL, NULL, message, error);
@@ -1062,10 +1052,10 @@ index a5823d4d..5acdd62a 100644
      retval = TRUE;
    else
 diff --git a/bus/policy.c b/bus/policy.c
-index bcade176..47bd1a24 100644
+index 7ee1ce5..b1fab0d 100644
 --- a/bus/policy.c
 +++ b/bus/policy.c
-@@ -1071,6 +1071,9 @@ bus_client_policy_check_can_send (DBusConnection      *sender,
+@@ -1121,6 +1121,9 @@ bus_client_policy_check_can_send (DBusConnection      *sender,
  
        result = bus_check_privilege(check, message, sender, addressed_recipient, receiver,
            privilege, BUS_DEFERRED_MESSAGE_CHECK_SEND, deferred_message);
@@ -1075,7 +1065,7 @@ index bcade176..47bd1a24 100644
      }
    else
      privilege = NULL;
-@@ -1305,6 +1308,9 @@ bus_client_policy_check_can_receive (BusClientPolicy     *policy,
+@@ -1370,6 +1373,9 @@ bus_client_policy_check_can_receive (BusClientPolicy     *policy,
  
        result = bus_check_privilege(check, message, sender, addressed_recipient, proposed_recipient,
                   privilege, BUS_DEFERRED_MESSAGE_CHECK_RECEIVE, deferred_message);
@@ -1085,6 +1075,3 @@ index bcade176..47bd1a24 100644
      }
    else
        privilege = NULL;
--- 
-2.14.3
-
index 1086f5b..bde7852 100644 (file)
@@ -19,24 +19,16 @@ Change-Id: I4c2cbd4585e41fccd8a30f825a8f0d342ab56755
 
 Cherry-picked from 35ef89cd6777ea2430077fc621d21bd01df92349 by Jose.bollo
 
+Updated for dbus 1.12.10 by Scott Murray.
+
 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
----
- bus/dispatch.c |  11 ++-
- bus/driver.c   | 259 ++++++++++++++++++++++++++++++---------------------------
- bus/driver.h   |   2 +-
- bus/policy.c   |  51 +++++++++---
- bus/policy.h   |   6 +-
- bus/services.c |  26 ++++--
- bus/services.h |   3 +-
- bus/stats.c    |  28 +++----
- bus/stats.h    |   6 +-
- 9 files changed, 229 insertions(+), 163 deletions(-)
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
 
 diff --git a/bus/dispatch.c b/bus/dispatch.c
-index e32c9263..4d57c556 100644
+index 1bdcbf0..625add5 100644
 --- a/bus/dispatch.c
 +++ b/bus/dispatch.c
-@@ -513,8 +513,17 @@ bus_dispatch (DBusConnection *connection,
+@@ -516,8 +516,17 @@ bus_dispatch (DBusConnection *connection,
          }
  
        _dbus_verbose ("Giving message to %s\n", DBUS_SERVICE_DBUS);
@@ -56,10 +48,10 @@ index e32c9263..4d57c556 100644
    else if (!bus_connection_is_active (connection)) /* clients must talk to bus driver first */
      {
 diff --git a/bus/driver.c b/bus/driver.c
-index 5acdd62a..bc4ce0b5 100644
+index d89a658..5ee60cb 100644
 --- a/bus/driver.c
 +++ b/bus/driver.c
-@@ -427,7 +427,7 @@ create_unique_client_name (BusRegistry *registry,
+@@ -420,7 +420,7 @@ create_unique_client_name (BusRegistry *registry,
    return TRUE;
  }
  
@@ -68,7 +60,7 @@ index 5acdd62a..bc4ce0b5 100644
  bus_driver_handle_hello (DBusConnection *connection,
                           BusTransaction *transaction,
                           DBusMessage    *message,
-@@ -435,7 +435,7 @@ bus_driver_handle_hello (DBusConnection *connection,
+@@ -428,7 +428,7 @@ bus_driver_handle_hello (DBusConnection *connection,
  {
    DBusString unique_name;
    BusService *service;
@@ -76,8 +68,8 @@ index 5acdd62a..bc4ce0b5 100644
 +  BusResult retval;
    BusRegistry *registry;
    BusConnections *connections;
-@@ -446,7 +446,7 @@ bus_driver_handle_hello (DBusConnection *connection,
+   DBusError tmp_error;
+@@ -442,7 +442,7 @@ bus_driver_handle_hello (DBusConnection *connection,
        /* We already handled an Hello message for this connection. */
        dbus_set_error (error, DBUS_ERROR_FAILED,
                        "Already handled an Hello message");
@@ -86,10 +78,10 @@ index 5acdd62a..bc4ce0b5 100644
      }
  
    /* Note that when these limits are exceeded we don't disconnect the
-@@ -460,16 +460,16 @@ bus_driver_handle_hello (DBusConnection *connection,
-                                      error))
-     {
-       _DBUS_ASSERT_ERROR_IS_SET (error);
+@@ -464,16 +464,16 @@ bus_driver_handle_hello (DBusConnection *connection,
+       bus_context_log (context, DBUS_SYSTEM_LOG_WARNING, "%s (%s=%d)",
+           tmp_error.message, limit_name, limit);
+       dbus_move_error (&tmp_error, error);
 -      return FALSE;
 +      return BUS_RESULT_FALSE;
      }
@@ -106,7 +98,7 @@ index 5acdd62a..bc4ce0b5 100644
  
    registry = bus_connection_get_registry (connection);
  
-@@ -502,7 +502,7 @@ bus_driver_handle_hello (DBusConnection *connection,
+@@ -506,7 +506,7 @@ bus_driver_handle_hello (DBusConnection *connection,
      goto out_0;
  
    _dbus_assert (bus_connection_is_active (connection));
@@ -115,7 +107,7 @@ index 5acdd62a..bc4ce0b5 100644
  
   out_0:
    _dbus_string_free (&unique_name);
-@@ -554,7 +554,7 @@ bus_driver_send_welcome_message (DBusConnection *connection,
+@@ -558,7 +558,7 @@ bus_driver_send_welcome_message (DBusConnection *connection,
      }
  }
  
@@ -124,7 +116,7 @@ index 5acdd62a..bc4ce0b5 100644
  bus_driver_handle_list_services (DBusConnection *connection,
                                   BusTransaction *transaction,
                                   DBusMessage    *message,
-@@ -576,14 +576,14 @@ bus_driver_handle_list_services (DBusConnection *connection,
+@@ -580,14 +580,14 @@ bus_driver_handle_list_services (DBusConnection *connection,
    if (reply == NULL)
      {
        BUS_SET_OOM (error);
@@ -141,7 +133,7 @@ index 5acdd62a..bc4ce0b5 100644
      }
  
    dbus_message_iter_init_append (reply, &iter);
-@@ -595,7 +595,7 @@ bus_driver_handle_list_services (DBusConnection *connection,
+@@ -599,7 +599,7 @@ bus_driver_handle_list_services (DBusConnection *connection,
        dbus_free_string_array (services);
        dbus_message_unref (reply);
        BUS_SET_OOM (error);
@@ -150,7 +142,7 @@ index 5acdd62a..bc4ce0b5 100644
      }
  
    {
-@@ -607,7 +607,7 @@ bus_driver_handle_list_services (DBusConnection *connection,
+@@ -611,7 +611,7 @@ bus_driver_handle_list_services (DBusConnection *connection,
          dbus_free_string_array (services);
          dbus_message_unref (reply);
          BUS_SET_OOM (error);
@@ -159,7 +151,7 @@ index 5acdd62a..bc4ce0b5 100644
        }
    }
  
-@@ -620,7 +620,7 @@ bus_driver_handle_list_services (DBusConnection *connection,
+@@ -624,7 +624,7 @@ bus_driver_handle_list_services (DBusConnection *connection,
            dbus_free_string_array (services);
            dbus_message_unref (reply);
            BUS_SET_OOM (error);
@@ -168,7 +160,7 @@ index 5acdd62a..bc4ce0b5 100644
          }
        ++i;
      }
-@@ -631,23 +631,23 @@ bus_driver_handle_list_services (DBusConnection *connection,
+@@ -635,23 +635,23 @@ bus_driver_handle_list_services (DBusConnection *connection,
      {
        dbus_message_unref (reply);
        BUS_SET_OOM (error);
@@ -196,7 +188,7 @@ index 5acdd62a..bc4ce0b5 100644
  bus_driver_handle_list_activatable_services (DBusConnection *connection,
                                             BusTransaction *transaction,
                                             DBusMessage    *message,
-@@ -669,14 +669,14 @@ bus_driver_handle_list_activatable_services (DBusConnection *connection,
+@@ -673,14 +673,14 @@ bus_driver_handle_list_activatable_services (DBusConnection *connection,
    if (reply == NULL)
      {
        BUS_SET_OOM (error);
@@ -213,7 +205,7 @@ index 5acdd62a..bc4ce0b5 100644
      }
  
    dbus_message_iter_init_append (reply, &iter);
-@@ -688,7 +688,7 @@ bus_driver_handle_list_activatable_services (DBusConnection *connection,
+@@ -692,7 +692,7 @@ bus_driver_handle_list_activatable_services (DBusConnection *connection,
        dbus_free_string_array (services);
        dbus_message_unref (reply);
        BUS_SET_OOM (error);
@@ -222,7 +214,7 @@ index 5acdd62a..bc4ce0b5 100644
      }
  
    {
-@@ -700,7 +700,7 @@ bus_driver_handle_list_activatable_services (DBusConnection *connection,
+@@ -704,7 +704,7 @@ bus_driver_handle_list_activatable_services (DBusConnection *connection,
        dbus_free_string_array (services);
        dbus_message_unref (reply);
        BUS_SET_OOM (error);
@@ -231,7 +223,7 @@ index 5acdd62a..bc4ce0b5 100644
        }
    }
  
-@@ -713,7 +713,7 @@ bus_driver_handle_list_activatable_services (DBusConnection *connection,
+@@ -717,7 +717,7 @@ bus_driver_handle_list_activatable_services (DBusConnection *connection,
          dbus_free_string_array (services);
          dbus_message_unref (reply);
          BUS_SET_OOM (error);
@@ -240,7 +232,7 @@ index 5acdd62a..bc4ce0b5 100644
        }
        ++i;
      }
-@@ -724,23 +724,23 @@ bus_driver_handle_list_activatable_services (DBusConnection *connection,
+@@ -728,23 +728,23 @@ bus_driver_handle_list_activatable_services (DBusConnection *connection,
      {
        dbus_message_unref (reply);
        BUS_SET_OOM (error);
@@ -268,7 +260,7 @@ index 5acdd62a..bc4ce0b5 100644
  bus_driver_handle_acquire_service (DBusConnection *connection,
                                     BusTransaction *transaction,
                                     DBusMessage    *message,
-@@ -751,7 +751,8 @@ bus_driver_handle_acquire_service (DBusConnection *connection,
+@@ -755,7 +755,8 @@ bus_driver_handle_acquire_service (DBusConnection *connection,
    const char *name;
    dbus_uint32_t service_reply;
    dbus_uint32_t flags;
@@ -278,7 +270,7 @@ index 5acdd62a..bc4ce0b5 100644
    BusRegistry *registry;
  
    _DBUS_ASSERT_ERROR_IS_CLEAR (error);
-@@ -762,20 +763,24 @@ bus_driver_handle_acquire_service (DBusConnection *connection,
+@@ -766,20 +767,24 @@ bus_driver_handle_acquire_service (DBusConnection *connection,
                                DBUS_TYPE_STRING, &name,
                                DBUS_TYPE_UINT32, &flags,
                                DBUS_TYPE_INVALID))
@@ -310,7 +302,7 @@ index 5acdd62a..bc4ce0b5 100644
  
    reply = dbus_message_new_method_return (message);
    if (reply == NULL)
-@@ -796,7 +801,7 @@ bus_driver_handle_acquire_service (DBusConnection *connection,
+@@ -800,7 +805,7 @@ bus_driver_handle_acquire_service (DBusConnection *connection,
        goto out;
      }
  
@@ -319,7 +311,7 @@ index 5acdd62a..bc4ce0b5 100644
  
   out:
    if (reply)
-@@ -804,7 +809,7 @@ bus_driver_handle_acquire_service (DBusConnection *connection,
+@@ -808,7 +813,7 @@ bus_driver_handle_acquire_service (DBusConnection *connection,
    return retval;
  }
  
@@ -328,7 +320,7 @@ index 5acdd62a..bc4ce0b5 100644
  bus_driver_handle_release_service (DBusConnection *connection,
                                     BusTransaction *transaction,
                                     DBusMessage    *message,
-@@ -814,7 +819,7 @@ bus_driver_handle_release_service (DBusConnection *connection,
+@@ -818,7 +823,7 @@ bus_driver_handle_release_service (DBusConnection *connection,
    DBusString service_name;
    const char *name;
    dbus_uint32_t service_reply;
@@ -337,7 +329,7 @@ index 5acdd62a..bc4ce0b5 100644
    BusRegistry *registry;
  
    _DBUS_ASSERT_ERROR_IS_CLEAR (error);
-@@ -824,11 +829,11 @@ bus_driver_handle_release_service (DBusConnection *connection,
+@@ -828,11 +833,11 @@ bus_driver_handle_release_service (DBusConnection *connection,
    if (!dbus_message_get_args (message, error,
                                DBUS_TYPE_STRING, &name,
                                DBUS_TYPE_INVALID))
@@ -351,7 +343,7 @@ index 5acdd62a..bc4ce0b5 100644
    reply = NULL;
  
    _dbus_string_init_const (&service_name, name);
-@@ -857,7 +862,7 @@ bus_driver_handle_release_service (DBusConnection *connection,
+@@ -861,7 +866,7 @@ bus_driver_handle_release_service (DBusConnection *connection,
        goto out;
      }
  
@@ -360,7 +352,7 @@ index 5acdd62a..bc4ce0b5 100644
  
   out:
    if (reply)
-@@ -865,7 +870,7 @@ bus_driver_handle_release_service (DBusConnection *connection,
+@@ -869,7 +874,7 @@ bus_driver_handle_release_service (DBusConnection *connection,
    return retval;
  }
  
@@ -369,7 +361,7 @@ index 5acdd62a..bc4ce0b5 100644
  bus_driver_handle_service_exists (DBusConnection *connection,
                                    BusTransaction *transaction,
                                    DBusMessage    *message,
-@@ -876,7 +881,7 @@ bus_driver_handle_service_exists (DBusConnection *connection,
+@@ -880,7 +885,7 @@ bus_driver_handle_service_exists (DBusConnection *connection,
    BusService *service;
    dbus_bool_t service_exists;
    const char *name;
@@ -378,7 +370,7 @@ index 5acdd62a..bc4ce0b5 100644
    BusRegistry *registry;
  
    _DBUS_ASSERT_ERROR_IS_CLEAR (error);
-@@ -886,9 +891,9 @@ bus_driver_handle_service_exists (DBusConnection *connection,
+@@ -890,9 +895,9 @@ bus_driver_handle_service_exists (DBusConnection *connection,
    if (!dbus_message_get_args (message, error,
                                DBUS_TYPE_STRING, &name,
                                DBUS_TYPE_INVALID))
@@ -390,7 +382,7 @@ index 5acdd62a..bc4ce0b5 100644
  
    if (strcmp (name, DBUS_SERVICE_DBUS) == 0)
      {
-@@ -922,7 +927,7 @@ bus_driver_handle_service_exists (DBusConnection *connection,
+@@ -926,7 +931,7 @@ bus_driver_handle_service_exists (DBusConnection *connection,
        goto out;
      }
  
@@ -399,7 +391,7 @@ index 5acdd62a..bc4ce0b5 100644
  
   out:
    if (reply)
-@@ -931,7 +936,7 @@ bus_driver_handle_service_exists (DBusConnection *connection,
+@@ -935,7 +940,7 @@ bus_driver_handle_service_exists (DBusConnection *connection,
    return retval;
  }
  
@@ -408,7 +400,7 @@ index 5acdd62a..bc4ce0b5 100644
  bus_driver_handle_activate_service (DBusConnection *connection,
                                      BusTransaction *transaction,
                                      DBusMessage    *message,
-@@ -939,7 +944,7 @@ bus_driver_handle_activate_service (DBusConnection *connection,
+@@ -943,7 +948,7 @@ bus_driver_handle_activate_service (DBusConnection *connection,
  {
    dbus_uint32_t flags;
    const char *name;
@@ -417,7 +409,7 @@ index 5acdd62a..bc4ce0b5 100644
    BusActivation *activation;
  
    _DBUS_ASSERT_ERROR_IS_CLEAR (error);
-@@ -953,10 +958,10 @@ bus_driver_handle_activate_service (DBusConnection *connection,
+@@ -957,10 +962,10 @@ bus_driver_handle_activate_service (DBusConnection *connection,
      {
        _DBUS_ASSERT_ERROR_IS_SET (error);
        _dbus_verbose ("No memory to get arguments to StartServiceByName\n");
@@ -430,7 +422,7 @@ index 5acdd62a..bc4ce0b5 100644
  
    if (!bus_activation_activate_service (activation, connection, transaction, FALSE,
                                          message, name, error))
-@@ -966,7 +971,7 @@ bus_driver_handle_activate_service (DBusConnection *connection,
+@@ -970,7 +975,7 @@ bus_driver_handle_activate_service (DBusConnection *connection,
        goto out;
      }
  
@@ -439,7 +431,7 @@ index 5acdd62a..bc4ce0b5 100644
  
   out:
    return retval;
-@@ -1068,13 +1073,13 @@ bus_driver_send_or_activate (BusTransaction *transaction,
+@@ -1072,13 +1077,13 @@ bus_driver_send_or_activate (BusTransaction *transaction,
    return TRUE;
  }
  
@@ -455,25 +447,7 @@ index 5acdd62a..bc4ce0b5 100644
    BusActivation *activation;
    BusContext *context;
    DBusMessageIter iter;
-@@ -1090,7 +1095,7 @@ bus_driver_handle_update_activation_environment (DBusConnection *connection,
-   _DBUS_ASSERT_ERROR_IS_CLEAR (error);
-   if (!bus_driver_check_message_is_for_us (message, error))
--    return FALSE;
-+    return BUS_RESULT_FALSE;
- #ifdef DBUS_UNIX
-     {
 @@ -1100,7 +1105,7 @@ bus_driver_handle_update_activation_environment (DBusConnection *connection,
-        */
-       if (!bus_driver_check_caller_is_privileged (connection, transaction,
-                                                   message, error))
--        return FALSE;
-+        return BUS_RESULT_FALSE;
-     }
- #endif
-@@ -1111,7 +1116,7 @@ bus_driver_handle_update_activation_environment (DBusConnection *connection,
        dbus_set_error (error, DBUS_ERROR_ACCESS_DENIED,
                        "Cannot change activation environment "
                        "on a system bus.");
@@ -482,7 +456,7 @@ index 5acdd62a..bc4ce0b5 100644
      }
  
    activation = bus_connection_get_activation (connection);
-@@ -1125,7 +1130,7 @@ bus_driver_handle_update_activation_environment (DBusConnection *connection,
+@@ -1114,7 +1119,7 @@ bus_driver_handle_update_activation_environment (DBusConnection *connection,
  
    dbus_message_iter_recurse (&iter, &dict_iter);
  
@@ -491,8 +465,8 @@ index 5acdd62a..bc4ce0b5 100644
    systemd_message = NULL;
  
    /* Then loop through the sent dictionary, add the location of
-@@ -1291,7 +1296,7 @@ bus_driver_handle_update_activation_environment (DBusConnection *connection,
-                        message, error))
+@@ -1279,7 +1284,7 @@ bus_driver_handle_update_activation_environment (DBusConnection *connection,
+   if (!bus_driver_send_ack_reply (connection, transaction, message, error))
      goto out;
  
 -  retval = TRUE;
@@ -500,7 +474,7 @@ index 5acdd62a..bc4ce0b5 100644
  
   out:
    if (systemd_message != NULL)
-@@ -1301,7 +1306,7 @@ bus_driver_handle_update_activation_environment (DBusConnection *connection,
+@@ -1289,7 +1294,7 @@ bus_driver_handle_update_activation_environment (DBusConnection *connection,
    return retval;
  }
  
@@ -509,7 +483,7 @@ index 5acdd62a..bc4ce0b5 100644
  bus_driver_handle_add_match (DBusConnection *connection,
                               BusTransaction *transaction,
                               DBusMessage    *message,
-@@ -1367,16 +1372,16 @@ bus_driver_handle_add_match (DBusConnection *connection,
+@@ -1371,16 +1376,16 @@ bus_driver_handle_add_match (DBusConnection *connection,
  
    bus_match_rule_unref (rule);
  
@@ -529,7 +503,7 @@ index 5acdd62a..bc4ce0b5 100644
  bus_driver_handle_remove_match (DBusConnection *connection,
                                  BusTransaction *transaction,
                                  DBusMessage    *message,
-@@ -1420,16 +1425,16 @@ bus_driver_handle_remove_match (DBusConnection *connection,
+@@ -1423,16 +1428,16 @@ bus_driver_handle_remove_match (DBusConnection *connection,
  
    bus_match_rule_unref (rule);
  
@@ -549,7 +523,7 @@ index 5acdd62a..bc4ce0b5 100644
  bus_driver_handle_get_service_owner (DBusConnection *connection,
                                     BusTransaction *transaction,
                                     DBusMessage    *message,
-@@ -1499,7 +1504,7 @@ bus_driver_handle_get_service_owner (DBusConnection *connection,
+@@ -1502,7 +1507,7 @@ bus_driver_handle_get_service_owner (DBusConnection *connection,
  
    dbus_message_unref (reply);
  
@@ -558,7 +532,7 @@ index 5acdd62a..bc4ce0b5 100644
  
   oom:
    BUS_SET_OOM (error);
-@@ -1508,10 +1513,10 @@ bus_driver_handle_get_service_owner (DBusConnection *connection,
+@@ -1511,10 +1516,10 @@ bus_driver_handle_get_service_owner (DBusConnection *connection,
    _DBUS_ASSERT_ERROR_IS_SET (error);
    if (reply)
      dbus_message_unref (reply);
@@ -571,7 +545,7 @@ index 5acdd62a..bc4ce0b5 100644
  bus_driver_handle_list_queued_owners (DBusConnection *connection,
                                      BusTransaction *transaction,
                                      DBusMessage    *message,
-@@ -1602,7 +1607,7 @@ bus_driver_handle_list_queued_owners (DBusConnection *connection,
+@@ -1606,7 +1611,7 @@ bus_driver_handle_list_queued_owners (DBusConnection *connection,
  
    dbus_message_unref (reply);
  
@@ -580,7 +554,7 @@ index 5acdd62a..bc4ce0b5 100644
  
   oom:
    BUS_SET_OOM (error);
-@@ -1615,10 +1620,10 @@ bus_driver_handle_list_queued_owners (DBusConnection *connection,
+@@ -1619,10 +1624,10 @@ bus_driver_handle_list_queued_owners (DBusConnection *connection,
    if (base_names)
      _dbus_list_clear (&base_names);
  
@@ -593,7 +567,7 @@ index 5acdd62a..bc4ce0b5 100644
  bus_driver_handle_get_connection_unix_user (DBusConnection *connection,
                                              BusTransaction *transaction,
                                              DBusMessage    *message,
-@@ -1673,7 +1678,7 @@ bus_driver_handle_get_connection_unix_user (DBusConnection *connection,
+@@ -1679,7 +1684,7 @@ bus_driver_handle_get_connection_unix_user (DBusConnection *connection,
  
    dbus_message_unref (reply);
  
@@ -602,7 +576,7 @@ index 5acdd62a..bc4ce0b5 100644
  
   oom:
    BUS_SET_OOM (error);
-@@ -1682,10 +1687,10 @@ bus_driver_handle_get_connection_unix_user (DBusConnection *connection,
+@@ -1688,10 +1693,10 @@ bus_driver_handle_get_connection_unix_user (DBusConnection *connection,
    _DBUS_ASSERT_ERROR_IS_SET (error);
    if (reply)
      dbus_message_unref (reply);
@@ -615,7 +589,7 @@ index 5acdd62a..bc4ce0b5 100644
  bus_driver_handle_get_connection_unix_process_id (DBusConnection *connection,
                                                  BusTransaction *transaction,
                                                  DBusMessage    *message,
-@@ -1740,7 +1745,7 @@ bus_driver_handle_get_connection_unix_process_id (DBusConnection *connection,
+@@ -1748,7 +1753,7 @@ bus_driver_handle_get_connection_unix_process_id (DBusConnection *connection,
  
    dbus_message_unref (reply);
  
@@ -624,7 +598,7 @@ index 5acdd62a..bc4ce0b5 100644
  
   oom:
    BUS_SET_OOM (error);
-@@ -1749,10 +1754,10 @@ bus_driver_handle_get_connection_unix_process_id (DBusConnection *connection,
+@@ -1757,10 +1762,10 @@ bus_driver_handle_get_connection_unix_process_id (DBusConnection *connection,
    _DBUS_ASSERT_ERROR_IS_SET (error);
    if (reply)
      dbus_message_unref (reply);
@@ -637,7 +611,7 @@ index 5acdd62a..bc4ce0b5 100644
  bus_driver_handle_get_adt_audit_session_data (DBusConnection *connection,
                                              BusTransaction *transaction,
                                              DBusMessage    *message,
-@@ -1803,7 +1808,7 @@ bus_driver_handle_get_adt_audit_session_data (DBusConnection *connection,
+@@ -1811,7 +1816,7 @@ bus_driver_handle_get_adt_audit_session_data (DBusConnection *connection,
  
    dbus_message_unref (reply);
  
@@ -646,7 +620,7 @@ index 5acdd62a..bc4ce0b5 100644
  
   oom:
    BUS_SET_OOM (error);
-@@ -1812,10 +1817,10 @@ bus_driver_handle_get_adt_audit_session_data (DBusConnection *connection,
+@@ -1820,10 +1825,10 @@ bus_driver_handle_get_adt_audit_session_data (DBusConnection *connection,
    _DBUS_ASSERT_ERROR_IS_SET (error);
    if (reply)
      dbus_message_unref (reply);
@@ -659,7 +633,7 @@ index 5acdd62a..bc4ce0b5 100644
  bus_driver_handle_get_connection_selinux_security_context (DBusConnection *connection,
                                                           BusTransaction *transaction,
                                                           DBusMessage    *message,
-@@ -1863,7 +1868,7 @@ bus_driver_handle_get_connection_selinux_security_context (DBusConnection *conne
+@@ -1872,7 +1877,7 @@ bus_driver_handle_get_connection_selinux_security_context (DBusConnection *conne
  
    dbus_message_unref (reply);
  
@@ -668,7 +642,7 @@ index 5acdd62a..bc4ce0b5 100644
  
   oom:
    BUS_SET_OOM (error);
-@@ -1872,10 +1877,10 @@ bus_driver_handle_get_connection_selinux_security_context (DBusConnection *conne
+@@ -1881,10 +1886,10 @@ bus_driver_handle_get_connection_selinux_security_context (DBusConnection *conne
    _DBUS_ASSERT_ERROR_IS_SET (error);
    if (reply)
      dbus_message_unref (reply);
@@ -681,7 +655,7 @@ index 5acdd62a..bc4ce0b5 100644
  bus_driver_handle_get_connection_credentials (DBusConnection *connection,
                                                BusTransaction *transaction,
                                                DBusMessage    *message,
-@@ -1987,7 +1992,7 @@ bus_driver_handle_get_connection_credentials (DBusConnection *connection,
+@@ -1998,7 +2003,7 @@ bus_driver_handle_get_connection_credentials (DBusConnection *connection,
  
    dbus_message_unref (reply);
  
@@ -690,7 +664,7 @@ index 5acdd62a..bc4ce0b5 100644
  
   oom:
    BUS_SET_OOM (error);
-@@ -2001,10 +2006,10 @@ bus_driver_handle_get_connection_credentials (DBusConnection *connection,
+@@ -2012,10 +2017,10 @@ bus_driver_handle_get_connection_credentials (DBusConnection *connection,
        dbus_message_unref (reply);
      }
  
@@ -703,7 +677,7 @@ index 5acdd62a..bc4ce0b5 100644
  bus_driver_handle_reload_config (DBusConnection *connection,
                                 BusTransaction *transaction,
                                 DBusMessage    *message,
-@@ -2029,7 +2034,7 @@ bus_driver_handle_reload_config (DBusConnection *connection,
+@@ -2040,7 +2045,7 @@ bus_driver_handle_reload_config (DBusConnection *connection,
      goto oom;
  
    dbus_message_unref (reply);
@@ -712,7 +686,7 @@ index 5acdd62a..bc4ce0b5 100644
  
   oom:
    BUS_SET_OOM (error);
-@@ -2038,11 +2043,11 @@ bus_driver_handle_reload_config (DBusConnection *connection,
+@@ -2049,11 +2054,11 @@ bus_driver_handle_reload_config (DBusConnection *connection,
    _DBUS_ASSERT_ERROR_IS_SET (error);
    if (reply)
      dbus_message_unref (reply);
@@ -726,7 +700,7 @@ index 5acdd62a..bc4ce0b5 100644
  bus_driver_handle_enable_verbose (DBusConnection *connection,
                                    BusTransaction *transaction,
                                    DBusMessage    *message,
-@@ -2062,7 +2067,7 @@ bus_driver_handle_enable_verbose (DBusConnection *connection,
+@@ -2073,7 +2078,7 @@ bus_driver_handle_enable_verbose (DBusConnection *connection,
      _dbus_set_verbose(TRUE);
  
      dbus_message_unref (reply);
@@ -735,7 +709,7 @@ index 5acdd62a..bc4ce0b5 100644
  
     oom:
      _DBUS_ASSERT_ERROR_IS_CLEAR (error);
-@@ -2071,10 +2076,10 @@ bus_driver_handle_enable_verbose (DBusConnection *connection,
+@@ -2082,10 +2087,10 @@ bus_driver_handle_enable_verbose (DBusConnection *connection,
  
      if (reply)
        dbus_message_unref (reply);
@@ -748,7 +722,7 @@ index 5acdd62a..bc4ce0b5 100644
  bus_driver_handle_disable_verbose (DBusConnection *connection,
                                     BusTransaction *transaction,
                                     DBusMessage    *message,
-@@ -2094,7 +2099,7 @@ bus_driver_handle_disable_verbose (DBusConnection *connection,
+@@ -2105,7 +2110,7 @@ bus_driver_handle_disable_verbose (DBusConnection *connection,
      _dbus_set_verbose(FALSE);
  
      dbus_message_unref (reply);
@@ -757,7 +731,7 @@ index 5acdd62a..bc4ce0b5 100644
  
     oom:
      _DBUS_ASSERT_ERROR_IS_CLEAR (error);
-@@ -2103,11 +2108,11 @@ bus_driver_handle_disable_verbose (DBusConnection *connection,
+@@ -2114,11 +2119,11 @@ bus_driver_handle_disable_verbose (DBusConnection *connection,
  
      if (reply)
        dbus_message_unref (reply);
@@ -771,7 +745,7 @@ index 5acdd62a..bc4ce0b5 100644
  bus_driver_handle_get_id (DBusConnection *connection,
                            BusTransaction *transaction,
                            DBusMessage    *message,
-@@ -2123,7 +2128,7 @@ bus_driver_handle_get_id (DBusConnection *connection,
+@@ -2134,7 +2139,7 @@ bus_driver_handle_get_id (DBusConnection *connection,
    if (!_dbus_string_init (&uuid))
      {
        BUS_SET_OOM (error);
@@ -780,7 +754,7 @@ index 5acdd62a..bc4ce0b5 100644
      }
  
    reply = NULL;
-@@ -2149,7 +2154,7 @@ bus_driver_handle_get_id (DBusConnection *connection,
+@@ -2160,7 +2165,7 @@ bus_driver_handle_get_id (DBusConnection *connection,
  
    _dbus_string_free (&uuid);
    dbus_message_unref (reply);
@@ -789,7 +763,7 @@ index 5acdd62a..bc4ce0b5 100644
  
   oom:
    _DBUS_ASSERT_ERROR_IS_CLEAR (error);
-@@ -2159,10 +2164,10 @@ bus_driver_handle_get_id (DBusConnection *connection,
+@@ -2170,10 +2175,10 @@ bus_driver_handle_get_id (DBusConnection *connection,
    if (reply)
      dbus_message_unref (reply);
    _dbus_string_free (&uuid);
@@ -802,7 +776,7 @@ index 5acdd62a..bc4ce0b5 100644
  bus_driver_handle_become_monitor (DBusConnection *connection,
                                    BusTransaction *transaction,
                                    DBusMessage    *message,
-@@ -2178,7 +2183,7 @@ bus_driver_handle_become_monitor (DBusConnection *connection,
+@@ -2189,7 +2194,7 @@ bus_driver_handle_become_monitor (DBusConnection *connection,
    int i;
    int n_match_rules;
    dbus_uint32_t flags;
@@ -811,7 +785,7 @@ index 5acdd62a..bc4ce0b5 100644
  
    _DBUS_ASSERT_ERROR_IS_CLEAR (error);
  
-@@ -2258,10 +2263,10 @@ bus_driver_handle_become_monitor (DBusConnection *connection,
+@@ -2262,10 +2267,10 @@ bus_driver_handle_become_monitor (DBusConnection *connection,
    if (!bus_connection_be_monitor (connection, transaction, &rules, error))
      goto out;
  
@@ -824,7 +798,7 @@ index 5acdd62a..bc4ce0b5 100644
      _DBUS_ASSERT_ERROR_IS_CLEAR (error);
    else
      _DBUS_ASSERT_ERROR_IS_SET (error);
-@@ -2282,10 +2287,10 @@ typedef struct
+@@ -2389,10 +2394,10 @@ typedef struct
    const char *name;
    const char *in_args;
    const char *out_args;
@@ -836,19 +810,19 @@ index 5acdd62a..bc4ce0b5 100644
 +                         BusTransaction *transaction,
 +                         DBusMessage    *message,
 +                         DBusError      *error);
+   MethodFlags flags;
  } MessageHandler;
  
- /* For speed it might be useful to sort this in order of
-@@ -2370,7 +2375,7 @@ static const MessageHandler dbus_message_handlers[] = {
-   { NULL, NULL, NULL, NULL }
+@@ -2511,7 +2516,7 @@ static const PropertyHandler dbus_property_handlers[] = {
+   { NULL, NULL, NULL }
  };
  
 -static dbus_bool_t bus_driver_handle_introspect (DBusConnection *,
 +static BusResult bus_driver_handle_introspect (DBusConnection *,
      BusTransaction *, DBusMessage *, DBusError *);
  
- static const MessageHandler introspectable_message_handlers[] = {
-@@ -2514,7 +2519,7 @@ bus_driver_generate_introspect_string (DBusString *xml)
+ static const MessageHandler properties_message_handlers[] = {
+@@ -2763,7 +2768,7 @@ bus_driver_generate_introspect_string (DBusString *xml,
    return TRUE;
  }
  
@@ -857,7 +831,7 @@ index 5acdd62a..bc4ce0b5 100644
  bus_driver_handle_introspect (DBusConnection *connection,
                                BusTransaction *transaction,
                                DBusMessage    *message,
-@@ -2534,13 +2539,13 @@ bus_driver_handle_introspect (DBusConnection *connection,
+@@ -2784,13 +2789,13 @@ bus_driver_handle_introspect (DBusConnection *connection,
                               DBUS_TYPE_INVALID))
      {
        _DBUS_ASSERT_ERROR_IS_SET (error);
@@ -872,8 +846,8 @@ index 5acdd62a..bc4ce0b5 100644
 +      return BUS_RESULT_FALSE;
      }
  
-   if (!bus_driver_generate_introspect_string (&xml))
-@@ -2563,7 +2568,7 @@ bus_driver_handle_introspect (DBusConnection *connection,
+   is_canonical_path = dbus_message_has_path (message, DBUS_PATH_DBUS);
+@@ -2815,7 +2820,7 @@ bus_driver_handle_introspect (DBusConnection *connection,
    dbus_message_unref (reply);
    _dbus_string_free (&xml);
  
@@ -882,7 +856,7 @@ index 5acdd62a..bc4ce0b5 100644
  
   oom:
    BUS_SET_OOM (error);
-@@ -2573,7 +2578,7 @@ bus_driver_handle_introspect (DBusConnection *connection,
+@@ -2825,10 +2830,10 @@ bus_driver_handle_introspect (DBusConnection *connection,
  
    _dbus_string_free (&xml);
  
@@ -890,25 +864,20 @@ index 5acdd62a..bc4ce0b5 100644
 +  return BUS_RESULT_FALSE;
  }
  
- /*
-@@ -2608,7 +2613,7 @@ bus_driver_check_message_is_for_us (DBusMessage *message,
-   return TRUE;
- }
 -dbus_bool_t
 +BusResult
  bus_driver_handle_message (DBusConnection *connection,
                             BusTransaction *transaction,
                           DBusMessage    *message,
-@@ -2618,6 +2623,7 @@ bus_driver_handle_message (DBusConnection *connection,
-   const InterfaceHandler *ih;
+@@ -2839,6 +2844,7 @@ bus_driver_handle_message (DBusConnection *connection,
    const MessageHandler *mh;
    dbus_bool_t found_interface = FALSE;
+   dbus_bool_t is_canonical_path;
 +  BusResult res;
  
    _DBUS_ASSERT_ERROR_IS_CLEAR (error);
  
-@@ -2633,7 +2639,7 @@ bus_driver_handle_message (DBusConnection *connection,
+@@ -2854,7 +2860,7 @@ bus_driver_handle_message (DBusConnection *connection,
                                                    transaction,
                                                    message,
                                                    error))
@@ -917,7 +886,7 @@ index 5acdd62a..bc4ce0b5 100644
  
        context = bus_connection_get_context (connection);
        systemd = bus_driver_get_owner_of_name (connection,
-@@ -2650,7 +2656,7 @@ bus_driver_handle_message (DBusConnection *connection,
+@@ -2871,7 +2877,7 @@ bus_driver_handle_message (DBusConnection *connection,
                             attacker ? attacker : "(unauthenticated)",
                             bus_connection_get_loginfo (connection));
            /* ignore it */
@@ -926,7 +895,7 @@ index 5acdd62a..bc4ce0b5 100644
          }
  
        if (!bus_context_get_systemd_activation (context))
-@@ -2658,16 +2664,16 @@ bus_driver_handle_message (DBusConnection *connection,
+@@ -2879,16 +2885,16 @@ bus_driver_handle_message (DBusConnection *connection,
            bus_context_log (context, DBUS_SYSTEM_LOG_WARNING,
                             "Ignoring unexpected ActivationFailure message "
                             "while not using systemd activation");
@@ -946,7 +915,7 @@ index 5acdd62a..bc4ce0b5 100644
      }
  
    /* may be NULL, which means "any interface will do" */
-@@ -2709,20 +2715,27 @@ bus_driver_handle_message (DBusConnection *connection,
+@@ -2953,20 +2959,27 @@ bus_driver_handle_message (DBusConnection *connection,
                                name, dbus_message_get_signature (message),
                                mh->in_args);
                _DBUS_ASSERT_ERROR_IS_SET (error);
@@ -979,7 +948,7 @@ index 5acdd62a..bc4ce0b5 100644
              }
          }
      }
-@@ -2734,7 +2747,7 @@ bus_driver_handle_message (DBusConnection *connection,
+@@ -2978,7 +2991,7 @@ bus_driver_handle_message (DBusConnection *connection,
                    "%s does not understand message %s",
                    DBUS_SERVICE_DBUS, name);
  
@@ -989,11 +958,11 @@ index 5acdd62a..bc4ce0b5 100644
  
  void
 diff --git a/bus/driver.h b/bus/driver.h
-index 201709c4..3ff4ff15 100644
+index ac1289d..183c28b 100644
 --- a/bus/driver.h
 +++ b/bus/driver.h
-@@ -28,7 +28,7 @@
- #include "connection.h"
+@@ -35,7 +35,7 @@ typedef enum
+ } BusDriverFound;
  
  void        bus_driver_remove_connection     (DBusConnection *connection);
 -dbus_bool_t bus_driver_handle_message        (DBusConnection *connection,
@@ -1002,10 +971,10 @@ index 201709c4..3ff4ff15 100644
                                                DBusMessage    *message,
                                                DBusError      *error);
 diff --git a/bus/policy.c b/bus/policy.c
-index 47bd1a24..7244a46f 100644
+index b1fab0d..27b66d1 100644
 --- a/bus/policy.c
 +++ b/bus/policy.c
-@@ -1323,18 +1323,21 @@ bus_client_policy_check_can_receive (BusClientPolicy     *policy,
+@@ -1388,18 +1388,21 @@ bus_client_policy_check_can_receive (BusClientPolicy     *policy,
  
  
  
@@ -1031,7 +1000,7 @@ index 47bd1a24..7244a46f 100644
    link = _dbus_list_get_first_link (&rules);
    while (link != NULL)
      {
-@@ -1370,17 +1373,45 @@ bus_rules_check_can_own (DBusList *rules,
+@@ -1435,17 +1438,45 @@ bus_rules_check_can_own (DBusList *rules,
          }
  
        /* Use this rule */
@@ -1082,7 +1051,7 @@ index 47bd1a24..7244a46f 100644
  }
  
  #ifdef DBUS_ENABLE_EMBEDDED_TESTS
-@@ -1388,7 +1419,7 @@ dbus_bool_t
+@@ -1453,7 +1484,7 @@ dbus_bool_t
  bus_policy_check_can_own (BusPolicy  *policy,
                            const DBusString *service_name)
  {
@@ -1092,10 +1061,10 @@ index 47bd1a24..7244a46f 100644
  #endif /* DBUS_ENABLE_EMBEDDED_TESTS */
  
 diff --git a/bus/policy.h b/bus/policy.h
-index e9f193af..1f234310 100644
+index f306a3c..39d7cc5 100644
 --- a/bus/policy.h
 +++ b/bus/policy.h
-@@ -170,8 +170,10 @@ BusResult        bus_client_policy_check_can_receive (BusClientPolicy     *polic
+@@ -182,8 +182,10 @@ BusResult        bus_client_policy_check_can_receive (BusClientPolicy     *polic
                                                        dbus_int32_t        *toggles,
                                                        const char         **privilege_param,
                                                        BusDeferredMessage **deferred_message);
@@ -1109,10 +1078,10 @@ index e9f193af..1f234310 100644
                                                        BusPolicyRule    *rule);
  void             bus_client_policy_optimize          (BusClientPolicy  *policy);
 diff --git a/bus/services.c b/bus/services.c
-index 6a4c8848..fcc2d261 100644
+index 127edda..586af18 100644
 --- a/bus/services.c
 +++ b/bus/services.c
-@@ -376,24 +376,26 @@ bus_registry_list_services (BusRegistry *registry,
+@@ -376,16 +376,17 @@ bus_registry_list_services (BusRegistry *registry,
    return FALSE;
  }
  
@@ -1132,17 +1101,18 @@ index 6a4c8848..fcc2d261 100644
    DBusConnection *old_owner_conn;
    BusClientPolicy *policy;
    BusService *service;
-   BusActivation  *activation;
+@@ -393,8 +394,9 @@ bus_registry_acquire_service (BusRegistry      *registry,
    BusSELinuxID *sid;
    BusOwner *primary_owner;
+   int limit;
 +  BusResult res;
-  
 -  retval = FALSE;
 +  retval = BUS_RESULT_FALSE;
  
    if (!_dbus_validate_bus_name (service_name, 0,
                                  _dbus_string_get_length (service_name)))
-@@ -466,7 +468,8 @@ bus_registry_acquire_service (BusRegistry      *registry,
+@@ -467,7 +469,8 @@ bus_registry_acquire_service (BusRegistry      *registry,
                                              _dbus_string_get_const_data (service_name), error))
      goto out;
    
@@ -1152,7 +1122,7 @@ index 6a4c8848..fcc2d261 100644
      {
        dbus_set_error (error, DBUS_ERROR_ACCESS_DENIED,
                        "Connection \"%s\" is not allowed to own the service \"%s\" due "
-@@ -477,6 +480,11 @@ bus_registry_acquire_service (BusRegistry      *registry,
+@@ -478,6 +481,11 @@ bus_registry_acquire_service (BusRegistry      *registry,
                        _dbus_string_get_const_data (service_name));
        goto out;
      }
@@ -1162,9 +1132,9 @@ index 6a4c8848..fcc2d261 100644
 +      goto out;
 +    }
  
-   if (bus_connection_get_n_services_owned (connection) >=
-       bus_context_get_max_services_per_connection (registry->context))
-@@ -593,11 +601,13 @@ bus_registry_acquire_service (BusRegistry      *registry,
+   limit = bus_context_get_max_services_per_connection (registry->context);
+@@ -603,11 +611,13 @@ bus_registry_acquire_service (BusRegistry      *registry,
      }
  
    activation = bus_context_get_activation (registry->context);
@@ -1183,7 +1153,7 @@ index 6a4c8848..fcc2d261 100644
   out:
    return retval;
 diff --git a/bus/services.h b/bus/services.h
-index 056dd9fa..3df3dd7d 100644
+index 056dd9f..3df3dd7 100644
 --- a/bus/services.h
 +++ b/bus/services.h
 @@ -50,8 +50,9 @@ void         bus_registry_foreach         (BusRegistry                 *registry
@@ -1198,7 +1168,7 @@ index 056dd9fa..3df3dd7d 100644
                                             dbus_uint32_t                flags,
                                             dbus_uint32_t               *result,
 diff --git a/bus/stats.c b/bus/stats.c
-index dace0e29..aab0e5c9 100644
+index 1582255..4ba72d6 100644
 --- a/bus/stats.c
 +++ b/bus/stats.c
 @@ -36,7 +36,7 @@
@@ -1210,16 +1180,7 @@ index dace0e29..aab0e5c9 100644
  bus_stats_handle_get_stats (DBusConnection *connection,
                              BusTransaction *transaction,
                              DBusMessage    *message,
-@@ -52,7 +52,7 @@ bus_stats_handle_get_stats (DBusConnection *connection,
-   _DBUS_ASSERT_ERROR_IS_CLEAR (error);
-   if (!bus_driver_check_message_is_for_us (message, error))
--    return FALSE;
-+    return BUS_RESULT_FALSE;
-   context = bus_transaction_get_context (transaction);
-   connections = bus_context_get_connections (context);
-@@ -107,17 +107,17 @@ bus_stats_handle_get_stats (DBusConnection *connection,
+@@ -104,17 +104,17 @@ bus_stats_handle_get_stats (DBusConnection *connection,
      goto oom;
  
    dbus_message_unref (reply);
@@ -1240,33 +1201,7 @@ index dace0e29..aab0e5c9 100644
  bus_stats_handle_get_connection_stats (DBusConnection *caller_connection,
                                         BusTransaction *transaction,
                                         DBusMessage    *message,
-@@ -137,14 +137,14 @@ bus_stats_handle_get_connection_stats (DBusConnection *caller_connection,
-   _DBUS_ASSERT_ERROR_IS_CLEAR (error);
-   if (!bus_driver_check_message_is_for_us (message, error))
--    return FALSE;
-+    return BUS_RESULT_FALSE;
-   registry = bus_connection_get_registry (caller_connection);
-   if (! dbus_message_get_args (message, error,
-                                DBUS_TYPE_STRING, &bus_name,
-                                DBUS_TYPE_INVALID))
--      return FALSE;
-+      return BUS_RESULT_FALSE;
-   _dbus_string_init_const (&bus_name_str, bus_name);
-   service = bus_registry_lookup (registry, &bus_name_str);
-@@ -153,7 +153,7 @@ bus_stats_handle_get_connection_stats (DBusConnection *caller_connection,
-     {
-       dbus_set_error (error, DBUS_ERROR_NAME_HAS_NO_OWNER,
-                       "Bus name '%s' has no owner", bus_name);
--      return FALSE;
-+      return BUS_RESULT_FALSE;
-     }
-   stats_connection = bus_service_get_primary_owners_connection (service);
-@@ -215,18 +215,18 @@ bus_stats_handle_get_connection_stats (DBusConnection *caller_connection,
+@@ -209,7 +209,7 @@ bus_stats_handle_get_connection_stats (DBusConnection *caller_connection,
      goto oom;
  
    dbus_message_unref (reply);
@@ -1274,10 +1209,11 @@ index dace0e29..aab0e5c9 100644
 +  return BUS_RESULT_TRUE;
  
  oom:
+   BUS_SET_OOM (error);
+@@ -218,11 +218,11 @@ failed:
    if (reply != NULL)
      dbus_message_unref (reply);
  
-   BUS_SET_OOM (error);
 -  return FALSE;
 +  return BUS_RESULT_FALSE;
  }
@@ -1288,7 +1224,7 @@ index dace0e29..aab0e5c9 100644
  bus_stats_handle_get_all_match_rules (DBusConnection *caller_connection,
                                        BusTransaction *transaction,
                                        DBusMessage    *message,
-@@ -250,7 +250,7 @@ bus_stats_handle_get_all_match_rules (DBusConnection *caller_connection,
+@@ -246,7 +246,7 @@ bus_stats_handle_get_all_match_rules (DBusConnection *caller_connection,
    matchmaker = bus_context_get_matchmaker (context);
  
    if (!bus_registry_list_services (registry, &services, &services_len))
@@ -1297,7 +1233,7 @@ index dace0e29..aab0e5c9 100644
  
    reply = dbus_message_new_method_return (message);
    if (reply == NULL)
-@@ -329,7 +329,7 @@ bus_stats_handle_get_all_match_rules (DBusConnection *caller_connection,
+@@ -325,7 +325,7 @@ bus_stats_handle_get_all_match_rules (DBusConnection *caller_connection,
  
    dbus_message_unref (reply);
    dbus_free_string_array (services);
@@ -1306,7 +1242,7 @@ index dace0e29..aab0e5c9 100644
  
  oom:
    if (reply != NULL)
-@@ -338,7 +338,7 @@ oom:
+@@ -334,7 +334,7 @@ oom:
    dbus_free_string_array (services);
  
    BUS_SET_OOM (error);
@@ -1316,7 +1252,7 @@ index dace0e29..aab0e5c9 100644
  
  #endif
 diff --git a/bus/stats.h b/bus/stats.h
-index dcb022c4..683fa175 100644
+index dcb022c..683fa17 100644
 --- a/bus/stats.h
 +++ b/bus/stats.h
 @@ -25,17 +25,17 @@
@@ -1340,6 +1276,3 @@ index dcb022c4..683fa175 100644
                                                    BusTransaction *transaction,
                                                    DBusMessage    *message,
                                                    DBusError      *error);
--- 
-2.14.3
-
index d30b2db..6cc7c19 100644 (file)
@@ -26,14 +26,14 @@ Change-Id: Ifb4a160bf6e0638404e0295a2e4fa3077efd881c
 Signed-off-by: Jacek Bukarewicz <j.bukarewicz@samsung.com>
 
 Cherry picked from e8610297cf7031e94eb314a2e8c11246f4405403 by Jose Bollo
+
+Updated for dbus 1.12.10 by Scott Murray.
+
 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
----
- bus/session.conf.in | 32 ++++++++++++++++++++++++++------
- bus/system.conf.in  | 19 +++++++++++++++----
- 2 files changed, 41 insertions(+), 10 deletions(-)
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
 
 diff --git a/bus/session.conf.in b/bus/session.conf.in
-index affa7f1d..157dfb4d 100644
+index affa7f1..157dfb4 100644
 --- a/bus/session.conf.in
 +++ b/bus/session.conf.in
 @@ -27,12 +27,32 @@
@@ -76,10 +76,10 @@ index affa7f1d..157dfb4d 100644
  
    <!-- Include legacy configuration location -->
 diff --git a/bus/system.conf.in b/bus/system.conf.in
-index 014f67ee..ebbd468a 100644
+index f139b55..19d0c04 100644
 --- a/bus/system.conf.in
 +++ b/bus/system.conf.in
-@@ -50,23 +50,34 @@
+@@ -50,17 +50,20 @@
      <deny own="*"/>
      <deny send_type="method_call"/>
  
@@ -104,9 +104,10 @@ index 014f67ee..ebbd468a 100644
  
      <!-- Allow anyone to talk to the message bus -->
      <allow send_destination="org.freedesktop.DBus"
-            send_interface="org.freedesktop.DBus" />
-     <allow send_destination="org.freedesktop.DBus"
+@@ -69,6 +72,14 @@
             send_interface="org.freedesktop.DBus.Introspectable"/>
+     <allow send_destination="org.freedesktop.DBus"
+            send_interface="org.freedesktop.DBus.Properties"/>
 +    <!-- If there is a need specific bus services could be protected by Cynara as well.
 +         However, this can lead to deadlock during the boot process when such check is made and
 +         Cynara is not yet activated (systemd calls protected method synchronously,
@@ -118,6 +119,3 @@ index 014f67ee..ebbd468a 100644
      <!-- But disallow some specific bus services -->
      <deny send_destination="org.freedesktop.DBus"
            send_interface="org.freedesktop.DBus"
--- 
-2.14.3
-
@@ -1,4 +1,4 @@
-require ${COREBASE}/meta/recipes-core/dbus/dbus_1.10.20.bb
+require ${COREBASE}/meta/recipes-core/dbus/dbus_1.12.10.bb
 
 FILESEXTRAPATHS_prepend := "${COREBASE}/meta/recipes-core/dbus/dbus:${THISDIR}/dbus-cynara:"
 S = "${WORKDIR}/dbus-${PV}"
index 78df8ec..2923c5c 100644 (file)
@@ -1,4 +1,5 @@
 FILESEXTRAPATHS_prepend := "${THISDIR}/dbus-cynara:"
+
 SRC_URI_append = "\
    file://0001-Integration-of-Cynara-asynchronous-security-checks.patch \
    file://0002-Disable-message-dispatching-when-send-rule-result-is.patch \
@@ -1,16 +1,7 @@
 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
 
-##################################################################################
-# What follows is temporary.
-# This patch is still needed for systemd 234 but is normally upstreamed
-# and thus should be removed in later versions.
-##################################################################################
-SRC_URI_append_with-lsm-smack = "\
-    file://0001-Switch-Smack-label-earlier.patch \
-"
-
 # Ensures systemd runs with label "System"
-EXTRA_OECONF_append_with-lsm-smack = " --with-smack-run-label=System"
+EXTRA_OEMESON_append_with-lsm-smack = " -Dsmack-run-label=System"
 
 ##################################################################################
 # Maintaining trivial, non-upstreamable configuration changes as patches
diff --git a/meta-security/recipes-devtools/e2fsprogs/e2fsprogs.inc b/meta-security/recipes-devtools/e2fsprogs/e2fsprogs.inc
deleted file mode 100644 (file)
index 09e4ea5..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Ext2 Filesystem Utilities"
-DESCRIPTION = "The Ext2 Filesystem Utilities (e2fsprogs) contain all of the standard utilities for creating, \
-fixing, configuring , and debugging ext2 filesystems."
-HOMEPAGE = "http://e2fsprogs.sourceforge.net/"
-
-LICENSE = "GPLv2 & LGPLv2 & BSD & MIT"
-LICENSE_e2fsprogs-e2fsck = "GPLv2"
-LICENSE_e2fsprogs-mke2fs = "GPLv2"
-LICENSE_e2fsprogs-fsck = "GPLv2"
-LICENSE_e2fsprogs-tune2fs = "GPLv2"
-LICENSE_e2fsprogs-badblocks = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b48f21d765b875bd10400975d12c1ca2 \
-                      file://lib/ext2fs/ext2fs.h;beginline=1;endline=9;md5=596a8dedcb4e731c6b21c7a46fba6bef \
-                      file://lib/e2p/e2p.h;beginline=1;endline=7;md5=8a74ade8f9d65095d70ef2d4bf48e36a \
-                      file://lib/uuid/uuid.h.in;beginline=1;endline=32;md5=dbb8079e114a5f841934b99e59c8820a \
-                      file://lib/uuid/COPYING;md5=58dcd8452651fc8b07d1f65ce07ca8af \
-                      file://lib/et/et_name.c;beginline=1;endline=11;md5=ead236447dac7b980dbc5b4804d8c836 \
-                      file://lib/ss/ss.h;beginline=1;endline=20;md5=6e89ad47da6e75fecd2b5e0e81e1d4a6"
-SECTION = "base"
-DEPENDS = "util-linux"
-
-SRC_URI = "git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git"
-S = "${WORKDIR}/git"
-
-inherit autotools gettext texinfo pkgconfig multilib_header update-alternatives ptest
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-security/recipes-devtools/e2fsprogs/e2fsprogs/acinclude.m4 b/meta-security/recipes-devtools/e2fsprogs/e2fsprogs/acinclude.m4
deleted file mode 100644 (file)
index c0bd7db..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-# Extracted from the package's shipped aclocal.m4. Custom macros should be in
-# acinclude.m4 so running aclocal doesn't blow them away.
-#
-# Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-# from http://autoconf-archive.cryp.to/ax_tls.html
-#
-# This was licensed under the GPL with the following exception:
-#
-# As a special exception, the respective Autoconf Macro's copyright
-# owner gives unlimited permission to copy, distribute and modify the
-# configure scripts that are the output of Autoconf when processing
-# the Macro. You need not follow the terms of the GNU General Public
-# License when using or distributing such scripts, even though
-# portions of the text of the Macro appear in them. The GNU General
-# Public License (GPL) does govern all other use of the material that
-# constitutes the Autoconf Macro.
-#
-# This special exception to the GPL applies to versions of the
-# Autoconf Macro released by the Autoconf Macro Archive. When you make
-# and distribute a modified version of the Autoconf Macro, you may
-# extend this special exception to the GPL to apply to your modified
-# version as well.
-#
-AC_DEFUN([AX_TLS], [
-  AC_MSG_CHECKING(for thread local storage (TLS) class)
-  AC_CACHE_VAL(ac_cv_tls, [
-    ax_tls_keywords="__thread __declspec(thread) none"
-    for ax_tls_keyword in $ax_tls_keywords; do
-       case $ax_tls_keyword in
-          none) ac_cv_tls=none ; break ;;
-          *)
-             AC_TRY_COMPILE(
-                [#include <stdlib.h>
-                 static void
-                 foo(void) {
-                 static ] $ax_tls_keyword [ int bar;
-                 exit(1);
-                 }],
-                 [],
-                 [ac_cv_tls=$ax_tls_keyword ; break],
-                 ac_cv_tls=none
-             )
-          esac
-    done
-])
-
-  if test "$ac_cv_tls" != "none"; then
-    dnl AC_DEFINE([TLS], [], [If the compiler supports a TLS storage class define it to that here])
-    AC_DEFINE_UNQUOTED([TLS], $ac_cv_tls, [If the compiler supports a TLS storage class define it to that here])
-  fi
-  AC_MSG_RESULT($ac_cv_tls)
-])
-
-# ===========================================================================
-#         http://www.nongnu.org/autoconf-archive/check_gnu_make.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-#   CHECK_GNU_MAKE()
-#
-# DESCRIPTION
-#
-#   This macro searches for a GNU version of make. If a match is found, the
-#   makefile variable `ifGNUmake' is set to the empty string, otherwise it
-#   is set to "#". This is useful for including a special features in a
-#   Makefile, which cannot be handled by other versions of make. The
-#   variable _cv_gnu_make_command is set to the command to invoke GNU make
-#   if it exists, the empty string otherwise.
-#
-#   Here is an example of its use:
-#
-#   Makefile.in might contain:
-#
-#       # A failsafe way of putting a dependency rule into a makefile
-#       $(DEPEND):
-#               $(CC) -MM $(srcdir)/*.c > $(DEPEND)
-#
-#       @ifGNUmake@ ifeq ($(DEPEND),$(wildcard $(DEPEND)))
-#       @ifGNUmake@ include $(DEPEND)
-#       @ifGNUmake@ endif
-#
-#   Then configure.in would normally contain:
-#
-#       CHECK_GNU_MAKE()
-#       AC_OUTPUT(Makefile)
-#
-#   Then perhaps to cause gnu make to override any other make, we could do
-#   something like this (note that GNU make always looks for GNUmakefile
-#   first):
-#
-#       if  ! test x$_cv_gnu_make_command = x ; then
-#               mv Makefile GNUmakefile
-#               echo .DEFAULT: > Makefile ;
-#               echo \  $_cv_gnu_make_command \$@ >> Makefile;
-#       fi
-#
-#   Then, if any (well almost any) other make is called, and GNU make also
-#   exists, then the other make wraps the GNU make.
-#
-# LICENSE
-#
-#   Copyright (c) 2008 John Darrington <j.darrington@elvis.murdoch.edu.au>
-#
-#   Copying and distribution of this file, with or without modification, are
-#   permitted in any medium without royalty provided the copyright notice
-#   and this notice are preserved.
-#
-# Note: Modified by Ted Ts'o to add @ifNotGNUMake@
-
-AC_DEFUN(
-        [CHECK_GNU_MAKE], [ AC_CACHE_CHECK( for GNU make,_cv_gnu_make_command,
-                _cv_gnu_make_command='' ;
-dnl Search all the common names for GNU make
-                for a in "$MAKE" make gmake gnumake ; do
-                        if test -z "$a" ; then continue ; fi ;
-                        if  ( sh -c "$a --version" 2> /dev/null | grep GNU  2>&1 > /dev/null ) ;  then
-                                _cv_gnu_make_command=$a ;
-                                break;
-                        fi
-                done ;
-        ) ;
-dnl If there was a GNU version, then set @ifGNUmake@ to the empty string, '#' otherwise
-        if test  "x$_cv_gnu_make_command" != "x"  ; then
-                ifGNUmake='' ;
-                ifNotGNUmake='#' ;
-        else
-                ifGNUmake='#' ;
-                ifNotGNUmake='' ;
-                AC_MSG_RESULT("Not found");
-        fi
-        AC_SUBST(ifGNUmake)
-        AC_SUBST(ifNotGNUmake)
-] )
diff --git a/meta-security/recipes-devtools/e2fsprogs/e2fsprogs/mkdir.patch b/meta-security/recipes-devtools/e2fsprogs/e2fsprogs/mkdir.patch
deleted file mode 100644 (file)
index 2a3aeff..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Mei Lei <lei.mei@intel.com>
-
-diff --git a/configure.ac b/configure.ac
-index c1fe224..f5ac628 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1374,7 +1374,8 @@ if test -n "$WITH_DIET_LIBC" ; then
-       INCLUDES="$INCLUDES -D_REENTRANT"
- fi
- AC_SUBST(INCLUDES)
--AM_MKINSTALLDIRS
-+MKINSTALLDIRS="mkdir -p"
-+AC_SUBST(MKINSTALLDIRS)
- dnl
- dnl Build CFLAGS
- dnl
diff --git a/meta-security/recipes-devtools/e2fsprogs/e2fsprogs/ptest.patch b/meta-security/recipes-devtools/e2fsprogs/e2fsprogs/ptest.patch
deleted file mode 100644 (file)
index ef1ce58..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-diff --git a/tests/Makefile.in b/tests/Makefile.in
-index 60cf655..ce220f1 100644
---- a/tests/Makefile.in
-+++ b/tests/Makefile.in
-@@ -18,7 +18,7 @@ test_one: $(srcdir)/test_one.in Makefile mke2fs.conf
-       @echo "#!/bin/sh" > test_one
-       @echo "HTREE=y" >> test_one
-       @echo "QUOTA=y" >> test_one
--      @echo "SRCDIR=@srcdir@" >> test_one
-+      @echo "SRCDIR=/usr/lib/e2fsprogs/ptest/test" >> test_one
-       @echo "DIFF_OPTS=@UNI_DIFF_OPTS@" >> test_one
-       @cat $(srcdir)/test_one.in >> test_one
-       @chmod +x test_one
-@@ -26,7 +26,7 @@ test_one: $(srcdir)/test_one.in Makefile mke2fs.conf
- test_script: test_one test_script.in Makefile mke2fs.conf
-       @echo "Creating test_script..."
-       @echo "#!/bin/sh" > test_script
--      @echo "SRCDIR=@srcdir@" >> test_script
-+      @echo "SRCDIR=/usr/lib/e2fsprogs/ptest/test" >> test_script
-       @cat $(srcdir)/test_script.in >> test_script
-       @chmod +x test_script
-diff --git a/tests/test_config b/tests/test_config
-index 7f39157..c815a44 100644
---- a/tests/test_config
-+++ b/tests/test_config
-@@ -3,24 +3,24 @@
- #
- unset LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME PAGER
--FSCK="$USE_VALGRIND ../e2fsck/e2fsck"
--MKE2FS="$USE_VALGRIND ../misc/mke2fs"
--DUMPE2FS="$USE_VALGRIND ../misc/dumpe2fs"
--TUNE2FS="$USE_VALGRIND ../misc/tune2fs"
--CHATTR="$USE_VALGRIND../misc/chattr"
--LSATTR="$USE_VALGRIND ../misc/lsattr"
--E2IMAGE="$USE_VALGRIND ../misc/e2image"
--E2IMAGE_EXE="../misc/e2image"
--DEBUGFS="$USE_VALGRIND ../debugfs/debugfs"
--DEBUGFS_EXE="../debugfs/debugfs"
--TEST_BITS="../debugfs/debugfs"
--RESIZE2FS_EXE="../resize/resize2fs"
-+FSCK="$USE_VALGRIND e2fsck"
-+MKE2FS="$USE_VALGRIND mke2fs"
-+DUMPE2FS="$USE_VALGRIND dumpe2fs"
-+TUNE2FS="$USE_VALGRIND tune2fs"
-+CHATTR="$USE_VALGRIND chattr"
-+LSATTR="$USE_VALGRIND lsattr"
-+E2IMAGE="$USE_VALGRIND e2image"
-+E2IMAGE_EXE="/sbin/e2image"
-+DEBUGFS="$USE_VALGRIND debugfs"
-+DEBUGFS_EXE="/sbin/debugfs"
-+TEST_BITS="/sbin/debugfs"
-+RESIZE2FS_EXE="/sbin/resize2fs"
- RESIZE2FS="$USE_VALGRIND $RESIZE2FS_EXE"
--E2UNDO_EXE="../misc/e2undo"
-+E2UNDO_EXE="/sbin/e2undo"
- E2UNDO="$USE_VALGRIND $E2UNDO_EXE"
--TEST_REL=../tests/progs/test_rel
--TEST_ICOUNT=../tests/progs/test_icount
--CRCSUM=../tests/progs/crcsum
-+TEST_REL=./progs/test_rel
-+TEST_ICOUNT=./progs/test_icount
-+CRCSUM=./progs/crcsum
- CLEAN_OUTPUT="sed -f $cmd_dir/filter.sed"
- LD_LIBRARY_PATH=../lib:../lib/ext2fs:../lib/e2p:../lib/et:../lib/ss:${LD_LIBRARY_PATH}
- DYLD_LIBRARY_PATH=../lib:../lib/ext2fs:../lib/e2p:../lib/et:../lib/ss:${DYLD_LIBRARY_PATH}
diff --git a/meta-security/recipes-devtools/e2fsprogs/e2fsprogs/quiet-debugfs.patch b/meta-security/recipes-devtools/e2fsprogs/e2fsprogs/quiet-debugfs.patch
deleted file mode 100644 (file)
index 830e9d5..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-When executing a script don't echo every command, as we do this for entire
-filesystems at rootfs time.
-
-Upstream-Status: Inappropriate
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-diff --git a/debugfs/debugfs.c b/debugfs/debugfs.c
-index 5590295..ac57292 100644
---- a/debugfs/debugfs.c
-+++ b/debugfs/debugfs.c
-@@ -2378,7 +2378,7 @@ static int source_file(const char *cmd_file, int ss_idx)
-               cp = strchr(buf, '\r');
-               if (cp)
-                       *cp = 0;
--              printf("debugfs: %s\n", buf);
-+              /*printf("debugfs: %s\n", buf);*/
-               retval = ss_execute_line(ss_idx, buf);
-               if (retval) {
-                       ss_perror(ss_idx, retval, buf);
diff --git a/meta-security/recipes-devtools/e2fsprogs/e2fsprogs/remove.ldconfig.call.patch b/meta-security/recipes-devtools/e2fsprogs/e2fsprogs/remove.ldconfig.call.patch
deleted file mode 100644 (file)
index f3e6eb7..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-From b139e03ac2f72e644e547c7ee9b1514383af4d97 Mon Sep 17 00:00:00 2001
-From: Andrei Dinu <andrei.adrianx.dinu@intel.com>
-Date: Wed, 30 Jan 2013 15:22:04 +0200
-Subject: [PATCH] When /etc/ld.so.cache is writeable by user running bitbake
- then it creates invalid cache (in my case libstdc++.so
- cannot be found after building zlib(-native) and I have to
- call touch */libstdc++.so && /sbin/ldconfig to fix it.
-
-So remove ldconfig call from make install-libs
-
-Patch authored by Martin Jansa.
-
-Upstream-Status: Inappropriate [disable feature]
-
-Signed-off-by: Scott Garman <scott.a.garman@intel.com>
-Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com>
----
- lib/Makefile.elf-lib |    3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/lib/Makefile.elf-lib b/lib/Makefile.elf-lib
-index 78479d3..4a4a5ac 100644
---- a/lib/Makefile.elf-lib
-+++ b/lib/Makefile.elf-lib
-@@ -50,8 +50,6 @@ install-shlibs install:: $(ELF_LIB) installdirs-elf-lib $(DEP_INSTALL_SYMLINK)
-       $(E) "  SYMLINK $(libdir)/$(ELF_IMAGE).so"
-       $(Q) $(INSTALL_SYMLINK) $(ELF_INSTALL_DIR)/$(ELF_SONAME) \
-               $(libdir)/$(ELF_IMAGE).so $(DESTDIR)
--      $(E) "  LDCONFIG"
--      $(Q) -$(LDCONFIG)
- install-strip: install
-       $(E) "  STRIP-LIB $(ELF_INSTALL_DIR)/$(ELF_LIB)"
-@@ -67,7 +65,6 @@ uninstall-shlibs uninstall::
-       $(RM) -f $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_LIB) \
-               $(DESTDIR)$(ELF_INSTALL_DIR)/$(ELF_SONAME) \
-               $(DESTDIR)$(libdir)/$(ELF_IMAGE).so
--      -$(LDCONFIG)
- clean::
-       $(RM) -rf elfshared
--- 
-1.7.9.5
-
diff --git a/meta-security/recipes-devtools/e2fsprogs/e2fsprogs/run-ptest b/meta-security/recipes-devtools/e2fsprogs/e2fsprogs/run-ptest
deleted file mode 100644 (file)
index 1ac2513..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-cd ./test
-./test_script &>../test.log
-if [ $? -eq 0 ]
-then
-       echo "PASS: e2fsprogs"
-       rm test.log
-else
-       echo "FAIL: e2fsprogs"
-fi
diff --git a/meta-security/recipes-devtools/e2fsprogs/e2fsprogs_%.bbappend b/meta-security/recipes-devtools/e2fsprogs/e2fsprogs_%.bbappend
deleted file mode 100644 (file)
index 35dd361..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-
-# Applying this patch is optional. Only some versions
-# of e2fsprogs need it. So try to apply it, but if it fails,
-# continue and hope the patch wasn't needed. If it is needed
-# and got skipped, the oeqa Smack tests will catch the failure.
-SRC_URI += "file://ext_attr.c-fix-adding-multiple-xattrs-during-image-c.patch;apply=no"
-
-do_patch[postfuncs] += "patch_xattr_support"
-patch_xattr_support () {
-    cd ${S}
-    cp lib/ext2fs/ext_attr.c lib/ext2fs/ext_attr.c.orig
-    patch lib/ext2fs/ext_attr.c <${WORKDIR}/ext_attr.c-fix-adding-multiple-xattrs-during-image-c.patch && rm lib/ext2fs/ext_attr.c.orig || mv lib/ext2fs/ext_attr.c.orig lib/ext2fs/ext_attr.c
-}
diff --git a/meta-security/recipes-devtools/e2fsprogs/e2fsprogs_git.bb b/meta-security/recipes-devtools/e2fsprogs/e2fsprogs_git.bb
deleted file mode 100644 (file)
index bc2d201..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-COREDIR = "${COREBASE}/meta/recipes-devtools/e2fsprogs"
-
-# This recipe is a copy of a e2fsprogs 1.42.99+1.43 from OE-core master and
-# only meant to be used when the current OE-core does not have that version yet.
-python () {
-    import os
-    upstream = os.path.join(d.getVar('COREDIR', True), 'e2fsprogs_1.42.9.bb')
-    if not os.path.exists(upstream):
-        raise bb.parse.SkipRecipe("This recipe replaces e2fsprogs 1.42.9 in OE-core. e2fsprogs from OE-core is something else and thus either recent enough to have xattr support or (less likely) something unexpected.")
-}
-
-
-require e2fsprogs.inc
-
-SRC_URI += "file://acinclude.m4 \
-            file://remove.ldconfig.call.patch \
-            file://quiet-debugfs.patch \
-            file://run-ptest \
-            file://ptest.patch \
-            file://mkdir.patch \
-"
-
-SRCREV = "0f26747167cc9d82df849b0aad387bf824f04544"
-PV = "1.42.99+1.43+git${SRCPV}"
-UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+\.\d+(\.\d+)*)$"
-
-EXTRA_OECONF += "--libdir=${base_libdir} --sbindir=${base_sbindir} \
-                --enable-elf-shlibs --disable-libuuid --disable-uuidd \
-                --disable-libblkid --enable-verbose-makecmds"
-
-EXTRA_OECONF_darwin = "--libdir=${base_libdir} --sbindir=${base_sbindir} --enable-bsd-shlibs"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[fuse] = '--enable-fuse2fs,--disable-fuse2fs,fuse'
-
-do_configure_prepend () {
-       cp ${WORKDIR}/acinclude.m4 ${S}/
-}
-
-do_install () {
-       oe_runmake 'DESTDIR=${D}' install
-       oe_runmake 'DESTDIR=${D}' install-libs
-       # We use blkid from util-linux now so remove from here
-       rm -f ${D}${base_libdir}/libblkid*
-       rm -rf ${D}${includedir}/blkid
-       rm -f ${D}${base_libdir}/pkgconfig/blkid.pc
-       rm -f ${D}${base_sbindir}/blkid
-       rm -f ${D}${base_sbindir}/fsck
-       rm -f ${D}${base_sbindir}/findfs
-
-       # e2initrd_helper and the pkgconfig files belong in libdir
-       if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then
-               install -d ${D}${libdir}
-               mv ${D}${base_libdir}/e2initrd_helper ${D}${libdir}
-               mv ${D}${base_libdir}/pkgconfig ${D}${libdir}
-       fi
-
-       oe_multilib_header ext2fs/ext2_types.h
-       install -d ${D}${base_bindir}
-       mv ${D}${bindir}/chattr ${D}${base_bindir}/chattr.e2fsprogs
-
-       install -v -m 755 ${S}/contrib/populate-extfs.sh ${D}${base_sbindir}/
-}
-
-do_install_append_class-target() {
-       # Clean host path in compile_et, mk_cmds
-       sed -i -e "s,ET_DIR=\"${S}/lib/et\",ET_DIR=\"${datadir}/et\",g" ${D}${bindir}/compile_et
-       sed -i -e "s,SS_DIR=\"${S}/lib/ss\",SS_DIR=\"${datadir}/ss\",g" ${D}${bindir}/mk_cmds
-}
-
-RDEPENDS_e2fsprogs = "e2fsprogs-badblocks"
-RRECOMMENDS_e2fsprogs = "e2fsprogs-mke2fs e2fsprogs-e2fsck"
-
-PACKAGES =+ "e2fsprogs-e2fsck e2fsprogs-mke2fs e2fsprogs-tune2fs e2fsprogs-badblocks e2fsprogs-resize2fs"
-PACKAGES =+ "libcomerr libss libe2p libext2fs"
-
-FILES_e2fsprogs-resize2fs = "${base_sbindir}/resize2fs*"
-FILES_e2fsprogs-e2fsck = "${base_sbindir}/e2fsck ${base_sbindir}/fsck.ext*"
-FILES_e2fsprogs-mke2fs = "${base_sbindir}/mke2fs ${base_sbindir}/mkfs.ext* ${sysconfdir}/mke2fs.conf"
-FILES_e2fsprogs-tune2fs = "${base_sbindir}/tune2fs ${base_sbindir}/e2label"
-FILES_e2fsprogs-badblocks = "${base_sbindir}/badblocks"
-FILES_libcomerr = "${base_libdir}/libcom_err.so.*"
-FILES_libss = "${base_libdir}/libss.so.*"
-FILES_libe2p = "${base_libdir}/libe2p.so.*"
-FILES_libext2fs = "${libdir}/e2initrd_helper ${base_libdir}/libext2fs.so.*"
-FILES_${PN}-dev += "${datadir}/*/*.awk ${datadir}/*/*.sed ${base_libdir}/*.so"
-
-ALTERNATIVE_${PN} = "chattr"
-ALTERNATIVE_PRIORITY = "100"
-ALTERNATIVE_LINK_NAME[chattr] = "${base_bindir}/chattr"
-ALTERNATIVE_TARGET[chattr] = "${base_bindir}/chattr.e2fsprogs"
-
-ALTERNATIVE_${PN}-doc = "fsck.8"
-ALTERNATIVE_LINK_NAME[fsck.8] = "${mandir}/man8/fsck.8"
-
-RDEPENDS_${PN}-ptest += "${PN} ${PN}-tune2fs coreutils procps bash"
-
-do_compile_ptest() {
-       oe_runmake -C ${B}/tests
-}
-
-do_install_ptest() {
-       cp -a ${B}/tests ${D}${PTEST_PATH}/test
-       cp -a ${S}/tests/* ${D}${PTEST_PATH}/test
-       sed -e 's!../e2fsck/e2fsck!e2fsck!g' -i ${D}${PTEST_PATH}/test/*/expect*
-}
diff --git a/meta-security/recipes-devtools/e2fsprogs/files/ext_attr.c-fix-adding-multiple-xattrs-during-image-c.patch b/meta-security/recipes-devtools/e2fsprogs/files/ext_attr.c-fix-adding-multiple-xattrs-during-image-c.patch
deleted file mode 100644 (file)
index 67b8b68..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-From 3b2b0922e031628f313f5480c4f1f9413c6656bf Mon Sep 17 00:00:00 2001
-From: Richard Purdie <richard.purdie@linuxfoundation.org>
-Date: Wed, 10 Feb 2016 15:51:43 +0100
-Subject: [PATCH] ext_attr.c: fix adding multiple xattrs during image creation
-
-http://www.nongnu.org/ext2-doc/ext2.html#CONTRIB-EXTENDED-ATTRIBUTES
-contains the small snippet that "The entry descriptors are sorted by
-attribute name, so that two extended attribute blocks can be compared
-efficiently".
-
-The libext2fs code in e2fsprogs needs to be taught about this minor
-sorting detail. Otherwise creating an image with "mkfs.ext -d" from a
-filesystem that reports xattrs in listxattr() in an order that does
-not match the expected order will lead to an image where listxattr()
-reports all xattrs, but reading some values fails with ENODATA.
-
-[Patch from RP, commit message from Patrick and RP]
-
-Upstream-Status: Pending [https://bugzilla.yoctoproject.org/show_bug.cgi?id=8992]
----
- lib/ext2fs/ext_attr.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/lib/ext2fs/ext_attr.c b/lib/ext2fs/ext_attr.c
-index 0a4f8c0..be8f9c3 100644
---- a/lib/ext2fs/ext_attr.c
-+++ b/lib/ext2fs/ext_attr.c
-@@ -258,6 +258,7 @@ static struct ea_name_index ea_names[] = {
- static int attr_compare(const void *a, const void *b)
- {
-       const struct ext2_xattr *xa = a, *xb = b;
-+      size_t len;
-       if (xa->name == NULL)
-               return +1;
-@@ -267,7 +268,11 @@ static int attr_compare(const void *a, const void *b)
-               return -1;
-       else if (!strcmp(xb->name, "system.data"))
-               return +1;
--      return 0;
-+      len = strlen(xa->name) - strlen(xb->name);
-+      if (len)
-+              return len;
-+
-+      return strcmp(xa->name, xb->name);
- }
- static const char *find_ea_prefix(int index)
--- 
-2.1.4
-
index 11387b9..e1d0cfa 100644 (file)
@@ -1,7 +1,7 @@
-From 3d387993b5a4283e8aebd8e777b2ccd45d233959 Mon Sep 17 00:00:00 2001
+From 8bf90bf3e7a821dbd3b7029d87aa592eec6f1754 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jos=C3=A9=20Bollo?= <jose.bollo@iot.bzh>
 Date: Thu, 25 Jan 2018 12:00:18 +0100
-Subject: [PATCH 1/6] Add fallthrough tags
+Subject: [PATCH] Add fallthrough tags
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -12,6 +12,7 @@ to the next after some processing.
 
 Change-Id: I420e3788a4c0a6d910a1214964c5480bbd12708c
 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
+
 ---
  src/admin/api/admin-api.cpp         | 1 +
  src/client-async/logic/Logic.cpp    | 1 +
@@ -54,6 +55,3 @@ index b1ca4f7..f4394e5 100644
          default:
              return true;
      }
--- 
-2.14.3
-
diff --git a/meta-security/recipes-security/cynara/cynara/0001-fix-fallthrough-in-cmdlineparser.patch b/meta-security/recipes-security/cynara/cynara/0001-fix-fallthrough-in-cmdlineparser.patch
new file mode 100644 (file)
index 0000000..40e11ce
--- /dev/null
@@ -0,0 +1,35 @@
+From ca28ec4a0781a1ab9ec5f015387436beb51adfc3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jan-Simon=20M=C3=B6ller?= <jsmoeller@linuxfoundation.org>
+Date: Fri, 19 Oct 2018 08:09:28 +0000
+Subject: [PATCH] fix fallthrough in cmdlineparser
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
+
+---
+ src/service/main/CmdlineParser.cpp | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/service/main/CmdlineParser.cpp b/src/service/main/CmdlineParser.cpp
+index ca56e39..e07ea52 100644
+--- a/src/service/main/CmdlineParser.cpp
++++ b/src/service/main/CmdlineParser.cpp
+@@ -112,13 +112,16 @@ struct CmdLineOptions handleCmdlineOptions(int argc, char * const *argv) {
+             case ':': // Missing argument
+                 ret.m_error = true;
+                 ret.m_exit = true;
++                /*@fallthrough@*/
+                 switch (optopt) {
+                     case CmdlineOpt::Mask:
+                     case CmdlineOpt::User:
+                     case CmdlineOpt::Group:
+                         printMissingArgument(execName, argv[optind - 1]);
+                         return ret;
++                /*@fallthrough@*/
+                 }
++                /*@fallthrough@*/
+                 //intentional fall to Unknown option
+             case '?': // Unknown option
+             default:
index 760a1c5..b8dbfac 100644 (file)
@@ -1,9 +1,10 @@
-From b18e66ce7f81c56e3a97ed075cb60d5a43b2e57c Mon Sep 17 00:00:00 2001
+From e2d8414b0d1c6c59baf1bb73e856e93aaabaf955 Mon Sep 17 00:00:00 2001
 From: Changhyeok Bae <changhyeok.bae@gmail.com>
 Date: Sun, 17 Dec 2017 15:28:28 +0000
-Subject: [PATCH 2/6] gcc-7 requires include <functional> for std::function
+Subject: [PATCH] gcc-7 requires include <functional> for std::function
 
 Signed-off-by: Changhyeok Bae <changhyeok.bae@gmail.com>
+
 ---
  src/common/types/PolicyBucket.h | 1 +
  src/cyad/AdminPolicyParser.h    | 1 +
@@ -33,6 +34,3 @@ index 53dde23..f38c194 100644
  
  #include <cyad/CynaraAdminPolicies.h>
  
--- 
-2.14.3
-
index 8c47c3b..1b105a0 100644 (file)
@@ -1,7 +1,7 @@
-From 6ad54c5e732e7cf0a29f29f48fa757e3e56d6860 Mon Sep 17 00:00:00 2001
+From fdcf2a68a4bfec588b1c6c969caa0be20961b807 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jos=C3=A9=20Bollo?= <jose.bollo@iot.bzh>
 Date: Thu, 25 Jan 2018 11:38:16 +0100
-Subject: [PATCH 3/6] Avoid warning when compiling without smack
+Subject: [PATCH] Avoid warning when compiling without smack
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -14,6 +14,7 @@ with the following message:
 
 Change-Id: Ie837cae81114d096f951ec0ee4ada4173fb60190
 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
+
 ---
  src/admin/CMakeLists.txt | 10 +++++-----
  1 file changed, 5 insertions(+), 5 deletions(-)
@@ -40,6 +41,3 @@ index e4f354a..38b8669 100644
  
  SET(CYNARA_LIB_CYNARA_ADMIN_PATH ${CYNARA_PATH}/admin)
  
--- 
-2.14.3
-
index 1645428..f19cdfb 100644 (file)
@@ -1,7 +1,7 @@
-From 2bd62bca98a8a8cf194fb2b68aed68d982f58520 Mon Sep 17 00:00:00 2001
+From 233fb8a93343c3c9c04914e1148ef5ab87a808a1 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jos=C3=A9=20Bollo?= <jose.bollo@iot.bzh>
 Date: Thu, 25 Jan 2018 12:52:39 +0100
-Subject: [PATCH 4/6] Fix mode of sockets
+Subject: [PATCH] Fix mode of sockets
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -10,6 +10,7 @@ Setting execution bit on the socket serves nothing.
 
 Change-Id: I2ca1ea8e0c369ee5517878e92073ace0e50f9f10
 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
+
 ---
  systemd/cynara-admin.socket | 2 +-
  systemd/cynara.socket       | 2 +-
@@ -39,6 +40,3 @@ index 9f2a870..fad2745 100644
  SmackLabelIPIn=*
  SmackLabelIPOut=@
  
--- 
-2.14.3
-
index b4a2d74..e954c7f 100644 (file)
@@ -1,7 +1,7 @@
-From d919b110a2fbccdce084c651f4d7d7de66f2f869 Mon Sep 17 00:00:00 2001
+From ebde8e9fdba7bc1c8152f7e45c551030a36ece82 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jos=C3=A9=20Bollo?= <jose.bollo@iot.bzh>
 Date: Thu, 25 Jan 2018 13:47:37 +0100
-Subject: [PATCH 5/6] Allow to tune sockets
+Subject: [PATCH] Allow to tune sockets
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -17,17 +17,26 @@ through the newly defined variable CYNARA_ADMIN_SOCKET_GROUP
 
 Change-Id: I7d58854c328e948e3d6d7fa3fc00569fd08f8aef
 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
+
 ---
- systemd/CMakeLists.txt                                | 19 +++++++++++++++----
- .../{cynara-admin.socket => cynara-admin.socket.in}   |  2 +-
- .../{cynara-agent.socket => cynara-agent.socket.in}   |  4 ++--
- ...onitor-get.socket => cynara-monitor-get.socket.in} |  4 ++--
- systemd/{cynara.socket => cynara.socket.in}           |  2 +-
- 5 files changed, 21 insertions(+), 10 deletions(-)
- rename systemd/{cynara-admin.socket => cynara-admin.socket.in} (78%)
- rename systemd/{cynara-agent.socket => cynara-agent.socket.in} (66%)
- rename systemd/{cynara-monitor-get.socket => cynara-monitor-get.socket.in} (64%)
- rename systemd/{cynara.socket => cynara.socket.in} (80%)
+ systemd/CMakeLists.txt               | 19 +++++++++++++++----
+ systemd/cynara-admin.socket          | 14 --------------
+ systemd/cynara-admin.socket.in       | 14 ++++++++++++++
+ systemd/cynara-agent.socket          | 15 ---------------
+ systemd/cynara-agent.socket.in       | 15 +++++++++++++++
+ systemd/cynara-monitor-get.socket    | 15 ---------------
+ systemd/cynara-monitor-get.socket.in | 15 +++++++++++++++
+ systemd/cynara.socket                | 14 --------------
+ systemd/cynara.socket.in             | 14 ++++++++++++++
+ 9 files changed, 73 insertions(+), 62 deletions(-)
+ delete mode 100644 systemd/cynara-admin.socket
+ create mode 100644 systemd/cynara-admin.socket.in
+ delete mode 100644 systemd/cynara-agent.socket
+ create mode 100644 systemd/cynara-agent.socket.in
+ delete mode 100644 systemd/cynara-monitor-get.socket
+ create mode 100644 systemd/cynara-monitor-get.socket.in
+ delete mode 100644 systemd/cynara.socket
+ create mode 100644 systemd/cynara.socket.in
 
 diff --git a/systemd/CMakeLists.txt b/systemd/CMakeLists.txt
 index 20accf0..1b75c12 100644
@@ -62,66 +71,167 @@ index 20accf0..1b75c12 100644
      DESTINATION
      ${SYSTEMD_UNIT_DIR}
  )
-diff --git a/systemd/cynara-admin.socket b/systemd/cynara-admin.socket.in
-similarity index 78%
-rename from systemd/cynara-admin.socket
-rename to systemd/cynara-admin.socket.in
-index ed38386..2364c3e 100644
+diff --git a/systemd/cynara-admin.socket b/systemd/cynara-admin.socket
+deleted file mode 100644
+index ed38386..0000000
 --- a/systemd/cynara-admin.socket
-+++ b/systemd/cynara-admin.socket.in
-@@ -1,5 +1,5 @@
- [Socket]
++++ /dev/null
+@@ -1,14 +0,0 @@
+-[Socket]
 -ListenStream=/run/cynara/cynara-admin.socket
+-SocketMode=0600
+-SmackLabelIPIn=@
+-SmackLabelIPOut=@
+-
+-Service=cynara.service
+-
+-[Unit]
+-Wants=cynara.target
+-Before=cynara.target
+-
+-[Install]
+-WantedBy=sockets.target
+diff --git a/systemd/cynara-admin.socket.in b/systemd/cynara-admin.socket.in
+new file mode 100644
+index 0000000..2364c3e
+--- /dev/null
++++ b/systemd/cynara-admin.socket.in
+@@ -0,0 +1,14 @@
++[Socket]
 +ListenStream=@SOCKET_DIR@/cynara-admin.socket
- SocketMode=0600
- SmackLabelIPIn=@
- SmackLabelIPOut=@
-diff --git a/systemd/cynara-agent.socket b/systemd/cynara-agent.socket.in
-similarity index 66%
-rename from systemd/cynara-agent.socket
-rename to systemd/cynara-agent.socket.in
-index 5a677e0..4f86c9d 100644
++SocketMode=0600
++SmackLabelIPIn=@
++SmackLabelIPOut=@
++
++Service=cynara.service
++
++[Unit]
++Wants=cynara.target
++Before=cynara.target
++
++[Install]
++WantedBy=sockets.target
+diff --git a/systemd/cynara-agent.socket b/systemd/cynara-agent.socket
+deleted file mode 100644
+index 5a677e0..0000000
 --- a/systemd/cynara-agent.socket
-+++ b/systemd/cynara-agent.socket.in
-@@ -1,6 +1,6 @@
- [Socket]
++++ /dev/null
+@@ -1,15 +0,0 @@
+-[Socket]
 -ListenStream=/run/cynara/cynara-agent.socket
 -SocketGroup=security_fw
+-SocketMode=0060
+-SmackLabelIPIn=*
+-SmackLabelIPOut=@
+-
+-Service=cynara.service
+-
+-[Unit]
+-Wants=cynara.target
+-Before=cynara.target
+-
+-[Install]
+-WantedBy=sockets.target
+diff --git a/systemd/cynara-agent.socket.in b/systemd/cynara-agent.socket.in
+new file mode 100644
+index 0000000..4f86c9d
+--- /dev/null
++++ b/systemd/cynara-agent.socket.in
+@@ -0,0 +1,15 @@
++[Socket]
 +ListenStream=@SOCKET_DIR@/cynara-agent.socket
 +SocketGroup=@CYNARA_ADMIN_SOCKET_GROUP@
- SocketMode=0060
- SmackLabelIPIn=*
- SmackLabelIPOut=@
-diff --git a/systemd/cynara-monitor-get.socket b/systemd/cynara-monitor-get.socket.in
-similarity index 64%
-rename from systemd/cynara-monitor-get.socket
-rename to systemd/cynara-monitor-get.socket.in
-index a50feeb..b88dbf7 100644
++SocketMode=0060
++SmackLabelIPIn=*
++SmackLabelIPOut=@
++
++Service=cynara.service
++
++[Unit]
++Wants=cynara.target
++Before=cynara.target
++
++[Install]
++WantedBy=sockets.target
+diff --git a/systemd/cynara-monitor-get.socket b/systemd/cynara-monitor-get.socket
+deleted file mode 100644
+index a50feeb..0000000
 --- a/systemd/cynara-monitor-get.socket
-+++ b/systemd/cynara-monitor-get.socket.in
-@@ -1,6 +1,6 @@
- [Socket]
++++ /dev/null
+@@ -1,15 +0,0 @@
+-[Socket]
 -ListenStream=/run/cynara/cynara-monitor-get.socket
 -SocketGroup=security_fw
+-SocketMode=0060
+-SmackLabelIPIn=@
+-SmackLabelIPOut=@
+-
+-Service=cynara.service
+-
+-[Unit]
+-Wants=cynara.target
+-Before=cynara.target
+-
+-[Install]
+-WantedBy=sockets.target
+diff --git a/systemd/cynara-monitor-get.socket.in b/systemd/cynara-monitor-get.socket.in
+new file mode 100644
+index 0000000..b88dbf7
+--- /dev/null
++++ b/systemd/cynara-monitor-get.socket.in
+@@ -0,0 +1,15 @@
++[Socket]
 +ListenStream=@SOCKET_DIR@/cynara-monitor-get.socket
 +SocketGroup=@CYNARA_ADMIN_SOCKET_GROUP@
- SocketMode=0060
- SmackLabelIPIn=@
- SmackLabelIPOut=@
-diff --git a/systemd/cynara.socket b/systemd/cynara.socket.in
-similarity index 80%
-rename from systemd/cynara.socket
-rename to systemd/cynara.socket.in
-index fad2745..ba76549 100644
++SocketMode=0060
++SmackLabelIPIn=@
++SmackLabelIPOut=@
++
++Service=cynara.service
++
++[Unit]
++Wants=cynara.target
++Before=cynara.target
++
++[Install]
++WantedBy=sockets.target
+diff --git a/systemd/cynara.socket b/systemd/cynara.socket
+deleted file mode 100644
+index fad2745..0000000
 --- a/systemd/cynara.socket
-+++ b/systemd/cynara.socket.in
-@@ -1,5 +1,5 @@
- [Socket]
++++ /dev/null
+@@ -1,14 +0,0 @@
+-[Socket]
 -ListenStream=/run/cynara/cynara.socket
+-SocketMode=0666
+-SmackLabelIPIn=*
+-SmackLabelIPOut=@
+-
+-Service=cynara.service
+-
+-[Unit]
+-Wants=cynara.target
+-Before=cynara.target
+-
+-[Install]
+-WantedBy=sockets.target
+diff --git a/systemd/cynara.socket.in b/systemd/cynara.socket.in
+new file mode 100644
+index 0000000..ba76549
+--- /dev/null
++++ b/systemd/cynara.socket.in
+@@ -0,0 +1,14 @@
++[Socket]
 +ListenStream=@SOCKET_DIR@/cynara.socket
- SocketMode=0666
- SmackLabelIPIn=*
- SmackLabelIPOut=@
--- 
-2.14.3
-
++SocketMode=0666
++SmackLabelIPIn=*
++SmackLabelIPOut=@
++
++Service=cynara.service
++
++[Unit]
++Wants=cynara.target
++Before=cynara.target
++
++[Install]
++WantedBy=sockets.target
index 0cfc785..68864f1 100644 (file)
@@ -1,13 +1,14 @@
-From d54e425b0685c9e3e06f5b4efcbd206950d14f3c Mon Sep 17 00:00:00 2001
+From 23f1a7cb34dd4ef88bac5a43057feaf7f50559aa Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jos=C3=A9=20Bollo?= <jose.bollo@iot.bzh>
 Date: Thu, 25 Jan 2018 14:09:23 +0100
-Subject: [PATCH 6/6] Install socket activation by default
+Subject: [PATCH] Install socket activation by default
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
 
 Change-Id: Ifd10c3800486689ed0ed6271df59760ccfbf6caf
 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
+
 ---
  packaging/cynara.spec                            | 5 -----
  systemd/CMakeLists.txt                           | 7 +++++++
@@ -75,6 +76,3 @@ index 0000000..c0e5a5b
 @@ -0,0 +1 @@
 +../cynara.socket
 \ No newline at end of file
--- 
-2.14.3
-
index cbf372a..c144189 100644 (file)
@@ -1,7 +1,7 @@
-From 297774fa4d01156c0327d6e6380a7ecae30bf875 Mon Sep 17 00:00:00 2001
+From 3605e9f8a3ea1252d1cf221398431e0d7a3ea34d Mon Sep 17 00:00:00 2001
 From: Patrick Ohly <patrick.ohly@intel.com>
 Date: Mon, 23 Mar 2015 15:01:39 -0700
-Subject: [PATCH 1/2] cynara-db-migration.in: abort on errors
+Subject: [PATCH] cynara-db-migration.in: abort on errors
 
 "set -e" enables error checking for all commands invoked by the script.
 Previously, errors were silently ignored.
@@ -9,12 +9,13 @@ Previously, errors were silently ignored.
 Upstream-status: Submitted [https://github.com/Samsung/cynara/pull/8]
 
 Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
+
 ---
- migration/cynara-db-migration | 2 ++
+ migration/cynara-db-migration.in | 2 ++
  1 file changed, 2 insertions(+)
 
 diff --git a/migration/cynara-db-migration.in b/migration/cynara-db-migration.in
-index ff9bd61..f6e7f94 100644
+index 7b666d4..0682df6 100644
 --- a/migration/cynara-db-migration.in
 +++ b/migration/cynara-db-migration.in
 @@ -19,6 +19,8 @@
@@ -25,7 +26,4 @@ index ff9bd61..f6e7f94 100644
 +
  ##### Constants (these must not be modified by shell)
  
- STATE_PATH='@LOCAL_STATE_DIR@/@PROJECT_NAME@'
--- 
-1.8.4.5
-
+ PATH=/bin:/usr/bin:/sbin:/usr/sbin
index 6c187fc..d2a09c6 100644 (file)
@@ -15,6 +15,7 @@ SRC_URI += " \
   file://0004-Fix-mode-of-sockets.patch \
   file://0005-Allow-to-tune-sockets.patch \
   file://0006-Install-socket-activation-by-default.patch \
+  file://0001-fix-fallthrough-in-cmdlineparser.patch \
 "
 
 DEPENDS = " \
@@ -84,6 +85,12 @@ USERADD_PARAM_${PN} = "\
 #   ln -s ../cynara-agent.socket ${D}${systemd_system_unitdir}/sockets.target.wants/cynara-agent.socket
 #}
 
+# We want the post-install logic to create and label /var/cynara, so
+# it should not be in the package.
+do_install_append () {
+    rmdir ${D}${localstatedir}/cynara
+}
+
 FILES_${PN} += "${systemd_system_unitdir}"
 
 # Cynara itself has no dependency on Smack. Only its installation
@@ -101,18 +108,7 @@ DEPENDS_append_with-lsm-smack = " smack smack-native"
 EXTRA_OECMAKE_append_with-lsm-smack = " -DDB_FILES_SMACK_LABEL=System"
 CHSMACK_with-lsm-smack = "chsmack"
 CHSMACK = "true"
-pkg_postinst_${PN} () {
-   # Fail on error.
-   set -e
-
-   # It would be nice to run the code below while building an image,
-   # but currently the calls to cynara-db-chsgen (a binary) in
-   # cynara-db-migration (a script) prevent that. Rely instead
-   # on OE's support for running failed postinst scripts at first boot.
-   if [ x"$D" != "x" ]; then
-      exit 1
-   fi
-
+pkg_postinst_ontarget_${PN} () {
    mkdir -p $D${sysconfdir}/cynara
    ${CHSMACK} -a System $D${sysconfdir}/cynara
 
diff --git a/meta-security/recipes-security/libcap-ng/libcap-ng/CVE-2014-3215.patch b/meta-security/recipes-security/libcap-ng/libcap-ng/CVE-2014-3215.patch
deleted file mode 100644 (file)
index d7a868d..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-Upstream-Status: Pending
-
-diff --git a/docs/capng_lock.3 b/docs/capng_lock.3
-index 7683119..a070c1e 100644
---- a/docs/capng_lock.3
-+++ b/docs/capng_lock.3
-@@ -8,12 +8,13 @@ int capng_lock(void);
- .SH "DESCRIPTION"
--capng_lock will take steps to prevent children of the current process to regain full privileges if the uid is 0. This should be called while possessing the CAP_SETPCAP capability in the kernel. This function will do the following if permitted by the kernel: Set the NOROOT option on for PR_SET_SECUREBITS, set the NOROOT_LOCKED option to on for PR_SET_SECUREBITS, set the PR_NO_SETUID_FIXUP option on for PR_SET_SECUREBITS, and set the PR_NO_SETUID_FIXUP_LOCKED option on for PR_SET_SECUREBITS.
-+capng_lock will take steps to prevent children of the current process from gaining privileges by executing setuid programs.  This should be called while possessing the CAP_SETPCAP capability in the kernel.
-+This function will do the following if permitted by the kernel:  If the kernel supports PR_SET_NO_NEW_PRIVS, it will use it.  Otherwise it will set the NOROOT option on for PR_SET_SECUREBITS, set the NOROOT_LOCKED option to on for PR_SET_SECUREBITS, set the PR_NO_SETUID_FIXUP option on for PR_SET_SECUREBITS, and set the PR_NO_SETUID_FIXUP_LOCKED option on for PR_SET_SECUREBITS.  If both fail, it will return an error.
- .SH "RETURN VALUE"
--This returns 0 on success and a negative number on failure. -1 means a failure setting any of the PR_SET_SECUREBITS options.
-+This returns 0 on success and a negative number on failure. -1 means a failure to use PR_SET_NO_NEW_PRIVS and a failure setting any of the PR_SET_SECUREBITS options.
- .SH "SEE ALSO"
-diff --git a/src/cap-ng.c b/src/cap-ng.c
-index bd105ba..422f2bc 100644
---- a/src/cap-ng.c
-+++ b/src/cap-ng.c
-@@ -45,6 +45,7 @@
-  * 2.6.24 kernel      XATTR_NAME_CAPS
-  * 2.6.25 kernel      PR_CAPBSET_DROP, CAPABILITY_VERSION_2
-  * 2.6.26 kernel      PR_SET_SECUREBITS, SECURE_*_LOCKED, VERSION_3
-+ * 3.5    kernel      PR_SET_NO_NEW_PRIVS
-  */
- /* External syscall prototypes */
-@@ -122,6 +123,14 @@ extern int capget(cap_user_header_t header, const cap_user_data_t data);
- #define SECURE_NO_SETUID_FIXUP_LOCKED   3  /* make bit-2 immutable */
- #endif
-+/* prctl values that we use */
-+#ifndef PR_SET_SECUREBITS
-+#define PR_SET_SECUREBITS             28
-+#endif
-+#ifndef PR_SET_NO_NEW_PRIVS
-+#define PR_SET_NO_NEW_PRIVS           38
-+#endif
-+
- // States: new, allocated, initted, updated, applied
- typedef enum { CAPNG_NEW, CAPNG_ERROR, CAPNG_ALLOCATED, CAPNG_INIT,
-       CAPNG_UPDATED, CAPNG_APPLIED } capng_states_t;
-@@ -663,15 +672,22 @@ int capng_change_id(int uid, int gid, capng_flags_t flag)
- int capng_lock(void)
- {
--#ifdef PR_SET_SECUREBITS
--      int rc = prctl(PR_SET_SECUREBITS,
--                      1 << SECURE_NOROOT |
--                      1 << SECURE_NOROOT_LOCKED |
--                      1 << SECURE_NO_SETUID_FIXUP |
--                      1 << SECURE_NO_SETUID_FIXUP_LOCKED, 0, 0, 0);
-+      int rc;
-+
-+      // On Linux 3.5 and up, we can directly prevent ourselves and
-+      // our descendents from gaining privileges.
-+      if (prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0) == 0)
-+              return 0;
-+
-+      // This kernel is too old or otherwise doesn't support
-+      // PR_SET_NO_NEW_PRIVS.  Fall back to using securebits.
-+      rc = prctl(PR_SET_SECUREBITS,
-+                 1 << SECURE_NOROOT |
-+                 1 << SECURE_NOROOT_LOCKED |
-+                 1 << SECURE_NO_SETUID_FIXUP |
-+                 1 << SECURE_NO_SETUID_FIXUP_LOCKED, 0, 0, 0);
-       if (rc)
-               return -1;
--#endif
-       return 0;
- }
diff --git a/meta-security/recipes-security/libcap-ng/libcap-ng/python.patch b/meta-security/recipes-security/libcap-ng/libcap-ng/python.patch
deleted file mode 100644 (file)
index d82ceb4..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-configure.ac - Avoid an incorrect check for python.
-Makefile.am - avoid hard coded host include paths.
-
-Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
-
---- libcap-ng-0.6.5/configure.ac.orig  2012-01-17 13:59:03.645898989 -0600
-+++ libcap-ng-0.6.5/configure.ac       2012-01-17 13:59:46.353959252 -0600
-@@ -120,17 +120,8 @@
- else
- AC_MSG_RESULT(testing)
- AM_PATH_PYTHON
--if test -f /usr/include/python${am_cv_python_version}/Python.h ; then
--      python_found="yes"
--      AC_MSG_NOTICE(Python bindings will be built)
--else
--      python_found="no"
--      if test x$use_python = xyes ; then
--              AC_MSG_ERROR([Python explicitly required and python headers found])
--      else
--              AC_MSG_WARN("Python headers not found - python bindings will not be made")
--      fi
--fi
-+python_found="yes"
-+AC_MSG_NOTICE(Python bindings will be built)
- fi
- AM_CONDITIONAL(HAVE_PYTHON, test ${python_found} = "yes")
---- libcap-ng-0.6.5/bindings/python/Makefile.am.orig   2010-11-03 12:31:59.000000000 -0500
-+++ libcap-ng-0.6.5/bindings/python/Makefile.am        2012-01-17 14:05:50.199834467 -0600
-@@ -24,7 +24,8 @@
- CONFIG_CLEAN_FILES = *.loT *.rej *.orig
- AM_CFLAGS = -fPIC -DPIC
- PYLIBVER ?= python$(PYTHON_VERSION)
--INCLUDES = -I. -I$(top_builddir) -I/usr/include/$(PYLIBVER)
-+PYINC ?= /usr/include/$(PYLIBVER)
-+INCLUDES = -I. -I$(top_builddir) -I$(PYINC)
- LIBS = $(top_builddir)/src/libcap-ng.la
- pyexec_PYTHON = capng.py
- pyexec_LTLIBRARIES = _capng.la
diff --git a/meta-security/recipes-security/libcap-ng/libcap-ng_0.7.3.bb b/meta-security/recipes-security/libcap-ng/libcap-ng_0.7.3.bb
deleted file mode 100644 (file)
index e729518..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-SUMMARY = "An alternate posix capabilities library"
-DESCRIPTION = "The libcap-ng library is intended to make programming \
-with POSIX capabilities much easier than the traditional libcap library."
-HOMEPAGE = "http://freecode.com/projects/libcap-ng"
-SECTION = "base"
-LICENSE = "GPLv2+ & LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
-                   file://COPYING.LIB;md5=e3eda01d9815f8d24aae2dbd89b68b06"
-
-SRC_URI = "http://people.redhat.com/sgrubb/libcap-ng/libcap-ng-${PV}.tar.gz \
-           file://python.patch \
-           file://CVE-2014-3215.patch \
-          "
-
-inherit lib_package autotools pythonnative
-
-SRC_URI[md5sum] = "610afb774f80a8032b711281df126283"
-SRC_URI[sha256sum] = "5ca441c8d3a1e4cfe8a8151907977662679457311ccaa7eaac91447c33a35bb1"
-
-DEPENDS += "swig-native python"
-
-EXTRA_OEMAKE += "PYLIBVER='python${PYTHON_BASEVERSION}' PYINC='${STAGING_INCDIR}/${PYLIBVER}'"
-
-PACKAGES += "${PN}-python"
-
-FILES_${PN}-dbg += "${libdir}/python${PYTHON_BASEVERSION}/*/.debug"
-FILES_${PN}-python = "${libdir}/python${PYTHON_BASEVERSION}"
-
-BBCLASSEXTEND = "native"
-
-do_install_append() {
-       # Moving libcap-ng to base_libdir
-       if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then
-               mkdir -p ${D}/${base_libdir}/
-               mv -f ${D}${libdir}/libcap-ng.so.* ${D}${base_libdir}/
-               relpath=${@os.path.relpath("${base_libdir}", "${libdir}")}
-               ln -sf ${relpath}/libcap-ng.so.0.0.0 ${D}${libdir}/libcap-ng.so
-       fi
-}
index 810106d..ddd87a9 100644 (file)
@@ -89,10 +89,6 @@ FILES_${PN}-policy = " \
    ${bindir}/security-manager-policy-reload \
 "
 RDEPENDS_${PN}-policy += "sqlite3 cynara"
-pkg_postinst_${PN}-policy () {
-   if [ x"$D" = "x" ] && ${bindir}/security-manager-policy-reload; then
-       exit 0
-   else
-       exit 1
-   fi
+pkg_postinst_ontarget_${PN}-policy () {
+   ${bindir}/security-manager-policy-reload
 }
diff --git a/meta-security/recipes-security/security-manager/security-manager/0001-Avoid-casting-from-const-T-to-void.patch b/meta-security/recipes-security/security-manager/security-manager/0001-Avoid-casting-from-const-T-to-void.patch
new file mode 100644 (file)
index 0000000..f598fdc
--- /dev/null
@@ -0,0 +1,127 @@
+From 14c8842ed8a37fecbc70d46e27b49ae929b0c85f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jos=C3=A9=20Bollo?= <jose.bollo@iot.bzh>
+Date: Fri, 1 Feb 2019 15:37:44 +0100
+Subject: [PATCH] Avoid casting from "const T&" to "void*"
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Latest version of g++ refuse the cast
+
+     reinterpret_cast<void (Service::*)(void*)>(serviceFunction)
+
+I made no investigation to know if the problem
+is coming from the const or not.
+
+Signed-off-by: José Bollo <jose.bollo@iot.bzh>
+---
+ src/server/main/include/service-thread.h | 43 ++++++++++--------------
+ 1 file changed, 18 insertions(+), 25 deletions(-)
+
+diff --git a/src/server/main/include/service-thread.h b/src/server/main/include/service-thread.h
+index 964d168..92b0ec8 100644
+--- a/src/server/main/include/service-thread.h
++++ b/src/server/main/include/service-thread.h
+@@ -9,78 +94,72 @@ public:
+             Join();
+         while (!m_eventQueue.empty()){
+             auto front = m_eventQueue.front();
+-            delete front.eventPtr;
++            delete front;
+             m_eventQueue.pop();
+         }
+     }
+     template <class T>
+     void Event(const T &event,
+                Service *servicePtr,
+                void (Service::*serviceFunction)(const T &))
+     {
+-        EventDescription description;
+-        description.serviceFunctionPtr =
+-            reinterpret_cast<void (Service::*)(void*)>(serviceFunction);
+-        description.servicePtr = servicePtr;
+-        description.eventFunctionPtr = &ServiceThread::EventCall<T>;
+-        description.eventPtr = new T(event);
++        EventCallerBase *ec = new EventCaller<T>(event, servicePtr, serviceFunction);
+         {
+             std::lock_guard<std::mutex> lock(m_eventQueueMutex);
+-            m_eventQueue.push(description);
++            m_eventQueue.push(ec);
+         }
+         m_waitCondition.notify_one();
+     }
+ protected:
+-    struct EventDescription {
+-        void (Service::*serviceFunctionPtr)(void *);
+-        Service *servicePtr;
+-        void (ServiceThread::*eventFunctionPtr)(const EventDescription &event);
+-        GenericEvent* eventPtr;
+-    };
+-
+-    template <class T>
+-    void EventCall(const EventDescription &desc) {
+-        auto fun = reinterpret_cast<void (Service::*)(const T&)>(desc.serviceFunctionPtr);
+-        const T& eventLocale = *(static_cast<T*>(desc.eventPtr));
+-        (desc.servicePtr->*fun)(eventLocale);
+-    }
++    struct EventCallerBase {
++       virtual void fire() = 0;
++       virtual ~EventCallerBase() {}
++    };
++    template <class T>
++    struct EventCaller : public EventCallerBase {
++        T *event; Service *target; void (Service::*function)(const T&);
++        EventCaller(const T &e, Service *c, void (Service::*f)(const T&)) : event(new T(e)), target(c), function(f) {}
++      ~EventCaller() { delete event; }
++      void fire() { (target->*function)(*event); }
++    };
++
+     static void ThreadLoopStatic(ServiceThread *ptr) {
+         ptr->ThreadLoop();
+     }
+     void ThreadLoop(){
+         for (;;) {
+-            EventDescription description = {NULL, NULL, NULL, NULL};
++            EventCallerBase *ec = NULL;
+             {
+                 std::unique_lock<std::mutex> ulock(m_eventQueueMutex);
+                 if (m_quit)
+                     return;
+                 if (!m_eventQueue.empty()) {
+-                    description = m_eventQueue.front();
++                    ec = m_eventQueue.front();
+                     m_eventQueue.pop();
+                 } else {
+                     m_waitCondition.wait(ulock);
+                 }
+             }
+-            if (description.eventPtr != NULL) {
++            if (ec != NULL) {
+                 UNHANDLED_EXCEPTION_HANDLER_BEGIN
+                 {
+-                    (this->*description.eventFunctionPtr)(description);
+-                    delete description.eventPtr;
++                    ec->fire();
+                 }
+                 UNHANDLED_EXCEPTION_HANDLER_END
++                delete ec;
+             }
+         }
+     }
+     std::thread m_thread;
+     std::mutex m_eventQueueMutex;
+-    std::queue<EventDescription> m_eventQueue;
++    std::queue<EventCallerBase*> m_eventQueue;
+     std::condition_variable m_waitCondition;
+     State m_state;
+-- 
+2.17.2
+
diff --git a/meta-security/recipes-security/security-manager/security-manager/0001-Fix-gcc8-warning-error-Werror-catch-value.patch b/meta-security/recipes-security/security-manager/security-manager/0001-Fix-gcc8-warning-error-Werror-catch-value.patch
new file mode 100644 (file)
index 0000000..5a55a31
--- /dev/null
@@ -0,0 +1,32 @@
+From 37c63c280eaec8cae3a321d45404d6c03a68c9d9 Mon Sep 17 00:00:00 2001
+From: Stephane Desneux <stephane.desneux@iot.bzh>
+Date: Fri, 1 Feb 2019 12:26:17 +0000
+Subject: [PATCH] Fix gcc8 warning/error [-Werror=catch-value=]
+
+Fixes the following warning/error during compile:
+
+src/dpl/core/src/assert.cpp:61:14: error: catching polymorphic type 'class SecurityManager::Exception' by value [-Werror=catch-value=]
+|      } catch (Exception) {
+|               ^~~~~~~~~
+
+Signed-off-by: Stephane Desneux <stephane.desneux@iot.bzh>
+---
+ src/dpl/core/src/assert.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/dpl/core/src/assert.cpp b/src/dpl/core/src/assert.cpp
+index 63538a2..fc60ce9 100644
+--- a/src/dpl/core/src/assert.cpp
++++ b/src/dpl/core/src/assert.cpp
+@@ -58,7 +58,7 @@ void AssertProc(const char *condition,
+         INTERNAL_LOG("### Function: " << function);
+         INTERNAL_LOG(
+             "################################################################################");
+-    } catch (Exception) {
++    } catch (Exception const&) {
+         // Just ignore possible double errors
+     }
+-- 
+2.11.0
+
index 65134d3..3cbc3ae 100644 (file)
@@ -14,6 +14,8 @@ file://c-11-replace-depracated-auto_ptr.patch \
 file://socket-manager-removes-tizen-specific-call.patch \
 file://Removing-tizen-platform-config.patch \
 file://removes-dependency-to-libslp-db-utils.patch \
+file://0001-Fix-gcc8-warning-error-Werror-catch-value.patch \
+file://0001-Avoid-casting-from-const-T-to-void.patch \
 "
 
 ##########################################
@@ -32,3 +34,5 @@ SRC_URI += "\
   file://include-linux-xattr.patch;apply=${APPLY} \
 "
 
+# Use make with cmake and not ninja
+OECMAKE_GENERATOR = "Unix Makefiles"
diff --git a/meta-security/recipes-security/xmlsec1/xmlsec1_%.bbappend b/meta-security/recipes-security/xmlsec1/xmlsec1_%.bbappend
new file mode 100644 (file)
index 0000000..9c6080f
--- /dev/null
@@ -0,0 +1,3 @@
+# remove the EXTRA_OECONF from the recipe to
+# avoid an build error in >= YP SUMO
+EXTRA_OECONF = ""