Building world fails: In file included from /usr/src/bin/dd/dd.c:60: /usr/include/capsicum_helpers.h:42:10: fatal error: 'libcasper.h' file not found #include <libcasper.h> ^~~~~~~~~~~~~ 1 error generated. *** Error code 1 Stop. make[4]: stopped in /usr/src/bin/dd *** Error code 1 Stop. make[3]: stopped in /usr/src/bin *** Error code 1 Stop. make[2]: stopped in /usr/src *** Error code 1 Stop. make[1]: stopped in /usr/src *** Error code 1 Stop. make: stopped in /usr/src I think the bug is that the variable WITHOUT_CASPER=YES in /etc/src.conf has no effect here.
We should install libcasper.h regardless of whether WITHOUT_CASPER is set. This is because libcasper.h also defines stubs of its routines for this case. Does the build succeed if you remove the WITHOUT_CASPER setting?
I think it would be better if 'make delete-old' would not delete any header files in /usr/include. Right now, 'make buildworld' fails again. Of course it does, libcasper.h does no longer exist.
(In reply to olaf from comment #2) I guess this is the same issue as PR 242971, which was recently fixed.
(In reply to Mark Johnston from comment #3) Nope, this is opposite to my proposal: let us 'make delete-old' keep /usr/include as is so that future security (!) bugs can be fixed by guys like me who run their self compiled, customized world and kernel. Right now, 'make buildworld' failure means: nobody can patch security patches, as a result: a forever vulnerable FreeBSD system. I assume that we all do not want that.
See also PR 242217
Just one more note: I would love to have my 'main' system with SMTP, IMAP, WWW, authoritative DNS and such on a FreeBSD box. I have the knowledge. But for the migration two months ago I decided to move all stuff to Linux. Again. Because from a server admin's view, Debian Linux seems to be more mature in terms of bugs that are obvious. It just works as expected. I still consider FreeBSD as 'great idea, but not yet production ready' because one of the best feature compared to Linux (customized world and kernel, all built according to the FreeBSD handbook of course) is severely broken to me. Right now, my productive slave DNS is on FreeBSD, but not more. If somebody hacks it because patching security issues is impossible to me, then I'll replace it with a Linux box. It would be great if somebody 'in charge' would read this, but I do not expect that. In fact, my bug reports on Debian or LineageOS are handled within a reasonable time frame, here they are not. And Debian and LineageOS is volunteer's work just like FreeBSD is. I feel a bit being ignored with all the bugs that I have reported. Sorry folks. This is no rant. FreeBSD is technically speaking the best server OS in town. But I get the feeling that noone wants to change a thing when it's about self built world and kernel which is the greatest feature - a tailor made OS just for my needs. Anyway, keep up the good work!
(In reply to oz42 from comment #4) I understand the proposal. It will cause stale headers to be left behind, which can cause problems of its own. The libcasper issue is simply a bug and should be fixed. We should be copying libcasper.h to the buildworld tmp dir for use during the rest of the build, regardless of whether WITHOUT_CASPER= is set, not relying on its presence in /usr/include/libcasper.h. I verified that this happens at least on head. Some of the other build failures you reported point to some larger underlying issue. fsck_ffs failed to build because of a inodirty() prototype mismatch, but inodirty() is declared in the fsck_ffs header, not in any system headers. So clearly there is a problem here that has nothing to do with delete-old.