Ticket #32 (closed task: fixed)

Opened 8 years ago

Last modified 3 years ago

Rationale for including each package in the book (from LFS Trac)

Reported by: chris@… Owned by: chris@…
Priority: minor Milestone: CLFS Standard 1.2.0
Component: BOOK Version: CLFS Standard GIT
Keywords: Cc:

Description

There should be a page in the book describing exactly what each package does and why it's in the book. Each package does have a short description of its functionality, but it doesn't say what exactly you would use that program for or what other packages might depend on it. Here's a few descriptions to start with...

Coreutils - A number of essential programs for viewing and manipulating files and directories - not only useful to the user, but also needed by the vast majority of configure scripts for source-compiled packages.

Zlib - libraries for compression and decompression, used by a large number of programs (including a couple of LFS packages)

Vim - the creators of the LFS book believe that a text editor is absolutely essential to a basic, usable system, and vim just happened to be the one that they decided to use (maybe also have a link to the "Why is vim in the book?" thread that's linked in the FAQ, or summarize the contents of the thread here)

Ncurses - A library used by many other packages that manipulate text on the screen, and often use some kind of cursor or menu system. This includes: vim, bash, procps, psmisc, inetutils, texinfo, less, and other packages.

Texinfo - Provides the ability to view "info" pages, which provide information about programs and are generally more comprehensive than man pages. Also, the texinfo package itself (specifically the makeinfo and install-info programs) is needed to build and install info pages, which is why texinfo is installed in Chapter 5 of LFS.

Here's a few packages that I really don't use (directly at least - the only way I do use them if other programs run them) myself, and about all I know about them is that they're needed by other packages...

M4 Bison Flex Groff Mktemp (used mostly in various scripts)

Change History

comment:1 Changed 8 years ago by jim

  • Owner changed from clfs-commits@… to ryan.oliver@…

Assigned to Ryan to comment on.

comment:2 Changed 8 years ago by jim

  • Owner changed from ryan.oliver@… to chris@…
  • Milestone set to CLFS 1.0

comment:3 Changed 8 years ago by jim

For MIPS

Colo - A replacement bootloader for the Cobalt MIPS Based Raq/Qube? servers.

Depends on Binutils, Coreutils, GCC, and Gzip.

DVHTool - Dvhtool is the tool responsible for writing MIPS kernel(s) into the SGI

volume header. Depends on Bintuils and GCC

ARCLoad - ARCLoad - SGI Multi-bootloader. Able to bootload many different SGI

Systems. Depends on Binutils, Coreutils, DVHTool, GCC, and Sed

For Sparc

Elftoaout - A utility for converting ELF binaries to a.out binaries.

Depends on Binutils and GCC

Silo - SPARC/UltraSPARC Improved Loader, a boot loader for sparc.

Depends on Elftoaout, Binutils, Coreutils, Gawk, GCC, Grep, Gzip, and Sed

comment:4 Changed 8 years ago by chris@…

Sed - allows you to edit text in a file without opening it in a text editor. Good if you just need to change a single bit of text (or multiple occurences of the same text) quickly. Sed is also needed by most packages' configure scripts.

Grep - searches for text in files. Also used in many packages' configure scripts.

Bzip2 - probably self-explanatory (allows you to {,un}compress files, and is certainly needed by LFS to unpack the source tarballs)

Gzip - ditto

Tar - also needed to unpack the sources

Diffutils - obviously, helps to view differences between files. Can be used to create patches. Also used by many packages' build procedures, often in testsuites.

E2fsprogs - self-explanatory? (you need this package to create and check ext2/3 filesystems)

Findutils - obviously, lets you find files. Also allows various options (-exec, the xargs program, etc) to allow you to run the same command on a long list of files in multiple subdirectories. Also needed for many LFS packages to build.

Less - Very useful text file viewer.

comment:5 Changed 8 years ago by chris@…

  • Milestone changed from CLFS 1.0 to CLFS 1.1

comment:6 Changed 8 years ago by jim

  • Version changed from unstable to 1.1

comment:7 Changed 8 years ago by jim

  • Version changed from 1.1 to 1.1.0

comment:8 Changed 8 years ago by chris@…

  • Version changed from CLFS Standard 1.1.0 to CLFS Standard 1.2.0

comment:9 Changed 7 years ago by jciccone

  • Milestone changed from CLFS Standard 1.1.0 to CLFS Standard 1.2.0

comment:10 Changed 6 years ago by jciccone

  • Version changed from CLFS Standard 1.2.0 to CLFS Standard SVN

comment:11 follow-up: ↓ 12 Changed 5 years ago by chris@…

Autoconf - The CLFS team believes this is needed for a fully functional development system, as it is sometimes needed if the source is modified.

Automake - The CLFS team believes this is needed for a fully functional development system, as it is sometimes needed if the source is modified.

Bash - Some kind of command shell is needed.

Binutils - Contains a linker, assembler, and other programs required for compiling from source.

Bison - Required by several packages.

Bootscripts - A number of scripts that perform needed functions at bootup and shutdown.

Bzip2 - Tools for compressing and uncompressing files in the bzip2 format. Many Linux packages are tar archives that have also been compressed with bzip2.

Coreutils - Contains a number of essential tools for basic manipulation of files and directories.

DejaGNU - A few packages use this for their testsuites.

Diffutils - Programs for comparing files and directories. Also required by a number of packages for configuring, compiling, and testing.

E2fsprogs - Contains programs for creating, configuring, and check ext2/3/4 filesystem. Also installs libraries that assist in accessing filesystems, which are used by other packages, such as Util-linux-ng.

Expect - Needed at runtime by DejaGNU, for the testsuites of several packages.

File - Program that can determine the type of any given file or directory. Needed for some packages.

Findutils - Programs to help locate files and directores. Several packages also use these programs to compile and install.

Gawk - Useful program for parsing text strings and files. A number of packages also require it for building and installing. Gawk is the GNU implementation of Awk, and other Awk packages, such as Mawk, provide similar functionality, but Glibc requires Gawk.

GCC - Building from source requires a compiler, and virtually everything built in CLFS comes as C or C++ code.

Glibc - Basic C library. Just about any C program requires this. Another C library, such as uClibc, could conceivably be used, but the CLFS book uses Glibc.

GMP - In the book mainly because it is required by GCC.

Grep - Tool for searching for text inside a string or file. A number of packages also require it for building and installing.

Groff - Required by Man.

Gzip - Tools for compressing and uncompressing files in the gzip format. Many Linux packages are tar archives that have also been compressed with gzip.

IPRoute2 - Has programs to change settings for network interfaces - used in bootscripts.

IPutils - Several essential basic network programs.

Less - Program for viewing text files one screen at a time. Also used by other packages - for example it is what Man uses for displaying manpages.

Libtool - The CLFS team believes this is needed for a fully functional development system, as it is sometimes needed if the source is modified.

Linux - The kernel. This is required to boot the system.

M4 - Required by several other packages, such as Bison and Autoconf.

Make - Program that performs commands given in Makefiles. Most packages use them for compiling.

Man - used to display manpages.

Man-pages - (Self-explanatory? Has documentation...what else is needed?)

Module-Init-Tools - Needed to install and use kernel modules.

MPFR - In the book mainly because it is required by GCC.

Ncurses - A library used by many other packages that manipulate text on the screen, and often use some kind of cursor or menu system. Required by several CLFS packages.

Patch - Needed to apply patches to source code.

Perl - Potentially useful scripting language. Also required a for few packages in CLFS, such as Glibc and Autoconf.

Sed - Program to manipulate text. Useful by itself, but also required by most packages in CLFS to compile and install.

Shadow - Programs needed to log on to the system, manipulate users and groups, passwords, etc.

Tar - Program to create and unpack archives, frequently known as "tarballs." Source code for many packages is distributed as tarballs (often they are also compressed with Gzip, Bzip2, or more recently, lzma or xz).

Tcl - Required by Expect and DejaGNU, for the testsuites of several packages.

Texinfo - Provides the ability to create, install, and view "info" pages, which many packages use in addition to (or in place of) manpages. Several packages use these tools to install their info pages along with the rest of the package.

Udev - Allows for dynamic creation of device nodes. Could alternatively just create a large number of nodes in /dev manually (well, with the assistance of a MAKEDEV script) but Udev is preferred by the CLFS team because (why?)

Util-linux-ng - Among other things, has a number of essential programs to mount/unmount filesystems, modify partitions, manipulate files, and perform a number of other tasks. Several of these are used in the bootscripts.

Vim - The CLFS team believes that a text editor should be considered part of a minimal, usable system, though emacs, nano, joe or something else could easily be substituted.

XZ - Tools for compressing and uncompressing files in the xz and lzma formats. Several GNU packages are now being distributed as tarballs that have been compressed with xz.

Zlib - Libraries for compression and decompression, used by a large number of programs (including some CLFS packages).

And I couldn't come up with something useful for these:

DHCPCD -

Flex

Gettext

Iana-Etc

Kbd

Procps

Psmisc

Readline

Rsyslog

Sysvinit

comment:12 in reply to: ↑ 11 Changed 5 years ago by jciccone

This is what I could think of

Replying to chris@beaker67.com:

And I couldn't come up with something useful for these:

DHCPCD -

dhcpcd is a RFC 2131 compliant DHCP client that allows for the automatic configuration of network interfaces from a DHCP server.

Flex

Flex is a tool for generating text scanners. It is used by multiple packages in the book, as well as quite a few outside of the book, while compiling.

Gettext

Gettext is a tool that allows programmers to easily implement i18n in their programs. It is a required dependency by quite a few packages.

Iana-Etc

The iana-etc package provides the /etc/services and /etc/protocols files. These files map port names to port numbers as well as protocol names to their corresponding numbers. These files are essential for many network based programs to work properly.

Kbd

The kbd package contains keytable files and keyboard utilities compatible with the linux kernel.

Procps

Procps provides a bunch of small useful utilities that give information about the proc file system. This includes ps, top, kill, etc...

Psmisc
]

Psmisc provides more utilities that give information about the proc file system.

Readline

The Readline library provides a set of functions for use by applications that allow users to edit command lines as they are typed in. This is essential for input in programs like bash to work properly.

Rsyslog

Rsyslog is an enhanced multi-threaded syslogd that supports multiple backends with very little dependencies.

Sysvinit

Sysvinit is the init daemon that the clfs-bootscripts were written to work with.

comment:13 Changed 3 years ago by chris@…

  • Status changed from new to closed
  • Resolution set to fixed

Fixed - package rationale page added in commit 11099cf3f787654cd0727a168630378e1fe64977.

Note: See TracTickets for help on using tickets.