All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/3] Initial wayland integration
@ 2013-01-07 16:06 Alex DAMIAN
  2013-01-07 16:06 ` [PATCH 1/3] Wayland userspace library initial 1.0.3 Alex DAMIAN
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Alex DAMIAN @ 2013-01-07 16:06 UTC (permalink / raw)
  To: openembedded-core, sgw, richard.purdie, ross.burton; +Cc: Alexandru DAMIAN

From: Alexandru DAMIAN <alexandru.damian@intel.com>

Hi,

I've rebased the patch on top of the latest master.

I have several changes in the patches, in particular on how to select proper dependency versions.
Please review.

This is a set of patches that integrate Wayland/Weston 1.0.3 into mainline.

All library dependencies are satisfied, and Weston works under X11 and DRM.

A user must install separately (no hard dependency) the hardware DRM drivers
to be able to run weston on barebone hardware. Hardware drivers built-in
are the swrast, i915 and i965 (i965 is tested on real hardware).

There is no default integration in any distro, the packages may be installed
through the package manager.

Further improvements will include a wrapper script for weston and integration
in the distro features.

Documentation will be available on wiki, and announced here.


The following changes since commit b03c4188c8372ae9156a9e6adc7cf66edc76dd16:

  icu: update to upstream version 50.1.1 (2013-01-07 11:09:44 +0000)

are available in the git repository at:

  git://git.yoctoproject.org/poky-contrib adamian/wayland/upstream.1
  http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=adamian/wayland/upstream.1

Alexandru DAMIAN (3):
  Wayland userspace library initial 1.0.3
  Prepare mesa-dri for weston compatibility
  Initial commit for wayland/weston 1.0.3

 meta/recipes-graphics/mesa/mesa-common.inc     |   10 +++++++-
 meta/recipes-graphics/mesa/mesa-dri.inc        |    1 +
 meta/recipes-graphics/mesa/mesa-dri_git.bb     |    3 +++
 meta/recipes-graphics/wayland/wayland.inc      |   32 ++++++++++++++++++++++++
 meta/recipes-graphics/wayland/wayland_1.0.3.bb |    7 ++++++
 meta/recipes-graphics/wayland/weston.inc       |   23 +++++++++++++++++
 meta/recipes-graphics/wayland/weston_1.0.3.bb  |    9 +++++++
 7 files changed, 84 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-graphics/wayland/wayland.inc
 create mode 100644 meta/recipes-graphics/wayland/wayland_1.0.3.bb
 create mode 100644 meta/recipes-graphics/wayland/weston.inc
 create mode 100644 meta/recipes-graphics/wayland/weston_1.0.3.bb

-- 
1.7.10.4




^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/3] Wayland userspace library initial 1.0.3
  2013-01-07 16:06 [PATCH v4 0/3] Initial wayland integration Alex DAMIAN
@ 2013-01-07 16:06 ` Alex DAMIAN
  2013-01-08  9:52   ` Burton, Ross
  2013-01-07 16:06 ` [PATCH 2/3] Prepare mesa-dri for weston compatibility Alex DAMIAN
  2013-01-07 16:06 ` [PATCH 3/3] Initial commit for wayland/weston 1.0.3 Alex DAMIAN
  2 siblings, 1 reply; 8+ messages in thread
From: Alex DAMIAN @ 2013-01-07 16:06 UTC (permalink / raw)
  To: openembedded-core, sgw, richard.purdie, ross.burton; +Cc: Alexandru DAMIAN

From: Alexandru DAMIAN <alexandru.damian@intel.com>

Wayland is a new protocol a protocol for a client application to
display user interface windows through the use of a compositing
window manager. This package include the specific set of server-side
and client-side C libraries that implement the protocol.

Wayland is hosted on http://wayland.freedesktop.org/

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
---
 meta/recipes-graphics/wayland/wayland.inc      |   32 ++++++++++++++++++++++++
 meta/recipes-graphics/wayland/wayland_1.0.3.bb |    7 ++++++
 2 files changed, 39 insertions(+)
 create mode 100644 meta/recipes-graphics/wayland/wayland.inc
 create mode 100644 meta/recipes-graphics/wayland/wayland_1.0.3.bb

diff --git a/meta/recipes-graphics/wayland/wayland.inc b/meta/recipes-graphics/wayland/wayland.inc
new file mode 100644
index 0000000..ba02e5a
--- /dev/null
+++ b/meta/recipes-graphics/wayland/wayland.inc
@@ -0,0 +1,32 @@
+inherit autotools pkgconfig
+
+SUMMARY = "Wayland, a protocol between a compositor and clients"
+
+DESCRIPTION = "Wayland is a protocol for a compositor to talk to its clients \
+as well as a C library implementation of that protocol. The compositor can be \
+a standalone display server running on Linux kernel modesetting and evdev \
+input devices, an X application, or a wayland client itself. The clients can \
+be traditional applications, X servers (rootless or fullscreen) or other \
+display servers."
+
+HOMEPAGE = "http://wayland.freedesktop.org"
+SECTION = "wayland/base"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1d4476a7d98dd5691c53d4d43a510c72"
+
+# needs wayland-native for the wayland-scanner utility
+BBCLASSEXTEND = "native"
+
+DEPENDS_virtclass-native = "expat-native"
+DEPENDS = "expat wayland-native"
+
+EXTRA_OECONF_virtclass-native = "--disable-documentation"
+EXTRA_OECONF = "--disable-documentation --disable-scanner"
+
+# wayland installs a m4 macro for other projects to use. This m4 macro
+# includes a path to a makefile fragment to get the rules to generate
+# stubs from protocol description files.
+do_install_append_class-native() {
+  sed -i -e '4,10s,prefix=.*$,prefix=${D}/${prefix},;4,10s,exec_prefix=,exec_prefix=${D}/${exec_prefix},' \
+    ${D}/${datadir}/aclocal/wayland-scanner.m4
+}
diff --git a/meta/recipes-graphics/wayland/wayland_1.0.3.bb b/meta/recipes-graphics/wayland/wayland_1.0.3.bb
new file mode 100644
index 0000000..28dd49b
--- /dev/null
+++ b/meta/recipes-graphics/wayland/wayland_1.0.3.bb
@@ -0,0 +1,7 @@
+require wayland.inc
+
+SRC_URI = "http://wayland.freedesktop.org/releases/wayland-1.0.3.tar.xz"
+SRC_URI[md5sum] = "eebe23571fd4f9ceacc583238e5a8ae9"
+SRC_URI[sha256sum] = "f6be5ee11ba534baaa116350b5efb874bf9963bf3fb18bcf40130317e83a5913"
+
+PR = "r0"
-- 
1.7.10.4




^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/3] Prepare mesa-dri for weston compatibility
  2013-01-07 16:06 [PATCH v4 0/3] Initial wayland integration Alex DAMIAN
  2013-01-07 16:06 ` [PATCH 1/3] Wayland userspace library initial 1.0.3 Alex DAMIAN
@ 2013-01-07 16:06 ` Alex DAMIAN
  2013-01-08  9:54   ` Burton, Ross
  2013-01-08 10:05   ` Burton, Ross
  2013-01-07 16:06 ` [PATCH 3/3] Initial commit for wayland/weston 1.0.3 Alex DAMIAN
  2 siblings, 2 replies; 8+ messages in thread
From: Alex DAMIAN @ 2013-01-07 16:06 UTC (permalink / raw)
  To: openembedded-core, sgw, richard.purdie, ross.burton; +Cc: Alexandru DAMIAN

From: Alexandru DAMIAN <alexandru.damian@intel.com>

This patch enables mesa-git to build wayland-compatible
packages for usage with weston.

It adds wayland platform support, packs the wayland-egl
files.

Activate by setting up OVERRIDE for "weston" to get
it to build.

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
---
 meta/recipes-graphics/mesa/mesa-common.inc |   10 +++++++++-
 meta/recipes-graphics/mesa/mesa-dri.inc    |    1 +
 meta/recipes-graphics/mesa/mesa-dri_git.bb |    3 +++
 3 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/meta/recipes-graphics/mesa/mesa-common.inc b/meta/recipes-graphics/mesa/mesa-common.inc
index 70957eb..cf6e610 100644
--- a/meta/recipes-graphics/mesa/mesa-common.inc
+++ b/meta/recipes-graphics/mesa/mesa-common.inc
@@ -29,10 +29,15 @@ EXTRA_OECONF = "--disable-glu \
                 --disable-glut \
                 --enable-shared-glapi"
 
-PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} egl gles"
+PACKAGECONFIG ??= "egl gles \
+		${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}\
+		${@base_contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)}\
+		"
 
 X11_DEPS = "xf86driproto glproto virtual/libx11 libxext libxxf86vm libxdamage libxfixes"
 PACKAGECONFIG[x11] = "--enable-glx-tls,--disable-glx,${X11_DEPS}"
+PACKAGECONFIG[wayland] = ",,wayland"
+
 
 # Multiple virtual/gl providers being built breaks staging
 EXCLUDE_FROM_WORLD = "1"
@@ -49,6 +54,7 @@ PACKAGES =+ "libegl-mesa libegl-mesa-dev \
              libgles1-mesa libgles1-mesa-dev \
              libgles2-mesa libgles2-mesa-dev \
              libgles3-mesa libgles3-mesa-dev \
+             wayland-egl wayland-egl-dev \
             "
 
 do_install_append () {
@@ -90,8 +96,10 @@ FILES_libgles2-mesa = "${libdir}/libGLESv2.so.*"
 FILES_libgl-mesa = "${libdir}/libGL.so.*"
 FILES_libglapi = "${libdir}/libglapi.so.*"
 FILES_libosmesa = "${libdir}/libOSMesa.so.*"
+FILES_wayland-egl = "${libdir}/libwayland-egl.so.*"
 
 FILES_${PN}-dev = "${libdir}/pkgconfig/dri.pc"
+FILES_wayland-egl-dev = "${libdir}/pkgconfig/wayland-egl.pc ${libdir}/libwayland-egl.*"
 FILES_libdricore-dev = "${libdir}/libdricore*.*"
 FILES_libegl-mesa-dev = "${libdir}/libEGL.* ${includedir}/EGL ${includedir}/KHR ${libdir}/pkgconfig/egl.pc"
 FILES_libgbm-dev = "${libdir}/libgbm.* ${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h"
diff --git a/meta/recipes-graphics/mesa/mesa-dri.inc b/meta/recipes-graphics/mesa/mesa-dri.inc
index 07544ab..1f6ec78 100644
--- a/meta/recipes-graphics/mesa/mesa-dri.inc
+++ b/meta/recipes-graphics/mesa/mesa-dri.inc
@@ -13,6 +13,7 @@ PACKAGECONFIG[gles] = "--enable-gles1 --enable-gles2, --disable-gles1 --disable-
 
 EGL_PLATFORMS  = "drm"
 EGL_PLATFORMS .="${@base_contains('DISTRO_FEATURES', 'x11', ',x11', '', d)}"
+EGL_PLATFORMS .="${@base_contains('DISTRO_FEATURES', 'wayland', ',wayland', '', d)}"
 PACKAGECONFIG[egl] = "--enable-egl --with-egl-platforms=${EGL_PLATFORMS}, --disable-egl"
 
 python populate_packages_prepend() {
diff --git a/meta/recipes-graphics/mesa/mesa-dri_git.bb b/meta/recipes-graphics/mesa/mesa-dri_git.bb
index 69a433e..6327ef0 100644
--- a/meta/recipes-graphics/mesa/mesa-dri_git.bb
+++ b/meta/recipes-graphics/mesa/mesa-dri_git.bb
@@ -5,4 +5,7 @@ require mesa-dri.inc
 # this needs to be lower than -1 because all mesa-dri have -1 and git version has highest PV, but shouldn't be default
 DEFAULT_PREFERENCE = "-2"
 
+# if we're using a OVERRIDES = "weston" in local.conf
+DEFAULT_PREFERENCE_weston = "1"
+
 PR = "${INC_PR}.0"
-- 
1.7.10.4




^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 3/3] Initial commit for wayland/weston 1.0.3
  2013-01-07 16:06 [PATCH v4 0/3] Initial wayland integration Alex DAMIAN
  2013-01-07 16:06 ` [PATCH 1/3] Wayland userspace library initial 1.0.3 Alex DAMIAN
  2013-01-07 16:06 ` [PATCH 2/3] Prepare mesa-dri for weston compatibility Alex DAMIAN
@ 2013-01-07 16:06 ` Alex DAMIAN
  2013-01-08  9:58   ` Burton, Ross
  2 siblings, 1 reply; 8+ messages in thread
From: Alex DAMIAN @ 2013-01-07 16:06 UTC (permalink / raw)
  To: openembedded-core, sgw, richard.purdie, ross.burton; +Cc: Alexandru DAMIAN

From: Alexandru DAMIAN <alexandru.damian@intel.com>

This patch adds the Weston reference compositing
manager from Wayland.

We add version 1.0.3 which is the latest stable release
in Dec 2012. See the upstream at:

http://wayland.freedesktop.org/releases.html

To enable building, set in local.conf

 #Build mesa-dri compatible packages
 OVERRIDES += ":weston"
 #Enable the wayland distro feature
 DISTRO_FEATURES_append_weston = " wayland "

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
---
 meta/recipes-graphics/wayland/weston.inc      |   23 +++++++++++++++++++++++
 meta/recipes-graphics/wayland/weston_1.0.3.bb |    9 +++++++++
 2 files changed, 32 insertions(+)
 create mode 100644 meta/recipes-graphics/wayland/weston.inc
 create mode 100644 meta/recipes-graphics/wayland/weston_1.0.3.bb

diff --git a/meta/recipes-graphics/wayland/weston.inc b/meta/recipes-graphics/wayland/weston.inc
new file mode 100644
index 0000000..2293589
--- /dev/null
+++ b/meta/recipes-graphics/wayland/weston.inc
@@ -0,0 +1,23 @@
+inherit autotools pkgconfig
+
+SUMMARY = "Weston, a Wayland compositor"
+DESCRIPTION = "Weston is the reference implementation of a Wayland compositor"
+HOMEPAGE = "http://wayland.freedesktop.org"
+SECTION = "wayland/base"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=275efac2559a224527bd4fd593d38466"
+
+DEPENDS = "wayland mesa-dri libxkbcommon gdk-pixbuf pixman cairo glib-2.0 mtdev jpeg"
+DEPENDS += "virtual/egl"
+
+EXTRA_OECONF  = "--enable-wayland-compositor --disable-android-compositor"
+EXTRA_OECONF += "--enable-setuid-install --enable-simple-clients"
+EXTRA_OECONF += "--enable-clients --disable-xwayland"
+
+PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'wayland', 'kms', '', d)} \
+                   ${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
+                   ${@base_contains('DISTRO_FEATURES', 'opengles2', 'gles', '', d)} \
+                  "
+PACKAGECONFIG[kms] = "--enable-drm-compositor,--disable-drm-compositor,drm udev mesa-dri libpam"
+PACKAGECONFIG[x11] = "--enable-x11-compositor,--disable-x11-compositor,virtual/libx11 libxcb libxcb libxcursor cairo"
+PACKAGECONFIG[gles] = "--with-cairo-glesv2,,virtual/libgles2"
diff --git a/meta/recipes-graphics/wayland/weston_1.0.3.bb b/meta/recipes-graphics/wayland/weston_1.0.3.bb
new file mode 100644
index 0000000..625965b
--- /dev/null
+++ b/meta/recipes-graphics/wayland/weston_1.0.3.bb
@@ -0,0 +1,9 @@
+require weston.inc
+
+SRC_URI = "http://wayland.freedesktop.org/releases/weston-1.0.3.tar.xz \
+	  "
+SRC_URI[md5sum] = "f82ac2e013e6b6a6303ac4ba7b64c7f2"
+SRC_URI[sha256sum] = "3136a7d2f654ea3e946d4217f7e25321248ad2921f1f4e2504dda58968e04853"
+
+PR = "r0"
+
-- 
1.7.10.4




^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/3] Wayland userspace library initial 1.0.3
  2013-01-07 16:06 ` [PATCH 1/3] Wayland userspace library initial 1.0.3 Alex DAMIAN
@ 2013-01-08  9:52   ` Burton, Ross
  0 siblings, 0 replies; 8+ messages in thread
From: Burton, Ross @ 2013-01-08  9:52 UTC (permalink / raw)
  To: Alex DAMIAN; +Cc: openembedded-core

On 7 January 2013 16:06, Alex DAMIAN <alexandru.damian@intel.com> wrote:
> +do_install_append_class-native() {
> +  sed -i -e '4,10s,prefix=.*$,prefix=${D}/${prefix},;4,10s,exec_prefix=,exec_prefix=${D}/${exec_prefix},' \
> +    ${D}/${datadir}/aclocal/wayland-scanner.m4
> +}

My previous comments still stand:

The use of addresses seems fragile, would it be safer to inject the
paths pre-configure when @prefix@ is easily replaceable?  As is to
demonstrate this, you missed a @datarootdir@ replacement.  Probably
best to do a replacement pre-configure on the @foo@ symbols.

Also using STAGING_BINDIR_NATIVE and STAGING_DATADIR_NATIVE would be clearer.

Ross



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/3] Prepare mesa-dri for weston compatibility
  2013-01-07 16:06 ` [PATCH 2/3] Prepare mesa-dri for weston compatibility Alex DAMIAN
@ 2013-01-08  9:54   ` Burton, Ross
  2013-01-08 10:05   ` Burton, Ross
  1 sibling, 0 replies; 8+ messages in thread
From: Burton, Ross @ 2013-01-08  9:54 UTC (permalink / raw)
  To: Alex DAMIAN; +Cc: openembedded-core

On 7 January 2013 16:06, Alex DAMIAN <alexandru.damian@intel.com> wrote:
> +# if we're using a OVERRIDES = "weston" in local.conf
> +DEFAULT_PREFERENCE_weston = "1"

Don't bother.  As I've said before Mesa 9.0.1 is going to be merged
shortly (there was a failure on ARM, which is now sorted) and that can
build Wayland, so if we merged this patch *now* this chunk would be
deleted again in a few days time.

Ross



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 3/3] Initial commit for wayland/weston 1.0.3
  2013-01-07 16:06 ` [PATCH 3/3] Initial commit for wayland/weston 1.0.3 Alex DAMIAN
@ 2013-01-08  9:58   ` Burton, Ross
  0 siblings, 0 replies; 8+ messages in thread
From: Burton, Ross @ 2013-01-08  9:58 UTC (permalink / raw)
  To: Alex DAMIAN; +Cc: openembedded-core

On 7 January 2013 16:06, Alex DAMIAN <alexandru.damian@intel.com> wrote:
> From: Alexandru DAMIAN <alexandru.damian@intel.com>
>
> This patch adds the Weston reference compositing
> manager from Wayland.
>
> We add version 1.0.3 which is the latest stable release
> in Dec 2012. See the upstream at:
>
> http://wayland.freedesktop.org/releases.html

Remove this, it's obvious from the commit which version you're using.

> To enable building, set in local.conf
>
>  #Build mesa-dri compatible packages
>  OVERRIDES += ":weston"

As in 2/3, don't do this.

>  #Enable the wayland distro feature
>  DISTRO_FEATURES_append_weston = " wayland "

Surely you want the wayland feature globally, so that mesa builds with
Wayland support?  'To enable wayland, add "wayland" to
DISTRO_FEATURES.' is all you need.

Ross



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/3] Prepare mesa-dri for weston compatibility
  2013-01-07 16:06 ` [PATCH 2/3] Prepare mesa-dri for weston compatibility Alex DAMIAN
  2013-01-08  9:54   ` Burton, Ross
@ 2013-01-08 10:05   ` Burton, Ross
  1 sibling, 0 replies; 8+ messages in thread
From: Burton, Ross @ 2013-01-08 10:05 UTC (permalink / raw)
  To: Alex DAMIAN; +Cc: openembedded-core

On 7 January 2013 16:06, Alex DAMIAN <alexandru.damian@intel.com> wrote:
> +             wayland-egl wayland-egl-dev \

"libwayland-egl" and "libwayland-egl-dev", please.

Ross



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2013-01-08 10:21 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-01-07 16:06 [PATCH v4 0/3] Initial wayland integration Alex DAMIAN
2013-01-07 16:06 ` [PATCH 1/3] Wayland userspace library initial 1.0.3 Alex DAMIAN
2013-01-08  9:52   ` Burton, Ross
2013-01-07 16:06 ` [PATCH 2/3] Prepare mesa-dri for weston compatibility Alex DAMIAN
2013-01-08  9:54   ` Burton, Ross
2013-01-08 10:05   ` Burton, Ross
2013-01-07 16:06 ` [PATCH 3/3] Initial commit for wayland/weston 1.0.3 Alex DAMIAN
2013-01-08  9:58   ` Burton, Ross

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.