.gitignore
004.psxstub.vars
007.musl.full.build
009.gcc.full.build
010.pkgconf_host.vars
318.ncursesw.vars
434.perl.vars
436.python3.vars
997.strip.build
998.midipix_sh.build
999.tarballs.build
Create `Midipix mintty shell' shortcut.vbs
LICENCE
Python-3.5.1.local.patch
README
TESTED_ON
apk-tools-2.6.6.local.patch
bash-4.3.local.patch
binutils-2.24.51.local.patch
build.subr
build.usage
build.vars
config.cache
config.sub
coreutils-8.23.local.patch
curl-7.47.1.local.patch
findutils-4.5.14.local.patch
glib-2.46.2.local.patch
gmp-5.1.3.local.patch
gnupg-2.1.15.local.patch
hexcurse.local.patch
htop-2.0.1.local.patch
irssi-0.8.18.local.patch
john-1.8.0.local.patch
libarchive-3.1.2.local.patch
libassuan-2.4.3.local.patch
libelf-0.8.13.local.patch
libevent-2.0.22-stable.local.patch
libfetch-2.33.local.patch
libffi-3.2.1.local.patch
libgcrypt-1.7.3.local.patch
libgpg-error-1.24.local.patch
libksba-1.3.5.local.patch
libressl-2.2.6.local.patch
lua-5.3.3.local.patch
mc-4.8.17.local.patch
nc110.local.patch
ncurses-6.0.local.patch
pacman-5.0.1.local.patch
pkg-cron.git.local.patch
pkg.build
tcsh-6.19.00.local.patch
tmux-2.2.local.patch
unzip60.local.patch
vim-7.4.1952.local.patch
weechat-1.6.local.patch
zip30.local.patch
build.sh
midipix.sh
midipix_check.sh
000.slibtool_host.build
001.perk_host.build
002.binutils_host.build
003.gcc.stage1.build
004.psxstub.build
005.musl.no-complex.build
006.gcc.runtime.build
008.gcc.libstdc++-v3.build
010.pkgconf_host.build
011.file_host.build
100.slibtool.build
101.perk.build
102.pkgconf.build
103.gmp.build
104.mpfr.build
105.mpc.build
106.libelf.build
107.binutils.build
108.musl.native.build
109.gcc.native.build
200.psxtypes.build
201.pemagine.build
202.dalist.build
203.ntcon.build
204.ntapi.build
205.psxscl.build
206.psxscl_strace.build
207.ntctty.build
208.ptycon.build
300.libz.build
301.libffi.build
302.gdbm.build
303.pcre.build
304.glib.build
305.gzip.build
306.libarchive.build
307.libpipeline.build
308.libressl.build
309.libevent.build
310.libfetch.build
311.libgpg_error.build
312.libassuan.build
313.libgcrypt.build
314.libksba.build
315.lua.build
316.ncurses.build
317.ncursestw.build
318.ncursesw.build
319.npth.build
320.xz.build
350.inputproto.build
351.kbproto.build
352.xcb_proto.build
353.xproto.build
354.libXau.build
355.libpthread_stubs.build
356.xcb.build
357.xextproto.build
358.xtrans.build
359.libX11.build
360.libXext.build
361.libICE.build
362.libSM.build
363.libXt.build
364.libXmu.build
365.renderproto.build
366.Xrender.build
367.libXpm.build
368.libXaw.build
369.libxkbfile.build
400.apk_tools.build
401.bash.build
402.bzip2.build
403.coreutils.build
404.cron.build
405.curl.build
406.dash.build
407.diffutils.build
408.dos2unix.build
409.ed.build
410.file.build
411.findutils.build
412.gawk.build
413.git.build
414.gnupg.build
415.grep.build
416.hexcurse.build
417.htop.build
418.inetutils.build
419.infounzip.build
420.infozip.build
421.irssi.build
422.john.build
423.less.build
424.lynx.build
425.man_db.build
426.make.build
427.mc.build
428.mksh.build
429.nano.build
430.netcat.build
431.openssh.build
432.pacman.build
433.patch.build
434.perl.build
435.procps_ng.build
436.python3.build
437.rsync.build
438.rxvt_unicode.build
439.sed.build
440.tar.build
441.tcsh.build
442.the_silver_searcher.build
443.tmux.build
444.util_linux.build
445.vim.build
446.weechat.build
447.which.build
448.whois.build
449.xeyes.build
450.xwd.build
451.zsh.build
README
                  Obtaining and installing a Midipix distribution
                   Last update: Sun, 24 Apr 2016 09:42:40 +0000

A Midipix distribution consists of the following:
a) the native Midipix toolchain, consisting of perk, gcc, its dependencies,
   and binutils,
b) musl, a lightweight, fast, simple, and free libc[1] used by Midipix,
c) 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
d) 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:
a) 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
b) 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.

                  Midipix status report
                   Last update: Tue, 26 Apr 2016 10:16:16 +0000

The following build status codes are defined:
C -- Complete build w/ at least the default configuration,
B -- Broken, e.g. doesn't work at all or only minimally,
I -- Integrated (e.g. linked against) with other packages,
E -- Extensively tested and confirmed to work by multiple sources, possibly via a testsuite,
P -- Patches needed to build that haven't been committed upstream yet, and
U -- Update to latest stable version or HEAD pending.

Component type      Name                Version          Status  Comments
Host toolchain      binutils            2.24.51          C--EPU
Host toolchain      file                5.28             C-----
Host toolchain      gcc                 4.6.4            ---EPU  Excludes libstdc++
Host toolchain      musl                1.1.12           C-IEPU
Host toolchain      perk                HEAD             C-IE--
Host toolchain      pkgconf             0.28             C--E--
Host toolchain      slibtool            0.5.7            C--E--
Native toolchain    binutils            2.24.51          C--EPU
Native toolchain    gcc                 4.6.4            ---EPU  Excludes libstdc++
Native toolchain    gmp                 5.1.3            C-IEPU
Native toolchain    libelf              0.8.13           C-IEP-
Native toolchain    mpc                 1.0.1            C-IE-U
Native toolchain    mpfr                3.1.2            C-IE-U
Native toolchain    musl                1.1.12           C-IEPU
Native toolchain    perk                HEAD             C-IE--
Native toolchain    pkgconf             0.28             C-IE--
Runtime components  dalist              HEAD             C-IE--
Runtime components  ntapi               HEAD             C-IE--
Runtime components  ntcon               HEAD             C-IE--
Runtime components  ntctty              HEAD             C-IE--
Runtime components  pemagine            HEAD             C-IE--
Runtime components  psxscl              HEAD             C-IE--  Excludes clone(2) and dlopen(3)
Runtime components  psxtypes            HEAD             C-IE--
Runtime components  ptycon              HEAD             C-IE--
3rd party libraries gdbm                1.12             C-I---
3rd party libraries glib                2.46.2           C-I-P-  Shared object not built
3rd party libraries gzip                1.2.4            C-IE--
3rd party libraries libarchive          3.1.2            C-I-P-
3rd party libraries libassuan           2.4.3            C-I---
3rd party libraries libevent            2.0.22-stable    C-I---
3rd party libraries libfetch            2.33             C-I-P-
3rd party libraries libffi              3.2.1            C-I-P-
3rd party libraries libgcrypt           1.7.3            C-I---
3rd party libraries libgpg_error        1.24             C-I-P-
3rd party libraries libksba             1.3.5            C-I-P-
3rd party libraries libpipeline         1.4.1            C-I---
3rd party libraries libressl            2.2.6            C-I-P-
3rd party libraries libz                1.2.8.2015.05.20 C-I---
3rd party libraries lua                 5.3.3            C---P-
3rd party libraries ncurses             6.0              C-IEP-  ncurses, ncursestw, and ncursesw built
3rd party libraries npth                1.2              C-I---
3rd party libraries pcre                8.39             C-I---
3rd party libraries xz                  5.2.2            C-IE--
3rd party X11 libs  inputproto          2.3.2            C-----
3rd party X11 libs  kbproto             1.0.7            C-----
3rd party X11 libs  libICE              1.0.9            C-----
3rd party X11 libs  libSM               1.2.2            C-----
3rd party X11 libs  libX11              1.6.3            C-----
3rd party X11 libs  libXau              1.0.8            C-----
3rd party X11 libs  libXaw              1.0.13           C-----
3rd party X11 libs  libXext             1.3.3            C-----
3rd party X11 libs  libXmu              1.1.2            C-----
3rd party X11 libs  libXpm              3.5.11           C-----
3rd party X11 libs  libXt               1.1.5            C-----
3rd party X11 libs  libpthread-stubs    0.3              C-----
3rd party X11 libs  libxkbfile          1.0.9            C-----
3rd party X11 libs  renderproto         0.11.1           C-----
3rd party X11 libs  xcb                 1.12             C-----  Needs pthreads / clone(2)
3rd party X11 libs  xcb-proto           1.12             C-----
3rd party X11 libs  xextproto           7.3.0            C-----
3rd party X11 libs  xproto              7.0.29           C-----
3rd party X11 libs  xtrans              1.1              C-----
3rd party X11 libs  Xrender             0.9.9            C-----
3rd party packages  apk_tools           2.6.6            C---P-
3rd party packages  bash                4.3              C-I-P-  Linked against ncursesw
3rd party packages  bzip2               1.0.6            C-IE--
3rd party packages  coreutils           8.23             C---P-  Needs extensive testing
3rd party packages  cron                HEAD             C---P-
3rd party packages  curl                7.47.1           C---P-
3rd party packages  dash                0.5.8            C-----  Provides /bin/sh
3rd party packages  diffutils           3.3              C-----
3rd party packages  dos2unix            7.3.4            C-----
3rd party packages  ed                  1.13             C-----
3rd party packages  file                5.28             C-----
3rd party packages  findutils           4.5.14           C---P-
3rd party packages  gawk                4.1.3            C-----
3rd party packages  git                 2.7.1            C-----  Needs clone(2)
3rd party packages  gnupg               2.1.15           C-----  Needs /dev/[u]random, extensive testing
3rd party packages  grep                2.22             C-----
3rd party packages  hexcurse            1.60.0           C-I-P-  Linked against ncursesw
3rd party packages  htop                2.0.1            C-I-P-  Linked against ncursesw
3rd party packages  inetutils           1.9.4            C-----
3rd party packages  infounzip           6.0              C-----
3rd party packages  infozip             3.0              C-----
3rd party packages  irssi               0.8.18           CB--P-  DNS and /EXEC require clone(2) due to pthreads (see psxscl;) no Perl support
3rd party packages  john                1.8.0            C---P-
3rd party packages  less                481              C-I---  Linked against ncursesw
3rd party packages  lynx                2.8.8rel2        C-----
3rd party packages  make                3.81             C-----
3rd party packages  man_db              2.7.5            C-----
3rd party packages  mc                  4.8.17           C-----
3rd party packages  mksh                R52c             C-----
3rd party packages  nano                2.5.3            C-I---  Linked against ncursesw
3rd party packages  netcat              110              C---P-
3rd party packages  openssh             7.1p2            C-I---  Linked against libressl
3rd party packages  pacman              5.0.1            C---P-
3rd party packages  patch               2.7              C-----
3rd party packages  perl                5.22.1           ------  No dlopen(3) (see psxscl,) modules missing
3rd party packages  procps-ng           3.3.12           C-----
3rd party packages  python              3.5.1            -B--P-  No dlopen(3) (see psxscl,) modules missing
3rd party packages  rsync               3.1.2            C-----
3rd party packages  rxvt-unicode        9.22             C-I---  No Perl support
3rd party packages  sed                 4.2.2            C-----
3rd party packages  tar                 1.28             C-----
3rd party packages  tcsh                6.19.00          C-I-P-
3rd party packages  the silver searcher 0.32.0           C-----
3rd party packages  tmux                2.2              C---P-
3rd party packages  util_linux          2.27.1           C-----  Needs extensive testing
3rd party packages  vim                 7.4.1952         C-----  Provides /bin/vi
3rd party packages  weechat             1.6              C-----
3rd party packages  which               2.21             C-----
3rd party packages  whois               5.2.12           C-----
3rd party packages  xeyes               1.1.1            C-I---
3rd party packages  xwd                 1.0.6            C-I---
3rd party packages  zsh                 5.2              C-I---  Linked against ncursesw

                  Midipix roadmap/TODO list
                   Last update: Fri, 03 Jun 2016 12:47:13 +0000

midipix alpha release: the final stretch
========================================

my.own.tasks@midipix.org
------------------------

* ofd tables: additional bucket allocation as needed.
* `ls -R //c`: check for the cause of individual failures.
  (might be related to the above ofd bucket allocation).
* integrate clone and the initial ldso implementation.
* integrate the signal queue, check signal implementation for
  semantic completion, especially in the context of multi-threaded
  applications.
* implement /dev/random and /dev/urandom, as well as other virtual
  folders needed by core applications.
* implement the scheduler functions.
* implement (possibly as stubs) missing system calls, fix existing
  system calls as needed by the core applications.
* toolchain: provided the few interfaces missing for C++ support.
* porting of mintty.


porting and other release-related tasks
---------------------------------------

* testing of ncurses.
* testing of bash and dash when built with ncurses.
* testing of all of the coreutils, seeing which ones fail due to
  a missing virtual file or folder, which ones fail due to a missing
  system call (crash), and which ones fail due to an incomplete or
  incorrect system call.
* porting of gdb.

vim:expandtab sw=8 ts=8 tw=0 nowrap