diff --git a/package/Config.in b/package/Config.in index c8f23c2712..d1b31d63fb 100644 --- a/package/Config.in +++ b/package/Config.in @@ -342,6 +342,7 @@ comment "QT libraries and helper libraries" endif source "package/tekui/Config.in" source "package/weston/Config.in" + source "package/weston-imx/Config.in" source "package/x11r7/Config.in" comment "X applications" diff --git a/package/weston-imx/Config.in b/package/weston-imx/Config.in new file mode 100644 index 0000000000..712341b24e --- /dev/null +++ b/package/weston-imx/Config.in @@ -0,0 +1,115 @@ +comment "weston-imx needs udev and a toolchain w/ locale, threads, dynamic library, headers >= 3.0" + depends on !BR2_PACKAGE_HAS_UDEV || !BR2_TOOLCHAIN_HAS_THREADS || \ + !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 || BR2_STATIC_LIBS || \ + !BR2_ENABLE_LOCALE + depends on BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL + depends on !BR2_PACKAGE_WESTON + +comment "weston-imx needs imx-gpu-viv with wyalnd output" + depends on (BR2_arm && BR2_ARM_EABIHF) || BR2_aarch64 # imx-gpu-viv + depends on !BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL + depends on !BR2_PACKAGE_WESTON + +config BR2_PACKAGE_WESTON_IMX + bool "weston-imx" + depends on !BR2_STATIC_LIBS # wayland + depends on BR2_TOOLCHAIN_HAS_THREADS # wayland + depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 + depends on BR2_ENABLE_LOCALE # libinput + depends on BR2_PACKAGE_HAS_UDEV + depends on BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL + depends on !BR2_PACKAGE_WESTON + select BR2_PACKAGE_WAYLAND + select BR2_PACKAGE_WAYLAND_PROTOCOLS + select BR2_PACKAGE_LIBXKBCOMMON + select BR2_PACKAGE_CAIRO + select BR2_PACKAGE_CAIRO_PNG + select BR2_PACKAGE_LIBPNG + select BR2_PACKAGE_JPEG + select BR2_PACKAGE_LIBINPUT + select BR2_PACKAGE_LIBDRM + # Runtime dependency + select BR2_PACKAGE_XKEYBOARD_CONFIG + # Make sure at least one compositor is selected. + select BR2_PACKAGE_WESTON_IMX_FBDEV if !BR2_PACKAGE_WESTON_IMX_HAS_COMPOSITOR + help + Weston is the reference implementation of a Wayland + compositor, and a useful compositor in its own right. + Weston has various backends that lets it run on Linux kernel + modesetting and evdev input as well as under X11. + + http://wayland.freedesktop.org/ + +if BR2_PACKAGE_WESTON_IMX + +# Helper to make sure at least one compositor is selected. +config BR2_PACKAGE_WESTON_IMX_HAS_COMPOSITOR + bool + +config BR2_PACKAGE_WESTON_IMX_DRM + bool "DRM compositor" + depends on BR2_PACKAGE_MESA3D_OPENGL_EGL + select BR2_PACKAGE_WESTON_IMX_HAS_COMPOSITOR + +# Uses libgbm from mesa3d +comment "DRM compositor needs an OpenGL EGL backend provided by mesa3d" + depends on !BR2_PACKAGE_MESA3D_OPENGL_EGL + +config BR2_PACKAGE_WESTON_IMX_FBDEV + bool "fbdev compositor" + +# FreeRDP needs threads and !static, already the case for weston +config BR2_PACKAGE_WESTON_IMX_RDP + bool "RDP compositor" + depends on BR2_USE_MMU # freerdp, libglib2 + depends on BR2_TOOLCHAIN_HAS_SYNC_4 + depends on BR2_USE_WCHAR # freerdp + depends on BR2_INSTALL_LIBSTDCPP # freerdp + select BR2_PACKAGE_FREERDP + select BR2_PACKAGE_WESTON_IMX_HAS_COMPOSITOR + help + This enables the RDP backend, which allows accessing weston + through the network with any RDP-compliant client. + + Please note that one must pass those options to weston for RDP + to be functional: + --rdp-tls-cert=/path/to/server.crt + --rdp-tls-key=/path/to/server.key + + By default, Buildroot installs such files in + /etc/freerdp/server/ so you may want to change them in a + post-build script or a rootfs overlay. + +comment "RDP compositor needs a toolchain w/ wchar, C++" + depends on BR2_USE_MMU + depends on BR2_TOOLCHAIN_HAS_SYNC_4 + depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP + +config BR2_PACKAGE_WESTON_IMX_X11 + bool "X11 compositor" + depends on BR2_PACKAGE_XORG7 + select BR2_PACKAGE_LIBXCB + select BR2_PACKAGE_XLIB_LIBX11 + select BR2_PACKAGE_WESTON_IMX_HAS_COMPOSITOR + +comment "X11 compositor needs X.org enabled" + depends on !BR2_PACKAGE_XORG7 + +config BR2_PACKAGE_WESTON_IMX_XWAYLAND + bool "XWayland support" + depends on BR2_PACKAGE_XORG7 + depends on BR2_PACKAGE_LIBEPOXY + select BR2_PACKAGE_CAIRO + select BR2_PACKAGE_LIBXCB + select BR2_PACKAGE_XLIB_LIBX11 + select BR2_PACKAGE_XLIB_LIBXCURSOR + +comment "XWayland support needs libepoxy and X.org enabled" + depends on !BR2_PACKAGE_XORG7 || !BR2_PACKAGE_LIBEPOXY + +config BR2_PACKAGE_WESTON_IMX_DEMO_CLIENTS + bool "demo clients" + help + This enables the installation of Weston's demo clients. + +endif diff --git a/package/weston-imx/weston-imx.hash b/package/weston-imx/weston-imx.hash new file mode 100644 index 0000000000..759a9b6554 --- /dev/null +++ b/package/weston-imx/weston-imx.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 f39f7a24a01b023aa204ad47977a6476c17a307769f29d408621a05b5cbbcfc7 weston-imx-rel_imx_4.9.51_8mq_ga.tar.gz diff --git a/package/weston-imx/weston-imx.mk b/package/weston-imx/weston-imx.mk new file mode 100644 index 0000000000..e803fa3ee2 --- /dev/null +++ b/package/weston-imx/weston-imx.mk @@ -0,0 +1,144 @@ +################################################################################ +# +# weston-imx +# +################################################################################ + +WESTON_IMX_VERSION = rel_imx_4.9.51_8mq_ga +WESTON_IMX_SITE = https://source.codeaurora.org/external/imx/weston-imx +WESTON_IMX_SITE_METHOD = git +WESTON_IMX_AUTORECONF = YES +WESTON_IMX_LICENSE = MIT +WESTON_IMX_LICENSE_FILES = COPYING + +WESTON_IMX_DEPENDENCIES = host-pkgconf wayland wayland-protocols \ + libxkbcommon pixman libpng jpeg udev cairo libinput libdrm \ + $(if $(BR2_PACKAGE_WEBP),webp) + +WESTON_IMX_CONF_OPTS = \ + --with-dtddir=$(STAGING_DIR)/usr/share/wayland \ + --disable-headless-compositor \ + --disable-colord \ + --disable-devdocs \ + --disable-setuid-install + +WESTON_IMX_MAKE_OPTS = \ + WAYLAND_PROTOCOLS_DATADIR=$(STAGING_DIR)/usr/share/wayland-protocols + +# Uses VIDIOC_EXPBUF, only available from 3.8+ +ifeq ($(BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8),) +WESTON_IMX_CONF_OPTS += --disable-simple-dmabuf-v4l-client +endif + +ifeq ($(BR2_PACKAGE_DBUS),y) +WESTON_IMX_CONF_OPTS += --enable-dbus +WESTON_IMX_DEPENDENCIES += dbus +else +WESTON_IMX_CONF_OPTS += --disable-dbus +endif + +# weston-launch must be u+s root in order to work properly +ifeq ($(BR2_PACKAGE_LINUX_PAM),y) +define WESTON_IMX_PERMISSIONS + /usr/bin/weston-launch f 4755 0 0 - - - - - +endef +define WESTON_IMX_USERS + - - weston-launch -1 - - - - Weston launcher group +endef +WESTON_IMX_CONF_OPTS += --enable-weston-launch +WESTON_IMX_DEPENDENCIES += linux-pam +else +WESTON_IMX_CONF_OPTS += --disable-weston-launch +endif + +ifeq ($(BR2_PACKAGE_IMX_GPU_G2D),y) +WESTON_IMX_DEPENDENCIES += imx-gpu-g2d +# --enable-imxg2d actually disables it, so no CONF_OPTS +else +WESTON_IMX_CONF_OPTS += --disable-imxg2d +endif + +ifeq ($(BR2_PACKAGE_HAS_LIBEGL_WAYLAND)$(BR2_PACKAGE_HAS_LIBGLES),yy) +WESTON_IMX_CONF_OPTS += --enable-egl +WESTON_IMX_DEPENDENCIES += libegl libgles +else +WESTON_IMX_CONF_OPTS += \ + --disable-egl \ + --disable-simple-dmabuf-drm-client \ + --disable-simple-egl-clients +endif + +ifeq ($(BR2_PACKAGE_WESTON_IMX_RDP),y) +WESTON_IMX_DEPENDENCIES += freerdp +WESTON_IMX_CONF_OPTS += --enable-rdp-compositor +else +WESTON_IMX_CONF_OPTS += --disable-rdp-compositor +endif + +ifeq ($(BR2_PACKAGE_WESTON_IMX_FBDEV),y) +WESTON_IMX_CONF_OPTS += \ + --enable-fbdev-compositor \ + WESTON_IMX_NATIVE_BACKEND=fbdev-backend.so +else +WESTON_IMX_CONF_OPTS += --disable-fbdev-compositor +endif + +ifeq ($(BR2_PACKAGE_WESTON_IMX_DRM),y) +WESTON_IMX_CONF_OPTS += \ + --enable-drm-compositor \ + WESTON_IMX_NATIVE_BACKEND=drm-backend.so +else +WESTON_IMX_CONF_OPTS += --disable-drm-compositor +endif + +ifeq ($(BR2_PACKAGE_WESTON_IMX_X11),y) +WESTON_IMX_CONF_OPTS += \ + --enable-x11-compositor \ + WESTON_IMX_NATIVE_BACKEND=x11-backend.so +WESTON_IMX_DEPENDENCIES += libxcb xlib_libX11 +else +WESTON_IMX_CONF_OPTS += --disable-x11-compositor +endif + +ifeq ($(BR2_PACKAGE_WESTON_IMX_XWAYLAND),y) +WESTON_IMX_CONF_OPTS += --enable-xwayland +WESTON_IMX_DEPENDENCIES += cairo libepoxy libxcb xlib_libX11 xlib_libXcursor +else +WESTON_IMX_CONF_OPTS += --disable-xwayland +endif + +ifeq ($(BR2_PACKAGE_LIBVA),y) +WESTON_IMX_CONF_OPTS += --enable-vaapi-recorder +WESTON_IMX_DEPENDENCIES += libva +else +WESTON_IMX_CONF_OPTS += --disable-vaapi-recorder +endif + +ifeq ($(BR2_PACKAGE_LCMS2),y) +WESTON_IMX_CONF_OPTS += --enable-lcms +WESTON_IMX_DEPENDENCIES += lcms2 +else +WESTON_IMX_CONF_OPTS += --disable-lcms +endif + +ifeq ($(BR2_PACKAGE_SYSTEMD),y) +WESTON_IMX_CONF_OPTS += --enable-systemd-login --enable-systemd-notify +WESTON_IMX_DEPENDENCIES += systemd +else +WESTON_IMX_CONF_OPTS += --disable-systemd-login --disable-systemd-notify +endif + +ifeq ($(BR2_PACKAGE_LIBXML2),y) +WESTON_IMX_CONF_OPTS += --enable-junit-xml +WESTON_IMX_DEPENDENCIES += libxml2 +else +WESTON_IMX_CONF_OPTS += --disable-junit-xml +endif + +ifeq ($(BR2_PACKAGE_WESTON_IMX_DEMO_CLIENTS),y) +WESTON_IMX_CONF_OPTS += --enable-demo-clients-install +else +WESTON_IMX_CONF_OPTS += --disable-demo-clients-install +endif + +$(eval $(autotools-package)) diff --git a/package/weston/weston.hash b/package/weston/weston.hash index a2dddf7a5b..c9b2d4b1ce 100644 --- a/package/weston/weston.hash +++ b/package/weston/weston.hash @@ -3,5 +3,3 @@ md5 e7b10710ef1eac82258f97bfd41fe534 weston-6.0.1.tar.xz sha1 3b39e454b3dc8dc32598790cfcc65728b448378b weston-6.0.1.tar.xz sha256 bf2f6d5aae2e11cabb6bd69a76bcf9edb084f8c3e14ca769bea7234a513155b4 weston-6.0.1.tar.xz sha512 3da04ff9b884480ce0824950347185e55584e3938021fe62014423d3d51577eafdda8de650a5de6eb37a842130c9cb14c7a952a560f6be93ff973164363af3d9 weston-6.0.1.tar.xz -# locally computed -sha256 0f0de7b7b1f65870139c95dde7abc19ed305631ae7c5d37c386db40cde108632 weston-rel_imx_4.9.51_8mq_ga.tar.gz diff --git a/package/weston/weston.mk b/package/weston/weston.mk index ee3d3be87e..154ae38b83 100644 --- a/package/weston/weston.mk +++ b/package/weston/weston.mk @@ -4,16 +4,9 @@ # ################################################################################ -ifeq ($(BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL),y) -WESTON_VERSION = rel_imx_4.9.51_8mq_ga -WESTON_SITE = https://source.codeaurora.org/external/imx/weston-imx -WESTON_SITE_METHOD = git -WESTON_AUTORECONF = YES -else WESTON_VERSION = 6.0.1 WESTON_SITE = http://wayland.freedesktop.org/releases WESTON_SOURCE = weston-$(WESTON_VERSION).tar.xz -endif WESTON_LICENSE = MIT WESTON_LICENSE_FILES = COPYING @@ -58,15 +51,6 @@ else WESTON_CONF_OPTS += --disable-weston-launch endif -ifeq ($(BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL),y) -ifeq ($(BR2_PACKAGE_IMX_GPU_G2D),y) -WESTON_DEPENDENCIES += imx-gpu-g2d -# --enable-imxg2d actually disables it, so no CONF_OPTS -else -WESTON_CONF_OPTS += --disable-imxg2d -endif -endif - ifeq ($(BR2_PACKAGE_HAS_LIBEGL_WAYLAND)$(BR2_PACKAGE_HAS_LIBGLES),yy) WESTON_CONF_OPTS += --enable-egl WESTON_DEPENDENCIES += libegl libgles