FreeBSD 14 fresh install breaks mc (Midnight Commander) subshell support
We are very happy to announce that - if you did not know already - one of the best Operating System released a new version. FreeBSD 14.
This version of FreeBSD changed a lot at userspace. Seems like they started to focus on User Experience to win newcomers from fancy linux world.
To name a few let's just quote their mention in the beginning.
The default shell for the root user is now sh(1), which has many new features for interactive use.
The default mail transport agent (MTA) is now the Dragonfly Mail Agent (dma(8)) rather than sendmail(8). Configuration of the MTA is done via mailer.conf(5). sendmail(8) and its configuration remain available.
In our experience both of changes cause troubles.
One of our machine has it's own purpose, so we just removed the ability to deliver local mails.
However after an upgrade to FreeBSD 14.0 the new DMA (mailer) still tried to deliver into void which caused a bunch of process hanging on a memory pool until the server ran out of memory and the first crash happened after years of flawless running. - Yuck.
Midnight Command (mc)
Don't have to introduce, thats a standard for everyone.
After a FreeBSD 14.0 fresh install you are going to face with strange error when you want to run mc command after installing it.
It says:
common.c: unimplemented subshell type 1
read (subshell_pty...): No such file or directory (2)
The problem: As I mentioned above, the FreeBSD 14.0 changed the default shell to /bin/sh which is not supported for mc as a subshell. The subshell is a forked process that you can run command in the background while mc is running, the hotkey to bring it up is CTRL + O.
The Solution: Change back your shell to /bin/csh. That is the way.
pw user mod root -s /bin/csh
Dragonfly Mail Agent (dma)
I have never seen before, some article mention this back in time 2017.
I wanted to get rid of it, so here it is how I done. Anyway the dma shortname is very unfortunate, because if you would like to search about dma on FreeBSD you will get results of Direct Memory Access things, not this mailer.
If you want to get rid of this, you should check /etc/mail/mailer.conf
Another Bug: /usr/include/c++/v1/__string directory missing
Update: 2023.12.20 gettext port fail to build due /usr/include/c++/v1/__string missing.
After a freebsd-update there were signs, like this one:
Installing updates...install: ///usr/include/c++/v1/__string exists but is not a directory
install: ///usr/include/c++/v1/__string/char_traits.h: Not a directory
install: ///usr/include/c++/v1/__string/extern_template_lists.h: Not a directory
To fix that you should re-create that by the following:
cd /usr/include/c++/v1
mkdir __string
cd __string
fetch https://raw.githubusercontent.com/freebsd/freebsd-src/releng/14.0/contrib/llvm-project/libcxx/include/__string/char_traits.h
fetch https://raw.githubusercontent.com/freebsd/freebsd-src/releng/14.0/contrib/llvm-project/libcxx/include/__string/extern_template_lists.h
Credit to Vedran at https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=273661