diff options
Diffstat (limited to 'pkg/bundles')
-rw-r--r-- | pkg/bundles/README.rst | 13 | ||||
-rw-r--r-- | pkg/bundles/build.mk | 94 | ||||
-rw-r--r-- | pkg/bundles/win_postbuild.bat | 11 |
3 files changed, 118 insertions, 0 deletions
diff --git a/pkg/bundles/README.rst b/pkg/bundles/README.rst new file mode 100644 index 00000000..d7754355 --- /dev/null +++ b/pkg/bundles/README.rst @@ -0,0 +1,13 @@ +bundle utilities +---------------- +In this folder there are several makefile/batch scripts that are used during +the bundling process. + +The bundles are first generated by PyInstaller (using the spec file in +``pkg/pyinst``), and then we arrange the various helpers in a way that is +specific to every platform. + +The scripts in this folder are expected to be called from the root folder of +the project, and therefore all the paths are relative paths to the root folder. + + diff --git a/pkg/bundles/build.mk b/pkg/bundles/build.mk new file mode 100644 index 00000000..158293b1 --- /dev/null +++ b/pkg/bundles/build.mk @@ -0,0 +1,94 @@ +# This makefile should be called from the topmost bitmask folder +# +OSX_RES = dist/Bitmask.app/Contents/Resources +OSX_CON = dist/Bitmask.app/Contents/MacOS +OSX_CERT = "Developer ID Installer: LEAP Encryption Access Project" + + +default: + echo "enter 'make bundle or make bundle_osx'" + +bundle: bundle_clean + pyinstaller -y pkg/pyinst/app.spec + cp $(VIRTUAL_ENV)/lib/python2.7/site-packages/_scrypt.so $(DIST) + cp src/leap/bitmask/core/bitmaskd.tac $(DIST) + mkdir -p $(DIST)/leap + # if you find yourself puzzled becase the following files are not found in your + # virtualenv, make sure that you're installing the packages from wheels and not eggs. + mkdir -p $(DIST)/leap/soledad/client/_db + cp $(VIRTUAL_ENV)/lib/python2.7/site-packages/leap/soledad/client/_db/dbschema.sql $(DIST)/leap/soledad/client/_db/ + cp $(VIRTUAL_ENV)/lib/python2.7/site-packages/leap/common/cacert.pem $(DIST)/ + cp -r $(VIRTUAL_ENV)/lib/python2.7/site-packages/leap/bitmask_js $(DIST)/leap/ + cp -r $(VIRTUAL_ENV)/lib/python2.7/site-packages/leap/pixelated_www $(DIST)/leap/ + mv $(DIST) _bundlelib && mkdir $(DIST_VERSION) && mv _bundlelib $(DIST_VERSION)/lib/ + cd pkg/launcher && make + cp pkg/launcher/bitmask $(DIST_VERSION) + +bundle_linux_gpg: + # TODO build it in a docker container! + mkdir -p $(DIST_VERSION)/apps/mail + # this is /usr/bin/gpg1 in debian stretch + cp /usr/bin/gpg $(DIST_VERSION)/apps/mail/gpg + # workaround for missing libreadline.so.6 in fresh ubuntu + patchelf --set-rpath '.' $(DIST_VERSION)/apps/mail/gpg + cp /lib/x86_64-linux-gnu/libusb-0.1.so.4 $(DIST_VERSION)/lib + +bundle_linux_vpn: + mkdir -p $(DIST_VERSION)/apps/vpn + # TODO verify signature + wget https://downloads.leap.se/thirdparty/linux/openvpn/openvpn -O $(DIST_VERSION)/apps/vpn/openvpn.leap + +bundle_linux_helpers: + mkdir -p $(DIST_VERSION)/apps/helpers + cp src/leap/bitmask/vpn/helpers/linux/bitmask-root $(DIST_VERSION)/apps/helpers/ + cp src/leap/bitmask/vpn/helpers/linux/se.leap.bitmask.bundle.policy $(DIST_VERSION)/apps/helpers/ + cp /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0 $(DIST_VERSION)/lib/libGL.so.1 || echo "libGL version not found" + +bundle_osx_helpers: + mkdir -p $(DIST_VERSION)/apps/helpers + cp src/leap/bitmask/vpn/helpers/osx/bitmask-helper $(DIST_VERSION)/apps/helpers/ + cp src/leap/bitmask/vpn/helpers/osx/bitmask.pf.conf $(DIST_VERSION)/apps/helpers/ + cp pkg/osx/scripts/se.leap.bitmask-helper.plist $(DIST_VERSION)/apps/helpers/ + cp -r pkg/osx/daemon $(DIST_VERSION)/apps/helpers/ + cp -r pkg/osx/openvpn $(DIST_VERSION)/apps/helpers/ + +bundle_osx_missing: + cp $(DIST_VERSION)/lib/_scrypt.so $(OSX_CON)/ + cp $(DIST_VERSION)/lib/bitmaskd.tac $(OSX_CON)/ + cp -r $(DIST_VERSION)/lib/leap $(OSX_CON)/ + mv dist/Bitmask.app/Contents/MacOS/bitmask $(OSX_CON)/bitmask-app + cp pkg/osx/bitmask-wrapper $(OSX_CON)/bitmask + mkdir -p $(OSX_RES)/bitmask-helper + cp -r $(DIST_VERSION)/apps/helpers/bitmask-helper $(OSX_RES)/bitmask-helper/ + cp -r $(DIST_VERSION)/apps/helpers/bitmask.pf.conf $(OSX_RES)/bitmask-helper/ + cp -r $(DIST_VERSION)/apps/helpers/daemon/daemon.py $(OSX_RES)/bitmask-helper/ + cp -r $(DIST_VERSION)/apps/helpers/openvpn/* $(OSX_RES)/ + wget https://downloads.leap.se/thirdparty/osx/openvpn/openvpn -O $(OSX_RES)/openvpn.leap + chmod +x $(OSX_RES)/openvpn.leap + +bundle_osx_pkg: + pkg/osx/quickpkg --output dist/Bitmask-$(NEXT_VERSION)_pre.pkg --scripts pkg/osx/scripts/ dist/Bitmask.app/ + productsign --sign $(OSX_CERT) dist/Bitmask-$(NEXT_VERSION)_pre.pkg dist/Bitmask-$(NEXT_VERSION).pkg + + +bundle_linux: bundle bundle_linux_gpg bundle_linux_vpn bundle_linux_helpers + +bundle_osx: bundle bundle_osx_helpers bundle_osx_missing bundle_osx_pkg + +bundle_win: + pyinstaller -y pkg/pyinst/app.spec + cp ${VIRTUAL_ENV}/Lib/site-packages/_scrypt.pyd $(DIST) + cp ${VIRTUAL_ENV}/Lib/site-packages/zmq/libzmq.pyd $(DIST) + cp src/leap/bitmask/core/bitmaskd.tac $(DIST) + +bundle_tar: + cd dist/ && tar cvzf Bitmask.$(NEXT_VERSION).tar.gz bitmask-$(NEXT_VERSION) + +bundle_sign: + gpg2 -a --sign --detach-sign dist/Bitmask.$(NEXT_VERSION).tar.gz + +bundle_upload: + rsync --rsh='ssh' -avztlpog --progress --partial dist/Bitmask.$(NEXT_VERSION).* downloads.leap.se:./ + +bundle_clean: + rm -rf "dist" "build" diff --git a/pkg/bundles/win_postbuild.bat b/pkg/bundles/win_postbuild.bat new file mode 100644 index 00000000..c4d9fb01 --- /dev/null +++ b/pkg/bundles/win_postbuild.bat @@ -0,0 +1,11 @@ +SET DIST=%CD%\dist\bitmask +cp %VIRTUAL_ENV%/Lib/site-packages/_scrypt.pyd %DIST% +cp %VIRTUAL_ENV%/Lib/site-packages/zmq/libzmq.pyd %DIST% +cp %VIRTUAL_ENV%/Lib/site-packages/leap/common/cacert.pem %DIST% +cp %CD%\src\leap\bitmask\core\bitmaskd.tac %DIST% +mkdir %DIST%\leap +mkdir %DIST%\leap\soledad\common\l2db\backends +mkdir %DIST%\apps\mail +cp %CD%/../gpg/* %DIST%\apps\mail\ +cp %VIRTUAL_ENV%/Lib/site-packages/leap/soledad/common/l2db/backends/dbschema.sql %DIST%\leap\soledad\common\l2db\backends +cp -r %VIRTUAL_ENV%/Lib/site-packages/leap/bitmask_js %DIST%\leap\ |