On Sat, May 9, 2020 at 4:57 AM Xi Ruoyao via lfs-dev
<lfs-dev@lists.linuxfromscratch.org> wrote:
>
> 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

Yes, at this point 1 and 2 can both be ignored since Ncurses is needed
by Python which is needed by Glibc, so no point in removing curses
support from bash...

What we're left with are 3, 4, 5 and 9 that are still valid. For 14,
wouldn't it be easier to instruct the user to extract the xz source
tarball before entering chroot, than let him build the entire package?
-- 
http://lists.linuxfromscratch.org/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to