# Versions of base-system components



## kjpetrie (Apr 12, 2019)

How can I find the version of programs provided in the FreeBSD base system? I have been scouring documentation for hours without finding any mention of this. In particular, I'm trying to identify the version of sendmail included in RELEASE-11.2, but the principle would apply to everything which is not a port or package.


----------



## vall (Apr 23, 2019)

Because of holistic model of development FreeBSD doesn't have version numbers for every piece of system.
Say GNU `ls` has flag `--version` because `ls` is part of GNU coreutils that is such version, FreeBSD doesn't have versions of core programs. Number of FreeBSD Release establishes number of whole system.
But almost all contributed software (such as clang, ld, GNU as, xz) has version numbers and can be get by `--version` flag or in svn log. Say I can look to ncurses svn dir and see that it's 5.9 in FreeBSD 12. Likewise mandoc in Current is 1.14.5.

Finally a lot of numbers are in Release Notes ))


----------



## Yampress (Apr 23, 2019)

version of kernel
% *uname -a*
FreeBSD freebsd 12.0-RELEASE-p3 FreeBSD 12.0-RELEASE-p3 GENERIC  amd64
% 

versoin of system
% *freebsd-version*
12.0-RELEASE-p3
%


----------



## SirDice (Apr 23, 2019)

kjpetrie said:


> How can I find the version of programs provided in the FreeBSD base system?


The base OS is treated as a whole. Not as a collection of utilities and libraries.


----------



## vall (Apr 23, 2019)

SirDice said:


> The base OS is treated as a whole. Not as a collection of utilities and libraries.



But if dude wants to know version of sendmail he can find that is 8.14.9.


----------



## kjpetrie (Apr 25, 2019)

Thanks for the replies. I find the situation rather odd, in the sense that it treats the base system as a single item when it is actually made up of multiple programs, each with its own version number which is needed for establishing which features are available. Not having a simple standard way to determine this information does seem like a limitation.


----------



## ralphbsz (Apr 25, 2019)

I don't agree.  If you are running FreeBSD version 11.2, then the `cp` utility (just as an arbitrary example) will be version 11.2, and its documentation will match the result of running "man cp" on the machine, and will match the man page on the FreeBSD web server for that version.  They do not have their own version number.  There is no possibility of confusion, unless you deliberately replaced them, or built your own system from modified sources (in which case all bets are off anyway).

Now, some base system utilities do have their own individual version numbers.  I just picked a random example: `ntpq` reports itself to be "4.2.8p11-a (1)" on my 11.2 machine, whatever that might mean.  And clearly it is different from the version of other programs, like svnlite is "1.9.7 (r1800392)", whatever that might mean.  You have to trust the people who built the base system that they matched the correct version of executables and man pages.

Yes, in FreeBSD the base system is a single "package" or "installable" or "repository", with a single version, which is easy to determine using `freebsd-version`.


----------



## rigoletto@ (Apr 25, 2019)

The third party software in base is quite often modified in order to archive better integration with the OS, and so that would be quite misleading to tag the upstream version they were got from since that would not reflect the reality.


----------



## PMc (Apr 25, 2019)

vall said:


> But if dude wants to know version of sendmail he can find that is 8.14.9.



Indeed?

```
$ sendmail -d0.1
Version 8.15.2
[...]
^D
$ svn log /usr/src/contrib/sendmail
[...]
r285229 | gshapiro | 2015-07-07 04:59:02 +0200 (Tue, 07 Jul 2015) | 4 lines

Merge sendmail 8.15.2 to HEAD
[...]
```

Seaching SVN is not foolproof , but almost all contributed programs have their own means to report their current version. I only need that if I want to work with that specific piece, and then I can find out how to retrieve it. `man sendmail` would have helped.


----------

