-
-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
pinentry-mac: 1.1.0.3 (with support for Apple Silicon) #68265
Conversation
cfd0602
to
fda64df
Compare
The two commits are not from upstream:
It seems to me like the software is not actually maintained. |
This is part of https://gpgtools.org, which is maintained. They ship pinentry-mac as part of GPG Suite. The main repo has recent commits: https://github.com/GPGTools/MacGPG2 |
Then we want to build it from the source that is maintained (https://releases.gpgtools.org/GPG_Suite-2020.2.txz), instead of the repo, I suppose. What I'm saying is simply: we don't want to carry patches that have been opened at a github repo that hasn't seen any activity for years, and where our previous patches for 10.14 support (!) still haven't been merged or commented upon. |
fda64df
to
d44053b
Compare
What I'm wondering is: this is a formula with 2,458 monthly installs, on user request (not as dependency). This must be because there is a guide/tutorial/doc somewhere that recommends installing this. We need to tell them we are deprecating this, unless it is maintained, and seek suggestions on what users should use instead. |
I've asked GPGTools at https://twitter.com/fxcoudert/status/1346456781204168704 |
I think it's the only way to sign git commits on macOS. Or at least the recommended way to manage the certificates for it. |
Hmm, I tried downloading that file and building pinentry from it, but didn't have much luck. It seems like maybe some files are missing, but I'm not too familiar with the build tools to tell... I also tried to investigate why the build was failing on Intel Macs, and I'm at a point where I don't really understand it at all. If I run Running The only reference to I also realised that the middle patch isn't actually required, so I've updated the commit to only apply that patch, and only apply it for arm builds. This means that the only thing that is changed for arm builds is to add
I understand this sentiment, since it's not Homebrews place to maintain the software. How do you feel about this when it's just patching inreplace "pinentry-mac.xcodeproj/project.pbxproj", /VALID_ARCHS = "(.*)";/, "VALID_ARCHS = \"\\1 arm64\";" or write out an xcconfig file like is done in the Lines 24 to 32 in 9adfd41
|
I installed it since I wanted to sign git commits. On my previous (Intel) Mac I have used their commercial offering (because I thought it was hard to setup the open source version), but since that didn't have native M1 support (without installing Rosetta) I went through the extra trouble. Now that I know how easy it was to get commit signing to work without the commercial package I will definitely prefer this way in the future.
Neat 👍 |
It's not the only way, but it certainly makes signing commits a lot easier, as it allows you to use Keychain with
My understanding is that their binaries are the same as the open-source version. What they sell are support plans to go with the binaries. |
So their binaries don't build on 10.14 and later? Seems unlikely… GPGTools/pinentry-mac#7 |
Well, they say their software is still open source:
|
They also might be a bit more responsive on their forums: https://gpgtools.tenderapp.com/discussions/problems |
@SMillerDev it seems like they made the thread private, did they give you an answer? can you share it? |
It sounds like they still mean to support it but just forgot it existed? |
IIRC upstream builds their binaries from this repo/branch: https://github.com/GPGTools/pinentry/tree/dev |
Nice find @zeha! It seems like the "pinentry" folder in GPG_Suite-2020.2.txz is the "macosx" folder in https://github.com/GPGTools/pinentry/tree/dev. It's still not straight forward how to actually build it though, but I managed to get out a binary with theses steps: autoreconf --install
autoconf
./configure --disable-ncurses
make It does however fail after building edit: the binary built with these instructions reports itself as "pinentry-mac (pinentry) 1.1.0" as opposed to the previous "pinentry-mac (pinentry) 0.9.4", so this seems to be a newer version |
Hi! We are sorry for not chiming in here earlier. It appears that the brew formula is based on a repository which has not been in use by us for quite some time. The pinentry-mac repository contains an old version which was disconnected from the upstream version of pinentry. We have since integrated pinentry-mac into a fork of the upstream pinentry, as the idea was to have it included in the upstream version (which has yet to happen however). So the always up to date version of pinentry can be found at https://github.com/GPGTools/pinentry (use the dev branch). @LinusU: You have to add the configure option --enable-maintainer-mode in order to have it build the doc target. @SMillerDev I remember that in the past (quite some time ago) when a formula had a dependency on gnupg and MacGPG was installed, brew was happy to accept our version instead. This seems to no longer be the case, which unfortunately leads to compatibility issues if our users have installed both versions. In order to support all features of pinentry-mac it would also make sense to add the following patch to gpg-agent: |
Thanks for the response, @lukele. There are no releases tagged in https://github.com/GPGTools/pinentry. Is it possible for you to tag the stable release there? |
@carlocab The stable release is now tagged: v1.1.0.3 |
Thanks, @lukele. @LinusU, can you update this PR to use the tarball at https://github.com/GPGTools/pinentry/archive/v1.1.0.3.tar.gz ? |
So should this be replacing all installations of |
Yes, it should. That will be handled by the fact that the switch in source will be a version bump.
Just include the patch in the new version of the formula, the version bump takes care of the rest. |
In some parts the license is defined as GPL 3 or later: https://github.com/GPGTools/pinentry-mac/blob/8d811e25d58e88d804f61e2bcba3b0b2ddef402f/Source/main.m#L13-L16 At other places it's GPL 2 or later: https://github.com/GPGTools/pinentry-mac/blob/8d811e25d58e88d804f61e2bcba3b0b2ddef402f/Source/pinentry-0.9.4/pinentry/password-cache.h#L6-L9
d44053b
to
35926dd
Compare
35926dd
to
23efec9
Compare
Thanks, @LinusU! |
🤖 A scheduled task has triggered a merge. |
Submitted #69405 as a follow up with the |
brew install --build-from-source <formula>
, where<formula>
is the name of the formula you're submitting?brew test <formula>
, where<formula>
is the name of the formula you're submitting?brew audit --strict <formula>
(after doingbrew install <formula>
)?This pull request adds to more patches (GPGTools/pinentry-mac#8 and GPGTools/pinentry-mac#9) in order to build a binary that is can run on Apple Silicon.
As it currently is, the bottle for Big Sur ARM64 contains a binary that cannot run on Apple Silicon, which looks like this:
Since the current bottle is broken, I also bumped the
revision
to1
.In order to get
brew audit --strict pinentry-mac
to pass, I also had to update thelicence
field which was done in a separate commit. The commit message includes a link to where I found the license.