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 3c4d566aed sets mach service name to xcp's name on master branch 2 years ago
pEpMacOSAdapter merge master 2 years ago
pEpMacOSAdapter.xcodeproj APPLEMAIL-24 Delete test target and test files in pEpUpdates project 2 years ago
pEpMacOSAdapter.xcworkspace APPLEMAIL-24 Update Move to repository root. 2 years ago
pEpUpdates sets mach service name to xcp's name on master branch 2 years ago
.gitignore connect 2 years ago
LICENSE Initial commit 2 years ago APPLEMAIL-24 Update Move to repository root. 2 years ago

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


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
pushd cryptopp
make DCRYPTOPP_DATA_DIR=$(pwd)/../local/share/crytopp
make dynamic DCRYPTOPP_DATA_DIR=$(pwd)/../local/share/crytopp
make install PREFIX=$(pwd)/../local

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

# Build and install Boost
git clone --recursive
pushd boost
git checkout tags/boost-1.74.0
./ --prefix=$(pwd)/../local --with-libraries=regex,iostreams,system
./b2 install

# Clone downloadclient
hg clone

# Clone pEpMacOSAdapter
git clone
cd pEpMacOSAdapter

Build Project

Open pEpMacOSAdapter.xcworkspace and build schema pEpUpdates.


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.