Confusion in a fresh desktop install

I have been trying to install FreeBSD on my desktop for a few days now, and I would like to point out a few things to help new users avoid getting stuck.
The new Packages (Experimental) installer option does not include ports, so if you want them, you have to install Git or similar and use the handbook, or download them manually from the GitHub repository or similar (do not download the release ports.txz if it is been a while since it was released: you will get outdated ports and no tools installed to update them).
Most of the packages I have installed that have a sample configuration file also install the configuration file itself. For example, when installing security/doas, I get a message saying I need to create a file in /usr/local/etc/doas.conf, but this file is already created, and it is identical to doas.conf.sample in the same directory (and it grants permissions to users that do not exist). ports-mgmt/poudriere is another example.
dbus_enable="YES" in /etc/rc.conf is deprecated, it is no longer necessary to enable dbus and sysrc does not recognize it. No message appears during package installation (which is OK), but I have not seen it mentioned in the forum, and it appears in the handbook when configuring desktops. Another deprecated option seems to be vm.swap_enabled.
x11-wm/labwc installs the executable, but no configuration sample files for this Openbox inspired window manager for Wayland, or at least I have not found them. In other words, if you install it, it works, but if you want to configure it, you have to create autostart, menu.xml, and rc.xml yourself. I recommend checking github.com/labwc/labwc/tree/master/docs, which is not a great resource either, or looking at someone using Openbox, like https://github.com/raven2cz/openbox-config.
The configuration for x11/ly recommended in your installation message and the handbook differ in the following points (first handbook, second message):
Code:
Ly:\
:lo=/usr/local/bin/ly:\
:al=root:
Code:
Ly:\
:lo=/usr/local/bin/ly_wrapper:\
:al=root:
Code:
ttyv1 "/usr/libexec/getty Ly" xterm onifexists secure
Code:
ttyv1 "/usr/libexec/getty Ly" xterm on secure
I have tested the ones in the message and they work, I have not tested the ones in the handbook.

If I find anything else, I will share it here. Any other information you would like to add that would make things easier for newcomers is welcome.
 
The new Packages (Experimental) installer option does not include ports, so if you want them, you have to install Git or similar and use the handbook, or download them manually from the GitHub repository or similar (do not download the release ports.txz if it is been a while since it was released: you will get outdated ports and no tools installed to update them).
You don't need a ports tree if you only install packages.

For example, when installing security/doas, I get a message saying I need to create a file in /usr/local/etc/doas.conf, but this file is already created, and it is identical to doas.conf.sample in the same directory (and it grants permissions to users that do not exist).
When you install a port/package that has a default configuration file it will always be installed as *.sample, it will only create the non-sample named file if it doesn't already exist. The <config> and <config>.sample file will be exactly the same.

dbus_enable="YES" in /etc/rc.conf is deprecated, it is no longer necessary to enable dbus and sysrc does not recognize it.
No, it isn't. And sysrc(8) doesn't check, and certainly won't complain. You can add whatever you want with it, even non-existing stuff; sysrc sirdice_enable="YES" will work perfectly fine. It doesn't do anything, but it'll get added to rc.conf nonetheless.
 
@SirDice, I am not looking a fight, I just wanted to point out some things that have made my system installation difficult and that I do not currently see documented, although I am sure they will be in the future.
You don't need a ports tree if you only install packages.
I do not just want to install packages, I want to compile with ports-mgmt/poudriere. I understand that ports cannot be converted into a package because it would not update correctly with devel/git, but it is an option that has been removed from the installer, even though I think there will be users who want to install from ports when Packages becomes the official installation method in FreeBSD 16.
When you install a port/package that has a default configuration file it will always be installed as *.sample, it will only create the non-sample named file if it doesn't already exist. The <config> and <config>.sample file will be exactly the same.
I was not aware of this, and it seems to be approved as good. I won't edit my initial message because I do not think it is appropriate, but it is outside the scope of the problems I mention in the thread.
No, it isn't. And sysrc(8) doesn't check, and certainly won't complain. You can add whatever you want with it, even non-existing stuff; sysrc sirdice_enable="YES" will work perfectly fine. It doesn't do anything, but it'll get added to rc.conf nonetheless.
Technically your answer is valid, but sysrc sirdice_enable="YES" and sysrc dbus_enable="YES" do the same thing: nothing (well, except that the boot process has to read a line and marks it as incorrect...). It should be commented out so that it stops being used, just as at one time it was said that sysrc hald_enable="YES" was no longer necessary.
 
Technically your answer is valid, but sysrc sirdice_enable="YES" and sysrc dbus_enable="YES" do the same thing
Except the fact that dbus_enable="YES" causes dbus-daemon(1) from devel/dbus to start at boot. Plenty of applications depend on it.

marks it as incorrect.
It's not "marked" as incorrect, it's perfectly valid shell syntax and doesn't cause an error or do something unexpected, it's simply ignored.

just as at one time it was said that sysrc hald_enable="YES" was no longer necessary.
Yes, that's unnecessary, because sysutils/hal doesn't exist any more. Still, actually adding it to rc.conf won't produce errors or warning, it's simply ignored.
 
I understand that ports cannot be converted into a package because it would not update correctly with devel/git,
what?
I think you have a basic misunderstanding of what ports and packages are.
-> https://docs.freebsd.org/en/books/handbook/ports/


regarding dbus: as SirDice pointed out, sysrc doesn't 'recognize' anything - it just checks for valid rc syntax and adds it to rc.conf. And dbus *is* still necessary for some of the bloated and linuxism-littered DEs and/or some single programs that refuse to start without it (even if nothing else talks to them over dbus).
 
Except the fact that dbus_enable="YES" causes dbus-daemon(1) from devel/dbus to start at boot. Plenty of applications depend on it.


It's not "marked" as incorrect, it's perfectly valid shell syntax and doesn't cause an error or do something unexpected, it's simply ignored.


Yes, that's unnecessary, because sysutils/hal doesn't exist any more. Still, actually adding it to rc.conf won't produce errors or warning, it's simply ignored.
regarding dbus: as SirDice pointed out, sysrc doesn't 'recognize' anything - it just checks for valid rc syntax and adds it to rc.conf. And dbus *is* still necessary for some of the bloated and linuxism-littered DEs and/or some single programs that refuse to start without it (even if nothing else talks to them over dbus).
I just checked and I have about 30 packages that require dbus.
You are saying that some packages still depend on dbus_enable="YES", but sysrc does not recognize the syntax. Do not you think that is a mistake? @drhowarddrfine, I am saying that dbus_enable="YES" is not necessary for dbus starting on my system. Do you have 30 packages that depend on starting dbus as @sirDice says? Are they devel packages? Because if they are just simple package dependencies, I did not say that dbus is no more necessary, I said that in my installation, dbus starts without dbus_enable="YES".
what?
I think you have a basic misunderstanding of what ports and packages are.
-> https://docs.freebsd.org/en/books/handbook/ports/
Perhaps I did not explain myself well: I am saying that with the new installation using Packages (Tech Preview), fresh system install cannot create a package with the ports of the release, therefore the new installation that only installs packages cannot include ports. Better explication now?
 
Perhaps I did not explain myself well: I am saying that with the new installation using Packages (Tech Preview), fresh system install cannot create a package with the ports of the release, therefore the new installation that only installs packages cannot include ports. Better explication now?
No, this is still fundamentally wrong. Again: look at the handbook what ports and packages are.
It is also completely irrelevant in that regard if you update the base system the 'normal' way or via pkgsrc.

sysrc does not recognize the syntax
SYSRC
DOES
NOT
RECOGNIZE
ANYTHING
Code:
# sysrc dbus_enable="YES"
dbus_enable: YES -> YES
# sysrc sysrc_does_not_recognize_anything_enable="YES"
sysrc_does_not_recognize_anything_enable:  -> YES
# tail -n2 /etc/rc.conf
dbus_enable="YES"
sysrc_does_not_recognize_anything_enable="YES"
It just checks if whatever you throw at it is syntactically correct for rc.conf and adds it. PERIOD.
If you dont believe anyone here, just look at it - it's just a shellscript, so you can directly open and read it.
 
I am saying that dbus_enable="YES" is not necessary for dbus starting on my system.
It should be because something others you enabled (or any of leaf applications that really require DBUS to run and having codes to forcibly start DBUS service whenever it can find dbus-launch or dbus-run-session in PATH and kick it).

Not exactly the same, but anything in Mate DE (I cannot yet figured out, though) forcibly kicks pulseaudio even if pulseaudio is disabled for autostart if it cannot find pulseaudio daemon (or any compatible alternative like pipewire-pulse) is up and running. Maybe the same kind of things are happening.

It just checks if whatever you throw at it is syntactically correct for rc.conf and adds it. PERIOD.
For introducing new variable, yes.

But there's at least an exception, appending values to variables.

/bin/sh that actually handles /etc/rc.conf as shell script doesn't allow foo+=bar style of syntax (for example, if variable foo already has values apple pen, adding pineapple to it need to be like foo="${foo} baz", then, foo would become apple pen pineapple), but sysrc(8) allows the syntax. As you can see in the manpage, sysrc(8) checks already existing component and appends newly added ones only.
The same can be said for subtractions (buz-=bar style).

I'm not using sysrc as I'm old enough to edit system configuration files like /etc/rc.conf manually and having conditionals by abusing /etc/rc.conf is actually a /bin/sh shell script.
 
I am saying that dbus_enable="YES" is not necessary for dbus starting on my system.
I turned off dbus on my 15.3-RELEASE and rebooted. service dbus status shows dbus is not running.
pkg info -r dbus shows which packages installed dbus as a dependency:
firefox-154.0.1,2
chromium-151.0.7922.137_2
qt6-base-6.11.1
pipewire-1.6.6
jackit-1.9.22_3
py312-dbus-1.4.0
pulseaudio-17.0_4
consolekit2-2.0.0_1
colord-1.4.8_2
at-spi2-core-2.60.4
deno-2.9.1_1
cups-2.4.19_1
polkit-127
dconf-0.49.0
avahi-app-0.8_6
dbus-glib-0.114
 
Back
Top