diff options
author | Rene Ladan <rene@FreeBSD.org> | 2016-05-31 16:24:27 +0000 |
---|---|---|
committer | Rene Ladan <rene@FreeBSD.org> | 2016-05-31 16:24:27 +0000 |
commit | 2d1782438930f3e9d70ba17aed6ae1362a87f979 (patch) | |
tree | 192d535cc152060483fcc0d603a4906593b19227 /sysutils/password-store | |
parent | 39d18d9545015c7be050fef97619b8120323cb58 (diff) |
sysutils/password-store: update to version 1.6.5
- enable shell completions by default (bash, fish, zsh) [1]
- do not remove XClip and GIT functionality [2]
PR: 195951 [1]
Submitted by: rs.os@t-online.de [1], milki [2]
Reviewed by: milki [2], eadler [2]
Differential Revision: https://reviews.freebsd.org/D4208 [2] (to 1.6.4)
Notes
Notes:
svn path=/head/; revision=416209
Diffstat (limited to 'sysutils/password-store')
-rw-r--r-- | sysutils/password-store/Makefile | 26 | ||||
-rw-r--r-- | sysutils/password-store/distinfo | 5 | ||||
-rw-r--r-- | sysutils/password-store/files/git+xclip.patch | 634 | ||||
-rw-r--r-- | sysutils/password-store/files/git.patch | 405 | ||||
-rw-r--r-- | sysutils/password-store/files/xclip.patch | 303 | ||||
-rw-r--r-- | sysutils/password-store/pkg-plist | 7 |
6 files changed, 20 insertions, 1360 deletions
diff --git a/sysutils/password-store/Makefile b/sysutils/password-store/Makefile index 1bc152cac777..4077d23f3e29 100644 --- a/sysutils/password-store/Makefile +++ b/sysutils/password-store/Makefile @@ -1,8 +1,7 @@ # $FreeBSD$ PORTNAME= password-store -PORTVERSION= 1.6.3 -PORTREVISION= 2 +PORTVERSION= 1.6.5 CATEGORIES= sysutils MASTER_SITES= http://git.zx2c4.com/password-store/snapshot/ @@ -22,6 +21,7 @@ NO_ARCH= yes NO_BUILD= yes OPTIONS_DEFINE= GIT XCLIP CONTRIB DOCS EXAMPLES +OPTIONS_DEFAULT= CONTRIB OPTIONS_SUB= yes GIT_DESC= Enable git storage @@ -34,26 +34,24 @@ XCLIP_RUN_DEPENDS= base64>=0:converters/base64 \ .include <bsd.port.options.mk> -.if ! ${PORT_OPTIONS:MGIT} && ! ${PORT_OPTIONS:MXCLIP} -EXTRA_PATCHES= ${PATCHDIR}/git+xclip.patch:-p1 -.elif ! ${PORT_OPTIONS:MGIT} -EXTRA_PATCHES= ${PATCHDIR}/git.patch:-p1 -.elif ! ${PORT_OPTIONS:MXCLIP} -EXTRA_PATCHES= ${PATCHDIR}/xclip.patch:-p1 -.endif - post-patch: @${REINPLACE_CMD} -Ee 's|GETOPT="getopt"|GETOPT="${LOCALBASE}/bin/getopt"|' ${WRKSRC}/src/password-store.sh @${REINPLACE_CMD} -Ee 's|SHRED="shred -f -z"|SHRED="rm -P -f"|' ${WRKSRC}/src/password-store.sh do-install: - @${INSTALL_SCRIPT} ${WRKSRC}/src/password-store.sh ${STAGEDIR}${PREFIX}/libexec/pass - @${LN} -s ${PREFIX}/libexec/pass ${STAGEDIR}${PREFIX}/bin/pass + ${INSTALL_SCRIPT} ${WRKSRC}/src/password-store.sh ${STAGEDIR}${PREFIX}/libexec/pass + ${LN} -s ${PREFIX}/libexec/pass ${STAGEDIR}${PREFIX}/bin/pass do-install-CONTRIB-on: @${MKDIR} ${STAGEDIR}${DATADIR} - @(cd ${WRKSRC}/contrib && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}) - @(cd ${WRKSRC}/src/completion && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}) + (cd ${WRKSRC}/contrib && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}) + (cd ${WRKSRC}/src/completion && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}) + @${MKDIR} ${STAGEDIR}${PREFIX}/share/zsh/site-functions + ${INSTALL_DATA} ${STAGEDIR}${DATADIR}/pass.zsh-completion ${STAGEDIR}${PREFIX}/share/zsh/site-functions/_pass + @${MKDIR} ${STAGEDIR}${PREFIX}/etc/bash_completion.d + ${INSTALL_DATA} ${STAGEDIR}${DATADIR}/pass.bash-completion ${STAGEDIR}${PREFIX}/etc/bash_completion.d/password-store + @${MKDIR} ${STAGEDIR}${PREFIX}/share/fish/completions + ${INSTALL_DATA} ${STAGEDIR}${DATADIR}/pass.fish-completion ${STAGEDIR}${PREFIX}/share/fish/completions/password-store.fish do-install-EXAMPLES-on: @${MKDIR} ${STAGEDIR}${EXAMPLESDIR} diff --git a/sysutils/password-store/distinfo b/sysutils/password-store/distinfo index ddb4ac17304f..2818000cb7a1 100644 --- a/sysutils/password-store/distinfo +++ b/sysutils/password-store/distinfo @@ -1,2 +1,3 @@ -SHA256 (password-store-1.6.3.tar.gz) = 1a9437fe07fdce5f562f8b6bd7e8492416f5ad298f32b87a02984c3908267148 -SIZE (password-store-1.6.3.tar.gz) = 59408 +TIMESTAMP = 1464706588 +SHA256 (password-store-1.6.5.tar.gz) = 0b70e27babed42209544acafbfdaddc222933977883b1dcd9db2acb142045608 +SIZE (password-store-1.6.5.tar.gz) = 61020 diff --git a/sysutils/password-store/files/git+xclip.patch b/sysutils/password-store/files/git+xclip.patch deleted file mode 100644 index 2239e5efd077..000000000000 --- a/sysutils/password-store/files/git+xclip.patch +++ /dev/null @@ -1,634 +0,0 @@ -diff --git a/README b/README -index 1cc01b9..f994aba 100644 ---- a/README -+++ b/README -@@ -17,10 +17,6 @@ Depends on: - http://www.gnu.org/software/bash/ - - GnuPG2 - http://www.gnupg.org/ --- git -- http://www.git-scm.com/ --- xclip -- http://sourceforge.net/projects/xclip/ - - pwgen - http://sourceforge.net/projects/pwgen/ - - tree >= 1.7.0 -diff --git a/contrib/emacs/password-store.el b/contrib/emacs/password-store.el -index cdecad4..052eda7 100644 ---- a/contrib/emacs/password-store.el -+++ b/contrib/emacs/password-store.el -@@ -112,10 +112,6 @@ outputs error message on failure." - entry - new-entry)) - --(defun password-store--run-git (&rest args) -- (apply 'password-store--run "git" -- args)) -- - (defun password-store--run-version () - (password-store--run "version")) - -diff --git a/man/pass.1 b/man/pass.1 -index 8ac8ecf..5024799 100644 ---- a/man/pass.1 -+++ b/man/pass.1 -@@ -33,13 +33,6 @@ or - depending on the type of specifier in ARGS. Otherwise COMMAND must be one of - the valid commands listed below. - --Several of the commands below rely on or provide additional functionality if --the password store directory is also a git repository. If the password store --directory is a git repository, all password store modification commands will --cause a corresponding git commit. See the \fIEXTENDED GIT EXAMPLE\fP section --for a detailed description using \fBinit\fP and --.BR git (1). -- - The \fBinit\fP command must be run before other commands in order to initialize - the password store with the correct gpg key id. Passwords are encrypting using - the gpg key set with \fBinit\fP. -@@ -86,12 +79,8 @@ List names of passwords inside the tree that match \fIpass-names\fP by using the - .BR tree (1) - program. This command is alternatively named \fBsearch\fP. - .TP --\fBshow\fP [ \fI--clip\fP, \fI-c\fP ] \fIpass-name\fP --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 line to the --clipboard using --.BR xclip (1) --and then restore the clipboard after 45 (or \fIPASSWORD_STORE_CLIP_TIME\fP) seconds. -+\fBshow\fP \fIpass-name\fP -+Decrypt and print a password named \fIpass-name\fP. - .TP - \fBinsert\fP [ \fI--echo\fP, \fI-e\fP | \fI--multiline\fP, \fI-m\fP ] [ \fI--force\fP, \fI-f\fP ] \fIpass-name\fP - Insert a new password into the password store called \fIpass-name\fP. This will -@@ -110,15 +99,11 @@ ensure that temporary files are created in \fI/dev/shm\fP in order to avoid writ - difficult-to-erase disk sectors. If \fI/dev/shm\fP is not accessible, fallback to - the ordinary \fITMPDIR\fP location, and print a warning. - .TP --\fBgenerate\fP [ \fI--no-symbols\fP, \fI-n\fP ] [ \fI--clip\fP, \fI-c\fP ] [ \fI--in-place\fP, \fI-i\fP | \fI--force\fP, \fI-f\fP ] \fIpass-name pass-length\fP -+\fBgenerate\fP [ \fI--no-symbols\fP, \fI-n\fP ] [ \fI--in-place\fP, \fI-i\fP | \fI--force\fP, \fI-f\fP ] \fIpass-name pass-length\fP - Generate a new password using - .BR pwgen (1) - of length \fIpass-length\fP and insert into \fIpass-name\fP. If \fI--no-symbols\fP or \fI-n\fP - is specified, do not use any non-alphanumeric characters in the generated password. --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) --and then restore the clipboard after 45 (or \fIPASSWORD_STORE_CLIP_TIME\fP) seconds. - Prompt before overwriting an existing password, - unless \fI--force\fP or \fI-f\fP is specified. If \fI--in-place\fP or \fI-i\fP is - specified, do not interactively prompt, and only replace the first line of the password -@@ -144,16 +129,6 @@ silently overwrite \fInew-path\fP if it exists. If \fInew-path\fP ends in a - trailing \fI/\fP, it is always treated as a directory. Passwords are selectively - reencrypted to the corresponding keys of their new destination. - .TP --\fBgit\fP \fIgit-command-args\fP... --If the password store is a git repository, pass \fIgit-command-args\fP as arguments to --.BR git (1) --using the password store as the git repository. If \fIgit-command-args\fP is \fBinit\fP, --in addition to initializing the git repository, add the current contents of the password --store to the repository in an initial commit. If the git config key \fIpass.signcommits\fP --is set to \fItrue\fP, then all commits will be signed using \fIuser.signingkey\fP or the --default git signing key. This config key may be turned on using: --.B `pass git config --bool --add pass.signcommits true` --.TP - \fBhelp\fP - Show usage message. - .TP -@@ -223,11 +198,6 @@ Show existing password - .br - sup3rh4x3rizmynam3 - .TP --Copy existing password to clipboard --.B zx2c4@laptop ~ $ pass -c Email/zx2c4.com --.br --Copied Email/jason@zx2c4.com to clipboard. Will clear in 45 seconds. --.TP - Add password to store - .B zx2c4@laptop ~ $ pass insert Business/cheese-whiz-factory - .br -@@ -266,10 +236,8 @@ The generated password to Email/jasondonenfeld.com is: - .br - YqFsMkBeO6di - .TP --Generate new password and copy it to the clipboard --.B zx2c4@laptop ~ $ pass generate -c Email/jasondonenfeld.com 19 --.br --Copied Email/jasondonenfeld.com to clipboard. Will clear in 45 seconds. -+Generate new password -+.B zx2c4@laptop ~ $ pass generate Email/jasondonenfeld.com 19 - .TP - Remove password from store - .B zx2c4@laptop ~ $ pass remove Business/cheese-whiz-factory -@@ -278,99 +246,6 @@ rm: remove regular file \[u2018]/home/zx2c4/.password-store/Business/cheese-whiz - .br - removed \[u2018]/home/zx2c4/.password-store/Business/cheese-whiz-factory.gpg\[u2019] - --.SH EXTENDED GIT EXAMPLE --Here, we initialize new password store, create a git repository, and then manipulate and sync passwords. Make note of the arguments to the first call of \fBpass git push\fP; consult --.BR git-push (1) --for more information. -- --.B zx2c4@laptop ~ $ pass init Jason@zx2c4.com --.br --mkdir: created directory \[u2018]/home/zx2c4/.password-store\[u2019] --.br --Password store initialized for Jason@zx2c4.com. -- --.B zx2c4@laptop ~ $ pass git init --.br --Initialized empty Git repository in /home/zx2c4/.password-store/.git/ --.br --[master (root-commit) 998c8fd] Added current contents of password store. --.br -- 1 file changed, 1 insertion(+) --.br -- create mode 100644 .gpg-id -- --.B zx2c4@laptop ~ $ pass git remote add origin kexec.com:pass-store -- --.B zx2c4@laptop ~ $ pass generate Amazon/amazonemail@email.com 21 --.br --mkdir: created directory \[u2018]/home/zx2c4/.password-store/Amazon\[u2019] --.br --[master 30fdc1e] Added generated password for Amazon/amazonemail@email.com to store. --.br --1 file changed, 0 insertions(+), 0 deletions(-) --.br --create mode 100644 Amazon/amazonemail@email.com.gpg --.br --The generated password to Amazon/amazonemail@email.com is: --.br --<5m,_BrZY`antNDxKN<0A -- --.B zx2c4@laptop ~ $ pass git push -u --all --.br --Counting objects: 4, done. --.br --Delta compression using up to 2 threads. --.br --Compressing objects: 100% (3/3), done. --.br --Writing objects: 100% (4/4), 921 bytes, done. --.br --Total 4 (delta 0), reused 0 (delta 0) --.br --To kexec.com:pass-store --.br --* [new branch] master -> master --.br --Branch master set up to track remote branch master from origin. -- --.B zx2c4@laptop ~ $ pass insert Amazon/otheraccount@email.com --.br --Enter password for Amazon/otheraccount@email.com: som3r3a11yb1gp4ssw0rd!!88** --.br --[master b9b6746] Added given password for Amazon/otheraccount@email.com to store. --.br --1 file changed, 0 insertions(+), 0 deletions(-) --.br --create mode 100644 Amazon/otheraccount@email.com.gpg -- --.B zx2c4@laptop ~ $ pass rm Amazon/amazonemail@email.com --.br --rm: remove regular file \[u2018]/home/zx2c4/.password-store/Amazon/amazonemail@email.com.gpg\[u2019]? y --.br --removed \[u2018]/home/zx2c4/.password-store/Amazon/amazonemail@email.com.gpg\[u2019] --.br --rm 'Amazon/amazonemail@email.com.gpg' --.br --[master 288b379] Removed Amazon/amazonemail@email.com from store. --.br --1 file changed, 0 insertions(+), 0 deletions(-) --.br --delete mode 100644 Amazon/amazonemail@email.com.gpg -- --.B zx2c4@laptop ~ $ pass git push --.br --Counting objects: 9, done. --.br --Delta compression using up to 2 threads. --.br --Compressing objects: 100% (5/5), done. --.br --Writing objects: 100% (7/7), 1.25 KiB, done. --.br --Total 7 (delta 0), reused 0 (delta 0) --.br --To kexec.com:pass-store -- - .SH FILES - - .TP -@@ -394,19 +269,6 @@ Overrides the default gpg key identification set by \fBinit\fP. Keys must not - contain spaces and thus use of the hexidecimal key signature is recommended. - Multiple keys may be specified separated by spaces. - .TP --.I PASSWORD_STORE_GIT --Overrides the default root of the git repository, which is helpful if --\fIPASSWORD_STORE_DIR\fP is temporarily set to a sub-directory of the default --password store. --.TP --.I PASSWORD_STORE_X_SELECTION --Overrides the selection passed to \fBxclip\fP, by default \fIclipboard\fP. See --.BR xclip (1) --for more info. --.TP --.I PASSWORD_STORE_CLIP_TIME --Specifies the number of seconds to wait before restoring the clipboard, by default --\fI45\fP seconds. - .TP - .I PASSWORD_STORE_UMASK - Sets the umask of all files modified by pass, by default \fI077\fP. -@@ -416,8 +278,6 @@ The location of the text editor used by \fBedit\fP. - .SH SEE ALSO - .BR gpg2 (1), - .BR pwgen (1), --.BR git (1), --.BR xclip (1). - - .SH AUTHOR - .B pass -diff --git a/src/completion/pass.bash-completion b/src/completion/pass.bash-completion -index ea31fbf..dbf39dc 100644 ---- a/src/completion/pass.bash-completion -+++ b/src/completion/pass.bash-completion -@@ -62,7 +62,7 @@ _pass() - { - COMPREPLY=() - local cur="${COMP_WORDS[COMP_CWORD]}" -- local commands="init ls find grep show insert generate edit rm mv cp git help version" -+ local commands="init ls find grep show insert generate edit rm mv cp help version" - if [[ $COMP_CWORD -gt 1 ]]; then - local lastarg="${COMP_WORDS[$COMP_CWORD-1]}" - case "${COMP_WORDS[1]}" in -@@ -78,7 +78,6 @@ _pass() - _pass_complete_entries - ;; - show|-*) -- COMPREPLY+=($(compgen -W "-c --clip" -- ${cur})) - _pass_complete_entries 1 - ;; - insert) -@@ -86,7 +85,7 @@ _pass() - _pass_complete_entries - ;; - generate) -- COMPREPLY+=($(compgen -W "-n --no-symbols -c --clip -f --force -i --in-place" -- ${cur})) -+ COMPREPLY+=($(compgen -W "-n --no-symbols -f --force -i --in-place" -- ${cur})) - _pass_complete_entries - ;; - cp|copy|mv|rename) -@@ -97,9 +96,6 @@ _pass() - COMPREPLY+=($(compgen -W "-r --recursive -f --force" -- ${cur})) - _pass_complete_entries - ;; -- git) -- COMPREPLY+=($(compgen -W "init push pull config log reflog rebase" -- ${cur})) -- ;; - esac - else - COMPREPLY+=($(compgen -W "${commands}" -- ${cur})) -diff --git a/src/completion/pass.fish-completion b/src/completion/pass.fish-completion -index c32a42c..6920546 100644 ---- a/src/completion/pass.fish-completion -+++ b/src/completion/pass.fish-completion -@@ -75,7 +75,6 @@ complete -c $PROG -f -A -n '__fish_pass_uses_command insert' -a "(__fish_pass_pr - - complete -c $PROG -f -A -n '__fish_pass_needs_command' -a generate -d 'Command: generate new password' - complete -c $PROG -f -A -n '__fish_pass_uses_command generate' -s n -l no-symbols -d 'Do not use special symbols' --complete -c $PROG -f -A -n '__fish_pass_uses_command generate' -s c -l clip -d 'Put the password in clipboard' - complete -c $PROG -f -A -n '__fish_pass_uses_command generate' -s f -l force -d 'Do not prompt before overwritting' - complete -c $PROG -f -A -n '__fish_pass_uses_command generate' -s i -l in-place -d 'Replace only the first line with the generated password' - complete -c $PROG -f -A -n '__fish_pass_uses_command generate' -a "(__fish_pass_print_entry_dirs)" -@@ -97,22 +96,10 @@ complete -c $PROG -f -A -n '__fish_pass_needs_command' -a edit -d 'Command: edit - complete -c $PROG -f -A -n '__fish_pass_uses_command edit' -a "(__fish_pass_print_entries)" - - complete -c $PROG -f -A -n '__fish_pass_needs_command' -a show -d 'Command: show existing password' --complete -c $PROG -f -A -n '__fish_pass_uses_command show' -s c -l clip -d 'Put password in clipboard' - complete -c $PROG -f -A -n '__fish_pass_uses_command show' -a "(__fish_pass_print_entries)" - # When no command is given, `show` is defaulted. --complete -c $PROG -f -A -n '__fish_pass_needs_command' -s c -l clip -d 'Put password in clipboard' - complete -c $PROG -f -A -n '__fish_pass_needs_command' -a "(__fish_pass_print_entries)" - complete -c $PROG -f -A -n '__fish_pass_uses_command -c' -a "(__fish_pass_print_entries)" --complete -c $PROG -f -A -n '__fish_pass_uses_command --clip' -a "(__fish_pass_print_entries)" -- --complete -c $PROG -f -A -n '__fish_pass_needs_command' -a git -d 'Command: execute a git command' --complete -c $PROG -f -A -n '__fish_pass_uses_command git' -a 'init' -d 'Initialize git repository' --complete -c $PROG -f -A -n '__fish_pass_uses_command git' -a 'status' -d 'Show status of the repo' --complete -c $PROG -f -A -n '__fish_pass_uses_command git' -a 'add' -d 'Add changes to the index' --complete -c $PROG -f -A -n '__fish_pass_uses_command git' -a 'commit' -d 'Commit changes to the repo' --complete -c $PROG -f -A -n '__fish_pass_uses_command git' -a 'push' -d 'Push changes to remote repo' --complete -c $PROG -f -A -n '__fish_pass_uses_command git' -a 'pull' -d 'Pull changes from remote repo' --complete -c $PROG -f -A -n '__fish_pass_uses_command git' -a 'log' -d 'View changelog' - - complete -c $PROG -f -A -n '__fish_pass_needs_command' -a find -d 'Command: find a password file or directory matching pattern' - complete -c $PROG -f -A -n '__fish_pass_needs_command' -a grep -d 'Command: search inside of decrypted password files for matching pattern' -diff --git a/src/completion/pass.zsh-completion b/src/completion/pass.zsh-completion -index b658398..0f5599f 100644 ---- a/src/completion/pass.zsh-completion -+++ b/src/completion/pass.zsh-completion -@@ -41,8 +41,6 @@ _pass () { - _arguments : \ - "-n[don't include symbols in password]" \ - "--no-symbols[don't include symbols in password]" \ -- "-c[copy password to the clipboard]" \ -- "--clip[copy password to the clipboard]" \ - "-f[force overwrite]" \ - "--force[force overwrite]" \ - "-i[replace first line]" \ -@@ -63,18 +61,6 @@ _pass () { - "--recursive[recursively delete]" - _pass_complete_entries_with_subdirs - ;; -- git) -- local -a subcommands -- subcommands=( -- "init:Initialize git repository" -- "push:Push to remote repository" -- "pull:Pull from remote repository" -- "config:Show git config" -- "log:Show git log" -- "reflog:Show git reflog" -- ) -- _describe -t commands 'pass git' subcommands -- ;; - show|*) - _pass_cmd_show - ;; -@@ -93,7 +79,6 @@ _pass () { - "mv:Rename the password" - "cp:Copy the password" - "rm:Remove the password" -- "git:Call git on the password store" - "version:Output version information" - "help:Output help message" - ) -@@ -106,15 +91,12 @@ _pass () { - } - - _pass_cmd_show () { -- _arguments : \ -- "-c[put it on the clipboard]" \ -- "--clip[put it on the clipboard]" - _pass_complete_entries - } - _pass_complete_entries_helper () { - local IFS=$'\n' - local prefix="${PASSWORD_STORE_DIR:-$HOME/.password-store}" -- _values -C 'passwords' $(find -L "$prefix" \( -name .git -o -name .gpg-id \) -prune -o $@ -print | sed -e "s#${prefix}/\{0,1\}##" -e 's#\.gpg##' | sort) -+ _values -C 'passwords' $(find -L "$prefix" -name .gpg-id -prune -o $@ -print | sed -e "s#${prefix}/\{0,1\}##" -e 's#\.gpg##' | sort) - } - - _pass_complete_entries_with_subdirs () { -diff --git a/src/password-store.sh b/src/password-store.sh -index cfc25cc..01fa1bc 100755 ---- a/src/password-store.sh -+++ b/src/password-store.sh -@@ -12,28 +12,11 @@ which gpg2 &>/dev/null && GPG="gpg2" - [[ -n $GPG_AGENT_INFO || $GPG == "gpg2" ]] && GPG_OPTS+=( "--batch" "--use-agent" ) - - PREFIX="${PASSWORD_STORE_DIR:-$HOME/.password-store}" --X_SELECTION="${PASSWORD_STORE_X_SELECTION:-clipboard}" --CLIP_TIME="${PASSWORD_STORE_CLIP_TIME:-45}" -- --export GIT_DIR="${PASSWORD_STORE_GIT:-$PREFIX}/.git" --export GIT_WORK_TREE="${PASSWORD_STORE_GIT:-$PREFIX}" - - # - # BEGIN helper functions - # - --git_add_file() { -- [[ -d $GIT_DIR ]] || return -- git add "$1" || return -- [[ -n $(git status --porcelain "$1") ]] || return -- git_commit "$2" --} --git_commit() { -- local sign="" -- [[ -d $GIT_DIR ]] || return -- [[ $(git config --bool --get pass.signcommits) == "true" ]] && sign="-S" -- git commit $sign -m "$1" --} - yesno() { - [[ -t 0 ]] || return 0 - local response -@@ -135,33 +118,6 @@ check_sneaky_paths() { - # BEGIN platform definable - # - --clip() { -- # 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" | base64)" -- echo -n "$1" | xclip -selection "$X_SELECTION" -- ( -- ( exec -a "$sleep_argv0" sleep "$CLIP_TIME" ) -- local now="$(xclip -o -selection "$X_SELECTION" | base64)" -- [[ $now != $(echo -n "$1" | base64) ]] && before="$now" -- -- # It might be nice to programatically check to see if klipper exists, -- # as well as checking for other common clipboard managers. But for now, -- # this works fine -- if qdbus isn't there or if klipper isn't running, -- # this essentially becomes a no-op. -- # -- # Clipboard managers frequently write their history out in plaintext, -- # 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" -- ) 2>/dev/null & disown -- echo "Copied $2 to clipboard. Will clear in $CLIP_TIME seconds." --} - tmpdir() { - [[ -n $SECURE_TMPDIR ]] && return - local warn=1 -@@ -232,9 +188,8 @@ cmd_usage() { - List passwords. - $PROGRAM find pass-names... - List passwords that match pass-names. -- $PROGRAM [show] [--clip,-c] pass-name -- Show existing password and optionally put it on the clipboard. -- If put on the clipboard, it will be cleared in $CLIP_TIME seconds. -+ $PROGRAM [show] pass-name -+ Show existing password. - $PROGRAM grep search-string - Search for password files containing search-string when decrypted. - $PROGRAM insert [--echo,-e | --multiline,-m] [--force,-f] pass-name -@@ -243,9 +198,8 @@ cmd_usage() { - overwriting existing password unless forced. - $PROGRAM edit pass-name - Insert a new password or edit an existing password using ${EDITOR:-vi}. -- $PROGRAM generate [--no-symbols,-n] [--clip,-c] [--in-place,-i | --force,-f] pass-name pass-length -+ $PROGRAM generate [--no-symbols,-n] [--in-place,-i | --force,-f] pass-name pass-length - Generate a new password of pass-length with optionally no symbols. -- Optionally put it on the clipboard and clear board after 45 seconds. - Prompt before overwriting existing password unless forced. - Optionally replace only the first line of an existing file with a new password. - $PROGRAM rm [--recursive,-r] [--force,-f] pass-name -@@ -254,9 +208,6 @@ cmd_usage() { - Renames or moves old-path to new-path, optionally forcefully, selectively reencrypting. - $PROGRAM cp [--force,-f] old-path new-path - Copies old-path to new-path, optionally forcefully, selectively reencrypting. -- $PROGRAM git git-command-args... -- If the password store is a git repository, execute a git command -- specified by git-command-args. - $PROGRAM help - Show this text. - $PROGRAM version -@@ -285,47 +236,24 @@ cmd_init() { - if [[ $# -eq 1 && -z $1 ]]; then - [[ ! -f "$gpg_id" ]] && die "Error: $gpg_id does not exist and so cannot be removed." - rm -v -f "$gpg_id" || exit 1 -- if [[ -d $GIT_DIR ]]; then -- git rm -qr "$gpg_id" -- git_commit "Deinitialize ${gpg_id}." -- fi - rmdir -p "${gpg_id%/*}" 2>/dev/null - else - mkdir -v -p "$PREFIX/$id_path" - printf "%s\n" "$@" > "$gpg_id" - local id_print="$(printf "%s, " "$@")" - echo "Password store initialized for ${id_print%, }" -- git_add_file "$gpg_id" "Set GPG id to ${id_print%, }." - fi - - agent_check - reencrypt_path "$PREFIX/$id_path" -- git_add_file "$PREFIX/$id_path" "Reencrypt password store using new GPG id ${id_print%, }." - } - - cmd_show() { -- local opts clip=0 -- opts="$($GETOPT -o c -l clip -n "$PROGRAM" -- "$@")" -- local err=$? -- eval set -- "$opts" -- while true; do case $1 in -- -c|--clip) clip=1; shift ;; -- --) shift; break ;; -- esac done -- -- [[ $err -ne 0 ]] && die "Usage: $PROGRAM $COMMAND [--clip,-c] [pass-name]" -- - local path="$1" - local passfile="$PREFIX/$path.gpg" - check_sneaky_paths "$path" - if [[ -f $passfile ]]; then -- if [[ $clip -eq 0 ]]; then - exec $GPG -d "${GPG_OPTS[@]}" "$passfile" -- else -- local pass="$($GPG -d "${GPG_OPTS[@]}" "$passfile" | head -n 1)" -- [[ -n $pass ]] || exit 1 -- clip "$pass" "$path" -- fi - elif [[ -d $PREFIX/$path ]]; then - if [[ -z $path ]]; then - echo "Password Store" -@@ -408,7 +336,6 @@ cmd_insert() { - read -r -p "Enter password for $path: " -e password - $GPG -e "${GPG_RECIPIENT_ARGS[@]}" -o "$passfile" "${GPG_OPTS[@]}" <<<"$password" - fi -- git_add_file "$passfile" "Add given password for $path to store." - } - - cmd_edit() { -@@ -434,23 +361,21 @@ cmd_edit() { - while ! $GPG -e "${GPG_RECIPIENT_ARGS[@]}" -o "$passfile" "${GPG_OPTS[@]}" "$tmp_file"; do - yesno "GPG encryption failed. Would you like to try again?" - done -- git_add_file "$passfile" "$action password for $path using ${EDITOR:-vi}." - } - - cmd_generate() { -- local opts clip=0 force=0 symbols="-y" inplace=0 -- opts="$($GETOPT -o ncif -l no-symbols,clip,in-place,force -n "$PROGRAM" -- "$@")" -+ local opts force=0 symbols="-y" inplace=0 -+ opts="$($GETOPT -o nif -l no-symbols,in-place,force -n "$PROGRAM" -- "$@")" - local err=$? - eval set -- "$opts" - while true; do case $1 in - -n|--no-symbols) symbols=""; shift ;; -- -c|--clip) clip=1; shift ;; - -f|--force) force=1; shift ;; - -i|--in-place) inplace=1; shift ;; - --) shift; break ;; - esac done - -- [[ $err -ne 0 || $# -ne 2 || ( $force -eq 1 && $inplace -eq 1 ) ]] && die "Usage: $PROGRAM $COMMAND [--no-symbols,-n] [--clip,-c] [--in-place,-i | --force,-f] pass-name pass-length" -+ [[ $err -ne 0 || $# -ne 2 || ( $force -eq 1 && $inplace -eq 1 ) ]] && die "Usage: $PROGRAM $COMMAND [--no-symbols,-n] [--in-place,-i | --force,-f] pass-name pass-length" - local path="$1" - local length="$2" - check_sneaky_paths "$path" -@@ -476,13 +401,8 @@ cmd_generate() { - fi - local verb="Add" - [[ $inplace -eq 1 ]] && verb="Replace" -- git_add_file "$passfile" "$verb generated password for ${path}." - -- if [[ $clip -eq 0 ]]; then -- printf "\e[1m\e[37mThe generated password for \e[4m%s\e[24m is:\e[0m\n\e[1m\e[93m%s\e[0m\n" "$path" "$pass" -- else -- clip "$pass" "$path" -- fi -+ printf "\e[1m\e[37mThe generated password for \e[4m%s\e[24m is:\e[0m\n\e[1m\e[93m%s\e[0m\n" "$path" "$pass" - } - - cmd_delete() { -@@ -508,10 +428,6 @@ cmd_delete() { - [[ $force -eq 1 ]] || yesno "Are you sure you would like to delete $path?" - - rm $recursive -f -v "$passfile" -- if [[ -d $GIT_DIR && ! -e $passfile ]]; then -- git rm -qr "$passfile" -- git_commit "Remove $path from store." -- fi - rmdir -p "${passfile%/*}" 2>/dev/null - } - -@@ -548,33 +464,10 @@ cmd_copy_move() { - mv $interactive -v "$old_path" "$new_path" || exit 1 - [[ -e "$new_path" ]] && reencrypt_path "$new_path" - -- if [[ -d $GIT_DIR && ! -e $old_path ]]; then -- git rm -qr "$old_path" -- git_add_file "$new_path" "Rename ${1} to ${2}." -- fi - rmdir -p "$old_dir" 2>/dev/null - else - cp $interactive -r -v "$old_path" "$new_path" || exit 1 - [[ -e "$new_path" ]] && reencrypt_path "$new_path" -- git_add_file "$new_path" "Copy ${1} to ${2}." -- fi --} -- --cmd_git() { -- if [[ $1 == "init" ]]; then -- git "$@" || exit 1 -- git_add_file "$PREFIX" "Add current contents of password store." -- -- echo '*.gpg diff=gpg' > "$PREFIX/.gitattributes" -- git_add_file .gitattributes "Configure git repository for gpg file diff." -- git config --local diff.gpg.binary true -- git config --local diff.gpg.textconv "$GPG -d ${GPG_OPTS[*]}" -- elif [[ -d $GIT_DIR ]]; then -- tmpdir nowarn #Defines $SECURE_TMPDIR. We don't warn, because at most, this only copies encrypted files. -- export TMPDIR="$SECURE_TMPDIR" -- git "$@" -- else -- die "Error: the password store is not a git repository. Try \"$PROGRAM git init\"." - fi - } - -@@ -598,7 +491,6 @@ case "$1" in - delete|rm|remove) shift; cmd_delete "$@" ;; - rename|mv) shift; cmd_copy_move "move" "$@" ;; - copy|cp) shift; cmd_copy_move "copy" "$@" ;; -- git) shift; cmd_git "$@" ;; - *) COMMAND="show"; cmd_show "$@" ;; - esac - exit 0 diff --git a/sysutils/password-store/files/git.patch b/sysutils/password-store/files/git.patch deleted file mode 100644 index b7e9ae7cf2dd..000000000000 --- a/sysutils/password-store/files/git.patch +++ /dev/null @@ -1,405 +0,0 @@ -diff --git a/README b/README -index 1cc01b9..1a7555b 100644 ---- a/README -+++ b/README -@@ -17,8 +17,6 @@ Depends on: - http://www.gnu.org/software/bash/ - - GnuPG2 - http://www.gnupg.org/ --- git -- http://www.git-scm.com/ - - xclip - http://sourceforge.net/projects/xclip/ - - pwgen -diff --git a/contrib/emacs/password-store.el b/contrib/emacs/password-store.el -index cdecad4..052eda7 100644 ---- a/contrib/emacs/password-store.el -+++ b/contrib/emacs/password-store.el -@@ -112,10 +112,6 @@ outputs error message on failure." - entry - new-entry)) - --(defun password-store--run-git (&rest args) -- (apply 'password-store--run "git" -- args)) -- - (defun password-store--run-version () - (password-store--run "version")) - -diff --git a/man/pass.1 b/man/pass.1 -index 8ac8ecf..b340a95 100644 ---- a/man/pass.1 -+++ b/man/pass.1 -@@ -33,13 +33,6 @@ or - depending on the type of specifier in ARGS. Otherwise COMMAND must be one of - the valid commands listed below. - --Several of the commands below rely on or provide additional functionality if --the password store directory is also a git repository. If the password store --directory is a git repository, all password store modification commands will --cause a corresponding git commit. See the \fIEXTENDED GIT EXAMPLE\fP section --for a detailed description using \fBinit\fP and --.BR git (1). -- - The \fBinit\fP command must be run before other commands in order to initialize - the password store with the correct gpg key id. Passwords are encrypting using - the gpg key set with \fBinit\fP. -@@ -144,16 +137,6 @@ silently overwrite \fInew-path\fP if it exists. If \fInew-path\fP ends in a - trailing \fI/\fP, it is always treated as a directory. Passwords are selectively - reencrypted to the corresponding keys of their new destination. - .TP --\fBgit\fP \fIgit-command-args\fP... --If the password store is a git repository, pass \fIgit-command-args\fP as arguments to --.BR git (1) --using the password store as the git repository. If \fIgit-command-args\fP is \fBinit\fP, --in addition to initializing the git repository, add the current contents of the password --store to the repository in an initial commit. If the git config key \fIpass.signcommits\fP --is set to \fItrue\fP, then all commits will be signed using \fIuser.signingkey\fP or the --default git signing key. This config key may be turned on using: --.B `pass git config --bool --add pass.signcommits true` --.TP - \fBhelp\fP - Show usage message. - .TP -@@ -278,99 +261,6 @@ rm: remove regular file \[u2018]/home/zx2c4/.password-store/Business/cheese-whiz - .br - removed \[u2018]/home/zx2c4/.password-store/Business/cheese-whiz-factory.gpg\[u2019] - --.SH EXTENDED GIT EXAMPLE --Here, we initialize new password store, create a git repository, and then manipulate and sync passwords. Make note of the arguments to the first call of \fBpass git push\fP; consult --.BR git-push (1) --for more information. -- --.B zx2c4@laptop ~ $ pass init Jason@zx2c4.com --.br --mkdir: created directory \[u2018]/home/zx2c4/.password-store\[u2019] --.br --Password store initialized for Jason@zx2c4.com. -- --.B zx2c4@laptop ~ $ pass git init --.br --Initialized empty Git repository in /home/zx2c4/.password-store/.git/ --.br --[master (root-commit) 998c8fd] Added current contents of password store. --.br -- 1 file changed, 1 insertion(+) --.br -- create mode 100644 .gpg-id -- --.B zx2c4@laptop ~ $ pass git remote add origin kexec.com:pass-store -- --.B zx2c4@laptop ~ $ pass generate Amazon/amazonemail@email.com 21 --.br --mkdir: created directory \[u2018]/home/zx2c4/.password-store/Amazon\[u2019] --.br --[master 30fdc1e] Added generated password for Amazon/amazonemail@email.com to store. --.br --1 file changed, 0 insertions(+), 0 deletions(-) --.br --create mode 100644 Amazon/amazonemail@email.com.gpg --.br --The generated password to Amazon/amazonemail@email.com is: --.br --<5m,_BrZY`antNDxKN<0A -- --.B zx2c4@laptop ~ $ pass git push -u --all --.br --Counting objects: 4, done. --.br --Delta compression using up to 2 threads. --.br --Compressing objects: 100% (3/3), done. --.br --Writing objects: 100% (4/4), 921 bytes, done. --.br --Total 4 (delta 0), reused 0 (delta 0) --.br --To kexec.com:pass-store --.br --* [new branch] master -> master --.br --Branch master set up to track remote branch master from origin. -- --.B zx2c4@laptop ~ $ pass insert Amazon/otheraccount@email.com --.br --Enter password for Amazon/otheraccount@email.com: som3r3a11yb1gp4ssw0rd!!88** --.br --[master b9b6746] Added given password for Amazon/otheraccount@email.com to store. --.br --1 file changed, 0 insertions(+), 0 deletions(-) --.br --create mode 100644 Amazon/otheraccount@email.com.gpg -- --.B zx2c4@laptop ~ $ pass rm Amazon/amazonemail@email.com --.br --rm: remove regular file \[u2018]/home/zx2c4/.password-store/Amazon/amazonemail@email.com.gpg\[u2019]? y --.br --removed \[u2018]/home/zx2c4/.password-store/Amazon/amazonemail@email.com.gpg\[u2019] --.br --rm 'Amazon/amazonemail@email.com.gpg' --.br --[master 288b379] Removed Amazon/amazonemail@email.com from store. --.br --1 file changed, 0 insertions(+), 0 deletions(-) --.br --delete mode 100644 Amazon/amazonemail@email.com.gpg -- --.B zx2c4@laptop ~ $ pass git push --.br --Counting objects: 9, done. --.br --Delta compression using up to 2 threads. --.br --Compressing objects: 100% (5/5), done. --.br --Writing objects: 100% (7/7), 1.25 KiB, done. --.br --Total 7 (delta 0), reused 0 (delta 0) --.br --To kexec.com:pass-store -- - .SH FILES - - .TP -@@ -394,11 +284,6 @@ Overrides the default gpg key identification set by \fBinit\fP. Keys must not - contain spaces and thus use of the hexidecimal key signature is recommended. - Multiple keys may be specified separated by spaces. - .TP --.I PASSWORD_STORE_GIT --Overrides the default root of the git repository, which is helpful if --\fIPASSWORD_STORE_DIR\fP is temporarily set to a sub-directory of the default --password store. --.TP - .I PASSWORD_STORE_X_SELECTION - Overrides the selection passed to \fBxclip\fP, by default \fIclipboard\fP. See - .BR xclip (1) -@@ -416,7 +301,6 @@ The location of the text editor used by \fBedit\fP. - .SH SEE ALSO - .BR gpg2 (1), - .BR pwgen (1), --.BR git (1), - .BR xclip (1). - - .SH AUTHOR -diff --git a/src/completion/pass.bash-completion b/src/completion/pass.bash-completion -index ea31fbf..f7e207b 100644 ---- a/src/completion/pass.bash-completion -+++ b/src/completion/pass.bash-completion -@@ -62,7 +62,7 @@ _pass() - { - COMPREPLY=() - local cur="${COMP_WORDS[COMP_CWORD]}" -- local commands="init ls find grep show insert generate edit rm mv cp git help version" -+ local commands="init ls find grep show insert generate edit rm mv cp help version" - if [[ $COMP_CWORD -gt 1 ]]; then - local lastarg="${COMP_WORDS[$COMP_CWORD-1]}" - case "${COMP_WORDS[1]}" in -@@ -97,9 +97,6 @@ _pass() - COMPREPLY+=($(compgen -W "-r --recursive -f --force" -- ${cur})) - _pass_complete_entries - ;; -- git) -- COMPREPLY+=($(compgen -W "init push pull config log reflog rebase" -- ${cur})) -- ;; - esac - else - COMPREPLY+=($(compgen -W "${commands}" -- ${cur})) -diff --git a/src/completion/pass.fish-completion b/src/completion/pass.fish-completion -index c32a42c..598b55e 100644 ---- a/src/completion/pass.fish-completion -+++ b/src/completion/pass.fish-completion -@@ -105,14 +105,5 @@ complete -c $PROG -f -A -n '__fish_pass_needs_command' -a "(__fish_pass_print_en - complete -c $PROG -f -A -n '__fish_pass_uses_command -c' -a "(__fish_pass_print_entries)" - complete -c $PROG -f -A -n '__fish_pass_uses_command --clip' -a "(__fish_pass_print_entries)" - --complete -c $PROG -f -A -n '__fish_pass_needs_command' -a git -d 'Command: execute a git command' --complete -c $PROG -f -A -n '__fish_pass_uses_command git' -a 'init' -d 'Initialize git repository' --complete -c $PROG -f -A -n '__fish_pass_uses_command git' -a 'status' -d 'Show status of the repo' --complete -c $PROG -f -A -n '__fish_pass_uses_command git' -a 'add' -d 'Add changes to the index' --complete -c $PROG -f -A -n '__fish_pass_uses_command git' -a 'commit' -d 'Commit changes to the repo' --complete -c $PROG -f -A -n '__fish_pass_uses_command git' -a 'push' -d 'Push changes to remote repo' --complete -c $PROG -f -A -n '__fish_pass_uses_command git' -a 'pull' -d 'Pull changes from remote repo' --complete -c $PROG -f -A -n '__fish_pass_uses_command git' -a 'log' -d 'View changelog' -- - complete -c $PROG -f -A -n '__fish_pass_needs_command' -a find -d 'Command: find a password file or directory matching pattern' - complete -c $PROG -f -A -n '__fish_pass_needs_command' -a grep -d 'Command: search inside of decrypted password files for matching pattern' -diff --git a/src/completion/pass.zsh-completion b/src/completion/pass.zsh-completion -index b658398..b0695e6 100644 ---- a/src/completion/pass.zsh-completion -+++ b/src/completion/pass.zsh-completion -@@ -63,18 +63,6 @@ _pass () { - "--recursive[recursively delete]" - _pass_complete_entries_with_subdirs - ;; -- git) -- local -a subcommands -- subcommands=( -- "init:Initialize git repository" -- "push:Push to remote repository" -- "pull:Pull from remote repository" -- "config:Show git config" -- "log:Show git log" -- "reflog:Show git reflog" -- ) -- _describe -t commands 'pass git' subcommands -- ;; - show|*) - _pass_cmd_show - ;; -@@ -93,7 +81,6 @@ _pass () { - "mv:Rename the password" - "cp:Copy the password" - "rm:Remove the password" -- "git:Call git on the password store" - "version:Output version information" - "help:Output help message" - ) -@@ -114,7 +101,7 @@ _pass_cmd_show () { - _pass_complete_entries_helper () { - local IFS=$'\n' - local prefix="${PASSWORD_STORE_DIR:-$HOME/.password-store}" -- _values -C 'passwords' $(find -L "$prefix" \( -name .git -o -name .gpg-id \) -prune -o $@ -print | sed -e "s#${prefix}/\{0,1\}##" -e 's#\.gpg##' | sort) -+ _values -C 'passwords' $(find -L "$prefix" -name .gpg-id -prune -o $@ -print | sed -e "s#${prefix}/\{0,1\}##" -e 's#\.gpg##' | sort) - } - - _pass_complete_entries_with_subdirs () { -diff --git a/src/password-store.sh b/src/password-store.sh -index cfc25cc..72a0ed6 100755 ---- a/src/password-store.sh -+++ b/src/password-store.sh -@@ -15,25 +15,10 @@ PREFIX="${PASSWORD_STORE_DIR:-$HOME/.password-store}" - X_SELECTION="${PASSWORD_STORE_X_SELECTION:-clipboard}" - CLIP_TIME="${PASSWORD_STORE_CLIP_TIME:-45}" - --export GIT_DIR="${PASSWORD_STORE_GIT:-$PREFIX}/.git" --export GIT_WORK_TREE="${PASSWORD_STORE_GIT:-$PREFIX}" -- - # - # BEGIN helper functions - # - --git_add_file() { -- [[ -d $GIT_DIR ]] || return -- git add "$1" || return -- [[ -n $(git status --porcelain "$1") ]] || return -- git_commit "$2" --} --git_commit() { -- local sign="" -- [[ -d $GIT_DIR ]] || return -- [[ $(git config --bool --get pass.signcommits) == "true" ]] && sign="-S" -- git commit $sign -m "$1" --} - yesno() { - [[ -t 0 ]] || return 0 - local response -@@ -254,9 +239,6 @@ cmd_usage() { - Renames or moves old-path to new-path, optionally forcefully, selectively reencrypting. - $PROGRAM cp [--force,-f] old-path new-path - Copies old-path to new-path, optionally forcefully, selectively reencrypting. -- $PROGRAM git git-command-args... -- If the password store is a git repository, execute a git command -- specified by git-command-args. - $PROGRAM help - Show this text. - $PROGRAM version -@@ -285,22 +267,16 @@ cmd_init() { - if [[ $# -eq 1 && -z $1 ]]; then - [[ ! -f "$gpg_id" ]] && die "Error: $gpg_id does not exist and so cannot be removed." - rm -v -f "$gpg_id" || exit 1 -- if [[ -d $GIT_DIR ]]; then -- git rm -qr "$gpg_id" -- git_commit "Deinitialize ${gpg_id}." -- fi - rmdir -p "${gpg_id%/*}" 2>/dev/null - else - mkdir -v -p "$PREFIX/$id_path" - printf "%s\n" "$@" > "$gpg_id" - local id_print="$(printf "%s, " "$@")" - echo "Password store initialized for ${id_print%, }" -- git_add_file "$gpg_id" "Set GPG id to ${id_print%, }." - fi - - agent_check - reencrypt_path "$PREFIX/$id_path" -- git_add_file "$PREFIX/$id_path" "Reencrypt password store using new GPG id ${id_print%, }." - } - - cmd_show() { -@@ -408,7 +384,6 @@ cmd_insert() { - read -r -p "Enter password for $path: " -e password - $GPG -e "${GPG_RECIPIENT_ARGS[@]}" -o "$passfile" "${GPG_OPTS[@]}" <<<"$password" - fi -- git_add_file "$passfile" "Add given password for $path to store." - } - - cmd_edit() { -@@ -434,7 +409,6 @@ cmd_edit() { - while ! $GPG -e "${GPG_RECIPIENT_ARGS[@]}" -o "$passfile" "${GPG_OPTS[@]}" "$tmp_file"; do - yesno "GPG encryption failed. Would you like to try again?" - done -- git_add_file "$passfile" "$action password for $path using ${EDITOR:-vi}." - } - - cmd_generate() { -@@ -476,7 +450,6 @@ cmd_generate() { - fi - local verb="Add" - [[ $inplace -eq 1 ]] && verb="Replace" -- git_add_file "$passfile" "$verb generated password for ${path}." - - if [[ $clip -eq 0 ]]; then - printf "\e[1m\e[37mThe generated password for \e[4m%s\e[24m is:\e[0m\n\e[1m\e[93m%s\e[0m\n" "$path" "$pass" -@@ -508,10 +481,6 @@ cmd_delete() { - [[ $force -eq 1 ]] || yesno "Are you sure you would like to delete $path?" - - rm $recursive -f -v "$passfile" -- if [[ -d $GIT_DIR && ! -e $passfile ]]; then -- git rm -qr "$passfile" -- git_commit "Remove $path from store." -- fi - rmdir -p "${passfile%/*}" 2>/dev/null - } - -@@ -548,33 +517,10 @@ cmd_copy_move() { - mv $interactive -v "$old_path" "$new_path" || exit 1 - [[ -e "$new_path" ]] && reencrypt_path "$new_path" - -- if [[ -d $GIT_DIR && ! -e $old_path ]]; then -- git rm -qr "$old_path" -- git_add_file "$new_path" "Rename ${1} to ${2}." -- fi - rmdir -p "$old_dir" 2>/dev/null - else - cp $interactive -r -v "$old_path" "$new_path" || exit 1 - [[ -e "$new_path" ]] && reencrypt_path "$new_path" -- git_add_file "$new_path" "Copy ${1} to ${2}." -- fi --} -- --cmd_git() { -- if [[ $1 == "init" ]]; then -- git "$@" || exit 1 -- git_add_file "$PREFIX" "Add current contents of password store." -- -- echo '*.gpg diff=gpg' > "$PREFIX/.gitattributes" -- git_add_file .gitattributes "Configure git repository for gpg file diff." -- git config --local diff.gpg.binary true -- git config --local diff.gpg.textconv "$GPG -d ${GPG_OPTS[*]}" -- elif [[ -d $GIT_DIR ]]; then -- tmpdir nowarn #Defines $SECURE_TMPDIR. We don't warn, because at most, this only copies encrypted files. -- export TMPDIR="$SECURE_TMPDIR" -- git "$@" -- else -- die "Error: the password store is not a git repository. Try \"$PROGRAM git init\"." - fi - } - -@@ -598,7 +544,6 @@ case "$1" in - delete|rm|remove) shift; cmd_delete "$@" ;; - rename|mv) shift; cmd_copy_move "move" "$@" ;; - copy|cp) shift; cmd_copy_move "copy" "$@" ;; -- git) shift; cmd_git "$@" ;; - *) COMMAND="show"; cmd_show "$@" ;; - esac - exit 0 diff --git a/sysutils/password-store/files/xclip.patch b/sysutils/password-store/files/xclip.patch deleted file mode 100644 index bfc06724a152..000000000000 --- a/sysutils/password-store/files/xclip.patch +++ /dev/null @@ -1,303 +0,0 @@ -diff --git a/README b/README -index 1cc01b9..10f841d 100644 ---- a/README -+++ b/README -@@ -19,8 +19,6 @@ Depends on: - http://www.gnupg.org/ - - git - http://www.git-scm.com/ --- xclip -- http://sourceforge.net/projects/xclip/ - - pwgen - http://sourceforge.net/projects/pwgen/ - - tree >= 1.7.0 -diff --git a/man/pass.1 b/man/pass.1 -index 8ac8ecf..9301122 100644 ---- a/man/pass.1 -+++ b/man/pass.1 -@@ -86,12 +86,8 @@ List names of passwords inside the tree that match \fIpass-names\fP by using the - .BR tree (1) - program. This command is alternatively named \fBsearch\fP. - .TP --\fBshow\fP [ \fI--clip\fP, \fI-c\fP ] \fIpass-name\fP --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 line to the --clipboard using --.BR xclip (1) --and then restore the clipboard after 45 (or \fIPASSWORD_STORE_CLIP_TIME\fP) seconds. -+\fBshow\fP \fIpass-name\fP -+Decrypt and print a password named \fIpass-name\fP. - .TP - \fBinsert\fP [ \fI--echo\fP, \fI-e\fP | \fI--multiline\fP, \fI-m\fP ] [ \fI--force\fP, \fI-f\fP ] \fIpass-name\fP - Insert a new password into the password store called \fIpass-name\fP. This will -@@ -110,15 +106,11 @@ ensure that temporary files are created in \fI/dev/shm\fP in order to avoid writ - difficult-to-erase disk sectors. If \fI/dev/shm\fP is not accessible, fallback to - the ordinary \fITMPDIR\fP location, and print a warning. - .TP --\fBgenerate\fP [ \fI--no-symbols\fP, \fI-n\fP ] [ \fI--clip\fP, \fI-c\fP ] [ \fI--in-place\fP, \fI-i\fP | \fI--force\fP, \fI-f\fP ] \fIpass-name pass-length\fP -+\fBgenerate\fP [ \fI--no-symbols\fP, \fI-n\fP ] [ \fI--in-place\fP, \fI-i\fP | \fI--force\fP, \fI-f\fP ] \fIpass-name pass-length\fP - Generate a new password using - .BR pwgen (1) - of length \fIpass-length\fP and insert into \fIpass-name\fP. If \fI--no-symbols\fP or \fI-n\fP - is specified, do not use any non-alphanumeric characters in the generated password. --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) --and then restore the clipboard after 45 (or \fIPASSWORD_STORE_CLIP_TIME\fP) seconds. - Prompt before overwriting an existing password, - unless \fI--force\fP or \fI-f\fP is specified. If \fI--in-place\fP or \fI-i\fP is - specified, do not interactively prompt, and only replace the first line of the password -@@ -223,11 +215,6 @@ Show existing password - .br - sup3rh4x3rizmynam3 - .TP --Copy existing password to clipboard --.B zx2c4@laptop ~ $ pass -c Email/zx2c4.com --.br --Copied Email/jason@zx2c4.com to clipboard. Will clear in 45 seconds. --.TP - Add password to store - .B zx2c4@laptop ~ $ pass insert Business/cheese-whiz-factory - .br -@@ -266,10 +253,8 @@ The generated password to Email/jasondonenfeld.com is: - .br - YqFsMkBeO6di - .TP --Generate new password and copy it to the clipboard --.B zx2c4@laptop ~ $ pass generate -c Email/jasondonenfeld.com 19 --.br --Copied Email/jasondonenfeld.com to clipboard. Will clear in 45 seconds. -+Generate new password -+.B zx2c4@laptop ~ $ pass generate Email/jasondonenfeld.com 19 - .TP - Remove password from store - .B zx2c4@laptop ~ $ pass remove Business/cheese-whiz-factory -@@ -399,15 +384,6 @@ Overrides the default root of the git repository, which is helpful if - \fIPASSWORD_STORE_DIR\fP is temporarily set to a sub-directory of the default - password store. - .TP --.I PASSWORD_STORE_X_SELECTION --Overrides the selection passed to \fBxclip\fP, by default \fIclipboard\fP. See --.BR xclip (1) --for more info. --.TP --.I PASSWORD_STORE_CLIP_TIME --Specifies the number of seconds to wait before restoring the clipboard, by default --\fI45\fP seconds. --.TP - .I PASSWORD_STORE_UMASK - Sets the umask of all files modified by pass, by default \fI077\fP. - .TP -@@ -417,7 +393,6 @@ The location of the text editor used by \fBedit\fP. - .BR gpg2 (1), - .BR pwgen (1), - .BR git (1), --.BR xclip (1). - - .SH AUTHOR - .B pass -diff --git a/src/completion/pass.bash-completion b/src/completion/pass.bash-completion -index ea31fbf..86860cb 100644 ---- a/src/completion/pass.bash-completion -+++ b/src/completion/pass.bash-completion -@@ -78,7 +78,6 @@ _pass() - _pass_complete_entries - ;; - show|-*) -- COMPREPLY+=($(compgen -W "-c --clip" -- ${cur})) - _pass_complete_entries 1 - ;; - insert) -@@ -86,7 +85,7 @@ _pass() - _pass_complete_entries - ;; - generate) -- COMPREPLY+=($(compgen -W "-n --no-symbols -c --clip -f --force -i --in-place" -- ${cur})) -+ COMPREPLY+=($(compgen -W "-n --no-symbols -f --force -i --in-place" -- ${cur})) - _pass_complete_entries - ;; - cp|copy|mv|rename) -diff --git a/src/completion/pass.fish-completion b/src/completion/pass.fish-completion -index c32a42c..abcff4d 100644 ---- a/src/completion/pass.fish-completion -+++ b/src/completion/pass.fish-completion -@@ -75,7 +75,6 @@ complete -c $PROG -f -A -n '__fish_pass_uses_command insert' -a "(__fish_pass_pr - - complete -c $PROG -f -A -n '__fish_pass_needs_command' -a generate -d 'Command: generate new password' - complete -c $PROG -f -A -n '__fish_pass_uses_command generate' -s n -l no-symbols -d 'Do not use special symbols' --complete -c $PROG -f -A -n '__fish_pass_uses_command generate' -s c -l clip -d 'Put the password in clipboard' - complete -c $PROG -f -A -n '__fish_pass_uses_command generate' -s f -l force -d 'Do not prompt before overwritting' - complete -c $PROG -f -A -n '__fish_pass_uses_command generate' -s i -l in-place -d 'Replace only the first line with the generated password' - complete -c $PROG -f -A -n '__fish_pass_uses_command generate' -a "(__fish_pass_print_entry_dirs)" -@@ -97,13 +96,10 @@ complete -c $PROG -f -A -n '__fish_pass_needs_command' -a edit -d 'Command: edit - complete -c $PROG -f -A -n '__fish_pass_uses_command edit' -a "(__fish_pass_print_entries)" - - complete -c $PROG -f -A -n '__fish_pass_needs_command' -a show -d 'Command: show existing password' --complete -c $PROG -f -A -n '__fish_pass_uses_command show' -s c -l clip -d 'Put password in clipboard' - complete -c $PROG -f -A -n '__fish_pass_uses_command show' -a "(__fish_pass_print_entries)" - # When no command is given, `show` is defaulted. --complete -c $PROG -f -A -n '__fish_pass_needs_command' -s c -l clip -d 'Put password in clipboard' - complete -c $PROG -f -A -n '__fish_pass_needs_command' -a "(__fish_pass_print_entries)" - complete -c $PROG -f -A -n '__fish_pass_uses_command -c' -a "(__fish_pass_print_entries)" --complete -c $PROG -f -A -n '__fish_pass_uses_command --clip' -a "(__fish_pass_print_entries)" - - complete -c $PROG -f -A -n '__fish_pass_needs_command' -a git -d 'Command: execute a git command' - complete -c $PROG -f -A -n '__fish_pass_uses_command git' -a 'init' -d 'Initialize git repository' -diff --git a/src/completion/pass.zsh-completion b/src/completion/pass.zsh-completion -index b658398..0ab3e43 100644 ---- a/src/completion/pass.zsh-completion -+++ b/src/completion/pass.zsh-completion -@@ -41,8 +41,6 @@ _pass () { - _arguments : \ - "-n[don't include symbols in password]" \ - "--no-symbols[don't include symbols in password]" \ -- "-c[copy password to the clipboard]" \ -- "--clip[copy password to the clipboard]" \ - "-f[force overwrite]" \ - "--force[force overwrite]" \ - "-i[replace first line]" \ -@@ -106,9 +104,6 @@ _pass () { - } - - _pass_cmd_show () { -- _arguments : \ -- "-c[put it on the clipboard]" \ -- "--clip[put it on the clipboard]" - _pass_complete_entries - } - _pass_complete_entries_helper () { -diff --git a/src/password-store.sh b/src/password-store.sh -index cfc25cc..06ddeb2 100755 ---- a/src/password-store.sh -+++ b/src/password-store.sh -@@ -12,8 +12,6 @@ which gpg2 &>/dev/null && GPG="gpg2" - [[ -n $GPG_AGENT_INFO || $GPG == "gpg2" ]] && GPG_OPTS+=( "--batch" "--use-agent" ) - - PREFIX="${PASSWORD_STORE_DIR:-$HOME/.password-store}" --X_SELECTION="${PASSWORD_STORE_X_SELECTION:-clipboard}" --CLIP_TIME="${PASSWORD_STORE_CLIP_TIME:-45}" - - export GIT_DIR="${PASSWORD_STORE_GIT:-$PREFIX}/.git" - export GIT_WORK_TREE="${PASSWORD_STORE_GIT:-$PREFIX}" -@@ -135,33 +133,6 @@ check_sneaky_paths() { - # BEGIN platform definable - # - --clip() { -- # 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" | base64)" -- echo -n "$1" | xclip -selection "$X_SELECTION" -- ( -- ( exec -a "$sleep_argv0" sleep "$CLIP_TIME" ) -- local now="$(xclip -o -selection "$X_SELECTION" | base64)" -- [[ $now != $(echo -n "$1" | base64) ]] && before="$now" -- -- # It might be nice to programatically check to see if klipper exists, -- # as well as checking for other common clipboard managers. But for now, -- # this works fine -- if qdbus isn't there or if klipper isn't running, -- # this essentially becomes a no-op. -- # -- # Clipboard managers frequently write their history out in plaintext, -- # 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" -- ) 2>/dev/null & disown -- echo "Copied $2 to clipboard. Will clear in $CLIP_TIME seconds." --} - tmpdir() { - [[ -n $SECURE_TMPDIR ]] && return - local warn=1 -@@ -232,9 +203,8 @@ cmd_usage() { - List passwords. - $PROGRAM find pass-names... - List passwords that match pass-names. -- $PROGRAM [show] [--clip,-c] pass-name -- Show existing password and optionally put it on the clipboard. -- If put on the clipboard, it will be cleared in $CLIP_TIME seconds. -+ $PROGRAM [show] pass-name -+ Show existing password. - $PROGRAM grep search-string - Search for password files containing search-string when decrypted. - $PROGRAM insert [--echo,-e | --multiline,-m] [--force,-f] pass-name -@@ -243,9 +213,8 @@ cmd_usage() { - overwriting existing password unless forced. - $PROGRAM edit pass-name - Insert a new password or edit an existing password using ${EDITOR:-vi}. -- $PROGRAM generate [--no-symbols,-n] [--clip,-c] [--in-place,-i | --force,-f] pass-name pass-length -+ $PROGRAM generate [--no-symbols,-n] [--in-place,-i | --force,-f] pass-name pass-length - Generate a new password of pass-length with optionally no symbols. -- Optionally put it on the clipboard and clear board after 45 seconds. - Prompt before overwriting existing password unless forced. - Optionally replace only the first line of an existing file with a new password. - $PROGRAM rm [--recursive,-r] [--force,-f] pass-name -@@ -304,28 +273,11 @@ cmd_init() { - } - - cmd_show() { -- local opts clip=0 -- opts="$($GETOPT -o c -l clip -n "$PROGRAM" -- "$@")" -- local err=$? -- eval set -- "$opts" -- while true; do case $1 in -- -c|--clip) clip=1; shift ;; -- --) shift; break ;; -- esac done -- -- [[ $err -ne 0 ]] && die "Usage: $PROGRAM $COMMAND [--clip,-c] [pass-name]" -- - local path="$1" - local passfile="$PREFIX/$path.gpg" - check_sneaky_paths "$path" - if [[ -f $passfile ]]; then -- if [[ $clip -eq 0 ]]; then - exec $GPG -d "${GPG_OPTS[@]}" "$passfile" -- else -- local pass="$($GPG -d "${GPG_OPTS[@]}" "$passfile" | head -n 1)" -- [[ -n $pass ]] || exit 1 -- clip "$pass" "$path" -- fi - elif [[ -d $PREFIX/$path ]]; then - if [[ -z $path ]]; then - echo "Password Store" -@@ -438,19 +390,18 @@ cmd_edit() { - } - - cmd_generate() { -- local opts clip=0 force=0 symbols="-y" inplace=0 -- opts="$($GETOPT -o ncif -l no-symbols,clip,in-place,force -n "$PROGRAM" -- "$@")" -+ local opts force=0 symbols="-y" inplace=0 -+ opts="$($GETOPT -o nif -l no-symbols,in-place,force -n "$PROGRAM" -- "$@")" - local err=$? - eval set -- "$opts" - while true; do case $1 in - -n|--no-symbols) symbols=""; shift ;; -- -c|--clip) clip=1; shift ;; - -f|--force) force=1; shift ;; - -i|--in-place) inplace=1; shift ;; - --) shift; break ;; - esac done - -- [[ $err -ne 0 || $# -ne 2 || ( $force -eq 1 && $inplace -eq 1 ) ]] && die "Usage: $PROGRAM $COMMAND [--no-symbols,-n] [--clip,-c] [--in-place,-i | --force,-f] pass-name pass-length" -+ [[ $err -ne 0 || $# -ne 2 || ( $force -eq 1 && $inplace -eq 1 ) ]] && die "Usage: $PROGRAM $COMMAND [--no-symbols,-n] [--in-place,-i | --force,-f] pass-name pass-length" - local path="$1" - local length="$2" - check_sneaky_paths "$path" -@@ -478,11 +429,7 @@ cmd_generate() { - [[ $inplace -eq 1 ]] && verb="Replace" - git_add_file "$passfile" "$verb generated password for ${path}." - -- if [[ $clip -eq 0 ]]; then -- printf "\e[1m\e[37mThe generated password for \e[4m%s\e[24m is:\e[0m\n\e[1m\e[93m%s\e[0m\n" "$path" "$pass" -- else -- clip "$pass" "$path" -- fi -+ printf "\e[1m\e[37mThe generated password for \e[4m%s\e[24m is:\e[0m\n\e[1m\e[93m%s\e[0m\n" "$path" "$pass" - } - - cmd_delete() { diff --git a/sysutils/password-store/pkg-plist b/sysutils/password-store/pkg-plist index 4567fe6ffa8c..4a3f3e8b2ab4 100644 --- a/sysutils/password-store/pkg-plist +++ b/sysutils/password-store/pkg-plist @@ -1,6 +1,5 @@ %%CONTRIB%%%%DATADIR%%/dmenu/README.md %%CONTRIB%%%%DATADIR%%/dmenu/passmenu -%%CONTRIB%%%%DATADIR%%/emacs/.gitignore %%CONTRIB%%%%DATADIR%%/emacs/Cask %%CONTRIB%%%%DATADIR%%/emacs/README.md %%CONTRIB%%%%DATADIR%%/emacs/password-store.el @@ -18,7 +17,11 @@ %%CONTRIB%%%%DATADIR%%/pass.fish-completion %%CONTRIB%%%%DATADIR%%/pass.zsh-completion %%CONTRIB%%%%DATADIR%%/related-projects.txt -%%PORTDOCS%%man/man1/pass.1.gz +%%CONTRIB%%%%DATADIR%%/vim/noplaintext.vim +%%CONTRIB%%etc/bash_completion.d/password-store +%%CONTRIB%%share/fish/completions/password-store.fish +%%CONTRIB%%share/zsh/site-functions/_pass %%PORTEXAMPLES%%%%EXAMPLESDIR%%/example-filter.sh bin/pass libexec/pass +man/man1/pass.1.gz |