|
|
- # p≡p macOS Desktop adapter
-
- This adapter will sport three main features:
-
- - p≡p API via Apple XPC (not yet implemented)
- - p≡p API via p≡p JSON adapter (still provided by miniadapter)
- - p≡p Update Client
-
- ## 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 mercurial
- sudo port install gmake
- sudo port install autoconf
- sudo port install libtool
- sudo port install automake
- sudo port install wget
- sudo port install capnproto
- 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
- mkdir local
-
- export MACOSX_DEPLOYMENT_TARGET=10.10
-
- git clone -b OpenSSL_1_1_1g https://github.com/openssl/openssl.git
- pushd "openssl"
- ./Configure --prefix=$(pwd)/../local/ --openssldir=$(pwd)/../local/ssl darwin64-x86_64-cc
- make
- make install
- popd
-
- git clone -b boost-1.73.0 --recursive https://github.com/boostorg/boost.git
- pushd "boost"
- ./bootstrap.sh --prefix=$(pwd)/../local/
- ./b2 --with-system --with-filesystem --with-program_options --with-thread
- ./b2 install
- popd
-
- git clone -b CRYPTOPP_8_2_0 https://github.com/weidai11/cryptopp
- pushd cryptopp
- export PREFIX=$(pwd)/../local/
- make
- make install
- unset PREFIX
- popd
-
- git clone https://gitea.pep.foundation/pEp.foundation/downloadclient
-
- 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
- 1. the User Interface is in pEpNotifications; the implementation is in Swift
-
- ### PEPMacOSAdapterProtocol, implemented with XPC
-
- see [PEPMacOSAdapterProtocol.h](https://gitea.pep.foundation/fdik/pEpMacOSAdapter/src/branch/master/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.
|