pEp macOS Desktop adapter
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Andreas Buff fe3c39180d copies artefact for pEp4TB Installer 1 year ago
pEpMacOSAdapter merge master 1 year ago
pEpMacOSAdapter.xcodeproj APPLEMAIL-24 Delete test target and test files in pEpUpdates project 1 year ago
pEpMacOSAdapter.xcworkspace APPLEMAIL-24 Update README.md. Move README.md to repository root. 1 year ago
pEpUpdates copies artefact for pEp4TB Installer 1 year ago
.gitignore connect 1 year ago
LICENSE Initial commit 2 years ago
README.md APPLEMAIL-24 Update README.md. Move README.md to repository root. 1 year ago

README.md

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

This software is supporting macOS 10.10 and later.

How to build

Prerequisites

Package managers

MacPorts for installing dependencies:

Install MacPorts for your version of OS X/macOS.

Dependencies of prerequisites

For building the prerequisites and clone the mercurial repositories you need the following dependencies

sudo port install mercurial

sudo port install autoconf
sudo port install libtool
sudo port install automake

sudo port install gmake

Setup instructions

Create a base folder where to place all the projects and libraries and change the directory to this base folder. For example: ~/src

# Create the local path
mkdir local

# Build and install Crypto++
git clone https://github.com/weidai11/cryptopp.git
pushd cryptopp
make DCRYPTOPP_DATA_DIR=$(pwd)/../local/share/crytopp
make dynamic DCRYPTOPP_DATA_DIR=$(pwd)/../local/share/crytopp
make install PREFIX=$(pwd)/../local
popd

# Build and install OpenSSL
git clone https://github.com/openssl/openssl.git
pushd openssl
./Configure --prefix=$(pwd)/../local --openssldir=$(pwd)/../local/ssl
make
make install
popd

# Build and install Boost
git clone --recursive https://github.com/boostorg/boost.git
pushd boost
git checkout tags/boost-1.74.0
./bootstrap.sh --prefix=$(pwd)/../local --with-libraries=regex,iostreams,system
./b2
./b2 install
popd

# Clone downloadclient
hg clone https://pep.foundation/dev/repos/downloadclient/

# Clone pEpMacOSAdapter
git clone https://gitea.pep.foundation/fdik/pEpMacOSAdapter.git
cd pEpMacOSAdapter

Build Project

Open pEpMacOSAdapter.xcworkspace and build schema pEpUpdates.

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 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.