Known issues

Because development of ULFS still in progress some issues are exists. Some of them need software solution some of them needs organizational sulution.

Yogurt problem (bootstraping)

Yogurt is product of bacteria activity. When yogurt is making portion of bacteria can be taken from yogurt which is done.

Ass yogurt not all packages can be compiled with tools which supplied with ULFS, some of them need their own binaries to compile itself. This packages are:

  • Java Development Toolkit (OpenJDK)
  • Rust
  • Haskell

Binaries are security threat bacause they can contain viruses, trojans and other malware.

There is way to avoid of using binaries called bootstrapping. This way is way when early versions of package can be compiled from integrated tools. Later version are can be compiled sequently.

This aproach works with go compiler. Initial version compiled by gcc. Later version compiled from initial version go compiler.

Not all packages supports bootstrapping therefore it can't be installed in simple way.

You can't use this packages out of box because they break opensource conception of ULFS. On installing this packages in direct or indirect way (as dependance) you will get error.

If you want to install some this packages any way and understand riscs you can use supplied binaries.

Kernel headers (sources)

Device drivers, VirtialBox guest additions and some packages need kernel headers to be installed. Kernel headers is part of kernel sources. Kernel sources are not needed for runtimes and takes a disk space. To reduce size of disk images kernel sources are not included.

All kernel sources are placed in http://kernel.org/ website. Main kernel sources which was used during LFS base image creation can be ound in Sources.tar archive.

Kernel sources version shoud be equal system kernel version. You can check kernel version with uname command:

uname -r

Before installing packages which use kernel sources you have to:

  • Extract kernel sources to /usr/src and grant access to this directory for maintainer user.
  • Correct "build" and "source" symlinks files in /lib/modules/%kerrnel_version% directory
  • Copy config file from /boot directory with name ".config". Default config file is /boot/config.
  • Prepare kernel sources for compilation.

    For ULFS64:

    make oldconfig
    make prepare
    

    for ULFS32:

    ARCH=i386 make oldconfig
    ARCH=i386 make prepare