Hide Forgot
Description of problem: The latest version of 'pass' uses the '-C' git option which is not available in the git version available on CentOS 7. Version-Release number of selected component (if applicable): pass-1.7.3-1.el7.noarch git-1.8.3.1-14.el7_5.x86_64 How reproducible: Every time. Steps to Reproduce: 1. Not have a $HOME/.password-store 2. Run `pass git init` (to initialize the .password store as a git repo) Really any `pass git <...>` command fails with the same error Actual results: Unknown option: -C usage: git [--version] [--help] [-c name=value] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path] [-p|--paginate|--no-pager] [--no-replace-objects] [--bare] [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>] <command> [<args>] Expected results: Initialized empty Git repository in ... Additional info: For other commands sometimes the following error is displayed: "Error: the password store is not a git repository. Try "pass git init"." But the underlying error is the same. pass uses '-C' since ~1.7 was released, I guess the previous version in EPEL was a ~1.6.x
After building a newer git, I found pass is also incompatible with the version of tree available on CentOS7. `tree` is used for the `pass find ...` subcommand. $ tree --version tree v1.6.0 (...) $ pass find shops Search Terms: shops tree: Invalid argument -`-'. I can submit a separate bug for this, but it really seems the 1.7.x releases of pass are ahead of their time in the CentOS/EPEL7 environment.
I had the same issue(s). For use at a client site I updated the EPEL pass RPM to require at least the versions of tree and git specified in passwordstore.org's requirements list, and built newer versions of both git at tree to satisfy those dependencies. Git version required is at least 1.8.5 (I built the last 1.8.5 release, 1.8.5.6). Tree version required is at least 1.7.0.
I am running RHEL 7.6. It has git 1.8.3.1, just short of what's needed. Would be great if this would be fixed soon.
Christophe, how do you want to handle this? I can think of two possible options. 1. create a patch to make pass compatible with the versions of git and tree shipped in RHEL 7 2. downgrade to a compatible version of pass and add an epoch
1. would be preferrable, but pingou is supposed to be the maintainer for the epel7 branch of pass ;)
That may be the case, but you're the one that submitted the incompatible update. https://bodhi.fedoraproject.org/updates/?packages=pass&release=epel-7 Please take care of this, either yourself or by coordinating with pingou.
My guess would be that someone asked me if I could push to epel7 as well /o\
This seems to be rather stalled for months now, and pass stays unusable. Maybe even though the downgrade is not the best solution, it is the only possibility if nobody feels responsible?
The needed functionality is tree --ignore-case --matchdirs. Maybe we can emulate this (suboptimally) with tree -f |sed -i 's,${PREFIX},,' | grep -i ? Alternatively, we could try building a private copy of an up to date tree as part of pass.spec, and install it in /usr/libexec/password-store/ ?
And I forgot to ask if someone would be up for providing a patch for this? :)
(In reply to Christophe Fergeau from comment #9) > The needed functionality is tree --ignore-case --matchdirs. Maybe we can > emulate this (suboptimally) with tree -f |sed -i 's,${PREFIX},,' | grep -i ? > Alternatively, we could try building a private copy of an up to date tree as > part of pass.spec, and install it in /usr/libexec/password-store/ ? There are also missing parts of Git functionality as outlined in comment #2, so that would be a non-trivial patch...
Christophe, this has been broken for 7 months now. Have you tried to contact pingou yet, other than the needsinfo flag? Alternatively, have you considered contacting upstream and asking them to restore compatibility with git 1.8.3.1 and tree 1.6.0? If you can't get this sorted out I'm just going to retire the epel7 branch. There is no sense in shipping a broken package.
(In reply to Carl George from comment #12) > Christophe, this has been broken for 7 months now. Have you tried to > contact pingou yet, other than the needsinfo flag? Alternatively, have you > considered contacting upstream and asking them to restore compatibility with > git 1.8.3.1 and tree 1.6.0? > > If you can't get this sorted out I'm just going to retire the epel7 branch. > There is no sense in shipping a broken package. Feel free to go ahead with either of these solutions. Downgrading with an epoch would be another option, but some security patches would need to be backported iirc...
> Have you tried to contact pingou yet, other than the needsinfo flag? FTR, yes we've been in touched. The issue is that both of us worked on pass in EPEL7 because we were asked by others but neither of us is using it there. I am entirely fine with retiring it, unless someone wants to invest time and efforts into either solutions described here.
(In reply to Christophe Fergeau from comment #14) > Feel free to go ahead with either of these solutions. Downgrading with an > epoch would be another option, but some security patches would need to be > backported iirc... For what it's worth, I think downgrading is the lesser evil from a user's point of view.
I retired the epel7 branch. https://src.fedoraproject.org/rpms/pass/c/e86cf0da924d1023acdc937d335c7533434751dc
If anyone picks this back up again in the future, and thinks it will be simple to just revert to pass 1.5 with an epoch, be aware that version if vulnerable to CVE-2018-12356 (bug 1591572).
May be add this again with forbidden "pass git init" feature? Because of that qtpass can't be installed from epel7 https://bugzilla.redhat.com/show_bug.cgi?id=1760988
I am asked upstream and they give this solution https://lists.zx2c4.com/pipermail/password-store/2019-October/003791.html sed 's/git -C/xgit/' then add this function: xgit() { cd "$1" || return 1 shift git "$@" }
If anyone wants to help sort this out for the epel7 branch, feel free to send a pull request to the pass master branch to make it compatible. https://src.fedoraproject.org/rpms/pass/tree/master Once the master branch builds successfully for EL7, I'd be happy to unretire the epel7 branch and merge master back to it. But be aware, the current version of pass is incompatible with both EL7's git and tree versions. We'll need patches to fix both issues.
Created attachment 1784645 [details] Fix EPEL7 Incompatibility "git format-patch" email to support `git v1.8.3.1` and `tree v1.6.0`
(In reply to Carl George from comment #21) > If anyone wants to help sort this out for the epel7 branch, feel free to > send a pull request to the pass master branch to make it compatible. > > https://src.fedoraproject.org/rpms/pass/tree/master > > Once the master branch builds successfully for EL7, I'd be happy to unretire > the epel7 branch and merge master back to it. But be aware, the current > version of pass is incompatible with both EL7's git and tree versions. > We'll need patches to fix both issues. I tried submitting a PR, but between not being able to agree to the Fedora Project Contributor Agreement ("FAS2 is deprecated") and not being able to find `pass` in the list of projects, I gave up... So I've attached a "git format-patch" email version. Maybe that will help? «crossing fingers» PS — It's a shame it took two-and-a-half years (and the likes of somebody like *ME!*) to get this fixed; it was really only ~4 lines of code for each incompatibility. Thanks!