commit 2045f87465703f68dbd6704342a1962b0a24ad2a
Author: Jan Palus <[email protected]>
Date:   Fri Feb 19 23:05:39 2021 +0100

    upstream patch for clipboard support under wayland; rel 2

 password-store.spec |   4 +-
 wayland.patch       | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 113 insertions(+), 1 deletion(-)
---
diff --git a/password-store.spec b/password-store.spec
index cd4549b..3c9a20a 100644
--- a/password-store.spec
+++ b/password-store.spec
@@ -1,12 +1,13 @@
 Summary:       Simple password store
 Name:          password-store
 Version:       1.7.3
-Release:       1
+Release:       2
 License:       GPL v2+
 Group:         Applications
 Source0:       
https://git.zx2c4.com/password-store/snapshot/%{name}-%{version}.tar.xz
 # Source0-md5: db2d49af9e666cc5ef6aa1c61ae5c045
 Patch0:                bashcomp-noleak.patch
+Patch1:                wayland.patch
 URL:           https://www.passwordstore.org/
 BuildRequires: rpmbuild(macros) >= 1.720
 BuildRequires: tar >= 1:1.22
@@ -71,6 +72,7 @@ password-store.
 %prep
 %setup -q
 %patch0 -p1
+%patch1 -p1
 
 rm contrib/emacs/.gitignore
 
diff --git a/wayland.patch b/wayland.patch
new file mode 100644
index 0000000..5d7a4b1
--- /dev/null
+++ b/wayland.patch
@@ -0,0 +1,110 @@
+From b0b784b1a57c0b06936e6f5d6560712b4b810cd3 Mon Sep 17 00:00:00 2001
+From: Brett Cornwall <[email protected]>
+Date: Wed, 27 Feb 2019 00:08:33 -0700
+Subject: clip: Add support for wl-clipboard
+
+---
+ README                |  4 +++-
+ man/pass.1            |  5 +++++
+ src/password-store.sh | 26 +++++++++++++++++++++-----
+ 3 files changed, 29 insertions(+), 6 deletions(-)
+
+diff --git a/README b/README
+index 6b59965..1a46242 100644
+--- a/README
++++ b/README
+@@ -19,8 +19,10 @@ Depends on:
+   http://www.gnupg.org/
+ - git
+   http://www.git-scm.com/
+-- xclip
++- xclip (for X11 environments)
+   http://sourceforge.net/projects/xclip/
++- wl-clipboard (for wlroots Wayland-based environments)
++  https://github.com/bugaevc/wl-clipboard
+ - tree >= 1.7.0
+   http://mama.indstate.edu/users/ice/tree/
+ - GNU getopt
+diff --git a/man/pass.1 b/man/pass.1
+index 01a3fbe..a555dcb 100644
+--- a/man/pass.1
++++ b/man/pass.1
+@@ -99,6 +99,8 @@ Decrypt and print a password named \fIpass-name\fP. If 
\fI--clip\fP or \fI-c\fP
+ is specified, do not print the password but instead copy the first (or 
otherwise specified)
+ line to the clipboard using
+ .BR xclip (1)
++or
++.BR wl-clipboard(1)
+ and then restore the clipboard after 45 (or \fIPASSWORD_STORE_CLIP_TIME\fP) 
seconds. If \fI--qrcode\fP
+ or \fI-q\fP is specified, do not print the password but instead display a QR 
code using
+ .BR qrencode (1)
+@@ -132,6 +134,8 @@ in generating passwords can be changed with the 
\fIPASSWORD_STORE_CHARACTER_SET\
+ If \fI--clip\fP or \fI-c\fP is specified, do not print the password but 
instead copy
+ it to the clipboard using
+ .BR xclip (1)
++or
++.BR wl-clipboard(1)
+ and then restore the clipboard after 45 (or \fIPASSWORD_STORE_CLIP_TIME\fP) 
seconds. If \fI--qrcode\fP
+ or \fI-q\fP is specified, do not print the password but instead display a QR 
code using
+ .BR qrencode (1)
+@@ -466,6 +470,7 @@ The location of the text editor used by \fBedit\fP.
+ .BR tr (1),
+ .BR git (1),
+ .BR xclip (1),
++.BR wl-clipboard (1),
+ .BR qrencode (1).
+ 
+ .SH AUTHOR
+diff --git a/src/password-store.sh b/src/password-store.sh
+index d89d455..284eabf 100755
+--- a/src/password-store.sh
++++ b/src/password-store.sh
+@@ -152,16 +152,32 @@ check_sneaky_paths() {
+ #
+ 
+ clip() {
++      if [[ -n $WAYLAND_DISPLAY ]]; then
++              local copy_cmd=( wl-copy )
++              local paste_cmd=( wl-paste -n )
++              if [[ $X_SELECTION == primary ]]; then
++                      copy_cmd+=( --primary )
++                      paste_cmd+=( --primary )
++              fi
++              local display_name="$WAYLAND_DISPLAY"
++      elif [[ -n $DISPLAY ]]; then
++              local copy_cmd=( xclip -selection "$X_SELECTION" )
++              local paste_cmd=( xclip -o -selection "$X_SELECTION" )
++              local display_name="$DISPLAY"
++      else
++              die "Error: No X11 or Wayland display detected"
++      fi
++      local sleep_argv0="password store sleep on display $display_name"
++
+       # This base64 business is because bash cannot store binary data in a 
shell
+       # variable. Specifically, it cannot store nulls nor (non-trivally) store
+       # trailing new lines.
+-      local sleep_argv0="password store sleep on display $DISPLAY"
+       pkill -f "^$sleep_argv0" 2>/dev/null && sleep 0.5
+-      local before="$(xclip -o -selection "$X_SELECTION" 2>/dev/null | 
$BASE64)"
+-      echo -n "$1" | xclip -selection "$X_SELECTION" || die "Error: Could not 
copy data to the clipboard"
++      local before="$("${paste_cmd[@]}" 2>/dev/null | $BASE64)"
++      echo -n "$1" | "${copy_cmd[@]}" || die "Error: Could not copy data to 
the clipboard"
+       (
+               ( exec -a "$sleep_argv0" bash <<<"trap 'kill %1' TERM; sleep 
'$CLIP_TIME' & wait" )
+-              local now="$(xclip -o -selection "$X_SELECTION" | $BASE64)"
++              local now="$("${paste_cmd[@]}" | $BASE64)"
+               [[ $now != $(echo -n "$1" | $BASE64) ]] && before="$now"
+ 
+               # It might be nice to programatically check to see if klipper 
exists,
+@@ -173,7 +189,7 @@ clip() {
+               # so we axe it here:
+               qdbus org.kde.klipper /klipper 
org.kde.klipper.klipper.clearClipboardHistory &>/dev/null
+ 
+-              echo "$before" | $BASE64 -d | xclip -selection "$X_SELECTION"
++              echo "$before" | $BASE64 -d | "${copy_cmd[@]}"
+       ) >/dev/null 2>&1 & disown
+       echo "Copied $2 to clipboard. Will clear in $CLIP_TIME seconds."
+ }
+-- 
+cgit v1.2.3-11-g984f
+
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/password-store.git/commitdiff/2045f87465703f68dbd6704342a1962b0a24ad2a

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to