[oe] [RFC meta-gnome][PATCH 12/16] mutter: add recipe for mutter window manager

Khem Raj raj.khem at gmail.com
Tue Oct 30 02:47:50 UTC 2018


On Mon, Oct 29, 2018 at 9:43 AM brendank310 <brendank310 at gmail.com> wrote:

> From: Brendan Kerrigan <kerriganb at ainfosec.com>
>
> Signed-off-by: Brendan Kerrigan <kerriganb at ainfosec.com>
> ---
>  .../mutter/0001-disable-zenity-check.patch    | 27 ++++++++
>  ...spection-variables-with-correct-path.patch | 63 +++++++++++++++++++
>  .../0003-packageconfig-variable-fixup.patch   | 29 +++++++++
>  .../mutter/0004-fix-broken-includes.patch     | 37 +++++++++++
>  meta-gnome/recipes-gnome/gnome3/mutter_git.bb | 59 +++++++++++++++++
>  5 files changed, 215 insertions(+)
>  create mode 100644
> meta-gnome/recipes-gnome/gnome3/mutter/0001-disable-zenity-check.patch
>  create mode 100644
> meta-gnome/recipes-gnome/gnome3/mutter/0002-fixup-introspection-variables-with-correct-path.patch
>  create mode 100644
> meta-gnome/recipes-gnome/gnome3/mutter/0003-packageconfig-variable-fixup.patch
>  create mode 100644
> meta-gnome/recipes-gnome/gnome3/mutter/0004-fix-broken-includes.patch
>  create mode 100644 meta-gnome/recipes-gnome/gnome3/mutter_git.bb
>
> diff --git
> a/meta-gnome/recipes-gnome/gnome3/mutter/0001-disable-zenity-check.patch
> b/meta-gnome/recipes-gnome/gnome3/mutter/0001-disable-zenity-check.patch
> new file mode 100644
> index 000000000..a37aec276
> --- /dev/null
> +++
> b/meta-gnome/recipes-gnome/gnome3/mutter/0001-disable-zenity-check.patch
> @@ -0,0 +1,27 @@
> +mutter: Disable check for zenity
> +
> +  Disable autoconf check for zenity, no need graphical dialog boxes.
> +
> +  Upstream-status: Inappropriate [disable-feature]
> +
> +  Signed-off-by: Brendan Kerrigan <kerriganb at ainfosec.com>
> +
> +diff --git a/configure.ac b/configure.ac
> +index ef92f5ecb..5eede9e63 100644
> +--- a/configure.ac
> ++++ b/configure.ac
> +@@ -427,11 +427,6 @@ fi
> +
> + AM_CONDITIONAL(HAVE_SM, test "$found_sm" = "yes")
> +
> +-AC_PATH_PROG(ZENITY, zenity, no)
> +-if test x"$ZENITY" = xno; then
> +-  AC_MSG_ERROR([zenity not found in your path - needed for dialogs])
> +-fi
> +-
> + AC_ARG_ENABLE(debug,
> +       [  --enable-debug               enable debugging],,
> +       enable_debug=no)
> +--
> +2.17.1
> +
> diff --git
> a/meta-gnome/recipes-gnome/gnome3/mutter/0002-fixup-introspection-variables-with-correct-path.patch
> b/meta-gnome/recipes-gnome/gnome3/mutter/0002-fixup-introspection-variables-with-correct-path.patch
> new file mode 100644
> index 000000000..07c1f371a
> --- /dev/null
> +++
> b/meta-gnome/recipes-gnome/gnome3/mutter/0002-fixup-introspection-variables-with-correct-path.patch
> @@ -0,0 +1,63 @@
> +mutter: Fixup introspection paths
> +
> +  Fixup the introspection paths to enable correct results with
> +  gobject-introspection.
> +
> +  Upstream-status: Innappropriate [embedded specific]
> +
> +  Signed-off-by: Brendan Kerrigan <kerriganb at ainfosec.com>
> +
> +diff --git a/clutter/build/autotools/introspection.m4
> b/clutter/build/autotools/introspection.m4
> +index d89c3d907..d2c60de4d 100644
> +--- a/clutter/build/autotools/introspection.m4
> ++++ b/clutter/build/autotools/introspection.m4
> +@@ -56,14 +56,14 @@ m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
> +     INTROSPECTION_GIRDIR=
> +     INTROSPECTION_TYPELIBDIR=
> +     if test "x$found_introspection" = "xyes"; then
> +-       INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner
> gobject-introspection-1.0`
> +-       INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler
> gobject-introspection-1.0`
> +-       INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate
> gobject-introspection-1.0`
> +-       INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir
> gobject-introspection-1.0`
> +-       INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir
> gobject-introspection-1.0)"
> ++       INTROSPECTION_SCANNER=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG
> --variable=g_ir_scanner gobject-introspection-1.0`
> ++       INTROSPECTION_COMPILER=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG
> --variable=g_ir_compiler gobject-introspection-1.0`
> ++       INTROSPECTION_GENERATE=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG
> --variable=g_ir_generate gobject-introspection-1.0`
> ++       INTROSPECTION_GIRDIR=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG
> --variable=girdir gobject-introspection-1.0`
> ++       INTROSPECTION_TYPELIBDIR=$PKG_CONFIG_SYSROOT_DIR"$($PKG_CONFIG
> --variable=typelibdir gobject-introspection-1.0)"
> +        INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags
> gobject-introspection-1.0`
> +        INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
> +-       INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir
> gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
> ++       INTROSPECTION_MAKEFILE=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG
> --variable=datadir
> gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
> +     fi
> +     AC_SUBST(INTROSPECTION_SCANNER)
> +     AC_SUBST(INTROSPECTION_COMPILER)
> +diff --git a/cogl/build/autotools/introspection.m4
> b/cogl/build/autotools/introspection.m4
> +index 589721c5a..683ebdcc6 100644
> +--- a/cogl/build/autotools/introspection.m4
> ++++ b/cogl/build/autotools/introspection.m4
> +@@ -54,14 +54,14 @@ m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
> +     INTROSPECTION_GIRDIR=
> +     INTROSPECTION_TYPELIBDIR=
> +     if test "x$found_introspection" = "xyes"; then
> +-       INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner
> gobject-introspection-1.0`
> +-       INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler
> gobject-introspection-1.0`
> +-       INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate
> gobject-introspection-1.0`
> +-       INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir
> gobject-introspection-1.0`
> +-       INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir
> gobject-introspection-1.0)"
> ++       INTROSPECTION_SCANNER=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG
> --variable=g_ir_scanner gobject-introspection-1.0`
> ++       INTROSPECTION_COMPILER=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG
> --variable=g_ir_compiler gobject-introspection-1.0`
> ++       INTROSPECTION_GENERATE=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG
> --variable=g_ir_generate gobject-introspection-1.0`
> ++       INTROSPECTION_GIRDIR=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG
> --variable=girdir gobject-introspection-1.0`
> ++       INTROSPECTION_TYPELIBDIR=$PKG_CONFIG_SYSROOT_DIR"$($PKG_CONFIG
> --variable=typelibdir gobject-introspection-1.0)"
> +        INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags
> gobject-introspection-1.0`
> +-       INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
> +-       INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir
> gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
> ++       INTROSPECTION_LIBS=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --libs
> gobject-introspection-1.0`
> ++       INTROSPECTION_MAKEFILE=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG
> --variable=datadir
> gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
> +     fi
> +     AC_SUBST(INTROSPECTION_SCANNER)
> +     AC_SUBST(INTROSPECTION_COMPILER)
> +--
> +2.17.1
> +
> diff --git
> a/meta-gnome/recipes-gnome/gnome3/mutter/0003-packageconfig-variable-fixup.patch
> b/meta-gnome/recipes-gnome/gnome3/mutter/0003-packageconfig-variable-fixup.patch
> new file mode 100644
> index 000000000..1e44218a6
> --- /dev/null
> +++
> b/meta-gnome/recipes-gnome/gnome3/mutter/0003-packageconfig-variable-fixup.patch
> @@ -0,0 +1,29 @@
> +mutter: Fixup pkgconfig variables
> +
> +  Pkgconfig variables relating to the paths of datadirs, and
> +  gir, typelib.
> +
> +  Upstream-status: Innappropriate [embedded-specific]
> +
> +  Signed-off-by: Brendan Kerrigan <kerriganb at ainfosec.com>
> +
> +diff --git a/src/libmutter.pc.in b/src/libmutter.pc.in
> +index d2e837f4a..0c8db1a66 100644
> +--- a/src/libmutter.pc.in
> ++++ b/src/libmutter.pc.in
> +@@ -2,8 +2,10 @@ prefix=@prefix@
> + exec_prefix=@exec_prefix@
> + libdir=@libdir@
> + includedir=@includedir@
> +-girdir=@libdir@/mutter
> +-typelibdir=@libdir@/mutter
> ++datarootdir=${prefix}/share
> ++datadir=${datarootdir}
> ++girdir=${datadir}/gir-1.0
> ++typelibdir=${libdir}/mutter
> + apiversion=@LIBMUTTER_API_VERSION@
> +
> + Name: libmutter
> +--
> +2.17.1
> +
> diff --git
> a/meta-gnome/recipes-gnome/gnome3/mutter/0004-fix-broken-includes.patch
> b/meta-gnome/recipes-gnome/gnome3/mutter/0004-fix-broken-includes.patch
> new file mode 100644
> index 000000000..2a7580653
> --- /dev/null
> +++ b/meta-gnome/recipes-gnome/gnome3/mutter/0004-fix-broken-includes.patch
> @@ -0,0 +1,37 @@
> +mutter: Fix broken includes for xcursor
> +
> +  Add missing include for the xcursor header to required
> +  files.
> +
> +  Upstream-status: Pending
> +
> +  Signed-off-by: Brendan Kerrigan <kerriganb at ainfosec.com>
> +
> +diff --git a/src/core/display.c b/src/core/display.c
> +index f6b4d5b9f..3930f1c32 100644
> +--- a/src/core/display.c
> ++++ b/src/core/display.c
> +@@ -54,6 +54,7 @@
> + #include <meta/meta-backend.h>
> + #include "backends/meta-cursor-sprite-xcursor.h"
> + #include "backends/meta-logical-monitor.h"
> ++#include "backends/meta-cursor-sprite-xcursor.h"
> + #include "backends/native/meta-backend-native.h"
> + #include "backends/x11/meta-backend-x11.h"
> + #include "backends/meta-stage-private.h"
> +diff --git a/src/x11/meta-x11-display.c b/src/x11/meta-x11-display.c
> +index 83f7dfbae..36ea95b91 100644
> +--- a/src/x11/meta-x11-display.c
> ++++ b/src/x11/meta-x11-display.c
> +@@ -55,6 +55,8 @@
> + #include "backends/meta-logical-monitor.h"
> + #include "backends/meta-settings-private.h"
> + #include "backends/x11/meta-backend-x11.h"
> ++#include "backends/meta-cursor-sprite-xcursor.h"
> ++
> + #include "core/frame.h"
> + #include "core/meta-workspace-manager-private.h"
> + #include "core/util-private.h"
> +--
> +2.17.1
> +
> diff --git a/meta-gnome/recipes-gnome/gnome3/mutter_git.bb
> b/meta-gnome/recipes-gnome/gnome3/mutter_git.bb
> new file mode 100644
> index 000000000..b2065f224
> --- /dev/null
> +++ b/meta-gnome/recipes-gnome/gnome3/mutter_git.bb
> @@ -0,0 +1,59 @@
> +DESCRIPTION = "Mutter (Gnome 3 window manager)"
> +LICENSE = "GPLv2"
> +DEPENDS = " \
> +           glib-2.0 \
> +           gsettings-desktop-schemas \
> +           wayland-native \
> +           wayland-protocols \


Same as last comment we need to use distro feature to include it

>
> +           libxinerama \
> +           libinput \
> +           gtk+3 \
> +           gnome-desktop3 \
> +           libxcursor \
> +           libxkbfile \
> +           cogl-1.0 \
> +           clutter-1.0 \
> +          "
> +
> +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
> +
> +SRC_URI = " \
> +           git://
> gitlab.gnome.org/GNOME/mutter.git;protocol=http;branch=master \
> +           file://0001-disable-zenity-check.patch \
> +
>  file://0002-fixup-introspection-variables-with-correct-path.patch \
> +           file://0003-packageconfig-variable-fixup.patch \
> +           file://0004-fix-broken-includes.patch \
> +          "
> +
> +SRCREV="${AUTOREV}"
>

We need to use a hard coded locked down Sha value here for consistency
across builds

+S = "${WORKDIR}/git"
> +
> +inherit autotools pkgconfig distro_features_check gobject-introspection
> gettext
> +
> +FILES_${PN} += "${datadir}"
> +
> +do_configure_prepend() {
> +       # Autotools expects config.rpath to be with in the source tree
> +       install -d ${S}/build-aux
> +       cp ${STAGING_DIR_NATIVE}${datadir}/gettext/config.rpath
> ${S}/build-aux/config.rpath
> +
> +        # There are several Werrors that trip when building with Wayland
> enabled:
> +       # -Wno-error=implicit-function-declaration
> -Wno-error=nested-externs -Wno-error=int-conversion
> +       # and setting those as no-error does not seem to get picked up (it
> does appear in the compilation
> +       # command
> +       sed -i 's^-Werror
> -Wno-error=deprecated-declarations^-Wno-error=deprecated-declarations^g'
> ${S}/configure.ac
> +}
> +
> +do_compile_prepend() {
> +       export
> GIR_EXTRA_LIBS_PATH="${B}/cogl/cogl/.libs:${B}/cogl/cogl-pango/.libs:${B}/cogl/cogl-path/.libs:${B}/clutter/clutter/.libs"
> +}
> +
> +do_install_append() {
> +       install -d ${D}/${datadir}/gir-1.0
> +       install ${B}/src/Meta-3.gir ${D}/${datadir}/gir-1.0
> +       install ${B}/cogl/cogl/Cogl-3.gir ${D}/${datadir}/gir-1.0
> +       install ${B}/cogl/cogl-pango/CoglPango-3.gir
> ${D}/${datadir}/gir-1.0
> +       install ${B}/clutter/clutter/Cally-3.gir ${D}/${datadir}/gir-1.0
> +       install ${B}/clutter/clutter/ClutterX11-3.gir
> ${D}/${datadir}/gir-1.0
> +       install ${B}/clutter/clutter/Clutter-3.gir ${D}/${datadir}/gir-1.0
> +}
> --
> 2.17.1
>
> --
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
>



More information about the Openembedded-devel mailing list