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