Skip to content
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

Launch Libmacgpg service #41

Open
wants to merge 196 commits into
base: dev
Choose a base branch
from
Open

Launch Libmacgpg service #41

wants to merge 196 commits into from

Conversation

i39
Copy link

@i39 i39 commented Feb 19, 2019

I think what it will be great to add following to README:

After building Libmacgpg we should to launch it as service for let plugin to work:

cd Dependencies/Libmacgpg
cp ./build/org.gpgtools.Libmacgpg.xpc.plist ~/Library/LaunchAgents/

mkdir -p ~/Library/Application\ Support/GPGTools
cp ~/build/Release/org.gpgtools.Libmacgpg.xpc ~/Library/Application\ Support/GPGTools

launchctl unload ~/Library/LaunchAgents/org.gpgtools.Libmacgpg.xpc.plist
launchctl load -w ~/Library/LaunchAgents/org.gpgtools.Libmacgpg.xpc.plist

Mento and others added 30 commits December 27, 2016 13:14
…on on a message

- While OpenPGP releveant information was previously stored on the message itself it
  has now been moved to a separate object.
…ion to S/MIME and OpenPGP related signing/encryption during composing of a message.

- The preferred security properties at first reflect some defaults configured by the user
  and are later extended with active user information, once available (e.g. the user explicitly selects a security method)
- The object only returns either PGP keys or S/MIME certificates, depending on the security method chosen.
- Detailed list of changes will follow...
- Attempts to re-create the message from the partial emlx file and cached attachments
- Fallback to fetching the entire message if above method fails.
…xed]

- Simply return nil if partData is nil
- rangeOfString on nil returns a NSRange({location=0, length=0}) which lead GPGMail to try to send the data to gpg,
  which in return resulted in an error.
… [#885 state:fixed]

- Own code added too many new lines in some cases which broke message verification. Might also have contained other bugs
- Use -[MCMessageGenerator _newOutgoingMessageFromTopLevelMimePart:topLevelHeaders:withPartData:] instead, which is tested and reliable
…iles [#885]

- Apple's code re-creates the header data from the properties of the mime part
  even if the header data of the mime part is already populated.
  By doing so it the new header data might have headers in a different order
  or format. This will invalidate signatures.
- Hook into -[MCMessageGenerator _appendHeadersForMimePart:toHeaders:] and
  -[MCMutableMessageHeaders encodedHeadersIncludingFromSpace] in order to return the
  original header data stored on the mime part instead of re-creating the headers.
- Use Mail's original line length of NSDataBase64Encoding76CharacterLineLength when
  re-creating message data.
- Add 10.12 to the supported macOS Versions in order for the UUID patcher
  to work again.
…instead of MUIAddressTokenAttachmentCell [#900 state:fixed]

- This triggered an error when a user tried to compose a message with one account setup
  in Mail but two gpg keys available for the same account.
pt_BR is pt.
pt_PT is pt_PT.
This is the same behavior as in macOS.
[#899]
Persian (Iran) and Greek added.
Other languages updated.
…ssphrase dialog is canceled or sending message fails. [#902 state:fixed]

Since El Capitan, Mail has no longer been able to properly restore the compose
window if message creation or sending fails for some reason, for example, if
the user cancels out of signing a message (S/MIME and OpenPGP) is affected.

On El Capitan the message was simply lost, not even saved in drafts. Sierra
"optimized" the behavior by at least saving the message in drafts.

The following methods restore this functionality:
  -[ComposeWindowController _performSendAnimationWithCompletion:] -> this method is called
    within -[ComposeViewController sendMessageAfterChecking:] and is responsible for setting
    up and displaying the fly up animation of the window. In addition it's also responsible
    for tearing down the a tab representing the current message (in fullscreen mode only) and the
    compose window associated with the current message.

  -[ComposeWindowController saveWindowPositionBeforeAnimation] -> this is GPGMail's method
    which is called *before* _performSendAnimationWithCompletion: is run, in order to store
    the current position of the window, as well as the content view controller responsible for
    the message being sent, in order to be able to restore the window position and - in fullscreen mode -
    re-select the appropriate tab, if sending the message fails.

  -[ComposeWindowController restorePositionBeforeAnimation] -> this is GPGMail's method
    which is called in order to restore the position of the window after the animation and
    to re-select the appropriate tab, in case the sending of the message has failed.
    This method is called from -[ComposeViewController restoreComposerView]

  -[ComposeViewController restoreComposerView] -> this is GPGMail's method which is responsible
    for starting the restoration process in case of a send failure. It is called from
    -[ComposeBackEnd backEnd:didCancelMessageDeliveryForEncryptionError:] and
    -[ComposeBackEnd backEnd:didCancelMessageDeliveryForError:]

  -[ComposeWindowController composeViewControllerDidSend:] -> is responsible for cleaning up the view controller,
    remove the current tab item from the tab view and tearing down the compose window controller.
    In order to be able to restore the compose window however, it's necessary to postpone that work.

  -[ComposeViewController backEndDidAppendMessageToOutbox:result:] -> this is the ultimate method that
    tells whether or not the message has been sent successfully. If result is 3 it means that no errors have occured.
    In that case it's clear that the window or tab can now be torn down and properly closed. In order to do that,
    -[ComposeWindowController composeViewControllerDidSend:] is called, which a special ivar set, telling
    the method that it's now ok, to clean up.

  -[FullScreenWindowController _closeModalWindow:] -> this method is called from -[ComposeWindowController _performSendAnimationWithCompletion:]
    in order to close the modal window. If only one tab is available, it's necesary to postpone this call,
    *until* it's invoked by GPGMail within composeViewControllerDidSend:. If more than one tab is available,
    it's alright to call it immediately.
    (Not sure why yet, but it is.)

- Fixes an error in GMCodeInjector when which occured when selectors had to be replaced.
- Patches macOS Headers relevant to the window restoration.
…[#897 state:fixed]

- When starting to compose a new message on macOS Sierra 10.12.3 the sender might have been nil
  under specific circumstances (on macOS Sierra 10.12.4 all the time) which lead to a crash
  in GPGMail when trying to lookup a sender SMIME certificate or PGP key.
…send an unencrypted reply to an encrypted message. [#890 state:fixed]

- Use the new security properties instead of the old method using getIvar:
lukele and others added 29 commits October 23, 2018 02:37
[#1006 state:fixed]
[#1008 state:fixed]
[#1007 state:fixed] [#1004 state:fixed]
- Hide spinner as soon as activation has failed or succeeded
- Display a dialog which explains what features are still available if the trial has expired.
A PGP-Partitioned message with the following structure:

multipart/mixed
    text/plain
    application/octet-stream (PGPExchPart)

is treated as a normal multipart/alternative message (which it is supposed to be) with the following structure

multipart/alternative
    text/plain
    text/html (PGPExchPart)

[#1012 state:fixed]
…ched

Instead of calling getIvar:, valueForKey: was called, which of course doesn’t work.

[#1014 state:fixed]
- 10.14.1b3 introduced new names for a lot of the remote loading methods which resulted in a crash when selecting an encrypted message.
- Make the hiding of the remote content loading button more reliable on macOS 10.13 and 10.14

[#1013 state:fixed] [#1016 state:fixed]
Tried the steps from the original repo, but they needed a bit of tweaking on a fresh macOS Mojave install.
@jonathancross
Copy link

jonathancross commented Feb 19, 2020

There are some serious problems with this PR. It should be closed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants