From 870cc8d8d51c600d1b9faa0a2d6a5a9dba8b5354 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Touceda?= Date: Thu, 21 Nov 2013 12:31:23 -0300 Subject: Create bundler for OSX --- README.rst | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 README.rst (limited to 'README.rst') diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..d7eaaf3 --- /dev/null +++ b/README.rst @@ -0,0 +1,102 @@ +Bundler ++++++++ + +This application is intended to create bundles for the platform in which its being run. This should eventually become the main tool in order to create reproducible builds. + +How to use +++++++++++ + +NOTE: Most of this will be done automatically in a while, but this is how it's done now. + +- Install Xcode and command line tools (OSX only) +- Create a new virtualenv + +:: + mkvirtualenv bundle + +- Install bundler deps + +:: + pip install -r pkg/requirements.pip + +- psutils is a dependency for another dependency, it might get installed in a zip form, which we don't want, so we install it by hand for now + +:: + pip install psutil + +- We need a slightly different python-gnupg, so clone from a different repo + +:: + git clone https://github.com/chiiph/python-gnupg + cd python-gnupg/ + git checkout develop + git pull origin develop + python setup.py develop + +- Same thing with protobuf.socketrpc + +:: + git clone https://github.com/chiiph/protobuf-socket-rpc + cd protobuf-socket-rpc + python setup.py easy_install -Z . + +- Install Qt 4.8 in whatever way you prefer. + +- Build PySide: + +:: + git clone git://gitorious.org/pyside/apiextractor.git + git clone git://gitorious.org/pyside/generatorrunner.git + git clone git://gitorious.org/pyside/shiboken.git + git clone git://gitorious.org/pyside/pyside.git + git clone git://gitorious.org/pyside/pyside-tools.git + export PYSIDESANDBOXPATH=$HOME/Code/pyside/sandbox + export PATH=$PYSIDESANDBOXPATH/bin:$PATH + export PYTHONPATH=$PYSIDESANDBOXPATH/lib/python2.6/site-packages:$PYTHONPATH + export DYLD_LIBRARY_PATH=$PYSIDESANDBOXPATH/lib:$DYLD_LIBRARY_PATH + export PKG_CONFIG_PATH=$PYSIDESANDBOXPATH/lib/pkgconfig:$PKG_CONFIG_PATH + + # In OSX, the paths may vary depending on the Qt installation + runcmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.7 -DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk .. -DQT_QMAKE_EXECUTABLE=/usr/local/bin/qmake -DQT_INCLUDE_DIR=/usr/local/include/ -DQT_INCLUDES=/usr/local/include/ -DALTERNATIVE_QT_INCLUDE_DIR=/usr/local/include/ + # In Linux + runcmake .. + + make install + + # Make them available from the virtualenv + ln -s $PYSIDESANDBOXPATH/lib/python2.7/site-packages/PySide $VIRTUAL_ENV/lib/python2.7/site-packages/PySide + ln -s $PYSIDESANDBOXPATH/lib/python2.7/site-packages/pysideuic $VIRTUAL_ENV/lib/python2.7/site-packages/pysideuic + +- Create a paths file: The problem is that inside a virtualenv we don't have access to the real distutils, so we'll need to look for it on the "original" (i.e. non-virtualenv) paths for python. + +:: + python bundler/create_paths.py + +- Collect the binaries. We aren't building everything yet, so you'll need to collect the following files: + +:: + # OSX + Bitmask <-- this is the bitmask_launcher + Python + QtCore + QtGui + cocoasudo + gpg + libboost_filesystem.dylib + libboost_python.dylib + libboost_system.dylib + libpng15.15.dylib + libpyside-python2.7.1.2.dylib + libshiboken-python2.7.1.2.dylib + openvpn.files + openvpn.leap + qt_menu.nib + tuntap-installer.app + +- (Optional) Seed a configuration: You might want to create a bundle with a specific configuration pinned providers. + +- Create the bundle: + +:: + python bundler/main.py --workon --paths-file --binaries --seeded-config [--nightly] --do gitclone pythonsetup + python bundler/main.py --workon --paths-file --binaries --seeded-config [--nightly] --skip gitclone pythonsetup -- cgit v1.2.3