summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-libs/weston')
-rw-r--r--dev-libs/weston/Manifest3
-rw-r--r--dev-libs/weston/files/weston-musl-basename.patch73
-rw-r--r--dev-libs/weston/files/weston-neatvnc-0.8.patch15
-rw-r--r--dev-libs/weston/files/weston-pipewire-0.3.patch373
-rw-r--r--dev-libs/weston/metadata.xml8
-rw-r--r--dev-libs/weston/weston-13.0.0-r2.ebuild (renamed from dev-libs/weston/weston-9.0.0-r2.ebuild)85
-rw-r--r--dev-libs/weston/weston-13.0.1.ebuild151
-rw-r--r--dev-libs/weston/weston-9999.ebuild89
8 files changed, 332 insertions, 465 deletions
diff --git a/dev-libs/weston/Manifest b/dev-libs/weston/Manifest
index a34e308ad4f7..9507ecc296b7 100644
--- a/dev-libs/weston/Manifest
+++ b/dev-libs/weston/Manifest
@@ -1 +1,2 @@
-DIST weston-9.0.0.tar.xz 1555212 BLAKE2B 6c5feb3959ebe894861c6dc0817633b23e8518baf1c359c2967f111c071e9d4f166ef1421ad6465b036b3f1c485cab5f442476e7a44e3ec722cff576dea73852 SHA512 ccc263f8279b7b23e5c593b4a8a023de2c3dc178b1b8d6593599171770bcfe97608de9fcb77aa1cab39255451d289d323e51c317dae190c7641282e085b84f90
+DIST weston-13.0.0.tar.xz 1986520 BLAKE2B df0e73e451e39b329ed327c370f42bcae01eb5b8fad67711f069fa8f24900ac0c9a9e69b9a6445b67c76ab0ce441dcd2a5a1a8aa3ac0d89a647b9661d575a917 SHA512 8c656cdf24ec9429c76c64ebd2d58351991f5990a6d4b5900ac913243ad8e2c9c0fb1a748f018d177fbfd7e0a8836d0434d97acec287a8f977d47335ae30eacc
+DIST weston-13.0.1.tar.xz 1986684 BLAKE2B 7910f9b62c2fe92a6915037521024d3682f391727d615b044517e1cc2e157dc78b7571a923b9c6d62c55bf2a532101220d4ffd2ecbb81f984e9676919420576b SHA512 4a0fd0b1aec823219421d701030bc534576be64b71ede70c7d33f131e9e64c0e0dc209e62f75cecb9368df7604c1d5b2321932eccc818b529d246ec2e3114122
diff --git a/dev-libs/weston/files/weston-musl-basename.patch b/dev-libs/weston/files/weston-musl-basename.patch
new file mode 100644
index 000000000000..57b91331055f
--- /dev/null
+++ b/dev-libs/weston/files/weston-musl-basename.patch
@@ -0,0 +1,73 @@
+From dbd134ca5a3c639819c6fd503de7e2c72762ada0 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 14 Dec 2023 09:13:54 -0800
+Subject: [PATCH] libweston,tools: Include libgen.h for basename signature
+Upstream: https://gitlab.freedesktop.org/wayland/weston/-/commit/dbd134ca5a3c639819c6fd503de7e2c72762ada0
+Upstream-Status: Merged in main branch
+
+Latest musl has removed the declaration from string.h [1] as it only
+implements POSIX version alone and string.h in glibc implements GNU
+version of basename. This now results in compile errors on musl.
+
+This might be a warning with older compilers but it is error with
+Clang-17+ as it treats -Wimplicit-function-declaration as error
+
+Switch the use in backlight_init function to use POSIX version
+
+[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libweston/backend-drm/libbacklight.c | 8 +++++---
+ tools/zunitc/src/zunitc_impl.c | 1 +
+ 2 files changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/libweston/backend-drm/libbacklight.c b/libweston/backend-drm/libbacklight.c
+index ca7f2d6806..973d15ff8c 100644
+--- a/libweston/backend-drm/libbacklight.c
++++ b/libweston/backend-drm/libbacklight.c
+@@ -41,6 +41,7 @@
+ #include <drm.h>
+ #include <fcntl.h>
+ #include <malloc.h>
++#include <libgen.h>
+ #include <string.h>
+ #include <errno.h>
+
+@@ -167,7 +168,7 @@ struct backlight *backlight_init(struct udev_device *drm_device,
+ DIR *backlights = NULL;
+ struct dirent *entry;
+ enum backlight_type type = 0;
+- char buffer[100];
++ char buffer[100], basename_buffer[100];
+ struct backlight *backlight = NULL;
+ int ret;
+
+@@ -186,9 +187,10 @@ struct backlight *backlight_init(struct udev_device *drm_device,
+ free(path);
+ if (ret < 0)
+ return NULL;
+-
++ strncpy(basename_buffer, buffer, ret);
+ buffer[ret] = '\0';
+- pci_name = basename(buffer);
++ basename_buffer[ret] = '\0';
++ pci_name = basename(basename_buffer);
+
+ if (connector_type <= 0)
+ return NULL;
+diff --git a/tools/zunitc/src/zunitc_impl.c b/tools/zunitc/src/zunitc_impl.c
+index 18f030158e..9b460fa03b 100644
+--- a/tools/zunitc/src/zunitc_impl.c
++++ b/tools/zunitc/src/zunitc_impl.c
+@@ -27,6 +27,7 @@
+
+ #include <errno.h>
+ #include <fcntl.h>
++#include <libgen.h>
+ #include <stdarg.h>
+ #include <stdbool.h>
+ #include <stdio.h>
+--
+GitLab
+
diff --git a/dev-libs/weston/files/weston-neatvnc-0.8.patch b/dev-libs/weston/files/weston-neatvnc-0.8.patch
new file mode 100644
index 000000000000..03ffab596c3a
--- /dev/null
+++ b/dev-libs/weston/files/weston-neatvnc-0.8.patch
@@ -0,0 +1,15 @@
+https://bugs.gentoo.org/930424
+https://gitlab.freedesktop.org/wayland/weston/-/issues/890
+
+diff -Naur a/libweston/backend-vnc/meson.build b/libweston/backend-vnc/meson.build
+--- a/libweston/backend-vnc/meson.build 2023-11-27 18:01:53.000000000 +0000
++++ b/libweston/backend-vnc/meson.build 2024-04-24 23:55:22.262121014 +0100
+@@ -3,7 +3,7 @@
+ endif
+
+ config_h.set('BUILD_VNC_COMPOSITOR', '1')
+-dep_neatvnc = dependency('neatvnc', version: ['>= 0.7.0', '< 0.8.0'], required: false, fallback: ['neatvnc', 'neatvnc_dep'])
++dep_neatvnc = dependency('neatvnc', version: ['>= 0.7.0', '< 0.9.0'], required: false, fallback: ['neatvnc', 'neatvnc_dep'])
+ if not dep_neatvnc.found()
+ error('VNC backend requires neatvnc which was not found. Or, you can use \'-Dbackend-vnc=false\'.')
+ endif
diff --git a/dev-libs/weston/files/weston-pipewire-0.3.patch b/dev-libs/weston/files/weston-pipewire-0.3.patch
deleted file mode 100644
index a38250d8c8f2..000000000000
--- a/dev-libs/weston/files/weston-pipewire-0.3.patch
+++ /dev/null
@@ -1,373 +0,0 @@
-https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/456
-
-diff --git a/pipewire/meson.build b/pipewire/meson.build
-index 67db61f0777325695864db2bc6cf94145ed5564d..944b2259f146e07abdbd4773223f4bdb76dfa45a 100644
---- a/pipewire/meson.build
-+++ b/pipewire/meson.build
-@@ -5,17 +5,25 @@ if get_option('pipewire')
- error('Attempting to build the pipewire plugin without the required DRM backend. ' + user_hint)
- endif
-
-- depnames = [
-- 'libpipewire-0.2', 'libspa-0.1'
-- ]
- deps_pipewire = [ dep_libweston_private ]
-- foreach depname : depnames
-- dep = dependency(depname, required: false)
-- if not dep.found()
-- error('Pipewire plugin requires @0@ which was not found. '.format(depname) + user_hint)
-- endif
-- deps_pipewire += dep
-- endforeach
-+
-+ dep_libpipewire = dependency('libpipewire-0.3', required: false)
-+ if not dep_libpipewire.found()
-+ dep_libpipewire = dependency('libpipewire-0.2', required: false)
-+ endif
-+ if not dep_libpipewire.found()
-+ error('Pipewire plugin requires libpipewire which was not found. ' + user_hint)
-+ endif
-+ deps_pipewire += dep_libpipewire
-+
-+ dep_libspa = dependency('libspa-0.2', required: false)
-+ if not dep_libspa.found()
-+ dep_libspa = dependency('libspa-0.1', required: false)
-+ endif
-+ if not dep_libspa.found()
-+ error('Pipewire plugin requires libspa which was not found. ' + user_hint)
-+ endif
-+ deps_pipewire += dep_libspa
-
- plugin_pipewire = shared_library(
- 'pipewire-plugin',
-diff --git a/pipewire/pipewire-plugin.c b/pipewire/pipewire-plugin.c
-index fe7eb1d654d5ec67f7a3287532bb21c19ad9eac5..2c65f502c2917c23290a51bf1c24eac8d50129f1 100644
---- a/pipewire/pipewire-plugin.c
-+++ b/pipewire/pipewire-plugin.c
-@@ -34,20 +34,27 @@
- #include <errno.h>
- #include <unistd.h>
-
-+#include <pipewire/pipewire.h>
-+
- #include <spa/param/format-utils.h>
- #include <spa/param/video/format-utils.h>
- #include <spa/utils/defs.h>
-
--#include <pipewire/pipewire.h>
-+#if PW_CHECK_VERSION(0, 2, 90)
-+#include <spa/buffer/meta.h>
-+#include <spa/utils/result.h>
-+#endif
-
- #define PROP_RANGE(min, max) 2, (min), (max)
-
-+#if !PW_CHECK_VERSION(0, 2, 90)
- struct type {
- struct spa_type_media_type media_type;
- struct spa_type_media_subtype media_subtype;
- struct spa_type_format_video format_video;
- struct spa_type_video_format video_format;
- };
-+#endif
-
- struct weston_pipewire {
- struct weston_compositor *compositor;
-@@ -60,12 +67,19 @@ struct weston_pipewire {
- struct pw_loop *loop;
- struct wl_event_source *loop_source;
-
-+#if PW_CHECK_VERSION(0, 2, 90)
-+ struct pw_context *context;
-+#endif
- struct pw_core *core;
- struct pw_type *t;
-+#if PW_CHECK_VERSION(0, 2, 90)
-+ struct spa_hook core_listener;
-+#else
- struct type type;
-
- struct pw_remote *remote;
- struct spa_hook remote_listener;
-+#endif
- };
-
- struct pipewire_output {
-@@ -100,6 +114,7 @@ struct pipewire_frame_data {
- struct wl_event_source *fence_sync_event_source;
- };
-
-+#if !PW_CHECK_VERSION(0, 2, 90)
- static inline void init_type(struct type *type, struct spa_type_map *map)
- {
- spa_type_media_type_map(map, &type->media_type);
-@@ -107,6 +122,7 @@ static inline void init_type(struct type *type, struct spa_type_map *map)
- spa_type_format_video_map(map, &type->format_video);
- spa_type_video_format_map(map, &type->video_format);
- }
-+#endif
-
- static void
- pipewire_debug_impl(struct weston_pipewire *pipewire,
-@@ -141,6 +157,7 @@ pipewire_debug_impl(struct weston_pipewire *pipewire,
- free(logstr);
- }
-
-+#if !PW_CHECK_VERSION(0, 2, 90)
- static void
- pipewire_debug(struct weston_pipewire *pipewire, const char *fmt, ...)
- {
-@@ -150,6 +167,7 @@ pipewire_debug(struct weston_pipewire *pipewire, const char *fmt, ...)
- pipewire_debug_impl(pipewire, NULL, fmt, ap);
- va_end(ap);
- }
-+#endif
-
- static void
- pipewire_output_debug(struct pipewire_output *output, const char *fmt, ...)
-@@ -185,7 +203,9 @@ pipewire_output_handle_frame(struct pipewire_output *output, int fd,
- const struct weston_drm_virtual_output_api *api =
- output->pipewire->virtual_output_api;
- size_t size = output->output->height * stride;
-+#if !PW_CHECK_VERSION(0, 2, 90)
- struct pw_type *t = output->pipewire->t;
-+#endif
- struct pw_buffer *buffer;
- struct spa_buffer *spa_buffer;
- struct spa_meta_header *h;
-@@ -203,7 +223,12 @@ pipewire_output_handle_frame(struct pipewire_output *output, int fd,
-
- spa_buffer = buffer->buffer;
-
-+#if PW_CHECK_VERSION(0, 2, 90)
-+ if ((h = spa_buffer_find_meta_data(spa_buffer, SPA_META_Header,
-+ sizeof(struct spa_meta_header)))) {
-+#else
- if ((h = spa_buffer_find_meta(spa_buffer, t->meta.Header))) {
-+#endif
- h->pts = -1;
- h->flags = 0;
- h->seq = output->seq++;
-@@ -375,18 +400,40 @@ pipewire_set_dpms(struct weston_output *base_output, enum dpms_enum level)
- static int
- pipewire_output_connect(struct pipewire_output *output)
- {
-+#if !PW_CHECK_VERSION(0, 2, 90)
- struct weston_pipewire *pipewire = output->pipewire;
- struct type *type = &pipewire->type;
-+#endif
- uint8_t buffer[1024];
- struct spa_pod_builder builder =
- SPA_POD_BUILDER_INIT(buffer, sizeof(buffer));
- const struct spa_pod *params[1];
-+#if !PW_CHECK_VERSION(0, 2, 90)
- struct pw_type *t = pipewire->t;
-+#endif
- int frame_rate = output->output->current_mode->refresh / 1000;
- int width = output->output->width;
- int height = output->output->height;
- int ret;
-
-+#if PW_CHECK_VERSION(0, 2, 90)
-+ params[0] = spa_pod_builder_add_object(&builder,
-+ SPA_TYPE_OBJECT_Format, SPA_PARAM_EnumFormat,
-+ SPA_FORMAT_mediaType, SPA_POD_Id(SPA_MEDIA_TYPE_video),
-+ SPA_FORMAT_mediaSubtype, SPA_POD_Id(SPA_MEDIA_SUBTYPE_raw),
-+ SPA_FORMAT_VIDEO_format, SPA_POD_Id(SPA_VIDEO_FORMAT_BGRx),
-+ SPA_FORMAT_VIDEO_size, SPA_POD_Rectangle(&SPA_RECTANGLE(width, height)),
-+ SPA_FORMAT_VIDEO_framerate, SPA_POD_Fraction(&SPA_FRACTION (0, 1)),
-+ SPA_FORMAT_VIDEO_maxFramerate,
-+ SPA_POD_CHOICE_RANGE_Fraction(&SPA_FRACTION(frame_rate, 1),
-+ &SPA_FRACTION(1, 1),
-+ &SPA_FRACTION(frame_rate, 1)));
-+
-+ ret = pw_stream_connect(output->stream, PW_DIRECTION_OUTPUT, SPA_ID_INVALID,
-+ (PW_STREAM_FLAG_DRIVER |
-+ PW_STREAM_FLAG_MAP_BUFFERS),
-+ params, 1);
-+#else
- params[0] = spa_pod_builder_object(&builder,
- t->param.idEnumFormat, t->spa_format,
- "I", type->media_type.video,
-@@ -406,6 +453,7 @@ pipewire_output_connect(struct pipewire_output *output)
- (PW_STREAM_FLAG_DRIVER |
- PW_STREAM_FLAG_MAP_BUFFERS),
- params, 1);
-+#endif
- if (ret != 0) {
- weston_log("Failed to connect pipewire stream: %s",
- spa_strerror(ret));
-@@ -482,26 +530,42 @@ pipewire_output_stream_state_changed(void *data, enum pw_stream_state old,
- }
-
- static void
-+#if PW_CHECK_VERSION(0, 2, 90)
-+pipewire_output_stream_param_changed(void *data, uint32_t id, const struct spa_pod *format)
-+#else
- pipewire_output_stream_format_changed(void *data, const struct spa_pod *format)
-+#endif
- {
- struct pipewire_output *output = data;
-+#if !PW_CHECK_VERSION(0, 2, 90)
- struct weston_pipewire *pipewire = output->pipewire;
-+#endif
- uint8_t buffer[1024];
- struct spa_pod_builder builder =
- SPA_POD_BUILDER_INIT(buffer, sizeof(buffer));
- const struct spa_pod *params[2];
-+#if !PW_CHECK_VERSION(0, 2, 90)
- struct pw_type *t = pipewire->t;
-+#endif
- int32_t width, height, stride, size;
- const int bpp = 4;
-
- if (!format) {
- pipewire_output_debug(output, "format = None");
-+#if PW_CHECK_VERSION(0, 2, 90)
-+ pw_stream_update_params(output->stream, NULL, 0);
-+#else
- pw_stream_finish_format(output->stream, 0, NULL, 0);
-+#endif
- return;
- }
-
-+#if PW_CHECK_VERSION(0, 2, 90)
-+ spa_format_video_raw_parse(format, &output->video_format);
-+#else
- spa_format_video_raw_parse(format, &output->video_format,
- &pipewire->type.format_video);
-+#endif
-
- width = output->video_format.size.width;
- height = output->video_format.size.height;
-@@ -510,6 +574,21 @@ pipewire_output_stream_format_changed(void *data, const struct spa_pod *format)
-
- pipewire_output_debug(output, "format = %dx%d", width, height);
-
-+#if PW_CHECK_VERSION(0, 2, 90)
-+ params[0] = spa_pod_builder_add_object(&builder,
-+ SPA_TYPE_OBJECT_ParamBuffers, SPA_PARAM_Buffers,
-+ SPA_PARAM_BUFFERS_size, SPA_POD_Int(size),
-+ SPA_PARAM_BUFFERS_stride, SPA_POD_Int(stride),
-+ SPA_PARAM_BUFFERS_buffers, SPA_POD_CHOICE_RANGE_Int(4, 2, 8),
-+ SPA_PARAM_BUFFERS_align, SPA_POD_Int(16));
-+
-+ params[1] = spa_pod_builder_add_object(&builder,
-+ SPA_TYPE_OBJECT_ParamMeta, SPA_PARAM_Meta,
-+ SPA_PARAM_META_type, SPA_POD_Id(SPA_META_Header),
-+ SPA_PARAM_META_size, SPA_POD_Int(sizeof(struct spa_meta_header)));
-+
-+ pw_stream_update_params(output->stream, params, 2);
-+#else
- params[0] = spa_pod_builder_object(&builder,
- t->param.idBuffers, t->param_buffers.Buffers,
- ":", t->param_buffers.size,
-@@ -527,12 +606,17 @@ pipewire_output_stream_format_changed(void *data, const struct spa_pod *format)
- ":", t->param_meta.size, "i", sizeof(struct spa_meta_header));
-
- pw_stream_finish_format(output->stream, 0, params, 2);
-+#endif
- }
-
- static const struct pw_stream_events stream_events = {
- PW_VERSION_STREAM_EVENTS,
- .state_changed = pipewire_output_stream_state_changed,
-+#if PW_CHECK_VERSION(0, 2, 90)
-+ .param_changed = pipewire_output_stream_param_changed,
-+#else
- .format_changed = pipewire_output_stream_format_changed,
-+#endif
- };
-
- static struct weston_output *
-@@ -560,7 +644,11 @@ pipewire_output_create(struct weston_compositor *c, char *name)
- if (!head)
- goto err;
-
-+#if PW_CHECK_VERSION(0, 2, 90)
-+ output->stream = pw_stream_new(pipewire->core, name, NULL);
-+#else
- output->stream = pw_stream_new(pipewire->remote, name, NULL);
-+#endif
- if (!output->stream) {
- weston_log("Cannot initialize pipewire stream\n");
- goto err;
-@@ -704,6 +792,14 @@ weston_pipewire_loop_handler(int fd, uint32_t mask, void *data)
- return 0;
- }
-
-+#if PW_CHECK_VERSION(0, 2, 90)
-+static void
-+weston_pipewire_error(void *data, uint32_t id, int seq, int res,
-+ const char *error)
-+{
-+ weston_log("pipewire remote error: %s\n", error);
-+}
-+#else
- static void
- weston_pipewire_state_changed(void *data, enum pw_remote_state old,
- enum pw_remote_state state, const char *error)
-@@ -725,12 +821,20 @@ weston_pipewire_state_changed(void *data, enum pw_remote_state old,
- break;
- }
- }
-+#endif
-
-
-+#if PW_CHECK_VERSION(0, 2, 90)
-+static const struct pw_core_events core_events = {
-+ PW_VERSION_CORE_EVENTS,
-+ .error = weston_pipewire_error,
-+};
-+#else
- static const struct pw_remote_events remote_events = {
- PW_VERSION_REMOTE_EVENTS,
- .state_changed = weston_pipewire_state_changed,
- };
-+#endif
-
- static int
- weston_pipewire_init(struct weston_pipewire *pipewire)
-@@ -745,10 +849,19 @@ weston_pipewire_init(struct weston_pipewire *pipewire)
-
- pw_loop_enter(pipewire->loop);
-
-+#if PW_CHECK_VERSION(0, 2, 90)
-+ pipewire->context = pw_context_new(pipewire->loop, NULL, 0);
-+#else
- pipewire->core = pw_core_new(pipewire->loop, NULL);
- pipewire->t = pw_core_get_type(pipewire->core);
- init_type(&pipewire->type, pipewire->t->map);
-+#endif
-
-+#if PW_CHECK_VERSION(0, 2, 90)
-+ pw_core_add_listener(pipewire->core,
-+ &pipewire->core_listener,
-+ &core_events, pipewire);
-+#else
- pipewire->remote = pw_remote_new(pipewire->core, NULL, 0);
- pw_remote_add_listener(pipewire->remote,
- &pipewire->remote_listener,
-@@ -777,6 +890,7 @@ weston_pipewire_init(struct weston_pipewire *pipewire)
- goto err;
- }
- }
-+#endif
-
- loop = wl_display_get_event_loop(pipewire->compositor->wl_display);
- pipewire->loop_source =
-@@ -786,12 +900,14 @@ weston_pipewire_init(struct weston_pipewire *pipewire)
- pipewire);
-
- return 0;
-+#if !PW_CHECK_VERSION(0, 2, 90)
- err:
- if (pipewire->remote)
- pw_remote_destroy(pipewire->remote);
- pw_loop_leave(pipewire->loop);
- pw_loop_destroy(pipewire->loop);
- return -1;
-+#endif
- }
-
- static const struct weston_pipewire_api pipewire_api = {
diff --git a/dev-libs/weston/metadata.xml b/dev-libs/weston/metadata.xml
index 6b247269bc8e..a92c370bfe99 100644
--- a/dev-libs/weston/metadata.xml
+++ b/dev-libs/weston/metadata.xml
@@ -5,23 +5,23 @@
<email>chewi@gentoo.org</email>
<name>James Le Cuirot</name>
</maintainer>
+<upstream>
+ <remote-id type="freedesktop-gitlab">wayland/weston</remote-id>
+</upstream>
<use>
<flag name="desktop">Enable the desktop shell</flag>
<flag name="drm">Enable drm compositor support</flag>
<flag name="editor">Install wayland-editor example application</flag>
- <flag name="fbdev">Enable fbdev compositor support</flag>
<flag name="fullscreen">Enable fullscreen shell</flag>
- <flag name="gles2">Use GLESv2 cairo instead of full GL</flag>
+ <flag name="gles2">Enable the GLESv2 renderer, not just the <pkg>x11-libs/pixman</pkg>-based software fallback</flag>
<flag name="headless">Headless backend and a noop renderer, mainly for testing purposes</flag>
<flag name="ivi">Enable the IVI shell</flag>
<flag name="kiosk">Enable the kiosk shell</flag>
- <flag name="launch">Install weston-launch utility</flag>
<flag name="pipewire">Enable virtual remote output with Pipewire on DRM backend</flag>
<flag name="rdp">Enable Remote Desktop Protocol compositor support</flag>
<flag name="remoting">Enable plugin to stream output to remote hosts using <pkg>media-libs/gstreamer</pkg></flag>
<flag name="resize-optimization">Increase performance, allocate more RAM. Recommended to disable on Raspberry Pi</flag>
<flag name="screen-sharing">Enable screen-sharing through RDP</flag>
- <flag name="seatd">Enable support for rootless session via <pkg>sys-auth/seatd</pkg></flag>
<flag name="wayland-compositor">Enable Wayland compositor support</flag>
<flag name="xwayland">Enable ability support native X11 applications</flag>
</use>
diff --git a/dev-libs/weston/weston-9.0.0-r2.ebuild b/dev-libs/weston/weston-13.0.0-r2.ebuild
index b2013d85f980..e7b796fe2341 100644
--- a/dev-libs/weston/weston-9.0.0-r2.ebuild
+++ b/dev-libs/weston/weston-13.0.0-r2.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
if [[ ${PV} = 9999* ]]; then
EGIT_REPO_URI="https://gitlab.freedesktop.org/wayland/weston.git"
@@ -9,7 +9,8 @@ if [[ ${PV} = 9999* ]]; then
EXPERIMENTAL="true"
fi
-inherit meson readme.gentoo-r1 xdg-utils ${GIT_ECLASS}
+PYTHON_COMPAT=( python3_{10..12} )
+inherit meson python-any-r1 readme.gentoo-r1 xdg-utils ${GIT_ECLASS}
DESCRIPTION="Wayland reference compositor"
HOMEPAGE="https://wayland.freedesktop.org/ https://gitlab.freedesktop.org/wayland/weston"
@@ -17,44 +18,36 @@ HOMEPAGE="https://wayland.freedesktop.org/ https://gitlab.freedesktop.org/waylan
if [[ ${PV} = *9999* ]]; then
SRC_URI="${SRC_PATCHES}"
else
- SRC_URI="https://wayland.freedesktop.org/releases/${P}.tar.xz"
- KEYWORDS="amd64 arm arm64 ppc64 ~riscv x86"
+ SRC_URI="https://gitlab.freedesktop.org/wayland/${PN}/-/releases/${PV}/downloads/${P}.tar.xz"
+ KEYWORDS="amd64 arm arm64 ~ia64 ~loong ~riscv x86"
fi
LICENSE="MIT CC-BY-SA-3.0"
SLOT="0"
-IUSE="colord +desktop +drm editor examples fbdev fullscreen +gles2 headless ivi jpeg kiosk +launch lcms pipewire rdp remoting +resize-optimization screen-sharing +suid systemd test wayland-compositor webp +X xwayland"
+IUSE="+desktop +drm editor examples fullscreen +gles2 headless ivi jpeg kiosk lcms pipewire rdp remoting +resize-optimization screen-sharing +suid systemd test vnc wayland-compositor webp +X xwayland"
RESTRICT="!test? ( test )"
REQUIRED_USE="
- colord? ( lcms )
drm? ( gles2 )
pipewire? ( drm )
+ remoting? ( drm gles2 )
screen-sharing? ( rdp )
- test? ( desktop headless xwayland )
+ test? ( desktop headless lcms xwayland )
wayland-compositor? ( gles2 )
- || ( drm fbdev headless rdp wayland-compositor X )
+ || ( drm headless rdp vnc wayland-compositor X )
"
RDEPEND="
- >=dev-libs/libinput-0.8.0
- >=dev-libs/wayland-1.17.0
- >=dev-libs/wayland-protocols-1.18
- lcms? ( media-libs/lcms:2 )
+ >=dev-libs/libinput-1.2.0
+ >=dev-libs/wayland-1.22.0
media-libs/libpng:0=
- webp? ( media-libs/libwebp:0= )
- jpeg? ( virtual/jpeg:0= )
+ sys-auth/seatd:=
>=x11-libs/cairo-1.11.3
- >=x11-libs/libdrm-2.4.68
+ >=x11-libs/libdrm-2.4.108
>=x11-libs/libxkbcommon-0.5.0
>=x11-libs/pixman-0.25.2
x11-misc/xkeyboard-config
- fbdev? (
- >=sys-libs/mtdev-1.1.0
- >=virtual/udev-136
- )
- colord? ( >=x11-misc/colord-0.1.27 )
drm? (
>=media-libs/mesa-17.1[gbm(+)]
>=sys-libs/mtdev-1.1.0
@@ -62,21 +55,22 @@ RDEPEND="
)
editor? ( x11-libs/pango )
examples? ( x11-libs/pango )
- gles2? (
- media-libs/mesa[gles2,wayland]
- )
- pipewire? ( >=media-video/pipewire-0.2:= )
- rdp? ( >=net-misc/freerdp-2.0.0_rc2:= )
+ gles2? ( media-libs/mesa[gles2(+),wayland] )
+ jpeg? ( media-libs/libjpeg-turbo:0= )
+ lcms? ( >=media-libs/lcms-2.9:2 )
+ pipewire? ( >=media-video/pipewire-0.3:= )
+ rdp? ( >=net-misc/freerdp-2.3.0:2=[server] )
remoting? (
media-libs/gstreamer:1.0
media-libs/gst-plugins-base:1.0
)
- systemd? (
- sys-auth/pambase[systemd]
- >=sys-apps/dbus-1.6
- >=sys-apps/systemd-209[pam]
+ systemd? ( sys-apps/systemd )
+ vnc? (
+ =dev-libs/aml-0.3*
+ =gui-libs/neatvnc-0.8*
+ sys-libs/pam
)
- launch? ( sys-auth/pambase )
+ webp? ( media-libs/libwebp:0= )
X? (
>=x11-libs/libxcb-1.9
x11-libs/libX11
@@ -86,30 +80,40 @@ RDEPEND="
x11-libs/cairo[X,xcb(+)]
>=x11-libs/libxcb-1.9
x11-libs/libXcursor
+ >=x11-libs/xcb-util-cursor-0.1.4
)
"
-DEPEND="${RDEPEND}"
+DEPEND="${RDEPEND}
+ >=dev-libs/wayland-protocols-1.24
+"
BDEPEND="
+ ${PYTHON_DEPS}
+ dev-util/wayland-scanner
virtual/pkgconfig
+ $(python_gen_any_dep 'dev-python/setuptools[${PYTHON_USEDEP}]')
"
PATCHES=(
- "${FILESDIR}"/${PN}-pipewire-0.3.patch
+ "${FILESDIR}"/${PN}-neatvnc-0.8.patch
)
+python_check_deps() {
+ python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]"
+}
+
src_configure() {
local emesonargs=(
$(meson_use drm backend-drm)
-Dbackend-drm-screencast-vaapi=false
$(meson_use headless backend-headless)
+ $(meson_use pipewire backend-pipewire)
$(meson_use rdp backend-rdp)
$(meson_use screen-sharing screenshare)
+ $(meson_use vnc backend-vnc)
$(meson_use wayland-compositor backend-wayland)
$(meson_use X backend-x11)
- $(meson_use fbdev backend-fbdev)
-Dbackend-default=auto
$(meson_use gles2 renderer-gl)
- $(meson_use launch weston-launch)
$(meson_use xwayland)
$(meson_use systemd)
$(meson_use remoting)
@@ -119,8 +123,6 @@ src_configure() {
$(meson_use ivi shell-ivi)
$(meson_use kiosk shell-kiosk)
$(meson_use lcms color-management-lcms)
- $(meson_use colord color-management-colord)
- $(meson_use systemd launcher-logind)
$(meson_use jpeg image-jpeg)
$(meson_use webp image-webp)
-Dtools=debug,info,terminal
@@ -128,7 +130,6 @@ src_configure() {
-Dsimple-clients=$(usex examples damage,dmabuf-v4l,im,shm,touch$(usex gles2 ,dmabuf-egl,egl "") "")
$(meson_use resize-optimization resize-pool)
-Dtest-junit-xml=false
- -Dtest-gl-renderer=false
"${myconf[@]}"
)
meson_src_configure
@@ -136,16 +137,14 @@ src_configure() {
src_test() {
xdg_environment_reset
+ addwrite /dev/dri/
- # devices test usually fails.
+ # xwayland test can fail if X11 socket already exists.
cd "${BUILD_DIR}" || die
- meson test $(meson test --list | grep -Fxv devices) || die
+ meson test $(meson test --list | grep -Exv "xwayland") || die
}
src_install() {
meson_src_install
- if use launch && use suid; then
- chmod u+s "${ED}"/usr/bin/weston-launch || die
- fi
readme.gentoo_create_doc
}
diff --git a/dev-libs/weston/weston-13.0.1.ebuild b/dev-libs/weston/weston-13.0.1.ebuild
new file mode 100644
index 000000000000..801ef005cb3b
--- /dev/null
+++ b/dev-libs/weston/weston-13.0.1.ebuild
@@ -0,0 +1,151 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+if [[ ${PV} = 9999* ]]; then
+ EGIT_REPO_URI="https://gitlab.freedesktop.org/wayland/weston.git"
+ GIT_ECLASS="git-r3"
+ EXPERIMENTAL="true"
+fi
+
+PYTHON_COMPAT=( python3_{10..12} )
+inherit meson python-any-r1 readme.gentoo-r1 xdg-utils ${GIT_ECLASS}
+
+DESCRIPTION="Wayland reference compositor"
+HOMEPAGE="https://wayland.freedesktop.org/ https://gitlab.freedesktop.org/wayland/weston"
+
+if [[ ${PV} = *9999* ]]; then
+ SRC_URI="${SRC_PATCHES}"
+else
+ SRC_URI="https://gitlab.freedesktop.org/wayland/${PN}/-/releases/${PV}/downloads/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~loong ~riscv ~x86"
+fi
+
+LICENSE="MIT CC-BY-SA-3.0"
+SLOT="0"
+
+IUSE="+desktop +drm editor examples fullscreen +gles2 headless ivi jpeg kiosk lcms pipewire rdp remoting +resize-optimization screen-sharing +suid systemd test vnc wayland-compositor webp +X xwayland"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="
+ drm? ( gles2 )
+ pipewire? ( drm )
+ remoting? ( drm gles2 )
+ screen-sharing? ( rdp )
+ test? ( desktop headless lcms xwayland )
+ wayland-compositor? ( gles2 )
+ || ( drm headless rdp vnc wayland-compositor X )
+"
+
+RDEPEND="
+ >=dev-libs/libinput-1.2.0
+ >=dev-libs/wayland-1.22.0
+ media-libs/libpng:0=
+ sys-auth/seatd:=
+ >=x11-libs/cairo-1.11.3
+ >=x11-libs/libdrm-2.4.108
+ >=x11-libs/libxkbcommon-0.5.0
+ >=x11-libs/pixman-0.25.2
+ x11-misc/xkeyboard-config
+ drm? (
+ >=media-libs/mesa-17.1[gbm(+)]
+ >=sys-libs/mtdev-1.1.0
+ >=virtual/udev-136
+ )
+ editor? ( x11-libs/pango )
+ examples? ( x11-libs/pango )
+ gles2? ( media-libs/mesa[gles2(+),wayland] )
+ jpeg? ( media-libs/libjpeg-turbo:0= )
+ lcms? ( >=media-libs/lcms-2.9:2 )
+ pipewire? ( >=media-video/pipewire-0.3:= )
+ rdp? ( >=net-misc/freerdp-2.3.0:2=[server] )
+ remoting? (
+ media-libs/gstreamer:1.0
+ media-libs/gst-plugins-base:1.0
+ )
+ systemd? ( sys-apps/systemd )
+ vnc? (
+ =dev-libs/aml-0.3*
+ =gui-libs/neatvnc-0.8*
+ sys-libs/pam
+ )
+ webp? ( media-libs/libwebp:0= )
+ X? (
+ >=x11-libs/libxcb-1.9
+ x11-libs/libX11
+ )
+ xwayland? (
+ x11-base/xwayland
+ x11-libs/cairo[X,xcb(+)]
+ >=x11-libs/libxcb-1.9
+ x11-libs/libXcursor
+ >=x11-libs/xcb-util-cursor-0.1.4
+ )
+"
+DEPEND="${RDEPEND}
+ >=dev-libs/wayland-protocols-1.24
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-util/wayland-scanner
+ virtual/pkgconfig
+ $(python_gen_any_dep 'dev-python/setuptools[${PYTHON_USEDEP}]')
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-neatvnc-0.8.patch
+ "${FILESDIR}"/${PN}-musl-basename.patch
+)
+
+python_check_deps() {
+ python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]"
+}
+
+src_configure() {
+ local emesonargs=(
+ $(meson_use drm backend-drm)
+ -Dbackend-drm-screencast-vaapi=false
+ $(meson_use headless backend-headless)
+ $(meson_use pipewire backend-pipewire)
+ $(meson_use rdp backend-rdp)
+ $(meson_use screen-sharing screenshare)
+ $(meson_use vnc backend-vnc)
+ $(meson_use wayland-compositor backend-wayland)
+ $(meson_use X backend-x11)
+ -Dbackend-default=auto
+ $(meson_use gles2 renderer-gl)
+ $(meson_use xwayland)
+ $(meson_use systemd)
+ $(meson_use remoting)
+ $(meson_use pipewire)
+ $(meson_use desktop shell-desktop)
+ $(meson_use fullscreen shell-fullscreen)
+ $(meson_use ivi shell-ivi)
+ $(meson_use kiosk shell-kiosk)
+ $(meson_use lcms color-management-lcms)
+ $(meson_use jpeg image-jpeg)
+ $(meson_use webp image-webp)
+ -Dtools=debug,info,terminal
+ $(meson_use examples demo-clients)
+ -Dsimple-clients=$(usex examples damage,dmabuf-v4l,im,shm,touch$(usex gles2 ,dmabuf-egl,egl "") "")
+ $(meson_use resize-optimization resize-pool)
+ -Dtest-junit-xml=false
+ "${myconf[@]}"
+ )
+ meson_src_configure
+}
+
+src_test() {
+ xdg_environment_reset
+ addwrite /dev/dri/
+
+ # xwayland test can fail if X11 socket already exists.
+ cd "${BUILD_DIR}" || die
+ meson test $(meson test --list | grep -Exv "xwayland") || die
+}
+
+src_install() {
+ meson_src_install
+ readme.gentoo_create_doc
+}
diff --git a/dev-libs/weston/weston-9999.ebuild b/dev-libs/weston/weston-9999.ebuild
index 75c191a28c7b..40b3bd77eef2 100644
--- a/dev-libs/weston/weston-9999.ebuild
+++ b/dev-libs/weston/weston-9999.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
if [[ ${PV} = 9999* ]]; then
EGIT_REPO_URI="https://gitlab.freedesktop.org/wayland/weston.git"
@@ -9,7 +9,8 @@ if [[ ${PV} = 9999* ]]; then
EXPERIMENTAL="true"
fi
-inherit meson readme.gentoo-r1 xdg-utils ${GIT_ECLASS}
+PYTHON_COMPAT=( python3_{10..12} )
+inherit meson python-any-r1 readme.gentoo-r1 xdg-utils ${GIT_ECLASS}
DESCRIPTION="Wayland reference compositor"
HOMEPAGE="https://wayland.freedesktop.org/ https://gitlab.freedesktop.org/wayland/weston"
@@ -17,44 +18,36 @@ HOMEPAGE="https://wayland.freedesktop.org/ https://gitlab.freedesktop.org/waylan
if [[ ${PV} = *9999* ]]; then
SRC_URI="${SRC_PATCHES}"
else
- SRC_URI="https://wayland.freedesktop.org/releases/${P}.tar.xz"
- KEYWORDS="~amd64 ~arm ~x86"
+ SRC_URI="https://gitlab.freedesktop.org/wayland/${PN}/-/releases/${PV}/downloads/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~loong ~riscv ~x86"
fi
LICENSE="MIT CC-BY-SA-3.0"
SLOT="0"
-IUSE="colord +desktop +drm editor examples fbdev fullscreen +gles2 headless ivi jpeg kiosk +launch lcms pipewire rdp remoting +resize-optimization screen-sharing seatd +suid systemd test wayland-compositor webp +X xwayland"
+IUSE="+desktop +drm editor examples fullscreen +gles2 headless ivi jpeg kiosk lcms pipewire rdp remoting +resize-optimization screen-sharing +suid systemd test vnc wayland-compositor webp +X xwayland"
RESTRICT="!test? ( test )"
REQUIRED_USE="
- colord? ( lcms )
drm? ( gles2 )
pipewire? ( drm )
+ remoting? ( drm gles2 )
screen-sharing? ( rdp )
- test? ( desktop headless xwayland )
+ test? ( desktop headless lcms xwayland )
wayland-compositor? ( gles2 )
- || ( drm fbdev headless rdp wayland-compositor X )
+ || ( drm headless rdp vnc wayland-compositor X )
"
RDEPEND="
- >=dev-libs/libinput-0.8.0
- >=dev-libs/wayland-1.17.0
- >=dev-libs/wayland-protocols-1.18
- lcms? ( media-libs/lcms:2 )
+ >=dev-libs/libinput-1.2.0
+ >=dev-libs/wayland-1.22.0
media-libs/libpng:0=
- webp? ( media-libs/libwebp:0= )
- jpeg? ( virtual/jpeg:0= )
+ sys-auth/seatd:=
>=x11-libs/cairo-1.11.3
- >=x11-libs/libdrm-2.4.68
+ >=x11-libs/libdrm-2.4.108
>=x11-libs/libxkbcommon-0.5.0
>=x11-libs/pixman-0.25.2
x11-misc/xkeyboard-config
- fbdev? (
- >=sys-libs/mtdev-1.1.0
- >=virtual/udev-136
- )
- colord? ( >=x11-misc/colord-0.1.27 )
drm? (
>=media-libs/mesa-17.1[gbm(+)]
>=sys-libs/mtdev-1.1.0
@@ -62,22 +55,22 @@ RDEPEND="
)
editor? ( x11-libs/pango )
examples? ( x11-libs/pango )
- gles2? (
- media-libs/mesa[gles2,wayland]
- )
- pipewire? ( >=media-video/pipewire-0.2:= )
- rdp? ( >=net-misc/freerdp-2.0.0_rc2:= )
+ gles2? ( media-libs/mesa[gles2(+),wayland] )
+ jpeg? ( media-libs/libjpeg-turbo:0= )
+ lcms? ( >=media-libs/lcms-2.9:2 )
+ pipewire? ( >=media-video/pipewire-0.3:= )
+ rdp? ( >=net-misc/freerdp-2.3.0:2=[server] )
remoting? (
media-libs/gstreamer:1.0
media-libs/gst-plugins-base:1.0
)
- seatd? ( sys-auth/seatd:= )
- systemd? (
- sys-auth/pambase[systemd]
- >=sys-apps/dbus-1.6
- >=sys-apps/systemd-209[pam]
+ systemd? ( sys-apps/systemd )
+ vnc? (
+ =dev-libs/aml-0.3*
+ =gui-libs/neatvnc-0.8*
+ sys-libs/pam
)
- launch? ( sys-auth/pambase )
+ webp? ( media-libs/libwebp:0= )
X? (
>=x11-libs/libxcb-1.9
x11-libs/libX11
@@ -87,28 +80,41 @@ RDEPEND="
x11-libs/cairo[X,xcb(+)]
>=x11-libs/libxcb-1.9
x11-libs/libXcursor
+ >=x11-libs/xcb-util-cursor-0.1.4
)
"
-DEPEND="${RDEPEND}"
+DEPEND="${RDEPEND}
+ >=dev-libs/wayland-protocols-1.24
+"
BDEPEND="
+ ${PYTHON_DEPS}
+ dev-util/wayland-scanner
virtual/pkgconfig
+ $(python_gen_any_dep 'dev-python/setuptools[${PYTHON_USEDEP}]')
"
+PATCHES=(
+ "${FILESDIR}"/${PN}-neatvnc-0.8.patch
+)
+
+python_check_deps() {
+ python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]"
+}
+
src_configure() {
local emesonargs=(
$(meson_use drm backend-drm)
-Dbackend-drm-screencast-vaapi=false
$(meson_use headless backend-headless)
+ $(meson_use pipewire backend-pipewire)
$(meson_use rdp backend-rdp)
$(meson_use screen-sharing screenshare)
+ $(meson_use vnc backend-vnc)
$(meson_use wayland-compositor backend-wayland)
$(meson_use X backend-x11)
- $(meson_use fbdev backend-fbdev)
-Dbackend-default=auto
$(meson_use gles2 renderer-gl)
- $(meson_use launch weston-launch)
$(meson_use xwayland)
- $(meson_use seatd launcher-libseat)
$(meson_use systemd)
$(meson_use remoting)
$(meson_use pipewire)
@@ -117,8 +123,6 @@ src_configure() {
$(meson_use ivi shell-ivi)
$(meson_use kiosk shell-kiosk)
$(meson_use lcms color-management-lcms)
- $(meson_use colord color-management-colord)
- $(meson_use systemd launcher-logind)
$(meson_use jpeg image-jpeg)
$(meson_use webp image-webp)
-Dtools=debug,info,terminal
@@ -126,7 +130,6 @@ src_configure() {
-Dsimple-clients=$(usex examples damage,dmabuf-v4l,im,shm,touch$(usex gles2 ,dmabuf-egl,egl "") "")
$(meson_use resize-optimization resize-pool)
-Dtest-junit-xml=false
- -Dtest-gl-renderer=false
"${myconf[@]}"
)
meson_src_configure
@@ -134,16 +137,14 @@ src_configure() {
src_test() {
xdg_environment_reset
+ addwrite /dev/dri/
- # devices test usually fails.
+ # xwayland test can fail if X11 socket already exists.
cd "${BUILD_DIR}" || die
- meson test $(meson test --list | grep -Fxv devices) || die
+ meson test $(meson test --list | grep -Exv "xwayland") || die
}
src_install() {
meson_src_install
- if use launch && use suid; then
- chmod u+s "${ED}"/usr/bin/weston-launch || die
- fi
readme.gentoo_create_doc
}