Difference between revisions of "BuildingMacOSX"

From Mumble Wiki
Jump to: navigation, search
(Distributing Mumble: Update references to osxdist script.)
m (Changed the cd line under "Simply clone the repo..." and the qmake line under "To build the client, execute:")
(22 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
{{Building}}
 
{{Building}}
  
Note: This guide is written for the current git HEAD (Mumble version 1.2.X). If you want instructions for 1.1.X, please check the history for this page.
+
=== Introduction ===
  
== Introduction ==
+
This guide describes the method to get a fully working and redistributable version of Mumble and Murmur that uses the Cocoa version of Qt 4.
 
 
This guide describes the method to get a fully working and redistributable version of Mumble and Murmur that uses the Cocoa version of Qt 4. This build will work only on x86_64-capable machines.
 
 
 
== The Easy Way ==
 
 
 
The easiest way to get going is to grab the pre-built build environment for Mac OS X:
 
http://www.scorpius-project.org/mumble-osx-dev/MumbleDeveloper.tar.bz2
 
 
 
Unarchive it to your / filesystem.
 
 
 
To set up your environment for a build, execute
 
 
 
/MumbleDeveloper/bin/mumble-x86-64-build-env
 
 
 
The rest of this guide can be skipped, down to the 'Building Mumble' part.
 
 
 
== Building the Development Environment Yourself ==
 
  
 
To build Mumble you will need:
 
To build Mumble you will need:
* Mac OS X 10.5 (Leopard)
+
* Mac OS X 10.8 (Mountain Lion)
* XCode (http://developer.apple.com/tools/xcode/, or from your Mac OS X install disks)
+
* Xcode 4.4
* Git (http://www.git-scm.org/)
 
* pkg-config (http://pkg-config.freedesktop.org/)
 
* DBus (http://dbus.freedesktop.org/)
 
* Qt 4.7 (http://qt.gitorious.org/+mumble-developers/qt/mumble-developers-qt)
 
* Boost (http://www.boost.org/)
 
* PortAudio (http://www.portaudio.com/)
 
* libogg (http://www.xiph.org)
 
* libvorbis (http://www.xiph.org/)
 
* libFLAC (http://www.xiph.org/)
 
* libsoundfile (http://www.mega-nerd.com/libsndfile/)
 
* Protocol Buffers (http://code.google.com/p/protobuf/)
 
* Berkeley DB (http://www.oracle.com/technology/products/berkeley-db/index.html) (Murmur only)
 
* mcpp (http://www.sourceforge.net/projects/mcpp/) (Murmur only)
 
* ZeroC Ice (http://www.zeroc.com) (Murmur only)
 
  
=== Setting up the build environment ===
+
=== Creating a build environment ===
  
#!/bin/bash
+
The git repository at https://github.com/mumble-voip/mumble-releng contains pre-made scripts that build the current canonical Mumble OS X build environment.
 
# C compiler
 
export CC="$(xcode-select -print-path)/usr/bin/gcc-4.2"
 
export CXX="$(xcode-select -print-path)/usr/bin/g++-4.2"
 
 
# Mac OS X SDK stuff
 
export MACOSX_DEPLOYMENT_TARGET="10.5"
 
export OSX_SDK="/Developer/SDKs/MacOSX10.5.sdk"
 
 
# Autotools, etc. setup
 
export OSX_CFLAGS="-isysroot $OSX_SDK -arch x86_64 -mmacosx-version-min=10.5"
 
export OSX_LDFLAGS="-isysroot $OSX_SDK -Wl,-syslibroot,$OSX_SDK -arch x86_64 -mmacosx-version-min=10.5"
 
 
export CFLAGS=$OSX_CFLAGS
 
export CXXFLAGS=$OSX_CFLAGS
 
export LDFLAGS=$OSX_LDFLAGS
 
 
# Mumble stuff
 
export MUMBLE_PREFIX=/MumbleDeveloper/x86-64/
 
 
# pkgconfig, PATH, etc.
 
export PKG_CONFIG_PATH=/usr/lib/pkgconfig/:$MUMBLE_PREFIX/lib/pkgconfig/:$PKG_CONFIG_PATH
 
export PATH=$MUMBLE_PREFIX/qt-4.7/bin/:$PATH
 
export PATH=$MUMBLE_PREFIX/bin:$PATH
 
 
# Ice path
 
export ICE_PREFIX=$MUMBLE_PREFIX/ice-3.4.1/
 
export PATH=$ICE_PREFIX/bin/:$PATH
 
 
echo Now in Mumble 1.2 x86-64 build environment
 
  
 +
Simply clone the repo, and cd into it:
  
Remember to source the above script before doing any of the steps listed below.
+
  $ git clone https://github.com/mumble-voip/mumble-releng
 +
  $ cd mumble-releng/buildenv/1.3.x/osx
  
=== Installing or building pkg-config ===
+
Create a MumbleBuild directory in your home dir:
  
This is just a build tool, so you do not have to build it as universal binary.
+
  $ mkdir -p ~/MumbleBuild
  
If you have MacPorts installed, you probably already have pkg-config as well. If not, you can install it by doing
+
Copy the 'env' script to the directory you created in the previous step:
sudo port install pkgconfig
 
  
In case you want to compile it yourself, you'll have to download and unpack pkg-config.
+
  $ cp env ~/MumbleBuild/env
sudo mkdir /usr/lib/pkgconfig (choose a path you like)
 
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
 
./configure && make && sudo make install
 
  
To make the path permanent add the following line to your ''~/.profile'' file:
+
Source the env script to set up the proper environment variables for the Mumble build environment:
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
 
Also add a path entry to the pkg-config binary to this file:
 
export PATH=$PATH:/usr/local/bin
 
  
=== Installing or getting Git ===
+
  $ source ~/MumbleBuild/env
  
To grab a copy of Mumble, you need Git.
+
Build the enviroment:
  
You have three options:
+
  $ ./build-all.bash
* Build it yourself.
 
* Install it via MacPorts: port install git-core
 
* Fetch the git-osx-installer package from Google Code: http://code.google.com/p/git-osx-installer/downloads/list?can=3
 
  
=== Building DBus ===
+
Once this is done, you should have a fully functional installation of Mumble's dependencies (tools and libs) in a self-contained MumbleBuild directory in your home directory.
  
Grab the latest release of DBus from http://dbus.freedesktop.org/. As of this writing that is version 1.2.24.
+
=== Building Mumble ===
  
Unpack it, and build it:
+
Make sure you've sourced ~/MumbleBuild/env into your current shell session:
  
  ./configure --prefix=$MUMBLE_PREFIX --without-x --with-xml=expat --disable-dependency-tracking
+
  $ source ~/MumbleBuild/env
make
 
sudo make install
 
  
=== Building OpenSSL ===
+
Fetch the Mumble source from Git into a directory of your choosing:
  
Grab it from http://www.openssl.org/. The latest version we use is 1.0.0d.
+
git clone --recursive https://github.com/mumble-voip/mumble
  
Unpack and build:
+
To build the client, execute:
  
  ./Configure darwin64-x86_64-cc -shared --prefix=$MUMBLE_PREFIX --openssldir=$MUMBLE_PREFIX/openssl
+
  cd mumble
 +
qmake -recursive -Wall main.pro CONFIG+="release static"
 
  make
 
  make
sudo make install
 
  
For universal:
+
If everything went well, you should now have a Mumble.app application bundle in the release directory of the root of the source tree.
  
mkdir -p openssl-1.0.0d-{i386,ppc}
+
=== Building Murmur ===
tar -zxvf openssl-1.0.0d.tar.gz -C openssl-1.0.0d-i386 --strip-components 1
 
tar -zxvf openssl-1.0.0d.tar.gz -C openssl-1.0.0d-ppc --strip-components 1
 
cd openssl-1.0.0d-ppc
 
./Configure darwin-ppc-cc -shared --prefix=$MUMBLE_PREFIX --openssldir=$MUMBLE_PREFIX/openssl
 
make
 
cd ../openssl-1.0.0d-i386
 
./Configure darwin-i386-cc -shared --prefix=$MUMBLE_PREFIX --openssldir=$MUMBLE_PREFIX/openssl
 
make
 
sudo make install
 
sudo lipo -create libcrypto.1.0.0.dylib ../openssl-1.0.0d-ppc/libcrypto.1.0.0.dylib -output $MUMBLE_PREFIX/lib/libcrypto.1.0.0.dylib
 
sudo lipo -create libssl.1.0.0.dylib ../openssl-1.0.0d-ppc/libssl.1.0.0.dylib -output $MUMBLE_PREFIX/lib/libssl.1.0.0.dylib
 
  
=== Building libxar ===
+
Make sure you've sourced ~/MumbleBuild/env into your current shell session:
  
Fetch it via SVN:
+
$ source ~/MumbleBuild/env
  
svn checkout http://xar.googlecode.com/svn/trunk/ libxar
+
Fetch the Mumble and Murmur source from Git into a directory of your choosing:
  
And build it. LibXAR seems not to want to read the 10.5 SDK version of libxml2's headers. Instead, it uses the system headers. Therefore we must override the include path.  
+
  git clone --recursive https://github.com/mumble-voip/mumble
  
We also want libxar to link against our own OpenSSL dylibs, which is why we also add the include path and lib dir for our $MUMBLE_PREFIX.
+
To build the server, execute:
  
  cd libxar/xar
+
  cd mumble
  export CFLAGS="-I$OSX_SDK/usr/include/libxml2 ${CFLAGS} -I${MUMBLE_PREFIX}/include/"
+
  qmake -spec unsupported/macx-clang -recursive CONFIG+="release static no-client no-dbus"
export LDFLAGS="${LDFLAGS} -L${MUMBLE_PREFIX}/lib/"
 
./autogen.sh --prefix=${MUMBLE_PREFIX}
 
 
  make
 
  make
  
After the build, it's a good thing to make sure things went as they should. We want the built libxar to be able to run on both Snow Leopard and Leopard.
+
If everything went well, you should now have a murmur binary in the release directory of the root of the source tree.
Check that it's linking against our own libcrypto, and that it's linking against the 9.0.0 compatibility version of libxml2 (that's the Leopard version).
 
$ otool -L lib/libxar.1.dylib
 
    [...]
 
    /MumbleDeveloper/x86-64/lib/libcrypto.0.9.8.dylib (compatibility version 0.9.8, current version 0.9.8)
 
    /usr/lib/libxml2.2.dylib (compatibility version 9.0.0, current version 9.16.0)
 
    [...]
 
  
When all is well, install it:
+
=== Distributing Mumble ===
  
sudo make install
+
If you wish to create a proper redistributable Mumble application bundle, please refer to the osxdist.py script in
 +
the macx/scripts directory. This will help you clean up your application bundle, include the needed dependencies, resources etc., and create a compressed disk image - ready to redistribute!
  
=== Building Qt ===
+
The script expects you to be in the root of the source tree. After executing, it will spit out a .dmg of your Mumble build in the release folder.
 
 
Download and unpack Qt:
 
 
 
git clone git://gitorious.org/+mumble-developers/qt/mumble-developers-qt.git
 
cd mumble-developers-qt
 
git branch -t 4.7-mumble origin/4.7-mumble
 
git checkout 4.7-mumble
 
 
 
Then build it:
 
 
 
unset CFLAGS
 
unset CXXFLAGS
 
unset LDFLAGS
 
export CFLAGS="-I$MUMBLE_PREFIX/include"
 
export CXXFLAGS="-I$MUMBLE_PREFIX/include"
 
OPENSSL_LIBS="-L$MUMBLE_PREFIX/lib -lssl -lcrypto" ./configure -pch -debug-and-release -arch x86_64 -cocoa -qt-sql-sqlite -system-zlib -qt-gif -qt-libpng -qt-libjpeg -qdbus -webkit -no-phonon -no-phonon-backend -no-qt3support -openssl-linked -mysql_config no -sdk $OSX_SDK -prefix $MUMBLE_PREFIX/qt-4.7 -opensource -confirm-license
 
make
 
sudo make install
 
export CFLAGS=$OSX_CFLAGS
 
export CXXFLAGS=$OSX_CFLAGS
 
export LDFLAGS=$OSX_LDFLAGS
 
 
 
For universal, use the following configure line instead:
 
 
 
OPENSSL_LIBS="-L$MUMBLE_PREFIX/lib -lssl -lcrypto" ./configure -pch -debug-and-release -universal -carbon -qt-sql-sqlite -system-zlib -qt-gif -qt-libpng -qt-libjpeg -qdbus -webkit -no-phonon -no-phonon-backend -no-qt3support -openssl-linked -mysql_config no -sdk $OSX_SDK -prefix $MUMBLE_PREFIX/qt-4.7 -opensource -confirm-license
 
 
 
=== Installing Qt icns icon engine ===
 
 
 
Grab it:
 
git clone git://github.com/mkrautz/qt-icns-iconengine.git
 
 
 
Build and install it
 
cd qt-icns-iconengine
 
qmake CONFIG+='release'
 
make
 
sudo cp libqicnsicon.dylib $MUMBLE_PREFIX/qt-4.7/plugins/iconengines/libqicnsicon.dylib
 
make distclean
 
qmake CONFIG+='debug'
 
make
 
sudo cp libqicnsicon.dylib $MUMBLE_PREFIX/qt-4.7/plugins/iconengines/libqicnsicon_debug.dylib
 
 
 
For universal, use
 
qmake CONFIG+='release universal'
 
or
 
qmake CONFIG+='debug universal'
 
when configuring, to get a universal build.
 
 
 
=== Installing Boost ===
 
 
 
Grab the latest version of Boost from http://www.boost.org/, as of current writing, that is 1.45.0.
 
 
 
It is advisible to unpack Boost to $MUMBLE_PREFIX/include/, so the Boost headers will be available in $MUMBLE_PREFIX/include/boost-1_45_0/, since Mumble will look for the headers in this place by default.
 
 
 
=== Building libogg ===
 
 
 
Grab the latest version (current 1.2.0). Build:
 
 
 
./configure --disable-dependency-tracking --prefix=$MUMBLE_PREFIX
 
make
 
sudo make install
 
 
 
=== Building libvorbis ===
 
  
Grab the latest version (current 1.3.1). Build:
+
If you only have a Mumble.app, and have not built Murmur, you should also pass the
  
  ./configure --disable-dependency-tracking --prefix=$MUMBLE_PREFIX
+
  --no-server
make
 
sudo make install
 
  
=== Building libFLAC ===
+
parameter to the osxdist.py script. This will not attempt to package Murmur-specific files in the generated .dmg.
  
Grab the latest version (currently 1.2.1). Build (x86-64):
+
The script supports code signing, and among other things, allow you to build a copy of Mumble signed with your Developer ID certificates from Apple.
 
+
To build with code signing enabled, use the following three parameters to the osxdist.py script:
./configure --build=x86_64-apple-darwin10.2.0 --prefix=/MumbleDeveloper/x86-64/
 
make
 
sudo make install
 
 
 
Universal:
 
 
 
mkdir -p flac-1.2.1-{i386,ppc}
 
tar -zxf flac-1.2.1.tar.gz -C flac-1.2.1-ppc --strip-components 1
 
tar -zxf flac-1.2.1.tar.gz -C flac-1.2.1-i386 --strip-components 1
 
cd flac-1.2.1-ppc
 
source /MumbleDeveloper/bin/mumble-universal-build-env
 
export CFLAGS="-isysroot /Developer/SDKs/MacOSX10.5.sdk -arch ppc"
 
export LDFLAGS="-Wl,-syslibroot,/Developer/SDKs/MacOSX10.5.sdk -arch ppc"
 
export CC="$CC $CFLAGS"
 
./configure --build=powerpc-apple-darwin10 --disable-cpplibs --disable-asm-optimizations --prefix=$MUMBLE_PREFIX
 
make
 
cd ../flac-1.2.1-i386
 
source /MumbleDeveloper/bin/mumble-universal-build-env
 
export CFLAGS="-isysroot /Developer/SDKs/MacOSX10.5.sdk -arch i386"
 
export LDFLAGS="-Wl,-syslibroot,/Developer/SDKs/MacOSX10.5.sdk -arch i386"
 
export CC="$CC $CFLAGS"
 
./configure --build=i386-apple-darwin10 --disable-cpplibs --disable-asm-optimizations --prefix=$MUMBLE_PREFIX
 
sudo make install
 
sudo lipo -create src/libFLAC/.libs/libFLAC.8.2.0.dylib ../flac-1.2.1-ppc/src/libFLAC/.libs/libFLAC.8.2.0.dylib -output $MUMBLE_PREFIX/lib/libFLAC.8.2.0.dylib
 
 
 
=== Building libsndfile ===
 
 
 
Grab the latest version (currently 1.0.21). Build:
 
 
 
./configure --prefix=$MUMBLE_PREFIX --disable-sqlite
 
make
 
sudo make install
 
 
 
For universal:
 
 
 
mkdir -p libsndfile-1.0.21-{i386,ppc}
 
tar -zxvf libsndfile-1.0.21.tar.gz -C libsndfile-1.0.21-i386 --strip-components 1
 
tar -zxvf libsndfile-1.0.21.tar.gz -C libsndfile-1.0.21-ppc --strip-components 1
 
cd libsndfile-1.0.21-ppc
 
export CFLAGS="-isysroot /Developer/SDKs/MacOSX10.5.sdk -arch ppc"
 
export CXXFLAGS=$CFLAGS
 
export LDFLAGS="-Wl,-syslibroot,/Developer/SDKs/MacOSX10.5.sdk -arch ppc"
 
./configure --prefix=$MUMBLE_PREFIX
 
make
 
cd ../libsndfile-1.0.21-i386
 
export CFLAGS="-isysroot /Developer/SDKs/MacOSX10.5.sdk -arch i386"
 
export CXXFLAGS=$CFLAGS
 
export LDFLAGS="-Wl,-syslibroot,/Developer/SDKs/MacOSX10.5.sdk -arch i386"
 
./configure --prefix=$MUMBLE_PREFIX
 
make
 
sudo make install
 
sudo lipo -create ./src/.libs/libsndfile.1.dylib ../libsndfile-1.0.21-ppc/src/.libs/libsndfile.1.dylib -output $MUMBLE_PREFIX/lib/libsndfile.1.dylib
 
 
 
And after the build, make sure you reload the environment variables:
 
source /MumbleDeveloper/bin/mumble-universal-build-env
 
 
 
=== Building Protocol Buffers ===
 
 
 
Grab the latest version of Protocol Buffers from its Google Code project: http://code.google.com/p/protobuf/. As of this writing, that is version 2.3.0.
 
Direct link: http://protobuf.googlecode.com/files/protobuf-2.3.0.tar.bz2
 
 
 
Build and install it:
 
 
 
./configure --disable-dependency-tracking --prefix=$MUMBLE_PREFIX
 
make
 
sudo make install
 
 
 
=== Logitech LCD SDK (optional) ===
 
 
 
Grab it, install it. Build it:
 
 
 
sudo mkdir -p $MUMBLE_PREFIX/lglcd-sdk/
 
sudo tar -zxvf /Applications/Logitech/GamePanel\ Software/LCD\ Manager/LCDSDK/LCDSDK.tgz -C $MUMBLE_PREFIX/lglcd-sdk/
 
sudo chmod -vR +r $MUMBLE_PREFIX/lglcd-sdk/
 
 
 
=== libmcpp ===
 
 
 
Grab it (current version is 2.7.2). Build it:
 
 
 
./configure --disable-dependency-tracking --prefix=$MUMBLE_PREFIX --enable-mcpplib
 
make
 
sudo make install
 
 
 
=== Berkeley DB ===
 
 
 
Grab it (current version is 5.0.21). Build it:
 
 
 
cd build_unix
 
../dist/configure --disable-dependency-tracking --prefix=$MUMBLE_PREFIX --enable-cxx
 
sudo make install
 
 
 
=== ZeroC Ice ===
 
 
 
Grab it (current version is 3.4.1). Apply patch: http://gist.github.com/459204
 
 
 
patch -p1 < Ice-3.4.1-db5.patch
 
 
 
Build it:
 
 
 
cd cpp
 
make prefix=$ICE_PREFIX embedded_runpath_prefix=$ICE_PREFIX OPTIMIZE=yes CXX="$CXX $OSX_CFLAGS" CC="$CC $OSX_CFLAGS" DB_HOME=$MUMBLE_PREFIX MCPP_HOME=$MUMBLE_PREFIX
 
sudo make prefix=$ICE_PREFIX embedded_runpath_prefix=$ICE_PREFIX OPTIMIZE=yes CXX="$CXX $OSX_CFLAGS" CC="$CC $OSX_CFLAGS" DB_HOME=$MUMBLE_PREFIX MCPP_HOME=$MUMBLE_PREFIX install
 
 
 
== Building Mumble ==
 
 
 
Fetch the Mumble source from Git:
 
 
 
git clone git://mumble.git.sourceforge.net/gitroot/mumble mumble.git
 
cd mumble.git
 
git submodule init
 
git submodule update
 
 
 
To build the client, execute:
 
 
 
qmake main.pro CONFIG+='release'
 
make
 
 
 
If everything went well, you should now have a Mumble.app application bundle in the release directory of the root of the source tree.
 
 
 
== Distributing Mumble ==
 
 
 
If you wish to create a proper redistributable Mumble application bundle, please refer to the osxdist.py script in
 
the macx/scripts directory. This will help you clean up your application bundle, include the needed dependencies, resources etc., and create a compressed disk image - ready to redistribute!
 
 
 
The script expects you to be in the root of the source tree. After executing, it will spit out a .dmg of your Mumble build in the release folder.
 
  
Please note that the script currently is tuned for creating real redistributable versions of Mumble, and as such only works on universal (x86, ppc) release builds!
+
* --developer-id='<Name or Organization>'
 +
* --keychain=<keychain> (optional, defaults to 'login.keychain')
  
 
[[Category:Development]]
 
[[Category:Development]]

Revision as of 00:39, 25 April 2017

Building Guides

This page is one of a set of Building pages/guides for the different OSes with information on building Mumble/Murmur.

BuildingLinux BuildingFreeBSD BuildingOpenBSD BuildingMacOSX BuildingWindows


Introduction

This guide describes the method to get a fully working and redistributable version of Mumble and Murmur that uses the Cocoa version of Qt 4.

To build Mumble you will need:

  • Mac OS X 10.8 (Mountain Lion)
  • Xcode 4.4

Creating a build environment

The git repository at https://github.com/mumble-voip/mumble-releng contains pre-made scripts that build the current canonical Mumble OS X build environment.

Simply clone the repo, and cd into it:

 $ git clone https://github.com/mumble-voip/mumble-releng
 $ cd mumble-releng/buildenv/1.3.x/osx

Create a MumbleBuild directory in your home dir:

 $ mkdir -p ~/MumbleBuild

Copy the 'env' script to the directory you created in the previous step:

 $ cp env ~/MumbleBuild/env

Source the env script to set up the proper environment variables for the Mumble build environment:

 $ source ~/MumbleBuild/env

Build the enviroment:

 $ ./build-all.bash

Once this is done, you should have a fully functional installation of Mumble's dependencies (tools and libs) in a self-contained MumbleBuild directory in your home directory.

Building Mumble

Make sure you've sourced ~/MumbleBuild/env into your current shell session:

$ source ~/MumbleBuild/env

Fetch the Mumble source from Git into a directory of your choosing:

git clone --recursive https://github.com/mumble-voip/mumble

To build the client, execute:

cd mumble
qmake -recursive -Wall main.pro CONFIG+="release static"
make

If everything went well, you should now have a Mumble.app application bundle in the release directory of the root of the source tree.

Building Murmur

Make sure you've sourced ~/MumbleBuild/env into your current shell session:

$ source ~/MumbleBuild/env

Fetch the Mumble and Murmur source from Git into a directory of your choosing:

git clone --recursive https://github.com/mumble-voip/mumble

To build the server, execute:

cd mumble
qmake -spec unsupported/macx-clang -recursive CONFIG+="release static no-client no-dbus"
make

If everything went well, you should now have a murmur binary in the release directory of the root of the source tree.

Distributing Mumble

If you wish to create a proper redistributable Mumble application bundle, please refer to the osxdist.py script in the macx/scripts directory. This will help you clean up your application bundle, include the needed dependencies, resources etc., and create a compressed disk image - ready to redistribute!

The script expects you to be in the root of the source tree. After executing, it will spit out a .dmg of your Mumble build in the release folder.

If you only have a Mumble.app, and have not built Murmur, you should also pass the

--no-server

parameter to the osxdist.py script. This will not attempt to package Murmur-specific files in the generated .dmg.

The script supports code signing, and among other things, allow you to build a copy of Mumble signed with your Developer ID certificates from Apple. To build with code signing enabled, use the following three parameters to the osxdist.py script:

  • --developer-id='<Name or Organization>'
  • --keychain=<keychain> (optional, defaults to 'login.keychain')