blob: fdfb038164693d9250b19da9cd12c0710c1aedfc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
|
# ################################
# Makefile for compiling resources
# files.
# TODO move to setup scripts
# and implement it in python
# http://die-offenbachs.homelinux.org:48888/hg/eric5/file/5072605ad4dd/compileUiFiles.py
###### EDIT ######################
#Directory with ui and resource files
RESOURCE_DIR = data/resources
UI_DIR = src/leap/bitmask/gui/ui
#Directory for compiled resources
COMPILED_DIR = src/leap/bitmask/gui
#Directory for (finished) translations
TRANSLAT_DIR = data/translations
#Project file, used for translations
PROJFILE = data/bitmask.pro
# UI files to compile
UI_FILES = \
loggerwindow.ui \
wizard.ui \
mainwindow.ui login.ui eip_status.ui mail_status.ui \
preferences.ui \
preferences_account_page.ui \
preferences_vpn_page.ui \
preferences_email_page.ui \
password_change.ui \
advanced_key_management.ui
# Qt resource files to compile
RESOURCES = icons.qrc flags.qrc locale.qrc loggerwindow.qrc
#pyuic4 and pyrcc4 binaries
PYUIC = pyside-uic
PYRCC = pyside-rcc
PYLUP = pyside-lupdate
LRELE = lrelease
# pyinst dist dir
DIST = dist/bitmask/
NEXT_VERSION = $(shell cat pkg/next-version)
DIST_VERSION = dist/bitmask-$(NEXT_VERSION)/
GIT_COMMIT = $(shell git rev-parse HEAD)
LEAP_BUILD_DIR = leap_thirdparty_build/
#################################
# DO NOT EDIT FOLLOWING
LEAP_REPOS = leap_pycommon keymanager leap_mail soledad
COMPILED_UI = $(UI_FILES:%.ui=$(COMPILED_DIR)/ui_%.py)
COMPILED_RESOURCES = $(RESOURCES:%.qrc=$(COMPILED_DIR)/%_rc.py)
DEBVER = $(shell dpkg-parsechangelog | sed -ne 's,Version: ,,p')
ifndef EDITOR
export EDITOR=vim
endif
ifndef RESOURCE_TIME
export RESOURCE_TIME=10
endif
CURDIR = $(shell pwd)
###########################################
all : resources ui
resources : $(COMPILED_RESOURCES)
ui : $(COMPILED_UI)
translations:
data/make_project_file.py
$(PYLUP) $(PROJFILE)
$(LRELE) $(TRANSLAT_DIR)/*.ts
$(COMPILED_DIR)/ui_%.py : $(UI_DIR)/%.ui
$(PYUIC) $< -o $@
$(COMPILED_DIR)/%_rc.py : $(RESOURCE_DIR)/%.qrc
$(PYRCC) $< -o $@
manpages:
rst2man docs/man/bitmask.1.rst docs/man/bitmask.1
apidocs:
@sphinx-apidoc -o docs/api src/leap/bitmask
do_cprofile:
python -m cProfile -o bitmask.cprofile src/leap/bitmask/app.py --debug -N
view_cprofile:
cprofilev bitmask.cprofile
mailprofile:
gprof2dot -f pstats /tmp/leap_mail_profile.pstats -n 0.2 -e 0.2 | dot -Tpdf -o /tmp/leap_mail_profile.pdf
do_lineprof:
LEAP_PROFILE_IMAPCMD=1 LEAP_MAIL_MANHOLE=1 kernprof.py -l src/leap/bitmask/app.py --debug
do_lineprof_offline:
LEAP_PROFILE_IMAPCMD=1 LEAP_MAIL_MANHOLE=1 kernprof.py -l src/leap/bitmask/app.py --offline --debug -N
view_lineprof:
@python -m line_profiler app.py.lprof | $(EDITOR) -
resource_graph:
#./pkg/scripts/monitor_resource.zsh `ps aux | grep app.py | head -1 | awk '{print $$2}'` $(RESOURCE_TIME)
./pkg/scripts/monitor_resource.zsh `pgrep bitmask` $(RESOURCE_TIME)
display bitmask-resources.png
get_wheels:
pip install --upgrade setuptools
pip install --upgrade pip
pip install wheel
gather_wheels:
pip wheel --wheel-dir=../wheelhouse pyzmq --build-option "--zmq=bundled"
# because fuck u1db externals, that's why...
pip wheel --wheel-dir=../wheelhouse --allow-external dirspec --allow-unverified dirspec --allow-external u1db --allow-unverified u1db -r pkg/requirements.pip
install_wheel:
# if it's the first time, you'll need to get_wheels first
pip install --pre --use-wheel --no-index --find-links=../wheelhouse -r pkg/requirements.pip
gather_deps:
pipdeptree | pkg/scripts/filter-bitmask-deps
install_base_deps:
for repo in leap_pycommon keymanager leap_mail soledad/common soledad/client; do cd $(CURDIR)/../$$repo && pkg/pip_install_requirements.sh; done
pkg/pip_install_requirements.sh
pull_leapdeps:
for repo in $(LEAP_REPOS); do cd $(CURDIR)/../$$repo && git pull; done
checkout_leapdeps_develop:
for repo in $(LEAP_REPOS); do cd $(CURDIR)/../$$repo && git checkout develop; done
git checkout develop
include pkg/sumo-tarballs.mk
include pkg/pyinst/pyinst-build.mk
include pkg/branding/branding.mk
pyinst_osx: pyinst
mv dist/Bitmask.app/Contents/MacOS/bitmask dist/Bitmask.app/Contents/MacOS/bitmask-app
cp pkg/osx/bitmask-wrapper dist/Bitmask.app/Contents/MacOS/bitmask
mkdir -p dist/Bitmask.app/Contents/Resources/bitmask-helper
cp pkg/osx/client.up.sh dist/Bitmask.app/Contents/Resources/
cp pkg/osx/client.down.sh dist/Bitmask.app/Contents/Resources/
cp pkg/osx/bitmask-helper dist/Bitmask.app/Contents/Resources/bitmask-helper/
cp pkg/osx/bitmask.pf.conf dist/Bitmask.app/Contents/Resources/bitmask-helper/
cp pkg/osx/se.leap.bitmask-helper.plist dist/Bitmask.app/Contents/Resources/bitmask-helper/
cp pkg/osx/post-inst.sh dist/Bitmask.app/Contents/Resources/bitmask-helper/
cp pkg/osx/daemon.py dist/Bitmask.app/Contents/Resources/bitmask-helper/
# XXX hack... this contains the gpg binary (brew), but we need to build it from sources.
cp -r src/leap/bitmask/util/apps dist/Bitmask.app/Contents/MacOS/
# XXX hack... this contains the openvpn binary (brew), but we need to build it from sources.
cp -r src/leap/bitmask/util/openvpn.leap dist/Bitmask.app/Contents/Resources/
# XXX this should be taken care of by pyinstaller data collector
cp $(VIRTUAL_ENV)/lib/python2.7/site-packages/leap/common/cacert.pem dist/Bitmask.app/Contents/MacOS/
clean :
$(RM) $(COMPILED_UI) $(COMPILED_RESOURCES) $(COMPILED_UI:.py=.pyc) $(COMPILED_RESOURCES:.py=.pyc)
|