On 2020-05-06 14:16 +0300, Firas Khalil Khana via lfs-dev wrote:
> On Wed, May 6, 2020 at 1:56 PM Xi Ruoyao via lfs-dev wrote:
> > Pierre recently discovered the circular dependency between eudev (in
> > Sysvinit
> > book) and util-linux:
> > 
> > > util-linux uses libudev (eudev) in lsblk (with fallback to libblkid from
> > > util-
> > > linux if libudev has not been linked). And udev uses libblkid to find
> > > information about some block devices (specialy cdrom_id, ata_id, etc).
> > > Note
> > > that this is well known and cured in systemd book.
> 
> Oh I forgot that this is related to how Util-linux and e2fsprogs are
> configured. So Chapter 5 Util-linux will have to rely on the host's
> libudev, while Chapter 6 Util-linux will have to rely on the eudev we
> provide.

Chap. 5 Util-linux does not use libudev.  Since it's temporal we don't need the
additional functionality added by linking to libudev in Chapter 5.

For your approach, I found some issues preparing it:

> 1- Ncurses can be removed? or is it needed for Chapter 5 Python which in turn
> is needed for Chapter 6 Glibc? Perhaps it can be removed for those using
> different C libraries (e.g. musl)?
>
> 2- Bash (The chroot environment's shell) can be built without curses support
> by passing "--without-curses", until it gets rebuilt again in Chapter 6 with
> curses support.
> 
> 3- Bison can be removed, and built only once early in Chapter 6 (twice for
> those who want to satisfy flex).
> 
> 4- Flex can be removed, and built only once early in Chapter 6 (after bison,
> and before the second build of bison for those who want to satisfy it).

Then we need to move bison and flex before Chap. 6 binutils.

> 5- Bzip2 can be removed since we're relying on host tools to decompress needed
> packages that were downloaded early on (plus it will be built early on in
> Chapter 6 so no package should require it).
> 
> 6- I prefer to hostname over coreutils hostname but that's totally optional.
>
> 7- which can be added after coreutils (some packages may depend on it in the
> format of using it inside scripts to fetch available binary versions (gcc with
> go support, coreutils?, the Linux kernel (for testing?), but it's pretty
> useful once you're in the chroot environment and in the final system as well).
> 
> 8- Gettext can be removed and built early on in Chapter 6.

We can't.  Glibc needs it to be built.

> 9- Gzip can also be removed since we're relying on host tools to decompress
> needed packages that were downloaded early on (plus it will be built early on
> in Chapter 6 so no package should require it).

Then we need to build it before bzip2, in Chap. 6.

> 10- Perl can be completely removed and satisfied early on in Chapter 6 before
> packages that require it.

We can't.  Glibc needs it to be built.

> 11- Python can be removed? glibc requires it so it can't be removed, but with
> other C libraries (e.g. musl) it can be removed and built only when needed in
> Chapter 6.

We can't.  Glibc needs it to be built.

> 12- Texinfo can be removed and built early on in Chapter 6.

We can't.  There is a circular dependency:

* Groff needs Texinfo to build its documentation.
* Texinfo must be installed after Perl, in Chap. 6 (or it would hardcode
/tools/bin/perl into its executables).
* Chap. 6 Perl needs Groff to build its man pages.

> 13- Util-linux can be removed, but I think certain testing suites require it?
> Perhaps for those who are sure that the packages have been built correctly it
> can be removed?

We can't.  There is a circular dependency between Util-linux libraries and
Systemd/Eudev.

> 14- Xz can be removed and built early on in Chapter 6 since we're relying on
> host tools to decompress needed packages that were downloaded early on (plus
> it will be built early on in Chapter 6 so no package should require it).

We can't.  xz-5.2.5.tar.xz needs it to be untared.

For 6 and 7, I really don't care.  I'll test 1-5, and 9 to see if they are
possible.
-- 
Xi Ruoyao <xry...@mengyan1223.wang>
School of Aerospace Science and Technology, Xidian University

-- 
http://lists.linuxfromscratch.org/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to