qLinux
… a distribution study
<< Prev Build Temporary Tools (Part II)
Next >> Core Packages
Install the Basic System
Install the packages from the book in chapter 8 with some differences. Some packages will not be mentioned below, because they are considered optional right now. Usually we will not run testsuites, but there are some exceptions. The number of these exceptions may increase during development. Mostly useless documentation will be installed in  /tmp 
, in qLinux we use man pages only.
Important:   From now on we have to make sure, that the built-in dynamic loader is  /qlnx/lib/ld-musl-x86_64.so.1 
. Usually the recently build gcc will ensure this. Right now there is no  cc 
, thus CC have to be set explicitly for some packages. It is recommended to verify selective (or maybe before each install) that the dynamic loader is correct. This could be done by
$> readelf -l </path/to/compiled/elf-file> | grep ld-musl
From now on it is important to not have or rely on  /bin 
,  /dev 
,  proc 
,  /sys 
or any other directories which are not part of the qLinux filesystem layout. For real development (e.g. to compare behavior) it is ok to rename these particular named folders. But it have to made sure that during a (final) build process of a package these directories doesn't exists. Exceptionally there MUST NOT exists  /bin/sh 
and  /dev/null 
!
The instructions for the following packages are under continuous improvement - means that there are improved steps from early to later instructions. This shows e.g. the naming of patches. Every package (is there an exception?) needs to be patched. In general there are 3 types of patches:
- patches to the build system
- patches to the sources itself, subdivided
- patches for changes to fit qLinux
- patches to fix functionality/bugs (e.g. upstream/maintainer patches)
- patches to compile/work with musl
- patches to test suites
The qLinux related patches are named to the following convention
<package-name>-<package-version>-<identifier>-<date>.patch
The identifier could be  qlnx-<N> 
,  bld 
,  src 
or  tst 
, where  <N> 
is a number starting from 1. Higher numbers rely on smaller numbers. The first (earlier) patches uses  qlnx-<N> 
therefore the numbers 1, 2, 3 are  bld 
,  src 
and  tst 
in order. For this, the older  qlnx-<N> 
notation is deprecated. More over  qlnx  is used now for patches that doesn't fit to  bld 
,  src 
or  tst 
. However, the instruction shall mention the correct patch name to be used. The patch commands are without a path always. It is up to the reader where to put them.
Chapters of this section
            Core Packages
            Alternative Packages
            Optional Packages
Not used:
Man-pages-5.13 Iana-Etc-20210611 Tcl-8.6.11 Expect-5.45.4 DejaGNU-1.6.3 Attr-2.5.1 Acl-2.3.1 Libcap-2.53 Gperf-3.1 Expat-2.4.1 Check-0.15.2 Texinfo-6.8 <tab>[[GRUB-2.06|]]\\
<< Prev Build Temporary Tools (Part II)
        
Next >> Core Packages