Compare commits

...

157 Commits

Author SHA1 Message Date
citizenaspirant
5f955ba52f debian package building added 2020-04-30 19:05:11 +00:00
7fd6200fb1
Wine build patch for OpenCL frozen mode
- PyOpenCL needs to be patched to work in frozen mode
2020-04-29 12:12:38 +08:00
31fc899060
Protect stopresending* settings from being overriden by zeroes
when lineEditDays and lineEditMonths is blank. Fixes: #1558.
2020-04-28 18:31:44 +03:00
ff1f451691
Blind signature updates
- added serializing and deserializing
- added a signature chain class `ECCBlindSigChain`
- added more tests
2020-03-31 14:13:32 +08:00
213519bd93
Blind chain signature verification
- also adds serialisation, deserialisation and optional metadata
2020-03-14 10:20:06 +08:00
32bb2a6e44
Optionally set git root CA in wine build
- I want to use a https cache for build, that requires to add a new root CA for
  pip, and I can't find a way to do that cleanly  without modifying the
  winebuild.sh script
2020-02-19 21:45:23 +08:00
ac2df26e96
Ignore build directory
- delete obsolete files from build/
- move files from build/ to buildscripts/
- add build/ to .gitignore
2020-02-19 21:16:41 +08:00
73ecf07dec
Wine build cleanup and XP fix
- spec file was cleaned up
- 32bit build runs on XP (downgrade of PyInstaller needed)
2020-02-17 16:03:28 +08:00
3fb34370a7
Wine build script update
- update and clean up and make sure it works
- it builds the binary but I haven't tried to run the binary
- it probably still missing some fine tuning, OpenCL probably doesn't work
2020-02-12 16:16:53 +08:00
11bec55be5
Don't put addresses into queue
- attempt to fix #1598
- seems to work
- addresses won't be uploaded/announced anymore other than after connecting,
  Later I need to find out how to announce them without causing problems, but
  for the time disabling this seems an acceptable drawback
2020-02-05 20:41:36 +08:00
lakshyacis
6f35da4096
Imported packages sequencing and formatting 2020-01-30 12:14:40 +05:30
lakshyacis
6139efc377
Imported packages sequencing and formatting 2 2020-01-27 14:43:25 +05:30
lakshyacis
3211fca953
formatting and shorten line length 2020-01-22 15:55:26 +05:30
lakshyacis
b6a81f1252
Formatting and fix License 2020-01-15 16:17:26 +05:30
lakshyacis
22e22633c2
Added License 2020-01-13 11:21:59 +05:30
lakshyacis
f0bc74e658
Network fixes 2020-01-10 16:51:17 +05:30
lakshyacis
e37d52d950
storage quality fixes 2020-01-08 13:20:11 +05:30
lakshyacis
108b231c1c
sqlite quality fixes 2020-01-08 13:20:10 +05:30
lakshyacis
6fad4f5665
filesystem quality fixes 2020-01-08 13:20:10 +05:30
lakshyacis
81872c7f2f
network code quality fixes 2020-01-08 12:53:04 +05:30
lakshyacis
a31d6c8422
sound_playfile quality fixes 2020-01-07 15:27:17 +05:30
lakshyacis
8338a9ee74
sound_gstreamer docstring fixes 2020-01-07 15:27:16 +05:30
lakshyacis
208090ce5d
sound_canberra docstring and formatting 2020-01-07 15:27:16 +05:30
lakshyacis
e24f4de40e
proxyconfig_stem quality fixes 2020-01-07 15:27:16 +05:30
lakshyacis
ea50485de2
notification_notify2 pylint fixes 2020-01-07 15:27:15 +05:30
lakshyacis
7b0bf84585
menu_qrcode docstring and formatting 2020-01-07 15:27:15 +05:30
lakshyacis
624d96fbb9
indicator_libmessaging docstring and formatting 2020-01-07 15:27:14 +05:30
lakshyacis
8659c5313d
openssl pylint issue fixes 2020-01-07 13:20:31 +05:30
lakshyacis
814aae5166
eccblind quality fixes 2020-01-07 13:20:31 +05:30
lakshyacis
36c24cc09a
cipher quality fixes 2020-01-07 13:20:30 +05:30
lakshyacis
b16515dc09
arithmetic docstring and formatting 2020-01-07 13:20:30 +05:30
lakshyacis
4a369f70c1
formatting and docstring 2020-01-07 12:13:51 +05:30
lakshyacis
21ae6cb9b0
curses fixes 2020-01-06 19:18:05 +05:30
lakshyacis
d9ef4a8e8d
fix spelling mistakes 2020-01-04 18:48:23 +05:30
61f64f72c3
Fixing port for hidden service 2020-01-04 14:28:45 +02:00
1c4d7655c3
Fix socksproxytype in the support message,
made that a separate function getSOCKSProxyType(config) in the settings.
2020-01-04 14:28:45 +02:00
52d5c1ff03
Document proxyconfig_stem 2020-01-04 14:28:45 +02:00
2bddae511a
Fixed some mistakes in tor dependent tests and marked them
for skipping until the finish of debug.
2020-01-04 14:28:45 +02:00
e3ccc3c7c8
Support for socksproxytype plugins in Settings dialog 2020-01-04 14:28:45 +02:00
5160a68c28
Moved start_proxyconfig to helper_startup;
no more prints in helper_startup
2020-01-04 14:28:45 +02:00
44cb975a61
Fixed bug in plugin.get_plugins(), edited docstrings 2020-01-04 14:28:44 +02:00
c35f48bd0b
Fix setting socksproxytype and return in proxyconfig_stem:
socksproxytype is set to SOCKS5 temporary if proxyconfig succeeds.
2020-01-04 14:28:44 +02:00
168c4a5696
Checkdeps fix
- an exception can be triggered if too many requirements are fulfilled
2020-01-03 23:21:54 +01:00
sandakersmann
9119507b03
Changed copyright year to 2020 2019-12-27 18:23:02 +01:00
03316496b7
Stop UDPSocket on socket.error 101 (Network is unreachable) 2019-12-24 12:41:01 +02:00
5a35de6bca
Fix sendOnionPeerObj() broken in 9923e97 2019-12-21 13:14:28 +02:00
c79636863d
If tray is not available, disable settings group "Tray"
and related checkboxes; set checkBoxMinimizeToTray to false by default
2019-12-20 11:25:15 +02:00
a69732f060
Addrthread finish
- addrthread is supposed to spread addresses as they appear. This was never
  finished during migration to asyncore
- conservative to prevent flood and loops
- randomises order
- move protocol constants into a separate file
- move addr packet creation into a separate file
- see #1575
2019-11-30 13:47:24 +01:00
lakshyacis
e47b573b3e
helper_sql pylint fixes 2019-11-25 15:17:40 +05:30
lakshyacis
ece3005f42
helper_sent pylint fixes 2019-11-25 15:17:40 +05:30
lakshyacis
d271996ac1
helper_sent flake8 fixes 2019-11-25 15:17:40 +05:30
lakshyacis
d5f541a2ab
helper_search pylint fixes 2019-11-25 15:17:40 +05:30
lakshyacis
9041b8f644
helper_search flake8 fixes 2019-11-25 15:17:40 +05:30
lakshyacis
28cfe78e67
helper_random pylint fixes 2019-11-25 15:17:40 +05:30
lakshyacis
05cda087d6
helper_msgcoding pylint fixes 2019-11-25 15:17:40 +05:30
lakshyacis
f4c7ac5604
helper_inbox pylint fixes 2019-11-25 15:17:40 +05:30
lakshyacis
27c58b05f3
helper_bitcoin pylint fixes 2019-11-25 15:17:32 +05:30
lakshyacis
31e3d60fb0
helper_ackPayload pylint fixes 2019-11-25 15:13:53 +05:30
lakshyacis
e97d02ed78
depends pylint fixes 2019-11-25 15:13:53 +05:30
lakshyacis
21faf52f2f
debug pylint fixes 2019-11-25 15:13:53 +05:30
lakshyacis
a9991a7a5a
class_sqlThread pylint fixes 2019-11-25 15:13:52 +05:30
lakshyacis
dbbf454c15
class_sqlThread flake8 fixes 2019-11-25 15:13:52 +05:30
lakshyacis
4a54c200d4
class_smtpServer quality fixes 2019-11-25 10:48:35 +05:30
lakshyacis
9923e97279
class_singleWorker quality fixes 2019-11-25 10:48:35 +05:30
lakshyacis
80b2bc1c9a
class_singleCleaner.py quality fixes 2019-11-25 10:48:29 +05:30
lakshyacis
059e82e2a2
class_objectProcessor quality fixes 2019-11-25 10:41:57 +05:30
lakshyacis
e534994ee3
class_addressGenerator quality fixes 2019-11-25 10:41:56 +05:30
lakshyacis
77b8b5aa42
bmconfigparser quality fixes 2019-11-25 10:41:56 +05:30
lakshyacis
af52d95503
bitmessagemain quality fixes 2019-11-25 10:41:55 +05:30
49d731c478
.readthedocs.yml 2019-11-18 13:34:01 +02:00
d9fa6a94f4
More docstrings and formatting fixes in highlevelcrypto and shutdown 2019-11-18 13:34:01 +02:00
a7da0c0eff
Fixed google style docstrings in addresses 2019-11-18 13:34:00 +02:00
aa7e7dd658
Fixed some docstrings in shared and state 2019-11-18 13:34:00 +02:00
f18f534c48
Formatted protocol and its docstrings 2019-11-18 13:34:00 +02:00
2a165380bb
Restrict outbound connections on network groups
Logic borrowed from bitcoin, see CNetAddr::GetGroup() in src/netaddress.cpp
Simplified, so may not work fully identically but for our purposes it's good
enough. Won't connect to more than one host from a /16 subnet on IPv4 and a /32
subnet on IPv6.
2019-11-18 12:20:29 +01:00
bug Lady
7e1f1d2604
fix 'true' not True
else error
2019-11-14 13:32:15 +01:00
35a2962552
Fixed misleading comment about receiveDataThreads in queues 2019-11-11 17:13:20 +02:00
c40c70f807
Marked variables comments in defaults for use in doc.
Allowed autodoc in bitmessagemain, class_objectProcessor, defaults:
seems safe now.

Changed docs conf: don't sort module members, treat any string
inside backticks as :obj:.
2019-11-11 17:13:20 +02:00
d6c1845b71
Moved Peer from state to network.node
and trustedPeer to network.connectionpool.BMConnectionPool attribute
2019-11-11 17:13:12 +02:00
388de96495
Alphabetical internal import order in bitmessagemain 2019-11-11 12:03:04 +02:00
0967f03b40
addresses: raise varintEncodeError in encodeVarint()
instead of SystemExit (looks like a bug)
2019-11-11 12:03:04 +02:00
7a1f803c92
network.BMConnectionPool: added shortcuts connections()
and establishedConnections(), some formatting fixes
2019-11-11 12:03:04 +02:00
4d8d9b169f
Moved ObjectProcessorQueue to queues, added some doc 2019-11-11 12:03:04 +02:00
341651973a
Reduced imports:
- exported from network package all objects used outside;
  - made all threads available in threads module.

Wrote some module docstrings.
2019-11-11 12:03:03 +02:00
bug Lady
061a9ef973
fix typos
and flesh out placeholder
2019-11-10 04:07:50 +01:00
lakshyacis
58e5fac6d7
tr quality fixes 2019-10-31 14:52:43 +05:30
lakshyacis
fda5d23c2d
state quality fixes 2019-10-31 14:52:43 +05:30
lakshyacis
b9ad6a3bac
singleinstance quality fixes 2019-10-31 14:52:43 +05:30
lakshyacis
503d0b33d0
shutdown quality fixes 2019-10-31 14:52:43 +05:30
lakshyacis
6f91ba1b33
shared quality fixes 2019-10-31 14:52:43 +05:30
lakshyacis
27be035e51
paths quality fixes 2019-10-31 14:52:43 +05:30
lakshyacis
cacac00e21
openclpow quality fixes 2019-10-31 14:52:43 +05:30
lakshyacis
1181db66e0
l10n quality fixes 2019-10-31 14:52:43 +05:30
lakshyacis
afce500085
knownnodes quality fixes 2019-10-31 14:52:43 +05:30
lakshyacis
ee5be28179
helper_threading quality fixes 2019-10-29 11:45:51 +05:30
1a7ef791e5
message_data_reader is obsolete 2019-10-28 09:14:48 +02:00
George McCandless
f871cd450c
Add test for 'onionservicesonly' mode.
Credit to Dmitri Bogomolov in commit 557a8cc6d2bec881b8a3c531d3f725460ed515f5.
2019-10-24 19:35:32 +00:00
George McCandless
b42f536d23
Add a checkbox to the network settings tab that allows restricting outbound connections to onion services (i.e., hosts that end with '.onion'). 2019-10-21 00:03:41 +00:00
f0b4e4ded4
Replaced logging.getLogger() in other possible places 2019-10-18 09:35:31 +03:00
a48b51721d
Test new logging approach, both debug.logger and resetLogging 2019-10-18 09:35:31 +03:00
bbdbca253b
Added warnings about changing port settings in api and network.tcp 2019-10-18 09:35:31 +03:00
d2a896697d
Used logger.isEnabledFor() to prevent unneeded calculations 2019-10-18 09:35:31 +03:00
7a89109fc9
New logging approach in order to reduce imports from submodules
and use logging without risk of circular import. Only subpackage
that imports from debug is bitmessageqt - because it also uses
debug.resetLogging().
Instead of from debug import logger is now recommended to use:

import logging

logger = logging.getLogger('default')

All subclasses of StoppableThread now have a logger attribute.
All threading related stuff except for set_thread_name()
was moved from helper_threading to network.threads.

Fixed two my mistakes from previous edit of debug in a1a8d3a:

 - logger.handlers is not dict but iterable
 - sys.excepthook should be set unconditionally
2019-10-18 09:35:24 +03:00
c63ed02153
Minimal changes to document Singleton and class definitions it wraps 2019-10-18 01:06:03 +03:00
86f0860cb2
Slightly rewritten docstrings in singleinstance 2019-10-18 01:06:03 +03:00
5cf4d8a946
Update README 2019-10-18 01:06:03 +03:00
86932617bd
Add setuptools sphinx integration 2019-10-18 01:06:03 +03:00
7ba296a6fe
Remove "Edit on Github" link: https://github.com/sphinx-doc/sphinx/issues/2386 2019-10-18 01:06:02 +03:00
9e72e3b2af
Rewritten epytext strings in qidenticon and removed __all__ 2019-10-18 01:06:02 +03:00
53cc08edec
Renamed invalid python module http-old 2019-10-18 01:06:02 +03:00
4d15c8e590
Fix fallback package docstring 2019-10-18 01:06:02 +03:00
b5df242141
Fixed badly formatted docstrings and some wrong text 2019-10-18 01:06:02 +03:00
d412e8341b
Create requirements.txt for readthedocs 2019-10-18 01:06:01 +03:00
9a3a5ec9e8
Adjusted conf and rst to fix modindex and get informative index 2019-10-18 01:06:01 +03:00
c99997dbb9
Fix mistakes in Exception() instantiation 2019-10-17 23:46:41 +03:00
5cf8ef06cc
A symlink for famous setuptools bug
https://bitbucket.org/tarek/distribute/issues/177
2019-10-16 15:14:20 +03:00
69a7dc594a
Ignore deprecated flake8 W503 2019-10-16 15:08:22 +03:00
9a438c1a1a
flake8: paths 2019-10-01 12:42:03 +03:00
lakshyacis
e5b92e29a2
vote pylint fixes 2019-09-30 18:42:50 +05:30
lakshyacis
9aa7dd9d78
message pylint fixes 2019-09-30 18:42:36 +05:30
lakshyacis
40e15579fd
messagetypes init flake and pylint fixes 2019-09-27 19:55:06 +05:30
lakshyacis
fba2d6d837
storage pylint fixes 2019-09-27 17:01:08 +05:30
lakshyacis
e924e9208f
storage flake8 fixes 2019-09-27 17:01:07 +05:30
lakshyacis
da5d085a39
sqlite pylint fixes 2019-09-27 17:01:07 +05:30
lakshyacis
54ebbcb7db
sqlite flake8 fixes 2019-09-27 17:01:07 +05:30
lakshyacis
ac341482d4
filesystem pylint fixes 2019-09-27 17:01:06 +05:30
lakshyacis
6f910f67c0
filesystem flake8 fixes 2019-09-27 17:01:06 +05:30
lakshyacis
433cb9818b
sound_playfile pylint fixes 2019-09-27 16:12:35 +05:30
lakshyacis
a86e43c108
sound_gstreamer pylint fixes 2019-09-27 16:12:35 +05:30
lakshyacis
a86c5188c4
sound_canberra pylint fixes 2019-09-27 16:12:35 +05:30
lakshyacis
df1994d6f3
proxyconfig_stem pylint fixes 2019-09-27 16:12:25 +05:30
lakshyacis
e50f99419f
plugin pylint fixes 2019-09-27 16:04:29 +05:30
lakshyacis
7aa9b94c11
notification_notify2 pylint fixes 2019-09-27 16:04:29 +05:30
lakshyacis
4c1568a3eb
menu_qrcode pylint fixes 2019-09-27 16:04:29 +05:30
lakshyacis
36775ae88b
indicator_libmessaging pylint fixes 2019-09-27 16:04:28 +05:30
lakshyacis
a6f951d37f
openssl pylint fixes 2019-09-27 13:11:58 +05:30
lakshyacis
4448e6ee7b
hash pylint fixes 2019-09-27 13:11:58 +05:30
lakshyacis
e0d81bb7e8
cipher pylint fixes 2019-09-27 13:11:40 +05:30
lakshyacis
fa65b17fc9
__init__ pylint fixes 2019-09-27 13:10:24 +05:30
lakshyacis
944c30f9b4
test_config pylint fixes 2019-09-26 19:51:02 +05:30
lakshyacis
7839f83f20
test_api pylint fixes 2019-09-26 19:50:53 +05:30
lakshyacis
8ed1d48799
core pylint fixes 2019-09-26 19:50:45 +05:30
88f2c51595
quzwelsuziwqgpt2.onion:8444 is also a bootstrap server 2019-09-25 18:55:02 +03:00
a7cfe5ba32
Try to test with tor 2019-09-25 18:55:01 +03:00
6a0c3ae075
Remove obsolete helper_bootstrap and bundled SocksiPy 2019-09-25 18:55:01 +03:00
bcb29facaa
A test for bootstrapping, have problem with test_tcpconnection ): 2019-09-25 18:55:01 +03:00
bdb09c2d00
Ignore self node in connectionchooser.chooseConnection() 2019-09-25 18:55:01 +03:00
7215003c6f
No DNS resolving in knownnodes 2019-09-25 18:55:01 +03:00
4825c5a136
Universal bootstrap procedure for any connection type 2019-09-25 18:55:01 +03:00
0a06567071
Connect to bootstrap nodes by name 2019-09-25 18:55:01 +03:00
42a89ad367
Delete from addressbook by pressing DEL 2019-09-24 14:59:12 +03:00
7d0e23e31a
Delete from addressbook only by address (Fixes: #1484) 2019-09-24 14:59:12 +03:00
lakshyacis
4c7f9487e2
init file fixes for pylint 2019-09-23 15:12:40 +05:30
24ae91ad0a
Set dontconnect temporary, completely avoiding saving 2019-09-20 14:31:52 +03:00
df66277e2d
state.resetNetworkProtocolAvailability() is obsolete 2019-09-20 14:31:51 +03:00
18392017c6
Do not propose user to restart Bitmessage
if network settings have changed, drop network connections instead
2019-09-20 14:31:51 +03:00
8a3074f3ff
ui-file based Settings dialog 2019-09-20 14:31:45 +03:00
164 changed files with 5766 additions and 4886 deletions

1
.gitignore vendored
View File

@ -17,4 +17,5 @@ dist
*.egg-info
docs/_*/*
docs/autodoc/
build
pyan/

9
.readthedocs.yml Normal file
View File

@ -0,0 +1,9 @@
version: 2
python:
version: 2.7
install:
- requirements: docs/requirements.txt
- method: setuptools
path: .
system_packages: true

View File

@ -6,6 +6,7 @@ addons:
packages:
- build-essential
- libcap-dev
- tor
install:
- pip install -r requirements.txt
- ln -s src pybitmessage # tests environment

View File

@ -1,5 +1,5 @@
Copyright (c) 2012-2016 Jonathan Warren
Copyright (c) 2012-2019 The Bitmessage Developers
Copyright (c) 2012-2020 The Bitmessage Developers
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

51
LICENSE
View File

@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2012-2016 Jonathan Warren
Copyright (c) 2012-2019 The Bitmessage Developers
Copyright (c) 2012-2020 The Bitmessage Developers
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
@ -22,7 +22,7 @@ SOFTWARE.
===== qidenticon.py identicon python implementation with QPixmap output by sendiulo <sendiulo@gmx.net>
qidenticon.py is Licesensed under FreeBSD License.
qidenticon.py is Licensed under FreeBSD License.
(http://www.freebsd.org/copyright/freebsd-license.html)
Copyright 2013 "Sendiulo". All rights reserved.
@ -36,7 +36,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER ``AS IS'' AND ANY EXPRESS OR I
===== based on identicon.py identicon python implementation. by Shin Adachi <shn@glucose.jp>
identicon.py is Licesensed under FreeBSD License.
identicon.py is Licensed under FreeBSD License.
(http://www.freebsd.org/copyright/freebsd-license.html)
Copyright 1994-2009 Shin Adachi. All rights reserved.
@ -47,3 +47,48 @@ Redistribution and use in source and binary forms, with or without modification,
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
===== based on asyncore_pollchoose.py asyncore_pollchoose python implementation. by Sam Rushing <rushing@nightmare.com>
Copyright 1996 by Sam Rushing. All Rights Reserved
Permission to use, copy, modify, and distribute this software and
its documentation for any purpose and without fee is hereby
granted, provided that the above copyright notice appear in all
copies and that both that copyright notice and this permission
notice appear in supporting documentation, and that the name of Sam
Rushing not be used in advertising or publicity pertaining to
distribution of the software without specific, written prior
permission.
SAM RUSHING DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
NO EVENT SHALL SAM RUSHING BE LIABLE FOR ANY SPECIAL, INDIRECT OR
CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
===== based on namecoin.py namecoin.py python implementation by Daniel Kraft <d@domob.eu>
Copyright (C) 2013 by Daniel Kraft <d@domob.eu>
This file is part of the Bitmessage project.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -14,12 +14,10 @@ Development
----------
Bitmessage is a collaborative project. You are welcome to submit pull requests
although if you plan to put a non-trivial amount of work into coding new
features, it is recommended that you first solicit feedback on the DevTalk
pseudo-mailing list:
BM-2D9QKN4teYRvoq2fyzpiftPh9WP9qggtzh
features, it is recommended that you first describe your ideas in the
separate issue.
Feel welcome to join chan "bitmessage", BM-2cWy7cvHoq3f1rYMerRJp8PT653jjSuEdY
which is on preview here: https://beamstat.com/chan/bitmessage
Feel welcome to join chan "bitmessage", BM-2cWy7cvHoq3f1rYMerRJp8PT653jjSuEdY
References
----------

View File

@ -1,6 +1,6 @@
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 adresses.
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:
@ -13,7 +13,7 @@ This sample uses the kivy as Kivy is an open source, cross-platform Python frame
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 prequisites for python-for-android, including the android SDK and NDK, then builds an apk that can be automatically pushed to the device.
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.

View File

@ -1,16 +0,0 @@
export LANG=de_DE.UTF-8
export LANGUAGE=de_DE
export LC_CTYPE="de_DE.UTF-8"
export LC_NUMERIC=de_DE.UTF-8
export LC_TIME=de_DE.UTF-8
export LC_COLLATE="de_DE.UTF-8"
export LC_MONETARY=de_DE.UTF-8
export LC_MESSAGES="de_DE.UTF-8"
export LC_PAPER=de_DE.UTF-8
export LC_NAME=de_DE.UTF-8
export LC_ADDRESS=de_DE.UTF-8
export LC_TELEPHONE=de_DE.UTF-8
export LC_MEASUREMENT=de_DE.UTF-8
export LC_IDENTIFICATION=de_DE.UTF-8
export LC_ALL=
python2.7 src/bitmessagemain.py

View File

@ -1,23 +0,0 @@
#!/usr/bin/python2.7
import ctypes
import fnmatch
import os
import sys
import traceback
matches = []
for root, dirnames, filenames in os.walk('src'):
for filename in fnmatch.filter(filenames, '*.py'):
matches.append(os.path.join(root, filename))
for filename in matches:
source = open(filename, 'r').read() + '\n'
try:
compile(source, filename, 'exec')
except Exception as e:
if 'win' in sys.platform:
ctypes.windll.user32.MessageBoxA(0, traceback.format_exc(), "Exception in " + filename, 1)
else:
print "Exception in %s: %s" % (filename, traceback.format_exc())
sys.exit(1)

View File

@ -1,11 +0,0 @@
#!/bin/bash
if [ -z "$1" ]; then
echo "You must specify pull request number"
exit
fi
git pull
git checkout v0.6
git fetch origin pull/"$1"/head:"$1"
git merge --ff-only "$1"

View File

@ -1,173 +0,0 @@
#!/bin/bash
# INIT
MACHINE_TYPE=`uname -m`
BASE_DIR=$(pwd)
PYTHON_VERSION=2.7.15
PYQT_VERSION=4-4.11.4-gpl-Py2.7-Qt4.8.7
OPENSSL_VERSION=1_0_2t
DIRECTORY32BIT=SoftwareDownloads32bit
DIRECTORY64BIT=SoftwareDownloads64bit
if [ ${MACHINE_TYPE} == 'x86_64' ]; then
if [ ! -d "$DIRECTORY64BIT" ]; then
mkdir SoftwareDownloads64bit
cd SoftwareDownloads64bit
else
echo "Directory already exists"
cd SoftwareDownloads64bit
fi
else
if [ ! -d "$DIRECTORY32BIT" ]; then
mkdir SoftwareDownloads32bit
cd SoftwareDownloads32bit
else
echo "Directory 32 bit alrready exists"
cd SoftwareDownloads32bit
fi
fi
#Functions
function install_wine {
wget -nc https://dl.winehq.org/wine-builds/Release.key --no-check-certificate
sudo apt-key add Release.key
sudo apt-add-repository 'https://dl.winehq.org/wine-builds/ubuntu/'
sudo apt-get -y update
sudo apt-get -y install wine1.8 winetricks
if [ ${MACHINE_TYPE} == 'x86_64' ]; then
sudo apt-get -y install wine64-development
env WINEPREFIX=$HOME/.wine64 WINEARCH=win64 winecfg
WINE="env WINEPREFIX=$HOME/.wine64 wine"
export WINEPREFIX
else
sudo apt-get -y install wine32-development
env WINEPREFIX=$HOME/.wine32 WINEARCH=win32 winecfg
WINE="env WINEPREFIX=$HOME/.wine32 wine"
export WINEPREFIX
fi
}
function install_python(){
echo "Download Python2.7"
if [ ${MACHINE_TYPE} == 'x86_64' ]; then
# For 64 bit machine
wget -nc wget http://www.python.org/ftp/python/${PYTHON_VERSION}/python-${PYTHON_VERSION}.amd64.msi --no-check-certificate
echo "Install Python2.7 for 64 bit"
$WINE msiexec -i python-${PYTHON_VERSION}.amd64.msi /q /norestart
wget -nc https://download.microsoft.com/download/d/2/4/d242c3fb-da5a-4542-ad66-f9661d0a8d19/vcredist_x64.exe --no-check-certificate
$WINE vcredist_x64.exe /q /norestart
echo "Installed vcredist for 64 bit"
$WINE pip install --upgrade pip
else
# For 32 bit machine
wget -nc https://www.python.org/ftp/python/${PYTHON_VERSION}/python-${PYTHON_VERSION}.msi --no-check-certificate
echo "Install Python2.7 for 32 bit"
$WINE msiexec -i python-${PYTHON_VERSION}.msi /q /norestart
echo "Installing vc_redist for 32 bit "
wget -nc https://download.microsoft.com/download/1/1/1/1116b75a-9ec3-481a-a3c8-1777b5381140/vcredist_x86.exe --no-check-certificate
$WINE vcredist_x86.exe /q /norestart
#insatlled msvcr120.dll for 32 bit system
wget -nc http://www.dll-found.com/zip/m/msvcr120.dll.zip --no-check-certificate
unzip msvcr120.dll.zip
sudo cp msvcr120.dll $HOME/.wine32/drive_c/windows/system32/
$WINE pip install --upgrade pip
fi
}
function install_pyqt(){
echo "Download PyQT"
if [ ${MACHINE_TYPE} == 'x86_64' ]; then
# For 64 bit machine
wget -nc --content-disposition https://github.com/Bitmessage/ThirdPartyLibraries/blob/master/PyQt4-4.11.4-gpl-Py2.7-Qt4.8.7-x64.exe?raw=true --no-check-certificate
$WINE PyQt4-4.11.4-gpl-Py2.7-Qt4.8.7-x64.exe /q /norestart /silent /verysiling /sp- /suppressmsgboxes
else
# For 32 bit machine
wget -nc --content-disposition https://github.com/Bitmessage/ThirdPartyLibraries/blob/master/PyQt4-4.11.4-gpl-Py2.7-Qt4.8.7-x32.exe?raw=true --no-check-certificate
$WINE PyQt4-4.11.4-gpl-Py2.7-Qt4.8.7-x32.exe /q /norestart /silent /verysiling /sp- /suppressmsgboxes
fi
}
function install_openssl(){
if [ ${MACHINE_TYPE} == 'x86_64' ]; then
wget -nc --content-disposition https://github.com/Bitmessage/ThirdPartyLibraries/blob/master/Win64OpenSSL-${OPENSSL_VERSION}.exe?raw=true --no-check-certificate
$WINE Win64OpenSSL-${OPENSSL_VERSION}.exe /q /norestart /silent /verysiling /sp- /suppressmsgboxes
else
wget -nc --content-disposition https://github.com/Bitmessage/ThirdPartyLibraries/blob/master/Win32OpenSSL-${OPENSSL_VERSION}.exe?raw=true --no-check-certificate
$WINE Win32OpenSSL-${OPENSSL_VERSION}.exe /q /norestart /silent /verysiling /sp- /suppressmsgboxes
echo "Install PyInstaller 32 bit"
fi
}
function install_pyinstaller()
{
$WINE pip install pyinstaller
echo "Install PyInstaller"
echo "Install Pyopencl"
if [ ${MACHINE_TYPE} == 'x86_64' ]; then
wget -nc https://github.com/Bitmessage/ThirdPartyLibraries/blob/master/pyopencl-2015.1-cp27-none-win_amd64.whl --no-check-certificate
$WINE pip install pyopencl-2015.1-cp27-none-win_amd64.whl
$WINE pip install msgpack-python
else
wget -nc --content-disposition https://github.com/Bitmessage/ThirdPartyLibraries/blob/master/pyopencl-2015.1-cp27-none-win_amd64one-win32.whl?raw=true --no-check-certificate
$WINE pip install msgpack-python
$WINE pip install pyopencl-2015.1-cp27-none-win32.whl
fi
echo "Install Message Pack"
}
function build_dll(){
cd $BASE_DIR
rm -rf master.zip
rm -rf PyBitmessage
git clone https://github.com/Bitmessage/PyBitmessage.git
cd PyBitmessage/src/bitmsghash
if [ ${MACHINE_TYPE} == 'x86_64' ]; then
# Do stuff for 64 bit machine
echo "Install MinGW"
sudo apt-get -y install mingw-w64
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
echo "DLL generated successfully "
cd ..
cp -R bitmsghash ../../../src/
cd ../../../
cd packages/pyinstaller/
env WINEPREFIX=$HOME/.wine64 wine pyinstaller bitmessagemain.spec
else
echo "Install MinGW for 32 bit"
sudo apt-get install mingw-w64
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
cd ..
cp -R bitmsghash ../../../src/
cd ../../../
cd packages/pyinstaller/
env WINEPREFIX=$HOME/.wine32 wine pyinstaller bitmessagemain.spec
fi
}
install_wine
install_python
install_pyqt
install_openssl
install_pyinstaller
build_dll

169
buildscripts/winbuild.sh Executable file
View File

@ -0,0 +1,169 @@
#!/bin/bash
# INIT
MACHINE_TYPE=`uname -m`
BASE_DIR=$(pwd)
PYTHON_VERSION=2.7.17
PYQT_VERSION=4-4.11.4-gpl-Py2.7-Qt4.8.7
OPENSSL_VERSION=1_0_2t
SRCPATH=~/Downloads
#Functions
function download_sources_32 {
if [ ! -d ${SRCPATH} ]; then
mkdir -p ${SRCPATH}
fi
wget -P ${SRCPATH} -c -nc --content-disposition \
https://www.python.org/ftp/python/${PYTHON_VERSION}/python-${PYTHON_VERSION}.msi \
https://download.microsoft.com/download/1/1/1/1116b75a-9ec3-481a-a3c8-1777b5381140/vcredist_x86.exe \
https://github.com/Bitmessage/ThirdPartyLibraries/blob/master/PyQt${PYQT_VERSION}-x32.exe?raw=true \
https://github.com/Bitmessage/ThirdPartyLibraries/blob/master/Win32OpenSSL-${OPENSSL_VERSION}.exe?raw=true \
https://github.com/Bitmessage/ThirdPartyLibraries/blob/master/pyopencl-2015.1-cp27-none-win32.whl?raw=true
}
function download_sources_64 {
if [ ! -d ${SRCPATH} ]; then
mkdir -p ${SRCPATH}
fi
wget -P ${SRCPATH} -c -nc --content-disposition \
http://www.python.org/ftp/python/${PYTHON_VERSION}/python-${PYTHON_VERSION}.amd64.msi \
https://download.microsoft.com/download/d/2/4/d242c3fb-da5a-4542-ad66-f9661d0a8d19/vcredist_x64.exe \
https://github.com/Bitmessage/ThirdPartyLibraries/blob/master/PyQt${PYQT_VERSION}-x64.exe?raw=true \
https://github.com/Bitmessage/ThirdPartyLibraries/blob/master/Win64OpenSSL-${OPENSSL_VERSION}.exe?raw=true \
https://github.com/Bitmessage/ThirdPartyLibraries/blob/master/pyopencl-2015.1-cp27-none-win_amd64.whl?raw=true
}
function download_sources {
if [ ${MACHINE_TYPE} == 'x86_64' ]; then
download_sources_64
else
download_sources_32
fi
}
function install_wine {
echo "Setting up wine"
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 packages/pyinstaller/{build,dist}
}
function install_python(){
cd ${SRCPATH}
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"
wine vcredist_x64.exe /q /norestart
else
echo "Installing Python ${PYTHON_VERSION} 32b"
wine msiexec -i python-${PYTHON_VERSION}.msi /q /norestart
# MSVCR 2008 required for Windows XP
cd ${SRCPATH}
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 "Upgrading pip"
wine python -m pip install --upgrade pip
}
function install_pyqt(){
if [ ${MACHINE_TYPE} == 'x86_64' ]; then
echo "Installing PyQt-${PYQT_VERSION} 64b"
wine PyQt${PYQT_VERSION}-x64.exe /S /WX
else
echo "Installing PyQt-${PYQT_VERSION} 32b"
wine PyQt${PYQT_VERSION}-x32.exe /S /WX
fi
}
function install_openssl(){
if [ ${MACHINE_TYPE} == 'x86_64' ]; then
echo "Installing OpenSSL ${OPENSSL_VERSION} 64b"
wine Win64OpenSSL-${OPENSSL_VERSION}.exe /q /norestart /silent /verysilent /sp- /suppressmsgboxes
else
echo "Installing OpenSSL ${OPENSSL_VERSION} 32b"
wine Win32OpenSSL-${OPENSSL_VERSION}.exe /q /norestart /silent /verysilent /sp- /suppressmsgboxes
fi
}
function install_pyinstaller()
{
cd ${BASE_DIR}
echo "Installing PyInstaller"
if [ ${MACHINE_TYPE} == 'x86_64' ]; then
wine python -m pip install pyinstaller
else
# 3.2.1 is the last version to work on XP
# see https://github.com/pyinstaller/pyinstaller/issues/2931
wine python -m pip install -I pyinstaller==3.2.1
fi
}
function install_msgpack()
{
cd ${BASE_DIR}
echo "Installing msgpack"
wine python -m pip install msgpack-python
}
function install_pyopencl()
{
cd ${SRCPATH}
echo "Installing PyOpenCL"
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
}
function build_dll(){
cd ${BASE_DIR}
cd src/bitmsghash
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
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
fi
}
function build_exe(){
cd ${BASE_DIR}
cd packages/pyinstaller
wine pyinstaller bitmessagemain.spec
}
# prepare on ubuntu
# dpkg --add-architecture i386
# apt update
# apt -y install wget wine-stable wine-development winetricks mingw-w64 wine32 wine64 xvfb
download_sources
if [ "$1" == "--download-only" ]; then
exit
fi
install_wine
install_python
install_pyqt
install_openssl
install_pyopencl
install_msgpack
install_pyinstaller
build_dll
build_exe

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python2
"""
Check dependendies and give recommendations about how to satisfy them
Check dependencies and give recommendations about how to satisfy them
Limitations:
@ -164,7 +164,7 @@ if (not compiler or prereqs) and OPSYS in PACKAGE_MANAGER:
if not compiler:
compilerToPackages()
prereqToPackages()
if mandatory:
if prereqs and mandatory:
sys.exit(1)
else:
print("All the dependencies satisfied, you can install PyBitmessage")

22
debian/README.Debian vendored Normal file
View File

@ -0,0 +1,22 @@
bitmessage for Debian
--------------------
In order to build the .deb yourself, you'll first have to install the stuff that's neccessary to compile .debs:
apt-get install python-minimal python-setuptools python-all \
python openssl libssl-dev dh-apparmor debhelper dh-python \
python-msgpack python-qt4 git
Next make some build directory and clone the newest git repository:
And if I haven't forgotten anything, you can build the .deb package now:
dpkg-buildpackage -us -uc
I've tried this with Debian Buster, but I'd expect it to work on most if not all recent debian-based distributions. Maybe with some minor changes.
-- citizenaspirant <citizenadmin@helicoptarianconstitocracy.org> Wed, 29 Apr 2020 17:53:21 +0000

19
debian/apparmor/pybitmessage vendored Normal file
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,
}

1
debian/bitmessage-docs.docs vendored Normal file
View File

@ -0,0 +1 @@
README.Debian

5
debian/changelog vendored Normal file
View File

@ -0,0 +1,5 @@
bitmessage (0.7a-1) unstable; urgency=medium
* Initial release
-- citizenaspirant <citizenadmin@helicoptarianconstitocracy.org> Wed, 29 Apr 2020 17:53:21 +0000