Today we've released #OracleSolaris 11.4.72, our quarterly feature update. The announcement is at https://blogs.oracle.com/solaris/post/announcing-oracle-solaris-114-sru72 and lists the new features and software upgrades included.
In #OracleSolaris 11.4.72, setting the mountpoint of a #ZFS clone to 'clonedir' will now cause that clone to be mounted under the head filesystem's .zfs/clone directory. Doing a mkdir of a clone name in the .zfs/clone directory will create a snapshot of the dataset and then clone it. The zfs(8) man page was updated with more information.
NFS mounts in #OracleSolaris 11.4.72 can now use the 'noresvport' option, similar to Linux, to use random port numbers above 1023 for connecting to NFS servers, which can be helpful when multiple #NFS clients are behind the same NAT gateway.
Since no Solaris systems existed before 1970, the timestamp field in the lastlog, utmpx, and wtmpx files in #OracleSolaris 11.4.72 has been redefined as an unsigned 32-bit int, where it was previously signed. This moves the range of possible timestamps from 1901–2038 to 1970–2106. The core OS software has been modified to reflect this, but other software may need changes to handle timestamps in these files with the highest bit set as being post-2037 instead of pre-1970.
The value of IOV_MAX in the <limits.h> header has been raised from 16 to 1024 in #OracleSolaris 11.4.72. This increases the number of members which may be passed in an iovec array in each call to the functions listed on the send(3c), recv(3c), write(2), and read(2) man pages. The higher value will also be returned when calling sysconf(_SC_IOV_MAX), except in Solaris 10 branded zones.
The umask(2) system call does not allow querying the current umask without specifying a new process-wide umask to put in place, making it problematic in multi-threaded programs. #OracleSolaris 11.4.72 adds a new getumask(2) system call to read the current umask value without setting it. A new pr_umask field was also added to the /proc/pid/psinfo file, and the pfiles(1) command has been modified to print the current umask value for the target process.
Packages removed from the #OracleSolaris package repository in the 11.4.72 SRU:
- gnome-common
- vino & vinagre
- libconfuse
- libtorrent and rtorrent
- Apache Tomcat 8.5
- Python 3.7
Tomcat 9.0, Python 3.9, and Python 3.11 are available to replace the removed versions.
Recent additions to the EOF list include:
- Snort
- GTK2
- perl 5.36
- Node.js 18
- yelp, devhelp & webkitgtk4
The full EOF list, as always, can be seen at https://www.oracle.com/solaris/technologies/end-of-feature-notices-solaris11.html .
Also removed in #OracleSolaris 11.4.72 was the release note that previous SRU's had warning that the text installer would run out of memory with the documented minimum requirements of 4GB of RAM. The note was added after the Python 2->3 conversion of the installer, and removing it was done after a series of fixes, including changes in the kernel virtual memory manager, moving to Python 3.9, switching to rapidjson, and backporting https://github.com/python/cpython/pull/113118 to 3.9 so we could use posix_spawn().
More details and more new features in #OracleSolaris 11.4.72 are provided in the "What's New in SRU 72" blog at https://blogs.oracle.com/solaris/post/whats-new-in-oracle-solaris-114-sru72
Diffs of the core OS man pages between #OracleSolaris 11.4.69 and 11.4.72 are at https://gist.github.com/alanc/6588edeb91692c7145f0e22363a8a5b8 so you can see more about what changed in the software, as well as some of the documentation cleanups we did.
My personal contributions to #OracleSolaris 11.4.72 include cleanup/editing passes over section 4, 4fs, & 4i man pages; adopting the POSIX.1-2024 "manager" and "subsidiary" terms for ptys in our man pages; removing gnome-common, vino, & vinagre; tagging libvisual as legacy for removal in a later SRU; updating pinentry to 1.2.1 and enabling libsecret support in it; and correcting the dependencies in our xinit package.
For those who want to upgrade to #OracleSolaris 11.4.72 but who aren't ready to lose the Python 3.7 packages yet, Vlad has posted our new solution for handling that:
https://blogs.oracle.com/solaris/post/oracle-solaris-has-obsoleted-python-37-but-i-still-need-it-what-do-i-do
@alanc vino & vinagre are the best names ever! It would be fun if "vino" were to be renamed to "vinagre" after the maintainer decided to stop supporting the software.
@lucasvr I don't know who in the GNOME project originally picked the Vino & Vinagre names for their VNC server & client, but I think they ended vinagre maintenance before vino, instead of letting the decaying vino turn into vinagre.
@alanc ha! Thanks for the context :-)
@alanc @lucasvr vino was started and named by Sun’s very own Mark McLoughlin. I think vinagre was originally the work of John Wendell, a Brazilian developer who works for Red Hat these days.
So basically time_t is now unsigned for ILP32 binaries? Nice!
@danmcd Happy Birthday! And hopefully many happy returns past the end of the old range!
@danmcd not in general, since that has a lot of other implications. We just changed the structs for lastlog, utmpx, & wtmpx to use uint32_t instead of time32_t.
So THAT makes even more sense.
@danmcd it helped that all the software in the core OS that reads or writes those files is already converted to LP64, so we didn't have to invent new unsigned_strftime calls or anything, just let it handle the conversion from uint32_t to the 64-bit time_t without doing sign extensions.
@alanc I never understood why time_t is signed anyway...is there a good reason?
@olbohlen I don't know, my best guess would be they wanted to preserve timestamps when moving files/data from older systems.
@alanc hmm, Yepp...that could make sense
@alanc this is pretty gas actually
@alanc thanks for continuing these announcements, I appreciate them!