Hello there everyone! Sorry if this thread is a duplicate or violates the rules in any way, I researched as well as I could before posting.
I realize that the FreeBSD way of ports configuration is by means of an Ncurses option selection menu for each package, however I do prefer as much as possible to streamline and generalize my configs, as for example if I never plan on using Dbus for anything but want all ports that support it to be compiled with png support, I think it's logical to specify them globally. I've been using Gentoo as my go to for the last 10 years and although I believe I understand the FreeBSD way, I'd love to configure my ports using one centralized make.conf file to the largest extent possible.
I came across this forum post https://forums.freebsd.org/threads/how-to-manage-options-easily-and-globally.54508/ which 8 years ago discussed what I'm getting at. It mentioned this file from the FreeBSD source code https://cgit.freebsd.org/ports/tree/Mk/bsd.options.desc.mk which lists and describes all possible ports' options you could use under make.conf. I would love to clarify a few things.
Thank you very much for your patience. I've been using Gentoo for 10-13 years, started right before what I call the "Linux YouTuber explosion." I'm now almost finishing an engineering degree, and I'm continually growing disillusioned with the Linux ecosystem and the direction it's heading. FreeBSD's documentation is incredibly nice, it's one solid OS, and I would love to dive deep into it's internals and maybe contribute in the future, but for the moment this issue prevents me from doing so.
I realize that the FreeBSD way of ports configuration is by means of an Ncurses option selection menu for each package, however I do prefer as much as possible to streamline and generalize my configs, as for example if I never plan on using Dbus for anything but want all ports that support it to be compiled with png support, I think it's logical to specify them globally. I've been using Gentoo as my go to for the last 10 years and although I believe I understand the FreeBSD way, I'd love to configure my ports using one centralized make.conf file to the largest extent possible.
I came across this forum post https://forums.freebsd.org/threads/how-to-manage-options-easily-and-globally.54508/ which 8 years ago discussed what I'm getting at. It mentioned this file from the FreeBSD source code https://cgit.freebsd.org/ports/tree/Mk/bsd.options.desc.mk which lists and describes all possible ports' options you could use under make.conf. I would love to clarify a few things.
- I've seen in the above mentioned thread and in some other places online, that there are a few keywords that are used for what I'm describing, and they are OPTIONNAME_USE and OPTIONNAME_UNUSE, but also OPTIONNAME_WANT and OPTIONNAME_UNWANT, and PORTNAME_OPTIONNAME_SET and PORTNAME_OPTIONNAME_UNSET. I suppose the last two are used for per-port configuration. What are the differences between the other two?
- One gentleman (or woman of course) mentions in the forum post I've mentioned that I shouldn't "go crazy with sticking things in your "OPTIONS_UNSET" line in /etc/make.conf; if do, 'll probably end up un-setting options that don't exist for any ports have installed anyway." However I would very much like to do that. It makes a lot of sense to me to set and unset options for ports that I might install in the future. Again my example, I want png and ffmpeg support, but will never want any dbus or gtk support ever, or maybe just in one single specific package.
- As soon as I jot out all of the ports' options my heart desires, what is the recommended way to go about installing the ports? Do I simply go to the ports folder and "make"? Won't that open up the same ncurses menu? If it won't, will it take in mind all of the changes I made to make.conf? I've heard many different tools mentioned in various posts, such as poudriere, tinderbox, portmaster, etc.. What is the case for each one? Given that my goal is to get as close to the centralized Gentoo way as possible with as little interaction upon ports building as possible, as that would save me copious amounts of time and keep all of my packages in sync configuration-wise, what should I use?
Thank you very much for your patience. I've been using Gentoo for 10-13 years, started right before what I call the "Linux YouTuber explosion." I'm now almost finishing an engineering degree, and I'm continually growing disillusioned with the Linux ecosystem and the direction it's heading. FreeBSD's documentation is incredibly nice, it's one solid OS, and I would love to dive deep into it's internals and maybe contribute in the future, but for the moment this issue prevents me from doing so.