Profile picture
Michael Dexter @michaeldexter
, 30 tweets, 8 min read Read on Twitter
Calling all @FreeBSD/#FreeBSD users who have ever run "buildworld" with a build option. Behold, my 15 years-in-the-making diff to unbreak several build options:

PLEASE review and test. I have noted one known shortcoming in the review and I hope all #FreeBSD make/build/buildworld subject matter experts can test and trash it as appropriate. Why? #Thread
I have wanted for a mere 15 years, since I first discovered FreeBSD #Jail, to have an easy way to choosing build(world) options for smaller-than-stock Jails come #bhyve virtual machines. THE THINGS THEY NOW CALL CONTAINERS and a dozen other catchy names.
If I am not mistaken, the build options are the logical groundwork of *some* definitions of "packaged base". See the src.conf man page for more information about what I am referring to.…
As I have tweeted many a time, some notion of WITHOUT_CLANG would be greatly appreciated, such as kicking it into its own distribution set (toolchain.txz or something) given that excluding it drops my builds from 30 minutes to 13 minutes. Yes, I am aware of the implications.
Yes, FreeBSD needs a toolchain, no not every disposable virtual machine, or arguably desktop requires it. That is a debate for another time. I only hope to see the EXISTING build options WORK given that I have talked to several users who...
... flipped off all of the build options compiled for hours and received a cryptic build failure message. The src-env.conf ones will mercifully fail immediately but the rest are agonizing, especially if you are trying to... unbreak them. I consider these "low hanging fruit" and..
. ... you adventurers can try WITHOUT_LIBCPLUSPLUS (wasn't broken too long ago) and perhaps LIBTHREAD/THR. I you like to chase bugs, WITHOUT_WPA_SUPPLICANT_EAPOL appears to be internally broken. It has the knobs but they are jammed with sludge. (Channelling @mwlauthor)
I am NOT convinced that WITHOUT_INSTALLLIB "can't be done" given the simplicity of its first failures. fortune(6), really? (Revel in the subtweet there).

Try WITHOUT_SYMVER! I dare you!

Some are known to fail. I am curious why they exist. I understand the special cases.
So there you have it. A taste of how "WITHOUT_SENDMAIL" could build a system without sendmail, and in theory it could be packaged. (No porting! Woo!) There are however, some challenges... (I said #Thread)
... Consider that a utility like syslogd(8) has internal make options to be built without network support, only allowing it to log to files. Smart! But what would that mean to a "packaged base"? Two packages? One with, and one without networking?
What if syslogd is smart enough to be buildable without INET, INET6 or OPENSSL? (more on that later) Several packages? Granted, most users will want all networking and I'd have to check what other utilities go to this "trouble".
About WITHOUT_OPENSSL... Nearly EVERYTHING that supports networking now supports (depends on) MK_OPENSSL. Fair enough. But, how far are we from "SSL_IS_LIBRESSL"? Moving target API aside... I suspect that VERY CLEVER things would happen if these knobs were maintained.
Punishing users for experimenting with them is NOT how you encourage clever experimentation. Yes, the build option "survey" takes 5.3 days on my machine that builds world in 30 minutes. My previous go-to lab machines, mostly ThinkPads, would have taken weeks.
I suspect that survey time is now much like it originally was, BUT, must have surged when CLANG, bless its heart, first arrived. I suspect no one knows given that the survey has been broken for some time (disk image too small) and few have touched it.
I *almost* grasp the survey and have written my own still-rough variations on it. The exercise has however been very educational. And yes, this is why I have sucked as a "doc" committer given that all of my volunteer time has gone into his effort, especially because...
... it has nagged me for 15 or so years. Yes really. I pictured tiny virtual machines with no superfluous utilities for over a decade. The fact that CLANG is now 3/4 (it seems) of the FreeBSD buildworld further motivated me. Yes, I have the STUDENT (minimum bhyve) kernel but...
... LET'S TAKE CARE OF THIS OVERDUE HOUSEKEEPING. Seriously. Maintaining these "simple" make parameters is far easier than me taking on ten or so at once. I am the last person on the planet who should be doing this. (Not the first time I've said that.)
I consider the build (man build) literally the skeleton of BSD and please keep it healthy. Or rip these "options" all out if no one cares anymore. Few have cared to test them after all. I DID see a few fixes go into bsdinstall, bhyve and others this last few years but...
... those are exceptions and they are for stand-alone new code which are... hint hint, easy to isolate and package. HUGE thanks to @bsdphk for the build_option_survey, painful as it has been to learn. Thank you also to the reviewers who have shown non-zero interest in this.
Ah yes. The diff also removes the attempt to upload the HTML results to @bsdphk's server that has presumably gone offline years ago. Please test! Please maintain! EOT
Yes, I schedule my tweet storms around Colbert.
Ah yes, and a huge thanks to @Slaughterhut for venturing down this rat hole with me!
Any thoughts @Sp1l ?
To state the semi-obvious, it would be great to have many, in not all of these "leaks" plugged by the release of FreeBSD 12.0. I am glad to see that a handful of people know what I am referring to!
I believe @Slaughterhut experimented with "MK_INET*". Good thing or risky shortcut?
Oh how I'd love to know what @ed_maste has to say on this subject.
Special thanks to my wife who left me at home for two weeks with the kids, which, quite remarkably, allowed me to work on this. It is however, the reason I have not been working on other nifty things.
My longer-than-tweet findings should go to:
The BOS results are 15G in size. Appropriate for the wiki?
Missing some Tweet in this thread?
You can try to force a refresh.

Like this thread? Get email updates or save it to PDF!

Subscribe to Michael Dexter
Profile picture

Get real-time email alerts when new unrolls are available from this author!

This content may be removed anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!

This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member and get exclusive features!

Premium member ($3.00/month or $30.00/year)

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!