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