diff --git a/packages/addons/addon-depends/gdk-pixbuf/package.mk b/packages/addons/addon-depends/gdk-pixbuf/package.mk
index 8a57c970f8..cac488929f 100644
--- a/packages/addons/addon-depends/gdk-pixbuf/package.mk
+++ b/packages/addons/addon-depends/gdk-pixbuf/package.mk
@@ -39,4 +39,5 @@ PKG_CONFIGURE_OPTS_TARGET="gio_can_sniff=yes \
--with-libpng \
--with-libjpeg \
--with-libtiff \
+ --enable-introspection=no \
--with-libjasper"
diff --git a/packages/addons/addon-depends/harfbuzz/package.mk b/packages/addons/addon-depends/harfbuzz/package.mk
index c936ecd12f..6e28b2ca41 100644
--- a/packages/addons/addon-depends/harfbuzz/package.mk
+++ b/packages/addons/addon-depends/harfbuzz/package.mk
@@ -25,13 +25,17 @@ PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.freedesktop.org/wiki/Software/HarfBuzz"
PKG_URL="http://www.freedesktop.org/software/harfbuzz/release/$PKG_NAME-$PKG_VERSION.tar.bz2"
-PKG_DEPENDS_TARGET="toolchain glib freetype cairo icu"
+PKG_DEPENDS_TARGET="toolchain glib freetype icu"
PKG_SECTION="x11/toolkits"
PKG_SHORTDESC="harfbuzz: an OpenType text shaping engine."
PKG_LONGDESC="HarfBuzz is an OpenType text shaping engine."
PKG_CONFIGURE_OPTS_TARGET="--with-icu=yes"
+if [ "$DISPLAYSERVER" = "x11" ] ; then
+ PKG_DEPENDS_TARGET+=" cairo"
+fi
+
pre_configure_target() {
export LIBS="-ldl"
}
diff --git a/packages/addons/addon-depends/pango/package.mk b/packages/addons/addon-depends/pango/package.mk
index d3c14015fd..338f57ae77 100644
--- a/packages/addons/addon-depends/pango/package.mk
+++ b/packages/addons/addon-depends/pango/package.mk
@@ -25,7 +25,7 @@ PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.pango.org/"
PKG_URL="http://ftp.gnome.org/pub/gnome/sources/pango/1.40/$PKG_NAME-$PKG_VERSION.tar.xz"
-PKG_DEPENDS_TARGET="toolchain glib cairo freetype fontconfig libX11 libXft harfbuzz"
+PKG_DEPENDS_TARGET="toolchain glib freetype fontconfig harfbuzz"
PKG_SECTION="x11/toolkits"
PKG_SHORTDESC="pango: Library for layout and rendering of internationalized text"
PKG_LONGDESC="The goal of the Pango project is to provide an open-source framework for the layout and rendering of internationalized text. Pango is an offshoot of the GTK+ and GNOME projects, and the initial focus is operation in those environments, however there is nothing fundamentally GTK+ or GNOME specific about Pango. Pango uses Unicode for all of its encoding, and will eventually support output in all the worlds major languages."
@@ -34,5 +34,13 @@ PKG_TOOLCHAIN="autotools"
PKG_CONFIGURE_OPTS_TARGET="--disable-doc-cross-references \
--disable-gtk-doc \
--disable-man \
- --enable-debug=no \
- --with-xft"
+ --enable-debug=no"
+
+if [ "$DISPLAYSERVER" = "x11" ] ; then
+ PKG_DEPENDS_TARGET+=" cairo libX11 libXft"
+ PKG_CONFIGURE_OPTS_TARGET+=" --with-xft"
+fi
+
+if [ "$DISPLAYSERVER" = "weston" ] ; then
+ PKG_DEPENDS_TARGET+=" wayland"
+fi
diff --git a/packages/graphics/cairo/package.mk b/packages/graphics/cairo/package.mk
index e6d85df2fc..17e708bdfb 100644
--- a/packages/graphics/cairo/package.mk
+++ b/packages/graphics/cairo/package.mk
@@ -17,8 +17,8 @@
################################################################################
PKG_NAME="cairo"
-PKG_VERSION="1.14.6"
-PKG_SHA256="613cb38447b76a93ff7235e17acd55a78b52ea84a9df128c3f2257f8eaa7b252"
+PKG_VERSION="1.14.10"
+PKG_SHA256="7e87878658f2c9951a14fc64114d4958c0e65ac47530b8ac3078b2ce41b66a09"
PKG_ARCH="any"
PKG_LICENSE="LGPL"
PKG_SITE="http://cairographics.org/"
@@ -29,6 +29,14 @@ PKG_SHORTDESC="cairo: Multi-platform 2D graphics library"
PKG_LONGDESC="Cairo is a vector graphics library with cross-device output support. Currently supported output targets include the X Window System and in-memory image buffers. PostScript and PDF file output is planned. Cairo is designed to produce identical output on all output media while taking advantage of display hardware acceleration when available."
PKG_TOOLCHAIN="configure" # ToDo
+if [ "$OPENGL" != "no" ]; then
+ PKG_DEPENDS_TARGET+=" $OPENGL"
+fi
+
+if [ "$OPENGLES" != "no" ]; then
+ PKG_DEPENDS_TARGET+=" $OPENGLES"
+fi
+
if [ "$DISPLAYSERVER" = "x11" ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libXrender libX11 mesa"
PKG_CAIRO_CONFIG="--x-includes="$SYSROOT_PREFIX/usr/include" \
diff --git a/packages/graphics/libepoxy/package.mk b/packages/graphics/libepoxy/package.mk
index 2cf166cfa0..bb30ae548b 100644
--- a/packages/graphics/libepoxy/package.mk
+++ b/packages/graphics/libepoxy/package.mk
@@ -22,14 +22,26 @@
# in Xorg.log
PKG_NAME="libepoxy"
-PKG_VERSION="1.4.2"
-PKG_SHA256="bea6fdec3d10939954495da898d872ee836b75c35699074cbf02a64fcb80d5b3"
+PKG_VERSION="1.4.3"
+PHG_SHA256="0b808a06c9685a62fca34b680abb8bc7fb2fda074478e329b063c1f872b826f6"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/anholt/libepoxy"
PKG_URL="https://github.com/anholt/libepoxy/releases/download/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.xz"
-PKG_DEPENDS_TARGET="toolchain $OPENGL"
+PKG_DEPENDS_TARGET="toolchain"
PKG_SECTION="graphics"
PKG_SHORTDESC="libepoxy: a library for handling OpenGL function pointer management for you."
PKG_LONGDESC="Epoxy is a library for handling OpenGL function pointer management for you."
PKG_TOOLCHAIN="autotools"
+
+if [ "$OPENGL" != "no" ]; then
+ PKG_DEPENDS_TARGET+=" $OPENGL"
+fi
+
+if [ "$OPENGLES" != "no" ]; then
+ PKG_DEPENDS_TARGET+=" $OPENGLES"
+fi
+
+if [ "$DISPLAYSERVER" != "x11" ]; then
+ PKG_CONFIGURE_OPTS_TARGET="--disable-glx"
+fi
diff --git a/packages/graphics/mesa/package.mk b/packages/graphics/mesa/package.mk
index 7228ff79bb..49a1611b50 100644
--- a/packages/graphics/mesa/package.mk
+++ b/packages/graphics/mesa/package.mk
@@ -37,6 +37,12 @@ if [ "$DISPLAYSERVER" = "x11" ]; then
MESA_DRI="--enable-dri --enable-dri3"
MESA_GLX="--enable-glx --enable-driglx-direct --enable-glx-tls"
MESA_PLATFORMS="--with-platforms=x11,drm"
+elif [ "$DISPLAYSERVER" = "weston" ]; then
+ PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET wayland wayland-protocols"
+ MESA_DRI="--enable-dri --disable-dri3"
+ # The glx in glx-tls is a misnomer - there's nothing glx in it.
+ MESA_GLX="--disable-glx --disable-driglx-direct --enable-glx-tls"
+ MESA_PLATFORMS="--with-platforms=drm,wayland"
else
MESA_DRI="--enable-dri --disable-dri3"
# The glx in glx-tls is a misnomer - there's nothing glx in it.
@@ -104,7 +110,6 @@ PKG_CONFIGURE_OPTS_TARGET="CC_FOR_BUILD=$HOST_CC \
--enable-shared-glapi \
$MESA_GALLIUM_LLVM \
--disable-silent-rules \
- --with-gl-lib-name=GL \
--with-osmesa-lib-name=OSMesa \
--with-gallium-drivers=$GALLIUM_DRIVERS \
--with-dri-drivers=$DRI_DRIVERS \
diff --git a/packages/graphics/tiff/package.mk b/packages/graphics/tiff/package.mk
index 14fd951279..17666e7cda 100644
--- a/packages/graphics/tiff/package.mk
+++ b/packages/graphics/tiff/package.mk
@@ -36,7 +36,8 @@ PKG_CONFIGURE_OPTS_TARGET="--enable-static \
--with-gl=no \
--with-jpeg-lib-dir=$SYSROOT_PREFIX/usr/lib \
--with-jpeg-include-dir=$SYSROOT_PREFIX/usr/include \
- --without-x"
+ --without-x \
+ --with-gl=no"
pre_configure_target() {
export CFLAGS="$CFLAGS -fPIC -DPIC"
diff --git a/packages/mediacenter/kodi/package.mk b/packages/mediacenter/kodi/package.mk
index bbb6531437..1d5f95d840 100644
--- a/packages/mediacenter/kodi/package.mk
+++ b/packages/mediacenter/kodi/package.mk
@@ -36,6 +36,11 @@ PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET dbus"
if [ "$DISPLAYSERVER" = "x11" ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libX11 libXext libdrm libXrandr"
KODI_XORG="-DCORE_PLATFORM_NAME=x11"
+elif [ "$DISPLAYSERVER" = "weston" ]; then
+ PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET wayland waylandpp"
+ CFLAGS="$CFLAGS -DMESA_EGL_NO_X11_HEADERS"
+ CXXFLAGS="$CXXFLAGS -DMESA_EGL_NO_X11_HEADERS"
+ KODI_XORG="-DCORE_PLATFORM_NAME=wayland -DWAYLAND_RENDER_SYSTEM=gles"
fi
if [ ! "$OPENGL" = "no" ]; then
diff --git a/packages/mediacenter/kodi/system.d/kodi.service b/packages/mediacenter/kodi/system.d/kodi.service
index e09747bfd1..4cd8406f35 100644
--- a/packages/mediacenter/kodi/system.d/kodi.service
+++ b/packages/mediacenter/kodi/system.d/kodi.service
@@ -7,6 +7,7 @@ Wants=network-online.target
[Service]
Environment=__GL_YIELD=USLEEP
Environment=DISPLAY=:0.0
+Environment=WAYLAND_DISPLAY=wayland-0
Environment=SDL_MOUSE_RELATIVE=0
Environment=HOME=/storage
Environment=KODI_TEMP=/storage/.kodi/temp
diff --git a/packages/multimedia/intel-vaapi-driver/package.mk b/packages/multimedia/intel-vaapi-driver/package.mk
index 2dcd142181..f628abec46 100644
--- a/packages/multimedia/intel-vaapi-driver/package.mk
+++ b/packages/multimedia/intel-vaapi-driver/package.mk
@@ -30,12 +30,13 @@ PKG_LONGDESC="intel-vaapi-driver: VA-API user mode driver for Intel GEN Graphics
PKG_TOOLCHAIN="autotools"
if [ "$DISPLAYSERVER" = "x11" ]; then
- DISPLAYSERVER_LIBVA="--enable-x11"
+ DISPLAYSERVER_LIBVA="--enable-x11 --disable-wayland"
+elif [ "$DISPLAYSERVER" = "weston" ]; then
+ DISPLAYSERVER_LIBVA="--disable-x11 --enable-wayland"
else
- DISPLAYSERVER_LIBVA="--disable-x11"
+ DISPLAYSERVER_LIBVA="--disable-x11 --disable-wayland"
fi
PKG_CONFIGURE_OPTS_TARGET="--disable-silent-rules \
--enable-drm \
- --disable-wayland \
$DISPLAYSERVER_LIBVA"
diff --git a/packages/multimedia/libva/package.mk b/packages/multimedia/libva/package.mk
index 26e95cf74c..1b7b491819 100644
--- a/packages/multimedia/libva/package.mk
+++ b/packages/multimedia/libva/package.mk
@@ -30,10 +30,13 @@ PKG_TOOLCHAIN="autotools"
if [ "$DISPLAYSERVER" = "x11" ]; then
PKG_DEPENDS_TARGET="toolchain libX11 libXext libXfixes libdrm mesa"
- DISPLAYSERVER_LIBVA="--enable-x11 --enable-glx"
+ DISPLAYSERVER_LIBVA="--enable-x11 --enable-glx --disable-wayland"
+elif [ "$DISPLAYSERVER" = "weston" ]; then
+ DISPLAYSERVER_LIBVA="--disable-x11 --disable-glx --enable-wayland"
+ PKG_DEPENDS_TARGET="toolchain libdrm mesa wayland"
else
PKG_DEPENDS_TARGET="toolchain libdrm"
- DISPLAYSERVER_LIBVA="--disable-x11 --disable-glx"
+ DISPLAYSERVER_LIBVA="--disable-x11 --disable-glx --disable-wayland"
fi
PKG_CONFIGURE_OPTS_TARGET="--disable-silent-rules \
@@ -41,5 +44,4 @@ PKG_CONFIGURE_OPTS_TARGET="--disable-silent-rules \
--enable-drm \
--enable-egl \
$DISPLAYSERVER_LIBVA \
- --disable-wayland \
--disable-dummy-driver"
diff --git a/packages/wayland/libxkbcommon/package.mk b/packages/wayland/libxkbcommon/package.mk
index e85d05957e..ae95573abc 100644
--- a/packages/wayland/libxkbcommon/package.mk
+++ b/packages/wayland/libxkbcommon/package.mk
@@ -17,19 +17,18 @@
################################################################################
PKG_NAME="libxkbcommon"
-PKG_VERSION="0.6.1"
-PKG_SHA256="5b0887b080b42169096a61106661f8d35bae783f8b6c58f97ebcd3af83ea8760"
+PKG_VERSION="0.7.1"
+PKG_SHA256="ba59305d2e19e47c27ea065c2e0df96ebac6a3c6e97e28ae5620073b6084e68b"
PKG_ARCH="any"
PKG_LICENSE="OSS"
PKG_SITE="http://xkbcommon.org"
PKG_URL="http://xkbcommon.org/download/${PKG_NAME}-${PKG_VERSION}.tar.xz"
-PKG_DEPENDS_TARGET="toolchain"
+PKG_DEPENDS_TARGET="toolchain xkeyboard-config"
PKG_SECTION="wayland"
PKG_SHORTDESC="xkbcommon: a library to handle keyboard descriptions"
PKG_LONGDESC="xkbcommon is a library to handle keyboard descriptions, including loading them from disk, parsing them and handling their state. It's mainly meant for client toolkits, window systems, and other system applications; currently that includes Wayland, kmscon, GTK+, Qt, Clutter, and more. It is also used by some XCB applications for proper keyboard support."
if [ "$DISPLAYSERVER" = "x11" ]; then
- PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET xkeyboard-config"
PKG_CONFIGURE_OPTS_TARGET="--enable-x11"
else
PKG_CONFIGURE_OPTS_TARGET="--disable-x11"
diff --git a/packages/wayland/wayland-protocols/package.mk b/packages/wayland/wayland-protocols/package.mk
new file mode 100644
index 0000000000..02a39d5853
--- /dev/null
+++ b/packages/wayland/wayland-protocols/package.mk
@@ -0,0 +1,33 @@
+################################################################################
+# This file is part of LibreELEC - https://libreelec.tv
+# Copyright (C) 2016-present Team LibreELEC
+#
+# LibreELEC is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# LibreELEC 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with LibreELEC. If not, see .
+################################################################################
+
+PKG_NAME="wayland-protocols"
+PKG_VERSION="1.12"
+PKG_SHA256="3b19e8a9e1e19474756a7069db23b90ca9b8ebb438448c6063b4a7fc89b7c8b2"
+PKG_ARCH="any"
+PKG_LICENSE="OSS"
+PKG_SITE="https://wayland.freedesktop.org/"
+PKG_URL="https://wayland.freedesktop.org/releases/${PKG_NAME}-${PKG_VERSION}.tar.xz"
+PKG_DEPENDS_TARGET="toolchain"
+PKG_SECTION="wayland"
+PKG_SHORTDESC="Specifications of extended Wayland protocols"
+PKG_LONGDESC="Specifications of extended Wayland protocols"
+
+post_makeinstall_target() {
+ rm -rf $INSTALL
+}
diff --git a/packages/wayland/wayland/package.mk b/packages/wayland/wayland/package.mk
new file mode 100644
index 0000000000..bdb7fd3b25
--- /dev/null
+++ b/packages/wayland/wayland/package.mk
@@ -0,0 +1,55 @@
+################################################################################
+# This file is part of LibreELEC - https://libreelec.tv
+# Copyright (C) 2016-present Team LibreELEC
+#
+# LibreELEC is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# LibreELEC 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with LibreELEC. If not, see .
+################################################################################
+
+PKG_NAME="wayland"
+PKG_VERSION="1.14.0"
+PKG_SHA256="ed80cabc0961a759a42092e2c39aabfc1ec9a13c86c98bbe2b812f008da27ab8"
+PKG_ARCH="any"
+PKG_LICENSE="OSS"
+PKG_SITE="https://wayland.freedesktop.org/"
+PKG_URL="https://wayland.freedesktop.org/releases/${PKG_NAME}-${PKG_VERSION}.tar.xz"
+PKG_DEPENDS_TARGET="toolchain wayland:host libxml2"
+PKG_DEPENDS_HOST="libffi:host expat:host libxml2:host"
+PKG_SECTION="wayland"
+PKG_SHORTDESC="a display server protocol"
+PKG_LONGDESC="a display server protocol"
+
+PKG_CONFIGURE_OPTS_HOST="--enable-shared \
+ --disable-static \
+ --disable-libraries \
+ --disable-documentation \
+ --with-gnu-ld"
+
+PKG_CONFIGURE_OPTS_TARGET="--with-sysroot=$SYSROOT_PREFIX \
+ --with-host-scanner \
+ --enable-shared \
+ --disable-static \
+ --enable-libraries \
+ --disable-documentation \
+ --with-gnu-ld"
+
+pre_configure_target() {
+ strip_lto
+}
+
+post_makeinstall_target() {
+ rm -rf $INSTALL/usr/bin
+ rm -rf $INSTALL/usr/share
+
+ cp $TOOLCHAIN/lib/pkgconfig/wayland-scanner.pc $SYSROOT_PREFIX/usr/lib/pkgconfig/
+}
diff --git a/packages/wayland/waylandpp/package.mk b/packages/wayland/waylandpp/package.mk
new file mode 100644
index 0000000000..ad0a866613
--- /dev/null
+++ b/packages/wayland/waylandpp/package.mk
@@ -0,0 +1,37 @@
+################################################################################
+# This file is part of LibreELEC - https://libreelec.tv
+# Copyright (C) 2016-present Team LibreELEC
+#
+# LibreELEC is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# LibreELEC 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with LibreELEC. If not, see .
+################################################################################
+
+PKG_NAME="waylandpp"
+PKG_VERSION="0.1.6"
+PKG_SHA256="33d3ec385704c5545fb50d2283aabf4ef26aaaf3e416b292e650fea67c430d23"
+PKG_ARCH="any"
+PKG_LICENSE="GPL"
+PKG_SITE="https://github.com/NilsBrause/waylandpp"
+PKG_URL="https://github.com/NilsBrause/waylandpp/archive/$PKG_VERSION.tar.gz"
+PKG_DEPENDS_TARGET="toolchain waylandpp:host"
+PKG_SECTION="wayland"
+PKG_SHORTDESC="Wayland C++ bindings"
+PKG_LONGDESC="Wayland C++ bindings"
+
+PKG_CMAKE_OPTS_HOST="-DBUILD_SCANNER=ON \
+ -DBUILD_LIBRARIES=OFF"
+
+PKG_CMAKE_OPTS_TARGET="-DBUILD_SCANNER=OFF \
+ -DBUILD_LIBRARIES=ON \
+ -DCMAKE_CROSSCOMPILING=ON \
+ -DWAYLAND_SCANNERPP=$TOOLCHAIN/bin/wayland-scanner++"
diff --git a/packages/wayland/weston/config/weston.ini b/packages/wayland/weston/config/weston.ini
new file mode 100644
index 0000000000..b48f9c30c4
--- /dev/null
+++ b/packages/wayland/weston/config/weston.ini
@@ -0,0 +1,13 @@
+[core]
+idle-time=0
+
+[shell]
+locking=false
+
+[launcher]
+path=/usr/lib/kodi/kodi.bin
+icon=/usr/share/kodi/media/icon16x16.png
+
+[launcher]
+icon=/usr/share/weston/terminal.png
+path=/usr/bin/weston-terminal
diff --git a/packages/wayland/weston/package.mk b/packages/wayland/weston/package.mk
new file mode 100644
index 0000000000..3a6e4fab2a
--- /dev/null
+++ b/packages/wayland/weston/package.mk
@@ -0,0 +1,68 @@
+################################################################################
+# This file is part of LibreELEC - https://libreelec.tv
+# Copyright (C) 2016-present Team LibreELEC
+#
+# LibreELEC is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# LibreELEC 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with LibreELEC. If not, see .
+################################################################################
+
+PKG_NAME="weston"
+PKG_VERSION="3.0.0"
+PKG_SHA256="cde1d55e8dd70c3cbb3d1ec72f60e60000041579caa1d6a262bd9c35e93723a5"
+PKG_ARCH="any"
+PKG_LICENSE="OSS"
+PKG_SITE="https://wayland.freedesktop.org/"
+PKG_URL="https://wayland.freedesktop.org/releases/${PKG_NAME}-${PKG_VERSION}.tar.xz"
+PKG_DEPENDS_TARGET="toolchain wayland-protocols libdrm libxkbcommon libinput cairo libjpeg-turbo dbus"
+PKG_SECTION="wayland"
+PKG_SHORTDESC="Reference implementation of a Wayland compositor"
+PKG_LONGDESC="Reference implementation of a Wayland compositor"
+
+PKG_CONFIGURE_OPTS_TARGET="CFLAGS=-DMESA_EGL_NO_X11_HEADERS \
+ LIBS=-lturbojpeg \
+ --with-cairo-glesv2 \
+ --disable-xwayland \
+ --disable-x11-compositor \
+ --disable-xwayland-test \
+ --disable-libunwind \
+ --disable-colord \
+ --disable-ivi-shell \
+ --disable-fbdev-compositor \
+ --disable-rdp-compositor \
+ --disable-screen-sharing \
+ --disable-vaapi-recorder \
+ --disable-headless-compositor \
+ --enable-systemd-login \
+ --disable-weston-launch \
+ --disable-fullscreen-shell \
+ --disable-demo-clients-install \
+ --enable-systemd-notify"
+
+pre_configure_target() {
+ strip_lto
+}
+
+post_makeinstall_target() {
+ mkdir -p $INSTALL/usr/lib/weston
+ cp $PKG_DIR/scripts/weston-config $INSTALL/usr/lib/weston
+
+ mkdir -p $INSTALL/usr/share/weston
+ cp $PKG_DIR/config/weston.ini $INSTALL/usr/share/weston
+
+ rm -r $INSTALL/usr/share/wayland-sessions
+ rm -r $INSTALL/usr/lib/weston-simple-im
+}
+
+post_install() {
+ enable_service weston.service
+}
diff --git a/packages/wayland/weston/profile.d/04-weston.conf b/packages/wayland/weston/profile.d/04-weston.conf
new file mode 100644
index 0000000000..d006d4a532
--- /dev/null
+++ b/packages/wayland/weston/profile.d/04-weston.conf
@@ -0,0 +1,19 @@
+################################################################################
+# This file is part of LibreELEC - https://libreelec.tv
+# Copyright (C) 2016-present Team LibreELEC
+#
+# LibreELEC is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# LibreELEC 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with LibreELEC. If not, see .
+################################################################################
+
+export XDG_RUNTIME_DIR=/var/run/0-runtime-dir
diff --git a/packages/wayland/weston/scripts/weston-config b/packages/wayland/weston/scripts/weston-config
new file mode 100755
index 0000000000..75f6dc8528
--- /dev/null
+++ b/packages/wayland/weston/scripts/weston-config
@@ -0,0 +1,29 @@
+#!/bin/sh
+################################################################################
+# This file is part of LibreELEC - https://libreelec.tv
+# Copyright (C) 2016-present Team LibreELEC
+#
+# LibreELEC is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# LibreELEC 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with LibreELEC. If not, see .
+################################################################################
+
+export XDG_RUNTIME_DIR=/var/run/0-runtime-dir
+
+if [ ! -d "$XDG_RUNTIME_DIR" ]; then
+ mkdir "$XDG_RUNTIME_DIR"
+ chmod 0700 "$XDG_RUNTIME_DIR"
+fi
+
+if [ ! -f /storage/.config/weston.ini ]; then
+ cp /usr/share/weston/weston.ini /storage/.config/weston.ini
+fi
diff --git a/packages/wayland/weston/system.d/weston.service b/packages/wayland/weston/system.d/weston.service
new file mode 100644
index 0000000000..a776af3dfc
--- /dev/null
+++ b/packages/wayland/weston/system.d/weston.service
@@ -0,0 +1,18 @@
+[Unit]
+Description=Weston Launcher
+Before=graphical.target
+After=multi-user.target
+ConditionKernelCommandLine=!installer
+
+[Service]
+Environment=HOME=/storage
+Environment=XDG_RUNTIME_DIR=/var/run/0-runtime-dir
+WorkingDirectory=/storage
+ExecStartPre=-/usr/lib/weston/weston-config
+ExecStart=/usr/bin/weston --tty=1 --log=/var/log/weston.log
+Restart=always
+RestartSec=10
+
+[Install]
+Alias=display-manager.service
+WantedBy=graphical.target
diff --git a/packages/x11/data/xkeyboard-config/package.mk b/packages/x11/data/xkeyboard-config/package.mk
index 6ce64036db..e175b27330 100644
--- a/packages/x11/data/xkeyboard-config/package.mk
+++ b/packages/x11/data/xkeyboard-config/package.mk
@@ -23,21 +23,29 @@ PKG_ARCH="any"
PKG_LICENSE="OSS"
PKG_SITE="http://www.X.org"
PKG_URL="http://www.x.org/releases/individual/data/$PKG_NAME/$PKG_NAME-$PKG_VERSION.tar.bz2"
-PKG_DEPENDS_TARGET="toolchain util-macros xkbcomp"
PKG_SECTION="x11/data"
PKG_SHORTDESC="xkeyboard-config: X keyboard extension data files"
PKG_LONGDESC="X keyboard extension data files."
PKG_TOOLCHAIN="autotools"
-PKG_CONFIGURE_OPTS_TARGET="XKBCOMP=/usr/bin/xkbcomp \
- --without-xsltproc \
+if [ "$DISPLAYSERVER" = "x11" ]; then
+ PKG_DEPENDS_TARGET="toolchain util-macros xkbcomp"
+ DISPLAYSERVER_XKEYBOARD="XKBCOMP=/usr/bin/xkbcomp \
+ --with-xkb-base=$XORG_PATH_XKB \
+ --with-xkb-rules-symlink=xorg"
+
+else
+ PKG_DEPENDS_TARGET="toolchain util-macros"
+ DISPLAYSERVER_XKEYBOARD=""
+fi
+
+PKG_CONFIGURE_OPTS_TARGET="--without-xsltproc \
--enable-compat-rules \
- --enable-runtime-deps \
+ --disable-runtime-deps \
--enable-nls \
--disable-rpath \
- --with-xkb-base=$XORG_PATH_XKB \
- --with-xkb-rules-symlink=xorg \
- --with-gnu-ld"
+ --with-gnu-ld \
+ $DISPLAYSERVER_XKEYBOARD"
pre_build_target() {
# broken autoreconf
diff --git a/packages/x11/lib/pixman/package.mk b/packages/x11/lib/pixman/package.mk
index 77a1a00fa9..068f28f021 100644
--- a/packages/x11/lib/pixman/package.mk
+++ b/packages/x11/lib/pixman/package.mk
@@ -29,12 +29,14 @@ PKG_SHORTDESC="pixman: Pixel manipulation library"
PKG_LONGDESC="Pixman is a generic library for manipulating pixel regions, contains low-level pixel manipulation routines and is used by both xorg and cairo."
if [ "$TARGET_ARCH" = arm ]; then
- if [ "$TARGET_FPU" = neon -o "$TARGET_FPU" = neon-fp16 ]; then
+ if target_has_feature neon; then
PIXMAN_NEON="--enable-arm-neon"
else
PIXMAN_NEON="--disable-arm-neon"
fi
PIXMAN_CONFIG="--disable-mmx --disable-sse2 --disable-vmx --enable-arm-simd $PIXMAN_NEON --disable-arm-iwmmxt"
+elif [ "$TARGET_ARCH" = aarch64 ]; then
+ PIXMAN_CONFIG="--disable-mmx --disable-sse2 --disable-vmx --disable-arm-simd --disable-arm-neon --disable-arm-iwmmxt"
elif [ "$TARGET_ARCH" = x86_64 ]; then
PIXMAN_CONFIG="--enable-mmx --enable-sse2 --disable-ssse3 --disable-vmx --disable-arm-simd --disable-arm-neon"
fi