Commit Graph

54 Commits

Author SHA1 Message Date
Brian Warner
2575dbfad3 setup.py: require txtorcon all the time, remove 'tor' extra 2017-06-14 23:41:49 +01:00
Brian Warner
b66aacd968 bump Twisted dep to get ClientService.whenConnected(failAfterFailures=) 2017-06-14 10:41:55 +01:00
Brian Warner
117747306d setup.py: bump tqdm dep to 4.13.0
That's the first version that works on netbsd.
2017-06-01 21:58:27 +01:00
Brian Warner
b0224cc08c require txtorcon-0.19.3, for socks-port bugfix
We needed the fix for https://github.com/meejah/txtorcon/issues/237 so that
connect-to-running-tor works.
2017-05-25 01:19:34 -07:00
Brian Warner
805e07cd97 setup.py: extras=dev requires txtorcon on both py2 and py3
We used to avoid this on py3, but now that txtorcon (0.19.2) is compatible
with it, we can use it on both. This also means tests can rely on having
txtorcon available.
2017-05-24 16:48:00 -07:00
Brian Warner
73f3d86107 state machine should be complete, I think 2017-04-06 12:21:00 -07:00
Brian Warner
47007273ec rewrite Tor support (py2 only)
The new TorManager adds --launch-tor and --tor-control-port= arguments
(requiring the user to explicitly request a new Tor process, if that's what
they want). The default (when --tor is enabled) looks for a control port in
the usual places (/var/run/tor/control, localhost:9051, localhost:9151), then
falls back to hoping there's a SOCKS port in the usual
place (localhost:9050). (closes #64)

The ssh utilities should now accept the same tor arguments as ordinary
send/receive commands. There are now full tests for TorManager, and basic
tests for how send/receive use it. (closes #97)

Note that Tor is only supported on python2.7 for now, since txsocksx (and
therefore txtorcon) doesn't work on py3. You need to do "pip install
magic-wormhole[tor]" to get Tor support, and that will get you an inscrutable
error on py3 (referencing vcversioner, "install_requires must be a string or
list of strings", and "int object not iterable").

To run tests, you must install with the [dev] extra (to get "mock" and other
libraries). Our setup.py only includes "txtorcon" in the [dev] extra when on
py2, not on py3. Unit tests tolerate the lack of txtorcon (they mock out
everything txtorcon would provide), so they should provide the same coverage
on both py2 and py3.
2017-01-15 22:39:03 -05:00
Brian Warner
2d949f23c6 setup.py: refactor slightly 2017-01-15 16:26:23 -05:00
Brian Warner
64307d3531 setup.py: require twisted[tls] to hush service-identity warning
Thanks to @grempe for the catch. Closes #89.
2016-12-07 22:13:40 -08:00
Antoine Beaupré
342bebbd0e use humanize library instead of custom implementation 2016-11-11 22:01:21 -05:00
meejah
2a332471d3 add pyflakes to 'dev' extra 2016-08-14 16:49:34 -06:00
meejah
e11c7496a9 add 'dev' extra, with mock + tox, and a pypy environment 2016-06-22 02:14:34 -06:00
meejah
f32cd46e2c remove argparse, whitespace-ify requirements 2016-06-22 01:30:15 -06:00
meejah
e16b53817e Refactor to use Click 2016-06-22 01:11:07 -06:00
laharah
74b4a10ac1 Windows build and CI patch
a compressed patch to apply new settings for the windows build
and allows appveyor to execute tox tests correctly
2016-06-03 16:12:55 -07:00
laharah
e98a6c501b added windows extra to setup 2016-06-02 16:23:48 -07:00
meejah
5b23669cf3 use ipaddress not ipaddr 2016-06-02 16:20:12 -07:00
Brian Warner
2cf11e85d3 un-pin Twisted, require autobahn >=0.14.1
The new autobahn release removes the Twisted pin, so we no longer need
one. Depend on the new autobahn to flush out any environments that are
still using the old one (and thus can't use the current Twisted).

Thanks https://github.com/crossbario/autobahn-python/issues/680 !
2016-05-26 13:01:43 -07:00
Brian Warner
0414051df2 remove wormhole/twisted/ 2016-05-24 16:26:17 -07:00
Brian Warner
b72f0ce934 INCOMPATIBLE CHANGE: switch to spake2-0.7
This changes the way keys are derived, and thus is incompatible with
previous versions. We pin "spake2==0.7" to avoid future surprises.
2016-05-24 13:14:34 -07:00
Brian Warner
bc908ef07e setup.py: pin twisted==16.1.1, remove pytrie
* To avoid an incompatible patch that landed in Twisted trunk after the
  16.1.1 release, autobahn pinned their requirement on Twisted to
  be <=16.1.1 . However Twisted reverted the patch before making a
  release. The new 16.2.0 is fine. Since autobahn has this pin, and
  since pip doesn't do full dependency resolution, I must add the pin
  too, so that 'pip install magic-wormhole' can work. I plan to remove
  this pin as soon as autobahn does the same upstream.
  https://github.com/crossbario/autobahn-python/issues/680
* A previous version of autobahn had a bug where it tried to import
  something that wasn't actually depended upon, exposed by having pynacl
  installed. Installing 'pytrie' manually fixed it. This doesn't seem to
  be a problem anymore, so I'm removing the manual dependency.
2016-05-24 00:10:16 -07:00
Brian Warner
49785008bb remove blocking implementation: it will return
It will return as a crochet-based wrapper around the Twisted
implementation.
2016-05-12 16:45:54 -07:00
Brian Warner
86edf96412 switch to tqdm for nicer CLI progress bars 2016-04-24 12:04:05 -07:00
Brian Warner
7b9c48fbc4 unsplit: last fixups 2016-04-20 19:18:41 -07:00
Brian Warner
b2c3f49038 unsplit txwormhole step 2: edit files 2016-04-20 19:18:41 -07:00
Brian Warner
7c45f3d472 unsplit wormhole_server step 2: edit files 2016-04-20 19:15:33 -07:00
Brian Warner
85b6264826 unsplit cli step 2: edit files 2016-04-20 19:15:33 -07:00
Brian Warner
7a5a99a1a8 unsplit tests step 3: modify files 2016-04-20 18:54:10 -07:00
Brian Warner
b99adecdde Depend upon autobahn, for upcoming websocket support.
Use 'autobahn[twisted]' just to be sure (plain 'autobahn' worked fine
for py27, but maybe it's needed for py35 or something).

Autobahn is failing to do some conditional import and accidentally
depends upon pytrie (for some encrypted WAMP thing) when we didn't ask
for it (https://github.com/crossbario/autobahn-python/issues/604). This
commit also adds a manual dependency on pytrie (which is pretty small)
until the upstream bug is fixed.
2016-04-18 17:58:40 -07:00
Brian Warner
3b215c106a use "hkdf" from PyPI instead of wormhole.hkdf 2016-04-18 16:49:29 -07:00
Brian Warner
f9e3b83456 move tests step 2: fix imports, setup.py, tox.ini 2016-04-18 16:45:03 -07:00
Brian Warner
17613ce8c1 move hkdf out of util/, remove now-empty directory 2016-04-18 16:45:03 -07:00
Brian Warner
36e63e2347 split wormhole_cli step 2: fix imports, setup.py 2016-04-18 16:43:18 -07:00
Brian Warner
323175ddfe split txwormhole step 1: move files 2016-04-18 16:41:52 -07:00
Brian Warner
87266f1292 split wormhole_server step 3: fix tests 2016-04-18 16:18:51 -07:00
Brian Warner
bde4696a8b split wormhole_server step 1: move files 2016-04-18 16:18:45 -07:00
Brian Warner
83c2612fc3 Require twisted (>=16.1.0) all the time.
The core Wormhole exchange will retain a blocking/non-Twisted
implementation, but the file-transferring Transit class is going to be
Twisted-only (maybe Twisted+asyncio). I want to improve the
protocol (add more parallelism, reduce round-trips), and the blocking
implementation is a messy bundle of threads and ick.

When this process is done (eventually), I'll be splitting out the
blocking Wormhole class into a separate distribution, which doesn't
depend upon Twisted.
2016-04-18 15:47:05 -07:00
Brian Warner
ed6e5ff169 get a TorManager working 2016-03-28 02:25:01 -07:00
Brian Warner
80603aaa32 finish py3/async support, needs Twisted >= 15.5.0
The latest Twisted fixes the web.Agent code we need for proper async
support. There's still a daemonization bug that prevents 'wormhole
server start' from succeeding (it hangs).
2015-12-01 00:15:24 -06:00
Brian Warner
8fe41e135d make blocking/send-text work on py3, add dependency on 'six'
* use modern/portable "next(iter)" instead of "iter.next()"
* use six.moves.input() instead of raw_input()
* tell requests' Response.iter_lines that we want str, not bytes
2015-09-28 00:24:36 -07:00
Brian Warner
b97b7ccd8c switch to spake2==0.3, with the faster symmetric algorithm
Note that this breaks compatibility of SymmetricWormhole, which was
previously only used by the Twisted flavor.
2015-09-22 01:03:43 -07:00
Brian Warner
d3c5fdc26a include .sql file in package_data 2015-06-20 18:30:21 -07:00
Brian Warner
b6b6c6aea4 upgrade to versioneer-0.15, fixes 'setup.py develop' 2015-05-31 16:39:39 -07:00
Brian Warner
f7f05b21b8 add missing files 2015-04-10 00:08:01 -05:00
Brian Warner
18c1e125bd setup.py: finish renaming 2015-04-10 00:02:24 -05:00
Brian Warner
830ba18fe7 require spake2==0.2, which uses Ed25519 as a default 2015-04-09 10:40:16 -07:00
Brian Warner
d678e2fa66 new name: magic-wormhole 2015-03-23 23:38:47 -07:00
Brian Warner
8e456dea5e rewrite CLI tools to use argparse, remove Twisted dependency
We used to use twisted.python.usage.Options, hence we depended upon
Twisted. Now we depend upon "argparse" instead, which is in the py2.7
stdlib (and on pypi for 2.6). This package will still (eventually)
provide Twisted support, but applications which need it will already
express a dependency on twisted themselves, so by removing the
dependency here, we make life easier for applications that don't use it.
2015-03-22 16:52:35 -07:00
Brian Warner
502d43e0ea setup.py: include all packages= , I always forget that 2015-03-04 00:42:24 -08:00
Brian Warner
7a99c04d64 add "wormhole" entrypoint script. requires twisted.
I'm using Twisted for the subcommand argument parsing. It might be nice
to use something smaller.
2015-03-02 00:32:21 -08:00