Bitcoin Forum

Bitcoin => Armory => Topic started by: droark on March 25, 2017, 09:31:49 PM



Title: Windows Subsystem For Linux
Post by: droark on March 25, 2017, 09:31:49 PM
Hello. Just FYI, if anybody has Windows 10 64-bit, it should be possible to compile Armory without dealing with Visual Studio. Follow the directions (https://github.com/bitcoin/bitcoin/blob/master/doc/build-windows.md) under Bitcoin Core for installing Windows Subsystem For Linux (basically a Windows-friendly version of Ubuntu) and then follow Armory's build instructions. The only catch is that the binary will be a Linux binary, albeit one you can run under WSL.

Keep in mind that I haven't tested this for myself. (I did cross-compile Core, which worked fine.) It should be possible to run the Windows-specific Core binary and WSL-compiled Armory without problems. However, you'll probably have to tell Armory to look under a different location for Core's blockchain, and for your Armory wallets and such if you've been running regular Windows builds.

Thanks, and I hope this was useful to somebody!


Title: Re: Windows Subsystem For Linux
Post by: achow101 on March 26, 2017, 12:37:01 AM
I was trying to do this, but I have not been able to get make to complete with the WSL.


Title: Re: Windows Subsystem For Linux
Post by: droark on March 26, 2017, 02:26:21 AM
Interesting. I'll play with it when I get a chance. My offhand guess is that Autotools is somehow causing problems. We'll see.


Title: Re: Windows Subsystem For Linux
Post by: goatpig on March 26, 2017, 03:36:34 PM
There were some compile errors, fixed with the last push. Please try it again.


Title: Re: Windows Subsystem For Linux
Post by: droark on March 27, 2017, 02:56:45 AM
There were some compile errors, fixed with the last push. Please try it again.

Code:
(ERROR) Traceback (most recent call last):
  File "/Users/droark/Projects/private-goatpig-BitcoinArmory/osxbuild/workspace/Armory.app/Contents/MacOS/py/usr/local/lib/armory/ArmoryQt.py", line 5848, in <module>
    checkForAlreadyOpen()
  File "/Users/droark/Projects/private-goatpig-BitcoinArmory/osxbuild/workspace/Armory.app/Contents/MacOS/py/usr/local/lib/armory/ArmoryQt.py", line 5829, in checkForAlreadyOpen
    from armoryengine.ProcessMutex import PySide_ProcessMutex

Looks like PySide_ProcessMutex isn't actually defined in the Python code. Perhaps it's in a file that hasn't been pushed?


Title: Re: Windows Subsystem For Linux
Post by: goatpig on March 27, 2017, 11:44:30 AM
In my great wisdom, I forgot to push one new file... Should be fixed now.


Title: Re: Windows Subsystem For Linux
Post by: achow101 on March 27, 2017, 07:06:28 PM
Now that the build problems are fixed, I am able to compile Armory using the WSL, but it does not work. Firstly, the WSL does not allow programs with a GUI as it has no X server, so the Client and DB must be run separately. More importantly, the DB runs into a segfault a minute or two after starting it, so right now the WSL cannot be used.


Title: Re: Windows Subsystem For Linux
Post by: droark on March 27, 2017, 10:10:57 PM
Now that the build problems are fixed, I am able to compile Armory using the WSL, but it does not work. Firstly, the WSL does not allow programs with a GUI as it has no X server, so the Client and DB must be run separately. More importantly, the DB runs into a segfault a minute or two after starting it, so right now the WSL cannot be used.

Bummer. I thought it'd work. I suppose armoryd could work, although it's pretty out-of-date at this point, not to mention the DB issue. I've also noticed a couple of other odd issues related to where you run things. I'll make a post here if/when I figure everything out.

EDIT: Actually, this does kinda work. You have to install an X server (e.g., Xming) on Windows and then type "export DISPLAY=:0" under WSL before running Linux, but it does fire up the Armory GUI under Windows. This blog post (https://virtualizationreview.com/articles/2017/02/08/graphical-programs-on-windows-subsystem-on-linux.aspx) talks about what's going on.

Granted, I don't have this fully running yet, and this isn't something I'd want to run for anything other than debugging purposes! It's still potentially an option if you really need or want it.

EDIT 2: In case anyone wants to play around with WSL, on top of installing everything in the Armory README, you'll need to install autoconf, libtool, python-pip, and pkg-config. You'll also need to use pip to install psutil. After that and the X server redirection mentioned above, you should be able to start Armory. (Whether or not it fully works may be a different story!)