Github messages for voidlinux
 help / color / mirror / Atom feed
From: voidlinux-github@inbox.vuxu.org
To: ml@inbox.vuxu.org
Subject: [PR PATCH] pass: support wayland wl-clipboard
Date: Tue, 15 Oct 2019 12:53:22 +0200	[thread overview]
Message-ID: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-15483@inbox.vuxu.org> (raw)

[-- Attachment #1: Type: text/plain, Size: 414 bytes --]

There is a new pull request by zdtcd against master on the void-packages repository

https://github.com/zdtcd/void-packages pass
https://github.com/void-linux/void-packages/pull/15483

pass: support wayland wl-clipboard
I could only test with Xorg, the support for wl-clipboard couldn't be tested since I don't use wayland

A patch file from https://github.com/void-linux/void-packages/pull/15483.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-pass-15483.patch --]
[-- Type: text/x-diff, Size: 6098 bytes --]

From bcf0dec201a506e24b1ede22ee0d76cec2f06870 Mon Sep 17 00:00:00 2001
From: Doan Tran Cong Danh <congdanhqx@gmail.com>
Date: Tue, 15 Oct 2019 17:43:17 +0700
Subject: [PATCH] pass: support wayland wl-clipboard

---
 ...01-clip-Add-support-for-wl-clipboard.patch | 110 ++++++++++++++++++
 srcpkgs/pass/template                         |   7 +-
 2 files changed, 114 insertions(+), 3 deletions(-)
 create mode 100644 srcpkgs/pass/patches/0001-clip-Add-support-for-wl-clipboard.patch

diff --git a/srcpkgs/pass/patches/0001-clip-Add-support-for-wl-clipboard.patch b/srcpkgs/pass/patches/0001-clip-Add-support-for-wl-clipboard.patch
new file mode 100644
index 00000000000..511621aca7e
--- /dev/null
+++ b/srcpkgs/pass/patches/0001-clip-Add-support-for-wl-clipboard.patch
@@ -0,0 +1,110 @@
+From b0b784b1a57c0b06936e6f5d6560712b4b810cd3 Mon Sep 17 00:00:00 2001
+From: Brett Cornwall <brett@i--b.com>
+Date: Wed, 27 Feb 2019 00:08:33 -0700
+Subject: [PATCH] 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."
+ }
+-- 
+2.23.0
+
diff --git a/srcpkgs/pass/template b/srcpkgs/pass/template
index fa2ee0f4a24..e2509adff91 100644
--- a/srcpkgs/pass/template
+++ b/srcpkgs/pass/template
@@ -1,11 +1,12 @@
 # Template file for 'pass'
 pkgname=pass
 version=1.7.3
-revision=1
+revision=2
 archs=noarch
 wrksrc="password-store-${version}"
 build_style=gnu-makefile
 make_install_args="WITH_BASHCOMP=yes WITH_ZSHCOMP=yes WITH_FISHCOMP=yes"
+make_check_target=test
 depends="bash gnupg2 tree xclip"
 checkdepends="${depends} git"
 short_desc="Stores, retrieves, generates, and synchronizes passwords securely"
@@ -14,10 +15,10 @@ license="GPL-2.0-or-later"
 homepage="http://www.passwordstore.org/"
 distfiles="http://git.zx2c4.com/password-store/snapshot/password-store-${version}.tar.xz"
 checksum=2b6c65846ebace9a15a118503dcd31b6440949a30d3b5291dfb5b1615b99a3f4
-make_check_target=test
+patch_args=-Np1
 
 passmenu_package() {
-	short_desc="A dmenu-based interface to pass"
+	short_desc="'dmenu'-based interface to pass"
 	depends="dmenu xdotool ${sourcepkg}>=${version}_${revision}"
 	pkg_install() {
 		vbin contrib/dmenu/passmenu

             reply	other threads:[~2019-10-15 10:53 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-15 10:53 voidlinux-github [this message]
2019-10-15 10:58 ` voidlinux-github
2019-10-15 11:17 ` [PR PATCH] [Updated] " voidlinux-github
2019-10-15 11:17 ` voidlinux-github

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-15483@inbox.vuxu.org \
    --to=voidlinux-github@inbox.vuxu.org \
    --cc=ml@inbox.vuxu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).