MidgardOS Developer Documentation

A website documenting creating the build root for MidgardOS


MidgardOS - Core OS Build Documentation

Navigation    
  HOME Prerequisites »

Right now, MidgardOS is manually built. Eventually, automation will be put in place to create container images that will be used to drive builds of RPMs for the OS. For now, this documentation, heavily inspired by the Cross-LFS and LFS project, will have to suffice.

Acknowledgements

Acknowledgements

Table of Contents

Preface

  1. Pre-requisites
  2. Host System Requirements
  3. Structure and Errata

Preparing to Build the Core OS Build Root

  1. Overview
  2. Creating the New Partitions
  3. Format the New Partitions, Create Mount Points, and Mount the New Filesystems
  4. Create OS Directories and Symbolic Links
  5. Creating a Build User
  6. Setting up Environment variables
  7. Ignoring Software Test Suites

Building the Cross-compiler Toolchain

  1. Overview
  2. Linux Headers
  3. Cross-compiled GNU Binutils
  4. Cross-compiled GNU GCC
  5. GNU GLibC 64-bit
  6. GNU GLibC 32-bit
  7. Cross-compiled LibStdC++ From GNU GCC

Temporary Tools

  1. Overview
  2. GNU M4
  3. NCurses TIC
  4. NCurses 64-bit
  5. NCurses 32-bit
  6. GNU Bash
  7. GNU Coreutils
  8. GNU Diffutils
  9. File
  10. GNU Findutils
  11. GNU Awk
  12. GNU Grep
  13. GNU Gzip
  14. GNU Make
  15. GNU Patch
  16. GNU Sed
  17. GNU Tar
  18. Xz
  19. GNU Binutils - pass 2
  20. GNU GCC - pass 2

Entering the Chroot and More Temporary Tools

  1. Rationale
  2. Change Ownerships of Files and Directories
  3. Mounting Virtual Kernel Filesystems
  4. Entering the Chroot
  5. Creating Essential Files and Symbolic Links
  6. Validating the C and C++ Compilers
  7. Hostname
  8. GNU Gettext
  9. GNU Bison
  10. Perl
  11. Python 3.13
  12. GNU Texinfo
  13. Util-Linux 64-bit
  14. Util-Linux 32-bit
  15. Clean-up and Archival

Building the Base System Tools

  1. Overview
  2. Man Pages
  3. IANA Etc Files
  4. GNU GLibC 64-bit
  5. GNU GLibC 32-bit
  6. ZLib 64-bit
  7. ZLib 32-bit
  8. BZip2 64-bit
  9. BZip2 32-bit
  10. XZ 64-bit
  11. XZ 32-bit
  12. Lz4 64-bit
  13. Lz4 32-bit
  14. ZStd 64-bit
  15. ZStd 32-bit
  16. GNU libunistring 64-bit
  17. GNU libunistring 32-bit
  18. File 64-bit
  19. File 32-bit
  20. GNU Readline 64-bit
  21. GNU Readline 32-bit
  22. PCRE2 64-bit
  23. PCRE2 32-bit
  24. GNU M4
  25. GNU Bc
  26. Flex 64-bit
  27. Flex 32-bit
  28. TCL
  29. Expect
  30. DejaGNU
  31. PkgConf
  32. GNU Binutils
  33. GNU GMP 64-bit
  34. GNU GMP 32-bit
  35. GNU MPFR 64-bit
  36. GNU MPFR 32-bit
  37. GNU MPC 64-bit
  38. GNU MPC 32-bit
  39. ISL 64-bit
  40. ISL 32-bit
  41. GNU LibIDN2 64-bit
  42. GNU LibIDN2 32-bit
  43. Attr 64-bit
  44. Attr 32-bit
  45. ACL 64-bit
  46. ACL 32-bit
  47. libcap2 64-bit
  48. libcap2 32-bit
  49. libxcrypt 64-bit
  50. libxcrypt 32-bit
  51. libcap-ng 64-bit
  52. libcap-ng 32-bit
  53. libtirpc 64-bit
  54. libtirpc 32-bit
  55. libnsl2 64-bit
  56. libnsl2 32-bit
  57. tcp_wrappers 64-bit
  58. tcp_wrappers 32-bit
  59. GNU Autoconf
  60. GNU Libtool 64-bit
  61. GNU Libtool 32-bit
  62. GNU Automake
  63. Linux Audit Framework 64-bit
  64. Linux Audit Framework 32-bit
  65. RPCSVC Proto
  66. Shadow 64-bit - pass 1: Without PAM
  67. Shadow 32-bit - pass 1: Without PAM
  68. GNU Compiler Collection
  69. NCurses 64-bit
  70. NCurses 32-bit
  71. GNU Sed
  72. PSMisc
  73. GNU Gettext 64-bit
  74. GNU Gettext 32-bit
  75. GNU Bison
  76. GNU Grep
  77. GNU Bash
  78. GNU GDBM 64-bit
  79. GNU GDBM 32-bit
  80. GNU GPerf
  81. Expat 64-bit
  82. Expat 32-bit
  83. Net Tools
  84. Traceroute
  85. Hostname
  86. GNU InetUtils
  87. GNU Less
  88. Perl
  89. Perl module XML::Parser
  90. IntlTool
  91. OpenSSL v3 64-bit
  92. OpenSSL v3 32-bit
  93. ElfUtils 64-bit
  94. ElfUtils 32-bit
  95. LibFFI 64-bit
  96. LibFFI 32-bit
  97. 7zip CLI
  98. SQLite3 64-bit
  99. SQLite3 32-bit
  100. Python 3.13
  101. Python module Flit-Core
  102. Python module Packaging
  103. Python module Wheel
  104. Python module Setuptools
  105. Ninja
  106. Meson
  107. IP Utils
  108. CUnit 64-bit
  109. CUnit 32-bit
  110. LibSEPol 64-bit
  111. LibSEPol 32-bit
  112. LibSELinux 64-bit
  113. LibSELinux 32-bit
  114. LibSEManage 64-bit
  115. LibSEManage 32-bit
  116. CheckPolicy
  117. GNU LibGPG-Error 64-bit
  118. GNU LibGPG-Error 32-bit
  119. GNU LibGCrypt 64-bit
  120. GNU LibGCrypt 32-bit
  121. GNU LibKSBA 64-bit
  122. GNU LibKSBA 32-bit
  123. GNU LibAssuan 64-bit
  124. GNU LibAssuan 32-bit
  125. GNU nPth 64-bit
  126. GNU nPth 32-bit
  127. GNU Nettle 64-bit
  128. GNU Nettle 32-bit
  129. GNU Libtasn1 64-bit
  130. GNU Libtasn1 32-bit
  131. GNU TLS 64-bit
  132. GNU TLS 32-bit
  133. GNU Privacy Guard
  134. GNU PinEntry
  135. LibXML2 64-bit
  136. LibXML2 32-bit
  137. LibXSLT 64-bit
  138. LibXSLT 32-bit
  139. SGML Common
  140. LZO 64-bit
  141. LZO 32-bit
  142. LibB2 64-bit
  143. LibB2 32-bit
  144. LibArchive 64-bit
  145. LibArchive 32-bit
  146. Docbook 3.1 SGML DTD
  147. Docbook 4.5 SGML DTD
  148. Docbook 4.5 XML DTD
  149. Docbook 5.0 XML DTD
  150. Docbook XSL Stylesheets
  151. GC 64-bit
  152. GC 32-bit
  153. W3M
  154. XmlTo
  155. SECILC
  156. LibEConf 64-bit
  157. LibEConf 32-bit
  158. Linux PAM 64-bit
  159. Linux PAM 32-bit
  160. SCDoc
  161. Kmod 64-bit
  162. Kmod 32-bit
  163. Shadow 64-bit - pass 2: With PAM
  164. Shadow 32-bit - pass 2: With PAM
  165. GNU Coreutils
  166. GNU Diffutils
  167. GNU AWK
  168. GNU Findutils
  169. GNU Roff
  170. GZip
  171. IPRoute2
  172. Kbd
  173. LibPipeline 64-bit
  174. LibPipeline 32-bit
  175. GNU Make
  176. GNU Patch
  177. GNU Tar
  178. GNU Texinfo
  179. Vi Improved
  180. GNU Nano
  181. Python module MarkupSafe
  182. Python module Jinja2
  183. Python module Cython
  184. LibSecComp 64-bit
  185. LibSecComp 32-bit
  186. Mozilla NSPR 64-bit
  187. Mozilla NSPR 32-bit
Navigation    
  HOME Prerequisites »