From 382ba1e648c6a82413a7fcf18b57700bec2cc829 Mon Sep 17 00:00:00 2001 From: AdamISZ Date: Sun, 11 Nov 2018 20:44:34 +0100 Subject: [PATCH] release notes for 0.4.1 --- docs/release-notes/release-notes-0.4.1.md | 60 +++++++++++++++++++++++ jmbase/setup.py | 2 +- jmbitcoin/setup.py | 2 +- jmclient/setup.py | 4 +- jmdaemon/setup.py | 4 +- scripts/joinmarket-qt.py | 2 +- 6 files changed, 67 insertions(+), 7 deletions(-) create mode 100644 docs/release-notes/release-notes-0.4.1.md diff --git a/docs/release-notes/release-notes-0.4.1.md b/docs/release-notes/release-notes-0.4.1.md new file mode 100644 index 0000000..b6c1576 --- /dev/null +++ b/docs/release-notes/release-notes-0.4.1.md @@ -0,0 +1,60 @@ +Joinmarket-clientserver 0.4.1: +================= + + + +This is a bugfix release, and to be considered essential for Tor (i.e. hidden service) users. +See "Notable changes" for details of the issue. + +If you are upgrading from pre-0.4.0 you **must** read the [release notes for 0.4.0](https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/docs/release-notes/release-notes-0.4.0.md) and follow +the relevant upgrade instructions, which apply here exactly the same. + +Please report bugs using the issue tracker at github: + + + +Upgrading +========= + +To upgrade: + +As mentioned above, follow the instructions as per "Upgrading" in [release 0.4.0](https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/docs/release-notes/release-notes-0.4.0.md). + + +Notable changes +=============== + +### Fix IRC configuration loading + +There is some background in the next paragraph for context; if you just want to know +what issue was fixed, you can skip it and go to the TLDR. + +The ConfigParser module used to load Joinmarket configuration files does not support +nesting sections. So previously to #201, to support multiple IRC servers, we used comma +separated lists. This was inconvenient for users; to remove one server, they had to edit +each comma separated list by hand. #201 addressed this by having a separate section for each +server. The names given to the sections were `MESSAGING:server1` and `MESSAGING:server2`. At +least two users reported issues (see #210) when attempting to use custom server names, e.g. +`MESSAGING:cyberguerrilla`. The cause was that, in case the user creates such a newly-named +section, the *existing default* sections (server1, server2) are still loaded. These defaults +are specified to connect to CGan and Agora over clearnet. Hence if a user modifies these section +names, one of two things can happen: failure to connect from trying to unwittingly connect to +the same server multiple times, or, worse, a default clearnet connection for servers that you +actually removed from the config. (In case that doesn't make sense: a default configuration is +always loaded, and the settings in the joinmarket.cfg file overwrite them; but the overwrite +doesn't happen if you actually change the name of the section). + +**The TLDR: Previous to this fix, if you edited the two given MESSAGING:server1 and MESSAGING:server2 sections, you could +end up either failing to connect, or using a default connection for a deleted server, which is +clearnet. Hence this could be annoying in terms of unexpected connection failures, but it could +also in certain circumstances result in IP leakage for a user who thinks they are connecting over Tor. +It's for this last reason that this release was pushed out immediately; now you can specify any +name you like e.g. MESSAGING:agora and it will work as expected.** + +0d7a91f quit after creating a new config file +426cb87 fix loading of irc configuration + +===== + +Thanks to @HamishMacEwan @the9ull @qubenix for helping by reporting the bug and testing, and to @undeath for patching. + diff --git a/jmbase/setup.py b/jmbase/setup.py index 232a692..dabc75e 100644 --- a/jmbase/setup.py +++ b/jmbase/setup.py @@ -2,7 +2,7 @@ from setuptools import setup setup(name='joinmarketbase', - version='0.4.0', + version='0.4.1', description='Joinmarket client library for Bitcoin coinjoins', url='http://github.com/Joinmarket-Org/joinmarket-clientserver/jmbase', author='', diff --git a/jmbitcoin/setup.py b/jmbitcoin/setup.py index f996f83..fb76c0b 100644 --- a/jmbitcoin/setup.py +++ b/jmbitcoin/setup.py @@ -2,7 +2,7 @@ from setuptools import setup setup(name='joinmarketbitcoin', - version='0.4.0', + version='0.4.1', description='Joinmarket client library for Bitcoin coinjoins', url='http://github.com/Joinmarket-Org/joinmarket-clientserver/jmbitcoin', author='', diff --git a/jmclient/setup.py b/jmclient/setup.py index 4f5b625..894881c 100644 --- a/jmclient/setup.py +++ b/jmclient/setup.py @@ -2,12 +2,12 @@ from setuptools import setup setup(name='joinmarketclient', - version='0.4.0', + version='0.4.1', description='Joinmarket client library for Bitcoin coinjoins', url='http://github.com/Joinmarket-Org/joinmarket-clientserver/jmclient', author='', author_email='', license='GPL', packages=['jmclient'], - install_requires=['joinmarketbase==0.4.0', 'mnemonic', 'qt4reactor', 'argon2_cffi', 'bencoder.pyx', 'pyaes'], + install_requires=['joinmarketbase==0.4.1', 'mnemonic', 'qt4reactor', 'argon2_cffi', 'bencoder.pyx', 'pyaes'], zip_safe=False) diff --git a/jmdaemon/setup.py b/jmdaemon/setup.py index edc5131..9230376 100644 --- a/jmdaemon/setup.py +++ b/jmdaemon/setup.py @@ -2,12 +2,12 @@ from setuptools import setup setup(name='joinmarketdaemon', - version='0.4.0', + version='0.4.1', description='Joinmarket client library for Bitcoin coinjoins', url='http://github.com/Joinmarket-Org/joinmarket-clientserver/jmdaemon', author='', author_email='', license='GPL', packages=['jmdaemon'], - install_requires=['txsocksx', 'pyopenssl', 'libnacl', 'joinmarketbase==0.4.0'], + install_requires=['txsocksx', 'pyopenssl', 'libnacl', 'joinmarketbase==0.4.1'], zip_safe=False) diff --git a/scripts/joinmarket-qt.py b/scripts/joinmarket-qt.py index 907049d..83865c7 100644 --- a/scripts/joinmarket-qt.py +++ b/scripts/joinmarket-qt.py @@ -47,7 +47,7 @@ pyqt4reactor.install() donation_address = "1AZgQZWYRteh6UyF87hwuvyWj73NvWKpL" #Underlying joinmarket code version (as per setup.py etc.) -JM_CORE_VERSION = '0.4.0' +JM_CORE_VERSION = '0.4.1' #Version of this Qt script specifically JM_GUI_VERSION = '7'