Browse Source

Support Windows/MSYS2

The MMGen Project 5 months ago
parent
commit
55fdcb29f7
5 changed files with 73 additions and 21 deletions
  1. 64 16
      README.md
  2. 1 1
      mmgen_node_tools/data/version
  3. 1 1
      setup.cfg
  4. 4 2
      test/cmdtest_py_d/ct_main.py
  5. 3 1
      test/cmdtest_py_d/ct_regtest.py

+ 64 - 16
README.md

@@ -4,36 +4,66 @@
 
 Requires modules from the [MMGen online/offline cryptocurrency wallet][6].
 
-Currently tested on Linux only.  Some scripts may not work under Windows/MSYS2.
-
 ## Install:
 
 If installing as user (without venv), make sure that `~/.local/bin` is in `PATH`.
 
-### Stable version:
+#### Windows/MSYS2:
 
-First, install the [required MMGen Wallet packages][7] for your Linux distribution:
+> Install [MSYS2 and the MMGen Wallet dependencies][8], skipping installation of
+> scrypt, libsecp256k1 and the wallet itself if desired.
 
-Then,
+> Install some additional dependencies:
 
-	$ python3 -m pip install --upgrade mmgen-node-tools
+```bash
+	$ pacman -S \
+		mingw-w64-ucrt-x86_64-python-pandas \
+		mingw-w64-ucrt-x86_64-python-tqdm \
+		mingw-w64-ucrt-x86_64-python-lxml
+	$ python3 -m pip install requests-futures
+	$ python3 -m pip install --no-deps yahooquery
+```
 
-### Development version:
+#### Linux:
 
-First, install the latest development version of [MMGen Wallet][6].
+> Install the [required MMGen Wallet packages][7] for your Linux distribution.
 
-Then,
+### Stable version:
+
+```bash
+$ python3 -m pip install --upgrade mmgen-node-tools
+```
 
-	$ git clone https://github.com/mmgen/mmgen-node-tools
-	$ cd mmgen-node-tools
-	$ python3 -m build --no-isolation
-	$ python3 -m pip install dist/*.whl
+### Development version:
+
+Install the latest development version of [MMGen Wallet][6] for your platform.
+
+```bash
+$ git clone https://github.com/mmgen/mmgen-node-tools
+$ cd mmgen-node-tools
+$ python3 -m build --no-isolation
+$ python3 -m pip install dist/*.whl
+```
 
 ## Test:
 
 *NOTE: the tests require that the MMGen Wallet and MMGen Node Tools repositories be
 located in the same directory.*
 
+#### Windows/MSYS2:
+
+> *Tested only on NTFS – with ReFS your mileage may vary*
+
+> Turn on Developer Mode to enable symlinks:
+```
+	Settings -> Update & Security -> For developers -> Developer Mode: On
+```
+> and add this to your `~/.bashrc`:
+```bash
+	export MSYS=winsymlinks:nativestrict
+```
+> Close and reopen the MSYS2 terminal to update your environment.
+
 Initialize the test framework (must be run at least once after cloning, and
 possibly again after a pull if tests have been updated):
 
@@ -49,11 +79,29 @@ Full testing:
 
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
-[**Forum**][4] |
-[PGP Public Key][5] |
-Donate: 15TLdmi5NYLdqmtCqczUs5pBPkJDXRs83w
+Homepage:
+[Clearnet](https://mmgen-wallet.cc) |
+[I2P](http://mmgen-wallet.i2p) |
+[Onion](http://mmgen55rtcahqfp2hn3v7syqv2wqanks5oeezqg3ykwfkebmouzjxlad.onion)    
+Code repository:
+[Clearnet](https://mmgen.org/project/mmgen/mmgen-wallet) |
+[I2P](http://mmgen-wallet.i2p/project/mmgen/mmgen-wallet) |
+[Onion](http://mmgen55rtcahqfp2hn3v7syqv2wqanks5oeezqg3ykwfkebmouzjxlad.onion/project/mmgen/mmgen-wallet)    
+Code repository mirrors:
+[Github](https://github.com/mmgen/mmgen-wallet) |
+[Gitlab](https://gitlab.com/mmgen/mmgen-wallet) |
+[Gitflic](https://gitflic.ru/project/mmgen/mmgen-wallet)     
+[Keybase](https://keybase.io/mmgen) |
+[Reddit](https://www.reddit.com/user/mmgen-py) |
+[Bitcointalk](https://bitcointalk.org/index.php?topic=567069.new#new)   
+[PGP Signing Key][5]: 5C84 CB45 AEE2 250F 31A6 A570 3F8B 1861 E32B 7DA2    
+Donate:    
+ ⊙ BTC: *bc1qxmymxf8p5ckvlxkmkwgw8ap5t2xuaffmrpexap*    
+ ⊙ BCH: *15TLdmi5NYLdqmtCqczUs5pBPkJDXRs83w*    
+ ⊙ XMR: *8B14zb8wgLuKDdse5p8f3aKpFqRdB4i4xj83b7BHYABHMvHifWxiDXeKRELnaxL5FySfeRRS5girgUvgy8fQKsYMEzPUJ8h*
 
 [4]: https://bitcointalk.org/index.php?topic=567069.0
 [5]: https://github.com/mmgen/mmgen-wallet/wiki/MMGen-Signing-Keys
 [6]: https://github.com/mmgen/mmgen-wallet/
 [7]: https://github.com/mmgen/mmgen-wallet/wiki/Install-MMGen-on-Linux
+[8]: https://github.com/mmgen/mmgen-wallet/wiki/Install-MMGen-on-Microsoft-Windows#a_m

+ 1 - 1
mmgen_node_tools/data/version

@@ -1 +1 @@
-3.2.dev8
+3.2.dev9

+ 1 - 1
setup.cfg

@@ -28,7 +28,7 @@ python_requires = >=3.8
 include_package_data = True
 
 install_requires =
-	mmgen-wallet>=14.0.dev22
+	mmgen-wallet>=14.0.dev25
 	pyyaml
 	yahooquery
 

+ 4 - 2
test/cmdtest_py_d/ct_main.py

@@ -35,7 +35,7 @@ class CmdTestMain(CmdTestBase):
 			"'mmnode-peerblocks' script",
 			('peerblocks1', '--help'),
 			('peerblocks2', 'interactive (popen spawn)'),
-			('peerblocks3', 'interactive, 80 columns (pexpect_spawn)'),
+			('peerblocks3', 'interactive, 80 columns (pexpect_spawn [on Linux])'),
 		),
 	}
 
@@ -94,4 +94,6 @@ class CmdTestMain(CmdTestBase):
 		return t
 
 	def peerblocks3(self):
-		return self.peerblocks2(['--columns=80'],pexpect_spawn=True)
+		return self.peerblocks2(
+			['--columns=80'],
+			pexpect_spawn = sys.platform != 'win32' )

+ 3 - 1
test/cmdtest_py_d/ct_regtest.py

@@ -12,7 +12,7 @@
 test.cmdtest_py_d.ct_regtest: Regtest tests for the cmdtest.py test suite
 """
 
-import os
+import sys,os
 
 from mmgen.util import msg_r,die,gmsg
 from mmgen.protocol import init_proto
@@ -134,6 +134,8 @@ class CmdTestRegtest(CmdTestBase):
 	def netrate2(self):
 		t = self.netrate( [], r'sent:.*' )
 		t.kill(15)
+		if sys.platform == 'win32':
+			return 'ok'
 		t.req_exit_val = -15
 		return t