Because development of ULFS still in progress some issues are exists. Some of them need software solution some of them needs organizational sulution.
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:
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.
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:
For ULFS64:
make oldconfig make prepare
for ULFS32:
ARCH=i386 make oldconfig ARCH=i386 make prepare