Airmail / AirmailPlugIn-Framework

GNU General Public License v2.0
197 stars 47 forks source link

PGP plugin is not recognized by Airmail 3 #34

Open anunayk opened 6 years ago

anunayk commented 6 years ago

I wonder why #25 was closed. The bundle is not recognized and it's never listed in the plugins screen. I'm running 3.5.6 (481) on macOS 10.13.4.

Lord-Kamina commented 6 years ago

Same here... two years and still no fix? (Now, 3.5.8 on 10.13.5)

alexandernst commented 6 years ago

3.6.1 (506), PGP plugin still not recognized

xilopaint commented 6 years ago

3.6.1 (506), PGP plugin still not recognized

Airmail doesn't care for your privacy. Simple as that.

alexandernst commented 6 years ago

I found out why it's not showing. You must install https://gpgtools.org

gnuget commented 6 years ago

It seems that this problem is back now at Mac Os 10.14 Mojave and Airmail 3.6.41 (524)

as @alexandernst said the plugin used to work after installing gpgtools but now even having it installed the plugin is not recognized :-/

alexandernst commented 6 years ago

@gnuget you need to upgrade to the latest version of GPG Suite (yes, the one that is paid)

gnuget commented 6 years ago

I just paid and... it didn't work :-/

What I did was:

gnuget commented 6 years ago

I just contacted the Airmail support and they just confirmed that the plugins are disabled for Mac Os Mojave :-/

yannickmcosta commented 6 years ago

Not good, the fact that the app doesn't inform you that the plugins are disabled in the most recent build and silently fails is really not ideal. Any idea when this will be fixed as given the current attitude of the internet where encryption and data security is concerned, it may take moving to another mail client.

Bloophub commented 6 years ago

A version with fix is in approval by App Store is just taking longer then usual.

zentavr commented 6 years ago

3.6.43 came to me today and the plugin is still not visible.

zentavr commented 6 years ago

When I run the app from the command line, it says:

2018-10-10 22:56:27.785 Airmail 3[3506:40673] [BASE] ------ ------ ------ ------ ------ ------ ------
2018-10-10 22:56:27.785 Airmail 3[3506:40673] [BASE] Airmail Type:STORE OSX:10.14.0 Version:527
2018-10-10 22:56:29.466 Airmail 3[3506:40673] Error loading /Users/zentavr/Library/Group Containers/2E337YPCZY.airmail/Library/Application Support/it.bloop.airmail2/Airmail/General/Plugins/AMPGpg.bundle/Contents/MacOS/AMPGpg:  dlopen(/Users/zentavr/Library/Group Containers/2E337YPCZY.airmail/Library/Application Support/it.bloop.airmail2/Airmail/General/Plugins/AMPGpg.bundle/Contents/MacOS/AMPGpg, 265): Library not loaded: @rpath/Libmacgpg.framework/Versions/B/Libmacgpg
  Referenced from: /Users/zentavr/Library/Group Containers/2E337YPCZY.airmail/Library/Application Support/it.bloop.airmail2/Airmail/General/Plugins/AMPGpg.bundle/Contents/MacOS/AMPGpg
  Reason: image not found
Lord-Kamina commented 6 years ago

Well now that's interesting.

zentavr commented 6 years ago

The GPG worked before. When I recover the app from Time Machine - it does not see any of the plugins.

Lord-Kamina commented 6 years ago

Yeah but that error is something to work with. It's a dependency incompatibility. It might be possible to build a new version of the framework it depends on or something like that.

zentavr commented 6 years ago

@Lord-Kamina: I had tried to build with XCode 10.0 (10A255) and have the same problem..

Lord-Kamina commented 6 years ago

@Lord-Kamina: I had tried to build with XCode 10.0 (10A255) and have the same problem..

Let me make an analogy... I'm telling you "Your car won't start because it's missing a fuse." and you just replied "That cannot possibly be the issue, I just painted it a new color today."

The plugin needs Libmacgpg.framework (https://github.com/GPGTools/Libmacgpg) which was presumably shipped at some point but no longer or something like that.

zentavr commented 6 years ago

@Lord-Kamina ok, let me explain: I did a checkout of this repo. It has a submodule of Libmacgpg.framework as a dependency (but some outdated commit). I checked that out as well. After that I tried to build with the submodule-commit, then with the latest master branch. Nothing.. Maybe there is a trick in the XCode Project configuration?

zentavr commented 6 years ago

@Bloophub which version did you have in mind? 3.6.50 and still no plugin is recognised...

MTCoster commented 6 years ago

Still an issue on the 3.7.0 beta:

2018-10-21 17:19:18.467 Airmail Beta[95582:1980691] [BASE] Airmail Type:PUBLIC BETA OSX:10.14.0 Version:529
2018-10-21 17:19:19.226 Airmail Beta[95582:1980691] [INFO] Loaded Plugin Read Receipt This plug-in implements a Read Receipt system.
2018-10-21 17:19:19.229 Airmail Beta[95582:1980691] Error loading /Users/Matt/Library/Group Containers/2E337YPCZY.airmail/Library/Application Support/it.bloop.airmail.beta11/Airmail/General/Plugins/AMPGpg.bundle/Contents/MacOS/AMPGpg:  dlopen(/Users/Matt/Library/Group Containers/2E337YPCZY.airmail/Library/Application Support/it.bloop.airmail.beta11/Airmail/General/Plugins/AMPGpg.bundle/Contents/MacOS/AMPGpg, 265): Library not loaded: @rpath/Libmacgpg.framework/Versions/B/Libmacgpg
  Referenced from: /Users/Matt/Library/Group Containers/2E337YPCZY.airmail/Library/Application Support/it.bloop.airmail.beta11/Airmail/General/Plugins/AMPGpg.bundle/Contents/MacOS/AMPGpg
  Reason: image not found
2018-10-21 17:19:19.229 Airmail Beta[95582:1980691] [ERR] Cannot Load Plugin {
    BuildMachineOSBuild = 16G29;
    CFBundleDevelopmentRegion = English;
    CFBundleExecutable = AMPGpg;
    CFBundleIdentifier = "it.bloop.airmail.plugin.gpg";
    CFBundleInfoDictionaryVersion = "6.0";
    CFBundleName = AMPGpg;
    CFBundleNumericVersion = 67141632;
    CFBundlePackageType = BNDL;
    CFBundleShortVersionString = "1.0";
    CFBundleSignature = "????";
    CFBundleSupportedPlatforms =     (
        MacOSX
    );
    CFBundleVersion = 4;
    DTCompiler = "com.apple.compilers.llvm.clang.1_0";
    DTPlatformBuild = 9M214v;
    DTPlatformVersion = GM;
    DTSDKBuild = 17A350a;
    DTSDKName = "macosx10.13";
    DTXcode = 0900;
    DTXcodeBuild = 9M214v;
    NSHumanReadableCopyright = "Copyright \U00a9 2014 bloop. All rights reserved.";
    NSPrincipalClass = AMPGpg;
} (null) (null)
Lord-Kamina commented 6 years ago

Where are you all placing Libmacgpg.framework?

MTCoster commented 6 years ago

@Lord-Kamina GPG Suite installed it to /Library/Frameworks/Libmacgpg.framework for me (I assume this is the default - I've done nothing to suggest otherwise).

zentavr commented 6 years ago

@Lord-Kamina, I have GPG Suite in /Library/Frameworks/Libmacgpg.framework as well.

zentavr commented 6 years ago
zentavr@zentavr-mac:/Library/Frameworks/Libmacgpg.framework
2018-10-21 21:13:56 EEST $ ls -la
total 0
drwxr-xr-x   6 root  wheel  192 21 жов 00:22 .
drwxr-xr-x  12 root  wheel  384 21 жов 00:22 ..
lrwxr-xr-x   1 267   267     24 21 жов 00:22 Headers -> Versions/Current/Headers
lrwxr-xr-x   1 267   267     26 21 жов 00:22 Libmacgpg -> Versions/Current/Libmacgpg
lrwxr-xr-x   1 267   267     26 21 жов 00:22 Resources -> Versions/Current/Resources
drwxr-xr-x   4 root  wheel  128 21 жов 00:22 Versions
zentavr@zentavr-mac:/Library/Frameworks/Libmacgpg.framework
2018-10-21 21:15:34 EEST $ ls -la ./Versions/
total 0
drwxr-xr-x  4 root  wheel  128 21 жов 00:22 .
drwxr-xr-x  6 root  wheel  192 21 жов 00:22 ..
drwxr-xr-x  6 root  wheel  192 21 вер 02:03 B
lrwxr-xr-x  1 267   267      1 21 жов 00:22 Current -> B
zentavr@zentavr-mac:/Library/Frameworks/Libmacgpg.framework
2018-10-21 21:15:44 EEST $ ls -la ./Versions/B/
total 1376
drwxr-xr-x   6 root  wheel     192 21 вер 02:03 .
drwxr-xr-x   4 root  wheel     128 21 жов 00:22 ..
drwxr-xr-x  41 root  wheel    1312 21 вер 02:03 Headers
-rwxr-xr-x   1 root  wheel  701312 21 вер 02:03 Libmacgpg
drwxr-xr-x  25 root  wheel     800 21 вер 02:03 Resources
drwxr-xr-x   3 root  wheel      96 21 вер 02:03 _CodeSignature
rogerwalczak commented 6 years ago

Rebuilding this plugin seems to help. AMPGpg.bundle.zip

zentavr commented 6 years ago

@rogerwalczak, I wonder what the steps were done in order to do the build? I tried to build on Mojave and caught the same error.

Lord-Kamina commented 6 years ago

@rogerwalczak, I wonder what the steps were done in order to do the build? I tried to build on Mojave and caught the same error.

He changed @rpath for explicitly linking to the framework in /Library/:

AMPGpg.bundle/Contents/MacOS/AMPGpg:
    @executable_path/../Frameworks/AMPluginFramework.framework/Versions/A/AMPluginFramework (compatibility version 1.0.0, current version 1.0.0)
    /Library/Frameworks/Libmacgpg.framework/Versions/B/Libmacgpg (compatibility version 2.0.0, current version 2.0.0)
    /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 23.0.0)
    /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1555.10.0)
    /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.200.5)
    /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1670.0.0)
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1555.10.0)

Although probably a better solution would be to bundle Libmacgpg.framework with the plug-in and add proper rpaths to the executable.

Also, Libmacgpg apparently uses ObjC GC, which was deprecated ages ago. I tried converting it on my machine to ARC but I think my Xcode might be broken and it didn't work.

rogerwalczak commented 6 years ago

Mojave build:

  1. Build recent version of Libmacgpg.framework
  2. Open AMPGpg.xcodeproj in Xcode (don’t make ARC conversion)
  3. Remove reference to Libmacgpg.xcodeproj from project
  4. Copy Libmacgpg.framework and AMPluginFramework.framework to project folder.
  5. Remove references to AMPluginFramework.framework and Libmacgpg.framework and add them again indicating just copied frameworks
  6. Build.

Build will fail on post processing step - copying bundle file to non existent directory (at least in my case. Didn’t bother to fix it) - but you will find the file in ~/Library/Developer/…. (Long path)  --  R

On 23 October 2018 at 22:19:48, Andrey Miroshnichenko (notifications@github.com) wrote:

@rogerwalczak, I wonder what the steps were done in order to do the build? I tried to build on Mojave and caught the same error.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

KodaKoder commented 6 years ago

Just updated the code and the plugin let me know if is all ok https://rink.hockeyapp.net/apps/12d0753a9a3cecd2f00b262409be4ec2

zentavr commented 6 years ago

@KodaKoder - The error still exists:

/Applications/Airmail\ 3.app/Contents/MacOS/Airmail\ 3
objc[95032]: Class SSKeychain is implemented in both /System/Library/PrivateFrameworks/StoreServices.framework/Versions/A/StoreServices (0x7fff9d55ab18) and /Applications/Airmail 3.app/Contents/Frameworks/EvernoteSDK-Mac.framework/Versions/A/EvernoteSDK-Mac (0x104c9bc68). One of the two will be used. Which one is undefined.
2018-10-24 13:39:21.850 Airmail 3[95032:4301000] [BASE] ------ ------ ------ ------ ------ ------ ------
2018-10-24 13:39:21.850 Airmail 3[95032:4301000] [BASE] Airmail Type:STORE OSX:10.14.0 Version:528
2018-10-24 13:39:34.727 Airmail 3[95032:4301000] Error loading /Users/zentavr/Library/Group Containers/2E337YPCZY.airmail/Library/Application Support/it.bloop.airmail2/Airmail/General/Plugins/AMPGpg.bundle/Contents/MacOS/AMPGpg:  dlopen(/Users/zentavr/Library/Group Containers/2E337YPCZY.airmail/Library/Application Support/it.bloop.airmail2/Airmail/General/Plugins/AMPGpg.bundle/Contents/MacOS/AMPGpg, 265): Library not loaded: @rpath/Libmacgpg.framework/Versions/B/Libmacgpg
  Referenced from: /Users/zentavr/Library/Group Containers/2E337YPCZY.airmail/Library/Application Support/it.bloop.airmail2/Airmail/General/Plugins/AMPGpg.bundle/Contents/MacOS/AMPGpg
  Reason: image not found

The file from @rogerwalczak works though.

zentavr commented 6 years ago

They did a build of v.9 and it does not work at Mojave as well :(

2018-10-24 18:55:00.019 Airmail 3[98550:4479003] Error loading /Users/zentavr/Library/Group Containers/2E337YPCZY.airmail/Library/Application Support/it.bloop.airmail2/Airmail/General/Plugins/AMPGpg.bundle/Contents/MacOS/AMPGpg:  dlopen(/Users/zentavr/Library/Group Containers/2E337YPCZY.airmail/Library/Application Support/it.bloop.airmail2/Airmail/General/Plugins/AMPGpg.bundle/Contents/MacOS/AMPGpg, 265): Library not loaded: @rpath/Libmacgpg.framework/Versions/B/Libmacgpg
  Referenced from: /Users/zentavr/Library/Group Containers/2E337YPCZY.airmail/Library/Application Support/it.bloop.airmail2/Airmail/General/Plugins/AMPGpg.bundle/Contents/MacOS/AMPGpg
  Reason: image not found
adamierymenko commented 5 years ago

Why not build GPG support into Airmail?

It would be fine to make it a more expert option that the user must enable. Just look for 'gpg' in /usr/bin and /usr/local/bin and also provide an option to input the location of the GPG binary.

Most GPG users install via Homebrew, which puts it in /usr/local/bin.

This would really be a killer feature.

Why is there some law that says that any cryptographic extension must be impossible to use?

rogerwalczak commented 5 years ago

I second this wholeheartedly. And when I think about gpg support in both desktop and mobile version … hmm … killer feature indeed.

On 5 Nov 2018, at 16:47, Adam Ierymenko notifications@github.com wrote:

Why not build GPG support into Airmail?

It would be fine to make it a more expert option that the user must enable. Just look for 'gpg' in /usr/bin and /usr/local/bin and also provide an option to input the location of the GPG binary.

Most GPG users install via Homebrew, which puts it in /usr/local/bin.

This would really be a killer feature.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Airmail/AirmailPlugIn-Framework/issues/34#issuecomment-435923751, or mute the thread https://github.com/notifications/unsubscribe-auth/AMyYeipd8P-U_PAREBSZNGkYlPECB-Jlks5usF2egaJpZM4UWLRS.

hellais commented 5 years ago

I was able to get the plugin working again by rebuilding it from master (following this suggestion from @rogerwalczak). I actually only had to copy Libmacgpg.framework (and remove references to the Libmacgpg.framework).

This is what otool -L looks like on a working build:

/Users/MYUSER/Library/Group Containers/2E337YPCZY.airmail/Library/Application Support/it.bloop.airmail2/Airmail/General/Plugins/AMPGpg.bundle/Contents/MacOS/AMPGpg:
    /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 23.0.0)
    /Library/Frameworks/Libmacgpg.framework/Versions/B/Libmacgpg (compatibility version 2.0.0, current version 2.0.0)
    @executable_path/../Frameworks/AMPluginFramework.framework/Versions/A/AMPluginFramework (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1560.12.0)
    /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.200.5)
    /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1671.10.106)
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1560.12.0)
0x-2a commented 5 years ago

@hellais If you've got a successful build, could you upload a zip for us to grab? I followed the exact steps you did with the same otool output, but the build does not work in Airmail 3.6.50 (528)

0x-2a commented 5 years ago

Never mind, I got it sorted... here's the latest that works with Airmail 3.6.50 (528) 1) Install gpg tools https://gpgtools.org/ 2) Use this build: AMPGpg.bundle.zip

For others in the future, here's the step by step I did to build (needs an apple developer id)

git clone --recursive https://github.com/GPGTools/Libmacgpg.git
cd Libmacgpg
make

cd ..
git clone https://github.com/Airmail/AirmailPlugIn-Framework.git
open AirmailPlugin-Framework/AMPGpg/AMPGpg.xcodeproj
# right click Libmacgpg.framework, remove
# drag Libmacgpg/build/Release/Libmacgpg.framework into the project, yes to copy if needed
# Build

# Your bundle output path will be somewhere like this ~/Library/Developer/Xcode/DerivedData/AMPGpg-adsxgfwhkkihclegquhtuwrnfebj/Build/Products/Debug/AMPGpg.bundle 

# Copy the above into your airmail plugin dir... something like this:
~/Library/Group Containers/2E337YPCZY.airmail/Library/Application Support/it.bloop.airmail2/Airmail/General/Plugins/AMPGpg.bundle 
yannickmcosta commented 5 years ago

Looks like that's semi working for me. I'm having an issue with the encryption option on this, not sure if anyone else is.

I can sign email, but even if a recipients public key is in my keychain, I can't select encryption. I can however select to encrypt the mail if I select an email address for which I have the secret key, such as another email address I control.

0x-2a commented 5 years ago

@yannickmcosta same -- i can (1) decrypt emails (2) reply encrypted to anyone (3) only compose encrypted to myself.

0x-2a commented 5 years ago

@Bloophub is this on the airmail side of things or the plugin? Appreciate your thoughts.

hellais commented 5 years ago

I believe the PGP plugin in Airmail has a lot of problems, actually.

I attempted fixing them in this PR: https://github.com/Airmail/AirmailPlugIn-Framework/pull/33, which actually was landed in master without even addressing my open questions or removing the log debug lines...

To be honest this makes me quite sad, because Airmail is such a nice emails client, but the fact that the PGP plugin is so badly maintained and supported is quite a problem.

As a developer I would be happy to help fix it and take up maintaining it (and I bet other devs in this thread would also be glad to lend a hand), yet this cannot happen unless there is some better interaction with your community.

Open source is not just about putting the code out there, it's also being available to help devs help you!

RicoLaaa commented 5 years ago

any news on this issue?

sgcoffee commented 5 years ago

Need to re-sign to GitHub to comment on this issue.

To get PGP working with mail, I changed over to Canary mail app. Which got PGP support right build in, and works fine, but haven't enjoyed Canary's UI and functionality all the time. Missed a lot of features. Anyway: That's why I brought Airmail in terms of a much better UI and app feeling. But need urgently PGP support. I am using mail mostly for business, and would like to keep certain communication encrypted.

I am not a developer at all. But I'd pay 50USD if some one writes a serious working plug-in!

zentavr commented 5 years ago

@sgcoffee - the zip from this comment above works for me with the latest Airmail on latest High Sierra.

sgcoffee commented 5 years ago

@zentavr - Thank you. The plugin gets recognized now, but only PGP signing is possible. GPG Keychain is running. Apple Mail doesn't have any issues. macOS 10.14.2 Airmail 3.6.56 (540)

zentavr commented 5 years ago

@sgcoffee, strange, but I’m able to encrypt/decrypt the mails

sgcoffee commented 5 years ago

Ok, I could decrypt one older mail for one mail account, which I tried at first. But I couldn't answer encrypted. Nor send an encrypted new mail to this recipient. I even tried another old encrypted mail from another account. Didn't work. I guess, why it doesn't work: I don't get the option to enter the passphrase. It did at the first account.

sgcoffee commented 5 years ago

There is a another problem. Attachments and inline graphics in every mail, don't get shown at all, if the plug-in is active. Deactivating the plug-in restores images again. That's an annoying bug.

davidcorbin commented 5 years ago

Still having issues getting Airmail to find the plugin.

Airmail version 3.6.56 (540) GpgTools 2018.5 2368

screen shot 2019-01-11 at 5 46 12 pm screen shot 2019-01-11 at 5 46 07 pm
paulgronke commented 5 years ago

Was hoping this might get resolved with Mojave. I can't use and can't recommend AirMail if it doesn't work with GPG (and I suppose bigger point, doesn't work with one of its own advertised plugins).

paulgronke commented 5 years ago

Still having issues getting Airmail to find the plugin.

Airmail version 3.6.56 (540) GpgTools 2018.5 2368

screen shot 2019-01-11 at 5 46 12 pm screen shot 2019-01-11 at 5 46 07 pm

Pre-Mojave, AirMail saw the plugin, but it couldn't unencrypt attachments. Now, it doesn't even recognize the plugin, same as the user above.