Oracle Solaris 11.4 SRU 75 is now available via ‘pkg update’ from the support repository or by downloading the SRU from My Oracle Support Doc ID 2433412.1. Highlights of the changes in this release are given in the release announcement and important information to read before installing it is provided in the Readme linked from the above support document. This blog post provides more details about selected new features and interface changes in this SRU, as well as some preparation work for changes coming in future SRUs.
Data Management Features
ZFS mount/unmount -r option added
When mounting or unmounting filesystems, it is often useful to mount “everything”. However, zfs mount -a truly means “everything”, which is often far more than desired. This SRU introduces a new flag:
zfs mount -r dataset|path [dataset|path ...] zfs unmount -r dataset|path [dataset|path ...]
This flag causes the mount or unmount to mount or unmount all descendent filesystems or filesystems mounted at or beneath the specified mount point. As part of this change, multiple filesystems/mount points are now allowed to be specified in a single command, with or without the -r option.
There is no wildcard matching or partial matching performed by the zfs command. (Shells may expand wildcard matches before passing the arguments to zfs though.) All matches must be whole filesystem names which start from the pool name or absolute paths. That is zfs unmount -r /a will not affect /alt nor will -r pool/b affect pool/beta. See the zfs(8) manual page for details.
showmount(8), dfmounts(8), and dfshares(8) added support for MOUNTVERS3
The showmount(8), dfmounts(8) and dfshares(8) commands have added support for version 3 of the NFS mount protocol (MOUNTVERS3). While the Solaris NFS client code has long supported this version of the mount protocol, these helper utilities were still relying on version 1 of the mount protocol, and thus did not work with NFS servers which have dropped support for the old version.
smbadm(8) show-dcs added -u option
The smbadm show-dcs subcommand now accepts a new -u option. If the -u option is specified, the AD user accounts that are used for establishing connections with the Domain Controllers are also shown.
Networking Features
Using DNS options supplied with dhcp6 addresses to configure DNS client
Starting in SRU 75 dhcpagent can trigger a DNS client reconfiguration when a dhcpv6 address is instantiated and the dhcp server supplies dhcp options for DNS, or DNS dhcp options change. This change brings dhcp6 in line with the existing dhcpv4 behavior described by the resolv.conf(5) manpage, which also details steps to configure the system to ignore DNS updates by dhcpagent
The -R & –root-dir options removed from dladm(8) and flowadm(8)
In prior releases of Solaris, the -R and --root-dir options to the dladm(8) and flowadm(8) commands were used to make configuration changes that would become active on the next boot of the boot environment mounted at the specified directory. This functionality was removed in Solaris 11.4.0, but the options were still accepted and appeared to work, even though the changes would not be applied. Starting in SRU 75, these options now fail with a diagnostic message.
Performance and Observability
New pgrep(1)/pkill(1) options
A new option -Z limits the matching to processes in the current zone. This is only useful in the global zone as other zones cannot see processes from outside their zone.
Another new option “-r pidlist” limits the matching to processes which are part of the processes rooted in the listed processes.
These options can be combined the same way as other options. For example, “pgrep -r 1 -v” returns all kernel processes as these are not direct children of init.
Virtualization Features
LDoms WebUI sheet improvements
SRU 75 adds virtual disk and virtual network client stats to the LDoms Control Domain sheet in the Solaris WebUI. It also changes the names of the LDoms sheets to be more descriptive: LDoms Statistics is now LDoms Control Domain, LDoms VIO Servers is now LDoms Service Domain, and LDoms VIO Clients is now LDoms Guest Domain.
Reliability improvement for LDoms guest console connectivity
SRU 75 includes the fix for bug 36728864 in vntsd, which had prevented users from connecting to guest consoles.
Improvements to ‘ldm list-bindings’ and ‘ldm list-services’
The ‘ldm list-bindings‘ and ‘ldm list-services‘ subcommands now support the ‘-S‘ (status) and ‘-o‘ (filter output) options more fully.
System Management Features
CUPS printing changes
Starting with SRU 75 the CUPS SMF services, cups/scheduler and cups/in-lpd, are disabled by default. If you intend to keep using the services, you must enable them via the svcadm enable service command.
Additionally, the CUPS driverless printer driver has been delivered.
Enhancements for Developers
GCC 14 added
Version 14 of the GNU Compiler Collection has been added, including compilers for C, C++, Ada, Fortran, Go, and Objective C. Users of the C and C++ compilers may notice that GCC 14 has raised a number of issues from warnings to errors, which may impact your builds. See https://gcc.gnu.org/gcc-14/changes.html for more information on the changes in this generation of the GNU family of compilers, and Porting to GCC 14 for information on changes you may need to make to code and/or compiler flags in order to build it with GCC 14.
CTF Utilities
The CTF (Compact C Type Format) utilities, ctfconvert, ctfdump, and ctfmerge, long used to build the Solaris OS itself, are now delivered in /usr/bin as documented system utilities. CTF is used by important observability tools such as mdb and DTrace. Those who know these utilities from the versions found in other systems should note that some options differ from those versions. See the manpages for details.
This SRU also adds “ctf” to the list of strip classes accepted by ‘ld -z strip-class‘, and ‘strip -c‘, in order to allow CTF sections to be treated independently of the debug sections generated by the compilers for debuggers such as dbx and gdb.
Before Upgrading to SRU 75
Migration from Snort to Suricata
SRU 72 added Suricata as a replacement for the Snort open source network intrusion prevention and detection system (IDS). SRU 75 removes Snort, so customers will need to finish their migrations from Snort to Suricata. Suricata documentation can be found at https://docs.suricata.io/en/suricata-7.0.6/, including information on converting configuration from snort.conf to suricata.yaml.
Preparation for Upcoming SRUs
The following are a subset of the removals planned for future SRUs. See End of Feature Notices for Oracle Solaris 11 for the complete list of removals announced so far.
Migration from gcc 11 to a later version
SRU 75 provides packages for versions 11, 12, 13, and 14 of the GNU Compiler Collection. GCC 11 will be removed in a future SRU. Users of the gccgo compiler need to note that the removal of GCC 11 will also include the removal of the libgo.so.19 library used by Go programs compiled with GCC 11, and that they thus will need to recompile any such programs with a newer version of gccgo before upgrading to the SRU that removes it.
Migration from GTK 2 to a later version
SRU 75 provides packages for versions 2, 3, and 4 of the GTK toolkit. Upstream support for GTK 2 ended in December 2020 when GTK 4 was released. All of the GUI applications provided in Solaris have already moved to GTK 3 or 4, in preparation for the removal of GTK 2 in a future SRU. All locally built applications and ISV applications that use the system provided gtk2 package need to migrate to gtk3 or gtk4 as soon as possible. See Migrating from GTK 2.x to GTK 3 and Migrating from GTK 3.x to GTK 4 for help with migrating your applications.
Migration from OpenSSL 1.0.2 to 3.0
SRU 75 provides packages for both versions 1.0.2 & 3.0 of the OpenSSL libraries. OpenSSL 1.0.2 will be removed in a future SRU; likely no earlier than the January 2025 SRU. All locally built applications and ISV applications that use the system provided OpenSSL 1.0.2 need to migrate to OpenSSL 3.0 as soon as possible. The OpenSSL Foundation has supplied a OpenSSL 3.0 migration guide to help with this. Migration to OpenSSL 3 of Solaris delivered packages is ongoing and continues to be delivered incrementally over a number of SRUs.
Migration from PCRE to PCRE2
SRU 75 provides packages for both ABI versions 1 and 2 of the Perl Compatible Regular Expressions (PCRE) library, as provided by library/pcre (version 8.45) and library/pcre2 (version 10.42). Upstream ended support for the version 1 API/ABI after June 2021 and recommends all users port to version 2. Migration of the Solaris delivered packages to the new version is ongoing and continues to be delivered incrementally over a number of SRUs. Once this is complete, the package for version 1 will be obsoleted and removed on upgrade. All locally built applications and ISV applications that use the system provided libpcre need to migrate to libpcre2 as soon as possible.
Migration from Perl 5.36 to 5.38
SRU 75 provides packages for Perl versions 5.36 and 5.38. Upstream support for Perl 5.36 has ended. Perl 5.36 will be removed in a future SRU. All locally built applications and ISV applications that use the system provided Perl 5.36 need to migrate to a later version as soon as possible. See https://perldoc.perl.org/perl5380delta for information on the changes between Perl 5.36 and 5.38. Migration of Solaris delivered core functionality is being delivered incrementally over a number of SRUs.

