How to build your own BSD distribution?

time script freebsd-buildworld_$(date +"%y%m%d%H%M").log sh -c 'cd /usr/src && make buildworld'
or
time script freebsd-buildworld_$(date +"%y%m%d%H%M").log make -C /usr/src buildworld
Here's the result of my script:-

Code:
chmod 444 freebsd.submit.cf

--------------------------------------------------------------
>>> World build completed on Mon Aug 21 22:59:51 BST 2023
>>> World built in 42602 seconds, ncpu: 4
--------------------------------------------------------------

Script done, output file is freebsd-buildworld_2308211109.log
    42602.46 real     40940.87 user      1541.93 sys

100,000 lines of output.
 
it would be better to use your time for something valuable like creating a bootstrap script that replicate your setup after vanilla freeBSD install. That would be a better use of resources and easier to maintain on the long run and you can add scripts for tweaks according to your machine.
Creating too many Distributions did not do well for GNU/Linux. you can create a tar.gz of all needed configs and a script to deploy it post install or better create a repository to host some binaries that are missing from pkg and already in ports.
you can also create a git repo that the user clone and tweak for his need this execute the install script.
because if you created a distribution like GNU/Linux you would need to maintain too many versions (12,13 and 14 in a few days)
look at Ghost BSD its always behind to provide the latest version, for some people this is a deal breaker.
 
A simpler alternative to creating a whole new FreeBSD inspired OS it to identify what ports / packages you like most and then create a meta-port that bundles those together. From the end user's perspective, the effect is the same and users can still come here for base system support.

Example - TrueOS - a FreeBSD derivative - is gone but many of the packages that made up TrueOS remain. Look for "lumina" prefixed names in the ports tree. Anyone wanting to retain the look and feel of TrueOS can still do so.

Example from Dan Langille:

 
And we will soon hear the torrent of complaints about sendmail being gone in 14.0 for those who weren't paying attention.
I was paying attention but I'll get the ball rolling.
Code:
# fetch https://download.freebsd.org/releases/ISO-IMAGES/14.0/FreeBSD-14.0-RELEASE-amd64-dvd1.iso
# mv ./FreeBSD-14.0-RELEASE-amd64-dvd1.iso ./sendmail_complaints.torrent
# cat ./sendmail_complaints.torrent | hexdump -v -e '/1 "%u\n"' | awk '{ split("4,5,7,11",a,","); for (i = 0; i < 1; i += 0.0001) printf("%08X\n", 100*sin(1046*exp((a[$1 % 8]/12)*log(2))*i)) }' | xxd -r -p | aplay -c 2 -f S32_LE -r 24000
( /usr/local/bin/aplay requires presence of audio/alsa-utils).

This is how you can actually hear the 'torrent of complaints' that drhowarddrfine is talking about ;)
 
I'm thinking if it's possible to install the kernel source of the last Freebsd on nomadbsd. And compile a custom kernel.
There is not a dedicaced folder for that but mkdir is a good friend.
Have you got some idea to make a bsd live with a kernel custom possible ?
Thanks
 
I'm thinking if it's possible to install the kernel source of the last Freebsd on nomadbsd. And compile a custom kernel.
There is not a dedicaced folder for that but mkdir is a good friend.
Have you got some idea to make a bsd live with a kernel custom possible ?
Thanks


If i remember well,the questions not related to FreeBSD should not be posted here. Ask to NomadBSD forum.
 

If i remember well,the questions not related to FreeBSD should not be posted here. Ask to NomadBSD forum.
I post that because we have the same kernel actually
FreeBSD NomadBSD 14.1-RELEASE-p7 FreeBSD 14.1-RELEASE-p7 GENERIC amd64
And I want to do the same like people under freebsd.
 
I would start with building a life freebsd image. Freebsd has a larger user base. So more answers to questions.
Did you found answers in the freebsd derivative community ?
 
I post that because we have the same kernel actually
FreeBSD NomadBSD 14.1-RELEASE-p7 FreeBSD 14.1-RELEASE-p7 GENERIC amd64
And I want to do the same like people under freebsd.
So, you want to make a FreeBSD derivative more like the original FreeBSD? 🤣

If that's the case, what's the point of the derivative?

It's probably easier to (just do a bit of customizing on the original) than to (take a derivative and roll back everything you don't want (leaving what you need))... 😂
 
Just curious: is there an advantage to a fresh compile of only the desired features vs a full build then removing features?
 
I'd say that the former offers more advantages.

As in, if you remove features from a full build (that somebody else did for you), you risk running into dependency hell, and breaking something that you didn't know you needed.

OTOH, if you have the skills to compile from scratch (and only pick what you need), there's no need to remove stuff later on, you can just keep using what you have, and not waste time thinking about how to properly remove unnecessary stuff (and risk breaking the whole machine if something goes wrong).

Sometimes, it helps to think in terms of what pitfalls (that are associated with the other option) you are able to avoid. I mean, compiling from scratch does involve taking the time to learn how to do it right. It's just that I prefer compiling from scratch to sifting through a train wreck.
 
I work in the Windows world.
Sifting through a train wreck is an apt description.
Especially so for Win10 and Win11.
Very few developers truly understand the word "uninstall" because they leave countless droppings behind.

I admire greatly FBSD for its inherent cleanliness.
There is a whole world of useful work that can be done without the burden of a GUI and its attendant problems.
Being able to build FBSD from scratch with only the desired tools is a huge bonus, IMO.
 
I work in the Windows world.
Sifting through a train wreck is an apt description.
Especially so for Win10 and Win11.
Very few developers truly understand the word "uninstall" because they leave countless droppings behind.

I admire greatly FBSD for its inherent cleanliness.
There is a whole world of useful work that can be done without the burden of a GUI and its attendant problems.
Being able to build FBSD from scratch with only the desired tools is a huge bonus, IMO.
In Windows, there's the idea of 'disabling' unnecessary features. It's not the same as 'uninstalling'. And, there's always the option of just ignoring the extra cruft until it gets in the way and creates performance issues on the hardware.

But even in the Windows world, I observed people preferring to build a basic, general-purpose image with minimal features, and then build upon it as needed. That's because sometimes the mess (left behind by un-installing applications) is just so big, it's far more practical to do a clean reinstall and rebuild from ground up. Well, that was for Enterprise Editions.

For consumer editions of Windows, removing/disabling unnecessary stuff is a neverending battle, one that forced me to move to FreeBSD, and stop wasting time on research on how to deal with it. I know that it's possible to compile Linux from scratch, but FreeBSD had by far the easiest to understand and most consistent documentation and automation for the task. And there was no rush to make all that documentation obsolete.
 
Another distro, although incorrect as of now, what a terrible idea. If it’s one thing I dislike is all the different distro’s on Linux. Except I have the choice of a rolling distro or some old but supposedly stable stuff. If you want to make FreeBSD better, stick your time in ports/packages. If the Linux community did just that instead of all those distro’s it would all be much nicer.
It’s open source. We already have so much choice. Which OS let’s you choose eg which graphical user environment you use? Right that is only *BSD and Linux. The power is in the packages available. That is where your own sauce is. Not some other distro.
 
In all my years with corporate contracts, I never used (or knew) that Enterprise Windows could be compiled without the junk.
The OS images were built in-house by the company team, so I had zero contact with doing this.

Every bit of installed software is inserted into the Windows message chain.
Every mouse movement, ad nauseum, is passed through the chain and acted-upon or ignored by each piece.
Even if disabled, the message receptor is still involved long enough to NOP and pass it along.

FBSD is very appealing because it can be compiled entirely without this waste.
In my mind, this makes FBSD a *very* fast and nimble OS, especially if running without the GUI.
 
Back
Top