Note

The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.

User talk:Invakid404/CLFS

From Funtoo
Jump to navigation Jump to search

I went through the entire set of instructions and it's amazing. Things worked as expected. I put a couple of {{Note}}s on the page, and changed a rm -r to rm -rf. Then I left a second one as rm -r (I think for gcc) after thinking I should check with you on this before making so many changes. The extra -f is needed to make copy/paste of the instructions work as expected.

I am now messing around inside my build (at /home/drobbins/404beast) and realizing that it would be really useful to have wget inside the fchroot so that we can grab sources and build them inside. Though I have a ton of sources in the fchroot from building that I could use to test some builds of real software, I think.


In testing a build of bzip2 inside the fchroot, I ran into this issue:

rm -f libbz2.a
ar cq libbz2.a blocksort.o huffman.o crctable.o randtable.o compress.o decompress.o bzlib.o
make: /bin/sh: No such file or directory
make: *** [Makefile:49: libbz2.a] Error 127
bash-5.1 #

I think this can easily be fixed with a symlink but it would be interesting to start documenting all of the little tweaks needed to get the tools environment as functional as possible for builds of GNU software without complications.

--Drobbins (talk) 04:25, March 1, 2022 (UTC)

As expected, creating a /bin/sh symlink pointing to /tools/bin/bash resolved the bzip2 build issue. I was able to build and install bzip2 to /usr within the fchroot without any required patching. Just a make PREFIX=/usr install took care of installation. This is promising.

Another note as I think of it -- it would be useful to have the which command active within the fchroot, as it's useful for figuring out what bzip2 I am currently using. It could also be useful to have the pre-fchroot environment variables in a script. Let me know if you need additional functionality in fchroot to allow this to work properly.

--Drobbins (talk) 04:33, March 1, 2022 (UTC)

In trying to build wget2-2.0.0.tar.gz, I encountered this configure error within the fchroot:

bash-5.1# ./configure
checking for a BSD-compatible install... /tools/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /tools/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... no
checking build system type... config.guess: cannot create a temporary directory in /tmp
configure: error: cannot guess build type; you must specify one

I was able to fix it by creating a /tmp directory within the fchroot. I imagine a few other things might need that.

--Drobbins (talk) 04:39, March 1, 2022 (UTC)

In my efforts to build wget2, I'm encountering some other things that we'll need to get working in the fchroot for Portage to have a chance of functioning. Of course, there's python. And we also need to get an SSL library available -- either OpenSSL or WolfSSL. WolfSSL could be an interesting option as it is focused on embedded/minimal use. Here is the output from the wget2 configure script:

checking for library containing gnutls_global_init... no
configure: WARNING: *** GNUTLS was not found. Fallback to libnettle for hashing and checksumming.
checking for openssl... no
checking for library containing SSL_CTX_new... no
configure: WARNING: *** OpenSSL was not found.
checking for wolfssl... no
checking for library containing wolfSSL_Init... no
configure: WARNING: *** WolfSSL was not found.
configure: error: *** No SSL/TLS library not found.

--Drobbins (talk) 04:53, March 1, 2022 (UTC)