I'm currently in the middle of a LFS build. I'm following the LFS 11.3 book on my x86_64 computer, except for six deviations.
One. As I did in my previous LFS 8.0, 8.1 and
11.2 installs, I am using the Slackware package tools as the package manager for my LFS. This is verified stable technology that I've used before. For LFS 11.2 on, a newer version of the tools was used, with the advantage of not needing a special version of tar as previous versions did. The Slackware package manager is briefly mentioned in Section 8.2.2.7, paragraph four of the LFS 11.3 book. Naturally this means the packages will not be compiled in the $LFS/sources directory but in a different directory tree, in which each package is compiled and packed in its own directory, while the package contents are installed to the usual locations.
Two. The "which" command is a dependency of one of the Slackware tools. I installed the shell script version from the BLFS book, along with the Slackware tools, before the first package of Chapter 8.
Three. This LFS build, as was done in previous successful builds, is being done in multiple sessions. $LFS is defined for all required users and scripting was created for mistake-free chrooting. The LFS volume is in /etc/fstab and is mounted at boot time.
Four. I'll be installing my text editor instead of vim.
Five. Before the system is bootable, cryptsetup, cpio and lvm-related programs will need to be compiled, because all Linux distros on my computer reside on thin-provisioned LVM partitions.
Six. I'm using the 5.15.86 version of the kernel, because that worked so well with my hardware in my LFS 11.2 system.
A pause to quote from Chapter One of the LFS 11.3 book:
Quote:
Deviating from this book does not mean that we will not help you. After all, LFS is about personal preference. Being up-front about any changes to the established procedure helps us evaluate and determine possible causes of your problem.
|
The LFS 11.3 install went well, with test results for the three critical packages of binutils, glib and gcc perfect matching those in the LFS book.
Having performed due-diligence as to disclosure about my deviations from the "established procedure," of the LFS 11.3 book, I will now begin my actual question.
Becuase the LFS system is on a thin-provisioned LVM volume that is in turn on a LUKS partition, additional programs need to be compiled before booting into the LFS 11.3 install. So now it's a BLFS install. Here is the compile tree I came up with:
Code:
needed to boot
o cpio - IN
o cryptsetup
* LVM2 v
* json_c
- cmake - IN
> curl (no crucial deps) - IN
> ngjttp - IN
. libxml2 (deps already in) - IN
. boost - IN
> libarchive - IN
. libxml2 (deps already in) - IN
. lzo - IN
. nettle (deps aready in) - IN
> libuv (no deps) - IN
* popt (no deps) - IN
o btrfs_progs - IN
* lzo (no deps) - IN
* [lvm2] v
* reiserfsprogs v
o LVM2
* libaio (no deps) - IN
* mdadm (no deps) - IN
* reiserfsprogs (no deps) - IN
* which - IN
* thin_provisioning_tools v
* [valgrind] (no deps if no tests) - IN
- gdb - IN
> python_six - IN
* [xfsprogs] - IN
- inih (no deps) - IN
- liburcu (no deps) - IN
o thin_provisioning_tools - IN
* libaio (no deps) - IN
* boost (will have to use porg for this one) - IN
- which - IN
- ICU - IN
> [firejail] - IN
Right now I'm at json_c and that fails. It fails ALL tests.
Thanks to the use of "make test > $WYAN/test_log.txt 2>&1" in my slack-build script, here is the test output:
Code:
Running tests...
Test project /sources/lfs_slackbuilds/json_c/build_it/json-c-0.16/build
Start 1: test1
1/23 Test #1: test1 ............................***Failed 0.10 sec
Start 2: test2
2/23 Test #2: test2 ............................***Failed 0.11 sec
Start 3: test4
3/23 Test #3: test4 ............................***Failed 0.03 sec
Start 4: testReplaceExisting
4/23 Test #4: testReplaceExisting ..............***Failed 0.03 sec
Start 5: test_cast
5/23 Test #5: test_cast ........................***Failed 0.03 sec
Start 6: test_charcase
6/23 Test #6: test_charcase ....................***Failed 0.03 sec
Start 7: test_compare
7/23 Test #7: test_compare .....................***Failed 0.03 sec
Start 8: test_deep_copy
8/23 Test #8: test_deep_copy ...................***Failed 0.03 sec
Start 9: test_double_serializer
9/23 Test #9: test_double_serializer ...........***Failed 0.03 sec
Start 10: test_float
10/23 Test #10: test_float .......................***Failed 0.03 sec
Start 11: test_int_add
11/23 Test #11: test_int_add .....................***Failed 0.03 sec
Start 12: test_locale
12/23 Test #12: test_locale ......................***Failed 0.03 sec
Start 13: test_null
13/23 Test #13: test_null ........................***Failed 0.03 sec
Start 14: test_parse
14/23 Test #14: test_parse .......................***Failed 0.03 sec
Start 15: test_parse_int64
15/23 Test #15: test_parse_int64 .................***Failed 0.03 sec
Start 16: test_printbuf
16/23 Test #16: test_printbuf ....................***Failed 0.03 sec
Start 17: test_set_serializer
17/23 Test #17: test_set_serializer ..............***Failed 0.03 sec
Start 18: test_set_value
18/23 Test #18: test_set_value ...................***Failed 0.03 sec
Start 19: test_strerror
19/23 Test #19: test_strerror ....................***Failed 0.03 sec
Start 20: test_util_file
20/23 Test #20: test_util_file ...................***Failed 0.03 sec
Start 21: test_visit
21/23 Test #21: test_visit .......................***Failed 0.03 sec
Start 22: test_object_iterator
22/23 Test #22: test_object_iterator .............***Failed 0.03 sec
Start 23: test_json_pointer
23/23 Test #23: test_json_pointer ................***Failed 0.03 sec
0% tests passed, 23 tests failed out of 23
Total Test time (real) = 0.85 sec
The following tests FAILED:
1 - test1 (Failed)
2 - test2 (Failed)
3 - test4 (Failed)
4 - testReplaceExisting (Failed)
5 - test_cast (Failed)
6 - test_charcase (Failed)
7 - test_compare (Failed)
8 - test_deep_copy (Failed)
9 - test_double_serializer (Failed)
10 - test_float (Failed)
11 - test_int_add (Failed)
12 - test_locale (Failed)
13 - test_null (Failed)
14 - test_parse (Failed)
15 - test_parse_int64 (Failed)
16 - test_printbuf (Failed)
17 - test_set_serializer (Failed)
18 - test_set_value (Failed)
19 - test_strerror (Failed)
20 - test_util_file (Failed)
21 - test_visit (Failed)
22 - test_object_iterator (Failed)
23 - test_json_pointer (Failed)
Errors while running CTest
Output from these tests are in: /sources/lfs_slackbuilds/json_c/build_it/json-c-0.16/build/Testing/Temporary/LastTest.log
Use "--rerun-failed --output-on-failure" to re-run the failed cases verbosely.
make: *** [Makefile:91: test] Error 8
I then looked and discovered that the LastTest.log mentioned in the above is a zero length file.
Adding the "--rerun-failed --output-on-failure" parameters to the command I used to test resulted in this:
Code:
make: unrecognized option '--output-on-failure'
Usage: make [options] [target] ...
Options:
-b, -m Ignored for compatibility.
-B, --always-make Unconditionally make all targets.
-C DIRECTORY, --directory=DIRECTORY
Change to DIRECTORY before doing anything.
-d Print lots of debugging information.
--debug[=FLAGS] Print various types of debugging information.
-e, --environment-overrides
Environment variables override makefiles.
-E STRING, --eval=STRING Evaluate STRING as a makefile statement.
-f FILE, --file=FILE, --makefile=FILE
Read FILE as a makefile.
-h, --help Print this message and exit.
-i, --ignore-errors Ignore errors from recipes.
-I DIRECTORY, --include-dir=DIRECTORY
Search DIRECTORY for included makefiles.
-j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no arg.
--jobserver-style=STYLE Select the style of jobserver to use.
-k, --keep-going Keep going when some targets can't be made.
-l [N], --load-average[=N], --max-load[=N]
Don't start multiple jobs unless load is below N.
-L, --check-symlink-times Use the latest mtime between symlinks and target.
-n, --just-print, --dry-run, --recon
Don't actually run any recipe; just print them.
-o FILE, --old-file=FILE, --assume-old=FILE
Consider FILE to be very old and don't remake it.
-O[TYPE], --output-sync[=TYPE]
Synchronize output of parallel jobs by TYPE.
-p, --print-data-base Print make's internal database.
-q, --question Run no recipe; exit status says if up to date.
-r, --no-builtin-rules Disable the built-in implicit rules.
-R, --no-builtin-variables Disable the built-in variable settings.
--shuffle[={SEED|random|reverse|none}]
Perform shuffle of prerequisites and goals.
-s, --silent, --quiet Don't echo recipes.
--no-silent Echo recipes (disable --silent mode).
-S, --no-keep-going, --stop
Turns off -k.
-t, --touch Touch targets instead of remaking them.
--trace Print tracing information.
-v, --version Print the version number of make and exit.
-w, --print-directory Print the current directory.
--no-print-directory Turn off -w, even if it was turned on implicitly.
-W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE
Consider FILE to be infinitely new.
--warn-undefined-variables Warn when an undefined variable is referenced.
This program built for x86_64-pc-linux-gnu
Report bugs to <bug-make@gnu.org>
Has anyone else run tests while building the json_c package as per the BLFS 11.3 book? If so, were they the same results?
Thank you.