Compare commits

...

172 Commits

Author SHA1 Message Date
cis-kuldeep 1c6d4702c0 Added flatpak build manifests with split dependencies 2021-04-27 20:37:46 +05:30
Muzahid f5fba7d1a8
update changes and rename file name 2021-04-06 13:04:44 +05:30
Muzahid f075d27fae
add dot in importing 2021-04-05 19:08:10 +05:30
Muzahid 1b8dc18ef6
remove functions imports 2021-04-05 18:28:26 +05:30
Muzahid 06cab993d9
Fix configparser import error 2021-04-01 21:06:22 +05:30
Dmitri Bogomolov 6f9b66ddff
Qt test for UDP setting 2021-03-01 19:55:48 +02:00
Dmitri Bogomolov 79efacffb1
Replaced lost UDPSocket.maxTimeOffset by constants.MAX_TIME_OFFSET
Closes: #1696
2021-03-01 19:55:47 +02:00
Dmitri Bogomolov 6ee6989df2
A minimal test for UDP. Restore expected default settings in tearDown(). 2021-03-01 19:55:30 +02:00
Dmitri Bogomolov 5f9d507717
announceInterval is for AnnounceThread, not UDPSocket 2021-02-22 19:56:24 +02:00
Dmitri Bogomolov 6168d63699
Replace formatting socket.error by exc_info in network.udp 2021-02-22 19:56:24 +02:00
Dmitri Bogomolov 8ff8e0e2cb
Make it possible to disable UDP announcing in settings 2021-02-22 19:56:23 +02:00
Dmitri Bogomolov ef849d2dd3
Handle old psutil in TestProcess 2021-02-18 17:15:56 +02:00
Dmitri Bogomolov d8cf148d4a
Replaced print operator by print function in network.asyncore_pollchoose
and unmaintained modules.
2021-02-18 17:15:56 +02:00
Dmitri Bogomolov 2fe2f17688
Don't run tests when build deb 2021-02-18 17:15:56 +02:00
Dmitri Bogomolov 671df69303
Work around deprecation of platform.dist() in recent python 2021-02-18 17:15:56 +02:00
Dmitri Bogomolov 81645eadef
Remove import from debug from openclpow, remove shebang, format 2021-02-18 17:15:56 +02:00
Dmitri Bogomolov e77238fa07
Support tox and request more warnings:
- make separate tests runner - tests.py; python setup.py test still works
  - tox.ini with coverage config
  - -b: issue warnings about comparing bytearray with unicode
  - export PYTHONWARNINGS=all on stage install
2021-02-18 17:12:43 +02:00
Dmitri Bogomolov 0f8528cc48
Fix python3 issues in test_blindsig:
- simplify imports
 - signatures are of type bytes
 - chain kwarg of pyelliptic.ECCBlindChain is bytes
2021-02-18 17:12:42 +02:00
Dmitri Bogomolov faed885c34
Fix python3 issues in test_crypto:
- use bytes for python3
 - encode the result of arithmetic.privtopub
 - add test for arithmetic.base10_multiply
2021-02-18 17:12:42 +02:00
Dmitri Bogomolov 5bd3bd4711
Make addresses module available for testing with python3:
- remove import from debug
 - use divmod and bytes
2021-02-18 17:12:42 +02:00
Dmitri Bogomolov 5976a449e2
test_randomtrackingdict: revert bytes to string for python3 2021-02-18 17:12:42 +02:00
Dmitri Bogomolov da8bd36614
Fix python3 issues in pyelliptic:
- use dotted imports, remove unneeded shebangs
 - openssl._OpenSSL._version is of type bytes
 - use b'\x00' literal instead of chr(0) in eccblind and test_openssl
 - use // and divmod in arithmetic to fit PEP238:
   https://docs.python.org/3/whatsnew/2.2.html#pep-238-changing-the-division-operator
2021-02-18 17:11:36 +02:00
Dmitri Bogomolov d05255625b
Universal pathmagic returns app dir; activated in setup for python3 2021-02-17 17:11:25 +02:00
Dmitri Bogomolov f8844f4d74
Use common.skip_python3() to skip tests modules not supporting python3 2021-02-17 17:11:25 +02:00
Dmitri Bogomolov b3c341951d
Add normal exit in depends if detected python3 2021-02-17 17:11:25 +02:00
Dmitri Bogomolov 6029ec85b6
Add python 3.7. Use general shebangs in scripts to test with python3;
Use 2.7_with_system_site_packages for python2 to run qt tests
as suggested in Travis doc instead of bypassing virtualenv by shebang.
2021-02-17 17:11:24 +02:00
Peter Šurda 574b60ed0e
Add Dockerfile for running test
- run ./run-tests-in-docker.sh to run travis tests locally
2021-02-16 10:15:15 +01:00
Dmitri Bogomolov d35c284e13
Move desktop plugin initialization to updateStartOnLogon(); Fixes: #1735 2021-02-15 14:00:52 +02:00
Dmitri Bogomolov c51108e867
Entry point 'desktop' for plugins managing desktop environment;
desktop_xdg will do it with pyxdg. Fixes: #857
2021-02-12 21:16:19 +02:00
Dmitri Bogomolov 74e039de5d
Added Network category in desktop file 2021-02-12 21:15:49 +02:00
Dmitri Bogomolov 2f5d6214ff
Move addressbook test to bitmessageqt.tests because it uses Qt 2021-02-11 17:07:48 +02:00
Dmitri Bogomolov 26057be6ff
A test for listening port 8444 2021-02-11 16:34:43 +02:00
Dmitri Bogomolov 5052602c21
Add test for BITMESSAGE_HOME 2021-02-11 16:34:38 +02:00
Dmitri Bogomolov 265fb932a8
Instruct git to use LF as line ending for knownnodes.dat test pattern 2021-02-10 16:01:30 +02:00
Dmitri Bogomolov 5b71bd1931
Format and simplify bitmessagemain.spec, exclude unused libs and files 2021-02-09 22:56:44 +02:00
surbhicis d36e7615a9
remove kivy specification file along with component changes of version from upstream 2021-02-09 19:59:40 +05:30
navjot f381721bec
remove TestProcessProto import from test_openclpow module 2021-02-04 14:37:26 +05:30
Dmitri Bogomolov 448e9e2f36
Prevent adding bootstrap servers to knownnodes when received in addr 2021-01-22 18:52:34 +02:00
Dmitri Bogomolov 3108115570
Shorten Bootstrapper methods:
handle_close() and set_connection_fully_established()
2021-01-22 18:52:34 +02:00
Dmitri Bogomolov d6cab9935d
Try to find bootstrap server in knownnodes after bootstrapping 2021-01-22 18:52:34 +02:00
Dmitri Bogomolov 2ac4b1fece
A separate test for dontconnect setting 2021-01-22 18:52:33 +02:00
Dmitri Bogomolov 2b5f605857
Set close_reason for exceptions in network.tls 2021-01-22 18:52:33 +02:00
Dmitri Bogomolov 9540d5fabe
Fixing tor related tests:
- knownnodes.cleanupKnownNodes() should set knownNodesActual = False
   if there are no nodes in stream 1 (repeated bootstrapping)
 - set socksproxytype before _initiate_bootstrap()
 - wait 5 sec in _initiate_bootstrap() to be sure all connections are closed
 - plugins do not work on travis - use socksproxytype = SOCKS5,
   check tor presence by trying to bind on port 9050
 - successfull connection to 3 onion nodes in 6 minutes is not guaranteed -
   check that bitmessage doesn't try non-onion nodes
2021-01-22 18:52:33 +02:00
Dmitri Bogomolov e9073d736a
Another possible approach for connection check 2021-01-22 18:52:33 +02:00
Dmitri Bogomolov d9d1cdb5d8
A separate test for connection to bootstrap servers 2021-01-22 18:52:33 +02:00
navjot 7b8bf082ff
add Gpu skip condition and setupclass in test_openclpow module 2021-01-20 16:42:14 +05:30
navjot 1612f9c778
test case for openclpow module 2021-01-20 16:41:33 +05:30
navjot 9c5d329c90
replace print with logger and remove unused file 2021-01-18 23:31:45 +05:30
surbhicis 6ffb912f2a
detach kivy version from upstream 2021-01-16 23:11:19 +05:30
navjot edc4660c6d
imported helper_addressGenerator module 2021-01-15 15:34:38 +05:30
navjot bfdb78151c
updated addressbook table in class_sqlThread module 2021-01-14 15:43:30 +05:30
navjot f146500b58
written test case for addressbook 2021-01-14 15:43:30 +05:30
navjot 42037502ab
fixed Own address should not save in address book issue
- removed redundant code

- written test case for address book own address saving

- fixed CQ issues

- added helper_addressbook module

- Fixed CQ issue of src.helper_addressbook module

- fixed travis-ci checks failing issue
2021-01-14 15:43:30 +05:30
navjot 09439b4a0d
added general exception handler 2021-01-13 20:29:20 +05:30
navjot 5fb8692eb6
ignoring ValueError from proofofwork module 2021-01-13 20:29:20 +05:30
navjot ac23a397a1
added timer of less then 10 seconds 2021-01-13 14:14:26 +05:30
navjot 14a4f42fc0
remove qt dependency 2021-01-12 20:09:36 +05:30
navjot 16e9319d5f
add helper_addressGenerator module 2021-01-08 17:41:33 +05:30
813492291816 a0e1c0041f
Add missing TTL to API sendMessage 2021-01-07 19:51:12 -05:00
Peter Šurda e084d7f53c
`objectProcessor` waits for `sqlThread` ready
- fixes #1702
2021-01-03 11:14:27 +01:00
Peter Šurda 184664d758
SQL operations asserts and code quality
- complain if trying to execute SQL statements without a running
  `.threads.sqlThread`. This is to give better test feedback if used
  incorrectly
- refactor `.helper_sql.sql_ready` as a `threading.Event`
- code quality
2021-01-01 17:54:05 +01:00
navjot 7a010441c3
Fixed flake8 CQ issues 2020-12-30 20:01:33 +05:30
navjot 46e2f04488
move randomtrackingdict.py out side the network dircetory 2020-12-29 13:12:22 +05:30
navjot a2ab0a02dc
written test case randomtrackingdict dict module 2020-12-28 16:01:23 +05:30
navjot 9fe4ad0489
test case for testing old knownnodes pickle
-test case for testing old knownnodes pickle

-fixed CQ for tests.core module

-implemented shutil.copyfile feature and use small size knownnodes.dat file in test_pattern dir

-remove unnecessary code

-Fixed CQ of tests.core module
2020-12-21 22:50:38 +05:30
navjot d2a340d012
implemented dependency checks in checkdeps module 2020-11-25 19:52:27 +05:30
navjot 9265235053
fixed network issue when it is set offline 2020-11-23 17:52:20 +05:30
navjot 124e6d9b32
fix for #1656 issue 2020-11-23 17:52:20 +05:30
navjot 1c304125e8
fixed CQ issues 2020-11-21 13:53:10 +05:30
navjot 4681d37377
validate address in insert method and improve test cases 2020-11-21 13:53:10 +05:30
navjot 360539b320
Fixed CQ of class_objectProcessor, bitmessagecurses and bitmessageqt module 2020-11-21 13:53:10 +05:30
navjot 61f7f32dfc
removed unused code and return ackdata from inset method insted of msgid 2020-11-21 13:53:10 +05:30
navjot beaece254c
omitted unused code and optimized it 2020-11-21 13:53:10 +05:30
navjot 89254064f6
fixed default variables in insert method 2020-11-21 13:53:10 +05:30
navjot 5eff9d6a04
Fixed CQ for tests.core module 2020-11-21 13:53:10 +05:30
navjot a9e9f25b5d
change helper_sent.insert methods 2020-11-21 13:53:10 +05:30
navjot 0ec15d1d4d
Test case for insert method default values 2020-11-21 13:53:10 +05:30
navjot 1bc3fe7b42
added checks in helper_sent module 2020-11-21 13:53:10 +05:30
navjot b7d920d529
Fixed CQ for test/core.py module 2020-11-21 13:53:10 +05:30
navjot 0023fc4b3d
Written test case for helper_sent.insert method 2020-11-21 13:53:10 +05:30
navjot e60d12ddbf
Refactord the uuid creation code and placed it in helper_sent.insert method
refactored on the bases of comments

Fixed CQ of src.helper_sent module

fixed CQ for helper_sent module
2020-11-21 13:53:10 +05:30
navjot 881351033f
replaced insert into sent query with helper_sent.insert method and also replaced empty msgid with uuid 2020-11-21 13:53:10 +05:30
813492291816 601158f6fb
add pendingDownload to return of API clientStatus 2020-11-21 01:00:11 +00:00
Dmitri Bogomolov cb0710e454
Fix updateStatusBar wrong args order 2020-11-04 16:24:58 +02:00
Dmitri Bogomolov caf3a3fbbc
A test for updateStatusBar command 2020-11-04 16:24:58 +02:00
Dmitri Bogomolov 695140d57d
Save exceptions in the main thread in excQueue 2020-11-04 16:24:52 +02:00
citizenaspirant 93bf7ad62c
Add apparmor config to data_files for Debian and Ubuntu 2020-11-04 15:47:46 +02:00
Dmitri Bogomolov 84b5f2982c
Allow running pybitmessage -t without tests package 2020-11-04 14:25:21 +02:00
Dmitri Bogomolov 8be89e9a25
Remove deb building overdocumentation 2020-11-04 14:25:21 +02:00
Dmitri Bogomolov d3fbf17acf
Remove unmaintained debian package 2020-11-04 14:25:20 +02:00
Dmitri Bogomolov d410cad4b6
stdeb config for building deb 2020-11-04 14:25:15 +02:00
Dmitri Bogomolov db11d6331f
Optimize setUpClass() and tearDownClass() in test_process 2020-11-03 17:14:00 +02:00
Peter Šurda 96a784b58b
Merged PeterSurda/teardown-test1:
- reset BMConfigParser before reading config file
  - enable threads name check on posix systems
  - check singleton.lock in TestProcessProto.setUpClass()
2020-11-03 17:14:00 +02:00
Dmitri Bogomolov b65f2d154a
Common basic cleanup procedure 2020-11-03 17:14:00 +02:00
Dmitri Bogomolov 1bcffd2853
Make TestLogger a subclass of TestProcessProto 2020-11-02 18:01:51 +02:00
Dmitri Bogomolov cf4e812334
Allow TestProcess subclasses set home dir, use mkdtemp for test_config 2020-11-02 18:01:51 +02:00
Dmitri Bogomolov affdb2fdc0
Solve problem with subprocess.call() on windows:
- uncomment console_scripts (only for windows) to get exe
 - replace call() with Popen() to avoid blocking
2020-11-02 18:01:50 +02:00
Dmitri Bogomolov 80831754b3
Fail in TestProcessProto.setUp if bitmessage process dies 2020-11-02 11:08:28 +02:00
navjot 6c5bb62123
replaced double quotes with Single quotes in class_singleWorker module 2020-10-31 13:07:51 +05:30
navjot a7c1018f47
fixed CQ for src.class_singleWorker module 2020-10-31 13:07:51 +05:30
navjot 30044f7516
implemented filter query in sent table on the bases of folder= 'sent' 2020-10-31 13:07:51 +05:30
Dmitri Bogomolov b650e97edc
Fix statuses for sendBroadcast 2020-10-28 15:25:46 +02:00
navjot c18b544732
fixed socket error on sendato #1583 2020-10-23 17:54:59 +05:30
navjot ec922adb36
fixed flake8 code quality issue 2020-10-12 16:44:49 +05:30
navjot 1ec0bd4c42
removed unnecessary import 2020-10-12 16:44:49 +05:30
navjot 263711a4d3
fixed unread trash message listing issue 2020-10-09 16:56:56 +05:30
Dmitri Bogomolov 6b65113bb4
Added missing msgid in HandleGetInboxMessageById() query 2020-10-04 17:24:45 +03:00
Dmitri Bogomolov 380530c839
Experimental APIError codes table 2020-09-14 13:11:43 +03:00
Dmitri Bogomolov 85f306e5f6
Covered more API commands by tests, listed uncovered in TODO 2020-09-14 13:11:43 +03:00
Dmitri Bogomolov ef5593b3d5
Formatted lines for PEP8, handled pylint warnings, added docstrings 2020-09-14 13:11:43 +03:00
Dmitri Bogomolov 3a8e842e60
Use encodingType arg in sendMessage and sendBroadcast API commands 2020-09-14 13:11:43 +03:00
Dmitri Bogomolov 5b07d2de30
httplib status codes constants in response 2020-09-14 13:11:43 +03:00
Dmitri Bogomolov 6c85bdd498
Also check sent broadcast status and it's presence in sent messages 2020-09-14 13:11:43 +03:00
Dmitri Bogomolov efff8f95ba
Prefix based command filter 2020-09-14 13:11:42 +03:00
Dmitri Bogomolov fabbccbeac
Rewrote test_user_password() for xmlrpclib.ProtocolError:
it would be very difficult to return string from BMXMLRPCRequestHandler
2020-09-14 13:11:42 +03:00
Dmitri Bogomolov 06033ed96e
Fixed response for bad username or password and content-type header
(closes #244)
2020-09-14 13:11:42 +03:00
Dmitri Bogomolov 726986c1eb
Implemented JSON-RPC apivariant 2020-09-14 13:11:42 +03:00
Dmitri Bogomolov 6a089e0f88
Decoupled SimpleXMLRPCRequestHandler subclass
and added simple introspection
2020-09-14 13:11:42 +03:00
Dmitri Bogomolov f4bf3bac2a
Used defusedxml to protect against XML vulnerabilities 2020-09-14 13:11:42 +03:00
Dmitri Bogomolov 2142888cbe
Inherited APIError from xmlrpclib.Fault.
From now on any errors are raised.
2020-09-14 13:11:42 +03:00
Dmitri Bogomolov 25abf66f1d
Reused _verifyAddress() in HandleDecodeAddress() 2020-09-14 13:11:41 +03:00
Dmitri Bogomolov 5925781b9a
Proper message for APIError 0 2020-09-14 13:11:41 +03:00
Dmitri Bogomolov 7cafe402be
Methods to form a dictionary for inbox and sent messages 2020-09-14 13:11:41 +03:00
Dmitri Bogomolov 45b0659e4c
Refactoring the API with metaclass and decorator 2020-09-14 13:11:35 +03:00
coolguy-cell 1571176082
fixed CQ for bitmessageqt.statusbar module 2020-09-09 12:12:52 +05:30
Peter Šurda 95fc981ae2
Finish timeOffsetWrongCount
- now notifies in status bar
- fixes #1433
2020-08-31 11:52:30 +02:00
Peter Šurda 39d28b9b0f
Downgrade pyinstaller for python 2.7 compatibility
- pyinstaller 3.6 is the last one supporting python 2.7 so we're forcing
it for 64bit windows builds
2020-08-28 13:52:31 +02:00
Peter Šurda 2c5d15e649
winebuid.sh code quality
- code quality only changes
2020-08-27 16:48:02 +02:00
Peter Šurda 245c8d20e1
Cert removal and pytools compatibility
- remove SSL certificate from winebuild.sh (was causing too many
problems, not worth the effort)
- set pytools version to 2020.2 in winebuild.sh, as that's the last one
to support python2
- fixes #1658
2020-08-27 16:13:20 +02:00
coolguy-cell 6486b0fc99
fixed CQ for bitmessageqt.safehtmlparser module 2020-07-24 21:04:25 +05:30
coolguy-cell 035fac1fc5
fixed CQ for bitmessageqt.messagecompose module 2020-07-22 14:08:05 +05:30
Dmitri Bogomolov d56191ebba
Move knownnodes module into network package 2020-07-21 16:21:43 +03:00
Dmitri Bogomolov b165a6b4ef
Do addKnownNode recursively for multiple streams 2020-07-21 16:21:43 +03:00
Dmitri Bogomolov 5805840613
A test case for protocol with the test for TCPConnection.local 2020-07-21 16:21:43 +03:00
Dmitri Bogomolov f9dc8eaacf
Define len() for network.BMConnectionPool 2020-07-21 16:21:43 +03:00
Dmitri Bogomolov 1035d2aec4
Format network.tcp for flake8 2020-07-21 16:21:42 +03:00
Dmitri Bogomolov 54e44eac95
Add or update knownnode for connected Peer for both inbound
and outbound connections when fully established, update lastseen
before closing connection.
2020-07-21 16:21:42 +03:00
Dmitri Bogomolov d9ddbe8d24
Do not update addrQueue if not added node to own knownnodes
and more checks in knownnodes.addKnownNode moved from bmproto.
2020-07-21 16:21:42 +03:00
Dmitri Bogomolov 0dd49761d0
Populate knownnodes from inventory when singleWorker starts 2020-07-21 16:21:42 +03:00
Dmitri Bogomolov 739ff7b439
Add knownnodes only by knownnodes.addKnownNode(),
now it can update lastseen.
2020-07-21 16:21:36 +03:00
coolguy-cell 1699c2b015
fixed CQ for bitmessageqt.addressvalidator module 2020-07-20 20:00:48 +05:30
coolguy-cell 859eeafcfe
fixed CQ for bitmessageqt.messageview module 2020-07-07 19:44:45 +05:30
coolguy-cell 217a5c0c5b
fixed CQ for bitmessageqt.settings module 2020-06-19 18:15:52 +05:30
coolguy-cell 277549cff1
fixed CQ for bitmessageqt.sound module 2020-06-18 11:30:33 +05:30
Dmitri Bogomolov f03bdfb329
Dirty quickfix for #1633 2020-06-15 12:06:37 +03:00
Dmitri Bogomolov 731f75687e
Install needed packages and try to run Qt tests 2020-06-15 12:06:37 +03:00
Dmitri Bogomolov d6953eb450
New package: bitmessageqt.tests
any test cases from it will be added to tests.core test suite if possible,
e.g. PyQt is functional. TestSupport - minimal test case for support module
to reproduce #1633.
2020-06-15 12:06:31 +03:00
coolguy-cell ea109bc21e
fixed CQ for bitmessageqt.dialogs module 2020-06-08 17:07:40 +05:30
coolguy-cell e237534335
fixed CQ for bitmessageqt.networkstatus module 2020-06-06 20:08:06 +05:30
coolguy-cell e372459737
fixed CQ for bitmessageqt.languagebox module 2020-06-05 15:28:31 +05:30
Dmitri Bogomolov b750b02963
Fix another unicode bug introduced in 3624234.
Temporary suppressed pylint no-member warning. Closes: #1633
2020-06-01 13:21:46 +03:00
coolguy-cell 5cfaa9b2fa
fixed CQ for address_dialog python file 2020-05-30 19:17:52 +05:30
lakshya 3f773c78f7
setting, openssl and bmproto quality fixes 2020-05-28 13:43:03 +05:30
Dmitri Bogomolov c69decaab3
Fix unicode bug introduced in 045a2ef 2020-05-24 14:08:14 +03:00
Dmitri Bogomolov 87e3d63340
Minimal fix for #1449, if search line is empty 2020-05-22 13:17:44 +03:00
Dmitri Bogomolov 36242343c2
Style and formatting changes in support 2020-05-22 13:17:44 +03:00
Dmitri Bogomolov 15d44d85d4
Renamed application class and moved most of init statements to __init__ 2020-05-22 13:17:44 +03:00
Dmitri Bogomolov 7830ac8de5
RetranslateMixin is not needed in most of dialogs 2020-05-22 13:17:44 +03:00
Dmitri Bogomolov f3e432140c
Proper quit sequence:
close MainWindow and quit the app instead of sys.exit()
2020-05-22 13:17:43 +03:00
Dmitri Bogomolov 08ff39e1ff
Moved myTableWidgetItem to foldertree.MessageList_TimeWidget 2020-05-22 13:17:43 +03:00
Dmitri Bogomolov aa333a66a6
Minor style changes:
- removed list <-> set conversion in __init__
  - tuples instead of lists if changes aren't needed
  - removed unnecessary variable redefinition in utils
  - rewrote languagebox module a bit
2020-05-22 13:17:43 +03:00
Dmitri Bogomolov d15e614bb1
Fix streams decoding in BMProto.bm_command_version() 2020-05-22 12:58:04 +03:00
Dmitri Bogomolov 2a62fb79cc
Add test for decoding the version message 2020-05-22 12:58:00 +03:00
Dmitri Bogomolov 7787722452
Search option "To" makes no sense on tab "Subscriptions"
Made "Subject" the default search option
2020-05-11 13:39:13 +03:00
Dmitri Bogomolov aba61e57a8
flake8 and style fixes and docstrings in helper_search 2020-05-11 13:39:13 +03:00
Dmitri Bogomolov ef6be53702
Do not convert search option because helper_search compares it
to the result of _translate()
2020-05-11 13:39:13 +03:00
Dmitri Bogomolov 045a2ef443
Update messagelist also if search line cleared 2020-05-11 13:38:16 +03:00
Dmitri Bogomolov d09782e53d
Obsolete bitmessagemain.connectToStream(), use BMConnectionPool method 2020-05-05 17:30:31 +03:00
Dmitri Bogomolov c5b77a08fa
Moved addresses demo script into tests.test_crypto 2020-05-05 17:30:31 +03:00
Dmitri Bogomolov 8684d647a3
Use default digestalg='sha256' in highlevelcrypto.sign() 2020-05-05 17:30:30 +03:00
Dmitri Bogomolov 280095b08f
Moved state.openKeysFile() into bitmessageqt where it's used 2020-05-05 17:30:23 +03:00
Dmitri Bogomolov 185ad66ea5
Moved most of variables from shared elsewhere (mostly to state) 2020-05-05 17:27:38 +03:00
193 changed files with 4021 additions and 13155 deletions

3
.gitattributes vendored Normal file
View File

@ -0,0 +1,3 @@
# Pickle files (for testing) should always have UNIX line endings.
# Windows issue like here https://stackoverflow.com/questions/556269
knownnodes.dat text eol=lf

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "packages/flatpak/shared-modules"]
path = packages/flatpak/shared-modules
url = https://github.com/flathub/shared-modules.git

View File

@ -1,17 +1,22 @@
language: python
cache: pip
dist: bionic
python:
- "2.7"
- "2.7_with_system_site_packages"
- "3.7"
addons:
apt:
packages:
- build-essential
- libcap-dev
- python-qt4
- tor
- xvfb
install:
- pip install -r requirements.txt
- ln -s src pybitmessage # tests environment
- python setup.py install
- export PYTHONWARNINGS=all
script:
- python checkdeps.py
- src/bitmessagemain.py -t
- python setup.py test
- xvfb-run src/bitmessagemain.py -t
- python -bm tests

View File

@ -6,43 +6,37 @@ RUN apt-get update
# Install dependencies
RUN apt-get install -yq --no-install-suggests --no-install-recommends \
python-msgpack dh-python python-all-dev build-essential libssl-dev \
python-stdeb fakeroot python-pip libcap-dev
build-essential libcap-dev libssl-dev \
python-all-dev python-msgpack python-pip python-setuptools
RUN pip install --upgrade pip
RUN pip2 install --upgrade pip
EXPOSE 8444 8442
ENV HOME /home/bitmessage
ENV BITMESSAGE_HOME ${HOME}
ENV VER 0.6.3.2
WORKDIR ${HOME}
ADD . ${HOME}
# Install tests dependencies
RUN pip install -r requirements.txt
# Build and install deb
RUN python2 setup.py sdist \
&& py2dsc-deb dist/pybitmessage-${VER}.tar.gz \
&& dpkg -i deb_dist/python-pybitmessage_${VER}-1_amd64.deb
RUN pip2 install -r requirements.txt
# Install
RUN python2 setup.py install
# Create a user
RUN useradd bitmessage && chown -R bitmessage ${HOME}
USER bitmessage
# Generate default config
RUN src/bitmessagemain.py -t && mv keys.dat /tmp
# Clean HOME
RUN rm -rf ${HOME}/*
# Generate default config
RUN pybitmessage -t
# Setup environment
RUN mv /tmp/keys.dat . \
&& APIPASS=$(tr -dc a-zA-Z0-9 < /dev/urandom | head -c32 && echo) \
RUN APIPASS=$(tr -dc a-zA-Z0-9 < /dev/urandom | head -c32 && echo) \
&& echo "\napiusername: api\napipassword: $APIPASS" \
&& echo "apienabled = true\napiinterface = 0.0.0.0\napiusername = api\napipassword = $APIPASS" >> keys.dat

64
Dockerfile.travis Normal file
View File

@ -0,0 +1,64 @@
FROM ubuntu:bionic AS pybm-travis-bionic
ENV DEBIAN_FRONTEND noninteractive
ENV TRAVIS_SKIP_APT_UPDATE 1
RUN apt-get update
RUN apt-get install -yq --no-install-suggests --no-install-recommends \
software-properties-common
RUN dpkg --add-architecture i386
RUN add-apt-repository ppa:deadsnakes/ppa
RUN apt-get -y install sudo
RUN apt-get install -yq --no-install-suggests --no-install-recommends \
# travis xenial bionic
python-setuptools libssl-dev libpq-dev python-prctl python-dev \
python-dev python-virtualenv python-pip virtualenv \
# dpkg
python-minimal python-setuptools python-all python openssl libssl-dev \
dh-apparmor debhelper dh-python python-msgpack python-qt4 python-stdeb \
python-all-dev python-crypto python-psutil \
fakeroot python-pytest \
# Code quality
pylint python-pycodestyle python3-pycodestyle pycodestyle python-flake8 \
python3-flake8 flake8 python-pyflakes python3-pyflakes pyflakes pyflakes3 \
curl \
# Wine
python python-pip wget wine-stable winetricks mingw-w64 wine32 wine64 xvfb \
# Buildbot
python3-dev libffi-dev python3-setuptools \
python3-pip \
# python 3.7
python3.7 python3.7-dev \
# .travis.yml
build-essential libcap-dev tor \
language-pack-en
# cleanup
RUN rm -rf /var/lib/apt/lists/*
RUN useradd -m -U builder
RUN echo 'builder ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
# travis2bash
RUN wget -O /usr/local/bin/travis2bash.sh https://git.bitmessage.org/Bitmessage/buildbot-scripts/raw/branch/master/travis2bash.sh
RUN chmod +x /usr/local/bin/travis2bash.sh
# copy sources
COPY . /home/builder/src
RUN chown -R builder.builder /home/builder/src
USER builder
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
WORKDIR /home/builder/src
ENTRYPOINT /usr/local/bin/travis2bash.sh

View File

@ -1,43 +0,0 @@
PyBitmessage(Android)
This sample aims to be as close to a real world example of a mobile. It has a more refined design and also provides a practical example of how a mobile app would interact and communicate with its addresses.
Steps for trying out this sample:
Compile and install the mobile app onto your mobile device or emulator.
Getting Started
This sample uses the kivy as Kivy is an open source, cross-platform Python framework for the development of applications that make use of innovative, multi-touch user interfaces. The aim is to allow for quick and easy interaction design and rapid prototyping whilst making your code reusable and deployable.
Kivy is written in Python and Cython, supports various input devices and has an extensive widget library. With the same codebase, you can target Windows, OS X, Linux, Android and iOS. All Kivy widgets are built with multitouch support.
Kivy in support take Buildozer which is a tool that automates the entire build process. It downloads and sets up all the prerequisite for python-for-android, including the android SDK and NDK, then builds an apk that can be automatically pushed to the device.
Buildozer currently works only in Linux, and is an alpha release, but it already works well and can significantly simplify the apk build.
To build this project, use the "Buildozer android release deploy run" command or use.
Buildozer ue=sed for creating application packages easily.The goal is to have one "buildozer.spec" file in your app directory, describing your application requirements and settings such as title, icon, included modules etc. Buildozer will use that spec to create a package for Android, iOS, Windows, OSX and/or Linux.
Installing Requirements
You can create a package for android using the python-for-android project as with using the Buildozer tool to automate the entire process. You can also see Packaging your application for the Kivy Launcher to run kivy programs without compiling them.
You can get buildozer at https://github.com/kivy/buildozer or you can directly install using pip install buildozer
This will install buildozer in your system. Afterwards, navigate to your project directory and run:
buildozer init
This creates a buildozer.spec file controlling your build configuration. You should edit it appropriately with your app name etc. You can set variables to control most or all of the parameters passed to python-for-android.
Install buildozers dependencies.
Finally, plug in your android device and run:
buildozer android debug deploy run >> To build, push and automatically run the apk on your device. Here we used debug as tested in debug mode for now.
Packaging your application for the Kivy Launcher

View File

@ -1,7 +1,7 @@
#!/bin/bash
# INIT
MACHINE_TYPE=`uname -m`
MACHINE_TYPE=$(uname -m)
BASE_DIR=$(pwd)
PYTHON_VERSION=2.7.17
PYQT_VERSION=4-4.11.4-gpl-Py2.7-Qt4.8.7
@ -34,7 +34,7 @@ function download_sources_64 {
}
function download_sources {
if [ ${MACHINE_TYPE} == 'x86_64' ]; then
if [ "${MACHINE_TYPE}" == 'x86_64' ]; then
download_sources_64
else
download_sources_32
@ -43,18 +43,18 @@ function download_sources {
function install_wine {
echo "Setting up wine"
if [ ${MACHINE_TYPE} == 'x86_64' ]; then
if [ "${MACHINE_TYPE}" == 'x86_64' ]; then
export WINEPREFIX=${HOME}/.wine64 WINEARCH=win64
else
export WINEPREFIX=${HOME}/.wine32 WINEARCH=win32
fi
rm -rf ${WINEPREFIX}
rm -rf "${WINEPREFIX}"
rm -rf packages/pyinstaller/{build,dist}
}
function install_python(){
cd ${SRCPATH}
if [ ${MACHINE_TYPE} == 'x86_64' ]; then
cd ${SRCPATH} || exit 1
if [ "${MACHINE_TYPE}" == 'x86_64' ]; then
echo "Installing Python ${PYTHON_VERSION} 64b"
wine msiexec -i python-${PYTHON_VERSION}.amd64.msi /q /norestart
echo "Installing vcredist for 64 bit"
@ -63,20 +63,19 @@ function install_python(){
echo "Installing Python ${PYTHON_VERSION} 32b"
wine msiexec -i python-${PYTHON_VERSION}.msi /q /norestart
# MSVCR 2008 required for Windows XP
cd ${SRCPATH}
cd ${SRCPATH} || exit 1
echo "Installing vc_redist (2008) for 32 bit "
wine vcredist_x86.exe /Q
fi
# add cert
if [ -f /usr/local/share/ca-certificates/bitmessage-proxy.crt ]; then
wine python -m pip config set global.cert 'z:\usr\local\share\ca-certificates\bitmessage-proxy.crt'
fi
echo "Installing pytools 2020.2"
# last version compatible with python 2
wine python -m pip install pytools==2020.2
echo "Upgrading pip"
wine python -m pip install --upgrade pip
}
function install_pyqt(){
if [ ${MACHINE_TYPE} == 'x86_64' ]; then
if [ "${MACHINE_TYPE}" == 'x86_64' ]; then
echo "Installing PyQt-${PYQT_VERSION} 64b"
wine PyQt${PYQT_VERSION}-x64.exe /S /WX
else
@ -86,7 +85,7 @@ function install_pyqt(){
}
function install_openssl(){
if [ ${MACHINE_TYPE} == 'x86_64' ]; then
if [ "${MACHINE_TYPE}" == 'x86_64' ]; then
echo "Installing OpenSSL ${OPENSSL_VERSION} 64b"
wine Win64OpenSSL-${OPENSSL_VERSION}.exe /q /norestart /silent /verysilent /sp- /suppressmsgboxes
else
@ -97,10 +96,11 @@ function install_openssl(){
function install_pyinstaller()
{
cd ${BASE_DIR}
cd "${BASE_DIR}" || exit 1
echo "Installing PyInstaller"
if [ ${MACHINE_TYPE} == 'x86_64' ]; then
wine python -m pip install pyinstaller
if [ "${MACHINE_TYPE}" == 'x86_64' ]; then
# 3.6 is the last version to support python 2.7
wine python -m pip install -I pyinstaller==3.6
else
# 3.2.1 is the last version to work on XP
# see https://github.com/pyinstaller/pyinstaller/issues/2931
@ -110,40 +110,60 @@ function install_pyinstaller()
function install_msgpack()
{
cd ${BASE_DIR}
cd "${BASE_DIR}" || exit 1
echo "Installing msgpack"
wine python -m pip install msgpack-python
}
function install_pyopencl()
{
cd ${SRCPATH}
cd "${SRCPATH}" || exit 1
echo "Installing PyOpenCL"
if [ ${MACHINE_TYPE} == 'x86_64' ]; then
if [ "${MACHINE_TYPE}" == 'x86_64' ]; then
wine python -m pip install pyopencl-2015.1-cp27-none-win_amd64.whl
else
wine python -m pip install pyopencl-2015.1-cp27-none-win32.whl
fi
sed -Ei 's/_DEFAULT_INCLUDE_OPTIONS = .*/_DEFAULT_INCLUDE_OPTIONS = [] /' $WINEPREFIX/drive_c/Python27/Lib/site-packages/pyopencl/__init__.py
sed -Ei 's/_DEFAULT_INCLUDE_OPTIONS = .*/_DEFAULT_INCLUDE_OPTIONS = [] /' \
"$WINEPREFIX/drive_c/Python27/Lib/site-packages/pyopencl/__init__.py"
}
function build_dll(){
cd ${BASE_DIR}
cd src/bitmsghash
if [ ${MACHINE_TYPE} == 'x86_64' ]; then
cd "${BASE_DIR}" || exit 1
cd src/bitmsghash || exit 1
if [ "${MACHINE_TYPE}" == 'x86_64' ]; then
echo "Create dll"
x86_64-w64-mingw32-g++ -D_WIN32 -Wall -O3 -march=native -I$HOME/.wine64/drive_c/OpenSSL-Win64/include -I/usr/x86_64-w64-mingw32/include -L$HOME/.wine64/drive_c/OpenSSL-Win64/lib -c bitmsghash.cpp
x86_64-w64-mingw32-g++ -static-libgcc -shared bitmsghash.o -D_WIN32 -O3 -march=native -I$HOME/.wine64/drive_c/OpenSSL-Win64/include -L$HOME/.wine64/drive_c/OpenSSL-Win64 -L/usr/lib/x86_64-linux-gnu/wine -fPIC -shared -lcrypt32 -leay32 -lwsock32 -o bitmsghash64.dll -Wl,--out-implib,bitmsghash.a
x86_64-w64-mingw32-g++ -D_WIN32 -Wall -O3 -march=native \
"-I$HOME/.wine64/drive_c/OpenSSL-Win64/include" \
-I/usr/x86_64-w64-mingw32/include \
"-L$HOME/.wine64/drive_c/OpenSSL-Win64/lib" \
-c bitmsghash.cpp
x86_64-w64-mingw32-g++ -static-libgcc -shared bitmsghash.o \
-D_WIN32 -O3 -march=native \
"-I$HOME/.wine64/drive_c/OpenSSL-Win64/include" \
"-L$HOME/.wine64/drive_c/OpenSSL-Win64" \
-L/usr/lib/x86_64-linux-gnu/wine \
-fPIC -shared -lcrypt32 -leay32 -lwsock32 \
-o bitmsghash64.dll -Wl,--out-implib,bitmsghash.a
else
echo "Create dll"
i686-w64-mingw32-g++ -D_WIN32 -Wall -m32 -O3 -march=native -I$HOME/.wine32/drive_c/OpenSSL-Win32/include -I/usr/i686-w64-mingw32/include -L$HOME/.wine32/drive_c/OpenSSL-Win32/lib -c bitmsghash.cpp
i686-w64-mingw32-g++ -static-libgcc -shared bitmsghash.o -D_WIN32 -O3 -march=native -I$HOME/.wine32/drive_c/OpenSSL-Win32/include -L$HOME/.wine32/drive_c/OpenSSL-Win32/lib/MinGW -fPIC -shared -lcrypt32 -leay32 -lwsock32 -o bitmsghash32.dll -Wl,--out-implib,bitmsghash.a
i686-w64-mingw32-g++ -D_WIN32 -Wall -m32 -O3 -march=native \
"-I$HOME/.wine32/drive_c/OpenSSL-Win32/include" \
-I/usr/i686-w64-mingw32/include \
"-L$HOME/.wine32/drive_c/OpenSSL-Win32/lib" \
-c bitmsghash.cpp
i686-w64-mingw32-g++ -static-libgcc -shared bitmsghash.o \
-D_WIN32 -O3 -march=native \
"-I$HOME/.wine32/drive_c/OpenSSL-Win32/include" \
"-L$HOME/.wine32/drive_c/OpenSSL-Win32/lib/MinGW" \
-fPIC -shared -lcrypt32 -leay32 -lwsock32 \
-o bitmsghash32.dll -Wl,--out-implib,bitmsghash.a
fi
}
function build_exe(){
cd ${BASE_DIR}
cd packages/pyinstaller
cd "${BASE_DIR}" || exit 1
cd packages/pyinstaller || exit 1
wine pyinstaller bitmessagemain.spec
}

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python2
#!/usr/bin/env python
"""
Check dependencies and give recommendations about how to satisfy them
@ -144,20 +144,23 @@ for lhs, rhs in EXTRAS_REQUIRE.items():
for x in rhs
if x in EXTRAS_REQUIRE_DEPS
]):
rhs_cmd = ''.join([
CMD,
' ',
' '.join([
''. join([
xx for xx in EXTRAS_REQUIRE_DEPS[x][OPSYS]
])
for x in rhs
if x in EXTRAS_REQUIRE_DEPS
]),
])
print(
"Optional dependency `pip install .[{}]` would require `{}`"
" to be run as root".format(lhs, rhs_cmd))
try:
import_module(lhs)
except Exception as e:
rhs_cmd = ''.join([
CMD,
' ',
' '.join([
''. join([
xx for xx in EXTRAS_REQUIRE_DEPS[x][OPSYS]
])
for x in rhs
if x in EXTRAS_REQUIRE_DEPS
]),
])
print(
"Optional dependency `pip install .[{}]` would require `{}`"
" to be run as root".format(lhs, rhs_cmd))
if (not compiler or prereqs) and OPSYS in PACKAGE_MANAGER:
print("You can install the missing dependencies by running, as root:")

View File

@ -6,4 +6,4 @@ Comment=Send encrypted messages
Exec=pybitmessage %F
Icon=pybitmessage
Terminal=false
Categories=Office;Email;
Categories=Office;Email;Network;

View File

@ -2,3 +2,17 @@
li.wy-breadcrumbs-aside > a.fa {
display: none;
}
/* Override table width restrictions */
/* @media screen and (min-width: 700px) { */
.wy-table-responsive table td {
/* !important prevents the common CSS stylesheets from overriding
this as on RTD they are loaded after this stylesheet */
white-space: normal !important;
}
.wy-table-responsive {
overflow: visible !important;
}
/* } */

View File

@ -0,0 +1,19 @@
# Last Modified: Wed Apr 29 21:04:08 2020
#include <tunables/global>
/usr/bin/pybitmessage {
#include <abstractions/base>
#include <abstractions/fonts>
#include <abstractions/lightdm>
#include <abstractions/python>
#include <abstractions/user-tmp>
owner /home/*/.ICEauthority r,
owner /home/*/.Xauthority r,
owner /home/*/.config/PyBitmessage/ rw,
owner /home/*/.config/PyBitmessage/* rwk,
owner /home/*/.config/Trolltech.conf rwk,
owner /home/*/.config/Trolltech.conf.* rw,
owner /proc/*/mounts r,
}

View File

@ -0,0 +1,57 @@
{
"id": "org.bitmessage.BaseApp",
"branch": "19.08",
"runtime": "org.freedesktop.Platform",
"sdk": "org.freedesktop.Sdk",
"runtime-version": "19.08",
"separate-locales": false,
"modules": [
"shared-modules/python2.7/python-2.7.json",
"shared-modules/qt4/qt4-4.8.7-minimal.json",
{
"name": "python-sip",
"sources": [
{
"type": "archive",
"url": "https://www.riverbankcomputing.com/static/Downloads/sip/4.19.25/sip-4.19.25.tar.gz",
"sha256": "b39d93e937647807bac23579edbff25fe46d16213f708370072574ab1f1b4211"
}
],
"buildsystem": "simple",
"build-commands": [
"python configure.py --sip-module PyQt4.sip --no-dist-info",
"make",
"make install"
]
},
{
"name": "python-qt4",
"sources": [
{
"type": "archive",
"url": "http://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.12.3/PyQt4_gpl_x11-4.12.3.tar.gz",
"sha256": "a00f5abef240a7b5852b7924fa5fdf5174569525dc076cd368a566619e56d472"
}
],
"buildsystem": "simple",
"build-commands": [
"python configure.py -w --confirm-license",
"make",
"make install"
]
},
{
"name" : "PyBitmessage-dependencies",
"buildsystem" : "simple",
"build-options": {
"build-args": [
"--share=network"
]
},
"build-commands": [
"pip --version",
"pip install setuptools msgpack"
]
}
]
}

View File

@ -0,0 +1,48 @@
{
"app-id": "org.bitmessage.PyBitmessage",
"runtime": "org.freedesktop.Platform",
"runtime-version": "19.08",
"branch": "stable",
"sdk": "org.freedesktop.Sdk",
"base": "org.bitmessage.BaseApp",
"command": "pybitmessage",
"base-version":"stable",
"finish-args" : [
"--share=network",
"--socket=x11",
"--share=ipc",
"--filesystem=xdg-config/PyBitmessage:create"
],
"modules": [
{
"name" : "PyBitmessage",
"buildsystem" : "simple",
"build-options": {
"build-args": [
"--share=network"
]
},
"build-commands": [
"python --version",
"pwd",
"ls",
"python checkdeps.py",
"python setup.py install --prefix=/app --exec-prefix=/app",
"sed -i 's~/usr/bin/~/app/bin/~' /app/bin/pybitmessage",
"cat /app/bin/pybitmessage",
"mv /app/share/applications/pybitmessage.desktop /app/share/applications/org.bitmessage.PyBitmessage.desktop",
"sed -i 's~Icon=pybitmessage~Icon=org.bitmessage.PyBitmessage~' /app/share/applications/org.bitmessage.PyBitmessage.desktop",
"mv /app/share/icons/hicolor/scalable/apps/pybitmessage.svg /app/share/icons/hicolor/scalable/apps/org.bitmessage.PyBitmessage.svg",
"mv /app/share/icons/hicolor/24x24/apps/pybitmessage.png /app/share/icons/hicolor/24x24/apps/org.bitmessage.PyBitmessage.png",
"which pybitmessage"
],
"sources" : [
{
"type" : "dir",
"path" : "../../"
}
]
}
]
}

@ -0,0 +1 @@
Subproject commit fd4d38328ccb078b88ad4a891807e593ae8de806

View File

@ -1,52 +1,54 @@
# -*- mode: python -*-
import ctypes
import os
import time
import sys
import time
if ctypes.sizeof(ctypes.c_voidp) == 4:
arch=32
else:
arch=64
sslName = 'OpenSSL-Win%s' % ("32" if arch == 32 else "64")
site_root = os.path.abspath(HOMEPATH)
spec_root = os.path.abspath(SPECPATH)
arch = 32 if ctypes.sizeof(ctypes.c_voidp) == 4 else 64
cdrivePath = site_root[0:3]
srcPath = os.path.join(spec_root[:-20], "src")
qtBase = "PyQt4"
sslName = 'OpenSSL-Win%i' % arch
openSSLPath = os.path.join(cdrivePath, sslName)
msvcrDllPath = os.path.join(cdrivePath, "windows", "system32")
pythonDllPath = os.path.join(cdrivePath, "Python27")
outPath = os.path.join(spec_root, "bitmessagemain")
qtBase = "PyQt4"
importPath = srcPath
sys.path.insert(0,importPath)
os.chdir(sys.path[0])
from version import softwareVersion
sys.path.insert(0, srcPath)
os.chdir(srcPath)
today = time.strftime("%Y%m%d")
snapshot = False
os.rename(os.path.join(srcPath, '__init__.py'), os.path.join(srcPath, '__init__.py.backup'))
os.rename(
os.path.join(srcPath, '__init__.py'),
os.path.join(srcPath, '__init__.py.backup'))
# -*- mode: python -*-
a = Analysis(
[os.path.join(srcPath, 'bitmessagemain.py')],
pathex=[outPath],
hiddenimports=['bitmessageqt.languagebox', 'pyopencl','numpy', 'win32com' , 'setuptools.msvc' ,'_cffi_backend'],
hookspath=None,
runtime_hooks=None
)
[os.path.join(srcPath, 'bitmessagemain.py')],
pathex=[outPath],
hiddenimports=[
'bitmessageqt.languagebox', 'pyopencl', 'numpy', 'win32com',
'setuptools.msvc', '_cffi_backend'
],
hookspath=None,
runtime_hooks=None,
excludes=['bsddb', 'bz2', 'tcl', 'tk', 'Tkinter']
)
os.rename(
os.path.join(srcPath, '__init__.py.backup'),
os.path.join(srcPath, '__init__.py'))
os.rename(os.path.join(srcPath, '__init__.py.backup'), os.path.join(srcPath, '__init__.py'))
def addTranslations():
import os
extraDatas = []
for file_ in os.listdir(os.path.join(srcPath, 'translations')):
if file_[-3:] != ".qm":
continue
extraDatas.append((os.path.join('translations', file_),
extraDatas.append((
os.path.join('translations', file_),
os.path.join(srcPath, 'translations', file_), 'DATA'))
for libdir in sys.path:
qtdir = os.path.join(libdir, qtBase, 'translations')
@ -57,57 +59,74 @@ def addTranslations():
for file_ in os.listdir(qtdir):
if file_[0:3] != "qt_" or file_[5:8] != ".qm":
continue
extraDatas.append((os.path.join('translations', file_),
extraDatas.append((
os.path.join('translations', file_),
os.path.join(qtdir, file_), 'DATA'))
return extraDatas
def addUIs():
import os
extraDatas = []
for file_ in os.listdir(os.path.join(srcPath, 'bitmessageqt')):
if file_[-3:] != ".ui":
continue
extraDatas.append((os.path.join('ui', file_), os.path.join(srcPath,
'bitmessageqt', file_), 'DATA'))
return extraDatas
dir_append = os.path.join(srcPath, 'bitmessageqt')
a.datas += [
(os.path.join('ui', file_), os.path.join(dir_append, file_), 'DATA')
for file_ in os.listdir(dir_append) if file_.endswith('.ui')
]
# append the translations directory
a.datas += addTranslations()
a.datas += addUIs()
a.binaries += [('libeay32.dll', os.path.join(openSSLPath, 'libeay32.dll'), 'BINARY'),
('python27.dll', os.path.join(pythonDllPath, 'python27.dll'), 'BINARY'),
(os.path.join('bitmsghash', 'bitmsghash%i.dll' % (arch)), os.path.join(srcPath, 'bitmsghash', 'bitmsghash%i.dll' % (arch)), 'BINARY'),
(os.path.join('bitmsghash', 'bitmsghash.cl'), os.path.join(srcPath, 'bitmsghash', 'bitmsghash.cl'), 'BINARY'),
(os.path.join('sslkeys', 'cert.pem'), os.path.join(srcPath, 'sslkeys', 'cert.pem'), 'BINARY'),
(os.path.join('sslkeys', 'key.pem'), os.path.join(srcPath, 'sslkeys', 'key.pem'), 'BINARY')
]
excluded_binaries = [
'QtOpenGL4.dll',
'QtSvg4.dll',
'QtXml4.dll',
]
a.binaries = TOC([x for x in a.binaries if x[0] not in excluded_binaries])
a.binaries += [
# No effect: libeay32.dll will be taken from PyQt if installed
('libeay32.dll', os.path.join(openSSLPath, 'libeay32.dll'), 'BINARY'),
(os.path.join('bitmsghash', 'bitmsghash%i.dll' % arch),
os.path.join(srcPath, 'bitmsghash', 'bitmsghash%i.dll' % arch),
'BINARY'),
(os.path.join('bitmsghash', 'bitmsghash.cl'),
os.path.join(srcPath, 'bitmsghash', 'bitmsghash.cl'), 'BINARY'),
(os.path.join('sslkeys', 'cert.pem'),
os.path.join(srcPath, 'sslkeys', 'cert.pem'), 'BINARY'),
(os.path.join('sslkeys', 'key.pem'),
os.path.join(srcPath, 'sslkeys', 'key.pem'), 'BINARY')
]
from version import softwareVersion
today = time.strftime("%Y%m%d")
fname = '%s_%%s_%s.exe' % (
('Bitmessagedev', today) if snapshot else ('Bitmessage', softwareVersion)
) % ("x86" if arch == 32 else "x64")
fname = 'Bitmessage_%s_%s.exe' % ("x86" if arch == 32 else "x64", softwareVersion)
if snapshot:
fname = 'Bitmessagedev_%s_%s.exe' % ("x86" if arch == 32 else "x64", today)
pyz = PYZ(a.pure)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
a.binaries,
[],
name=fname,
debug=False,
strip=None,
upx=False,
console=False, icon= os.path.join(srcPath, 'images', 'can-icon.ico'))
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=False,
name='main')
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name=fname,
debug=False,
strip=None,
upx=False,
console=False, icon=os.path.join(srcPath, 'images', 'can-icon.ico')
)
coll = COLLECT(
exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=False,
name='main'
)

View File

@ -1,48 +0,0 @@
#!/bin/bash
APP=pybitmessage
PREV_VERSION=0.4.4
VERSION=0.6.0
RELEASE=1
ARCH_TYPE=all
DIR=${APP}-${VERSION}
CURDIR=`pwd`
SHORTDIR=`basename ${CURDIR}`
if [ $ARCH_TYPE == "x86_64" ]; then
ARCH_TYPE="amd64"
fi
if [ $ARCH_TYPE == "i686" ]; then
ARCH_TYPE="i386"
fi
# Update version numbers automatically - so you don't have to
sed -i 's/VERSION='${PREV_VERSION}'/VERSION='${VERSION}'/g' Makefile rpm.sh arch.sh puppy.sh ebuild.sh slack.sh
sed -i 's/Version: '${PREV_VERSION}'/Version: '${VERSION}'/g' rpmpackage/${APP}.spec
sed -i 's/Release: '${RELEASE}'/Release: '${RELEASE}'/g' rpmpackage/${APP}.spec
sed -i 's/pkgrel='${RELEASE}'/pkgrel='${RELEASE}'/g' archpackage/PKGBUILD
sed -i 's/pkgver='${PREV_VERSION}'/pkgver='${VERSION}'/g' archpackage/PKGBUILD