Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package wl-clipboard for openSUSE:Factory checked in at 2026-03-28 20:13:59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/wl-clipboard (Old) and /work/SRC/openSUSE:Factory/.wl-clipboard.new.8177 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wl-clipboard" Sat Mar 28 20:13:59 2026 rev:6 rq:1343210 version:2.3.0 Changes: -------- --- /work/SRC/openSUSE:Factory/wl-clipboard/wl-clipboard.changes 2025-10-27 14:43:06.659178334 +0100 +++ /work/SRC/openSUSE:Factory/.wl-clipboard.new.8177/wl-clipboard.changes 2026-03-28 20:15:41.587222531 +0100 @@ -1,0 +2,9 @@ +Fri Mar 27 13:45:46 UTC 2026 - llyyr <[email protected]> + +- Update to version 2.3.0: + * fix: correct spelling issues across docs and helpers + * files: read shared-mime-info globs2 file for mime extensions + * Fix buffer overflow in infer_mime_type_from_contents + * Set app id/class for the popup surface + +------------------------------------------------------------------- Old: ---- wl-clipboard-2.2.1+git.20250424T164907.aaa927e.tar.gz New: ---- wl-clipboard-2.3.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ wl-clipboard.spec ++++++ --- /var/tmp/diff_new_pack.a3k4D9/_old 2026-03-28 20:15:42.047241516 +0100 +++ /var/tmp/diff_new_pack.a3k4D9/_new 2026-03-28 20:15:42.051241681 +0100 @@ -1,7 +1,7 @@ # # spec file for package wl-clipboard # -# Copyright (c) 2025 SUSE LLC and contributors +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: wl-clipboard -Version: 2.2.1+git.20250424T164907.aaa927e +Version: 2.3.0 Release: 0 License: GPL-3.0-only Summary: Wayland Clipboard Utilities @@ -31,6 +31,7 @@ BuildRequires: pkgconfig(wayland-protocols) >= 1.24 BuildRequires: pkgconfig(wayland-server) >= 1.22 Recommends: mailcap +Recommends: shared-mime-info Recommends: xdg-utils BuildRoot: %{_tmppath}/%{name}-%{version}-build ++++++ _service ++++++ --- /var/tmp/diff_new_pack.a3k4D9/_old 2026-03-28 20:15:42.083243002 +0100 +++ /var/tmp/diff_new_pack.a3k4D9/_new 2026-03-28 20:15:42.083243002 +0100 @@ -4,12 +4,15 @@ <param name="url">https://github.com/bugaevc/wl-clipboard.git</param> <param name="scm">git</param> <param name="filename">wl-clipboard</param> - <!-- SET REVISION TO TAG, REMOVE THIS LINE TO UPDATE TO THE LAST COMMIT --> - <param name="revision">master</param> - <param name="versionprefix">2.2.1+git</param> - <param name="versionformat">%ci.%h</param> + <!-- SET REVISION TO TAG, REMOVE THIS LINE TO UPDATE TO THE LAST COMMIT --> + <!-- <param name="revision">master</param> --> + + <!-- <param name="versionprefix">2.2.1+git</param> --> + <!-- <param name="versionformat">%ci.%h</param> --> + + <param name="versionformat">@PARENT_TAG@</param> + <param name="versionrewrite-pattern">v(.*)</param> <param name="changesgenerate">enable</param> - <param name="changesauthor">[email protected]</param> </service> <service name="recompress" mode="disabled"> <param name="compression">gz</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.a3k4D9/_old 2026-03-28 20:15:42.107243993 +0100 +++ /var/tmp/diff_new_pack.a3k4D9/_new 2026-03-28 20:15:42.111244158 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/bugaevc/wl-clipboard.git</param> - <param name="changesrevision">aaa927ee7f7d91bcc25a3b68f60d01005d3b0f7f</param></service></servicedata> + <param name="changesrevision">67a7b937895bceec1ae5ccebb10216f63f70ca1b</param></service></servicedata> (No newline at EOF) ++++++ wl-clipboard-2.2.1+git.20250424T164907.aaa927e.tar.gz -> wl-clipboard-2.3.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/BUILDING.md new/wl-clipboard-2.3.0/BUILDING.md --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/BUILDING.md 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/BUILDING.md 2026-03-22 19:46:43.000000000 +0100 @@ -40,8 +40,24 @@ `xdg-utils`) * `/etc/mime.types` file for type inference in `wl-paste` (try package named `mime-support` or `mailcap`) +* `/usr/share/mime/globs2` file for for type inference in `wl-paste` (try + packaged named `shared-mime-info`) If you're packaging wl-clipboard for a distribution, please consider making -packages providing `xdg-mime` and `/etc/mime.types` *weak* dependencies of the -package providing wl-clipboard, meaning ones that get installed along with -wl-clipboard by default, but are not strictly required by it. +packages providing `xdg-mime`, `/etc/mime.types`, and `/usr/share/mime/globs2` +*weak* dependencies of the package providing wl-clipboard, meaning ones that +get installed along with wl-clipboard by default, but are not strictly required +by it. + +A package definition for wl-clipboard might therefore contain something along +the following lines: + +``` +Package: wl-clipboard +Build-Depends: + gcc, meson, ninja, + wayland-devel, wayland-scanner, + wayland-protocols >= 1.12 +Recommends: + xdg-utils, mime-support, shared-mime-info +``` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/completions/fish/wl-paste.fish new/wl-clipboard-2.3.0/completions/fish/wl-paste.fish --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/completions/fish/wl-paste.fish 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/completions/fish/wl-paste.fish 2026-03-22 19:46:43.000000000 +0100 @@ -22,7 +22,7 @@ # Note fish does not handle passing unset variables # to commands well, thus setting clip to "--primary" and passing - # that to wl-paste wont work, so if statements are used instead + # that to wl-paste won't work, so if statements are used instead if test -n "$seat"; and test -n "$clip" wl-paste 2>/dev/null --seat "$seat" -p -l else if test -n "$seat" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/completions/zsh/_wl-copy new/wl-clipboard-2.3.0/completions/zsh/_wl-copy --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/completions/zsh/_wl-copy 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/completions/zsh/_wl-copy 2026-03-22 19:46:43.000000000 +0100 @@ -22,7 +22,7 @@ fi if [[ -z $seats ]]; then - # seat0 is always a vaild seat and covers most cases, so its a good fallback. + # seat0 is always a valid seat and covers most cases, so it's a good fallback. compadd "$@" - seat0 else compadd "$@" -a seats diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/data/wl-clipboard.1 new/wl-clipboard-2.3.0/data/wl-clipboard.1 --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/data/wl-clipboard.1 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/data/wl-clipboard.1 2026-03-22 19:46:43.000000000 +0100 @@ -1,4 +1,4 @@ -.TH WL-CLIPBOARD 1 2025-03-24 wl-clipboard +.TH WL-CLIPBOARD 1 2026-03-22 wl-clipboard .SH NAME wl-clipboard \- Wayland copy and paste command line utilities .SH SYNOPSIS @@ -157,7 +157,7 @@ don't let wl-clipboard identify the cases where \fBclear\fR and \fBsensitive\fR values should be set. For this reason, currently, wl-clipboard never actually sets \fBCLIPBOARD_STATE\fR to \fBclear\fR, and only sets it to \fBsensitive\fR -when it enounters \fBx-kde-passwordManagerHint\fR among the MIME types. +when it encounters \fBx-kde-passwordManagerHint\fR among the MIME types. .IP The \fBCLIPBOARD_STATE\fR protocol was intentionally designed to not be specific to either wl-clipboard or Wayland; in fact, other clipboard tools are encouraged @@ -250,7 +250,7 @@ Please make sure to mention which Wayland compositor you are using, and attach \fBWAYLAND_DEBUG=1\fR debugging logs of wl-clipboard. .SH COPYRIGHT -Copyright \(co 2018-2025 Sergey Bugaev. +Copyright \(co 2018-2026 Sergey Bugaev. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. .br This is free software: you are free to change and redistribute it. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/meson.build new/wl-clipboard-2.3.0/meson.build --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/meson.build 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/meson.build 2026-03-22 19:46:43.000000000 +0100 @@ -1,5 +1,5 @@ project('wl-clipboard', 'c', - version: '2.2.1', + version: '2.3.0', license: 'GPL-3.0-or-later', meson_version: '>= 0.47.0', default_options: 'c_std=gnu99' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/includes/selection-protocols.h new/wl-clipboard-2.3.0/src/includes/selection-protocols.h --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/includes/selection-protocols.h 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/includes/selection-protocols.h 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/includes/shell-protocols.h new/wl-clipboard-2.3.0/src/includes/shell-protocols.h --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/includes/shell-protocols.h 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/includes/shell-protocols.h 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/copy-action.c new/wl-clipboard-2.3.0/src/types/copy-action.c --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/copy-action.c 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/types/copy-action.c 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/copy-action.h new/wl-clipboard-2.3.0/src/types/copy-action.h --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/copy-action.h 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/types/copy-action.h 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/device-manager.c new/wl-clipboard-2.3.0/src/types/device-manager.c --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/device-manager.c 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/types/device-manager.c 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/device-manager.h new/wl-clipboard-2.3.0/src/types/device-manager.h --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/device-manager.h 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/types/device-manager.h 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/device.c new/wl-clipboard-2.3.0/src/types/device.c --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/device.c 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/types/device.c 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/device.h new/wl-clipboard-2.3.0/src/types/device.h --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/device.h 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/types/device.h 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/keyboard.c new/wl-clipboard-2.3.0/src/types/keyboard.c --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/keyboard.c 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/types/keyboard.c 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/keyboard.h new/wl-clipboard-2.3.0/src/types/keyboard.h --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/keyboard.h 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/types/keyboard.h 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/offer.c new/wl-clipboard-2.3.0/src/types/offer.c --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/offer.c 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/types/offer.c 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/offer.h new/wl-clipboard-2.3.0/src/types/offer.h --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/offer.h 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/types/offer.h 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/popup-surface.c new/wl-clipboard-2.3.0/src/types/popup-surface.c --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/popup-surface.c 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/types/popup-surface.c 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -84,7 +84,7 @@ if (self->wl_surface == NULL) { /* It's possible that we were given focus - * (without ever commiting a buffer) during + * (without ever committing a buffer) during * the above roundtrip, in which case we have * already fired the callback and have likely * already destroyed the surface. No need to diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/popup-surface.h new/wl-clipboard-2.3.0/src/types/popup-surface.h --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/popup-surface.h 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/types/popup-surface.h 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/registry.c new/wl-clipboard-2.3.0/src/types/registry.c --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/registry.c 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/types/registry.c 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/registry.h new/wl-clipboard-2.3.0/src/types/registry.h --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/registry.h 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/types/registry.h 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/seat.c new/wl-clipboard-2.3.0/src/types/seat.c --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/seat.c 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/types/seat.c 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/seat.h new/wl-clipboard-2.3.0/src/types/seat.h --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/seat.h 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/types/seat.h 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/shell-surface.c new/wl-clipboard-2.3.0/src/types/shell-surface.c --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/shell-surface.c 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/types/shell-surface.c 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -67,6 +67,7 @@ wl_shell_surface_add_listener(proxy, &wl_shell_surface_listener, self); wl_shell_surface_set_toplevel(proxy); wl_shell_surface_set_title(proxy, "wl-clipboard"); + wl_shell_surface_set_class(proxy, "io.github.bugaevc.wl-clipboard"); self->do_destroy = destroy_wl_shell_surface; } @@ -119,6 +120,7 @@ self->proxy2 = (struct wl_proxy *) toplevel; xdg_toplevel_add_listener(toplevel, &xdg_toplevel_listener, self); xdg_toplevel_set_title(toplevel, "wl-clipboard"); + xdg_toplevel_set_app_id(toplevel, "io.github.bugaevc.wl-clipboard"); self->do_destroy = destroy_xdg_surface; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/shell-surface.h new/wl-clipboard-2.3.0/src/types/shell-surface.h --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/shell-surface.h 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/types/shell-surface.h 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/shell.c new/wl-clipboard-2.3.0/src/types/shell.c --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/shell.c 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/types/shell.c 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/shell.h new/wl-clipboard-2.3.0/src/types/shell.h --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/shell.h 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/types/shell.h 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/source.c new/wl-clipboard-2.3.0/src/types/source.c --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/source.c 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/types/source.c 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/source.h new/wl-clipboard-2.3.0/src/types/source.h --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/types/source.h 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/types/source.h 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/util/files.c new/wl-clipboard-2.3.0/src/util/files.c --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/util/files.c 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/util/files.c 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -28,6 +28,7 @@ #include <getopt.h> #include <string.h> #include <fcntl.h> +#include <fnmatch.h> #include <sys/stat.h> // open #include <sys/types.h> // open #include <stdlib.h> // exit @@ -186,11 +187,15 @@ /* Read the result */ char *res = malloc(256); - size_t len = read(pipefd[0], res, 256); + ssize_t len = read(pipefd[0], res, 256); + close(pipefd[0]); + if (len <= 0) { + free(res); + return NULL; + } /* Trim the newline */ len--; res[len] = 0; - close(pipefd[0]); if (str_has_prefix(res, "inode/")) { free(res); @@ -200,9 +205,8 @@ return res; } -char *infer_mime_type_from_name(const char *file_path) { - const char *actual_ext = get_file_extension(file_path); - if (actual_ext == NULL) { +static char *search_mime_dot_types_for_ext(const char *ext) { + if (ext == NULL) { return NULL; } @@ -215,7 +219,7 @@ } for (char line[200]; fgets(line, sizeof(line), f) != NULL;) { - /* Skip comments and black lines */ + /* Skip comments and blank lines */ if (line[0] == '#' || line[0] == '\n') { continue; } @@ -225,11 +229,12 @@ int consumed; if (sscanf(line, "%199s%n", mime_type, &consumed) != 1) { /* A malformed line, perhaps? */ + fprintf(stderr, "malformed mime.types line: %s\n", line); continue; } char *lineptr = line + consumed; - for (char ext[200]; sscanf(lineptr, "%199s%n", ext, &consumed) == 1;) { - if (strcmp(ext, actual_ext) == 0) { + for (char ext_pattern[200]; sscanf(lineptr, "%199s%n", ext_pattern, &consumed) == 1;) { + if (strcmp(ext_pattern, ext) == 0) { fclose(f); return strdup(mime_type); } @@ -240,11 +245,58 @@ return NULL; } +static char *search_shared_mime_info_globs_for_filename(const char *filename) { + FILE *f = fopen("/usr/share/mime/globs2", "r"); + if (f == NULL) { + f = fopen("/usr/local/share/mime/globs2", "r"); + } + if (f == NULL) { + return NULL; + } + + for (char line[200]; fgets(line, sizeof(line), f) != NULL;) { + /* Skip comments and blank lines */ + if (line[0] == '#' || line[0] == '\n') { + continue; + } + + /* Each line consists of colon-separated + * weight, mime type, and glob pattern. + * We ignore the weight. + */ + char mime_type[200]; + char filename_glob[200]; + if (sscanf(line, "%*d:%199[^:]:%199s\n", mime_type, filename_glob) != 2) { + /* A malformed line, perhaps? */ + fprintf(stderr, "malformed globs2 line: %s\n", line); + continue; + } + if (fnmatch(filename_glob, filename, 0) == 0) { + fclose(f); + return strdup(mime_type); + } + } + fclose(f); + return NULL; +} + +char *infer_mime_type_from_name(const char *file_path) { + const char *ext = get_file_extension(file_path); + char *file_path_dup = strdup(file_path); + const char *filename = basename(file_path_dup); + char *mime_type = search_shared_mime_info_globs_for_filename(filename); + if (!mime_type) { + mime_type = search_mime_dot_types_for_ext(ext); + } + free(file_path_dup); + return mime_type; +} + /* Returns the name of a new file */ char *dump_stdin_into_a_temp_file() { /* Pick a name for the file we'll be * creating inside that directory. We - * try to preserve the origial name for + * try to preserve the original name for * the mime type inference to work. */ char *original_path = path_for_fd(STDIN_FILENO); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/util/files.h new/wl-clipboard-2.3.0/src/util/files.h --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/util/files.h 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/util/files.h 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/util/misc.c new/wl-clipboard-2.3.0/src/util/misc.c --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/util/misc.c 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/util/misc.c 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -27,7 +27,7 @@ void print_version_info() { printf( "wl-clipboard " PROJECT_VERSION "\n" - "Copyright (C) 2018-2025 Sergey Bugaev\n" + "Copyright (C) 2018-2026 Sergey Bugaev\n" "License GPLv3+: GNU GPL version 3 or later" " <https://gnu.org/licenses/gpl.html>.\n" "This is free software: you are free to change and redistribute it.\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/util/misc.h new/wl-clipboard-2.3.0/src/util/misc.h --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/util/misc.h 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/util/misc.h 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/util/string.c new/wl-clipboard-2.3.0/src/util/string.c --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/util/string.c 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/util/string.c 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/util/string.h new/wl-clipboard-2.3.0/src/util/string.h --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/util/string.h 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/util/string.h 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/wl-copy.c new/wl-clipboard-2.3.0/src/wl-copy.c --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/wl-copy.c 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/wl-copy.c 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/wl-paste.c new/wl-clipboard-2.3.0/src/wl-paste.c --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/src/wl-paste.c 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/src/wl-paste.c 2026-03-22 19:46:43.000000000 +0100 @@ -1,6 +1,6 @@ /* wl-clipboard * - * Copyright © 2018-2025 Sergey Bugaev <[email protected]> + * Copyright © 2018-2026 Sergey Bugaev <[email protected]> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/subprojects/libffi.wrap new/wl-clipboard-2.3.0/subprojects/libffi.wrap --- old/wl-clipboard-2.2.1+git.20250424T164907.aaa927e/subprojects/libffi.wrap 2025-04-24 15:49:07.000000000 +0200 +++ new/wl-clipboard-2.3.0/subprojects/libffi.wrap 2026-03-22 19:46:43.000000000 +0100 @@ -1,12 +1,13 @@ [wrap-file] -directory = libffi-3.4.4 -source_url = https://github.com/libffi/libffi/releases/download/v3.4.4/libffi-3.4.4.tar.gz -source_filename = libffi-3.4.4.tar.gz -source_hash = d66c56ad259a82cf2a9dfc408b32bf5da52371500b84745f7fb8b645712df676 -patch_filename = libffi_3.4.4-2_patch.zip -patch_url = https://wrapdb.mesonbuild.com/v2/libffi_3.4.4-2/get_patch -patch_hash = 77da71839584dfc33d998b6461fff1ebc90a6f9c0a8c2f490335aafe370a115b -wrapdb_version = 3.4.4-2 +directory = libffi-3.5.2 +source_url = https://github.com/libffi/libffi/releases/download/v3.5.2/libffi-3.5.2.tar.gz +source_filename = libffi-3.5.2.tar.gz +source_hash = f3a3082a23b37c293a4fcd1053147b371f2ff91fa7ea1b2a52e335676bac82dc +source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/libffi_3.5.2-2/libffi-3.5.2.tar.gz +patch_filename = libffi_3.5.2-2_patch.zip +patch_url = https://wrapdb.mesonbuild.com/v2/libffi_3.5.2-2/get_patch +patch_hash = 74ed624f74cd860be3bdf6d473b70ab88707bdf2f940191fbcb577e2a49a9710 +wrapdb_version = 3.5.2-2 [provide] dependency_names = libffi
