LFS and Standards

#### Linux From Scratch - Version 12.4-rc1

### Preface

- Prev

  Prerequisites

- Next

  Rationale for Packages in the Book

- Up
- Home

# v. LFS and Standards

The structure of LFS follows Linux standards as closely as possible. The primary standards are:

- POSIX.1-2008.

- Filesystem Hierarchy Standard (FHS) Version 3.0

- Linux Standard Base (LSB) Version 5.0 (2015)

  The LSB has four separate specifications: Core, Desktop, Languages, and Imaging. Some parts of Core and Desktop specifications are architecture specific. There are also two trial specifications: Gtk3 and Graphics. LFS attempts to conform to the LSB specifications for the IA32 (32-bit x86) or AMD64 (x86_64) architectures discussed in the previous section.

  ### Note

  Many people do not agree with these requirements. The main purpose of the LSB is to ensure that proprietary software can be installed and run on a compliant system. Since LFS is source based, the user has complete control over what packages are desired; you may choose not to install some packages that are specified by the LSB.

While it is possible to create a complete system that will pass the LSB certification tests “from scratch,” this can't be done without many additional packages that are beyond the scope of the LFS book. Installation instructions for some of these additional packages can be found in BLFS.

### Packages supplied by LFS needed to satisfy the LSB Requirements

LSB Core: | Bash, Bc, Binutils, Coreutils, Diffutils, File, Findutils, Gawk, GCC, Gettext, Glibc, Grep, Gzip, M4, Man-DB, Procps, Psmisc, Sed, Shadow, SysVinit, Tar, Util-linux, Zlib
LSB Desktop: | None
LSB Languages: | Perl
LSB Imaging: | None
LSB Gtk3 and LSB Graphics (Trial Use): | None

### Packages supplied by BLFS needed to satisfy the LSB Requirements

LSB Core: | At, Batch (a part of At), BLFS Bash Startup Files, Cpio, Ed, Fcrontab, LSB-Tools, NSPR, NSS, Linux-PAM, Pax, Sendmail (or Postfix or Exim), Time
LSB Desktop: | Alsa, ATK, Cairo, Desktop-file-utils, Freetype, Fontconfig, Gdk-pixbuf, Glib2, GLU, Icon-naming-utils, Libjpeg-turbo, Libxml2, Mesa, Pango, Xdg-utils, Xorg
LSB Languages: | Libxml2, Libxslt
LSB Imaging: | CUPS, Cups-filters, Ghostscript, SANE
LSB Gtk3 and LSB Graphics (Trial Use): | GTK+3

### Components not supplied or optionally supplied by LFS or BLFS needed to satisfy the LSB Requirements

LSB Core: | install_initd, `libcrypt.so.1` (can be provided with optional instructions for the LFS Libxcrypt package), `libncurses.so.5` (can be provided with optional instructions for the LFS Ncurses package), `libncursesw.so.5` (but `libncursesw.so.6` is provided by the LFS Ncurses package)
LSB Desktop: | `libgdk-x11-2.0.so` (but `libgdk-3.so` is provided by the BLFS GTK+-3 package), `libgtk-x11-2.0.so` (but `libgtk-3.so` and `libgtk-4.so` are provided by the BLFS GTK+-3 and GTK-4 packages), `libpng12.so` (but `libpng16.so` is provided by the BLFS Libpng package), `libQt*.so.4` (but `libQt6*.so.6` are provided by the BLFS Qt6 package), `libtiff.so.4` (but `libtiff.so.6` is provided by the BLFS Libtiff package)
LSB Languages: | /usr/bin/python (LSB requires Python2 but LFS and BLFS only provide Python3)
LSB Imaging: | None
LSB Gtk3 and LSB Graphics (Trial Use): | `libpng15.so` (but `libpng16.so` is provided by the BLFS Libpng package)

- Prev

  Prerequisites

- Next

  Rationale for Packages in the Book

- Up
- Home