pEp macOS Desktop adapter
 
 
 
 
 
Go to file
David Alarcon 6b4cb5cc2e Merge branch 'APPLEMAIL-45'
* APPLEMAIL-45:
  APPLEMAIL-45 Add undo xpc call.
  APPLEMAIL-45 Add xpc calls for trust and mistrust.
  Add confirm trust and deny trust xpc calls.
  APPLEMAIL-45 Add reset key xpc call.
  APPLEMAIL-45 Add trustwords call.
  APPLEMAIL-45 Add update and rateIdentity in XPC connection.
2021-09-07 17:18:45 +02:00
Scripts Add install script to pepMacOSAdapter. Delete unused scripts in PEPObjCAdapterXPCService. 2021-04-12 15:36:25 +02:00
Subprojects APPLEMAIL-45 Add undo xpc call. 2021-08-23 10:56:25 +02:00
pEpMacOSAdapter Fixes: Undefined Symbols caused by ObjC Foundation stuff not bridged to Swift. 2021-04-07 12:57:31 +02:00
pEpMacOSAdapter.xcodeproj IOSAD-214 Update scheme. 2021-08-20 11:13:01 +02:00
pEpMacOSAdapter.xcworkspace APPLEMAIL-51 Rename pEpNotifications folder. 2021-04-08 15:38:41 +02:00
.gitignore Fix modulemap ignored. 2021-04-07 11:51:13 +02:00
LICENSE Initial commit 2020-04-24 19:45:27 +02:00
README.md IOSAD-218-again-for-master updated readme 2021-07-21 17:02:58 +02:00

README.md

p≡p macOS Desktop adapter

This adapter sports three main features:

  • p≡p API via Apple XPC
  • p≡p Update Client

Missing Features

  • p≡p API via p≡p JSON adapter (still provided by miniadapter)

Deployment

PER_MACHINE_DIRECTORY="/Library/Application Support/pEp"
PER_USER_DIRECTORY=$HOME/.pEp

This software is supporting macOS 10.10 and later.

Required Tools

For building the engine, you need a working python3 environment and all dependencies:

sudo port install git
sudo port install gmake
sudo port install autoconf
sudo port install libtool
sudo port install automake
sudo port install wget
sudo port install gsed
pushd ~
git clone https://gitea.pep.foundation/fdik/yml2
popd
curl https://sh.rustup.rs -sSf | sh

add this to ~/.profile (create if it doesn't exist):

source $HOME/.cargo/env
export PATH="$HOME/.cargo/bin:$PATH"

restart your Console (!)

sudo port install pkgconfig
rustup update

Install Xcode (if not installed already)

Apple IDs & Certificates

Apple ID

You need to have an Apple ID (connected to pEp team account) configured in Xcode . Ask #service, if you want to be added to the team account.

Build Dependencies

mkdir src_pEpMacOSAdapter
cd src_pEpMacOSAdapter

git clone https://gitea.pep.foundation/buff/common-dependency-build-helpers-4-apple-hardware.git
git clone http://pep-security.lu/gitlab/iOS/pep-toolbox.git
git clone https://pep-security.lu/gitlab/iOS/CocoaLumberjack
git clone https://pep-security.lu/gitlab/misc/libetpan.git
git clone https://pep-security.lu/gitlab/misc/sqlite.git
git clone https://gitea.pep.foundation/pEp.foundation/pEpEngine
git clone https://gitea.pep.foundation/pep.foundation/pEpObjCAdapter.git
git clone https://gitea.pep.foundation/fdik/pEpMacOSAdapter.git

Build

Using Xcode UI

open pEpMacOSAdapter/pEpMacOSAdapter.xcworkspace/

Build scheme "All" of pEpMacOSAdapter.xcworkspace

Using terminal

xcodebuild -workspace "pEpMacOSAdapter.xcworkspace" -scheme "All" -configuration RELEASE

(or DEBUG)

Build Dir & Build Artefacts

You can find the build artefacts in the build folder odf the project or the used submodules:

src_pEpMacOSAdapter/pEpMacOSAdapter/build/foundation.pEp.adapter.macOS.xpc src_pEpMacOSAdapter/pEpMacOSAdapter/Submodules/pEpNotifications/build/p≡p updates.app

Implementation

The implementation is split in to parts:

  1. the working code is in pEpMacOSAdapter; the implementation is in Objective C
  2. the User Interface is in pEpNotifications; the implementation is in Swift

PEPMacOSAdapterProtocol, implemented with XPC

see pEpMacOSAdapter/PEPMacOSAdapterProtocol.h

This protocol is provided to the User Interface to get informed when a download was happening. When a subscription is active updateNow() can be used to search for immediate updates.