pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/security/keychain



Module Name:    pkgsrc
Committed By:   vins
Date:           Mon Nov  3 16:37:53 UTC 2025

Modified Files:
        pkgsrc/security/keychain: Makefile distinfo
        pkgsrc/security/keychain/patches: patch-keychain.sh

Log Message:
security/keychain: update to 2.9.8

## keychain 2.9.8 (2 Nov 2025)

This release fixes the release tarball to include all necessary files for building and using keychain.

Bug fixes:

* Fixed release tarball generation to include bash completion script (`completions/keychain.bash`),
  Makefile, source files, and other essential components. Previous release (2.9.7) tarball was
  missing these files.
* Improved tarball generation to use `git archive` as source of truth, eliminating manual file
  inventory and preventing future omissions.
* Updated release logic to use `dist/` directory for archive generation. GitHub workflow plumbing
  work for new `/dist` tarball location, associated `Makefile` and CI fixes.

Documentation:

* Added bash completion information to keychain man page (NOTES section).

## keychain 2.9.7 (31 Oct 2025)

This release fixes critical issues with spaces in HOME directories and usernames, and adds official Git Bash on Windows compatibility.

Bug fixes:

* Fixed keychain failures when HOME directory path contains spaces (e.g., `C:\Users\John Doe`).
  ([#188](https://github.com/danielrobbins/keychain/issues/188))
* Fixed username detection for usernames containing spaces (e.g., "Mathew Binkley" on Windows).
  Implemented portable `get_owner()` function using POSIX-defined `ls -ld` output format with
  intelligent field parsing to distinguish space-in-username from normal owner/group fields.
* Fixed pidfile generation to properly quote `SSH_AUTH_SOCK` paths containing spaces while
  leaving `SSH_AGENT_PID` unquoted (numeric value). Rewrote `write_pidfile()` to use robust
  eval-in-subshell approach for extracting variable values from ssh-agent output.
* All pidfile formats (sh/csh/fish) now correctly handle paths with spaces.
* Fixed ssh-agent invocation to always use `-s` option for Bourne-compatible output, simplifying
  pidfile generation and improving compatibility across different environments.
  ([#185](https://github.com/danielrobbins/keychain/issues/185))

Testing and quality improvements:

* Added `scripts/test-space-home.sh` - automated test harness that simulates HOME directories
  with spaces and validates proper handling. Returns proper exit codes for CI integration.
* Integrated space-in-home test into GitHub Actions release workflow to prevent regressions.
* Added ShellCheck disable comments with justification for intentional POSIX ls usage.
* Fixed Unicode arrow characters in comments that caused ShellCheck errors.

New features:

* Added bash completion support (`completions/keychain.bash`) with intelligent context-aware
  completion for command-line options, SSH keys, GPG keys, and full `--extended` mode support.
  Based on work by @mikkoi with significant enhancements for keychain 2.9.x features:
  - Dynamically parses `keychain --help` for up-to-date option completion
  - Completes SSH key names from `~/.ssh/*.pub` files
  - Completes GPG key IDs (8-character short format)
  - `--extended` mode: `sshk:<tab>`, `gpgk:<tab>`, `host:<tab>` with prefix completion
  - Detects hostnames from `~/.ssh/config` for `host:` completion
  - ShellCheck compliant
  ([#186](https://github.com/danielrobbins/keychain/issues/186))
* Added Makefile targets: `install-completions` and `uninstall-completions` for optional
  bash completion installation (separate from default install target).
* Updated RPM spec file (`keychain.spec.in`) for modern distributions:
  - Modernized description to focus on OpenSSH and GnuPG (removed obsolete ssh.com/Sun SSH)
  - Updated dependencies: `sh-utils` → `coreutils`, added `Recommends: bash-completion`
  - Added bash completion installation to RPM package

Documentation:

* Updated keychain.pod with detailed implementation notes for space handling, POSIX compliance,
  and the robust eval approach used in pidfile generation.
* Standardized option ordering in keychain.pod to follow Unix convention (short option first,
  then long option), ensuring compatibility with bash completion regex patterns.
* Added comprehensive COMPATIBILITY section to keychain.pod documenting:
  - Minimum OpenSSH version (7.3+) and supported features
  - GnuPG 2.1+ requirements for gpg-agent integration
  - Shell compatibility (Bourne/POSIX, csh/tcsh, fish)
  - **Git Bash (MSYS2) for Windows** - officially documented as supported platform
  - Legacy SSH implementation status (SunSSH, ssh.com)
  - Systemd user environment integration
  - Spaces in HOME and paths handling details
* Updated README.md with bash completion installation instructions for both system-wide
  and user-only installations.


To generate a diff of this commit:
cvs rdiff -u -r1.45 -r1.46 pkgsrc/security/keychain/Makefile
cvs rdiff -u -r1.30 -r1.31 pkgsrc/security/keychain/distinfo
cvs rdiff -u -r1.1 -r1.2 pkgsrc/security/keychain/patches/patch-keychain.sh

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/security/keychain/Makefile
diff -u pkgsrc/security/keychain/Makefile:1.45 pkgsrc/security/keychain/Makefile:1.46
--- pkgsrc/security/keychain/Makefile:1.45      Sun Oct 12 05:25:16 2025
+++ pkgsrc/security/keychain/Makefile   Mon Nov  3 16:37:52 2025
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.45 2025/10/12 05:25:16 vins Exp $
+# $NetBSD: Makefile,v 1.46 2025/11/03 16:37:52 vins Exp $
 
-DISTNAME=      keychain-2.9.6
+DISTNAME=      keychain-2.9.8
 CATEGORIES=    security
 MASTER_SITES=  ${MASTER_SITE_GITHUB:=funtoo/}
 

Index: pkgsrc/security/keychain/distinfo
diff -u pkgsrc/security/keychain/distinfo:1.30 pkgsrc/security/keychain/distinfo:1.31
--- pkgsrc/security/keychain/distinfo:1.30      Sun Oct 12 05:25:16 2025
+++ pkgsrc/security/keychain/distinfo   Mon Nov  3 16:37:52 2025
@@ -1,7 +1,7 @@
-$NetBSD: distinfo,v 1.30 2025/10/12 05:25:16 vins Exp $
+$NetBSD: distinfo,v 1.31 2025/11/03 16:37:52 vins Exp $
 
-BLAKE2s (keychain-2.9.6.tar.gz) = ca81882467df1dd5b19c3d6ead58394cbef264fbf8fc407487d7416d16b44294
-SHA512 (keychain-2.9.6.tar.gz) = c94d876bfabb2a660ee36bb47712b2ac8bf14e49841fbae94269aec224eed812510bed1cd795763f26b1192d9409380f18f41193a6baac5fa39ddb6331c91e87
-Size (keychain-2.9.6.tar.gz) = 51990 bytes
+BLAKE2s (keychain-2.9.8.tar.gz) = 418dd848d7f6c4bedc8649af5ed2900d8ec0b6c24c58006ca25a7b387782f613
+SHA512 (keychain-2.9.8.tar.gz) = f6677f1e365703bada641757bb7d06d8d578c48fb0350c7e3ea032c6c3b4e725f59fd10800ef02aadbf25e8e973135da5d4d3705270340dc75b6756a736a71af
+Size (keychain-2.9.8.tar.gz) = 61665 bytes
 SHA1 (patch-Makefile) = 3d41a10a50c360c1fb63dba4265ba369f6b4a772
-SHA1 (patch-keychain.sh) = 792bb3cd82e36a4b9d4ee48440333917c5ccfe4f
+SHA1 (patch-keychain.sh) = 4b008e458567734f6c3251d9339a1b36d24bca47

Index: pkgsrc/security/keychain/patches/patch-keychain.sh
diff -u pkgsrc/security/keychain/patches/patch-keychain.sh:1.1 pkgsrc/security/keychain/patches/patch-keychain.sh:1.2
--- pkgsrc/security/keychain/patches/patch-keychain.sh:1.1      Sun Jun  1 09:50:26 2025
+++ pkgsrc/security/keychain/patches/patch-keychain.sh  Mon Nov  3 16:37:52 2025
@@ -1,4 +1,4 @@
-$NetBSD: patch-keychain.sh,v 1.1 2025/06/01 09:50:26 vins Exp $
+$NetBSD: patch-keychain.sh,v 1.2 2025/11/03 16:37:52 vins Exp $
 
 Handle an empty (or unset) SSH_ASKPASS variable.
 
@@ -12,10 +12,3 @@ Handle an empty (or unset) SSH_ASKPASS v
        if $noguiopt || [ -z "$SSH_ASKPASS" ] || [ -z "$DISPLAY" ]; then
                unset DISPLAY           # DISPLAY="" can cause problems
                unset SSH_ASKPASS       # make sure ssh-add doesn't try SSH_ASKPASS
-@@ -1084,4 +1085,4 @@ if wantagent gpg; then
-       load_gpg_keys $(echo "${gpgkeys}" | gpg_listmissing)
- fi
- 
--qprint        # trailing newline
-\ No newline at end of file
-+qprint        # trailing newline



Home | Main Index | Thread Index | Old Index