diff --git a/.gitignore b/.gitignore index 1bbd79d..a777108 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ xdotool-2.20100623.2949.tar.gz /xdotool-2.20101012.3049.tar.gz /xdotool-2.20110530.1.tar.gz /xdotool-3.20150503.1.tar.gz +/xdotool-3.20160805.1.tar.gz +/xdotool-3.20211022.1.tar.gz diff --git a/0001-Use-XTEST-instead-of-XWarpPointer-with-a-single-scre.patch b/0001-Use-XTEST-instead-of-XWarpPointer-with-a-single-scre.patch new file mode 100644 index 0000000..f20a1b6 --- /dev/null +++ b/0001-Use-XTEST-instead-of-XWarpPointer-with-a-single-scre.patch @@ -0,0 +1,50 @@ +From 89731d7eeb1515ebb217a59b8ca1c271e29ea0c5 Mon Sep 17 00:00:00 2001 +From: Olivier Fourdan +Date: Mon, 7 Aug 2023 10:20:08 +0200 +Subject: [PATCH] Use XTEST instead of XWarpPointer with a single screen + +xdotool uses the XTEST extension for pretty much all input events +emulation except for mousemove. + +For mousemove, it uses XWarpPointer() instead, to work around an old bug +from 2009 that would ignore the screen number in Zaphod mode. + +Unfortunately, that prevents mousemove to work in Xwayland with libEI +because Xwayland wires XTEST to libEI, whereas xdotool uses the core +protocol for that command alone. + +Zaphod mode is nowadays somehow deprecated, GNOME and GTK have dropped +support for it and Xwayland supports only one X11 screen (not to be +confused with multi-monitors), so this workaround in xdotool actually +causes more harm that good in most current cases nowadays. + +So, to preserve compatibility with Zaphod mode while being compatible +with modern windowing systems, this fix limits the workaround that uses +XWarpPointer() for when there is more than one screen, and uses the +XTEST extension otherwise. +--- + xdo.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/xdo.c b/xdo.c +index ffb0333..8cda05c 100644 +--- a/xdo.c ++++ b/xdo.c +@@ -804,8 +804,12 @@ int xdo_move_mouse(const xdo_t *xdo, int x, int y, int screen) { + * seem to recommend XWarpPointer instead, ie; + * https://bugzilla.redhat.com/show_bug.cgi?id=518803 + */ +- Window screen_root = RootWindow(xdo->xdpy, screen); +- ret = XWarpPointer(xdo->xdpy, None, screen_root, 0, 0, 0, 0, x, y); ++ if (screen > 0) { ++ Window screen_root = RootWindow(xdo->xdpy, screen); ++ ret = XWarpPointer(xdo->xdpy, None, screen_root, 0, 0, 0, 0, x, y); ++ } else { ++ ret = XTestFakeMotionEvent(xdo->xdpy, 0, x, y, CurrentTime); ++ } + XFlush(xdo->xdpy); + return _is_success("XWarpPointer", ret == 0, xdo); + } +-- +2.41.0 + diff --git a/sources b/sources index 68e9c17..24a0104 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -e4447c61034d1d2140db13fbf0daa060 xdotool-3.20150503.1.tar.gz +SHA512 (xdotool-3.20211022.1.tar.gz) = f11d7b079f19d1650adfb549ecc96e840805935bf4925beefc3238154ad0afbff36b134c78bfc73a9dc07fc869ab75676575d6de50cfd54484d2c35d6913ea27 diff --git a/xdotool.spec b/xdotool.spec index ef81651..e9f2f0b 100644 --- a/xdotool.spec +++ b/xdotool.spec @@ -1,14 +1,18 @@ Name: xdotool -Version: 3.20150503.1 +Version: 3.20211022.1 Epoch: 1 Release: 11%{?dist} Summary: Fake keyboard/mouse input -License: BSD -URL: http://www.semicomplete.com/projects/xdotool/ -Source0: https://github.com/jordansissel/xdotool/archive/%{name}-%{version}.tar.gz +# Automatically converted from old format: BSD - review is highly recommended. +License: LicenseRef-Callaway-BSD +URL: https://github.com/jordansissel/xdotool +Source0: https://github.com/jordansissel/xdotool/releases/download/v%{version}/xdotool-%{version}.tar.gz -BuildRequires: gcc -BuildRequires: libXtst-devel, libX11-devel, libXinerama-devel, libXi-devel, /usr/bin/pod2man, libxkbcommon-devel +Patch0: 0001-Use-XTEST-instead-of-XWarpPointer-with-a-single-scre.patch + +BuildRequires: make +BuildRequires: gcc +BuildRequires: libXtst-devel, libX11-devel, libXinerama-devel, libXi-devel, perl-podlators, libxkbcommon-devel %description This tool lets you programmatically (or manually) simulate keyboard input @@ -16,7 +20,7 @@ and mouse activity, move and re-size windows, etc. %package -n libxdo Summary: Keyboard input simulation library - + %description -n libxdo This library contains functions to simulate keyboard and mouse input @@ -30,15 +34,14 @@ developing applications that use libxdo %prep %setup -q +%patch 0 -p1 %build -export WARNFLAGS="$RPM_OPT_FLAGS" -make %{?_smp_mflags} - +%set_build_flags +%make_build WITHOUT_RPATH_FIX=1 %install -rm -rf $RPM_BUILD_ROOT -make PREFIX=$RPM_BUILD_ROOT/%{_prefix} INSTALLMAN=$RPM_BUILD_ROOT%{_mandir} INSTALLLIB=$RPM_BUILD_ROOT%{_libdir} install +%make_install PREFIX=%{_prefix} INSTALLMAN=%{_mandir} INSTALLLIB=%{_libdir} #fix permissions chmod 0644 examples/ffsp.sh @@ -46,12 +49,13 @@ chmod 0644 examples/ffsp.sh %ldconfig_scriptlets -n libxdo %files -n libxdo -%doc CHANGELIST COPYRIGHT README -%{_libdir}/*.so.* +%doc CHANGELIST COPYRIGHT README.md +%{_libdir}/*.so.3* %files -n libxdo-devel %{_includedir}/* %{_libdir}/*.so +%{_libdir}/pkgconfig/libxdo.pc %files %{_bindir}/%{name} @@ -59,6 +63,60 @@ chmod 0644 examples/ffsp.sh %doc examples %changelog +* Fri Jul 17 2026 Fedora Release Engineering - 1:3.20211022.1-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild + +* Sat Jan 17 2026 Fedora Release Engineering - 1:3.20211022.1-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Fri Jul 25 2025 Fedora Release Engineering - 1:3.20211022.1-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Sun Jan 19 2025 Fedora Release Engineering - 1:3.20211022.1-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Wed Sep 04 2024 Miroslav Suchý - 1:3.20211022.1-7 +- convert license to SPDX + +* Sat Jul 20 2024 Fedora Release Engineering - 1:3.20211022.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Sat Jan 27 2024 Fedora Release Engineering - 1:3.20211022.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Aug 16 2023 Olivier Fourdan - 1:3.20211022.1-4 +- Use XTEST instead of XWarpPointer with a single screen + https://github.com/jordansissel/xdotool/pull/435 + +* Sat Jul 22 2023 Fedora Release Engineering - 1:3.20211022.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Sat Jan 21 2023 Fedora Release Engineering - 1:3.20211022.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Sat Nov 05 2022 Orion Poplawski - 1:3.20111022.1-1 +- Update to 3.20111022.1 +- Use set_build_flags and make macros + +* Sat Jul 23 2022 Fedora Release Engineering - 1:3.20160805.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sat Jan 22 2022 Fedora Release Engineering - 1:3.20160805.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Sat Jul 31 2021 Sven Lankes - 1:3.20160805.1-4 +- remove "rpath" fix to fix FTBFS +- fixes RHBZ #1988049 + +* Fri Jul 23 2021 Fedora Release Engineering - 1:3.20160805.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Wed Jan 27 2021 Fedora Release Engineering - 1:3.20160805.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Fri Sep 25 2020 Till Maas - 3.20160805.1-1 +- Update to latest release + * Wed Jul 29 2020 Fedora Release Engineering - 1:3.20150503.1-11 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild