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) 70467c
runtime component patches. At present, a full build from scratch, excluding tarballs,
Lucio Andrés Illanes Albornoz (arab, vxp) 70467c
takes between 1 and 2 hours to finish on an 8-core Xeon 3.5 GHz host.
Lucio Andrés Illanes Albornoz (arab, vxp) 70467c
The build script can be obtained from the 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) ef4cea
be a network drive.
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) ef4cea
Previously, this repository contained a shell script for usage within Cygwin
Lucio Andrés Illanes Albornoz (arab, vxp) ef4cea
and a VBS script in order to obtain a Midipix shell environment. These have been
Lucio Andrés Illanes Albornoz (arab, vxp) ef4cea
replaced with <https://git.midipix.org/cgit.cgi/mpackage/plain/distro/bash.cmd>
Lucio Andrés Illanes Albornoz (arab, vxp) 46a02f
from the Midipix distro skeleton[2]. In that respect, and as a general rule,
Lucio Andrés Illanes Albornoz (arab, vxp) 46a02f
midipix_build provides all the bits needed for (cross-)building the framework
Lucio Andrés Illanes Albornoz (arab, vxp) 46a02f
along with the entire collection of third-party software packages, whereas
Lucio Andrés Illanes Albornoz (arab, vxp) 46a02f
mpackage's task is to create a live execution environment (midipix-on-the-fly,
Lucio Andrés Illanes Albornoz (arab, vxp) 46a02f
or mxfly), optionally including with it a set of tarballs for the installation
Lucio Andrés Illanes Albornoz (arab, vxp) 46a02f
of a custom, midipix-based distribution.
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) ef4cea
* Mon, 14 May 2018 17:15:26 +0000 [2] <https://git.midipix.org/cgit.cgi/mpackage/plain/README>
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.