diff --git a/A-word-on-text-editors.md b/A-word-on-text-editors.md
index e622602..e5bcb89 100644
--- a/A-word-on-text-editors.md
+++ b/A-word-on-text-editors.md
@@ -1,22 +1,24 @@
-The text file editors that come with Windows, "edit" and "notepad", are
-unsuitable for editing source code for many reasons, but above all because they
-don't handle the line endings in Unix text files properly. Therefore, you'll
-need to install a Unix-capable text editor such as nano or Vim.
+The text file editors that come with Windows, “edit” and “notepad”, are
+unsuitable for editing files in an MSYS environment for many reasons, but above
+all because they can't handle Unix text-file line endings. So it's imperative
+you install a Unix-capable text editor such as Nano or Vim.
[Nano][00] is an easy-to-use editor designed for less experienced users. It's
available [here][04] as a precompiled Windows binary. Just extract `nano.exe`
-from the archive and copy it to your path.
+and `cygwin1.dll` from the archive and copy them to `C:\windows` or some other
+location on your execution path.
-For advanced users with some knowledge of vi commands, [Vim][01], a full-featured
-editor with advanced text highlighting capabilities, will be a better choice.
-Grab the Windows installer [here][05] and run it, accepting the defaults.
+A better choice for more advanced users is [Vim][01], a full-featured editor
+with syntax highlighting capability. You can find the Windows installer
+[here][05].
-After installing Vim, you should add its executable directory `C:\Program
-Files\Vim\vim74` (your version number may be different) to your user path.
-Editing user paths is explained [here][06].
+After installing Vim, you should add its executable path
+`C:\Program Files\Vim\vim80` (this may be different for your version)
+to your PATH variable. Editing user paths is explained [here][06].
[06]: Editing-the-user-path-in-Windows
-[04]: http://mingw-and-ndk.googlecode.com/files/win-mingw-nano.7z
+[04x]: http://mingw-and-ndk.googlecode.com/files/win-mingw-nano.7z
+[04]: https://www.nano-editor.org/dist/v1.0/NT/nano-1.0.9.zip
[05]: http://www.vim.org/download.php
[00]: http://www.nano-editor.org/
[01]: http://www.vim.org/
diff --git a/Editing-the-user-path-in-Windows.md b/Editing-the-user-path-in-Windows.md
index 22eeaf4..48b4260 100644
--- a/Editing-the-user-path-in-Windows.md
+++ b/Editing-the-user-path-in-Windows.md
@@ -1,5 +1,6 @@
-> 1. Right-click on your "My Computer" icon and select "Properties".
-> 2. Click on the "Advanced" tab, then on the "Environment Variables" button.
+> 1. Right-click (Windows XP) or double-click (Windows 7) on the “My Computer”
+> icon and select “Properties” or “System Properties”.
+> 2. Click on the “Advanced” tab, then on the “Environment Variables” button.
> 3. A dialogue window will pop up. Edit the path variable in the **top** text
> box, adding your entry (`c:\mingw\bin`, for example) to the end. If
> there is no PATH variable listed there, create it. Path entries are
diff --git a/Getting-Started-with-MMGen.md b/Getting-Started-with-MMGen.md
index ba14971..9ec2039 100644
--- a/Getting-Started-with-MMGen.md
+++ b/Getting-Started-with-MMGen.md
@@ -1,18 +1,18 @@
## Table of Contents
-#### Basic Operations
-* Generate a wallet
-* Generate addresses
-* Import addresses
-* Create a transaction
-* Sign a transaction
-* Send a transaction
+#### Basic Operations
+* Generate a wallet
+* Generate addresses
+* Import addresses
+* Create a transaction
+* Sign a transaction
+* Send a transaction
-#### Additional Features
-* Using the mnemonic and seed features
-* Mnemonics and seeds: additional information
-* Incognito wallets
- * Hidden incognito wallets
+#### Additional Features
+* Using the mnemonic and seed features
+* Mnemonics and seeds: additional information
+* Incognito wallets
+ * Hidden incognito wallets
The following primer presupposes you have MMGen installed on two computers, one
offline and one online. However, if you have an online computer and a few
@@ -38,22 +38,23 @@ this primer are fake and for purposes of illustration only. The up arrow (for
repeating commands) and tab key (or Ctrl-I) (for completing commands and
filenames) will speed up your work at the command line greatly.
-### Basic Operations
+### Basic Operations
-#### Generate a wallet (offline computer):
+#### Generate a wallet (offline computer):
*NOTE: Beginning with v0.8.8, MMGen supports a “default wallet” feature. After
creating your wallet, MMGen will prompt you to make it your default. If you
answer 'y', the wallet will be stored in your MMGen data directory and used for
all future commands that require a wallet or other seed source.*
-*If you don't want your MMGen wallet stored in your MMGen data directory, then
-you may not to want to use this feature. Otherwise, it's recommended, as it
-saves you from having to type your wallet on the command line.*
+*You may not want this feature if you plan to store your MMGen wallet in another
+location than your MMGen data directory. Otherwise, it's recommended, as it
+frees you from having to type your wallet on the command line.*
*The following examples suppose that you've chosen to use a default wallet.
-Bear in mind that if you hadn't, the wallet would need to be specified as an
-argument to all commands where it's relevant.*
+Bear in mind that in the absence of a default wallet, the path to a wallet file
+or other seed source needs to be included in all commands where it's
+applicable.*
On your offline computer, generate a wallet:
@@ -83,7 +84,7 @@ printed out on paper. It can also be exported to more compact forms, the seed
file and mnemonic (discussed below). These formats are short enough to be
written out by hand or memorized.
-#### Generate addresses (offline computer):
+#### Generate addresses (offline computer):
Now generate ten addresses with your just-created wallet:
@@ -149,7 +150,7 @@ of lines as well.
Save the file, copy it onto a USB stick and transfer it to your online computer.
-#### Import addresses (online computer):
+#### Import addresses (online computer):
On your online computer, go to your bitcoind data directory and move any
existing 'wallet.dat' file out of harm’s way. Start bitcoind and let it
@@ -193,7 +194,7 @@ after the transactions have been confirmed:
89ABCDEF:4 Storage 3 0.4
TOTAL: 1 BTC
-#### Create a transaction (online computer):
+#### Create a transaction (online computer):
Now that you have some BTC under MMGen’s control, you’re ready to create a
transaction. Note that transactions are harmless until they’re signed and
@@ -262,7 +263,7 @@ amount.
As you can see, MMGen gives you complete control over your transaction inputs
and change addresses. This feature will be appreciated by privacy-conscious users.
-#### Sign a transaction (offline computer):
+#### Sign a transaction (offline computer):
Now transfer the the raw transaction file to your offline computer and sign it
using your default wallet:
@@ -273,7 +274,7 @@ using your default wallet:
Note that the signed transaction file has a new extension, '.sigtx'.
-#### Send a transaction (online computer):
+#### Send a transaction (online computer):
Now you’re ready for the final step: broadcasting the transaction to the
network. Copy the signed transaction file to your online computer, start
@@ -305,9 +306,9 @@ Some of MMGen’s more advanced features are discussed below. Others are
documented in the help screens of the individual MMGen commands: display these
by invoking the desired command with the `-h` or `--help` switch.
-### Additional Features
+### Additional Features
-#### Using the mnemonic and seed features:
+#### Using the mnemonic and seed features:
Continuing our example above, generate a mnemonic from the default wallet:
@@ -386,7 +387,7 @@ Or you can do the same thing with 'mmgen-tool':
$ mmgen-tool str2id6 'XnyC NfPH piuW dQ2d nM47 VU'
0fe02f
-#### Mnemonics and seeds: additional information
+#### Mnemonics and seeds: additional information
MMGen commands that take mnemonic and seed data may receive the data from a
prompt instead of a file. Just omit the file name and specify the input format:
@@ -407,7 +408,7 @@ using the `-d` option. For example, on a Linux system you can use
ensuring that no trace of this sensitive data remains once your computer’s been
powered down.
-#### Incognito wallets
+#### Incognito wallets
An incognito format wallet is indistinguishable from random data, allowing you
to hide your wallet at an offset within a random-data-filled file or partition.
@@ -485,7 +486,7 @@ MMGen wallet, mnemonic or seed file to generate addresses and sign transactions:
...
Signed transaction written to file FABCDE[0.3].sigtx
-##### Hidden incognito wallets
+##### Hidden incognito wallets
With the `-o hincog` option, incognito wallet data can be created and hidden at
a specified offset in a file or partition in a single convenient operation, with
diff --git a/Install-Bitcoind.md b/Install-Bitcoind.md
index 240dfe1..6e91935 100644
--- a/Install-Bitcoind.md
+++ b/Install-Bitcoind.md
@@ -1,59 +1,86 @@
-#### Note:
+## Installing the Bitcoin daemon
-> The bitcoin daemon on the **offline computer** is used solely to sign
-> transactions and runs without a blockchain. Thus even a low-powered computer
-> such as a netbook will suffice as your offline machine.
->
-> The bitcoin daemon on the **online computer** requires a complete and
-> up-to-date blockchain for tracking addresses. Since its work is more CPU and
-> disk intensive, a more powerful computer is recommended here. You'll also
-> need plenty of free disk space for the rapidly growing blockchain (~30GB at
-> the time of writing).
->
-> Two blockchain operations are especially resource-intensive: **synchronizing
-> the blockchain** and **importing existing addresses with balances**. If you
-> synchronize often (once a week, for example) and take care to import your
-> addresses **before** spending into them, then it's possible to use a
-> low-powered netbook as your online machine.
+The bitcoin daemon on the **offline computer** is used solely to sign
+transactions and runs without a blockchain. Thus even a low-powered computer
+such as a netbook will suffice as your offline machine.
-#### Download:
+The bitcoin daemon on the **online computer** requires a complete and
+up-to-date blockchain for tracking addresses. Since its work is more CPU and
+disk intensive, a more powerful computer is recommended here. You'll also
+need plenty of free disk space for the rapidly growing blockchain (~100GB at
+the time of writing).
+
+Two blockchain operations are especially resource-intensive: **synchronizing
+the blockchain** and **importing existing addresses with balances**. If you
+synchronize often (once a week, for example) and take care to import your
+addresses **before** spending into them, then it's possible to use a
+low-powered netbook as your online machine.
+
+### Download:
> Go to the Bitcoin Core [main download page][01]. Choose the 32-bit or 64-bit
-> versions appropriate for your respective computers.
+> versions appropriate for your online and offline computers.
-#### Install:
+### Install (both online and offline computers):
-> **On both the online and offline computers:**
+> **Windows users:**
-> Windows users: run the Windows installer. Linux users: unpack the tar archive
-> and copy the bitcoind executable in bin/ to your execution path or just run it
-> in place.
+>> Run the Windows installer. When setup is finished, append the following path
+>> to your PATH variable: `C:\Program Files\Bitcoin\daemon`
-#### Run:
+>> From your MSYS environment, create a new bitcoin configuration file in your
+>> text editor:
+
+ $ cd $APPDATA
+ $ nano Bitcoin/bitcoin.conf
+
+>> and add the following two lines to it:
+
+ rpcuser=
+ rpcpassword=
+
+>> Save the file and exit the editor. Create a bitcoin datadir in your MSYS
+>> environment:
+
+ $ mkdir ~/.bitcoin
+
+>> and copy your just-created file to it:
+
+ $ cp Bitcoin/bitcoin.conf ~/.bitcoin
+
+> **Linux users:**
+
+>> Unpack the tar archive and copy the bitcoind executable in bin/ to your
+>> execution path or just run it in place.
+
+### Run (both Windows and Linux):
> **On the online computer:**
-> Open a terminal and start bitcoind with the command:
+>> Open a terminal and start bitcoind with the command:
$ bitcoind -daemon
-> Warning: If you already have Bitcoin Core installed, **move your existing
-> wallet.dat out of harm's way** before starting bitcoind. The new wallet
-> now created will be used as your **tracking wallet**.
+>> Warning: If you're using an existing Bitcoin Core installation, **move your
+>> wallet.dat out of harm's way** before starting bitcoind. The new wallet now
+>> created will be used as your **tracking wallet**.
-> If you're connected to the Internet, bitcoind will begin downloading and
-> verifying the blockchain. This can take from several hours to several days
-> (depending on the speed of your computer) if you're downloading the blockchain
-> from scratch.
+>> If you're connected to the Internet, bitcoind will begin downloading and
+>> verifying the blockchain. This can take from several hours to several days
+>> (depending on the speed of your computer) for an initial download.
> **On the offline computer:**
-> Open a terminal and start bitcoind with the command:
+>> Open a terminal and start bitcoind with the command:
$ bitcoind -daemon -maxconnections=0 -listen=0
-> Note that in the absence of a blockchain the daemon starts very quickly and
-> uses practically no CPU once running.
+>> Note that in the absence of a blockchain the offline daemon starts very
+>> quickly and uses practically no CPU once running.
+
+>> *Note for Windows users:* Under Windows, the bitcoind daemon doesn't fork to
+>> run as a background process, so you'll have to keep a separate terminal window
+>> open for it.
[01]: https://bitcoin.org/en/download
[bd]: https://bitcoin.org/bin/blockchain/
diff --git a/Install-MMGen-and-Its-Dependencies-on-Microsoft-Windows.md b/Install-MMGen-and-Its-Dependencies-on-Microsoft-Windows.md
index 2087ae4..e12e5b8 100644
--- a/Install-MMGen-and-Its-Dependencies-on-Microsoft-Windows.md
+++ b/Install-MMGen-and-Its-Dependencies-on-Microsoft-Windows.md
@@ -1,115 +1,127 @@
-***Warning: the MMGen installation process on Windows is not for the faint of
-heart, success is not guaranteed and the user experience is less than optimal.
-You're urged to use the prebuilt [MMGenLive][20] USB image instead. It's now
-the preferred way for all non-Linux users to run MMGen.***
+***Warning: the MMGen installation process on Windows is not easy, and the user
+experience is less than optimal. You're urged to use the prebuilt
+[MMGenLive][20] USB image instead. It's now the preferred way for all non-Linux
+users to run MMGen.***
-##### Note: The following instructions assume you'll be unpacking all archives to `C:\`, the root directory on most Windows installations. If you choose to unpack to another location, the `cd` commands must be adjusted accordingly.
-
-#### 1. Install the Python interpreter:
+### 1. Install the Python interpreter:
Grab the [Windows 32-bit installer][09] and run it, accepting the defaults.
Add the Python base and Scripts directories to your [path][08], e.g.
`C:\Python27;C:\Python27\Scripts`.
-#### 2. Build OpenSSL:
+### 1. Create the build directory:
-Grab the [latest tarball][06] from the [openssl.org download page][05] and unpack
-it. At the MSYS prompt, run:
+Enter your MSYS environment, create the directory `/c/build` and move to it.
+This is where you'll be unpacking and building archives:
- $ cd /c/openssl-1.0.1g
+ $ mkdir /c/build
+ $ cd /c/build
+
+### 2. Build OpenSSL:
+
+Grab the v1.0.x [tarball][06sc] from openssl.org, unpack and build:
+
+ $ tar.exe -xzf /openssl-1.0.2j.tar.gz
+ $ cd openssl-1.0.2j
$ ./config --openssldir=/usr
$ make
$ make install
-#### 3. Build the Scrypt Python module:
+### 3. Build the Scrypt Python module:
-Grab the [latest tarball][07] from python.org and unpack it. At the MSYS prompt,
-run:
+The latest scrypt tarball available from [Python][07] at this writing
+(scrypt-0.8.0.tar.gz) has missing files and doesn't build, so unless this has
+been fixed, you must grab the source from the scrypt repository using mercurial
+(you'll have to install mercurial for Windows if it's not installed) and copy it
+to your build directory:
- $ cd /c/scrypt-0.6.1
+ From Windows:
+ > hg clone https://bitbucket.org/mhallin/py-scrypt
+ ... copy to c:\build
-Open `setup.py` in your text editor and make the following changes:
+ From MSYS:
+ $ cd /c/build/py-script
-> Change the line:
+Open the file `setup.py` in your text editor. Right before the line beginning
+with
- library_dirs = ['c:\OpenSSL-Win32\lib\MinGW']
+ scrypt_module = Extension(
-> to read:
+add the following lines (with no indentation):
- library_dirs = ['c:\msys\lib','c:\WINDOWS\system32']
+ library_dirs = ['c:\msys\lib','c:\windows\system32']
+ includes = ['c:\msys\include']
-> Change the line:
-
- includes = ['c:\OpenSSL-Win32\include']
-
-> to read:
-
- includes = ['c:\msys\include']
-
-Save the file. At the MSYS prompt, run:
+Save `setup.py`, build and install:
$ python setup.py build --compiler=mingw32
-
-Ignore the warning messages at the end and run:
-
$ python setup.py install
-#### 4. Install the Pycrypto Python module:
+You can ignore the error messages at the end of the build.
-Source code is available from the [Pycrypto home page][00], but it appears to
-build only with MS Visual Studio, not MinGW. Until this situation is fixed,
-you can install the precompiled binaries available from [Voidspace][01].
-Download and run the [Windows installer][02], accepting the defaults.
+Now, to solve a problem with the interpreter not finding the scrypt extension
+module, we have to do this little workaround:
-#### 5. Install the ecdsa Python module:
+ $ cd /c/Python27/lib/site-packages
+ $ unzip scrypt*.egg
-Grab the [tarball][03] and unpack it. At the MSYS prompt, run:
+### 4. Build the pycrypto Python module:
- $ cd /c/ecdsa-0.11
+Download the latest pycrypto [tarball][02sc] from the Python website, unpack and build:
+
+ $ cd /c/build
+ $ tar -xzf /pycrypto-2.6.1.tar.gz
+ $ cd pycrypto-2.6.1
+ $ python setup.py build --compiler=mingw32
$ python setup.py install
-#### 6. Install the bitcoin-python Python module:
+### 5. Install the ecdsa Python module:
-Grab the [tarball][04] and unpack it. At the MSYS prompt, run:
+Grab the latest python-ecdsa [tarball][03sc], unpack and build:
- $ cd /c/bitcoin-python-0.3
- $ cp -a src/bitcoinrpc /c/Python27/Lib/site-packages
-
-This is a workaround for a dependency issue with the package's setup script.
-If your Python is installed in a different location, you'll have to adjust the
-destination path accordingly.
-
-#### 7. Install the colorama Python module (optional but recommended):
-
-Grab the [tarball][14] and unpack it. At the MSYS prompt, run:
-
- $ cd /c/colorama-0.3.3
+ $ cd /c/build
+ $ tar -xzf /ecdsa-0.13.tar.gz
+ $ cd ecdsa-0.13
$ python setup.py install
-#### 8. Install MMGen:
+### 7. Install the colorama Python module (optional but recommended):
-Get the [zip archive][10b] from GitHub and unpack it. At the MSYS prompt, run:
+Grab the colorama [tarball][14sc], unpack and build:
- $ cd /c/mmgen-stable_mswin
+ $ cd /c/build
+ $ tar -xzf /colorama-0.3.7.tar.gz
+ $ cd /c/colorama-0.3.7
+ $ python setup.py install
+
+### 8. Install MMGen:
+
+Get the [zip archive][10b] from GitHub, unpack and install:
+
+ $ cd /c/build
+ $ unzip.exe /stable_mswin.zip
+ $ cd mmgen-stable_mswin
$ sudo ./setup.py install
-Type:
+If you wish, you may run the MMGen test suite to make sure everything's working:
- $ echo $PATH
-
-The `C:\Python27;C:\Python27\Scripts` you added to your path in Step 1 of this
-page should be included in your PATH variable. If not, then exit MSYS and open
-a new MSYS window to update your path.
+ $ test/test.py
[00]: https://www.dlitz.net/software/pycrypto/
[01]: http://www.voidspace.org.uk/python/modules.shtml#pycrypto
-[02]: http://www.voidspace.org.uk/downloads/pycrypto26/pycrypto-2.6.win32-py2.7.exe)
+[02x]: http://www.voidspace.org.uk/downloads/pycrypto26/pycrypto-2.6.win32-py2.7.exe)
+[02]: https://pypi.python.org/pypi/pycrypto
+[02sc]: https://pypi.python.org/packages/60/db/645aa9af249f059cc3a368b118de33889219e0362141e75d4eaf6f80f163/pycrypto-2.6.1.tar.gz#md5=55a61a054aa66812daf5161a0d5d7eda
[03]: https://pypi.python.org/pypi/ecdsa
+[03sc]: https://pypi.python.org/packages/f9/e5/99ebb176e47f150ac115ffeda5fedb6a3dbb3c00c74a59fd84ddf12f5857/ecdsa-0.13.tar.gz#md5=1f60eda9cb5c46722856db41a3ae6670
[04]: https://pypi.python.org/pypi/bitcoin-python/0.3
-[09]: https://www.python.org/ftp/python/2.7.6/python-2.7.6.msi
+[09]: https://www.python.org/ftp/python/2.7.12/python-2.7.12.msi
[08]: Editing-the-user-path-in-Windows
[07]: https://pypi.python.org/pypi/scrypt/
-[06]: http://www.openssl.org/source/openssl-1.0.1g.tar.gz
+[07exe]: https://pypi.python.org/packages/b7/4b/b11eac2aa846231ade35f323e7ad5c98f3c5f77c3b6b2ca33e24afe9518c/scrypt-0.8.0.win32-py2.7.exe#md5=db04ef2223c0594e4429698744690d99
+[07exe64]: https://pypi.python.org/packages/3e/b8/e09f4f557ce21459a691d8bf3072affac31379941586229f857788b2034a/scrypt-0.8.0.win-amd64-py2.7.exe#md5=f5faeecfcd9be3412a6d10ec2e5a373b
+[07sc]: https://pypi.python.org/packages/af/82/44b030646b9de44ba5a5c7e87b0419a4d44318ba18468f5292b9c16737ac/scrypt-0.8.0.tar.gz#md5=0704e59cc3afb3845c27bb3827baeea9
+[06sc]: https://www.openssl.org/source/openssl-1.0.2j.tar.gz
+[06x]: https://www.openssl.org/source/openssl-1.1.0c.tar.gz
[05]: http://www.openssl.org/source/
[10]: https://github.com/mmgen/mmgen/archive/master.zip
[10b]: https://github.com/mmgen/mmgen/archive/stable_mswin.zip
@@ -117,4 +129,5 @@ a new MSYS window to update your path.
[12]: http://www.openssl.org/related/binaries.html
[13]: Getting-Started-with-MMGen
[14]: https://pypi.python.org/pypi/colorama
+[14sc]: https://pypi.python.org/packages/f0/d0/21c6449df0ca9da74859edc40208b3a57df9aca7323118c913e58d442030/colorama-0.3.7.tar.gz#md5=349d2b02618d3d39e5c6aede36fe3c1a
[20]: https://github.com/mmgen/MMGenLive
diff --git a/Install-MMGen-on-Microsoft-Windows.md b/Install-MMGen-on-Microsoft-Windows.md
index 5fd61c8..a8250a1 100644
--- a/Install-MMGen-on-Microsoft-Windows.md
+++ b/Install-MMGen-on-Microsoft-Windows.md
@@ -1,7 +1,7 @@
-***Warning: the MMGen installation process on Windows is not for the faint of
-heart, success is not guaranteed and the user experience is less than optimal.
-You're urged to use the prebuilt [MMGenLive][00] USB image instead. It's now
-the preferred way for all non-Linux users to run MMGen.***
+***Warning: the MMGen installation process on Windows is not easy, and the user
+experience is less than optimal. You're urged to use the prebuilt
+[MMGenLive][00] USB image instead. It's now the preferred way for all non-Linux
+users to run MMGen.***
Install MMGen on Windows by completing the following three steps:
@@ -10,8 +10,8 @@ Install MMGen on Windows by completing the following three steps:
> MMGen itself][02]; and
> 3. [Install the offline and online bitcoin daemons (bitcoind)][07].
-Congratulations, your MMGen installation is now complete! Now move on to
-[**Getting Started with MMGen**][08].
+Congratulations, your MMGen installation is now complete! Now you can
+proceed to [**Getting Started with MMGen**][08].
[01]: Install-MinGW-and-MSYS-on-Microsoft-Windows
[02]: Install-MMGen-and-Its-Dependencies-on-Microsoft-Windows
diff --git a/Install-MinGW-and-MSYS-on-Microsoft-Windows.md b/Install-MinGW-and-MSYS-on-Microsoft-Windows.md
index 4167ba0..29d3778 100644
--- a/Install-MinGW-and-MSYS-on-Microsoft-Windows.md
+++ b/Install-MinGW-and-MSYS-on-Microsoft-Windows.md
@@ -1,46 +1,57 @@
MinGW (Minimal GNU for Windows) provides the gcc compiler and related tools for
compiling source code into Windows binaries. MSYS provides a Unix-like
-environment with basic Unix shell commands. MinGW and MSYS are part of the
-same project and are designed to be used together.
+environment with basic Unix shell commands. MinGW and MSYS are part of the same
+project and are designed to be used together.
Complete hypertexed lists of the required MinGW and MSYS archive files are
provided below for convenient downloading. Save the archives into two separate
temporary directories (`mingw` and `msys`, for example).
+These lists were checked and known to work at the time of this writing (November
+2016). More recent versions of the files are available in the [MinGW
+repository][01], and an auto-installer can be found there as well. However,
+these instructions are designed to work on an offline computer, for which the
+auto-installer cannot be used.
+
> * [MinGW archive list][02]
> * [MSYS archive list][03]
-##### Note: these lists were up to date at the time of writing (April 2014). More recent versions may be available in the [MinGW repository][01] as you read this, but hunting for them isn't likely to be worth your time.
-
-
Unpack the basic-bsdtar archive (in the MinGW archives) and copy the executable
-`basic-bsdtar.exe` to your path (e.g. `C:\WINDOWS\system32`).
+`basic-bsdtar.exe` to your path (e.g. `C:\windows\system32`).
-From the DOS prompt, run `mkdir C:\mingw` to create the directory `C:\mingw`.
-Run `cd C:\mingw` to move to the directory. Unpack each of the MinGW archives
-(except for `basic-bsdtar`) as follows:
+From the DOS prompt (a.k.a “Power Shell” or “Command Line”), create the two
+base directories and move to the first of them:
- basic-bsdtar -xf
+ > mkdir C:\mingw
+ > mkdir C:\msys
+ > cd C:\mingw
-Create a `C:\msys` directory the same way, move to it and repeat the above
-unpacking procedure with the MSYS archives.
+Unpack all the MinGW archives (except basic-bsdtar) by executing the following
+command for each archive:
+
+ > basic-bsdtar.exe -xf /
+
+Now move the MSYS base directory:
+
+ > cd C:\msys
+
+and unpack each MSYS archive in the same way:
+
+ > basic-bsdtar.exe -xf /
Add `C:\mingw\bin` to your user path. Consult [this page][05] for instructions
-on editing your user path.
+on how to do that.
Close the command prompt window and open a new one. Launch the MSYS shell with
the command `C:\msys\bin\bash.exe --login`. You'll now be in the home
directory of your MSYS environment.
-If you want be able to launch MSYS from an icon instead of typing the above
-command all the time, then do the following: Make a copy of the "Command Line"
-icon on your desktop and rename it to "MSYS". Right click on the icon, select
-"Properties" and change the highlighted command path to `C:\msys\bin\bash.exe
---login`. You may also want to change the "Home Folder" field to your MSYS home
-directory, `C:\msys\home\Admin` for the Admin user.
+To avoid having to launch your MSYS shell like this each time, you're advised to
+copy the “PowerShell” icon, rename the copy to “MSYS”, right click on the icon,
+and add the shell launch command to the end of the command line after a space.
-Note: At this point you're advised to read [**A word on text editors**][00]
-before proceeding further with your installation.
+Note: At this point you should install a [text editor][00] before proceeding
+further with your installation.
Run the command `mount c:/mingw /mingw` to include your MinGW installation in
the MSYS tree. So you won't have to run this command every time you log in to
@@ -51,25 +62,28 @@ MSYS, open the file `/etc/fstab` in your text editor and add the line `c:/mingw
If you're new to Unix, you should learn a few key commands:
-> * `ls` - view directory contents (`ls -l` for a long view)
-> * `rm` - remove files (`rm -r` to remove entire directory trees)
-> * `rmdir` - remove an empty directory
-> * `cp` - copy a file (`cp -a` to copy directory trees)
-> * `mv` - move a file or directory
-> * `cat` - output a file to screen
-> * `less` - view a file page-by-page, with scrollback
+| Command | Action |
+|:--------|:--------------------------------------------------------|
+| `ls` | view directory contents (`ls -l` for a long view) |
+| `rm` | remove files (`rm -r` to remove entire directory trees) |
+| `rmdir` | remove an empty directory |
+| `cp` | copy a file (`cp -a` to copy directory trees) |
+| `mv` | move a file or directory |
+| `cat` | output a file to screen |
+| `less` | view a file page-by-page, with scrollback |
-Command help texts can be accessed with the `--help` switch. The MSYS root
-directory is `/`. Drive letter `C:` can be accessed as `/c/`.
+Command help texts can be accessed with the `--help` switch. Directories are
+separated by `/`, not `\`. The root of the filesystem is `/`. Drive letter
+`C:` is expressed as `/c/`.
Environmental variables may be viewed with the `env` command. Individual
-variables may be displayed like this:
+variables may be viewed like this:
$ echo $PATH
and set like this:
- $ set PATH=$PATH:/home/Admin/bin
+ $ PATH=$PATH:/home//bin
Sometimes variables must be exported to be visible to called programs:
diff --git a/Required-MinGW-Archives.md b/Required-MinGW-Archives.md
index 7609163..8d87ec4 100644
--- a/Required-MinGW-Archives.md
+++ b/Required-MinGW-Archives.md
@@ -29,6 +29,7 @@
> * [autoconf2.5-bin][]
> * [automake1.11-bin][]
> * [libtool-2.4-1-bin][]
+> * [xz-bin][]
[bsdtar]: https://sourceforge.net/projects/mingw/files/MinGW/Extension/bsdtar/basic-bsdtar-2.8.3-1/basic-bsdtar-2.8.3-1-mingw32-bin.zip
[gcc-core-bin]: https://sourceforge.net/projects/mingw/files/MinGW/Base/gcc/Version4/gcc-4.8.1-4/gcc-core-4.8.1-4-mingw32-bin.tar.lzma
@@ -46,18 +47,19 @@
[gmp-dll]: https://sourceforge.net/projects/mingw/files/MinGW/Base/gmp/gmp-5.1.2/gmp-5.1.2-1-mingw32-dll.tar.lzma
[libiconv-dev]: https://sourceforge.net/projects/mingw/files/MinGW/Base/libiconv/libiconv-1.14-3/libiconv-1.14-3-mingw32-dev.tar.lzma
[libiconv-dll]: https://sourceforge.net/projects/mingw/files/MinGW/Base/libiconv/libiconv-1.14-3/libiconv-1.14-3-mingw32-dll.tar.lzma
-[mingwrt-dev]: https://sourceforge.net/projects/mingw/files/MinGW/Base/mingw-rt/mingwrt-4.0.3/mingwrt-4.0.3-1-mingw32-dev.tar.lzma
-[mingwrt-dll]: https://sourceforge.net/projects/mingw/files/MinGW/Base/mingw-rt/mingwrt-4.0.3/mingwrt-4.0.3-1-mingw32-dll.tar.lzma
+[mingwrt-dev]: https://sourceforge.net/projects/mingw/files/MinGW/Base/mingwrt/mingwrt-3.22/mingwrt-3.22.4-mingw32-dev.tar.xz
+[mingwrt-dll]: https://sourceforge.net/projects/mingw/files/MinGW/Base/mingwrt/mingwrt-3.22/mingwrt-3.22.4-mingw32-dll.tar.xz
[mpc-dev]: https://sourceforge.net/projects/mingw/files/MinGW/Base/mpc/mpc-1.0.1-2/mpc-1.0.1-2-mingw32-dev.tar.lzma
[mpc-dll]: https://sourceforge.net/projects/mingw/files/MinGW/Base/mpc/mpc-1.0.1-2/mpc-1.0.1-2-mingw32-dll.tar.lzma
[mpfr-dev]: https://sourceforge.net/projects/mingw/files/MinGW/Base/mpfr/mpfr-3.1.2-2/mpfr-3.1.2-2-mingw32-dev.tar.lzma
[mpfr-dll]: https://sourceforge.net/projects/mingw/files/MinGW/Base/mpfr/mpfr-3.1.2-2/mpfr-3.1.2-2-mingw32-dll.tar.lzma
[pthreads-w32-dev]: https://sourceforge.net/projects/mingw/files/MinGW/Base/pthreads-w32/pthreads-w32-2.9.1/pthreads-w32-2.9.1-1-mingw32-dev.tar.lzma
[pthreads-w32-dll]: https://sourceforge.net/projects/mingw/files/MinGW/Base/pthreads-w32/pthreads-w32-2.9.1/pthreads-w32-2.9.1-1-mingw32-dll.tar.lzma
-[w32api-dev]: https://sourceforge.net/projects/mingw/files/MinGW/Base/w32api/w32api-4.0.3/w32api-4.0.3-1-mingw32-dev.tar.lzma
+[w32api-dev]: https://sourceforge.net/projects/mingw/files/MinGW/Base/w32api/w32api-3.18/w32api-3.18.2-mingw32-dev.tar.xz
[zlib-dev]: https://sourceforge.net/projects/mingw/files/MinGW/Base/zlib/zlib-1.2.8/zlib-1.2.8-1-mingw32-dev.tar.lzma
[zlib-dll]: https://sourceforge.net/projects/mingw/files/MinGW/Base/zlib/zlib-1.2.8/zlib-1.2.8-1-mingw32-dll.tar.lzma
[gettext-bin]: https://sourceforge.net/projects/mingw/files/MinGW/Base/gettext/gettext-0.18.3.1-1/gettext-0.18.3.1-1-mingw32-bin.tar.lzma
[autoconf2.5-bin]: https://sourceforge.net/projects/mingw/files/MinGW/Extension/autoconf/autoconf2.5/autoconf2.5-2.68-1/autoconf2.5-2.68-1-mingw32-bin.tar.lzma
[automake1.11-bin]: https://sourceforge.net/projects/mingw/files/MinGW/Extension/automake/automake1.11/automake1.11-1.11.1-1/automake1.11-1.11.1-1-mingw32-bin.tar.lzma
[libtool-2.4-1-bin]: https://sourceforge.net/projects/mingw/files/MinGW/Extension/libtool/libtool-2.4-1/libtool-2.4-1-mingw32-bin.tar.lzma
+[xz-bin]: https://sourceforge.net/projects/mingw/files/MinGW/Extension/xz/xz-5.0.3-2/xz-5.0.3-2-mingw32-bin.tar.lzma