Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package wayclip for openSUSE:Factory checked in at 2025-12-31 10:47:41 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/wayclip (Old) and /work/SRC/openSUSE:Factory/.wayclip.new.1928 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wayclip" Wed Dec 31 10:47:41 2025 rev:3 rq:1324846 version:0.5+git.1754102356.a0826e7 Changes: -------- --- /work/SRC/openSUSE:Factory/wayclip/wayclip.changes 2025-04-02 18:42:45.245992345 +0200 +++ /work/SRC/openSUSE:Factory/.wayclip.new.1928/wayclip.changes 2025-12-31 10:48:21.660775831 +0100 @@ -1,0 +2,6 @@ +Mon Dec 01 17:01:33 UTC 2025 - Matej Cepl <[email protected]> + +- Update to version 0.5+git.1754102356.a0826e7: + * replace wlr-data-control-unstable-v1 with ext-data-control-v1 + +------------------------------------------------------------------- Old: ---- wayclip-0.4.2+git.1709775940.a62ac18.tar.xz New: ---- wayclip-0.5+git.1754102356.a0826e7.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ wayclip.spec ++++++ --- /var/tmp/diff_new_pack.maghTa/_old 2025-12-31 10:48:22.204798093 +0100 +++ /var/tmp/diff_new_pack.maghTa/_new 2025-12-31 10:48:22.208798256 +0100 @@ -17,7 +17,7 @@ Name: wayclip -Version: 0.4.2+git.1709775940.a62ac18 +Version: 0.5+git.1754102356.a0826e7 Release: 0 Summary: Wayland clipboard utility License: ISC ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.maghTa/_old 2025-12-31 10:48:22.244799730 +0100 +++ /var/tmp/diff_new_pack.maghTa/_new 2025-12-31 10:48:22.248799893 +0100 @@ -1,5 +1,5 @@ -mtime: 1743604398 -commit: e08744fa5677a9e2d7a76bf27a91ac2fb97427d7 +mtime: 1766422422 +commit: 179041b8ac3f793abd7232b3233174a9f3fc01e0 url: https://src.opensuse.org/mcepl/wayclip.git revision: factory ++++++ _service ++++++ --- /var/tmp/diff_new_pack.maghTa/_old 2025-12-31 10:48:22.284801366 +0100 +++ /var/tmp/diff_new_pack.maghTa/_new 2025-12-31 10:48:22.288801530 +0100 @@ -1,9 +1,8 @@ <services> <service name="tar_scm" mode="manual"> - <param name="url">https://git.sr.ht/~mcepl/wayclip</param> - <param name="versionprefix">0.4.2+git</param> + <param name="url">https://git.sr.ht/~noocsharp/wayclip</param> + <param name="versionprefix">0.5+git</param> <param name="scm">git</param> - <param name="revision">devel</param> <param name="changesgenerate">enable</param> </service> <service name="set_version" mode="manual"/> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.maghTa/_old 2025-12-31 10:48:22.308802348 +0100 +++ /var/tmp/diff_new_pack.maghTa/_new 2025-12-31 10:48:22.312802513 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> - <param name="url">https://git.sr.ht/~mcepl/wayclip</param> - <param name="changesrevision">a62ac18e5e56085bd416fbe5fbe22b3560291e7b</param></service></servicedata> + <param name="url">https://git.sr.ht/~noocsharp/wayclip</param> + <param name="changesrevision">a0826e72e2c5bda81359390d05cf4fc18d306e06</param></service></servicedata> (No newline at EOF) ++++++ build.specials.obscpio ++++++ ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2025-12-22 17:54:00.000000000 +0100 @@ -0,0 +1,5 @@ +.osc +build.specials.obscpio +series +*.obscpio +wayclip/ ++++++ wayclip-0.4.2+git.1709775940.a62ac18.tar.xz -> wayclip-0.5+git.1754102356.a0826e7.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayclip-0.4.2+git.1709775940.a62ac18/Makefile new/wayclip-0.5+git.1754102356.a0826e7/Makefile --- old/wayclip-0.4.2+git.1709775940.a62ac18/Makefile 2024-03-07 02:45:40.000000000 +0100 +++ new/wayclip-0.5+git.1754102356.a0826e7/Makefile 2025-08-02 04:39:16.000000000 +0200 @@ -3,7 +3,7 @@ MANPREFIX = $(PREFIX)/share/man LIB = -lwayland-client EXE = waycopy waypaste -OBJ_COMMON = protocol/wlr-data-control-unstable-v1.o common.o +OBJ_COMMON = protocol/ext-data-control-v1.o common.o all: $(EXE) @@ -13,15 +13,15 @@ waycopy: waycopy.o $(OBJ_COMMON) $(CC) waycopy.o $(OBJ_COMMON) $(LIB) -o $@ -waycopy.o: waycopy.c common.h protocol/wlr-data-control-unstable-v1-client-protocol.h +waycopy.o: waycopy.c common.h protocol/ext-data-control-v1-client-protocol.h -waypaste.o: waypaste.c common.h protocol/wlr-data-control-unstable-v1-client-protocol.h +waypaste.o: waypaste.c common.h protocol/ext-data-control-v1-client-protocol.h -protocol/wlr-data-control-unstable-v1.c: protocol/wlr-data-control-unstable-v1.xml - wayland-scanner private-code protocol/wlr-data-control-unstable-v1.xml $@ +protocol/ext-data-control-v1.c: protocol/ext-data-control-v1.xml + wayland-scanner private-code protocol/ext-data-control-v1.xml $@ -protocol/wlr-data-control-unstable-v1-client-protocol.h: protocol/wlr-data-control-unstable-v1.xml - wayland-scanner client-header protocol/wlr-data-control-unstable-v1.xml $@ +protocol/ext-data-control-v1-client-protocol.h: protocol/ext-data-control-v1.xml + wayland-scanner client-header protocol/ext-data-control-v1.xml $@ .c.o: $(CC) -Wall -Wpedantic $(CFLAGS) -c $< -o $@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayclip-0.4.2+git.1709775940.a62ac18/README.md new/wayclip-0.5+git.1754102356.a0826e7/README.md --- old/wayclip-0.4.2+git.1709775940.a62ac18/README.md 2024-03-07 02:45:40.000000000 +0100 +++ new/wayclip-0.5+git.1754102356.a0826e7/README.md 2025-08-02 04:39:16.000000000 +0200 @@ -2,7 +2,7 @@ wayclip is a pair of command-line utilities: `waycopy` and `waypaste`, which allow access to the Wayland clipboard. Specifically, `wayclip` -is a `wlr-data-control` protocol client. +is an `ext-data-control` protocol client. wayclip distinguishes itself from other Wayland clipboard utilities in the following ways: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayclip-0.4.2+git.1709775940.a62ac18/common.c new/wayclip-0.5+git.1754102356.a0826e7/common.c --- old/wayclip-0.4.2+git.1709775940.a62ac18/common.c 2024-03-07 02:45:40.000000000 +0100 +++ new/wayclip-0.5+git.1754102356.a0826e7/common.c 2025-08-02 04:39:16.000000000 +0200 @@ -1,4 +1,5 @@ #define _POSIX_C_SOURCE 2 // getopt + #include <stdbool.h> #include <stdio.h> #include <stdlib.h> @@ -6,7 +7,7 @@ #include <unistd.h> #include <wayland-client.h> -#include "protocol/wlr-data-control-unstable-v1-client-protocol.h" +#include "protocol/ext-data-control-v1-client-protocol.h" #include "common.h" const char *argv0; @@ -14,7 +15,7 @@ static bool seat_found = false; struct wl_seat *seat; -struct zwlr_data_control_manager_v1 *data_control_manager; +struct ext_data_control_manager_v1 *data_control_manager; struct options options = { .type = "text/plain;charset=utf-8" @@ -43,13 +44,13 @@ registry_global(void *data, struct wl_registry *registry, uint32_t name, const char *interface, uint32_t version) { if (!seat_found && strcmp(interface, "wl_seat") == 0) { - seat = wl_registry_bind(registry, name, &wl_seat_interface, 2); + seat = wl_registry_bind(registry, name, &wl_seat_interface, 1); if (options.seat) { wl_seat_add_listener(seat, &seat_listener, NULL); seat = NULL; } else seat_found = true; - } else if (strcmp(interface, "zwlr_data_control_manager_v1") == 0) { - data_control_manager = wl_registry_bind(registry, name, &zwlr_data_control_manager_v1_interface, 2); + } else if (strcmp(interface, "ext_data_control_manager_v1") == 0) { + data_control_manager = wl_registry_bind(registry, name, &ext_data_control_manager_v1_interface, 1); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayclip-0.4.2+git.1709775940.a62ac18/common.h new/wayclip-0.5+git.1754102356.a0826e7/common.h --- old/wayclip-0.4.2+git.1709775940.a62ac18/common.h 2024-03-07 02:45:40.000000000 +0100 +++ new/wayclip-0.5+git.1754102356.a0826e7/common.h 2025-08-02 04:39:16.000000000 +0200 @@ -1,5 +1,5 @@ extern struct wl_seat *seat; -extern struct zwlr_data_control_manager_v1 *data_control_manager; +extern struct ext_data_control_manager_v1 *data_control_manager; extern const struct wl_registry_listener registry_listener; extern const char *argv0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayclip-0.4.2+git.1709775940.a62ac18/protocol/ext-data-control-v1.xml new/wayclip-0.5+git.1754102356.a0826e7/protocol/ext-data-control-v1.xml --- old/wayclip-0.4.2+git.1709775940.a62ac18/protocol/ext-data-control-v1.xml 1970-01-01 01:00:00.000000000 +0100 +++ new/wayclip-0.5+git.1754102356.a0826e7/protocol/ext-data-control-v1.xml 2025-08-02 04:39:16.000000000 +0200 @@ -0,0 +1,276 @@ +<?xml version="1.0" encoding="UTF-8"?> +<protocol name="ext_data_control_v1"> + <copyright> + Copyright © 2018 Simon Ser + Copyright © 2019 Ivan Molodetskikh + Copyright © 2024 Neal Gompa + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that copyright notice and this permission + notice appear in supporting documentation, and that the name of + the copyright holders not be used in advertising or publicity + pertaining to distribution of the software without specific, + written prior permission. The copyright holders make no + representations about the suitability of this software for any + purpose. It is provided "as is" without express or implied + warranty. + + THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS + SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY + SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN + AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF + THIS SOFTWARE. + </copyright> + + <description summary="control data devices"> + This protocol allows a privileged client to control data devices. In + particular, the client will be able to manage the current selection and take + the role of a clipboard manager. + + Warning! The protocol described in this file is currently in the testing + phase. Backward compatible changes may be added together with the + corresponding interface version bump. Backward incompatible changes can + only be done by creating a new major version of the extension. + </description> + + <interface name="ext_data_control_manager_v1" version="1"> + <description summary="manager to control data devices"> + This interface is a manager that allows creating per-seat data device + controls. + </description> + + <request name="create_data_source"> + <description summary="create a new data source"> + Create a new data source. + </description> + <arg name="id" type="new_id" interface="ext_data_control_source_v1" + summary="data source to create"/> + </request> + + <request name="get_data_device"> + <description summary="get a data device for a seat"> + Create a data device that can be used to manage a seat's selection. + </description> + <arg name="id" type="new_id" interface="ext_data_control_device_v1"/> + <arg name="seat" type="object" interface="wl_seat"/> + </request> + + <request name="destroy" type="destructor"> + <description summary="destroy the manager"> + All objects created by the manager will still remain valid, until their + appropriate destroy request has been called. + </description> + </request> + </interface> + + <interface name="ext_data_control_device_v1" version="1"> + <description summary="manage a data device for a seat"> + This interface allows a client to manage a seat's selection. + + When the seat is destroyed, this object becomes inert. + </description> + + <request name="set_selection"> + <description summary="copy data to the selection"> + This request asks the compositor to set the selection to the data from + the source on behalf of the client. + + The given source may not be used in any further set_selection or + set_primary_selection requests. Attempting to use a previously used + source triggers the used_source protocol error. + + To unset the selection, set the source to NULL. + </description> + <arg name="source" type="object" interface="ext_data_control_source_v1" + allow-null="true"/> + </request> + + <request name="destroy" type="destructor"> + <description summary="destroy this data device"> + Destroys the data device object. + </description> + </request> + + <event name="data_offer"> + <description summary="introduce a new ext_data_control_offer"> + The data_offer event introduces a new ext_data_control_offer object, + which will subsequently be used in either the + ext_data_control_device.selection event (for the regular clipboard + selections) or the ext_data_control_device.primary_selection event (for + the primary clipboard selections). Immediately following the + ext_data_control_device.data_offer event, the new data_offer object + will send out ext_data_control_offer.offer events to describe the MIME + types it offers. + </description> + <arg name="id" type="new_id" interface="ext_data_control_offer_v1"/> + </event> + + <event name="selection"> + <description summary="advertise new selection"> + The selection event is sent out to notify the client of a new + ext_data_control_offer for the selection for this device. The + ext_data_control_device.data_offer and the ext_data_control_offer.offer + events are sent out immediately before this event to introduce the data + offer object. The selection event is sent to a client when a new + selection is set. The ext_data_control_offer is valid until a new + ext_data_control_offer or NULL is received. The client must destroy the + previous selection ext_data_control_offer, if any, upon receiving this + event. Regardless, the previous selection will be ignored once a new + selection ext_data_control_offer is received. + + The first selection event is sent upon binding the + ext_data_control_device object. + </description> + <arg name="id" type="object" interface="ext_data_control_offer_v1" + allow-null="true"/> + </event> + + <event name="finished"> + <description summary="this data control is no longer valid"> + This data control object is no longer valid and should be destroyed by + the client. + </description> + </event> + + <event name="primary_selection"> + <description summary="advertise new primary selection"> + The primary_selection event is sent out to notify the client of a new + ext_data_control_offer for the primary selection for this device. The + ext_data_control_device.data_offer and the ext_data_control_offer.offer + events are sent out immediately before this event to introduce the data + offer object. The primary_selection event is sent to a client when a + new primary selection is set. The ext_data_control_offer is valid until + a new ext_data_control_offer or NULL is received. The client must + destroy the previous primary selection ext_data_control_offer, if any, + upon receiving this event. Regardless, the previous primary selection + will be ignored once a new primary selection ext_data_control_offer is + received. + + If the compositor supports primary selection, the first + primary_selection event is sent upon binding the + ext_data_control_device object. + </description> + <arg name="id" type="object" interface="ext_data_control_offer_v1" + allow-null="true"/> + </event> + + <request name="set_primary_selection"> + <description summary="copy data to the primary selection"> + This request asks the compositor to set the primary selection to the + data from the source on behalf of the client. + + The given source may not be used in any further set_selection or + set_primary_selection requests. Attempting to use a previously used + source triggers the used_source protocol error. + + To unset the primary selection, set the source to NULL. + + The compositor will ignore this request if it does not support primary + selection. + </description> + <arg name="source" type="object" interface="ext_data_control_source_v1" + allow-null="true"/> + </request> + + <enum name="error"> + <entry name="used_source" value="1" + summary="source given to set_selection or set_primary_selection was already used before"/> + </enum> + </interface> + + <interface name="ext_data_control_source_v1" version="1"> + <description summary="offer to transfer data"> + The ext_data_control_source object is the source side of a + ext_data_control_offer. It is created by the source client in a data + transfer and provides a way to describe the offered data and a way to + respond to requests to transfer the data. + </description> + + <enum name="error"> + <entry name="invalid_offer" value="1" + summary="offer sent after ext_data_control_device.set_selection"/> + </enum> + + <request name="offer"> + <description summary="add an offered MIME type"> + This request adds a MIME type to the set of MIME types advertised to + targets. Can be called several times to offer multiple types. + + Calling this after ext_data_control_device.set_selection is a protocol + error. + </description> + <arg name="mime_type" type="string" + summary="MIME type offered by the data source"/> + </request> + + <request name="destroy" type="destructor"> + <description summary="destroy this source"> + Destroys the data source object. + </description> + </request> + + <event name="send"> + <description summary="send the data"> + Request for data from the client. Send the data as the specified MIME + type over the passed file descriptor, then close it. + </description> + <arg name="mime_type" type="string" summary="MIME type for the data"/> + <arg name="fd" type="fd" summary="file descriptor for the data"/> + </event> + + <event name="cancelled"> + <description summary="selection was cancelled"> + This data source is no longer valid. The data source has been replaced + by another data source. + + The client should clean up and destroy this data source. + </description> + </event> + </interface> + + <interface name="ext_data_control_offer_v1" version="1"> + <description summary="offer to transfer data"> + A ext_data_control_offer represents a piece of data offered for transfer + by another client (the source client). The offer describes the different + MIME types that the data can be converted to and provides the mechanism + for transferring the data directly from the source client. + </description> + + <request name="receive"> + <description summary="request that the data is transferred"> + To transfer the offered data, the client issues this request and + indicates the MIME type it wants to receive. The transfer happens + through the passed file descriptor (typically created with the pipe + system call). The source client writes the data in the MIME type + representation requested and then closes the file descriptor. + + The receiving client reads from the read end of the pipe until EOF and + then closes its end, at which point the transfer is complete. + + This request may happen multiple times for different MIME types. + </description> + <arg name="mime_type" type="string" + summary="MIME type desired by receiver"/> + <arg name="fd" type="fd" summary="file descriptor for data transfer"/> + </request> + + <request name="destroy" type="destructor"> + <description summary="destroy this offer"> + Destroys the data offer object. + </description> + </request> + + <event name="offer"> + <description summary="advertise offered MIME type"> + Sent immediately after creating the ext_data_control_offer object. + One event per offered MIME type. + </description> + <arg name="mime_type" type="string" summary="offered MIME type"/> + </event> + </interface> +</protocol> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayclip-0.4.2+git.1709775940.a62ac18/protocol/wlr-data-control-unstable-v1.xml new/wayclip-0.5+git.1754102356.a0826e7/protocol/wlr-data-control-unstable-v1.xml --- old/wayclip-0.4.2+git.1709775940.a62ac18/protocol/wlr-data-control-unstable-v1.xml 2024-03-07 02:45:40.000000000 +0100 +++ new/wayclip-0.5+git.1754102356.a0826e7/protocol/wlr-data-control-unstable-v1.xml 1970-01-01 01:00:00.000000000 +0100 @@ -1,278 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<protocol name="wlr_data_control_unstable_v1"> - <copyright> - Copyright © 2018 Simon Ser - Copyright © 2019 Ivan Molodetskikh - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that copyright notice and this permission - notice appear in supporting documentation, and that the name of - the copyright holders not be used in advertising or publicity - pertaining to distribution of the software without specific, - written prior permission. The copyright holders make no - representations about the suitability of this software for any - purpose. It is provided "as is" without express or implied - warranty. - - THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS - SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND - FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY - SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN - AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, - ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF - THIS SOFTWARE. - </copyright> - - <description summary="control data devices"> - This protocol allows a privileged client to control data devices. In - particular, the client will be able to manage the current selection and take - the role of a clipboard manager. - - Warning! The protocol described in this file is experimental and - backward incompatible changes may be made. Backward compatible changes - may be added together with the corresponding interface version bump. - Backward incompatible changes are done by bumping the version number in - the protocol and interface names and resetting the interface version. - Once the protocol is to be declared stable, the 'z' prefix and the - version number in the protocol and interface names are removed and the - interface version number is reset. - </description> - - <interface name="zwlr_data_control_manager_v1" version="2"> - <description summary="manager to control data devices"> - This interface is a manager that allows creating per-seat data device - controls. - </description> - - <request name="create_data_source"> - <description summary="create a new data source"> - Create a new data source. - </description> - <arg name="id" type="new_id" interface="zwlr_data_control_source_v1" - summary="data source to create"/> - </request> - - <request name="get_data_device"> - <description summary="get a data device for a seat"> - Create a data device that can be used to manage a seat's selection. - </description> - <arg name="id" type="new_id" interface="zwlr_data_control_device_v1"/> - <arg name="seat" type="object" interface="wl_seat"/> - </request> - - <request name="destroy" type="destructor"> - <description summary="destroy the manager"> - All objects created by the manager will still remain valid, until their - appropriate destroy request has been called. - </description> - </request> - </interface> - - <interface name="zwlr_data_control_device_v1" version="2"> - <description summary="manage a data device for a seat"> - This interface allows a client to manage a seat's selection. - - When the seat is destroyed, this object becomes inert. - </description> - - <request name="set_selection"> - <description summary="copy data to the selection"> - This request asks the compositor to set the selection to the data from - the source on behalf of the client. - - The given source may not be used in any further set_selection or - set_primary_selection requests. Attempting to use a previously used - source is a protocol error. - - To unset the selection, set the source to NULL. - </description> - <arg name="source" type="object" interface="zwlr_data_control_source_v1" - allow-null="true"/> - </request> - - <request name="destroy" type="destructor"> - <description summary="destroy this data device"> - Destroys the data device object. - </description> - </request> - - <event name="data_offer"> - <description summary="introduce a new wlr_data_control_offer"> - The data_offer event introduces a new wlr_data_control_offer object, - which will subsequently be used in either the - wlr_data_control_device.selection event (for the regular clipboard - selections) or the wlr_data_control_device.primary_selection event (for - the primary clipboard selections). Immediately following the - wlr_data_control_device.data_offer event, the new data_offer object - will send out wlr_data_control_offer.offer events to describe the MIME - types it offers. - </description> - <arg name="id" type="new_id" interface="zwlr_data_control_offer_v1"/> - </event> - - <event name="selection"> - <description summary="advertise new selection"> - The selection event is sent out to notify the client of a new - wlr_data_control_offer for the selection for this device. The - wlr_data_control_device.data_offer and the wlr_data_control_offer.offer - events are sent out immediately before this event to introduce the data - offer object. The selection event is sent to a client when a new - selection is set. The wlr_data_control_offer is valid until a new - wlr_data_control_offer or NULL is received. The client must destroy the - previous selection wlr_data_control_offer, if any, upon receiving this - event. - - The first selection event is sent upon binding the - wlr_data_control_device object. - </description> - <arg name="id" type="object" interface="zwlr_data_control_offer_v1" - allow-null="true"/> - </event> - - <event name="finished"> - <description summary="this data control is no longer valid"> - This data control object is no longer valid and should be destroyed by - the client. - </description> - </event> - - <!-- Version 2 additions --> - - <event name="primary_selection" since="2"> - <description summary="advertise new primary selection"> - The primary_selection event is sent out to notify the client of a new - wlr_data_control_offer for the primary selection for this device. The - wlr_data_control_device.data_offer and the wlr_data_control_offer.offer - events are sent out immediately before this event to introduce the data - offer object. The primary_selection event is sent to a client when a - new primary selection is set. The wlr_data_control_offer is valid until - a new wlr_data_control_offer or NULL is received. The client must - destroy the previous primary selection wlr_data_control_offer, if any, - upon receiving this event. - - If the compositor supports primary selection, the first - primary_selection event is sent upon binding the - wlr_data_control_device object. - </description> - <arg name="id" type="object" interface="zwlr_data_control_offer_v1" - allow-null="true"/> - </event> - - <request name="set_primary_selection" since="2"> - <description summary="copy data to the primary selection"> - This request asks the compositor to set the primary selection to the - data from the source on behalf of the client. - - The given source may not be used in any further set_selection or - set_primary_selection requests. Attempting to use a previously used - source is a protocol error. - - To unset the primary selection, set the source to NULL. - - The compositor will ignore this request if it does not support primary - selection. - </description> - <arg name="source" type="object" interface="zwlr_data_control_source_v1" - allow-null="true"/> - </request> - - <enum name="error" since="2"> - <entry name="used_source" value="1" - summary="source given to set_selection or set_primary_selection was already used before"/> - </enum> - </interface> - - <interface name="zwlr_data_control_source_v1" version="1"> - <description summary="offer to transfer data"> - The wlr_data_control_source object is the source side of a - wlr_data_control_offer. It is created by the source client in a data - transfer and provides a way to describe the offered data and a way to - respond to requests to transfer the data. - </description> - - <enum name="error"> - <entry name="invalid_offer" value="1" - summary="offer sent after wlr_data_control_device.set_selection"/> - </enum> - - <request name="offer"> - <description summary="add an offered MIME type"> - This request adds a MIME type to the set of MIME types advertised to - targets. Can be called several times to offer multiple types. - - Calling this after wlr_data_control_device.set_selection is a protocol - error. - </description> - <arg name="mime_type" type="string" - summary="MIME type offered by the data source"/> - </request> - - <request name="destroy" type="destructor"> - <description summary="destroy this source"> - Destroys the data source object. - </description> - </request> - - <event name="send"> - <description summary="send the data"> - Request for data from the client. Send the data as the specified MIME - type over the passed file descriptor, then close it. - </description> - <arg name="mime_type" type="string" summary="MIME type for the data"/> - <arg name="fd" type="fd" summary="file descriptor for the data"/> - </event> - - <event name="cancelled"> - <description summary="selection was cancelled"> - This data source is no longer valid. The data source has been replaced - by another data source. - - The client should clean up and destroy this data source. - </description> - </event> - </interface> - - <interface name="zwlr_data_control_offer_v1" version="1"> - <description summary="offer to transfer data"> - A wlr_data_control_offer represents a piece of data offered for transfer - by another client (the source client). The offer describes the different - MIME types that the data can be converted to and provides the mechanism - for transferring the data directly from the source client. - </description> - - <request name="receive"> - <description summary="request that the data is transferred"> - To transfer the offered data, the client issues this request and - indicates the MIME type it wants to receive. The transfer happens - through the passed file descriptor (typically created with the pipe - system call). The source client writes the data in the MIME type - representation requested and then closes the file descriptor. - - The receiving client reads from the read end of the pipe until EOF and - then closes its end, at which point the transfer is complete. - - This request may happen multiple times for different MIME types. - </description> - <arg name="mime_type" type="string" - summary="MIME type desired by receiver"/> - <arg name="fd" type="fd" summary="file descriptor for data transfer"/> - </request> - - <request name="destroy" type="destructor"> - <description summary="destroy this offer"> - Destroys the data offer object. - </description> - </request> - - <event name="offer"> - <description summary="advertise offered MIME type"> - Sent immediately after creating the wlr_data_control_offer object. - One event per offered MIME type. - </description> - <arg name="mime_type" type="string" summary="offered MIME type"/> - </event> - </interface> -</protocol> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayclip-0.4.2+git.1709775940.a62ac18/waycopy.1 new/wayclip-0.5+git.1754102356.a0826e7/waycopy.1 --- old/wayclip-0.4.2+git.1709775940.a62ac18/waycopy.1 2024-03-07 02:45:40.000000000 +0100 +++ new/wayclip-0.5+git.1754102356.a0826e7/waycopy.1 2025-08-02 04:39:16.000000000 +0200 @@ -12,7 +12,7 @@ .Op Fl t Ar mimetype .Sh DESCRIPTION .Nm -copies data from standard in to the clipboard using the wlr-data-control +copies data from standard in to the clipboard using the ext-data-control Wayland extension protocol. .Bl -tag -width Ds .It Fl f diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayclip-0.4.2+git.1709775940.a62ac18/waycopy.c new/wayclip-0.5+git.1754102356.a0826e7/waycopy.c --- old/wayclip-0.4.2+git.1709775940.a62ac18/waycopy.c 2024-03-07 02:45:40.000000000 +0100 +++ new/wayclip-0.5+git.1754102356.a0826e7/waycopy.c 2025-08-02 04:39:16.000000000 +0200 @@ -8,7 +8,7 @@ #include <wayland-client.h> #include <unistd.h> -#include "protocol/wlr-data-control-unstable-v1-client-protocol.h" +#include "protocol/ext-data-control-v1-client-protocol.h" #include "common.h" const char *usagestr = "usage: %s [-f] [-p] [-s seat] [-t mimetype]\n"; @@ -19,7 +19,7 @@ bool running = true; void -data_source_send(void *data, struct zwlr_data_control_source_v1 *source, const char *mime_type, int32_t fd) +data_source_send(void *data, struct ext_data_control_source_v1 *source, const char *mime_type, int32_t fd) { lseek(temp, SEEK_SET, 0); @@ -28,12 +28,12 @@ } void -data_source_cancelled(void *data, struct zwlr_data_control_source_v1 *source) +data_source_cancelled(void *data, struct ext_data_control_source_v1 *source) { running = 0; } -static const struct zwlr_data_control_source_v1_listener data_source_listener = { +static const struct ext_data_control_source_v1_listener data_source_listener = { .send = data_source_send, .cancelled = data_source_cancelled, }; @@ -87,21 +87,21 @@ if (data_control_manager == NULL) die("failed to bind to data_control_manager interface"); - struct zwlr_data_control_device_v1 *device = zwlr_data_control_manager_v1_get_data_device(data_control_manager, seat); + struct ext_data_control_device_v1 *device = ext_data_control_manager_v1_get_data_device(data_control_manager, seat); if (device == NULL) die("data device is null"); - struct zwlr_data_control_source_v1 *source = zwlr_data_control_manager_v1_create_data_source(data_control_manager); + struct ext_data_control_source_v1 *source = ext_data_control_manager_v1_create_data_source(data_control_manager); if (source == NULL) die("source is null"); - zwlr_data_control_source_v1_offer(source, options.type); - zwlr_data_control_source_v1_add_listener(source, &data_source_listener, NULL); + ext_data_control_source_v1_offer(source, options.type); + ext_data_control_source_v1_add_listener(source, &data_source_listener, NULL); if (options.primary) - zwlr_data_control_device_v1_set_primary_selection(device, source); + ext_data_control_device_v1_set_primary_selection(device, source); else - zwlr_data_control_device_v1_set_selection(device, source); + ext_data_control_device_v1_set_selection(device, source); if (!options.foreground) { pid_t pid = fork(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayclip-0.4.2+git.1709775940.a62ac18/waypaste.1 new/wayclip-0.5+git.1754102356.a0826e7/waypaste.1 --- old/wayclip-0.4.2+git.1709775940.a62ac18/waypaste.1 2024-03-07 02:45:40.000000000 +0100 +++ new/wayclip-0.5+git.1754102356.a0826e7/waypaste.1 2025-08-02 04:39:16.000000000 +0200 @@ -11,7 +11,7 @@ .Op Fl t Ar mimetype .Sh DESCRIPTION .Nm -pastes data to standard out from the clipboard using the wlr-data-control +pastes data to standard out from the clipboard using the ext-data-control Wayland extension protocol. .Bl -tag -width Ds .It Fl p diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wayclip-0.4.2+git.1709775940.a62ac18/waypaste.c new/wayclip-0.5+git.1754102356.a0826e7/waypaste.c --- old/wayclip-0.4.2+git.1709775940.a62ac18/waypaste.c 2024-03-07 02:45:40.000000000 +0100 +++ new/wayclip-0.5+git.1754102356.a0826e7/waypaste.c 2025-08-02 04:39:16.000000000 +0200 @@ -1,24 +1,23 @@ #include <stdbool.h> -#include <stdio.h> #include <stdlib.h> #include <string.h> #include <wayland-client.h> #include <unistd.h> -#include "protocol/wlr-data-control-unstable-v1-client-protocol.h" +#include "protocol/ext-data-control-v1-client-protocol.h" #include "common.h" const char *usagestr = "usage: %s [-p] [-s seat] [-t mimetype]\n"; struct wl_display *display; -struct zwlr_data_control_offer_v1 *acceptedoffer = NULL; +struct ext_data_control_offer_v1 *acceptedoffer = NULL; int pipes[2]; static void -receive(int cond, struct zwlr_data_control_offer_v1 *offer) +receive(int cond, struct ext_data_control_offer_v1 *offer) { if (cond && acceptedoffer == offer) { - zwlr_data_control_offer_v1_receive(offer, options.type, pipes[1]); + ext_data_control_offer_v1_receive(offer, options.type, pipes[1]); wl_display_roundtrip(display); close(pipes[1]); @@ -29,13 +28,13 @@ } if (acceptedoffer) - zwlr_data_control_offer_v1_destroy(acceptedoffer); + ext_data_control_offer_v1_destroy(acceptedoffer); acceptedoffer = NULL; } void -offer_offer(void *data, struct zwlr_data_control_offer_v1 *offer, const char *mime_type) +offer_offer(void *data, struct ext_data_control_offer_v1 *offer, const char *mime_type) { if (acceptedoffer) return; @@ -44,31 +43,31 @@ acceptedoffer = offer; } -static const struct zwlr_data_control_offer_v1_listener offer_listener = { +static const struct ext_data_control_offer_v1_listener offer_listener = { .offer = offer_offer, }; void -control_data_offer(void *data, struct zwlr_data_control_device_v1 *device, struct zwlr_data_control_offer_v1 *offer) +control_data_offer(void *data, struct ext_data_control_device_v1 *device, struct ext_data_control_offer_v1 *offer) { - zwlr_data_control_offer_v1_add_listener(offer, &offer_listener, NULL); + ext_data_control_offer_v1_add_listener(offer, &offer_listener, NULL); } void -control_data_selection(void *data, struct zwlr_data_control_device_v1 *device, struct zwlr_data_control_offer_v1 *offer) +control_data_selection(void *data, struct ext_data_control_device_v1 *device, struct ext_data_control_offer_v1 *offer) { if (offer) receive(!options.primary, offer); } void -control_data_primary_selection(void *data, struct zwlr_data_control_device_v1 *device, struct zwlr_data_control_offer_v1 *offer) +control_data_primary_selection(void *data, struct ext_data_control_device_v1 *device, struct ext_data_control_offer_v1 *offer) { if (offer) receive(options.primary, offer); } -static const struct zwlr_data_control_device_v1_listener device_listener = { +static const struct ext_data_control_device_v1_listener device_listener = { .data_offer = control_data_offer, .selection = control_data_selection, .primary_selection = control_data_primary_selection, @@ -103,11 +102,11 @@ if (pipe(pipes) == -1) die("failed to create pipe"); - struct zwlr_data_control_device_v1 *device = zwlr_data_control_manager_v1_get_data_device(data_control_manager, seat); + struct ext_data_control_device_v1 *device = ext_data_control_manager_v1_get_data_device(data_control_manager, seat); if (device == NULL) die("data device is null"); - zwlr_data_control_device_v1_add_listener(device, &device_listener, NULL); + ext_data_control_device_v1_add_listener(device, &device_listener, NULL); wl_display_roundtrip(display); }
