Lucio Andrés Illanes Albornoz 7ff727
Obtaining and installing a Midipix distribution
Lucio Andrés Illanes Albornoz 7ff727
===============================================
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
A Midipix distribution consists of the following:
Lucio Andrés Illanes Albornoz cf57b4
* the native Midipix toolchain, consisting of perk, gcc, its dependencies,
Lucio Andrés Illanes Albornoz cf57b4
  and binutils,
Lucio Andrés Illanes Albornoz cf57b4
* musl, a lightweight, fast, simple, and free libc[1] used by Midipix,
Lucio Andrés Illanes Albornoz cf57b4
* the Midipix runtime components that bridge the gap between the libc and the
Lucio Andrés Illanes Albornoz cf57b4
  executive subsystems of all Windows NT-derived Windows OS starting with and
Lucio Andrés Illanes Albornoz cf57b4
  including Windows XP, and
Lucio Andrés Illanes Albornoz cf57b4
* a steadily increasing number of 3rd party open source packages, as expected in
Lucio Andrés Illanes Albornoz cf57b4
  any modern POSIX-compliant *nix environment, including GNU coreutils, shells,
Lucio Andrés Illanes Albornoz cf57b4
  libraries such as ncurses, libressl, as well as Perl and Python.
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Compressed Midipix distribution tarballs and, separately, source tarballs are,
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
at present, produced every four (4) hours UTC after each successful build and
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
subsequently signed. This process is fully automated by a portable Bourne shell
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
script; all of the above mentioned components are cross-compiled.
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Thus, the most hassle-free way to get started with Midipix is to simply download
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
the most recent distribution tarball and follow the instructions below. It is,
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
however, recommended to anyone intending to use Midipix as a development platform
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
to familiarise themselves with the build process. Other reasons to prefer building
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
a Midipix distribution yourself include integrating new 3rd party software or local
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
runtime component patches. At present, a full build from scratch takes about 30
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
(thirty) minutes to finish on an 8-core host with eight simultaneous make jobs,
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
minus the generation of the tarballs. The build script can be obtained from the
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
following GitHub repository: <https://github.com/lalbornoz/midipix_build>.
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
If you obtained a Midipix distribution tarball, extract it into a directory and
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
drive of your choice, henceforth referred to as target directory; the drive can
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
be a network drive. Do _not_ use anything but a true UNIX environment tar(1), as
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
e.g. WinRAR or WinZip handle extracting hard links incorrectly.
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
If you built Midipix yourself, the target directory is equivalent to the ${PREFIX}
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
configured in build.vars, which defaults to ${HOME}/midipix.
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
At present, providing an interactive Midipix environment still requires the Cygwin
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
terminal emulator Mintty and a shell; this does not include pseudoterminals, which
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
are entirely handled by Midipix. Both can be installed via the 64-bit Cygwin setup
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
program at <https://www.cygwin.com/setup-x86_64.exe>.
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Once installed, launching a Midipix shell is accomplished by the `midipix.sh' shell
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
script provided in the target directory from within a Cygwin shell prompt in Mintty
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
and the target directory. This may either simply be done manually each time, or
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
automated by a shortcut. As shortcuts cannot be distributed, it can be created by
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
either:
Lucio Andrés Illanes Albornoz cf57b4
* Opening (executing) the VBScript script in the target directory from within the
Lucio Andrés Illanes Albornoz cf57b4
  latter cscript.exe, providing the fully qualified pathname to Mintty, if it differs
Lucio Andrés Illanes Albornoz cf57b4
  from the default value of C:\cygwin64\bin\mintty.exe or
Lucio Andrés Illanes Albornoz cf57b4
* manually creating a shortcut to Mintty with `Start in:' set to the target directory
Lucio Andrés Illanes Albornoz cf57b4
  and the following command line:
Lucio Andrés Illanes Albornoz cf57b4
  [ ... ]\mintty.exe -i /Cygwin-Terminal.ico -e sh midipix.sh, or
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
References:
Lucio Andrés Illanes Albornoz cf57b4
* Sun, 24 Apr 2016 09:04:08 +0000 [1] musl FAQ <http://www.musl-libc.org/faq.html>
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Lucio Andrés Illanes Albornoz 7ff727
Linux distribution-related errata
Lucio Andrés Illanes Albornoz 7ff727
=================================
Lucio Andrés Illanes Albornoz (arab, vxp) a8abe3
Lucio Andrés Illanes Albornoz (arab, vxp) a8abe3
Busybox based distributions need the gawk, gsed, and coreutils packages to build perl.
Lucio Andrés Illanes Albornoz (arab, vxp) a8abe3
Lucio Andrés Illanes Albornoz 7ff727
Midipix status report
Lucio Andrés Illanes Albornoz 7ff727
=====================
Lucio Andrés Illanes Albornoz cf57b4
Lucio Andrés Illanes Albornoz cf57b4
Last update: Tue, 26 Apr 2016 10:16:16 +0000
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
The following build status codes are defined:
Lucio Andrés Illanes Albornoz cf57b4
* C -- Complete build w/ at least the default configuration,
Lucio Andrés Illanes Albornoz cf57b4
* B -- Broken, e.g. doesn't work at all or only minimally,
Lucio Andrés Illanes Albornoz cf57b4
* I -- Integrated (e.g. linked against) with other packages,
Lucio Andrés Illanes Albornoz cf57b4
* E -- Extensively tested and confirmed to work by multiple sources, possibly via a testsuite,
Lucio Andrés Illanes Albornoz cf57b4
* P -- Patches needed to build that haven't been committed upstream yet, and
Lucio Andrés Illanes Albornoz cf57b4
* U -- Update to latest stable version or HEAD pending.
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Lucio Andrés Illanes Albornoz cf57b4
| Component type      | Name                | Version           | Status | Comments                                                                     |
Lucio Andrés Illanes Albornoz cf57b4
| ------------------- | ------------------- | ----------------- | ------ | -----------------------------------------------------------------------------|
Lucio Andrés Illanes Albornoz cf57b4
| Host toolchain      | binutils            | 2.24.51           | C--EPU |
Lucio Andrés Illanes Albornoz cf57b4
| Host toolchain      | file                | 5.28              | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| Host toolchain      | gcc                 | 4.6.4             | ---EPU | Excludes libstdc++                                                           |
Lucio Andrés Illanes Albornoz cf57b4
| Host toolchain      | musl                | 1.1.12            | C-IEPU |
Lucio Andrés Illanes Albornoz cf57b4
| Host toolchain      | perk                | HEAD              | C-IE-- |
Lucio Andrés Illanes Albornoz cf57b4
| Host toolchain      | pkgconf             | 0.28              | C--E-- |
Lucio Andrés Illanes Albornoz cf57b4
| Host toolchain      | slibtool            | 0.5.7             | C--E-- |
Lucio Andrés Illanes Albornoz cf57b4
| Native toolchain    | binutils            | 2.24.51           | C--EPU |
Lucio Andrés Illanes Albornoz cf57b4
| Native toolchain    | gcc                 | 4.6.4             | ---EPU | Excludes libstdc++                                                           |
Lucio Andrés Illanes Albornoz cf57b4
| Native toolchain    | gmp                 | 5.1.3             | C-IEPU |
Lucio Andrés Illanes Albornoz cf57b4
| Native toolchain    | libelf              | 0.8.13            | C-IEP- |
Lucio Andrés Illanes Albornoz cf57b4
| Native toolchain    | mpc                 | 1.0.1             | C-IE-U |
Lucio Andrés Illanes Albornoz cf57b4
| Native toolchain    | mpfr                | 3.1.2             | C-IE-U |
Lucio Andrés Illanes Albornoz cf57b4
| Native toolchain    | musl                | 1.1.12            | C-IEPU |
Lucio Andrés Illanes Albornoz cf57b4
| Native toolchain    | perk                | HEAD              | C-IE-- |
Lucio Andrés Illanes Albornoz cf57b4
| Native toolchain    | pkgconf             | 0.28              | C-IE-- |
Lucio Andrés Illanes Albornoz cf57b4
| Runtime components  | dalist              | HEAD              | C-IE-- |
Lucio Andrés Illanes Albornoz cf57b4
| Runtime components  | ntapi               | HEAD              | C-IE-- |
Lucio Andrés Illanes Albornoz cf57b4
| Runtime components  | ntcon               | HEAD              | C-IE-- |
Lucio Andrés Illanes Albornoz cf57b4
| Runtime components  | ntctty              | HEAD              | C-IE-- |
Lucio Andrés Illanes Albornoz cf57b4
| Runtime components  | pemagine            | HEAD              | C-IE-- |
Lucio Andrés Illanes Albornoz cf57b4
| Runtime components  | psxscl              | HEAD              | C-IE-- | Excludes clone(2) and dlopen(3)                                              |
Lucio Andrés Illanes Albornoz cf57b4
| Runtime components  | psxtypes            | HEAD              | C-IE-- |
Lucio Andrés Illanes Albornoz cf57b4
| Runtime components  | ptycon              | HEAD              | C-IE-- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | bzip2               | 1.0.6             | C-IE-- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | curl                | 7.47.1            | C---P- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | expat               | 2.2.0             | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | gdbm                | 1.12              | C-I--- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | glib                | 2.46.2            | C-I-P- | Shared object not built                                                      |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | gzip                | 1.2.4             | C-IE-- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | inputproto          | 2.3.2             | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | kbproto             | 1.0.7             | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | libarchive          | 3.1.2             | C-I-P- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | libassuan           | 2.4.3             | C-I--- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | libevent            | 2.0.22-stable     | C-I--- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | libfetch            | 2.33              | C-I-P- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | libffi              | 3.2.1             | C-I-P- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | libfirm             | HEAD              | C-I-P- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | libgcrypt           | 1.7.3             | C-I--- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | libgpg_error        | 1.24              | C-I-P- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | libICE              | 1.0.9             | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | libksba             | 1.3.5             | C-I-P- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | libpipeline         | 1.4.1             | C-I--- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | libpthread-stubs    | 0.3               | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | libressl            | 2.2.6             | C-I-P- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | libSM               | 1.2.2             | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | libX11              | 1.6.3             | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | libXau              | 1.0.8             | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | libXaw              | 1.0.13            | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | libXext             | 1.3.3             | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | libxkbfile          | 1.0.9             | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | libXmu              | 1.1.2             | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | libXpm              | 3.5.11            | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | libXt               | 1.1.5             | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | libz                | 1.2.8.2015.05.20  | C-I--- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | lua                 | 5.3.3             | C---P- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | ncurses             | 6.0               | C-IEP- | ncurses, ncursestw, and ncursesw built                                       |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | npth                | 1.2               | C-I--- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | pcre                | 8.39              | C-I--- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | renderproto         | 0.11.1            | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | xcb                 | 1.12              | C----- | Needs pthreads / clone(2)                                                    |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | xcb-proto           | 1.12              | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | xextproto           | 7.3.0             | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | xproto              | 7.0.29            | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | Xrender             | 0.9.9             | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | xtrans              | 1.1               | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party libraries | xz                  | 5.2.2             | C-IE-- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | apk_tools           | 2.6.6             | C---P- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | bash                | 4.3               | C-I-P- | Linked against ncursesw                                                      |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | cmake               | 3.6.3             | C-I--- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | coreutils           | 8.23              | C---P- | Needs extensive testing                                                      |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | cparser             | HEAD              | C-I-P- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | cron                | HEAD              | C---P- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | dash                | 0.5.8             | C----- | Provides /bin/sh                                                             |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | diffutils           | 3.3               | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | dos2unix            | 7.3.4             | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | ed                  | 1.13              | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | file                | 5.28              | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | findutils           | 4.5.14            | C---P- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | gawk                | 4.1.3             | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | git                 | 2.7.1             | C----- | Needs clone(2)                                                               |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | gnupg               | 2.1.15            | C----- | Needs /dev/[u]random, extensive testing                                      |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | grep                | 2.22              | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | hexcurse            | 1.60.0            | C-I-P- | Linked against ncursesw                                                      |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | htop                | 2.0.1             | C-I-P- | Linked against ncursesw                                                      |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | inetutils           | 1.9.4             | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | infounzip           | 6.0               | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | infozip             | 3.0               | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | irssi               | 0.8.18            | CB--P- | DNS and /EXEC require clone(2) due to pthreads (see psxscl;) no Perl support |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | john                | 1.8.0             | C---P- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | less                | 481               | C-I--- | Linked against ncursesw                                                      |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | lynx                | 2.8.8rel2         | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | make                | 3.81              | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | man_db              | 2.7.5             | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | mc                  | 4.8.17            | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | mksh                | R52c              | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | nano                | 2.5.3             | C-I--- | Linked against ncursesw                                                      |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | netcat              | 110               | C---P- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | openssh             | 7.1p2             | C-I--- | Linked against libressl                                                      |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | p7zip               | HEAD              | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | pacman              | 5.0.1             | C---P- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | patch               | 2.7               | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | perl                | 5.22.1            | ------ | No dlopen(3) (see psxscl,) modules missing                                   |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | procps-ng           | 3.3.12            | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | python              | 3.5.1             | -B--P- | No dlopen(3) (see psxscl,) modules missing                                   |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | rsync               | 3.1.2             | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | rxvt-unicode        | 9.22              | C-I--- | No Perl support                                                              |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | sed                 | 4.2.2             | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | tar                 | 1.28              | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | tcsh                | 6.19.00           | C-I-P- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | the_silver_searcher | 0.32.0            | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | tmux                | 2.2               | C---P- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | util_linux          | 2.27.1            | C----- | Needs extensive testing                                                      |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | vim                 | 7.4.1952          | C----- | Provides /bin/vi                                                             |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | weechat             | 1.6               | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | which               | 2.21              | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | whois               | 5.2.12            | C----- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | xeyes               | 1.1.1             | C-I--- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | xwd                 | 1.0.6             | C-I--- |
Lucio Andrés Illanes Albornoz cf57b4
| 3rd party packages  | zsh                 | 5.2               | C-I--- | Linked against ncursesw                                                      |