Dorion Mode - A blog by Robinson Dorion.

March 11, 2020

Enumerating TMSR OS Goodness

Filed under: Uncategorized — Robinson Dorion @ 21:58

TMSR OS is being made to primarily serve its implicit clients : TRB, a replacement ircd, A-M-P, Eulora, TMSR-PGP and a collection of coreutils. Every piece of code on the system shall be a vpatch in the TMSR OS vtree.

This is a very early working document intended to start the process of enumerating the complete set of software required for TMSR OS. It's known to be incomplete on some levels and there are items on the first draft that will be struck out, but it's unclear to me at present whether they should be struck off immediately or over time. The idea is to drill down on what is actually needed to support the clients and stabilize the list over time through discussion.

The system first needs to be built, which will initially take place on some non-TMSR OS system, e.g. Gales Linux, where the TMSR OS vpatches are installed, pressed and the result is compiled and packaged into installable media for the target machine. For the build process to be, I think an adaptation of Gales' cross-compilation approach has merit.

For this document, I used Gales Linux as a starting point since, though it doesn't use V to control the sources, its aims are similar to TMSR OS. Here's the list :

  1. V
  2. Ada
  3. Kernel : Linux 2.6.32
  4. C compiler : GCC 4.4.7, 4.7.4 and 4.9.4 are up for consideration, 4.7.4 can reportedly be built with tcc
    1. C, C++ and Ada are the languages that will be kept. References : 1, 2.
  5. C library : musl static for the base C library. It's unclear at present if graphics stack can be statically built, may need to be structured to extend system to support dynamic linking for deployments that use graphics.
  6. The Real Bitcoin
    1. openssl-1.0.1g
    2. db-4.8.30
    3. boost-1.52.0
  7. Gales Bitcoin Wallet
    1. Gales Scheme
    2. Python
    3. SQLite
  8. ircd : to be determined
    1. yrc is an IRC client that was was genesis'd. Python based for now.
  9. A-M-P
    1. Apache 2.4.16
    2. MySQL 5.5.60
    3. PHP 4.4.8 or 5.6
  10. TMSR-PGP
    1. Very early sketch and discussion entry points : 1 , 2
  11. Coreutils :
    1. Busybox (Gales uses 1.24.2)
    2. Items potentially preferred to what busybox provides, needs to be researched and discussed:
      1. Gales init vs bb's init
      2. daemontools vs bb's runit
      3. MAKEDEV vs bb's mdev
      4. Gales pdksh vs bb's ash or perhaps something else
    3. binutils (Gales uses 2.24)
    4. curl, Busybox provides wget, but Eulora appears to require curl
    5. e2fsprogs (Gales uses 1.43.4)
    6. gmp (Gales uses 6.0.0)
    7. make (3.80+ for gcc 4.7.4, Gales uses 4.2.1)
    8. manpages, man-pages-posix, mandoc
    9. mpc (Gales uses 1.0.3)
    10. mpfr (Gales uses 3.1.5
    11. acpica, required by Coreboot
    12. xc3sprog, JTAG hardware debug
  12. Assorted Build Dependencies (i)
    1. autoconf, required by Gales builds of bc, bison, flex, php56, Python, readline
    2. automake, required by Gales builds of bc, bison, flex
    3. bc, required by Linux
    4. bison, required by acpica
    5. bzip2, required by Gales Python build
    6. flex, required by acpica
    7. m4, required by autoconf
    8. ncurses, required by : BusyBox, Linux and Coreboot config, Gales build of Python, readline
    9. perl, required by automake and autoconf
    10. readline, required by : Gales builds of Python and SQLite
    11. zlib, required by Gales Python and SQLite builds and Crystal Space
  13. Eulora client dependencies provided by Diana Coman (archived). Note X11 is required, but isn't included on first iteration.
    1. Crystal Space
    2. Cal3d
    3. Cg - NVIDIA Cg Toolkit
    4. mesa-libGL-devel, needed for X11, opengl, cg and linux-joystick
    5. lib3ds (noted as possibly not needed ; I'm unsure where to find sources as google 404s)
    6. libvorbis
    7. cairo, has deps (devel mainly): freetype, libpng, libxrender, pixman, fontconfig
    8. bullet
    9. speex
    10. wxBase, noted to have NO effect by itself
    11. theoradec
    12. gtk, wxwidgets, noted to have 16 dependencies!
    13. openal
    14. libjpeg-turbo, note : and it is NEEDED because most textures in examples and walktest are .jpg
    15. alsa note : and it is NEEDED for sound apparently, at least for walktest
  14. BIOS :
    1. Coreboot
    2. SeaBIOS
    3. ich9deblob
    4. flashrom, requires libpci-access, libusb, libusb-compat, libftdi, which requires cmake
  15. Bootloader : open question
  1. autoconf and automake are two examples of dependencies that ought to be cut out. The question is then, when ? Should they be cut out from the beginning or are they tolerable to start and we'll cut out as we go ? Though I've de-autoconf'd packages before, I don't know how hard it will be for these, but I lean towards the former. Rip them out of the ~6 build systems they're present and no autoconf, automake, perl or m4 needed. [^]

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Dorion Mode is proudly powered by MP-WP. Copyright Robinson Dorion