To my understanding, the temporary system built in chapter 5 can be copied
to any other computer, and we can use this temporary system to finish the
whole system.
Without building xz in chapter 5, what if i accidentally delete files in
source directory of xz on another computer?

Firas Khalil Khana via lfs-dev <lfs-dev@lists.linuxfromscratch.org>
于2020年5月9日周六 下午4:14写道:

> 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
-- 
http://lists.linuxfromscratch.org/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to