From 71da66da77a9641a4e318ccaf6f1ad7adb11f49f Mon Sep 17 00:00:00 2001 From: Markus Volk Date: Wed, 2 Jun 2021 16:13:46 +0200 Subject: [PATCH] First commit --- LICENSE | 25 +++ README.md | 1 + conf/layer.conf | 17 ++ recipes-core/elogind/elogind_git.bb | 20 ++ recipes-core/seatd/seatd_git.bb | 25 +++ recipes-extended/date/date_git.bb | 32 ++++ recipes-extended/date/files/date.pc | 10 + .../libdbusmenu/libdbusmenu_16.04.0.bb | 25 +++ recipes-graphics/wayland/waylandpp_0.2.8.bb | 53 ++++++ ...d-Add-a-pkg-config-file-for-Xwayland.patch | 179 ++++++++++++++++++ .../0001-xwayland-Add-listenfd-option.patch | 79 ++++++++ .../xorg-xserver/xserver-xorg_%.bbappend | 5 + recipes-support/dmenu/dmenu-wayland_git.bb | 23 +++ recipes-support/grim/grim_git.bb | 31 +++ recipes-support/slurp/slurp_git.bb | 33 ++++ recipes-support/swaybg/swaybg_1.0.bb | 32 ++++ .../waybar/font-awesome-otf_5.15.2.bb | 30 +++ recipes-support/waybar/gtk-layer-shell_git.bb | 32 ++++ recipes-support/waybar/waybar_git.bb | 64 +++++++ .../wf-recorder/wf-recorder_0.2.1.bb | 34 ++++ recipes-wlroots/sway/sway_git.bb | 58 ++++++ recipes-wlroots/wayfire/wayfire_0.7.1.bb | 58 ++++++ recipes-wlroots/wayfire/wcm_0.7.0.bb | 31 +++ recipes-wlroots/wayfire/wf-config_0.7.1.bb | 28 +++ recipes-wlroots/wayfire/wf-shell_0.7.0.bb | 39 ++++ recipes-wlroots/wlroots/wlroots_git.bb | 57 ++++++ 26 files changed, 1021 insertions(+) create mode 100644 LICENSE create mode 100644 README.md create mode 100644 conf/layer.conf create mode 100644 recipes-core/elogind/elogind_git.bb create mode 100644 recipes-core/seatd/seatd_git.bb create mode 100644 recipes-extended/date/date_git.bb create mode 100644 recipes-extended/date/files/date.pc create mode 100644 recipes-extended/libdbusmenu/libdbusmenu_16.04.0.bb create mode 100644 recipes-graphics/wayland/waylandpp_0.2.8.bb create mode 100644 recipes-graphics/xorg-xserver/xserver-xorg/0001-xwayland-Add-a-pkg-config-file-for-Xwayland.patch create mode 100644 recipes-graphics/xorg-xserver/xserver-xorg/0001-xwayland-Add-listenfd-option.patch create mode 100644 recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend create mode 100644 recipes-support/dmenu/dmenu-wayland_git.bb create mode 100644 recipes-support/grim/grim_git.bb create mode 100644 recipes-support/slurp/slurp_git.bb create mode 100644 recipes-support/swaybg/swaybg_1.0.bb create mode 100644 recipes-support/waybar/font-awesome-otf_5.15.2.bb create mode 100644 recipes-support/waybar/gtk-layer-shell_git.bb create mode 100644 recipes-support/waybar/waybar_git.bb create mode 100644 recipes-support/wf-recorder/wf-recorder_0.2.1.bb create mode 100644 recipes-wlroots/sway/sway_git.bb create mode 100644 recipes-wlroots/wayfire/wayfire_0.7.1.bb create mode 100644 recipes-wlroots/wayfire/wcm_0.7.0.bb create mode 100644 recipes-wlroots/wayfire/wf-config_0.7.1.bb create mode 100644 recipes-wlroots/wayfire/wf-shell_0.7.0.bb create mode 100644 recipes-wlroots/wlroots/wlroots_git.bb diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..896e780 --- /dev/null +++ b/LICENSE @@ -0,0 +1,25 @@ +BSD 2-Clause License + +Copyright (c) 2021, Markus Volk +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..1d23c25 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# meta-retro-wayland \ No newline at end of file diff --git a/conf/layer.conf b/conf/layer.conf new file mode 100644 index 0000000..b417650 --- /dev/null +++ b/conf/layer.conf @@ -0,0 +1,17 @@ +# We have a conf and classes directory, add to BBPATH +BBPATH .= ":${LAYERDIR}" + +# We have recipes-* directories, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "wayland" +BBFILE_PATTERN_wayland = "^${LAYERDIR}/" +BBFILE_PRIORITY_wayland = "5" + +LAYERSERIES_COMPAT_wayland = "hardknott" + +LAYERDEPENDS_wayland = " \ + core \ + openembedded-layer \ +" + diff --git a/recipes-core/elogind/elogind_git.bb b/recipes-core/elogind/elogind_git.bb new file mode 100644 index 0000000..b52f36f --- /dev/null +++ b/recipes-core/elogind/elogind_git.bb @@ -0,0 +1,20 @@ +SUMMARY = "Elogind User, Seat and Session Manager." +DESCRIPTION = "Elogind is the systemd project's "logind", extracted out to be a standalone daemon. It integrates with PAM to know the set of users that are logged in to a system and whether they are logged in graphically, on the console, or remotely." +HOMEPAGE = "https://github.com/elogind" +SECTION = "base/shell" +LICENSE = "LGPL-2.1" +LIC_FILES_CHKSUM = "file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c" + +SRC_URI = "git://github.com/elogind/elogind.git;protocol=https;branch=main" +SRCREV = "3b9af47ffd29082bee325900d02cf76d5702ab4f" + +DEPENDS += "gperf-native libcap eudev" + +S = "${WORKDIR}/git" + +inherit meson + +EXTRA_OEMESON += "--buildtype release" + +FILES_${PN} += "/usr" + diff --git a/recipes-core/seatd/seatd_git.bb b/recipes-core/seatd/seatd_git.bb new file mode 100644 index 0000000..002224c --- /dev/null +++ b/recipes-core/seatd/seatd_git.bb @@ -0,0 +1,25 @@ +SUMMARY = "A minimal seat management daemon, and a universal seat management library." +DESCRIPTION = "Seat management takes care of mediating access to shared devices (graphics, input), without requiring the applications needing access to be root." +AUTHOR = "kennylevinsen" +HOMEPAGE = "https://git.sr.ht/~kennylevinsen/seatd" +SECTION = "libs" +LICENSE = "BSD-0-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=715a99d2dd552e6188e74d4ed2914d5a" + +SRC_URI = "git://git.sr.ht/~kennylevinsen/seatd;protocol=https" +SRCREV = "355cc9c944a29d29736de84e782a2e91168f1a59" + +PACKAGECONFIG[systemd] = ",,systemd" +PACKAGECONFIG[sysvinit] = ",,elogind" + +PACKAGECONFIG ?= " \ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'sysvinit', d)} \ +" + +S = "${WORKDIR}/git" + +inherit meson + +EXTRA_OEMESON += "--buildtype release" + diff --git a/recipes-extended/date/date_git.bb b/recipes-extended/date/date_git.bb new file mode 100644 index 0000000..b191126 --- /dev/null +++ b/recipes-extended/date/date_git.bb @@ -0,0 +1,32 @@ +SUMMARY = "A date and time library based on the C++11/14/17." +AUTHOR = "Howard Hinnant" +HOMEPAGE = "https://github.com/HowardHinnant/date.git" +SECTION = "libs" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b5d973344b3c7bbf7535f0e6e002d017" + +SRC_URI = " \ + git://github.com/HowardHinnant/date.git;protocol=https \ + file://date.pc \ +" + +SRCREV = "v3.0.0" + +S = "${WORKDIR}/git" + +inherit cmake + +DEPENDS = "curl" + +EXTRA_OECMAKE += " \ + -DBUILD_TZ_LIB=ON \ + -DBUILD_SHARED_LIBS=ON \ + -DUSE_SYSTEM_TZ_DB=ON \ +" + +do_install_append() { + # source lacks pkgconfig support. Include a pc file, so 'date' can be found using pkgconfig + install -d ${D}${libdir}/pkgconfig + install -m 0644 ${WORKDIR}/date.pc ${D}${libdir}/pkgconfig +} + diff --git a/recipes-extended/date/files/date.pc b/recipes-extended/date/files/date.pc new file mode 100644 index 0000000..3d47fa5 --- /dev/null +++ b/recipes-extended/date/files/date.pc @@ -0,0 +1,10 @@ +prefix=/usr +exec_prefix=/usr +libdir=/usr/lib +includedir=/usr/include + +Name: date +Description: date library +Version: 3.0.0 +Cflags: -I${includedir}/date +Libs: -L${libdir} -ldate-tz -lpthread diff --git a/recipes-extended/libdbusmenu/libdbusmenu_16.04.0.bb b/recipes-extended/libdbusmenu/libdbusmenu_16.04.0.bb new file mode 100644 index 0000000..4dfce38 --- /dev/null +++ b/recipes-extended/libdbusmenu/libdbusmenu_16.04.0.bb @@ -0,0 +1,25 @@ +DESCRIPTION = "Ayatana dbus indicator helper library" +LICENSE = "GPL-3.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=6a6a8e020838b23406c81b19c1d46df6" +DEPENDS = "intltool-native glib-2.0-native json-glib dbus gtk+3" + +SRC_URI = "https://launchpad.net/libdbusmenu/16.04/16.04.0/+download/libdbusmenu-${PV}.tar.gz" + +SRC_URI[sha256sum] = "b9cc4a2acd74509435892823607d966d424bd9ad5d0b00938f27240a1bfa878a" + +inherit autotools pkgconfig gobject-introspection features_check + +DEPENDS_append_class-target = " gobject-introspection-native qemu-native" + +REQUIRED_DISTRO_FEATURES = "gobject-introspection-data" + +# this requires gtk+2 +EXTRA_OECONF += "--disable-dumper" + +# dont treat warnings as errors +CFLAGS_append += "-Wno-error" + +do_compile_prepend() { + export GIR_EXTRA_LIBS_PATH="${B}/libdbusmenu-glib/.libs:${B}/libdbusmenu-gtk/.libs" +} + diff --git a/recipes-graphics/wayland/waylandpp_0.2.8.bb b/recipes-graphics/wayland/waylandpp_0.2.8.bb new file mode 100644 index 0000000..e4d59db --- /dev/null +++ b/recipes-graphics/wayland/waylandpp_0.2.8.bb @@ -0,0 +1,53 @@ +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=7f6b13e4480850c59e176edd427d996e" + +PV = "0.2.8" +SRC_URI = "git://github.com/NilsBrause/waylandpp.git;tag=${PV}" + +DEPENDS_append_class-native = " pugixml-native" +DEPENDS_append_class-target = " waylandpp-native wayland virtual/egl" + + +S = "${WORKDIR}/git" + +inherit cmake + + +EXTRA_OECMAKE_append_class-native = " \ + -DBUILD_SCANNER=ON \ + -DBUILD_LIBRARIES=OFF \ + -DBUILD_DOCUMENTATION=OFF \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_VERBOSE_MAKEFILE=TRUE \ + " + +EXTRA_OECMAKE_append_class-target = " \ + -DBUILD_SCANNER=OFF \ + -DBUILD_LIBRARIES=ON \ + -DBUILD_DOCUMENTATION=OFF \ + -DBUILD_EXAMPLES=OFF \ + -DOPENGL_LIBRARY="-lEGL -lGLESv2" \ + -DOPENGL_opengl_LIBRARY=-lEGL \ + -DOPENGL_glx_LIBRARY=-lEGL \ + -DWAYLAND_SCANNERPP="${STAGING_BINDIR_NATIVE}/wayland-scanner++" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_VERBOSE_MAKEFILE=TRUE \ + -DCMAKE_EXE_LINKER_FLAGS="-Wl,--enable-new-dtags" \ + " + +FILES_${PN} = " \ + ${libdir}/libwayland*.so* \ + " + +FILES_${PN}-dev = " \ + ${includedir}/* \ + ${libdir}/pkgconfig/* \ + ${libdir}/cmake/waylandpp/* \ + ${datadir}/waylandpp/protocols/* \ + " + +FILES_SOLIBSDEV = "" +INSANE_SKIP_${PN} += "dev-so" + +BBCLASSEXTEND += "native nativesdk" + diff --git a/recipes-graphics/xorg-xserver/xserver-xorg/0001-xwayland-Add-a-pkg-config-file-for-Xwayland.patch b/recipes-graphics/xorg-xserver/xserver-xorg/0001-xwayland-Add-a-pkg-config-file-for-Xwayland.patch new file mode 100644 index 0000000..4f683e4 --- /dev/null +++ b/recipes-graphics/xorg-xserver/xserver-xorg/0001-xwayland-Add-a-pkg-config-file-for-Xwayland.patch @@ -0,0 +1,179 @@ +From dffc5939a0e77eae7a183c7790dc1209881c09aa Mon Sep 17 00:00:00 2001 +From: Olivier Fourdan +Date: Mon, 20 Apr 2020 11:29:16 +0200 +Subject: [PATCH] xwayland: Add a pkg-config file for Xwayland +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Xwayland is usually spawned by the Wayland compositor which sets the +command line options. + +If a command line option is not supported, Xwayland will fail to start. + +That somehow makes the Xwayland command line option sort of ABI, the +Wayland compositor need to know if a particular option is supported by +Xwayland at build time. + +Also, currently, Xwayland is being installed along with the rest of the +common executable programs that users may run, which is sub-optimal +because, well, Xwayland is not a common executable program, it's meant +to be a proxy between the Wayland compositor and the legacy X11 clients +which wouldn't be able to run on Wayland otherwise. + +Xwayland would be better installed in `libexec` but that directory is +(purposedly) not in the user `PATH` and therefore the Wayland compositor +may not be able to find Xwayland in that case. + +To solve both problems (which options are supported by Xwayland and +where to look for it), add a `pkg-config` file specifically for Xwayland +which gives the full path to Xwayland (`xwayland`) and which options it +supports (using `pkg-config` variables). + +The `pkg-config` file also provides the `Version` so the build scripts +can check for a particular version if necessary. + +Obviously, Wayland compositors are not required to use the `pkg-config` +file and can continue to use whatever mechanism they deem preferable. + +Signed-off-by: Olivier Fourdan +Reviewed-by: Michel Dänzer + +--- + configure.ac | 12 ++++++++++++ + hw/xwayland/Makefile.am | 6 +++++- + hw/xwayland/meson.build | 15 +++++++++++++++ + hw/xwayland/xwayland.pc.in | 7 +++++++ + meson.build | 5 +++++ + 5 files changed, 44 insertions(+), 1 deletion(-) + create mode 100644 hw/xwayland/xwayland.pc.in + +diff --git a/configure.ac b/configure.ac +index a51a0ee..1b73e75 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -591,6 +591,8 @@ AC_ARG_ENABLE(xnest, AS_HELP_STRING([--enable-xnest], [Build Xnest serv + AC_ARG_ENABLE(xquartz, AS_HELP_STRING([--enable-xquartz], [Build Xquartz server for OS-X (default: auto)]), [XQUARTZ=$enableval], [XQUARTZ=auto]) + AC_ARG_ENABLE(xwayland, AS_HELP_STRING([--enable-xwayland], [Build Xwayland server (default: auto)]), [XWAYLAND=$enableval], [XWAYLAND=auto]) + AC_ARG_ENABLE(xwayland-eglstream, AS_HELP_STRING([--enable-xwayland-eglstream], [Build Xwayland eglstream support (default: no)]), [XWAYLAND_EGLSTREAM=$enableval], [XWAYLAND_EGLSTREAM=no]) ++AC_ARG_WITH(xwayland-path, AS_HELP_STRING([--with-xwayland-path=PATH], [Directory containing Xwayland executable (default: ${bindir})]), ++ [ xwayland_path="$withval" ], [ xwayland_path="$bindir" ]) + AC_ARG_ENABLE(standalone-xpbproxy, AS_HELP_STRING([--enable-standalone-xpbproxy], [Build a standalone xpbproxy (in addition to the one integrated into Xquartz as a separate thread) (default: no)]), [STANDALONE_XPBPROXY=$enableval], [STANDALONE_XPBPROXY=no]) + AC_ARG_ENABLE(xwin, AS_HELP_STRING([--enable-xwin], [Build XWin server (default: auto)]), [XWIN=$enableval], [XWIN=auto]) + AC_ARG_ENABLE(glamor, AS_HELP_STRING([--enable-glamor], [Build glamor dix module (default: auto)]), [GLAMOR=$enableval], [GLAMOR=auto]) +@@ -2346,6 +2348,9 @@ if test "x$XWAYLAND" = xyes; then + if test "x$GLAMOR" = xyes && test "x$GBM" = xyes; then + AC_DEFINE(XWL_HAS_GLAMOR, 1, + [Build xwayland with glamor support]) ++ AC_SUBST(have_glamor, "true") ++ else ++ AC_SUBST(have_glamor, "false") + fi + + PKG_CHECK_MODULES(WAYLAND_EGLSTREAM, [wayland-eglstream-protocols >= 1.0.2], [have_wl_eglstream=yes], [have_wl_eglstream=no]) +@@ -2368,6 +2373,9 @@ if test "x$XWAYLAND" = xyes; then + AC_SUBST(WAYLAND_EGLSTREAM_DATADIR, `$PKG_CONFIG --variable=pkgdatadir wayland-eglstream-protocols`) + AC_DEFINE(XWL_HAS_EGLSTREAM, 1, + [Build xwayland with eglstream support]) ++ AC_SUBST(have_eglstream, "true") ++ else ++ AC_SUBST(have_eglstream, "false") + fi + + XWAYLAND_LIBS="$FB_LIB $FIXES_LIB $MI_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $DRI3_LIB $PRESENT_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $MAIN_LIB $DIX_LIB $OS_LIB" +@@ -2390,6 +2398,9 @@ if test "x$XWAYLAND" = xyes; then + AC_SUBST(SCANNER_ARG, 'code')) + + AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, `$PKG_CONFIG --variable=pkgdatadir wayland-protocols`) ++ ++ AC_SUBST(xwayland_path) ++ + fi + AM_CONDITIONAL(XWAYLAND_EGLSTREAM, [test "x$XWAYLAND_EGLSTREAM" = "xyes"]) + +@@ -2546,6 +2557,7 @@ hw/kdrive/ephyr/Makefile + hw/kdrive/ephyr/man/Makefile + hw/kdrive/src/Makefile + hw/xwayland/Makefile ++hw/xwayland/xwayland.pc + test/Makefile + xserver.ent + xorg-server.pc +diff --git a/hw/xwayland/Makefile.am b/hw/xwayland/Makefile.am +index bc1cb85..7c252db 100644 +--- a/hw/xwayland/Makefile.am ++++ b/hw/xwayland/Makefile.am +@@ -1,3 +1,4 @@ ++bindir = @xwayland_path@ + bin_PROGRAMS = Xwayland + + Xwayland_CFLAGS = \ +@@ -84,7 +85,10 @@ endif + nodist_Xwayland_SOURCES = $(Xwayland_built_sources) + CLEANFILES = $(Xwayland_built_sources) + +-EXTRA_DIST = drm.xml ++pkgconfigdir = $(libdir)/pkgconfig ++pkgconfig_DATA = xwayland.pc ++ ++EXTRA_DIST = xwayland.pc.in drm.xml + + $(Xwayland_SOURCES): $(Xwayland_built_sources) + +diff --git a/hw/xwayland/meson.build b/hw/xwayland/meson.build +index 36bf213..40e8612 100644 +--- a/hw/xwayland/meson.build ++++ b/hw/xwayland/meson.build +@@ -100,4 +100,19 @@ executable( + libglxvnd, + ], + install: true, ++ install_dir: xwayland_path ++) ++ ++xwayland_data = configuration_data() ++xwayland_data.set('PACKAGE_VERSION', meson.project_version()) ++xwayland_data.set('xwayland_path', xwayland_path) ++xwayland_data.set('have_glamor', build_glamor ? 'true' : 'false') ++xwayland_data.set('have_eglstream', build_eglstream ? 'true' : 'false') ++configure_file( ++ input: 'xwayland.pc.in', ++ output: 'xwayland.pc', ++ configuration: xwayland_data, ++ install_dir: join_paths(get_option('prefix'), ++ get_option('libdir'), ++ 'pkgconfig'), + ) +diff --git a/hw/xwayland/xwayland.pc.in b/hw/xwayland/xwayland.pc.in +new file mode 100644 +index 0000000..cd28026 +--- /dev/null ++++ b/hw/xwayland/xwayland.pc.in +@@ -0,0 +1,7 @@ ++Name: Xwayland ++Description: X Server for Wayland ++Version: @PACKAGE_VERSION@ ++xwayland=@xwayland_path@/Xwayland ++have_glamor=@have_glamor@ ++have_eglstream=@have_eglstream@ ++have_initfd=true +diff --git a/meson.build b/meson.build +index 0531463..c904e7f 100644 +--- a/meson.build ++++ b/meson.build +@@ -169,6 +169,11 @@ if (host_machine.system() != 'darwin' and + if get_option('xwayland') != 'false' + xwayland_required = get_option('xwayland') == 'true' + ++ xwayland_path = get_option('xwayland-path') ++ if (xwayland_path == '') ++ xwayland_path = join_paths(get_option('prefix'), get_option('bindir')) ++ endif ++ + xwayland_dep = [ + dependency('wayland-client', version: '>= 1.3.0', required: xwayland_required), + dependency('wayland-protocols', version: '>= 1.10', required: xwayland_required), diff --git a/recipes-graphics/xorg-xserver/xserver-xorg/0001-xwayland-Add-listenfd-option.patch b/recipes-graphics/xorg-xserver/xserver-xorg/0001-xwayland-Add-listenfd-option.patch new file mode 100644 index 0000000..71aba2d --- /dev/null +++ b/recipes-graphics/xorg-xserver/xserver-xorg/0001-xwayland-Add-listenfd-option.patch @@ -0,0 +1,79 @@ +From b3f3d65ed302baf78befe45eed458e666e1ff143 Mon Sep 17 00:00:00 2001 +From: Olivier Fourdan +Date: Wed, 19 Jun 2019 09:19:24 +0200 +Subject: [PATCH 001/322] xwayland: Add "-listenfd" option + +Using the existing command line option "-listen" for passing file +descriptors between the Wayland compositor and Xwayland is misleading, +Xwayland should add is own command line option for that specific use. + +As XWayland is spawned by the Wayland compositor, we cannot just change +the option, as that would break all existing Wayland compositors using +Xwayland, so we add a new options "-listenfd" and mark the previous one +as deprecated and log a warning, but it still works for backward +compatibility. + +Signed-off-by: Olivier Fourdan +https://gitlab.freedesktop.org/xorg/xserver/merge_requests/214 +Signed-off-by: Markus Volk +--- + hw/xwayland/xwayland.c | 28 ++++++++++++++++++++++------ + 1 file changed, 22 insertions(+), 6 deletions(-) + +diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c +index 72b2be1b6..fe8b1abdc 100644 +--- a/hw/xwayland/xwayland.c ++++ b/hw/xwayland/xwayland.c +@@ -98,7 +98,8 @@ ddxUseMsg(void) + { + ErrorF("-rootless run rootless, requires wm support\n"); + ErrorF("-wm fd create X client for wm on given fd\n"); +- ErrorF("-listen fd add give fd as a listen socket\n"); ++ ErrorF("-listenfd fd add give fd as a listen socket\n"); ++ ErrorF("-listen fd deprecated, use \"-listenfd\" instead\n"); + ErrorF("-eglstream use eglstream backend for nvidia GPUs\n"); + } + +@@ -106,6 +107,17 @@ static int wm_fd = -1; + static int listen_fds[5] = { -1, -1, -1, -1, -1 }; + static int listen_fd_count = 0; + ++static void ++xwl_add_listen_fd(int argc, char *argv[], int i) ++{ ++ NoListenAll = TRUE; ++ if (listen_fd_count == ARRAY_SIZE(listen_fds)) ++ FatalError("Too many -listen arguments given, max is %zu\n", ++ ARRAY_SIZE(listen_fds)); ++ ++ listen_fds[listen_fd_count++] = atoi(argv[i + 1]); ++} ++ + int + ddxProcessArgument(int argc, char *argv[], int i) + { +@@ -119,12 +131,16 @@ ddxProcessArgument(int argc, char *argv[], int i) + if (!isdigit(*argv[i + 1])) + return 0; + +- NoListenAll = TRUE; +- if (listen_fd_count == ARRAY_SIZE(listen_fds)) +- FatalError("Too many -listen arguments given, max is %zu\n", +- ARRAY_SIZE(listen_fds)); ++ LogMessage(X_WARNING, "Option \"-listen\" for file descriptors is deprecated\n" ++ "Please use \"-listenfd\" instead.\n"); ++ ++ xwl_add_listen_fd (argc, argv, i); ++ return 2; ++ } ++ else if (strcmp(argv[i], "-listenfd") == 0) { ++ CHECK_FOR_REQUIRED_ARGUMENTS(1); + +- listen_fds[listen_fd_count++] = atoi(argv[i + 1]); ++ xwl_add_listen_fd (argc, argv, i); + return 2; + } + else if (strcmp(argv[i], "-wm") == 0) { +-- +2.25.1 + diff --git a/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend b/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend new file mode 100644 index 0000000..38c2225 --- /dev/null +++ b/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend @@ -0,0 +1,5 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/xserver-xorg:" + +# This backport is needed on hardknott to enable wlroots to create the xwayland backend +SRC_URI_append = " file://0001-xwayland-Add-a-pkg-config-file-for-Xwayland.patch" + diff --git a/recipes-support/dmenu/dmenu-wayland_git.bb b/recipes-support/dmenu/dmenu-wayland_git.bb new file mode 100644 index 0000000..91cbeaf --- /dev/null +++ b/recipes-support/dmenu/dmenu-wayland_git.bb @@ -0,0 +1,23 @@ +SUMMARY = "dmenu for wayland" +HOMEPAGE = "https://github.com/nyyManni/dmenu-wayland.git" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=c1b51aaede0be292f946ef75b6759e6c" + + +SRC_URI = "git://github.com/nyyManni/dmenu-wayland.git;protocol=https \ +" + +DEPENDS = " \ + cairo \ + pango \ + wayland \ + wayland-native \ + libxkbcommon \ +" + +S = "${WORKDIR}/git" +SRCREV = "${AUTOREV}" +PV = "${SRCPV}" + +inherit meson pkgconfig + diff --git a/recipes-support/grim/grim_git.bb b/recipes-support/grim/grim_git.bb new file mode 100644 index 0000000..0126612 --- /dev/null +++ b/recipes-support/grim/grim_git.bb @@ -0,0 +1,31 @@ +SUMMARY = "Image Grabber For Wayland" +DESCRIPTION = "Grab images from a Wayland compositor. Works great with slurp and with sway" +AUTHOR = "" +HOMEPAGE = "https://github.com/emersion/grim" +BUGTRACKER = "https://github.com/emersion/grim/issues" +SECTION = "graphics" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=e316e9609dd7672b87ff25b46b2cf3e1" + +REQUIRED_DISTRO_FEATURES = "wayland" + +DEPENDS += " \ + cairo \ + jpeg \ + wayland \ + wayland-native \ + wayland-protocols \ + " + +SRC_URI = "git://github.com/emersion/grim.git;protocol=https" +SRCREV = "${AUTOREV}" + +S = "${WORKDIR}/git" + +inherit meson pkgconfig features_check + +EXTRA_OEMESON += "--buildtype release" + +BBCLASSEXTEND = "" + diff --git a/recipes-support/slurp/slurp_git.bb b/recipes-support/slurp/slurp_git.bb new file mode 100644 index 0000000..51fa225 --- /dev/null +++ b/recipes-support/slurp/slurp_git.bb @@ -0,0 +1,33 @@ +SUMMARY = "Region Selector For Wayland" +DESCRIPTION = "Select a region in a Wayland compositor and print it to the standard output. Works well with grim." +AUTHOR = "" +HOMEPAGE = "https://github.com/emersion/slurp" +BUGTRACKER = "https://github.com/emersion/slurp/issues" +SECTION = "graphics" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=e316e9609dd7672b87ff25b46b2cf3e1" + +REQUIRED_DISTRO_FEATURES = "wayland" + +DEPENDS += " \ + cairo \ + jpeg \ + libxkbcommon \ + wayland \ + wayland-native \ + wayland-protocols \ + " + +SRC_URI = "git://github.com/emersion/slurp.git;protocol=https" +SRCREV = "${AUTOREV}" + +S = "${WORKDIR}/git" + +inherit meson pkgconfig features_check + +EXTRA_OEMESON += "--buildtype release" + + +BBCLASSEXTEND = "" + diff --git a/recipes-support/swaybg/swaybg_1.0.bb b/recipes-support/swaybg/swaybg_1.0.bb new file mode 100644 index 0000000..2e9ad70 --- /dev/null +++ b/recipes-support/swaybg/swaybg_1.0.bb @@ -0,0 +1,32 @@ +SUMMARY = "A Wayland WM" +HOMEPAGE = "https://github.com/swaywm/swaybg" +BUGTRACKER = "https://github.com/swaywm/swaybg/issues" +SECTION = "graphics" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=b53d9ec16b9125995437ac9efab1b450" + +REQUIRED_DISTRO_FEATURES = "wayland systemd" + +DEPENDS = " \ + cairo \ + gdk-pixbuf \ + wayland \ + wayland-native \ + wayland-protocols \ + " + +SRC_URI = " \ + https://github.com/swaywm/swaybg/archive/refs/tags/${PV}.tar.gz \ +" + +SRC_URI[sha256sum] = "a23f1cde07138b865630172eff83db916d2f0989b75fb318def85dcfc3120fbd" + +S = "${WORKDIR}/${PN}-${PV}" + +inherit meson pkgconfig features_check + +EXTRA_OEMESON += "--buildtype release" + +BBCLASSEXTEND = "" + diff --git a/recipes-support/waybar/font-awesome-otf_5.15.2.bb b/recipes-support/waybar/font-awesome-otf_5.15.2.bb new file mode 100644 index 0000000..7ef9cbb --- /dev/null +++ b/recipes-support/waybar/font-awesome-otf_5.15.2.bb @@ -0,0 +1,30 @@ +SUMMARY = "Font Awesome" + +HOMEPAGE = "https://fontawesome.com/" +SECTION = "base/fonts" + +LICENSE = "OFL-1.1" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2e3494502db283e8891d4886fe445912" + +SRCREV = "${AUTOREV}" + +SRC_URI = " \ + https://github.com/FortAwesome/Font-Awesome/archive/${PV}.tar.gz \ +" +SRC_URI[sha256sum] = "ce8d6225c59c2fedab03658144d896807e58d7d5082da7c9655301a44c5cb3d2" + +S = "${WORKDIR}/Font-Awesome-${PV}" +SRCREV = "${AUTOREV}" + + +do_install () { + install -d ${D}${datadir}/fonts/opentype + for font in ${S}/otfs/*.otf; do + install -m 0644 "$font" ${D}${datadir}/fonts/opentype + done +} + +FILES_${PN} = " \ + ${datadir}/fonts \ +" + diff --git a/recipes-support/waybar/gtk-layer-shell_git.bb b/recipes-support/waybar/gtk-layer-shell_git.bb new file mode 100644 index 0000000..41d2532 --- /dev/null +++ b/recipes-support/waybar/gtk-layer-shell_git.bb @@ -0,0 +1,32 @@ +SUMMARY = "A library to write GTK applications that use Layer Shell" +DESCRIPTION = "A library to write GTK applications that use Layer Shell. Layer Shell is a Wayland protocol for desktop shell components, such as panels, notifications and wallpapers." +AUTHOR = "" +HOMEPAGE = "https://github.com/wmww/gtk-layer-shell" +BUGTRACKER = "https://github.com/www/gtk-layer-shell/issues" +SECTION = "graphics" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://LICENSE_MIT.txt;md5=d015f272ca1521139fd99ea64d6e5e23" + +REQUIRED_DISTRO_FEATURES = "wayland gobject-introspection-data" + +DEPENDS += " \ + gtk+3 \ + wayland \ + wayland-native \ + gobject-introspection \ + gobject-introspection-native \ + qemu-native \ + prelink-native \ +" + +SRC_URI = "git://github.com/wmww/gtk-layer-shell.git;protocol=https" +SRCREV = "6ddf8f48a5659108550303dc84b99a472f9ef622" + +S = "${WORKDIR}/git" + +inherit meson pkgconfig features_check +FILES_${PN} = "${datadir} ${libdir}" + +BBCLASSEXTEND = "" + diff --git a/recipes-support/waybar/waybar_git.bb b/recipes-support/waybar/waybar_git.bb new file mode 100644 index 0000000..6e7c156 --- /dev/null +++ b/recipes-support/waybar/waybar_git.bb @@ -0,0 +1,64 @@ +SUMMARY = "Wayland bar for Wlroots based compositors" +DESCRIPTION = "Highly customizable Wayland bar for Sway and Wlroots based compositors." +AUTHOR = "" +HOMEPAGE = "https://github.com/Alexays/Waybar" +BUGTRACKER = "https://github.com/Alexays/Waybar/issues" +SECTION = "graphics" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=98f7e9dc79966298d76caf1b0a6d35c1" + +REQUIRED_DISTRO_FEATURES = "wayland gobject-introspection-data" + +DEPENDS += " \ + glib-2.0-native \ + gtkmm3 \ + jsoncpp \ + libsigc++-3 \ + fmt \ + spdlog \ + gtk+3 \ + gobject-introspection \ + wayland \ + wayland-native \ + wayland-protocols \ +" + +PACKAGECONFIG[bluetooth] = "-Drfkill=enabled,-Drfkill=disabled" +PACKAGECONFIG[date] = ",,date" +PACKAGECONFIG[pulseaudio] = ",,pulseaudio" +PACKAGECONFIG[gtk-layer-shell] = ",,gtk-layer-shell" +PACKAGECONFIG[mpd] = ",,libmpdclient" +PACKAGECONFIG[network] = ",,libnl" +PACKAGECONFIG[sysvinit] = ",,eudev" +PACKAGECONFIG[systemd] = ",,systemd" +# this would rdepend on a bunch of libindicator recipes we dont provide +PACKAGECONFIG[tray] = ",,libdbusmenu" + +PACKAGECONFIG ?= " \ + ${@bb.utils.filter('DISTRO_FEATURES', 'bluetooth', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'sysvinit', d)} \ + network \ + gtk-layer-shell \ + date \ +" + +RRECOMMENDS_${PN} += " \ + font-awesome-otf \ +" + +SRC_URI = "git://github.com/Alexays/Waybar.git;protocol=https" +SRCREV = "c21dc681c95361bcdbc1b4b998d2b2b9370f337c" + +S = "${WORKDIR}/git" + +inherit meson pkgconfig features_check + +PACKAGES += "${PN}-systemd" + +FILES_${PN}-systemd += "${libdir}/systemd" + +BBCLASSEXTEND = "" + diff --git a/recipes-support/wf-recorder/wf-recorder_0.2.1.bb b/recipes-support/wf-recorder/wf-recorder_0.2.1.bb new file mode 100644 index 0000000..7c02f7e --- /dev/null +++ b/recipes-support/wf-recorder/wf-recorder_0.2.1.bb @@ -0,0 +1,34 @@ +SUMMARY = "A Wayland Screen Recorder" +HOMEPAGE = "https://github.com/ammen99/wf-recorder" +BUGTRACKER = "https://github.com/ammen99/wf-recorder/issues" +SECTION = "graphics" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=dd7ed145448eb375bc1d98e5169ae84e" + +DEPENDS = " \ + wayland \ + wayland-native \ + wayland-protocols \ + ffmpeg \ +" + +REQUIRED_DISTRO_FEATURES = "wayland" + +SRC_URI = " \ + https://github.com/ammen99/wf-recorder/releases/download/v${PV}/wf-recorder-${PV}.tar.xz \ +" + +SRC_URI[sha256sum] = "bfe51f4f88ba755ac0ad993d00da706496f84e60b53de0ae24fe1c654cfaa376" + +S = "${WORKDIR}/${PN}-${PV}" + +inherit meson pkgconfig features_check + +EXTRA_OEMESON += "--buildtype release" +GIR_EXTRA_LIBS_PATH="${WORKDIR}" + +FILES_${PN} += "${prefix}" + +BBCLASSEXTEND = "" + diff --git a/recipes-wlroots/sway/sway_git.bb b/recipes-wlroots/sway/sway_git.bb new file mode 100644 index 0000000..ac00d1f --- /dev/null +++ b/recipes-wlroots/sway/sway_git.bb @@ -0,0 +1,58 @@ +SUMMARY = "A Wayland WM" +HOMEPAGE = "https://github.com/swaywm/sway" +BUGTRACKER = "https://github.com/swaywm/sway/issues" +SECTION = "graphics" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=dfc67e5b1fa10ebb4b70eb0c0ca67bea" + +REQUIRED_DISTRO_FEATURES = "wayland" + +DEPENDS += " \ + wlroots \ + cairo \ + libevdev \ + json-c \ + libdrm \ + libinput \ + libxkbcommon \ + pango \ + pcre \ + pixman \ + virtual/libgles2 \ + wayland \ + wayland-native \ + wayland-protocols \ +" + +SRC_URI = " \ + git://github.com/swaywm/sway.git;protocol=https \ +" + +SRCREV = "7c74f01f0ae9d5b3f92d3e6fc64cb9abe95b4c52" +PV = "1.6+${SRCREV}" +S = "${WORKDIR}/git" + +inherit meson pkgconfig features_check + +PACKAGECONFIG[default-wallpaper] = "-Ddefault-wallpaper=true,-Ddefault-wallpaper=false" +PACKAGECONFIG[gdk-pixbuf] = "-Dgdk-pixbuf=enabled,-Dgdk-pixbuf=disabled,gdk-pixbuf" +PACKAGECONFIG[systemd] = "-Dsd-bus-provider=libsystemd,,systemd" +PACKAGECONFIG[sysvinit] = "-Dsd-bus-provider=libelogind,,eudev elogind" +PACKAGECONFIG[tray] = "-Dtray=enabled,-Dtray=disabled" +PACKAGECONFIG[xwayland] = "-Dxwayland=enabled,-Dxwayland=disabled,libxcb" + +PACKAGECONFIG ?= " \ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'sysvinit', d)} \ + gdk-pixbuf \ +" + +EXTRA_OEMESON += "--buildtype release" + +FILES_${PN}_append = " \ + ${datadir} \ +" + +BBCLASSEXTEND = "" + diff --git a/recipes-wlroots/wayfire/wayfire_0.7.1.bb b/recipes-wlroots/wayfire/wayfire_0.7.1.bb new file mode 100644 index 0000000..9e1fcee --- /dev/null +++ b/recipes-wlroots/wayfire/wayfire_0.7.1.bb @@ -0,0 +1,58 @@ +SUMMARY = "A Wayland WM" +HOMEPAGE = "https://github.com/WayfireWM/wayfire" +BUGTRACKER = "https://github.com/WayfireWM/wayfire/issues" +SECTION = "graphics" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=14e4594093363e3c3a530e9b54cb5285" + +REQUIRED_DISTRO_FEATURES = "wayland" + +DEPENDS += " \ + cairo \ + freetype \ + glm \ + jpeg \ + libdrm \ + libevdev \ + libinput \ + libpng \ + libxkbcommon \ + libxml2 \ + mesa \ + pixman \ + seatd \ + wayland \ + wayland-native \ + wayland-protocols \ +" + +RRECOMMENDS_${PN} += " \ + wlroots \ + wcm \ + wf-config \ + wf-recorder \ + wf-shell \ +" + +PACKAGECONFIG[gles32] = "-Denable_gles32=true,-Denable_gles32=false" +PACKAGECONFIG[use_system_wfconfig] = "-Duse_system_wfconfig=enabled,-Duse_system_wfconfig=disabled,wlroots" +PACKAGECONFIG[use_system_wlroots] = "-Duse_system_wlroots=enabled,-Duse_system_wlroots=disabled,wf-config" +PACKAGECONFIG[xwayland] = "-Dxwayland=enabled,-Dxwayland=disabled" + +PACKAGECONFIG ?= " \ + use_system_wfconfig \ + use_system_wlroots \ +" + +SRC_URI = "git://github.com/WayfireWM/wayfire.git;protocol=https" +SRCREV = "be207f693675d0b48e79d7a5f4adb6f46cd228e2" + +S = "${WORKDIR}/git" + +inherit meson pkgconfig features_check + +EXTRA_OEMESON += "--buildtype release" + +BBCLASSEXTEND = "" + diff --git a/recipes-wlroots/wayfire/wcm_0.7.0.bb b/recipes-wlroots/wayfire/wcm_0.7.0.bb new file mode 100644 index 0000000..f37d429 --- /dev/null +++ b/recipes-wlroots/wayfire/wcm_0.7.0.bb @@ -0,0 +1,31 @@ +SUMMARY = "Wayfire Config Manager" +HOMEPAGE = "https://github.com/WayfireWM/wcm" +BUGTRACKER = "https://github.com/WayfireWM/wcm/issues" +SECTION = "graphics" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=ccb736ab917abd09ce6915fbf9a0f887" +DEPENDS = " \ + wayfire \ + wayland \ + wayland-native \ + wayland-protocols \ + gtkmm3 \ + wf-config \ +" + +REQUIRED_DISTRO_FEATURES = "wayland" + +SRC_URI = "https://github.com/WayfireWM/wcm/releases/download/v${PV}/wcm-${PV}.tar.xz" +SRC_URI[sha256sum] = "924a9682dc2f632bad8b6914a8927ad5dcee4b6698f75e89251f1647ad0beaa7" + +S = "${WORKDIR}/${PN}-${PV}" + +inherit meson pkgconfig features_check + +EXTRA_OEMESON += "--buildtype release" + +FILES_${PN} += "${prefix}" + +BBCLASSEXTEND = "" + diff --git a/recipes-wlroots/wayfire/wf-config_0.7.1.bb b/recipes-wlroots/wayfire/wf-config_0.7.1.bb new file mode 100644 index 0000000..2a3da3a --- /dev/null +++ b/recipes-wlroots/wayfire/wf-config_0.7.1.bb @@ -0,0 +1,28 @@ +SUMMARY = "A Wayland WM" +HOMEPAGE = "https://github.com/WayfireWM/wf-config" +BUGTRACKER = "https://github.com/WayfireWM/wf-config/issues" +SECTION = "graphics" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=e165ae90e5190201fda9741b611f9378" + +DEPENDS = " \ + glm \ + libevdev \ + libxml2 \ +" + +REQUIRED_DISTRO_FEATURES = "wayland" + +SRC_URI = "https://github.com/WayfireWM/wf-config/releases/download/v${PV}/wf-config-${PV}.tar.xz" +SRC_URI[sha256sum] = "7d2285adeaca0ff6e36e6ef450564ab02c8e26ba5da3b169257c5bf061f7e5f0" + +S = "${WORKDIR}/${PN}-${PV}" + +inherit meson pkgconfig features_check + +EXTRA_OEMESON += "--buildtype release" + + +BBCLASSEXTEND = "" + diff --git a/recipes-wlroots/wayfire/wf-shell_0.7.0.bb b/recipes-wlroots/wayfire/wf-shell_0.7.0.bb new file mode 100644 index 0000000..3701787 --- /dev/null +++ b/recipes-wlroots/wayfire/wf-shell_0.7.0.bb @@ -0,0 +1,39 @@ +SUMMARY = "A Wayland WM" +HOMEPAGE = "https://github.com/WayfireWM/wf-shell" +BUGTRACKER = "https://github.com/WayfireWM/wf-shell/issues" +SECTION = "graphics" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=36b5a4f8bf9f782fbab2099fdeb44369" + +DEPENDS = " \ + wayland \ + wayland-native \ + wayland-protocols \ + wayfire \ + gtkmm3 \ + wf-config \ + pulseaudio \ + libnotify3 \ +" + +DEPENDS_append_class-target = " gobject-introspection-native qemu-native prelink-native" + +REQUIRED_DISTRO_FEATURES = "wayland gobject-introspection-data" + +SRC_URI = " \ + https://github.com/WayfireWM/wf-shell/releases/download/v${PV}/wf-shell-${PV}.tar.xz \ +" + +SRC_URI[sha256sum] = "7495c690a1c021e0c82ba304513b3e7870cb329f7f0bf88df3bc5f46535d5ec7" + +S = "${WORKDIR}/${PN}-${PV}" + +inherit meson pkgconfig features_check + +EXTRA_OEMESON += "--buildtype release" + +FILES_${PN} += "${prefix}" + +BBCLASSEXTEND = "" + diff --git a/recipes-wlroots/wlroots/wlroots_git.bb b/recipes-wlroots/wlroots/wlroots_git.bb new file mode 100644 index 0000000..7a72c3b --- /dev/null +++ b/recipes-wlroots/wlroots/wlroots_git.bb @@ -0,0 +1,57 @@ +SUMMARY = "A modular Wayland compositor library" +DESCRIPTION = "Pluggable, composable, unopinionated modules for building a \ + Wayland compositor; or about 50,000 lines of code you were \ + going to write anyway" +HOMEPAGE = "https://github.com/swaywm/wlroots" +BUGTRACKER = "https://github.com/swaywm/wlroots/issues" +SECTION = "graphics" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=7578fad101710ea2d289ff5411f1b818" + +REQUIRED_DISTRO_FEATURES = "wayland" + +DEPENDS += " \ + libdrm \ + libinput \ + libxkbcommon \ + pixman \ + seatd \ + virtual/libgbm \ + wayland \ + wayland-native \ + wayland-protocols \ +" + +PACKAGECONFIG[gles2] = "-Drenderers=gles2" +PACKAGECONFIG[systemd] = ",,systemd" +PACKAGECONFIG[sysvinit] = ",,eudev elogind" +PACKAGECONFIG[x11-backend] = "-Dx11-backend=enabled,-Dx11-backend=disabled,xcb-util-renderutil" +PACKAGECONFIG[xwayland] = "-Dxwayland=enabled,-Dxwayland=disabled,xserver-xorg xcb-util-wm" + +PACKAGECONFIG ?= " \ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'sysvinit', d)} \ + gles2 \ +" + +SRC_URI = "git://github.com/swaywm/wlroots.git;protocol=https" +SRCREV = "c85789a3a9f6f851e6fbc900495057ba91b3e255" +PV = "0.13+${SRCREV}" + +S = "${WORKDIR}/git" + +inherit meson pkgconfig features_check + +EXTRA_OEMESON += "--buildtype release" + +FILES_${PN} = "${bindir} \ + ${libdir} \ + " + +FILES_${PN}-dev = "${includedir} \ + ${libdir}/libwlroots.so \ +" + +BBCLASSEXTEND = "" +