diff options
Diffstat (limited to 'dev-libs/weston')
-rw-r--r-- | dev-libs/weston/Manifest | 3 | ||||
-rw-r--r-- | dev-libs/weston/files/weston-musl-basename.patch | 73 | ||||
-rw-r--r-- | dev-libs/weston/files/weston-neatvnc-0.8.patch | 15 | ||||
-rw-r--r-- | dev-libs/weston/files/weston-pipewire-0.3.patch | 373 | ||||
-rw-r--r-- | dev-libs/weston/metadata.xml | 8 | ||||
-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.ebuild | 151 | ||||
-rw-r--r-- | dev-libs/weston/weston-9999.ebuild | 89 |
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 } |