Nachtblitz on Unix

rev 2, October 2014

Running Nachtblitz on Unix

This tutorial describes how to run the file sharing software Nachtblitz on Unix-like operating systems. Different ways have been explored to achieve this. The conclusion is that rather than relying on Mono, the original MS .NET Framework 2.0 for the x86 architecture should be used on Wine, as it makes for the best Nachtblitz user-experience on Unix (as of August 2014).

This tutorial was successfully tested on Ubuntu 14.04 and Linux Mint 17 with Wine 1.6.2. The overall installation usually takes about 10 minutes.

Click here for a screenshot of Nachtblitz 1.4.21 running on Ubuntu.

Installing Wine

If you haven't, install the Wine package including winetricks. Your operating system probably provides a mechanism for this (like Ubuntu Software Center). Alternatively you can check out https://www.winehq.org/ for instructions.

Manually Retrieving .NET 2.0

Provided it has access to the internet, winetricks will automatically download the .NET Framework for you during the installation. In that case you can skip this section and jump to the next.

If you don't grant winetricks access to the internet, it will probably prompt you to manually retrieve the installation file. The .NET 2.0 Framework redistributable package for x86 can be downloaded here:

http://download.cnet.com/Microsoft-NET-Framework-Redistributable-Package-x86/3000-10250_4-10726028.html

Or alternatively here:

http://download.lenovo.com/ibmdl/pub/pc/pccbbs/thinkvantage_en/dotnetfx.exe

The expected file has a size of 23.5 MB (23,510,720 bytes) and the following SHA-256: 46693d9b74d12454d117cc61ff2e9481cabb100b4d74eb5367d3cf88b89a0e71

Installing .NET 2.0 on Wine

Installing the MS .NET 2.0 Framework is easy once Wine and winetricks are installed. Open a terminal and type:

export WINEARCH=win32
export WINEPREFIX=$HOME/.wine-nachtblitz

This tells Wine to behave as 32-bit Windows and to use the folder ".wine-nachtblitz" in the current user's home directory for the following framework installation (you can use a different folder of course).

Then type "winetricks" to run the graphical setup.

If winetricks has internet access, it will then retrieve the .NET installer, or otherwise prompt you to provide the installer manually (see previous section). The .NET 2.0 setup should afterward get executed, requiring some minor user interaction. Finish the installation. winetricks will usually open the initial dialog again, which you can close right away by clicking the close button (X) or by clicking "Cancel" twice.

Caveats: If you used an invalid wineprefix, it can happen that winetricks displays the enigmatic message: "wine cmd.exe /c echo '%Program Files%' returned empty string". Check for typos in you "export" statements (see above). If the installation failed or other problems happened, it can be useful to manually delete the ".wine-nachtblitz" folder again and start fresh.

Running Nachtblitz

Extract the Nachtblitz release archive to a folder you desire (like "$HOME/nachtblitz"). Nachtblitz does not require write-access to this folder.

You can use the tool "winecfg" to configure Wine to behave as Windows 7 or later when running Nachtblitz, as this increases compatibility. You can (and probably should) also use the "Graphics" tab of the Wine configuration dialog to increase the screen resolution to something larger than 96 DPI, like say 120 or even 144 DPI, as Nachtblitz is DPI-aware and will honor this setting.

Whenever you want to run Nachtblitz, open a terminal and type the following or use a script to automate it for you:

export WINEARCH=win32
export WINEPREFIX=$HOME/.wine-nachtblitz
cd $HOME/nachtblitz
wine Nachtblitz.exe

If you manually type into a terminal window, the terminal window has to remain open until you shut Nachtblitz down. Using a script for this operation has the benefit of not having to maintain a terminal window.

Nachtblitz should then start up. Make sure that the I2P Router is running and has its SAM bridge started, so that Nachtblitz is able to connect to the I2P network.

By default Nachtblitz will store its application data in the folder "C:\users\USERNAME\Local Settings\Application Data\Nachtblitz", which should be the same as "$HOME/.wine-nachtblitz/drive_c/users/USERNAME/Local Settings/Application Data/Nachtblitz".

Nachtblitz Deinstallation

To remove Nachtblitz from your system: If you used the folder "$HOME/.wine-nachtblitz" for the installation, you can simply delete that folder, and remove the folder containing the extracted Nachtblitz release archive (e.g. "$HOME/nachtblitz").

Known Issues on Wine

Besides the problems stated above (testing on Wine 1.6.2) only minor user-interface issues are known, such as a rendering bug when displaying an image on a button.

Security of .NET 2.0

On Windows .NET 2.0 benefits form security updates per Windows Update. This is not the case on Unix. So there are unfixed security leaks in the .NET 2.0 referred to in this tutorial. The good news is that it should not be possible to exploit any of these remotely, regarding how Nachtblitz uses the .NET Framework (other applications running on top of this .NET might be vulnerable, depending on how they work). Note that Nachtblitz doesn't directly interact with the internet, but only with the I2P router. Also there are no plans to ever make Nachtblitz rely on dangerous features of .NET, like processing and rendering remotely provided web-content.

So it is thought to be secure to operate Nachtblitz in the way described here, provided you regularly update your operating system, Java, I2P, Wine and Nachtblitz.

Other Frameworks

Isn't .NET 4 better than .NET 2? Well, consider this...

Does Windows 7 become Windows 8 when you run Windows Update? No, they're separate products that are maintained independently. Is a program that is targeting Windows 7 outdated? Not in general, but it's probably more compatible than one that requires Windows 8. Does a program that targets Windows 7 run better on Windows 8? No, not necessarily. Is it in the best interest of users and developers to make compatible software that runs on Windows 7 and Windows 8? Yes, but maybe not in the best interest of the operating system vendor.

Now substitute Windows 7 with .NET 2 and Window 8 with .NET 4 in the above paragraph to get the idea.

But isn't Mono better suited for Unix than MS .NET?

Not momentarily. It would be great if Mono lived up to its promises. But Mono simply isn't mature enough. Maybe in the future. Complex software that was written for .NET simply won't work well on Mono - if at all, after lots of time-intensive adjustments were made, culminating to porting to Mono.

Credits

This document was created with support by Fantômas, who provided a great deal of help and did additional testing.

Back to the Nachtblitz front page