[oe] [PATCH][meta-qt5 3/4] qtwayland: fix build without xkbcommon-evdev

Martin Jansa martin.jansa at gmail.com
Fri Mar 3 08:42:28 UTC 2017


Yes, it can be built, but you need to enable xkbcommon-evdev which works
even in DISTROs without x11, like I did in:
https://github.com/webOS-ports/meta-webos-ports/commit/03e259ca0fd95b38bf985064a8e9d2eb47a8a59f

On Fri, Mar 3, 2017 at 12:37 AM, Denys Dmytriyenko <denis at denix.org> wrote:

> On Fri, Feb 03, 2017 at 01:00:16AM +0100, Martin Jansa wrote:
> > This isn't enough at least in some setups, but it's good start (it works
> > after you add -lxkbcommon in 2 incorrectly generated Makefiles) and at
> > least it documents that xkbcommon-evdev is now needed to be set in qtbase
> > PACKAGECONFIG.
>
> Can qtwayland 5.8 be built w/o "x11" in DISTRO_FEATURES?
>
> I have X-less setup and obviously don't get xkbcommon-evdev in
> PACKAGECONFIG,
> thus:
>
> | /usr/src/debug/qtwayland/5.8.0+gitAUTOINC+0e2a950895-r0/
> git/src/shared/qwaylandxkb.cpp:297: error: undefined reference to
> 'xkb_keysym_to_utf32'
> | /usr/src/debug/qtwayland/5.8.0+gitAUTOINC+0e2a950895-r0/
> git/src/shared/qwaylandxkb.cpp:337: error: undefined reference to
> 'xkb_state_mod_name_is_active'
> | /usr/src/debug/qtwayland/5.8.0+gitAUTOINC+0e2a950895-r0/
> git/src/shared/qwaylandxkb.cpp:339: error: undefined reference to
> 'xkb_state_mod_name_is_active'
> | /usr/src/debug/qtwayland/5.8.0+gitAUTOINC+0e2a950895-r0/
> git/src/shared/qwaylandxkb.cpp:341: error: undefined reference to
> 'xkb_state_mod_name_is_active'
> | /usr/src/debug/qtwayland/5.8.0+gitAUTOINC+0e2a950895-r0/
> git/src/shared/qwaylandxkb.cpp:343: error: undefined reference to
> 'xkb_state_mod_name_is_active'
>
> --
> Denys
>
>
> > On Fri, Feb 3, 2017 at 12:54 AM, Martin Jansa <martin.jansa at gmail.com>
> > wrote:
> >
> > > * xkbcommon-evdev isn't enabled in default qtbase PACKAGECONFIG
> > > * use patch from https://bugreports.qt.io/browse/QTBUG-57767
> > >
> > > Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
> > > ---
> > >  .../0001-fix-build-without-xkbcommon-evdev.patch   | 44
> > > ++++++++++++++++++++++
> > >  recipes-qt/qt5/qtwayland_git.bb                    |  3 ++
> > >  2 files changed, 47 insertions(+)
> > >  create mode 100644 recipes-qt/qt5/qtwayland/0001-
> > > fix-build-without-xkbcommon-evdev.patch
> > >
> > > diff --git a/recipes-qt/qt5/qtwayland/0001-fix-build-without-
> xkbcommon-evdev.patch
> > > b/recipes-qt/qt5/qtwayland/0001-fix-build-without-
> xkbcommon-evdev.patch
> > > new file mode 100644
> > > index 0000000..e1e978e
> > > --- /dev/null
> > > +++ b/recipes-qt/qt5/qtwayland/0001-fix-build-without-
> > > xkbcommon-evdev.patch
> > > @@ -0,0 +1,44 @@
> > > +From c93dbe53e8a1b2203c750a66c7efe6fc9a326903 Mon Sep 17 00:00:00
> 2001
> > > +From: Raphael Freudiger <raphael.freudiger at siemens.com>
> > > +Date: Thu, 22 Dec 2016 13:54:31 +0100
> > > +Subject: [PATCH] fix build without xkbcommon-evdev
> > > +
> > > +Signed-off-by: Raphael Freudiger <raphael.freudiger at siemens.com>
> > > +---
> > > + src/compositor/compositor_api/qwaylandkeyboard.cpp | 13
> +++++++------
> > > + 1 file changed, 7 insertions(+), 6 deletions(-)
> > > +
> > > +diff --git a/src/compositor/compositor_api/qwaylandkeyboard.cpp
> > > b/src/compositor/compositor_api/qwaylandkeyboard.cpp
> > > +index 55381b4..5c054c6 100644
> > > +--- a/src/compositor/compositor_api/qwaylandkeyboard.cpp
> > > ++++ b/src/compositor/compositor_api/qwaylandkeyboard.cpp
> > > +@@ -338,12 +338,6 @@ void QWaylandKeyboardPrivate::
> createXKBState(xkb_keymap
> > > *keymap)
> > > +     xkb_state = xkb_state_new(keymap);
> > > + }
> > > +
> > > +-uint QWaylandKeyboardPrivate::toWaylandXkbV1Key(const uint
> > > nativeScanCode)
> > > +-{
> > > +-    const uint offset = 8;
> > > +-    Q_ASSERT(nativeScanCode >= offset);
> > > +-    return nativeScanCode - offset;
> > > +-}
> > > +
> > > + void QWaylandKeyboardPrivate::createXKBKeymap()
> > > + {
> > > +@@ -373,6 +367,13 @@ void QWaylandKeyboardPrivate::createXKBKeymap()
> > > + }
> > > + #endif
> > > +
> > > ++uint QWaylandKeyboardPrivate::toWaylandXkbV1Key(const uint
> > > nativeScanCode)
> > > ++{
> > > ++    const uint offset = 8;
> > > ++    Q_ASSERT(nativeScanCode >= offset);
> > > ++    return nativeScanCode - offset;
> > > ++}
> > > ++
> > > + void QWaylandKeyboardPrivate::sendRepeatInfo()
> > > + {
> > > +     Q_FOREACH (Resource *resource, resourceMap()) {
> > > +--
> > > +2.1.4
> > > +
> > > diff --git a/recipes-qt/qt5/qtwayland_git.bb
> b/recipes-qt/qt5/qtwayland_
> > > git.bb
> > > index 21abd54..d42d80a 100644
> > > --- a/recipes-qt/qt5/qtwayland_git.bb
> > > +++ b/recipes-qt/qt5/qtwayland_git.bb
> > > @@ -43,4 +43,7 @@ EXTRA_QMAKEVARS_CONFIGURE +=
> "${PACKAGECONFIG_CONFARGS}"
> > >
> > >  SRCREV = "0e2a950895805457a45abe860bc91a7cc4ba405e"
> > >
> > > +# From https://bugreports.qt.io/browse/QTBUG-57767
> > > +SRC_URI += "file://0001-fix-build-without-xkbcommon-evdev.patch"
> > > +
> > >  BBCLASSEXTEND =+ "native nativesdk"
> > > --
> > > 2.10.2
> > >
> > >
> > --
> > _______________________________________________
> > Openembedded-devel mailing list
> > Openembedded-devel at lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-devel
> --
> _______________________________________________
> 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