Blame README

Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
                  Obtaining and installing a Midipix distribution
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
                   Last update: Sun, 24 Apr 2016 09:42:40 +0000
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 (arab, vxp) d3b354
a) the native Midipix toolchain, consisting of perk, gcc, its dependencies,
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
   and binutils,
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
b) musl, a lightweight, fast, simple, and free libc[1] used by Midipix,
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
c) the Midipix runtime components that bridge the gap between the libc and the
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
   executive subsystems of all Windows NT-derived Windows OS starting with and
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
   including Windows XP, and
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
d) a steadily increasing number of 3rd party open source packages, as expected in
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
   any modern POSIX-compliant *nix environment, including GNU coreutils, shells,
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
   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 (arab, vxp) d3b354
a) Opening (executing) the VBScript script in the target directory from within the
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
   latter cscript.exe, providing the fully qualified pathname to Mintty, if it differs
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
   from the default value of C:\cygwin64\bin\mintty.exe or
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
b) manually creating a shortcut to Mintty with `Start in:' set to the target directory
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
   and the following command line:
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
   [ ... ]\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 (arab, vxp) d3b354
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 (arab, vxp) d3b354
                  Midipix status report
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
                   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 (arab, vxp) d3b354
C -- Complete build w/ at least the default configuration,
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
B -- Broken, e.g. doesn't work at all or only minimally,
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
I -- Integrated (e.g. linked against) with other packages,
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
E -- Extensively tested and confirmed to work by multiple sources, possibly via a testsuite,
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
P -- Patches needed to build that haven't been committed upstream yet, and
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
U -- Update to latest stable version or HEAD pending.
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Component type      Name        Version           Status  Comments
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Host toolchain      binutils    2.24.51           C--EPU
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Host toolchain      gcc         4.6.4             ---EPU  Excludes libstdc++
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Host toolchain      musl        1.1.12            C-IEPU
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
Host toolchain      pkgconf     0.28              C--E--
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
Host toolchain      slibtool    0.5.7             C--E--
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Native toolchain    binutils    2.24.51           C--EPU
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Native toolchain    gcc         4.6.4             ---EPU  Excludes libstdc++
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Native toolchain    gmp         5.1.3             C-IEPU
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Native toolchain    libelf      0.8.13            C-IEP-
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
Native toolchain    mpc         1.0.1             C-IE-U
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
Native toolchain    mpfr        3.1.2             C-IE-U
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Native toolchain    musl        1.1.12            C-IEPU
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Native toolchain    perk        HEAD              C-IE--
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Runtime components  dalist      HEAD              C-IE--
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Runtime components  ntapi       HEAD              C-IE--
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Runtime components  ntcon       HEAD              C-IE--
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Runtime components  ntctty      HEAD              C-IE--
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Runtime components  pemagine    HEAD              C-IE--
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Runtime components  psxscl      HEAD              C-IE--  Excludes clone(2) and dlopen(3)
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Runtime components  psxtypes    HEAD              C-IE--
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party libraries gdbm        1.12              C-I---
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party libraries glib        2.46.2            C-I-P-  Shared object not built
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party libraries gzip        1.2.4             C-I---
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party libraries libarchive  3.1.2             C-I-P-
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party libraries libevent    2.0.22-stable     C-I---
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party libraries libfetch    2.33              C-I-P-
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party libraries libffi      3.2.1             C-I-P-
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party libraries libpipeline 1.4.1             C-I---
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party libraries libressl    2.2.6             C-I-P-
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party libraries libz        1.2.8.2015.05.20  C-I---
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party libraries ncurses     6.0               C-IEP-  ncurses, ncursestw, and ncursesw built
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party libraries pcre        8.39              C-I---
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party libraries pkgconf     0.28              C-IE--
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party libraries xz          5.2.2             C-I---
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party packages  ag          0.32.0            C-----
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
3rd party packages  apk_tools   2.6.6             C---P-
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
3rd party packages  bash        4.3               C-I-P-  Linked against ncursesw
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
3rd party packages  bzip2       1.0.6             C-----
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
3rd party packages  coreutils   8.23              C---P-  Needs extensive testing
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
3rd party packages  curl        7.47.1            C---P-
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party packages  dash        0.5.8             C-----  Provides /bin/sh
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party packages  diffutils   3.3               C-----
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
3rd party packages  findutils   4.5.14            C---P-
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party packages  gawk        4.1.3             C-----
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
3rd party packages  git         2.7.1             C-----
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party packages  grep        2.22              C-----
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
3rd party packages  hexcurse    1.60.0            C-I-P-  Linked against ncursesw
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party packages  inetutils   1.9.4             C-----
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
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 (arab, vxp) d3b354
3rd party packages  less        481               C-I---  Linked against ncursesw
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party packages  lua         5.3.3             C---P-
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party packages  lynx        2.8.8rel2         C-----
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party packages  make        3.81              C-----
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party packages  man_db      2.7.5             C-----
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party packages  mc          4.8.17            C-----
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party packages  mksh        R52c              C-----
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party packages  nano        2.5.3             C-I---  Linked against ncursesw
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party packages  netcat      110               C-----
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party packages  openssh     7.1p2             C-I---  Linked against libressl
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party packages  pacman      5.0.1             C---P-
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party packages  patch       2.7               C-----
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party packages  perl        5.22.1            ------  No dlopen(3) (see psxscl,) modules missing
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party packages  pkg-cron    HEAD              C-----
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
3rd party packages  python      3.5.1             -B--P-  No dlopen(3) (see psxscl,) modules missing
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party packages  rsync       3.1.2             C-----
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party packages  sed         4.2.2             C-----
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party packages  tar         1.28              C-----
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
3rd party packages  tcsh        6.19.00           C-I-P-
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party packages  tmux        2.2               C---P-
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party packages  util_linux  2.27.1            C-----  Needs extensive testing
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party packages  vim         7.4.1952          C-----  Provides /bin/vi
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
3rd party packages  which       2.21              C-----
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
3rd party packages  zsh         5.2               C-I---  Linked against ncursesw
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
                  Midipix roadmap/TODO list
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
                   Last update: Fri, 03 Jun 2016 12:47:13 +0000
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
midipix alpha release: the final stretch
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
========================================
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
my.own.tasks@midipix.org
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
------------------------
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
* ofd tables: additional bucket allocation as needed.
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
* `ls -R //c`: check for the cause of individual failures.
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
  (might be related to the above ofd bucket allocation).
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
* integrate clone and the initial ldso implementation.
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
* integrate the signal queue, check signal implementation for
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
  semantic completion, especially in the context of multi-threaded
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
  applications.
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
* implement /dev/random and /dev/urandom, as well as other virtual
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
  folders needed by core applications.
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
* implement the scheduler functions.
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
* implement (possibly as stubs) missing system calls, fix existing
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
  system calls as needed by the core applications.
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
* toolchain: provided the few interfaces missing for C++ support.
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
* porting of mintty.
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
porting and other release-related tasks
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
---------------------------------------
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
* testing of ncurses.
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
* testing of bash and dash when built with ncurses.
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
* testing of all of the coreutils, seeing which ones fail due to
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
  a missing virtual file or folder, which ones fail due to a missing
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
  system call (crash), and which ones fail due to an incomplete or
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
  incorrect system call.
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
* porting of gdb.
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
Lucio Andrés Illanes Albornoz (arab, vxp) d3b354
vim:expandtab sw=8 ts=8 tw=0 nowrap