From e8cf31bfd5e97e361c19d1d9aa18bde66f8b5d20 Mon Sep 17 00:00:00 2001 From: Bob Hepple Date: Thu, 21 Jan 2021 08:57:52 +1000 Subject: [PATCH 01/26] New version --- .gitignore | 6 + portable_endian.h | 118 +++++++++++++++++ sources | 7 +- ydotool-cpm.cmake.patch | 12 ++ ydotool-new-man-pages.patch | 234 +++++++++++++++++++++++++++++++++ ydotool-patch1-cmakelist.patch | 34 ----- ydotool.spec | 112 ++++++++++------ 7 files changed, 449 insertions(+), 74 deletions(-) create mode 100644 portable_endian.h create mode 100644 ydotool-cpm.cmake.patch create mode 100644 ydotool-new-man-pages.patch delete mode 100644 ydotool-patch1-cmakelist.patch diff --git a/.gitignore b/.gitignore index ba1299f..bcaabcb 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,7 @@ /ydotool-0.1.9.tar.gz +/cpm.cmake-0.27.5.tar.gz +/cxxopts-2d8e17c4f88efce80e274cb03eeb902e055a91d3.tar.gz +/iodash-0.1.0.tar.gz +/libevdevPlus-0.2.1.tar.gz +/libuInputPlus-0.2.1.tar.gz +/ydotool-0.2.0.tar.gz diff --git a/portable_endian.h b/portable_endian.h new file mode 100644 index 0000000..e89694a --- /dev/null +++ b/portable_endian.h @@ -0,0 +1,118 @@ +// "License": Public Domain +// I, Mathias Panzenböck, place this file hereby into the public domain. Use it at your own risk for whatever you like. +// In case there are jurisdictions that don't support putting things in the public domain you can also consider it to +// be "dual licensed" under the BSD, MIT and Apache licenses, if you want to. This code is trivial anyway. Consider it +// an example on how to get the endian conversion functions on different platforms. + +#ifndef PORTABLE_ENDIAN_H__ +#define PORTABLE_ENDIAN_H__ + +#if (defined(_WIN16) || defined(_WIN32) || defined(_WIN64)) && !defined(__WINDOWS__) + +# define __WINDOWS__ + +#endif + +#if defined(__linux__) || defined(__CYGWIN__) + +# include + +#elif defined(__APPLE__) + +# include + +# define htobe16(x) OSSwapHostToBigInt16(x) +# define htole16(x) OSSwapHostToLittleInt16(x) +# define be16toh(x) OSSwapBigToHostInt16(x) +# define le16toh(x) OSSwapLittleToHostInt16(x) + +# define htobe32(x) OSSwapHostToBigInt32(x) +# define htole32(x) OSSwapHostToLittleInt32(x) +# define be32toh(x) OSSwapBigToHostInt32(x) +# define le32toh(x) OSSwapLittleToHostInt32(x) + +# define htobe64(x) OSSwapHostToBigInt64(x) +# define htole64(x) OSSwapHostToLittleInt64(x) +# define be64toh(x) OSSwapBigToHostInt64(x) +# define le64toh(x) OSSwapLittleToHostInt64(x) + +# define __BYTE_ORDER BYTE_ORDER +# define __BIG_ENDIAN BIG_ENDIAN +# define __LITTLE_ENDIAN LITTLE_ENDIAN +# define __PDP_ENDIAN PDP_ENDIAN + +#elif defined(__OpenBSD__) + +# include + +#elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) + +# include + +# define be16toh(x) betoh16(x) +# define le16toh(x) letoh16(x) + +# define be32toh(x) betoh32(x) +# define le32toh(x) letoh32(x) + +# define be64toh(x) betoh64(x) +# define le64toh(x) letoh64(x) + +#elif defined(__WINDOWS__) + +# include +# include + +# if BYTE_ORDER == LITTLE_ENDIAN + +# define htobe16(x) htons(x) +# define htole16(x) (x) +# define be16toh(x) ntohs(x) +# define le16toh(x) (x) + +# define htobe32(x) htonl(x) +# define htole32(x) (x) +# define be32toh(x) ntohl(x) +# define le32toh(x) (x) + +# define htobe64(x) htonll(x) +# define htole64(x) (x) +# define be64toh(x) ntohll(x) +# define le64toh(x) (x) + +# elif BYTE_ORDER == BIG_ENDIAN + + /* that would be xbox 360 */ +# define htobe16(x) (x) +# define htole16(x) __builtin_bswap16(x) +# define be16toh(x) (x) +# define le16toh(x) __builtin_bswap16(x) + +# define htobe32(x) (x) +# define htole32(x) __builtin_bswap32(x) +# define be32toh(x) (x) +# define le32toh(x) __builtin_bswap32(x) + +# define htobe64(x) (x) +# define htole64(x) __builtin_bswap64(x) +# define be64toh(x) (x) +# define le64toh(x) __builtin_bswap64(x) + +# else + +# error byte order not supported + +# endif + +# define __BYTE_ORDER BYTE_ORDER +# define __BIG_ENDIAN BIG_ENDIAN +# define __LITTLE_ENDIAN LITTLE_ENDIAN +# define __PDP_ENDIAN PDP_ENDIAN + +#else + +# error platform not supported + +#endif + +#endif diff --git a/sources b/sources index 528dfc2..4a8e373 100644 --- a/sources +++ b/sources @@ -1 +1,6 @@ -SHA512 (ydotool-0.1.9.tar.gz) = 2e1a303e29b781a1183e5293291170f32a8b74b1464a0277af8a7c3521b4c72a5fd4012e789acc8591419db5da20d42e3becd6ba4b2a06fe7af8e86c064cc169 +SHA512 (cpm.cmake-0.27.5.tar.gz) = ef3a8dac77c189f0e612acc714e27464a075b86ba3454fe3410ab043a221d0a11ccd4654b9b1d3f4b33fc7a0f0fd64a1e30322a0552e3fc13528e33b82f1b350 +SHA512 (cxxopts-2d8e17c4f88efce80e274cb03eeb902e055a91d3.tar.gz) = ff26b941bdbae999b0d476f62d4a3c0c66aee2f1dac7bd4c1e05380532fbf93b462a2355d809a89eddb2d52aa8a6c7c31625a7fa442deca494e3358fa95ea009 +SHA512 (iodash-0.1.0.tar.gz) = 3ef05b5d909276c2e1be4619d0b075fcf001b5577939234f4952dd43b81f8806089d6e5d20dbe04743e3bd0c586f659709814cd0a4eb6938ebec4f727ff617ac +SHA512 (libevdevPlus-0.2.1.tar.gz) = 2cf4725c491631f25263d27d07722e85ddd2c4489426fd3842c75ca84e697765003083262b565d85d232f178684fae52f0f2ca3d5c89a3c0d1655d9f08a8d3d3 +SHA512 (libuInputPlus-0.2.1.tar.gz) = aeaa23c4b5631ddc0c9a54507d4cecb38d8b792015aa636d37bab3dbc3fa1229a6a02297d4c7c0d922fa512c3e3a8429b32a2432f06e1ceaeed1a91c857731cd +SHA512 (ydotool-0.2.0.tar.gz) = e4c78e4958b49b6b03a34f9624363cb83ca918b07e530c354c0a3495b4950d41fb5871cf646872f2bd17044db747effefb11ae9353b059fe3893f1fb7c87f286 diff --git a/ydotool-cpm.cmake.patch b/ydotool-cpm.cmake.patch new file mode 100644 index 0000000..ac9643a --- /dev/null +++ b/ydotool-cpm.cmake.patch @@ -0,0 +1,12 @@ +diff -ruN ydotool-0.2.0-orig/CMakeLists.txt ydotool-0.2.0/CMakeLists.txt +--- ydotool-0.2.0-orig/CMakeLists.txt 2021-01-09 19:31:54.000000000 +1000 ++++ ydotool-0.2.0/CMakeLists.txt 2021-01-18 16:24:57.479830987 +1000 +@@ -4,7 +4,7 @@ + set(CMAKE_CXX_STANDARD 17) + + set(CPM_DOWNLOAD_VERSION 0.27.5) +-set(CPM_DOWNLOAD_LOCATION "${CMAKE_BINARY_DIR}/cmake/CPM_${CPM_DOWNLOAD_VERSION}.cmake") ++set(CPM_DOWNLOAD_LOCATION "CPM.cmake-${CPM_DOWNLOAD_VERSION}/cmake/CPM.cmake") + + if(NOT (EXISTS ${CPM_DOWNLOAD_LOCATION})) + message(STATUS "Downloading CPM.cmake") diff --git a/ydotool-new-man-pages.patch b/ydotool-new-man-pages.patch new file mode 100644 index 0000000..cd73745 --- /dev/null +++ b/ydotool-new-man-pages.patch @@ -0,0 +1,234 @@ +diff -ruN ydotool-0.2.0-orig/manpage/ydotool.1.scd ydotool-0.2.0/manpage/ydotool.1.scd +--- ydotool-0.2.0-orig/manpage/ydotool.1.scd 2021-01-09 19:31:54.000000000 +1000 ++++ ydotool-0.2.0/manpage/ydotool.1.scd 2021-01-20 18:35:11.920031708 +1000 +@@ -6,14 +6,16 @@ + + # SYNOPSIS + +-*ydotool* *cmd* _args..._ ++*ydotool* *cmd* _args_ [ , *cmd* _args_ ... ] + +-*ydotool* *cmd* --help\fR ++*ydotool* *cmd* --help + + # DESCRIPTION + + *ydotool* lets you programmatically (or manually) simulate keyboard input and mouse activity, etc. It does this by writing directly to _/dev/uinput_ so it generally needs to run as root. + ++It's possible to chain multiple commands together, separated by a comma between two spaces. ++ + Currently implemented command(s): + + *type* +@@ -22,19 +24,15 @@ + Press keys + *mousemove* + Move mouse pointer to absolute position +-*mousemove_relative* +- Move mouse pointer to relative position + *click* + Click on mouse buttons + *recorder* + Record/replay input events +-*mouseup* +- Send a mouse up event. +-*mousedown* +- Send a mouse down event. ++*sleep* ++ sleep for a while + + # KEYBOARD COMMANDS +-*key* [*--up*] [*--down*] [*--delay* __] [*--key-delay* __] [*--repeat* __] [*--repeat-delay *] [*--persist-delay *] __ ++*key* [*--up*] [*--down*] [*--next-delay* __] [*--key-delay* __] [*--repeat* __] [*--repeat-delay *] __ + + Type a given keystroke. Examples being "alt+r", "ctrl+J", + "ctrl+alt+n", "backspace". +@@ -59,12 +57,10 @@ + *--repeat-delay* __ + Delay time between repetitions. Default 0ms. + +- *--persist-delay* __ +- Keep virtual device alive for __ ms. Should be used in conjunction with *--down* or *--up* +- + Generally, any valid name from _/usr/include/linux/input-event-codes.h_ will work. Multiple keys are separated by '+'. + + Each key sequence can be any number of modifiers and keys, separated by plus (+) ++ + For example: alt+r Alt+F4 CTRL+alt+f3 aLT+1+2+3 ctrl+Backspace + + Since we are emulating keyboard input, combinations like Shift+# is invalid because typing a `#' involves pressing Shift and 3. +@@ -75,20 +71,20 @@ + Example: Close a window in graphical environment: + ydotool key Alt+F4 + +-*type* [*--delay* __] [*--key-delay* __] [*--args* __] [*--file* __] "_something to type_" ++*type* [*--next-delay* __] [*--key-delay* __] [*--texts* _arg_] [*--file* __] "_texts_" + + Types text as if you had typed it on the keyboard. + + Options: + +- *--delay* __ ++ *--next-delay* __ + Delay before starting typing. Default 100ms. + + *--key-delay* __ + Delay time between keystrokes. Default 12ms. + +- *--args* __ +- ???? ++ *--texts* _arg_ ++ Texts to type + + *--file* __ + Specify a file, the contents of which will be typed as if passed as an argument. The filepath may also be '-' to read from stdin. +@@ -98,43 +94,39 @@ + + # MOUSE COMMANDS + +-*mousemove* [*--delay* __] _ _ +- Move the mouse to the specific X and Y coordinates on the screen. ++*mousemove* _ _ ++ Move the mouse to the specific relative X and Y coordinates on the screen. + + Options: +- *--delay* __ +- Delay before starting move. Default 100ms. ++ *--absolute* ++ Use absolute position + + Example: to move the cursor to absolute coordinates (100,100): +- ydotool mousemove 100 100 ++ ydotool mousemove --absolute 100 100 + +-*mousemove_relative* [*--delay* __] __ __ +- Move the mouse x,y pixels relative to the current position of the mouse cursor. ++*click* [*--next-delay* __] _button_ ++ Send a click. Buttons are: _left_, _right_ or _middle_ + + Options: +- *--delay* __ +- Delay before starting move. Default 100ms. + +- Example: Relatively move mouse pointer to -100,100: +- ydotool mousemove_relative -- -100 100 ++ *--next-delay* __ ++ Delay before click. Default 100ms. + +-*click* [*--delay* __] _button_ +- Send a click. Buttons are: 1=left 2=right 3=middle ++ *--up* ++ Only mouseup + +- Options: +- +- *--delay* __ +- Delay before click. Default 100ms. ++ *--down* ++ Only mousedown + +- Example: Mouse right click: +- ydotool click 2 ++ *--buttons* __ ++ Buttons to press (left, right, middle) + +-*recorder* [*--delay* __] [*--record* __] [*--replay* __] [*--display*] [*--duration* __] ++ Example: Mouse middle click: ++ ydotool click middle + +- Options: ++*recorder* [*--record* __] [*--replay* __] [*--display*] [*--duration* __] [*--devices* __] [*--file* __] + +- *--delay* __ +- Delay time before start recording/replaying. Default 5000ms. ++ Options: + + *--record* __ + Devices to record from. Default is all, including non-keyboard devices. +@@ -143,32 +135,16 @@ + The record file can't be replayed on an architecture with different endianness. + + *--display* +- ???? ++ Display + + *--duration* __ + Record duration. Otherwise use SIGINT to stop recording. + +-*mouseup* [*--delay* __] _button_ +- Send a mouse up event. Buttons are: 1=left 2=right 3=middle +- +- Options: +- +- *--delay* __ +- Delay before click. Default 100ms. +- +- Example: Mouse right click: +- ydotool click 2 +- +-*mousedown* [*--delay* __] _button_ +- Send a mouse down event. Buttons are: 1=left 2=right 3=middle +- +- Options: +- +- *--delay* __ +- Delay before click. Default 100ms. ++ *--devices* __ ++ Devices, separated by comma, to record from. Default is all devices (default: "") + +- Example: Mouse right click: +- ydotool click 2 ++ *--file* __ ++ File to record to / replay from + + # AUTHOR + +@@ -184,8 +160,8 @@ + + In order to solve this problem, there is a persistent background service, *ydotoold*(1), to hold a persistent virtual device, and accept input from *ydotool*(1). When *ydotoold*(1) is unavailable, *ydotool*(1) will work without it. + +-# COPYRIGHT +-MIT License ++# LICENCE ++AGPLv3 + + # SEE ALSO + +diff -ruN ydotool-0.2.0-orig/manpage/ydotoold.8.scd ydotool-0.2.0/manpage/ydotoold.8.scd +--- ydotool-0.2.0-orig/manpage/ydotoold.8.scd 2021-01-09 19:31:54.000000000 +1000 ++++ ydotool-0.2.0/manpage/ydotoold.8.scd 2021-01-20 18:33:48.815128767 +1000 +@@ -6,7 +6,7 @@ + + # SYNOPSIS + +-*ydotoold* ++*ydotoold* _[OPTION...]_ + + # DESCRIPTION + +@@ -20,15 +20,23 @@ + + In order to solve this problem, the *ydotoold* background service holds a persistent virtual device, and accepts input from *ydotool*(1). When *ydotoold*(1) is unavailable, *ydotool*(1) will work without it. + ++# OPTIONS ++ ++ *--socket-path arg* __ ++ Socket path (default: /tmp/.ydotool_socket) ++ ++ *--socket-perm arg* __ ++ Socket permission (default: 0600) ++ + # AUTHOR + + *ydotool*(1) and *ydotoold*(8) were written by ReimuNotMoe. + + This man page by bob.hepple@gmail.com + +-# COPYRIGHT ++# LICENCE + +-MIT License ++AGPLv3 + + # SEE ALSO + diff --git a/ydotool-patch1-cmakelist.patch b/ydotool-patch1-cmakelist.patch deleted file mode 100644 index a9acaa6..0000000 --- a/ydotool-patch1-cmakelist.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff -ruN ydotool-787fd2549dc0972895a94e4b0964389296608922-orig/CMakeLists.txt ydotool-787fd2549dc0972895a94e4b0964389296608922/CMakeLists.txt ---- ydotool-787fd2549dc0972895a94e4b0964389296608922-orig/CMakeLists.txt 2020-08-09 19:35:43.000000000 +1000 -+++ ydotool-787fd2549dc0972895a94e4b0964389296608922/CMakeLists.txt 2020-08-15 12:12:12.786053240 +1000 -@@ -2,11 +2,11 @@ - project(ydotool) - - set(CMAKE_CXX_STANDARD 14) --set(PROJECT_VERSION "0.1.5") -+set(PROJECT_VERSION "0.1.9") - set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION}) - set(CPACK_PACKAGE_VERSION_MAJOR "0") - set(CPACK_PACKAGE_VERSION_MINOR "1") --set(CPACK_PACKAGE_VERSION_PATCH "5") -+set(CPACK_PACKAGE_VERSION_PATCH "9") - set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Generic Linux command-line automation tool (no X!)") - set(CPACK_PACKAGE_CONTACT "Reimu NotMoe ") - set(CMAKE_PROJECT_HOMEPAGE_URL "https://github.com/ReimuNotMoe/ydotool") -@@ -17,6 +17,7 @@ - set(CPACK_DEBIAN_COMPRESSION_TYPE "xz") - set(CPACK_GENERATOR "DEB;RPM;TXZ") - set(CPACK_SOURCE_GENERATOR "DEB;RPM;TXZ") -+set(STATIC_BUILD "no") - include(CPack) - - include(GNUInstallDirs) -@@ -53,6 +54,8 @@ - if (NOT DEFINED DYNAMIC_BUILD OR (${DYNAMIC_BUILD})) - add_library(ydotool_library SHARED ${SOURCE_FILES_LIBRARY}) - set_target_properties(ydotool_library PROPERTIES OUTPUT_NAME ydotool) -+ set_target_properties(ydotool_library PROPERTIES VERSION ${PROJECT_VERSION}) -+ set_target_properties(ydotool_library PROPERTIES SOVERSION ${CPACK_PACKAGE_VERSION_MAJOR}) - target_link_libraries(ydotool_library dl boost_program_options uInputPlus evdevPlus) - - add_executable(ydotoold ${SOURCE_FILES_DAEMON}) diff --git a/ydotool.spec b/ydotool.spec index 9f459f6..3d06de7 100644 --- a/ydotool.spec +++ b/ydotool.spec @@ -1,31 +1,41 @@ # -*-Mode: rpm-spec-mode; -*- %undefine __cmake_in_source_build -%global commit 787fd2549dc0972895a94e4b0964389296608922 -%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +%global github_url https://github.com +%global iodash_name IODash +%global iodash_version 0.1.0 +%global libevdevplus_name libevdevPlus +%global libevdevplus_version 0.2.1 +%global libuinputplus_name libuInputPlus +%global libuinputplus_version 0.2.1 +%global cxxopts_name cxxopts +%global cxxopts_version 3.0.0 +%global cxxopts_commit 2d8e17c4f88efce80e274cb03eeb902e055a91d3 +%global cpm_cmake_name cpm.cmake +%global cpm_cmake_version 0.27.5 +%global debug_package %{nil} Name: ydotool -Version: 0.1.9 -Release: 0.4.20200815.git.%{shortcommit}%{?dist} +Version: 0.2.0 +Release: 1%{?dist} Summary: Generic command-line automation tool (no X!) -License: MIT -URL: https://github.com/ReimuNotMoe/ydotool -Source0: %{url}/archive/%{commit}/%{name}-%{version}.tar.gz +License: AGPLv3, Public Domain +URL: %github_url/ReimuNotMoe/%{name} -# This patch removes the static elements from the build and applies a -# version number to the shared library. To this date, upstream has -# not responded to a request to do this: -# https://github.com/ReimuNotMoe/ydotool/issues/60 +Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz +Source1: %{github_url}/YukiWorkshop/%{iodash_name}/archive/v%{iodash_version}/%(c=%{iodash_name}; echo ${c,,})-%{iodash_version}.tar.gz +Source2: %{github_url}/YukiWorkshop/%{libevdevplus_name}/archive/v%{libevdevplus_version}/%{libevdevplus_name}-%{libevdevplus_version}.tar.gz +Source3: %{github_url}/YukiWorkshop/%{libuinputplus_name}/archive/v%{libuinputplus_version}/%{libuinputplus_name}-%{libuinputplus_version}.tar.gz +Source4: %{github_url}/jarro2783/%{cxxopts_name}/archive/%{cxxopts_commit}/%{cxxopts_name}-%{cxxopts_commit}.tar.gz +Source5: %{github_url}/TheLartians/%{cpm_cmake_name}/archive/v%{cpm_cmake_version}/%{cpm_cmake_name}-%{cpm_cmake_version}.tar.gz +Source6: https://gist.githubusercontent.com/panzi/6856583/raw/1eca2ab34f2301b9641aa73d1016b951fff3fc39/portable_endian.h -# Create patch with: -# diff -rNu -x build ydotool-%%{version}-orig ydotool-%%{version} -Patch0: ydotool-patch1-cmakelist.patch +Patch0: ydotool-cpm.cmake.patch +Patch1: ydotool-new-man-pages.patch -BuildRequires: boost-devel BuildRequires: cmake BuildRequires: gcc-c++ -BuildRequires: pkgconfig(evdevPlus) >= 0.1.1 -BuildRequires: pkgconfig(uInputPlus) >= 0.1.4 BuildRequires: make BuildRequires: scdoc BuildRequires: systemd-rpm-macros @@ -35,46 +45,68 @@ BuildRequires: systemd-rpm-macros Performs some of the functions of xdotool(1) without requiring X11 - however, it generally requires root permission (to open /dev/uinput) +NOTE: changes in this release: +NOTE: --delay option is now --next-delay +NOTE: mousemove is now relative unless --absolute is given +NOTE: mouseup, mousedown, mousemove_relative is removed +NOTE: click accepts left, right, middle instead of 1, 2, 3 +NOTE: sleep is a new command + +SEE: ydotool --help for latest info + Currently implemented command(s): - type - Type a string - key - Press keys - mousemove - Move mouse pointer to absolute position -- mousemove_relative - Move mouse pointer to relative position -- mouseup - Generate mouse up event -- mousedown - Generate mouse down event - click - Click on mouse buttons - recorder - Record/replay input events +- sleep - sleep ms -N.B. optionally, you can start the ydotoold daemon with: +N.B. it is strongly recommended to start the ydotoold daemon with: - systemctl enable ydotool - systemctl start ydotool -%package devel -Summary: Development files for %{name} -Requires: %{name}%{?_isa} = %{version}-%{release} -%description devel -This package contains header files for %{name}. - %prep -%autosetup -n %{name}-%{commit} +%setup -q +%patch0 -p1 +%patch1 -p1 +gzip -dc %{S:1} | tar xf - +gzip -dc %{S:2} | tar xf - +gzip -dc %{S:3} | tar xf - +gzip -dc %{S:4} | tar xf - +gzip -dc %{S:5} | tar xf - + +# this is missing from IODash - I have logged a bug report upstream +# it is licenced 'public domain': +cp %{S:6} %{iodash_name}-%{iodash_version}/portable-endian.h %build -%cmake -%cmake_build +cmake -S . -B %{_vpath_builddir} -DCMAKE_C_FLAGS_RELEASE:STRING=-DNDEBUG \ +-DCMAKE_CXX_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_Fortran_FLAGS_RELEASE:STRING=-DNDEBUG \ +-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_INSTALL_PREFIX:PATH=/usr -DINCLUDE_INSTALL_DIR:PATH=/usr/include \ +-DLIB_INSTALL_DIR:PATH=/usr/lib64 -DSYSCONF_INSTALL_DIR:PATH=/etc \ +-DSHARE_INSTALL_PREFIX:PATH=/usr/share -DLIB_SUFFIX=64 \ +-DCPM_%{iodash_name}_SOURCE=$PWD/%{iodash_name}-%{iodash_version} \ +-DCPM_%{libevdevplus_name}_SOURCE=$PWD/%{libevdevplus_name}-%{libevdevplus_version} \ +-DCPM_%{libuinputplus_name}_SOURCE=$PWD/%{libuinputplus_name}-%{libuinputplus_version} \ +-DCPM_%{cxxopts_name}_SOURCE=$PWD/%{cxxopts_name}-%{cxxopts_commit} + +make -C %{_vpath_builddir} -j `nproc` %install -%cmake_install - +mkdir -p %{buildroot}/%{_bindir} +strip */%{name} +strip */%{name}d +install -p -m 0755 */%{name} %{buildroot}/%{_bindir} +install -p -m 0755 */%{name}d %{buildroot}/%{_bindir} mkdir -p %{buildroot}/%{_unitdir} install -p -m 0644 Daemon/%{name}.service %{buildroot}/%{_unitdir} mkdir -p %{buildroot}/%{_mandir}/man1 mkdir -p %{buildroot}/%{_mandir}/man8 scdoc < manpage/%{name}.1.scd > %{buildroot}/%{_mandir}/man1/%{name}.1 scdoc < manpage/%{name}d.8.scd > %{buildroot}/%{_mandir}/man8/%{name}d.8 -mkdir -p %{buildroot}/%{_includedir}/ydotool -find . -name '*.hpp' -exec cp --parents {} %{buildroot}/%{_includedir}/ydotool/ ';' %post %systemd_post %{name}.service @@ -86,7 +118,6 @@ find . -name '*.hpp' -exec cp --parents {} %{buildroot}/%{_includedir}/ydotool/ %systemd_postun_with_restart %{name}.service %files -%{_libdir}/lib%{name}.so.0* %{_unitdir}/%{name}.service %{_bindir}/%{name}* %license LICENSE @@ -94,11 +125,14 @@ find . -name '*.hpp' -exec cp --parents {} %{buildroot}/%{_includedir}/ydotool/ %{_mandir}/man1/%{name}.1.* %{_mandir}/man8/%{name}d.8.* -%files devel -%{_libdir}/lib%{name}.so -%{_includedir}/%{name}/ - %changelog +* Mon Jan 11 2021 Bob Hepple - 0.2.0-1 +- new version +- upstream has dropped the idea of -devel libraries so we are only + distributing the regular package now; also libevdevPlus-devel and + libuInputPlus-devel are no longer needed as they are now compiled + in. + * Sat Aug 15 2020 Bob Hepple - 0.1.9-0.4.20200815.git.787fd25 - most recent version From c36228d6dcefab4274d10fe0c19e6a43d8be9a2c Mon Sep 17 00:00:00 2001 From: Bob Hepple Date: Thu, 21 Jan 2021 10:09:10 +1000 Subject: [PATCH 02/26] v0.2.0-2 --- ydotool.spec | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/ydotool.spec b/ydotool.spec index 3d06de7..16e3e82 100644 --- a/ydotool.spec +++ b/ydotool.spec @@ -18,11 +18,26 @@ Name: ydotool Version: 0.2.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Generic command-line automation tool (no X!) License: AGPLv3, Public Domain URL: %github_url/ReimuNotMoe/%{name} +# lacks support for TCGETS2: +ExcludeArch: ppc64le + +# failure in rpmbuild toolchain: +# Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/ydotool-0.2.0-1.fc34.s390x +# Child return code was: -11 +# EXCEPTION: [Error()] +# Traceback (most recent call last): +# File "/usr/lib/python3.9/site-packages/mockbuild/trace_decorator.py", line 93, in trace +# result = func(*args, **kw) +# File "/usr/lib/python3.9/site-packages/mockbuild/util.py", line 600, in do_with_status +# raise exception.Error("Command failed: \n # %s\n%s" % (command, output), child.returncode) +# mockbuild.exception.Error: Command failed: +ExcludeArch: s390x + Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz Source1: %{github_url}/YukiWorkshop/%{iodash_name}/archive/v%{iodash_version}/%(c=%{iodash_name}; echo ${c,,})-%{iodash_version}.tar.gz Source2: %{github_url}/YukiWorkshop/%{libevdevplus_name}/archive/v%{libevdevplus_version}/%{libevdevplus_name}-%{libevdevplus_version}.tar.gz @@ -79,15 +94,12 @@ gzip -dc %{S:4} | tar xf - gzip -dc %{S:5} | tar xf - # this is missing from IODash - I have logged a bug report upstream +# https://github.com/YukiWorkshop/IODash/issues/1 # it is licenced 'public domain': cp %{S:6} %{iodash_name}-%{iodash_version}/portable-endian.h %build -cmake -S . -B %{_vpath_builddir} -DCMAKE_C_FLAGS_RELEASE:STRING=-DNDEBUG \ --DCMAKE_CXX_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_Fortran_FLAGS_RELEASE:STRING=-DNDEBUG \ --DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_INSTALL_PREFIX:PATH=/usr -DINCLUDE_INSTALL_DIR:PATH=/usr/include \ --DLIB_INSTALL_DIR:PATH=/usr/lib64 -DSYSCONF_INSTALL_DIR:PATH=/etc \ --DSHARE_INSTALL_PREFIX:PATH=/usr/share -DLIB_SUFFIX=64 \ +%cmake -DBUILD_SHARED_LIBS:BOOL=OFF \ -DCPM_%{iodash_name}_SOURCE=$PWD/%{iodash_name}-%{iodash_version} \ -DCPM_%{libevdevplus_name}_SOURCE=$PWD/%{libevdevplus_name}-%{libevdevplus_version} \ -DCPM_%{libuinputplus_name}_SOURCE=$PWD/%{libuinputplus_name}-%{libuinputplus_version} \ @@ -126,6 +138,9 @@ scdoc < manpage/%{name}d.8.scd > %{buildroot}/%{_mandir}/man8/%{name}d.8 %{_mandir}/man8/%{name}d.8.* %changelog +* Wed Jan 20 2021 Bob Hepple - 0.2.0-2 +- rebuilt excluding s390x and ppc64le + * Mon Jan 11 2021 Bob Hepple - 0.2.0-1 - new version - upstream has dropped the idea of -devel libraries so we are only From 5ced80f379f84e054943460c7621c9f53184b43e Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 22 Jan 2021 21:03:31 +0000 Subject: [PATCH 03/26] Rebuilt for Boost 1.75 --- ydotool.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ydotool.spec b/ydotool.spec index 16e3e82..f8761ab 100644 --- a/ydotool.spec +++ b/ydotool.spec @@ -18,7 +18,7 @@ Name: ydotool Version: 0.2.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Generic command-line automation tool (no X!) License: AGPLv3, Public Domain URL: %github_url/ReimuNotMoe/%{name} @@ -138,6 +138,9 @@ scdoc < manpage/%{name}d.8.scd > %{buildroot}/%{_mandir}/man8/%{name}d.8 %{_mandir}/man8/%{name}d.8.* %changelog +* Fri Jan 22 2021 Jonathan Wakely - 0.2.0-3 +- Rebuilt for Boost 1.75 + * Wed Jan 20 2021 Bob Hepple - 0.2.0-2 - rebuilt excluding s390x and ppc64le From d8b14c07c93f4eff3f132a0970cba44aeb555ddb Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 28 Jan 2021 00:32:37 +0000 Subject: [PATCH 04/26] - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- ydotool.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ydotool.spec b/ydotool.spec index f8761ab..18d7a4b 100644 --- a/ydotool.spec +++ b/ydotool.spec @@ -18,7 +18,7 @@ Name: ydotool Version: 0.2.0 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Generic command-line automation tool (no X!) License: AGPLv3, Public Domain URL: %github_url/ReimuNotMoe/%{name} @@ -138,6 +138,9 @@ scdoc < manpage/%{name}d.8.scd > %{buildroot}/%{_mandir}/man8/%{name}d.8 %{_mandir}/man8/%{name}d.8.* %changelog +* Thu Jan 28 2021 Fedora Release Engineering - 0.2.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + * Fri Jan 22 2021 Jonathan Wakely - 0.2.0-3 - Rebuilt for Boost 1.75 From 1834f83dc0b9b848406fc6f4955f542519414613 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 2 Mar 2021 16:12:00 +0100 Subject: [PATCH 05/26] Rebuilt for updated systemd-rpm-macros See https://pagure.io/fesco/issue/2583. --- ydotool.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ydotool.spec b/ydotool.spec index 18d7a4b..e2106f9 100644 --- a/ydotool.spec +++ b/ydotool.spec @@ -18,7 +18,7 @@ Name: ydotool Version: 0.2.0 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Generic command-line automation tool (no X!) License: AGPLv3, Public Domain URL: %github_url/ReimuNotMoe/%{name} @@ -138,6 +138,10 @@ scdoc < manpage/%{name}d.8.scd > %{buildroot}/%{_mandir}/man8/%{name}d.8 %{_mandir}/man8/%{name}d.8.* %changelog +* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 0.2.0-5 +- Rebuilt for updated systemd-rpm-macros + See https://pagure.io/fesco/issue/2583. + * Thu Jan 28 2021 Fedora Release Engineering - 0.2.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild From 6a4827cb02806620effe90a16b9beaf335089007 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 23 Jul 2021 22:07:43 +0000 Subject: [PATCH 06/26] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- ydotool.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ydotool.spec b/ydotool.spec index e2106f9..e720593 100644 --- a/ydotool.spec +++ b/ydotool.spec @@ -18,7 +18,7 @@ Name: ydotool Version: 0.2.0 -Release: 5%{?dist} +Release: 6%{?dist} Summary: Generic command-line automation tool (no X!) License: AGPLv3, Public Domain URL: %github_url/ReimuNotMoe/%{name} @@ -138,6 +138,9 @@ scdoc < manpage/%{name}d.8.scd > %{buildroot}/%{_mandir}/man8/%{name}d.8 %{_mandir}/man8/%{name}d.8.* %changelog +* Fri Jul 23 2021 Fedora Release Engineering - 0.2.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + * Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 0.2.0-5 - Rebuilt for updated systemd-rpm-macros See https://pagure.io/fesco/issue/2583. From 4c4546532303e134470085f9ed007fd048b1066a Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 22 Jan 2022 05:41:10 +0000 Subject: [PATCH 07/26] - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- ydotool.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ydotool.spec b/ydotool.spec index e720593..9746f33 100644 --- a/ydotool.spec +++ b/ydotool.spec @@ -18,7 +18,7 @@ Name: ydotool Version: 0.2.0 -Release: 6%{?dist} +Release: 7%{?dist} Summary: Generic command-line automation tool (no X!) License: AGPLv3, Public Domain URL: %github_url/ReimuNotMoe/%{name} @@ -138,6 +138,9 @@ scdoc < manpage/%{name}d.8.scd > %{buildroot}/%{_mandir}/man8/%{name}d.8 %{_mandir}/man8/%{name}d.8.* %changelog +* Sat Jan 22 2022 Fedora Release Engineering - 0.2.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + * Fri Jul 23 2021 Fedora Release Engineering - 0.2.0-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild From b759343691e366a9817005ef3d70dc8f3c9c739f Mon Sep 17 00:00:00 2001 From: Bob Hepple Date: Sun, 30 Jan 2022 17:04:29 +1000 Subject: [PATCH 08/26] Fix for FTBFS #2047136 --- portable_endian.h | 2 +- ydotool.spec | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/portable_endian.h b/portable_endian.h index e89694a..99845d0 100644 --- a/portable_endian.h +++ b/portable_endian.h @@ -115,4 +115,4 @@ #endif -#endif +#endif \ No newline at end of file diff --git a/ydotool.spec b/ydotool.spec index 9746f33..f401c95 100644 --- a/ydotool.spec +++ b/ydotool.spec @@ -18,7 +18,7 @@ Name: ydotool Version: 0.2.0 -Release: 7%{?dist} +Release: 8%{?dist} Summary: Generic command-line automation tool (no X!) License: AGPLv3, Public Domain URL: %github_url/ReimuNotMoe/%{name} @@ -99,6 +99,11 @@ gzip -dc %{S:5} | tar xf - cp %{S:6} %{iodash_name}-%{iodash_version}/portable-endian.h %build +export CFLAGS="$RPM_OPT_FLAGS -Wno-error=stringop-overflow -Wno-error=sign-compare -Wno-error=maybe-uninitialized \ +-Wno-error=unused-function -Wno-error=unused-variable -Wno-error=unused-result" +export CXXFLAGS="$CFLAGS" +export FFLAGS="$CFLAGS" + %cmake -DBUILD_SHARED_LIBS:BOOL=OFF \ -DCPM_%{iodash_name}_SOURCE=$PWD/%{iodash_name}-%{iodash_version} \ -DCPM_%{libevdevplus_name}_SOURCE=$PWD/%{libevdevplus_name}-%{libevdevplus_version} \ @@ -138,6 +143,9 @@ scdoc < manpage/%{name}d.8.scd > %{buildroot}/%{_mandir}/man8/%{name}d.8 %{_mandir}/man8/%{name}d.8.* %changelog +* Sun Jan 30 2022 Bob Hepple - 0.2.0-8 +- add -Wno-error= flags for FTBFS #2047136 in f36 + * Sat Jan 22 2022 Fedora Release Engineering - 0.2.0-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild From 3b2d94fddc61ddc05ee99b0e4e0fb7461e56797e Mon Sep 17 00:00:00 2001 From: Bob Hepple Date: Sun, 30 Jan 2022 17:18:28 +1000 Subject: [PATCH 09/26] exclude armv7hl as it fails to compile --- ydotool.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ydotool.spec b/ydotool.spec index f401c95..49e9f0a 100644 --- a/ydotool.spec +++ b/ydotool.spec @@ -38,6 +38,9 @@ ExcludeArch: ppc64le # mockbuild.exception.Error: Command failed: ExcludeArch: s390x +# Compile fails with "use-after-free", but only this arch!! +ExcludeArch: armv7hl + Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz Source1: %{github_url}/YukiWorkshop/%{iodash_name}/archive/v%{iodash_version}/%(c=%{iodash_name}; echo ${c,,})-%{iodash_version}.tar.gz Source2: %{github_url}/YukiWorkshop/%{libevdevplus_name}/archive/v%{libevdevplus_version}/%{libevdevplus_name}-%{libevdevplus_version}.tar.gz From 85b827cfd32654cd8f3e134d0ea1097eef33d18b Mon Sep 17 00:00:00 2001 From: Bob Hepple Date: Sun, 30 Jan 2022 17:18:58 +1000 Subject: [PATCH 10/26] populate changelog --- ydotool.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/ydotool.spec b/ydotool.spec index 49e9f0a..b7a7b3f 100644 --- a/ydotool.spec +++ b/ydotool.spec @@ -148,6 +148,7 @@ scdoc < manpage/%{name}d.8.scd > %{buildroot}/%{_mandir}/man8/%{name}d.8 %changelog * Sun Jan 30 2022 Bob Hepple - 0.2.0-8 - add -Wno-error= flags for FTBFS #2047136 in f36 +- exclude armv7hl as it fails to compile * Sat Jan 22 2022 Fedora Release Engineering - 0.2.0-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild From 72218f426267ccd620d4e2e8921130e50d633f58 Mon Sep 17 00:00:00 2001 From: Bob Hepple Date: Sun, 6 Feb 2022 16:17:32 +1000 Subject: [PATCH 11/26] New version --- .gitignore | 1 + sources | 2 +- ydotool-cpm.cmake.patch | 12 -- ydotool-new-man-pages.patch | 234 ------------------------------------ ydotool.spec | 25 ++-- 5 files changed, 11 insertions(+), 263 deletions(-) delete mode 100644 ydotool-cpm.cmake.patch delete mode 100644 ydotool-new-man-pages.patch diff --git a/.gitignore b/.gitignore index bcaabcb..60d99d3 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ /libevdevPlus-0.2.1.tar.gz /libuInputPlus-0.2.1.tar.gz /ydotool-0.2.0.tar.gz +/ydotool-1.0.0.tar.gz diff --git a/sources b/sources index 4a8e373..1e3a1ad 100644 --- a/sources +++ b/sources @@ -3,4 +3,4 @@ SHA512 (cxxopts-2d8e17c4f88efce80e274cb03eeb902e055a91d3.tar.gz) = ff26b941bdbae SHA512 (iodash-0.1.0.tar.gz) = 3ef05b5d909276c2e1be4619d0b075fcf001b5577939234f4952dd43b81f8806089d6e5d20dbe04743e3bd0c586f659709814cd0a4eb6938ebec4f727ff617ac SHA512 (libevdevPlus-0.2.1.tar.gz) = 2cf4725c491631f25263d27d07722e85ddd2c4489426fd3842c75ca84e697765003083262b565d85d232f178684fae52f0f2ca3d5c89a3c0d1655d9f08a8d3d3 SHA512 (libuInputPlus-0.2.1.tar.gz) = aeaa23c4b5631ddc0c9a54507d4cecb38d8b792015aa636d37bab3dbc3fa1229a6a02297d4c7c0d922fa512c3e3a8429b32a2432f06e1ceaeed1a91c857731cd -SHA512 (ydotool-0.2.0.tar.gz) = e4c78e4958b49b6b03a34f9624363cb83ca918b07e530c354c0a3495b4950d41fb5871cf646872f2bd17044db747effefb11ae9353b059fe3893f1fb7c87f286 +SHA512 (ydotool-1.0.0.tar.gz) = dda088b34bd6d472f8c71ae93c7849e1edb6820a220a27c3bb545c59030a2594c21f95377266aa14833e05d91568bc0c0c1955387924dfa46ecff0d4711d12c4 diff --git a/ydotool-cpm.cmake.patch b/ydotool-cpm.cmake.patch deleted file mode 100644 index ac9643a..0000000 --- a/ydotool-cpm.cmake.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ruN ydotool-0.2.0-orig/CMakeLists.txt ydotool-0.2.0/CMakeLists.txt ---- ydotool-0.2.0-orig/CMakeLists.txt 2021-01-09 19:31:54.000000000 +1000 -+++ ydotool-0.2.0/CMakeLists.txt 2021-01-18 16:24:57.479830987 +1000 -@@ -4,7 +4,7 @@ - set(CMAKE_CXX_STANDARD 17) - - set(CPM_DOWNLOAD_VERSION 0.27.5) --set(CPM_DOWNLOAD_LOCATION "${CMAKE_BINARY_DIR}/cmake/CPM_${CPM_DOWNLOAD_VERSION}.cmake") -+set(CPM_DOWNLOAD_LOCATION "CPM.cmake-${CPM_DOWNLOAD_VERSION}/cmake/CPM.cmake") - - if(NOT (EXISTS ${CPM_DOWNLOAD_LOCATION})) - message(STATUS "Downloading CPM.cmake") diff --git a/ydotool-new-man-pages.patch b/ydotool-new-man-pages.patch deleted file mode 100644 index cd73745..0000000 --- a/ydotool-new-man-pages.patch +++ /dev/null @@ -1,234 +0,0 @@ -diff -ruN ydotool-0.2.0-orig/manpage/ydotool.1.scd ydotool-0.2.0/manpage/ydotool.1.scd ---- ydotool-0.2.0-orig/manpage/ydotool.1.scd 2021-01-09 19:31:54.000000000 +1000 -+++ ydotool-0.2.0/manpage/ydotool.1.scd 2021-01-20 18:35:11.920031708 +1000 -@@ -6,14 +6,16 @@ - - # SYNOPSIS - --*ydotool* *cmd* _args..._ -+*ydotool* *cmd* _args_ [ , *cmd* _args_ ... ] - --*ydotool* *cmd* --help\fR -+*ydotool* *cmd* --help - - # DESCRIPTION - - *ydotool* lets you programmatically (or manually) simulate keyboard input and mouse activity, etc. It does this by writing directly to _/dev/uinput_ so it generally needs to run as root. - -+It's possible to chain multiple commands together, separated by a comma between two spaces. -+ - Currently implemented command(s): - - *type* -@@ -22,19 +24,15 @@ - Press keys - *mousemove* - Move mouse pointer to absolute position --*mousemove_relative* -- Move mouse pointer to relative position - *click* - Click on mouse buttons - *recorder* - Record/replay input events --*mouseup* -- Send a mouse up event. --*mousedown* -- Send a mouse down event. -+*sleep* -+ sleep for a while - - # KEYBOARD COMMANDS --*key* [*--up*] [*--down*] [*--delay* __] [*--key-delay* __] [*--repeat* __] [*--repeat-delay *] [*--persist-delay *] __ -+*key* [*--up*] [*--down*] [*--next-delay* __] [*--key-delay* __] [*--repeat* __] [*--repeat-delay *] __ - - Type a given keystroke. Examples being "alt+r", "ctrl+J", - "ctrl+alt+n", "backspace". -@@ -59,12 +57,10 @@ - *--repeat-delay* __ - Delay time between repetitions. Default 0ms. - -- *--persist-delay* __ -- Keep virtual device alive for __ ms. Should be used in conjunction with *--down* or *--up* -- - Generally, any valid name from _/usr/include/linux/input-event-codes.h_ will work. Multiple keys are separated by '+'. - - Each key sequence can be any number of modifiers and keys, separated by plus (+) -+ - For example: alt+r Alt+F4 CTRL+alt+f3 aLT+1+2+3 ctrl+Backspace - - Since we are emulating keyboard input, combinations like Shift+# is invalid because typing a `#' involves pressing Shift and 3. -@@ -75,20 +71,20 @@ - Example: Close a window in graphical environment: - ydotool key Alt+F4 - --*type* [*--delay* __] [*--key-delay* __] [*--args* __] [*--file* __] "_something to type_" -+*type* [*--next-delay* __] [*--key-delay* __] [*--texts* _arg_] [*--file* __] "_texts_" - - Types text as if you had typed it on the keyboard. - - Options: - -- *--delay* __ -+ *--next-delay* __ - Delay before starting typing. Default 100ms. - - *--key-delay* __ - Delay time between keystrokes. Default 12ms. - -- *--args* __ -- ???? -+ *--texts* _arg_ -+ Texts to type - - *--file* __ - Specify a file, the contents of which will be typed as if passed as an argument. The filepath may also be '-' to read from stdin. -@@ -98,43 +94,39 @@ - - # MOUSE COMMANDS - --*mousemove* [*--delay* __] _ _ -- Move the mouse to the specific X and Y coordinates on the screen. -+*mousemove* _ _ -+ Move the mouse to the specific relative X and Y coordinates on the screen. - - Options: -- *--delay* __ -- Delay before starting move. Default 100ms. -+ *--absolute* -+ Use absolute position - - Example: to move the cursor to absolute coordinates (100,100): -- ydotool mousemove 100 100 -+ ydotool mousemove --absolute 100 100 - --*mousemove_relative* [*--delay* __] __ __ -- Move the mouse x,y pixels relative to the current position of the mouse cursor. -+*click* [*--next-delay* __] _button_ -+ Send a click. Buttons are: _left_, _right_ or _middle_ - - Options: -- *--delay* __ -- Delay before starting move. Default 100ms. - -- Example: Relatively move mouse pointer to -100,100: -- ydotool mousemove_relative -- -100 100 -+ *--next-delay* __ -+ Delay before click. Default 100ms. - --*click* [*--delay* __] _button_ -- Send a click. Buttons are: 1=left 2=right 3=middle -+ *--up* -+ Only mouseup - -- Options: -- -- *--delay* __ -- Delay before click. Default 100ms. -+ *--down* -+ Only mousedown - -- Example: Mouse right click: -- ydotool click 2 -+ *--buttons* __ -+ Buttons to press (left, right, middle) - --*recorder* [*--delay* __] [*--record* __] [*--replay* __] [*--display*] [*--duration* __] -+ Example: Mouse middle click: -+ ydotool click middle - -- Options: -+*recorder* [*--record* __] [*--replay* __] [*--display*] [*--duration* __] [*--devices* __] [*--file* __] - -- *--delay* __ -- Delay time before start recording/replaying. Default 5000ms. -+ Options: - - *--record* __ - Devices to record from. Default is all, including non-keyboard devices. -@@ -143,32 +135,16 @@ - The record file can't be replayed on an architecture with different endianness. - - *--display* -- ???? -+ Display - - *--duration* __ - Record duration. Otherwise use SIGINT to stop recording. - --*mouseup* [*--delay* __] _button_ -- Send a mouse up event. Buttons are: 1=left 2=right 3=middle -- -- Options: -- -- *--delay* __ -- Delay before click. Default 100ms. -- -- Example: Mouse right click: -- ydotool click 2 -- --*mousedown* [*--delay* __] _button_ -- Send a mouse down event. Buttons are: 1=left 2=right 3=middle -- -- Options: -- -- *--delay* __ -- Delay before click. Default 100ms. -+ *--devices* __ -+ Devices, separated by comma, to record from. Default is all devices (default: "") - -- Example: Mouse right click: -- ydotool click 2 -+ *--file* __ -+ File to record to / replay from - - # AUTHOR - -@@ -184,8 +160,8 @@ - - In order to solve this problem, there is a persistent background service, *ydotoold*(1), to hold a persistent virtual device, and accept input from *ydotool*(1). When *ydotoold*(1) is unavailable, *ydotool*(1) will work without it. - --# COPYRIGHT --MIT License -+# LICENCE -+AGPLv3 - - # SEE ALSO - -diff -ruN ydotool-0.2.0-orig/manpage/ydotoold.8.scd ydotool-0.2.0/manpage/ydotoold.8.scd ---- ydotool-0.2.0-orig/manpage/ydotoold.8.scd 2021-01-09 19:31:54.000000000 +1000 -+++ ydotool-0.2.0/manpage/ydotoold.8.scd 2021-01-20 18:33:48.815128767 +1000 -@@ -6,7 +6,7 @@ - - # SYNOPSIS - --*ydotoold* -+*ydotoold* _[OPTION...]_ - - # DESCRIPTION - -@@ -20,15 +20,23 @@ - - In order to solve this problem, the *ydotoold* background service holds a persistent virtual device, and accepts input from *ydotool*(1). When *ydotoold*(1) is unavailable, *ydotool*(1) will work without it. - -+# OPTIONS -+ -+ *--socket-path arg* __ -+ Socket path (default: /tmp/.ydotool_socket) -+ -+ *--socket-perm arg* __ -+ Socket permission (default: 0600) -+ - # AUTHOR - - *ydotool*(1) and *ydotoold*(8) were written by ReimuNotMoe. - - This man page by bob.hepple@gmail.com - --# COPYRIGHT -+# LICENCE - --MIT License -+AGPLv3 - - # SEE ALSO - diff --git a/ydotool.spec b/ydotool.spec index b7a7b3f..ee17f8d 100644 --- a/ydotool.spec +++ b/ydotool.spec @@ -17,14 +17,14 @@ %global debug_package %{nil} Name: ydotool -Version: 0.2.0 -Release: 8%{?dist} +Version: 1.0.0 +Release: 1%{?dist} Summary: Generic command-line automation tool (no X!) License: AGPLv3, Public Domain URL: %github_url/ReimuNotMoe/%{name} # lacks support for TCGETS2: -ExcludeArch: ppc64le +#ExcludeArch: ppc64le # failure in rpmbuild toolchain: # Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/ydotool-0.2.0-1.fc34.s390x @@ -36,10 +36,10 @@ ExcludeArch: ppc64le # File "/usr/lib/python3.9/site-packages/mockbuild/util.py", line 600, in do_with_status # raise exception.Error("Command failed: \n # %s\n%s" % (command, output), child.returncode) # mockbuild.exception.Error: Command failed: -ExcludeArch: s390x +#ExcludeArch: s390x # Compile fails with "use-after-free", but only this arch!! -ExcludeArch: armv7hl +#ExcludeArch: armv7hl Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz Source1: %{github_url}/YukiWorkshop/%{iodash_name}/archive/v%{iodash_version}/%(c=%{iodash_name}; echo ${c,,})-%{iodash_version}.tar.gz @@ -49,9 +49,6 @@ Source4: %{github_url}/jarro2783/%{cxxopts_name}/archive/%{cxxopts_commit}/%{cx Source5: %{github_url}/TheLartians/%{cpm_cmake_name}/archive/v%{cpm_cmake_version}/%{cpm_cmake_name}-%{cpm_cmake_version}.tar.gz Source6: https://gist.githubusercontent.com/panzi/6856583/raw/1eca2ab34f2301b9641aa73d1016b951fff3fc39/portable_endian.h -Patch0: ydotool-cpm.cmake.patch -Patch1: ydotool-new-man-pages.patch - BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: make @@ -88,8 +85,6 @@ N.B. it is strongly recommended to start the ydotoold daemon with: %prep %setup -q -%patch0 -p1 -%patch1 -p1 gzip -dc %{S:1} | tar xf - gzip -dc %{S:2} | tar xf - gzip -dc %{S:3} | tar xf - @@ -102,11 +97,6 @@ gzip -dc %{S:5} | tar xf - cp %{S:6} %{iodash_name}-%{iodash_version}/portable-endian.h %build -export CFLAGS="$RPM_OPT_FLAGS -Wno-error=stringop-overflow -Wno-error=sign-compare -Wno-error=maybe-uninitialized \ --Wno-error=unused-function -Wno-error=unused-variable -Wno-error=unused-result" -export CXXFLAGS="$CFLAGS" -export FFLAGS="$CFLAGS" - %cmake -DBUILD_SHARED_LIBS:BOOL=OFF \ -DCPM_%{iodash_name}_SOURCE=$PWD/%{iodash_name}-%{iodash_version} \ -DCPM_%{libevdevplus_name}_SOURCE=$PWD/%{libevdevplus_name}-%{libevdevplus_version} \ @@ -122,7 +112,7 @@ strip */%{name}d install -p -m 0755 */%{name} %{buildroot}/%{_bindir} install -p -m 0755 */%{name}d %{buildroot}/%{_bindir} mkdir -p %{buildroot}/%{_unitdir} -install -p -m 0644 Daemon/%{name}.service %{buildroot}/%{_unitdir} +install -p -m 0644 */%{name}.service %{buildroot}/%{_unitdir} mkdir -p %{buildroot}/%{_mandir}/man1 mkdir -p %{buildroot}/%{_mandir}/man8 scdoc < manpage/%{name}.1.scd > %{buildroot}/%{_mandir}/man1/%{name}.1 @@ -146,6 +136,9 @@ scdoc < manpage/%{name}d.8.scd > %{buildroot}/%{_mandir}/man8/%{name}d.8 %{_mandir}/man8/%{name}d.8.* %changelog +* Sun Feb 06 2022 Bob Hepple - 1.0.0-1 +- new version + * Sun Jan 30 2022 Bob Hepple - 0.2.0-8 - add -Wno-error= flags for FTBFS #2047136 in f36 - exclude armv7hl as it fails to compile From 431e5c6a7c5b2b1399dfff85573d577e1ce8f302 Mon Sep 17 00:00:00 2001 From: Bob Hepple Date: Sun, 6 Feb 2022 16:33:23 +1000 Subject: [PATCH 12/26] Now builds on all archs --- ydotool.spec | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/ydotool.spec b/ydotool.spec index ee17f8d..68a9d75 100644 --- a/ydotool.spec +++ b/ydotool.spec @@ -18,29 +18,11 @@ Name: ydotool Version: 1.0.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Generic command-line automation tool (no X!) License: AGPLv3, Public Domain URL: %github_url/ReimuNotMoe/%{name} -# lacks support for TCGETS2: -#ExcludeArch: ppc64le - -# failure in rpmbuild toolchain: -# Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/ydotool-0.2.0-1.fc34.s390x -# Child return code was: -11 -# EXCEPTION: [Error()] -# Traceback (most recent call last): -# File "/usr/lib/python3.9/site-packages/mockbuild/trace_decorator.py", line 93, in trace -# result = func(*args, **kw) -# File "/usr/lib/python3.9/site-packages/mockbuild/util.py", line 600, in do_with_status -# raise exception.Error("Command failed: \n # %s\n%s" % (command, output), child.returncode) -# mockbuild.exception.Error: Command failed: -#ExcludeArch: s390x - -# Compile fails with "use-after-free", but only this arch!! -#ExcludeArch: armv7hl - Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz Source1: %{github_url}/YukiWorkshop/%{iodash_name}/archive/v%{iodash_version}/%(c=%{iodash_name}; echo ${c,,})-%{iodash_version}.tar.gz Source2: %{github_url}/YukiWorkshop/%{libevdevplus_name}/archive/v%{libevdevplus_version}/%{libevdevplus_name}-%{libevdevplus_version}.tar.gz @@ -136,6 +118,9 @@ scdoc < manpage/%{name}d.8.scd > %{buildroot}/%{_mandir}/man8/%{name}d.8 %{_mandir}/man8/%{name}d.8.* %changelog +* Sun Feb 06 2022 Bob Hepple - 1.0.0-2 +- now builds on all architectures without patches + * Sun Feb 06 2022 Bob Hepple - 1.0.0-1 - new version From c6e225d06924263ce7235aaa8275b366c846a6f6 Mon Sep 17 00:00:00 2001 From: Bob Hepple Date: Thu, 17 Feb 2022 13:00:21 +1000 Subject: [PATCH 13/26] New version 1.0.1 --- .gitignore | 1 + sources | 2 +- ydotool.spec | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 60d99d3..472a111 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ /libuInputPlus-0.2.1.tar.gz /ydotool-0.2.0.tar.gz /ydotool-1.0.0.tar.gz +/ydotool-1.0.1.tar.gz diff --git a/sources b/sources index 1e3a1ad..59c1275 100644 --- a/sources +++ b/sources @@ -3,4 +3,4 @@ SHA512 (cxxopts-2d8e17c4f88efce80e274cb03eeb902e055a91d3.tar.gz) = ff26b941bdbae SHA512 (iodash-0.1.0.tar.gz) = 3ef05b5d909276c2e1be4619d0b075fcf001b5577939234f4952dd43b81f8806089d6e5d20dbe04743e3bd0c586f659709814cd0a4eb6938ebec4f727ff617ac SHA512 (libevdevPlus-0.2.1.tar.gz) = 2cf4725c491631f25263d27d07722e85ddd2c4489426fd3842c75ca84e697765003083262b565d85d232f178684fae52f0f2ca3d5c89a3c0d1655d9f08a8d3d3 SHA512 (libuInputPlus-0.2.1.tar.gz) = aeaa23c4b5631ddc0c9a54507d4cecb38d8b792015aa636d37bab3dbc3fa1229a6a02297d4c7c0d922fa512c3e3a8429b32a2432f06e1ceaeed1a91c857731cd -SHA512 (ydotool-1.0.0.tar.gz) = dda088b34bd6d472f8c71ae93c7849e1edb6820a220a27c3bb545c59030a2594c21f95377266aa14833e05d91568bc0c0c1955387924dfa46ecff0d4711d12c4 +SHA512 (ydotool-1.0.1.tar.gz) = 4a9eede564b0e1cc706b12d75daadae79b9de7ba6a8165928b97fd54969fa874cb1be3e32ad706337808a94630cfbeb2e82a34cbe5682aa7549ce6ae726d744d diff --git a/ydotool.spec b/ydotool.spec index 68a9d75..8763a93 100644 --- a/ydotool.spec +++ b/ydotool.spec @@ -17,8 +17,8 @@ %global debug_package %{nil} Name: ydotool -Version: 1.0.0 -Release: 2%{?dist} +Version: 1.0.1 +Release: 1%{?dist} Summary: Generic command-line automation tool (no X!) License: AGPLv3, Public Domain URL: %github_url/ReimuNotMoe/%{name} @@ -118,6 +118,9 @@ scdoc < manpage/%{name}d.8.scd > %{buildroot}/%{_mandir}/man8/%{name}d.8 %{_mandir}/man8/%{name}d.8.* %changelog +* Thu Feb 17 2022 Bob Hepple - 1.0.1-1 +- new version + * Sun Feb 06 2022 Bob Hepple - 1.0.0-2 - now builds on all architectures without patches From d16465e6dde2500c2fff41b51c53aa1ab4f42978 Mon Sep 17 00:00:00 2001 From: Bob Hepple Date: Mon, 21 Mar 2022 15:03:12 +1000 Subject: [PATCH 14/26] Fix manual for current release --- ydotool-man-page.patch | 194 +++++++++++++++++++++++++++++++++++++++++ ydotool.spec | 9 +- 2 files changed, 202 insertions(+), 1 deletion(-) create mode 100644 ydotool-man-page.patch diff --git a/ydotool-man-page.patch b/ydotool-man-page.patch new file mode 100644 index 0000000..2ea1bd3 --- /dev/null +++ b/ydotool-man-page.patch @@ -0,0 +1,194 @@ +diff -Nur ydotool-1.0.1-orig/manpage/ydotool.1.scd ydotool-1.0.1/manpage/ydotool.1.scd +--- ydotool-1.0.1-orig/manpage/ydotool.1.scd 2022-02-16 19:38:49.000000000 +1000 ++++ ydotool-1.0.1/manpage/ydotool.1.scd 2022-03-21 14:46:37.916103638 +1000 +@@ -1,12 +1,11 @@ + YDOTOOL(1) +- + # NAME + + ydotool - command-line _/dev/uinput_ automation tool + + # SYNOPSIS + +-*ydotool* *cmd* _args_ [ , *cmd* _args_ ... ] ++*ydotool* *cmd* _args_ + + *ydotool* *cmd* --help + +@@ -14,8 +13,6 @@ + + *ydotool* lets you programmatically (or manually) simulate keyboard input and mouse activity, etc. It does this by writing directly to _/dev/uinput_ so it generally needs to run as root. + +-It's possible to chain multiple commands together, separated by a comma between two spaces. +- + Currently implemented command(s): + + *type* +@@ -26,67 +23,37 @@ + Move mouse pointer to absolute position + *click* + Click on mouse buttons +-*recorder* +- Record/replay input events +-*sleep* +- sleep for a while + + # KEYBOARD COMMANDS +-*key* [*--up*] [*--down*] [*--next-delay* __] [*--key-delay* __] [*--repeat* __] [*--repeat-delay *] __ ++*key* [*-d*,*--key-delay* __] [__ ...] + +- Type a given keystroke. Examples being "alt+r", "ctrl+J", +- "ctrl+alt+n", "backspace". ++ Type a given keycode. ++ ++ e.g. 28:1 28:0 means pressing on the Enter button on a standard US keyboard. + +- Options: ++ 42:1 38:1 38:0 24:1 24:0 38:1 38:0 42:0 - "LOL" + +- *--up* +- Only keyup +- +- *--down* +- Only keydown ++ Non-interpretable values, such as 0, aaa, l0l, will only cause a delay. + +- *--delay* __ +- Delay before starting to output keystrokes. Default 100ms. ++ See `/usr/include/linux/input-event-codes.h' for available key codes (KEY_\*). + +- *--key-delay* __ ++ Options: ++ *-d*,*--key-delay* __ + Delay time between keystrokes. Default 12ms. + +- *--repeat* __ +- Times to repeat the key sequence. +- +- *--repeat-delay* __ +- Delay time between repetitions. Default 0ms. +- +- Generally, any valid name from _/usr/include/linux/input-event-codes.h_ will work. Multiple keys are separated by '+'. +- +- Each key sequence can be any number of modifiers and keys, separated by plus (+) +- +- For example: alt+r Alt+F4 CTRL+alt+f3 aLT+1+2+3 ctrl+Backspace +- +- Since we are emulating keyboard input, combinations like Shift+# is invalid because typing a `#' involves pressing Shift and 3. +- +- Example: Switch to tty1: +- ydotool key ctrl+alt+f1 +- +- Example: Close a window in graphical environment: +- ydotool key Alt+F4 +- +-*type* [*--next-delay* __] [*--key-delay* __] [*--texts* _arg_] [*--file* __] "_texts_" ++*type* [*-D*,*--next-delay* __] [*-d*,*--key-delay* __] [*-f*,*--file* __] "_text_" + + Types text as if you had typed it on the keyboard. + + Options: + +- *--next-delay* __ +- Delay before starting typing. Default 100ms. ++ *-d*,*--key-delay* __ ++ Delay time between key events (up/down each). Default 12ms. + +- *--key-delay* __ +- Delay time between keystrokes. Default 12ms. +- +- *--texts* _arg_ +- Texts to type ++ *-D*,*--next-delay* __ ++ Delay between strings. Default 0ms. + +- *--file* __ ++ *-f*,*--file* __ + Specify a file, the contents of which will be typed as if passed as an argument. The filepath may also be '-' to read from stdin. + + Example: to type 'Hello world!' you would do: +@@ -94,8 +61,8 @@ + + # MOUSE COMMANDS + +-*mousemove* _ _ +- Move the mouse to the specific relative X and Y coordinates on the screen. ++*mousemove* [*-a*,*--absolute*] _ _ ++ Move the mouse to the relative X and Y coordinates on the screen. + + Options: + *--absolute* +@@ -104,47 +71,38 @@ + Example: to move the cursor to absolute coordinates (100,100): + ydotool mousemove --absolute 100 100 + +-*click* [*--next-delay* __] _button_ +- Send a click. Buttons are: _left_, _right_ or _middle_ +- +- Options: +- +- *--next-delay* __ +- Delay before click. Default 100ms. +- +- *--up* +- Only mouseup +- +- *--down* +- Only mousedown +- +- *--buttons* __ +- Buttons to press (left, right, middle) +- +- Example: Mouse middle click: +- ydotool click middle +- +-*recorder* [*--record* __] [*--replay* __] [*--display*] [*--duration* __] [*--devices* __] [*--file* __] ++*click* [*-d*,*--next-delay* __] [*-r*,*--repeat* _N_ ] [_button_ ...] ++ Send a click. + + Options: ++ *-d*,*--next-delay* __ ++ Delay between input events (up/down, a compete click means doubled time). Default 25ms. + +- *--record* __ +- Devices to record from. Default is all, including non-keyboard devices. +- +- *--replay* __ +- The record file can't be replayed on an architecture with different endianness. +- +- *--display* +- Display ++ *-r*,*--repeat* _N_ ++ Repeat entire sequence N times + +- *--duration* __ +- Record duration. Otherwise use SIGINT to stop recording. ++ all mouse buttons are represented using hexadecimal numeric values, with an optional ++ bit mask to specify if mouse up/down needs to be omitted. + +- *--devices* __ +- Devices, separated by comma, to record from. Default is all devices (default: "") ++ - 0x00 - LEFT ++ - 0x01 - RIGHT ++ - 0x02 - MIDDLE ++ - 0x03 - SIDE ++ - 0x04 - EXTR ++ - 0x05 - FORWARD ++ - 0x06 - BACK ++ - 0x07 - TASK ++ - 0x40 - Mouse down ++ - 0x80 - Mouse up ++ ++ Examples: ++ ++ - 0x00: chooses left button, but does nothing (you can use this to implement extra sleeps) ++ - 0xC0: left button click (down then up) ++ - 0x41: right button down ++ - 0x82: middle button up + +- *--file* __ +- File to record to / replay from ++ The '0x' prefix can be omitted if you want. + + # AUTHOR + diff --git a/ydotool.spec b/ydotool.spec index 8763a93..cc118e1 100644 --- a/ydotool.spec +++ b/ydotool.spec @@ -18,7 +18,7 @@ Name: ydotool Version: 1.0.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Generic command-line automation tool (no X!) License: AGPLv3, Public Domain URL: %github_url/ReimuNotMoe/%{name} @@ -31,6 +31,8 @@ Source4: %{github_url}/jarro2783/%{cxxopts_name}/archive/%{cxxopts_commit}/%{cx Source5: %{github_url}/TheLartians/%{cpm_cmake_name}/archive/v%{cpm_cmake_version}/%{cpm_cmake_name}-%{cpm_cmake_version}.tar.gz Source6: https://gist.githubusercontent.com/panzi/6856583/raw/1eca2ab34f2301b9641aa73d1016b951fff3fc39/portable_endian.h +Patch1: ydotool-man-page.patch + BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: make @@ -73,6 +75,8 @@ gzip -dc %{S:3} | tar xf - gzip -dc %{S:4} | tar xf - gzip -dc %{S:5} | tar xf - +%patch1 -p1 + # this is missing from IODash - I have logged a bug report upstream # https://github.com/YukiWorkshop/IODash/issues/1 # it is licenced 'public domain': @@ -118,6 +122,9 @@ scdoc < manpage/%{name}d.8.scd > %{buildroot}/%{_mandir}/man8/%{name}d.8 %{_mandir}/man8/%{name}d.8.* %changelog +* Mon Mar 21 2022 Bob Hepple - 1.0.1-2 +- added new manual (also pushed upstream) + * Thu Feb 17 2022 Bob Hepple - 1.0.1-1 - new version From 7032f37bf1cacecbfa9b73a10c3b4ee01f0de490 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 23 Jul 2022 13:44:09 +0000 Subject: [PATCH 15/26] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- ydotool.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ydotool.spec b/ydotool.spec index cc118e1..ef65433 100644 --- a/ydotool.spec +++ b/ydotool.spec @@ -18,7 +18,7 @@ Name: ydotool Version: 1.0.1 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Generic command-line automation tool (no X!) License: AGPLv3, Public Domain URL: %github_url/ReimuNotMoe/%{name} @@ -122,6 +122,9 @@ scdoc < manpage/%{name}d.8.scd > %{buildroot}/%{_mandir}/man8/%{name}d.8 %{_mandir}/man8/%{name}d.8.* %changelog +* Sat Jul 23 2022 Fedora Release Engineering - 1.0.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Mon Mar 21 2022 Bob Hepple - 1.0.1-2 - added new manual (also pushed upstream) From 8c34d9087bb5b889f9edeb51da91117123ebd566 Mon Sep 17 00:00:00 2001 From: Bob Hepple Date: Fri, 13 Jan 2023 10:03:47 +1000 Subject: [PATCH 16/26] new version Signed-off-by: Bob Hepple --- .gitignore | 1 + portable_endian.h | 118 ------------------------- sources | 7 +- ydotool-man-page.patch | 194 ----------------------------------------- ydotool.spec | 69 ++------------- 5 files changed, 11 insertions(+), 378 deletions(-) delete mode 100644 portable_endian.h delete mode 100644 ydotool-man-page.patch diff --git a/.gitignore b/.gitignore index 472a111..e547ceb 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ /ydotool-0.2.0.tar.gz /ydotool-1.0.0.tar.gz /ydotool-1.0.1.tar.gz +/ydotool-1.0.3.tar.gz diff --git a/portable_endian.h b/portable_endian.h deleted file mode 100644 index 99845d0..0000000 --- a/portable_endian.h +++ /dev/null @@ -1,118 +0,0 @@ -// "License": Public Domain -// I, Mathias Panzenböck, place this file hereby into the public domain. Use it at your own risk for whatever you like. -// In case there are jurisdictions that don't support putting things in the public domain you can also consider it to -// be "dual licensed" under the BSD, MIT and Apache licenses, if you want to. This code is trivial anyway. Consider it -// an example on how to get the endian conversion functions on different platforms. - -#ifndef PORTABLE_ENDIAN_H__ -#define PORTABLE_ENDIAN_H__ - -#if (defined(_WIN16) || defined(_WIN32) || defined(_WIN64)) && !defined(__WINDOWS__) - -# define __WINDOWS__ - -#endif - -#if defined(__linux__) || defined(__CYGWIN__) - -# include - -#elif defined(__APPLE__) - -# include - -# define htobe16(x) OSSwapHostToBigInt16(x) -# define htole16(x) OSSwapHostToLittleInt16(x) -# define be16toh(x) OSSwapBigToHostInt16(x) -# define le16toh(x) OSSwapLittleToHostInt16(x) - -# define htobe32(x) OSSwapHostToBigInt32(x) -# define htole32(x) OSSwapHostToLittleInt32(x) -# define be32toh(x) OSSwapBigToHostInt32(x) -# define le32toh(x) OSSwapLittleToHostInt32(x) - -# define htobe64(x) OSSwapHostToBigInt64(x) -# define htole64(x) OSSwapHostToLittleInt64(x) -# define be64toh(x) OSSwapBigToHostInt64(x) -# define le64toh(x) OSSwapLittleToHostInt64(x) - -# define __BYTE_ORDER BYTE_ORDER -# define __BIG_ENDIAN BIG_ENDIAN -# define __LITTLE_ENDIAN LITTLE_ENDIAN -# define __PDP_ENDIAN PDP_ENDIAN - -#elif defined(__OpenBSD__) - -# include - -#elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) - -# include - -# define be16toh(x) betoh16(x) -# define le16toh(x) letoh16(x) - -# define be32toh(x) betoh32(x) -# define le32toh(x) letoh32(x) - -# define be64toh(x) betoh64(x) -# define le64toh(x) letoh64(x) - -#elif defined(__WINDOWS__) - -# include -# include - -# if BYTE_ORDER == LITTLE_ENDIAN - -# define htobe16(x) htons(x) -# define htole16(x) (x) -# define be16toh(x) ntohs(x) -# define le16toh(x) (x) - -# define htobe32(x) htonl(x) -# define htole32(x) (x) -# define be32toh(x) ntohl(x) -# define le32toh(x) (x) - -# define htobe64(x) htonll(x) -# define htole64(x) (x) -# define be64toh(x) ntohll(x) -# define le64toh(x) (x) - -# elif BYTE_ORDER == BIG_ENDIAN - - /* that would be xbox 360 */ -# define htobe16(x) (x) -# define htole16(x) __builtin_bswap16(x) -# define be16toh(x) (x) -# define le16toh(x) __builtin_bswap16(x) - -# define htobe32(x) (x) -# define htole32(x) __builtin_bswap32(x) -# define be32toh(x) (x) -# define le32toh(x) __builtin_bswap32(x) - -# define htobe64(x) (x) -# define htole64(x) __builtin_bswap64(x) -# define be64toh(x) (x) -# define le64toh(x) __builtin_bswap64(x) - -# else - -# error byte order not supported - -# endif - -# define __BYTE_ORDER BYTE_ORDER -# define __BIG_ENDIAN BIG_ENDIAN -# define __LITTLE_ENDIAN LITTLE_ENDIAN -# define __PDP_ENDIAN PDP_ENDIAN - -#else - -# error platform not supported - -#endif - -#endif \ No newline at end of file diff --git a/sources b/sources index 59c1275..d71a3cd 100644 --- a/sources +++ b/sources @@ -1,6 +1 @@ -SHA512 (cpm.cmake-0.27.5.tar.gz) = ef3a8dac77c189f0e612acc714e27464a075b86ba3454fe3410ab043a221d0a11ccd4654b9b1d3f4b33fc7a0f0fd64a1e30322a0552e3fc13528e33b82f1b350 -SHA512 (cxxopts-2d8e17c4f88efce80e274cb03eeb902e055a91d3.tar.gz) = ff26b941bdbae999b0d476f62d4a3c0c66aee2f1dac7bd4c1e05380532fbf93b462a2355d809a89eddb2d52aa8a6c7c31625a7fa442deca494e3358fa95ea009 -SHA512 (iodash-0.1.0.tar.gz) = 3ef05b5d909276c2e1be4619d0b075fcf001b5577939234f4952dd43b81f8806089d6e5d20dbe04743e3bd0c586f659709814cd0a4eb6938ebec4f727ff617ac -SHA512 (libevdevPlus-0.2.1.tar.gz) = 2cf4725c491631f25263d27d07722e85ddd2c4489426fd3842c75ca84e697765003083262b565d85d232f178684fae52f0f2ca3d5c89a3c0d1655d9f08a8d3d3 -SHA512 (libuInputPlus-0.2.1.tar.gz) = aeaa23c4b5631ddc0c9a54507d4cecb38d8b792015aa636d37bab3dbc3fa1229a6a02297d4c7c0d922fa512c3e3a8429b32a2432f06e1ceaeed1a91c857731cd -SHA512 (ydotool-1.0.1.tar.gz) = 4a9eede564b0e1cc706b12d75daadae79b9de7ba6a8165928b97fd54969fa874cb1be3e32ad706337808a94630cfbeb2e82a34cbe5682aa7549ce6ae726d744d +SHA512 (ydotool-1.0.3.tar.gz) = 41fe8c34f89692236b52cf50629597678fc86e28afa9570920b991af50bb454eb73b15571e5153a09cf02a9a5221e3c4029673e104b3686d58c64a1ba60576fc diff --git a/ydotool-man-page.patch b/ydotool-man-page.patch deleted file mode 100644 index 2ea1bd3..0000000 --- a/ydotool-man-page.patch +++ /dev/null @@ -1,194 +0,0 @@ -diff -Nur ydotool-1.0.1-orig/manpage/ydotool.1.scd ydotool-1.0.1/manpage/ydotool.1.scd ---- ydotool-1.0.1-orig/manpage/ydotool.1.scd 2022-02-16 19:38:49.000000000 +1000 -+++ ydotool-1.0.1/manpage/ydotool.1.scd 2022-03-21 14:46:37.916103638 +1000 -@@ -1,12 +1,11 @@ - YDOTOOL(1) -- - # NAME - - ydotool - command-line _/dev/uinput_ automation tool - - # SYNOPSIS - --*ydotool* *cmd* _args_ [ , *cmd* _args_ ... ] -+*ydotool* *cmd* _args_ - - *ydotool* *cmd* --help - -@@ -14,8 +13,6 @@ - - *ydotool* lets you programmatically (or manually) simulate keyboard input and mouse activity, etc. It does this by writing directly to _/dev/uinput_ so it generally needs to run as root. - --It's possible to chain multiple commands together, separated by a comma between two spaces. -- - Currently implemented command(s): - - *type* -@@ -26,67 +23,37 @@ - Move mouse pointer to absolute position - *click* - Click on mouse buttons --*recorder* -- Record/replay input events --*sleep* -- sleep for a while - - # KEYBOARD COMMANDS --*key* [*--up*] [*--down*] [*--next-delay* __] [*--key-delay* __] [*--repeat* __] [*--repeat-delay *] __ -+*key* [*-d*,*--key-delay* __] [__ ...] - -- Type a given keystroke. Examples being "alt+r", "ctrl+J", -- "ctrl+alt+n", "backspace". -+ Type a given keycode. -+ -+ e.g. 28:1 28:0 means pressing on the Enter button on a standard US keyboard. - -- Options: -+ 42:1 38:1 38:0 24:1 24:0 38:1 38:0 42:0 - "LOL" - -- *--up* -- Only keyup -- -- *--down* -- Only keydown -+ Non-interpretable values, such as 0, aaa, l0l, will only cause a delay. - -- *--delay* __ -- Delay before starting to output keystrokes. Default 100ms. -+ See `/usr/include/linux/input-event-codes.h' for available key codes (KEY_\*). - -- *--key-delay* __ -+ Options: -+ *-d*,*--key-delay* __ - Delay time between keystrokes. Default 12ms. - -- *--repeat* __ -- Times to repeat the key sequence. -- -- *--repeat-delay* __ -- Delay time between repetitions. Default 0ms. -- -- Generally, any valid name from _/usr/include/linux/input-event-codes.h_ will work. Multiple keys are separated by '+'. -- -- Each key sequence can be any number of modifiers and keys, separated by plus (+) -- -- For example: alt+r Alt+F4 CTRL+alt+f3 aLT+1+2+3 ctrl+Backspace -- -- Since we are emulating keyboard input, combinations like Shift+# is invalid because typing a `#' involves pressing Shift and 3. -- -- Example: Switch to tty1: -- ydotool key ctrl+alt+f1 -- -- Example: Close a window in graphical environment: -- ydotool key Alt+F4 -- --*type* [*--next-delay* __] [*--key-delay* __] [*--texts* _arg_] [*--file* __] "_texts_" -+*type* [*-D*,*--next-delay* __] [*-d*,*--key-delay* __] [*-f*,*--file* __] "_text_" - - Types text as if you had typed it on the keyboard. - - Options: - -- *--next-delay* __ -- Delay before starting typing. Default 100ms. -+ *-d*,*--key-delay* __ -+ Delay time between key events (up/down each). Default 12ms. - -- *--key-delay* __ -- Delay time between keystrokes. Default 12ms. -- -- *--texts* _arg_ -- Texts to type -+ *-D*,*--next-delay* __ -+ Delay between strings. Default 0ms. - -- *--file* __ -+ *-f*,*--file* __ - Specify a file, the contents of which will be typed as if passed as an argument. The filepath may also be '-' to read from stdin. - - Example: to type 'Hello world!' you would do: -@@ -94,8 +61,8 @@ - - # MOUSE COMMANDS - --*mousemove* _ _ -- Move the mouse to the specific relative X and Y coordinates on the screen. -+*mousemove* [*-a*,*--absolute*] _ _ -+ Move the mouse to the relative X and Y coordinates on the screen. - - Options: - *--absolute* -@@ -104,47 +71,38 @@ - Example: to move the cursor to absolute coordinates (100,100): - ydotool mousemove --absolute 100 100 - --*click* [*--next-delay* __] _button_ -- Send a click. Buttons are: _left_, _right_ or _middle_ -- -- Options: -- -- *--next-delay* __ -- Delay before click. Default 100ms. -- -- *--up* -- Only mouseup -- -- *--down* -- Only mousedown -- -- *--buttons* __ -- Buttons to press (left, right, middle) -- -- Example: Mouse middle click: -- ydotool click middle -- --*recorder* [*--record* __] [*--replay* __] [*--display*] [*--duration* __] [*--devices* __] [*--file* __] -+*click* [*-d*,*--next-delay* __] [*-r*,*--repeat* _N_ ] [_button_ ...] -+ Send a click. - - Options: -+ *-d*,*--next-delay* __ -+ Delay between input events (up/down, a compete click means doubled time). Default 25ms. - -- *--record* __ -- Devices to record from. Default is all, including non-keyboard devices. -- -- *--replay* __ -- The record file can't be replayed on an architecture with different endianness. -- -- *--display* -- Display -+ *-r*,*--repeat* _N_ -+ Repeat entire sequence N times - -- *--duration* __ -- Record duration. Otherwise use SIGINT to stop recording. -+ all mouse buttons are represented using hexadecimal numeric values, with an optional -+ bit mask to specify if mouse up/down needs to be omitted. - -- *--devices* __ -- Devices, separated by comma, to record from. Default is all devices (default: "") -+ - 0x00 - LEFT -+ - 0x01 - RIGHT -+ - 0x02 - MIDDLE -+ - 0x03 - SIDE -+ - 0x04 - EXTR -+ - 0x05 - FORWARD -+ - 0x06 - BACK -+ - 0x07 - TASK -+ - 0x40 - Mouse down -+ - 0x80 - Mouse up -+ -+ Examples: -+ -+ - 0x00: chooses left button, but does nothing (you can use this to implement extra sleeps) -+ - 0xC0: left button click (down then up) -+ - 0x41: right button down -+ - 0x82: middle button up - -- *--file* __ -- File to record to / replay from -+ The '0x' prefix can be omitted if you want. - - # AUTHOR - diff --git a/ydotool.spec b/ydotool.spec index ef65433..0da2a07 100644 --- a/ydotool.spec +++ b/ydotool.spec @@ -2,39 +2,19 @@ %undefine __cmake_in_source_build -%global github_url https://github.com -%global iodash_name IODash -%global iodash_version 0.1.0 -%global libevdevplus_name libevdevPlus -%global libevdevplus_version 0.2.1 -%global libuinputplus_name libuInputPlus -%global libuinputplus_version 0.2.1 -%global cxxopts_name cxxopts -%global cxxopts_version 3.0.0 -%global cxxopts_commit 2d8e17c4f88efce80e274cb03eeb902e055a91d3 -%global cpm_cmake_name cpm.cmake -%global cpm_cmake_version 0.27.5 %global debug_package %{nil} Name: ydotool -Version: 1.0.1 -Release: 3%{?dist} +Version: 1.0.3 +Release: 1%{?dist} Summary: Generic command-line automation tool (no X!) -License: AGPLv3, Public Domain -URL: %github_url/ReimuNotMoe/%{name} +License: AGPLv3 +URL: https://github.com/ReimuNotMoe/%{name} Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz -Source1: %{github_url}/YukiWorkshop/%{iodash_name}/archive/v%{iodash_version}/%(c=%{iodash_name}; echo ${c,,})-%{iodash_version}.tar.gz -Source2: %{github_url}/YukiWorkshop/%{libevdevplus_name}/archive/v%{libevdevplus_version}/%{libevdevplus_name}-%{libevdevplus_version}.tar.gz -Source3: %{github_url}/YukiWorkshop/%{libuinputplus_name}/archive/v%{libuinputplus_version}/%{libuinputplus_name}-%{libuinputplus_version}.tar.gz -Source4: %{github_url}/jarro2783/%{cxxopts_name}/archive/%{cxxopts_commit}/%{cxxopts_name}-%{cxxopts_commit}.tar.gz -Source5: %{github_url}/TheLartians/%{cpm_cmake_name}/archive/v%{cpm_cmake_version}/%{cpm_cmake_name}-%{cpm_cmake_version}.tar.gz -Source6: https://gist.githubusercontent.com/panzi/6856583/raw/1eca2ab34f2301b9641aa73d1016b951fff3fc39/portable_endian.h - -Patch1: ydotool-man-page.patch BuildRequires: cmake -BuildRequires: gcc-c++ +BuildRequires: gcc BuildRequires: make BuildRequires: scdoc BuildRequires: systemd-rpm-macros @@ -44,24 +24,6 @@ BuildRequires: systemd-rpm-macros Performs some of the functions of xdotool(1) without requiring X11 - however, it generally requires root permission (to open /dev/uinput) -NOTE: changes in this release: -NOTE: --delay option is now --next-delay -NOTE: mousemove is now relative unless --absolute is given -NOTE: mouseup, mousedown, mousemove_relative is removed -NOTE: click accepts left, right, middle instead of 1, 2, 3 -NOTE: sleep is a new command - -SEE: ydotool --help for latest info - -Currently implemented command(s): - -- type - Type a string -- key - Press keys -- mousemove - Move mouse pointer to absolute position -- click - Click on mouse buttons -- recorder - Record/replay input events -- sleep - sleep ms - N.B. it is strongly recommended to start the ydotoold daemon with: - systemctl enable ydotool @@ -69,25 +31,9 @@ N.B. it is strongly recommended to start the ydotoold daemon with: %prep %setup -q -gzip -dc %{S:1} | tar xf - -gzip -dc %{S:2} | tar xf - -gzip -dc %{S:3} | tar xf - -gzip -dc %{S:4} | tar xf - -gzip -dc %{S:5} | tar xf - - -%patch1 -p1 - -# this is missing from IODash - I have logged a bug report upstream -# https://github.com/YukiWorkshop/IODash/issues/1 -# it is licenced 'public domain': -cp %{S:6} %{iodash_name}-%{iodash_version}/portable-endian.h %build -%cmake -DBUILD_SHARED_LIBS:BOOL=OFF \ --DCPM_%{iodash_name}_SOURCE=$PWD/%{iodash_name}-%{iodash_version} \ --DCPM_%{libevdevplus_name}_SOURCE=$PWD/%{libevdevplus_name}-%{libevdevplus_version} \ --DCPM_%{libuinputplus_name}_SOURCE=$PWD/%{libuinputplus_name}-%{libuinputplus_version} \ --DCPM_%{cxxopts_name}_SOURCE=$PWD/%{cxxopts_name}-%{cxxopts_commit} +%cmake -DBUILD_SHARED_LIBS:BOOL=OFF make -C %{_vpath_builddir} -j `nproc` @@ -122,6 +68,9 @@ scdoc < manpage/%{name}d.8.scd > %{buildroot}/%{_mandir}/man8/%{name}d.8 %{_mandir}/man8/%{name}d.8.* %changelog +* Thu Jan 12 2023 Bob Hepple - 1.0.3-1 +- new version + * Sat Jul 23 2022 Fedora Release Engineering - 1.0.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild From 35c5e383472619baf6a415b1571d7615d4e7fe12 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 21 Jan 2023 08:04:21 +0000 Subject: [PATCH 17/26] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- ydotool.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ydotool.spec b/ydotool.spec index 0da2a07..8e29413 100644 --- a/ydotool.spec +++ b/ydotool.spec @@ -6,7 +6,7 @@ Name: ydotool Version: 1.0.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Generic command-line automation tool (no X!) License: AGPLv3 URL: https://github.com/ReimuNotMoe/%{name} @@ -68,6 +68,9 @@ scdoc < manpage/%{name}d.8.scd > %{buildroot}/%{_mandir}/man8/%{name}d.8 %{_mandir}/man8/%{name}d.8.* %changelog +* Sat Jan 21 2023 Fedora Release Engineering - 1.0.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + * Thu Jan 12 2023 Bob Hepple - 1.0.3-1 - new version From 2c3948974636cdebe06303a25395755cf6d00bc1 Mon Sep 17 00:00:00 2001 From: Bob Hepple Date: Tue, 31 Jan 2023 17:01:51 +1000 Subject: [PATCH 18/26] New version Signed-off-by: Bob Hepple --- .gitignore | 1 + sources | 2 +- ydotool.spec | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index e547ceb..6d138a0 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ /ydotool-1.0.0.tar.gz /ydotool-1.0.1.tar.gz /ydotool-1.0.3.tar.gz +/ydotool-1.0.4.tar.gz diff --git a/sources b/sources index d71a3cd..a96e355 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (ydotool-1.0.3.tar.gz) = 41fe8c34f89692236b52cf50629597678fc86e28afa9570920b991af50bb454eb73b15571e5153a09cf02a9a5221e3c4029673e104b3686d58c64a1ba60576fc +SHA512 (ydotool-1.0.4.tar.gz) = bbf66d752aa1dce9173c930e3a71bc277b330763b1aa0e38f9fec1976c282c64330251ba5abe222a991f4bcafbabf1312a940eb4b40a34bf99f628c2a41bc4a2 diff --git a/ydotool.spec b/ydotool.spec index 8e29413..81ea7b9 100644 --- a/ydotool.spec +++ b/ydotool.spec @@ -5,8 +5,8 @@ %global debug_package %{nil} Name: ydotool -Version: 1.0.3 -Release: 2%{?dist} +Version: 1.0.4 +Release: 1%{?dist} Summary: Generic command-line automation tool (no X!) License: AGPLv3 URL: https://github.com/ReimuNotMoe/%{name} @@ -68,6 +68,9 @@ scdoc < manpage/%{name}d.8.scd > %{buildroot}/%{_mandir}/man8/%{name}d.8 %{_mandir}/man8/%{name}d.8.* %changelog +* Tue Jan 31 2023 Bob Hepple - 1.0.4-1 +- new version + * Sat Jan 21 2023 Fedora Release Engineering - 1.0.3-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild From df24a6180e462f900a0a19b69d78d0db80398115 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 22 Jul 2023 19:29:45 +0000 Subject: [PATCH 19/26] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- ydotool.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ydotool.spec b/ydotool.spec index 81ea7b9..c7b22f0 100644 --- a/ydotool.spec +++ b/ydotool.spec @@ -6,7 +6,7 @@ Name: ydotool Version: 1.0.4 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Generic command-line automation tool (no X!) License: AGPLv3 URL: https://github.com/ReimuNotMoe/%{name} @@ -68,6 +68,9 @@ scdoc < manpage/%{name}d.8.scd > %{buildroot}/%{_mandir}/man8/%{name}d.8 %{_mandir}/man8/%{name}d.8.* %changelog +* Sat Jul 22 2023 Fedora Release Engineering - 1.0.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Tue Jan 31 2023 Bob Hepple - 1.0.4-1 - new version From 793eaf3f6558e755debed5cee668db42c28e7d6e Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 27 Jan 2024 10:45:20 +0000 Subject: [PATCH 20/26] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- ydotool.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ydotool.spec b/ydotool.spec index c7b22f0..9999f35 100644 --- a/ydotool.spec +++ b/ydotool.spec @@ -6,7 +6,7 @@ Name: ydotool Version: 1.0.4 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Generic command-line automation tool (no X!) License: AGPLv3 URL: https://github.com/ReimuNotMoe/%{name} @@ -68,6 +68,9 @@ scdoc < manpage/%{name}d.8.scd > %{buildroot}/%{_mandir}/man8/%{name}d.8 %{_mandir}/man8/%{name}d.8.* %changelog +* Sat Jan 27 2024 Fedora Release Engineering - 1.0.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Sat Jul 22 2023 Fedora Release Engineering - 1.0.4-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild From 5038c22238a2bbd1331dbd1a2b376f673f01cd0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Such=C3=BD?= Date: Wed, 17 Jul 2024 13:55:04 +0200 Subject: [PATCH 21/26] convert AGPLv3 license to SPDX This is part of https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_4 --- ydotool.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ydotool.spec b/ydotool.spec index 9999f35..63f2aae 100644 --- a/ydotool.spec +++ b/ydotool.spec @@ -6,9 +6,10 @@ Name: ydotool Version: 1.0.4 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Generic command-line automation tool (no X!) -License: AGPLv3 +# Automatically converted from old format: AGPLv3 +License: AGPL-3.0-only URL: https://github.com/ReimuNotMoe/%{name} Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz @@ -68,6 +69,9 @@ scdoc < manpage/%{name}d.8.scd > %{buildroot}/%{_mandir}/man8/%{name}d.8 %{_mandir}/man8/%{name}d.8.* %changelog +* Wed Jul 17 2024 Miroslav Suchý - 1.0.4-4 +- convert license to SPDX + * Sat Jan 27 2024 Fedora Release Engineering - 1.0.4-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 36022a907c6cd17ae82a53a50c256cc854092ede Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 20 Jul 2024 10:40:57 +0000 Subject: [PATCH 22/26] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- ydotool.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ydotool.spec b/ydotool.spec index 63f2aae..6ec1a11 100644 --- a/ydotool.spec +++ b/ydotool.spec @@ -6,7 +6,7 @@ Name: ydotool Version: 1.0.4 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Generic command-line automation tool (no X!) # Automatically converted from old format: AGPLv3 License: AGPL-3.0-only @@ -69,6 +69,9 @@ scdoc < manpage/%{name}d.8.scd > %{buildroot}/%{_mandir}/man8/%{name}d.8 %{_mandir}/man8/%{name}d.8.* %changelog +* Sat Jul 20 2024 Fedora Release Engineering - 1.0.4-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Wed Jul 17 2024 Miroslav Suchý - 1.0.4-4 - convert license to SPDX From 592a34e4490d67f432f041a519203b523d8f188c Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sun, 19 Jan 2025 16:32:47 +0000 Subject: [PATCH 23/26] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- ydotool.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ydotool.spec b/ydotool.spec index 6ec1a11..42318be 100644 --- a/ydotool.spec +++ b/ydotool.spec @@ -6,7 +6,7 @@ Name: ydotool Version: 1.0.4 -Release: 5%{?dist} +Release: 6%{?dist} Summary: Generic command-line automation tool (no X!) # Automatically converted from old format: AGPLv3 License: AGPL-3.0-only @@ -69,6 +69,9 @@ scdoc < manpage/%{name}d.8.scd > %{buildroot}/%{_mandir}/man8/%{name}d.8 %{_mandir}/man8/%{name}d.8.* %changelog +* Sun Jan 19 2025 Fedora Release Engineering - 1.0.4-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Sat Jul 20 2024 Fedora Release Engineering - 1.0.4-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From 7fc1c4ae1a1dc89cdfd1dbd08fad1f929d58ea02 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 25 Jul 2025 21:11:45 +0000 Subject: [PATCH 24/26] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- ydotool.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ydotool.spec b/ydotool.spec index 42318be..c1a9dd6 100644 --- a/ydotool.spec +++ b/ydotool.spec @@ -6,7 +6,7 @@ Name: ydotool Version: 1.0.4 -Release: 6%{?dist} +Release: 7%{?dist} Summary: Generic command-line automation tool (no X!) # Automatically converted from old format: AGPLv3 License: AGPL-3.0-only @@ -69,6 +69,9 @@ scdoc < manpage/%{name}d.8.scd > %{buildroot}/%{_mandir}/man8/%{name}d.8 %{_mandir}/man8/%{name}d.8.* %changelog +* Fri Jul 25 2025 Fedora Release Engineering - 1.0.4-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Sun Jan 19 2025 Fedora Release Engineering - 1.0.4-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From 60b33be9f925e9372de9ff2699adfe49e951266a Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 17 Jan 2026 21:01:39 +0000 Subject: [PATCH 25/26] Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild --- ydotool.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ydotool.spec b/ydotool.spec index c1a9dd6..010ab53 100644 --- a/ydotool.spec +++ b/ydotool.spec @@ -6,7 +6,7 @@ Name: ydotool Version: 1.0.4 -Release: 7%{?dist} +Release: 8%{?dist} Summary: Generic command-line automation tool (no X!) # Automatically converted from old format: AGPLv3 License: AGPL-3.0-only @@ -69,6 +69,9 @@ scdoc < manpage/%{name}d.8.scd > %{buildroot}/%{_mandir}/man8/%{name}d.8 %{_mandir}/man8/%{name}d.8.* %changelog +* Sat Jan 17 2026 Fedora Release Engineering - 1.0.4-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + * Fri Jul 25 2025 Fedora Release Engineering - 1.0.4-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From b1be0070d91055525dd8bed48161ddcb90c1b847 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 17 Jul 2026 09:34:04 +0000 Subject: [PATCH 26/26] Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild --- ydotool.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ydotool.spec b/ydotool.spec index 010ab53..f830497 100644 --- a/ydotool.spec +++ b/ydotool.spec @@ -6,7 +6,7 @@ Name: ydotool Version: 1.0.4 -Release: 8%{?dist} +Release: 9%{?dist} Summary: Generic command-line automation tool (no X!) # Automatically converted from old format: AGPLv3 License: AGPL-3.0-only @@ -69,6 +69,9 @@ scdoc < manpage/%{name}d.8.scd > %{buildroot}/%{_mandir}/man8/%{name}d.8 %{_mandir}/man8/%{name}d.8.* %changelog +* Fri Jul 17 2026 Fedora Release Engineering - 1.0.4-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild + * Sat Jan 17 2026 Fedora Release Engineering - 1.0.4-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild