FreeBSD Bugzilla – Attachment 216701 Details for
Bug 248204
sysutils/password-store: Implement Wayland clipboard integration from upstream
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
diff
password-store.diff (text/plain), 5.82 KB, created by
Ashish SHUKLA
on 2020-07-23 14:06:59 UTC
(
hide
)
Description:
diff
Filename:
MIME Type:
Creator:
Ashish SHUKLA
Created:
2020-07-23 14:06:59 UTC
Size:
5.82 KB
patch
obsolete
>diff -urN /usr/ports/sysutils/password-store/Makefile password-store/Makefile >--- /usr/ports/sysutils/password-store/Makefile 2020-05-30 15:37:22.000000000 +0530 >+++ password-store/Makefile 2020-07-23 19:30:14.860373000 +0530 >@@ -2,7 +2,7 @@ > > PORTNAME= password-store > PORTVERSION= 1.7.3 >-PORTREVISION= 1 >+PORTREVISION= 2 > CATEGORIES= sysutils > MASTER_SITES= https://git.zx2c4.com/${PORTNAME}/snapshot/ > >@@ -12,22 +12,23 @@ > LICENSE= GPLv2+ > LICENSE_FILE= ${WRKSRC}/COPYING > >-USES= tar:xz >- > RUN_DEPENDS= bash:shells/bash \ > getopt>=0:misc/getopt \ > gnupg>=2:security/gnupg \ > tree>=1.7:sysutils/tree > >+USES= tar:xz >+ > NO_ARCH= yes > NO_BUILD= yes > >-OPTIONS_DEFINE= CONTRIB EXAMPLES GIT XCLIP QRENCODE >+OPTIONS_DEFINE= CONTRIB EXAMPLES GIT XCLIP WAYLAND QRENCODE > OPTIONS_DEFAULT= CONTRIB XCLIP > OPTIONS_SUB= yes > > GIT_DESC= Enable git storage > XCLIP_DESC= Enable xclip feature >+WAYLAND_DESC= Enable wl-clipboard support > CONTRIB_DESC= Include shell completions, import scripts, related projects > QRENCODE_DESC= Enable QR code support > >@@ -36,6 +37,8 @@ > xclip>=0:x11/xclip > CONTRIB_RUN_DEPENDS= pwgen>=0:sysutils/pwgen > QRENCODE_RUN_DEPENDS= libqrencode>=0:graphics/libqrencode >+WAYLAND_RUN_DEPENDS= wl-clipboard>=0:x11/wl-clipboard >+WAYLAND_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-wayland-copy-paste.diff:-p1 > > SUB_FILES= pass > >diff -urN /usr/ports/sysutils/password-store/files/extra-patch-wayland-copy-paste.diff password-store/files/extra-patch-wayland-copy-paste.diff >--- /usr/ports/sysutils/password-store/files/extra-patch-wayland-copy-paste.diff 1970-01-01 05:30:00.000000000 +0530 >+++ password-store/files/extra-patch-wayland-copy-paste.diff 2020-07-23 19:11:20.701882000 +0530 >@@ -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: 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-4-ga26e >+
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 248204
: 216701