MacOS – Are the macOS man pages outdated

documentationmacosmansoftware-updateunix

I run macOS 10.14.6, "Mojave". I've been studying man screen to make some changes to its default behavior. The 2nd & 4th paragraphs under CUSTOMIZATION read:

When screen is invoked, it executes initialization commands from the files "/usr/local/etc/screenrc" and ".screenrc" in the user's home directory. These are the "programmer's defaults" that can be overridden in the following ways: for the global screenrc file screen searches for the environment variable $SYSS-CREENRC (this override feature may be disabled at compile-time). The user specific screenrc file is
searched in $SCREENRC, then $HOME/.screenrc. The command line option -c takes precedence over the above
user screenrc files.

4th para:

Two configuration files are shipped as examples with your screen distribution: "etc/screenrc" and
"etc/etcscreenrc". They contain a number of useful examples for various commands.

But it seems there are some discrepancies:

  • /usr/local/etc does not exist
  • $SYSSCREENRC is not defined (echo $SYSSCREENRC => null)
  • $SCREENRC is not defined
  • etc/screenrc does not exist (nor does private/etc/screenrc)
  • etc/etcscreenrc does not exist (nor does private/etc/etcscreenrc)

I've assumed that all the "Unix stuff" in macOS is maintained by Apple, and updated when required, just as the "other stuff" is. However, as my system is up-to-date, that may not be the case.

Question…

Is there a separate update process in macOS required to get updates for the Unix tools and system manuals? For example, according to man screen Apple packages screen ver 4.0.2 (January 2004 vintage) with macOS 10.14.6; that release was 16 years ago this month.

Is there a process outside macOS for updating this part of the system that's "sanctioned" by Apple? (By "sanctioned" I only mean a procedure designated by Apple to maintain system integrity.)

If not, has Apple acknowledged this situation? By that I'm only trying to learn if I missed something.

Best Answer

Is there a separate update process in macOS required to get updates for the unix tools and system manuals? For example, according to man screen Apple packages screen ver 4.0.2 (January 2004 vintage) with macOS 10.14.6; that release was 16 years ago this month.

No. There is no separate process to update Unix tools/utilities.

It’s just very unlikely that the Unix tools will be updated past the versions you’re seeing now.

Why? GPL Licensing.

Using screen as an example, it will likely remain on version 4.0.2 because that was the last version that used the less restrictive GPLv2 public license. Version 4.2 (2007) and subsequent releases use the GPLv3 which Apple generally doesn’t want to comply with.

See Is macOS mostly closed source? for more info.

As to the issues you raised regarding screen:

  • /usr/local/etc is a BSD directory. A lot of macOS has BSD underpinnings, but this directory is not used.
  • A lot of environment variables are not set by the OS and this is quite common across all OSes; macOS, BSD, and even Linux distros like RedHat.
  • Sample config files not being included in the OS is also common
  • Apple doesn’t rewrite the man pages for the changes they make (which the GPLv2 license allows them to do)

If not, has Apple acknowledged this situation? By that I'm only trying to learn if I missed something.

There’s nothing to acknowledge as this was done intentionally by Apple. If you want to “update” to the latest version of a Unix utility, you either have to compile it from source, use MacPorts or HomeBrew. You’ll have to manage the updating of them, however.

Are macOS man pages outdated?

No. They are the correct man pages for the versions of the utilities that ship with macOS.