| Obtaining and installing a Midipix distribution |
| =============================================== |
| |
| A Midipix distribution consists of the following: |
| * the native Midipix toolchain, consisting of perk, gcc, its dependencies, |
| and binutils, |
| * musl, a lightweight, fast, simple, and free libc[1] used by Midipix, |
| * the Midipix runtime components that bridge the gap between the libc and the |
| executive subsystems of all Windows NT-derived Windows OS starting with and |
| including Windows XP, and |
| * a steadily increasing number of 3rd party open source packages, as expected in |
| any modern POSIX-compliant *nix environment, including GNU coreutils, shells, |
| libraries such as ncurses, libressl, as well as Perl and Python. |
| |
| Compressed Midipix distribution tarballs and, separately, source tarballs are, |
| at present, produced every four (4) hours UTC after each successful build and |
| subsequently signed. This process is fully automated by a portable Bourne shell |
| script; all of the above mentioned components are cross-compiled. |
| |
| Thus, the most hassle-free way to get started with Midipix is to simply download |
| the most recent distribution tarball and follow the instructions below. It is, |
| however, recommended to anyone intending to use Midipix as a development platform |
| to familiarise themselves with the build process. Other reasons to prefer building |
| a Midipix distribution yourself include integrating new 3rd party software or local |
| runtime component patches. At present, a full build from scratch takes about 30 |
| (thirty) minutes to finish on an 8-core host with eight simultaneous make jobs, |
| minus the generation of the tarballs. The build script can be obtained from the |
| following GitHub repository: <https://github.com/lalbornoz/midipix_build>. |
| |
| If you obtained a Midipix distribution tarball, extract it into a directory and |
| drive of your choice, henceforth referred to as target directory; the drive can |
| be a network drive. Do _not_ use anything but a true UNIX environment tar(1), as |
| e.g. WinRAR or WinZip handle extracting hard links incorrectly. |
| If you built Midipix yourself, the target directory is equivalent to the ${PREFIX} |
| configured in build.vars, which defaults to ${HOME}/midipix. |
| |
| At present, providing an interactive Midipix environment still requires the Cygwin |
| terminal emulator Mintty and a shell; this does not include pseudoterminals, which |
| are entirely handled by Midipix. Both can be installed via the 64-bit Cygwin setup |
| program at <https://www.cygwin.com/setup-x86_64.exe>. |
| |
| Once installed, launching a Midipix shell is accomplished by the `midipix.sh' shell |
| script provided in the target directory from within a Cygwin shell prompt in Mintty |
| and the target directory. This may either simply be done manually each time, or |
| automated by a shortcut. As shortcuts cannot be distributed, it can be created by |
| either: |
| * Opening (executing) the VBScript script in the target directory from within the |
| latter cscript.exe, providing the fully qualified pathname to Mintty, if it differs |
| from the default value of C:\cygwin64\bin\mintty.exe or |
| * manually creating a shortcut to Mintty with `Start in:' set to the target directory |
| and the following command line: |
| [ ... ]\mintty.exe -i /Cygwin-Terminal.ico -e sh midipix.sh, or |
| |
| References: |
| * Sun, 24 Apr 2016 09:04:08 +0000 [1] musl FAQ <http://www.musl-libc.org/faq.html> |
| |
| Linux distribution-related errata |
| ================================= |
| |
| Busybox based distributions need the gawk, gsed, and coreutils packages to build perl. |