Since four years JomaSoft produces Solaris 11.4 IPS packages
of opensource software. After postgres openjdk was added.
After 17.0.19 in April 2026, we provide now a package
with version 17.0.21.0.3.
Based on the work done by Peter Tribble. Thanks Peter!
https://github.com/ptribble/jdk-sunos-builder
Download Page
https://www.jomasoft.ch/downloads/#js-openjdk
Direct p5p Download Link
https://bit.ly/js-openjdk17-sparc
The package is provided without support or warranty.
Use at your own risk.
Marcel Hofstetter Solaris Blog
News, Tips & Tricks and Ideas about Oracle Solaris.
02 November 2026
JomaSoft provides OpenJDK 17.0.21 package for Solaris 11.4 SPARC
22 October 2026
Solaris and Linux compared: Filesystems
Today we compare Solaris and Linux.
Which steps are required to create filesystems on a new virtual disk?
a) Linux
Here we are on a Redhat 10 system
[root@red10]# uname -ro
6.12.0-211.29.1.el10_2.x86_64 GNU/Linux
We have a new unused disk
[root@red10]# lsblk /dev/sdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sdb 8:16 0 2G 0 disk
First we have to initialize the disk
[root@red10]# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created.
and then create a Volume Group
[root@red10]# vgcreate datavg /dev/sdb
Volume group "datavg" successfully created
Now a Logical Volume
[root@red10]# lvcreate -n data1 -L1g datavg
Logical volume "data1" created.
[root@red10]# mkfs.xfs /dev/mapper/datavg-data1
meta-data=/dev/mapper/datavg-data1 isize=512 agcount=4, agsize=65536 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=1
= reflink=1 bigtime=1 inobtcount=1 nrext64=1
= exchange=0 metadir=0
data = bsize=4096 blocks=262144, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1, parent=0
log =internal log bsize=4096 blocks=16384, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
= rgcount=0 rgsize=0 extents
= zoned=0 start=0 reserved=0
And finally we create a directory and mount the new filesystem
[root@red10]# mkdir /mydata
[root@red10]# mount /dev/mapper/datavg-data1 /mydata
To mount the filesystem automatically at boot we have to
add it to fstab
[root@red10]# blkid /dev/mapper/datavg-data1
/dev/mapper/datavg-data1: UUID="7fd552b2-1f10-4b87-bcc8-f22a22fc1f6c" BLOCK_SIZE="512" TYPE="xfs"
[root@red10]# echo 'UUID=7fd552b2-1f10-4b87-bcc8-f22a22fc1f6c /mydata xfs defaults 0 0' >>/etc/fstab
b) Solaris
We are on a Solaris 11 system
root@vbox-cbe:~# uname -ro
5.11 Solaris
We have a new disk
root@vbox-cbe:~# echo | format | grep c1t3
c1t3d0: configured with capacity of 2.00GB
1. c1t3d0 <VBOX-HARDDISK-1.0-2.00GB>
With zfs we use one command to initialize the disk.
root@vbox-cbe:~# zpool create mypool c1t3d0
After this step, we already have a first
mounted filesystem to use.
root@vbox-cbe:~# zfs list mypool
NAME USED AVAIL REFER MOUNTPOINT
mypool 98.5K 1.95G 31K /mypool
It is easy to create additional filesystems
root@vbox-cbe:~# zfs create -o mountpoint=/mydata mypool/mydata
root@vbox-cbe:~# zfs list -r mypool
NAME USED AVAIL REFER MOUNTPOINT
mypool 149K 1.95G 31K /mypool
mypool/mydata 31K 1.95G 31K /mydata
Summary
On Solaris a new filesystem is created with only 2 commands
compared to 8 commands on Linux.
Easy to understand why I prefer Solaris and ZFS
29 September 2026
Reduce the duration of Solaris SRU updates using JomaSoft VDCF
A typical Solaris SRU update on a system with a few zones takes several minutes.
Here an example of a small guest domain with 3 zones.
-bash-5.2$ time node -c upgrade name=g0075 build=s11u4-sru95 >/dev/null
Upgrade started for System g0075 ...
Node g0075 updated to Solaris 11 4.95.0.1.227.1. A new boot environment was created.
Reboot Node g0075 to activate new boot environment.
real 19m42.319s
user 0m1.813s
sys 0m5.892s
Using VDCF we can easily failback and do the upgrade again
-bash-5.2$ node -c upgrade_failback name=g0075 destroy
WARN: BootEnvironment 's11.4.94.0.1.221.2' is already in use (N) on Node g0075. Activating for next reboot...
Destroying BootEnvironment 's11.4.95.0.1.227.1' on Node g0075
Node g0075 is already running on BootEnvironment s11.4.94.0.1.221.2.
This time we execute the VDCF upgrade_check operation to do the planning and the
download of the ips packages in advance. This is typically done during the week.
-bash-5.2$ time node -c upgrade_check name=g0075 build=s11u4-sru95 download | egrep "Upgrade|Finished"
Upgrade Check started for System g0075 ...
Planning: Finished processing linked images.
Download: Finished processing linked images.
Node Upgrade (to Solaris 11 4.95.0.1.227.1) Check was successful for Node g0075
real 15m8.797s
user 0m1.985s
sys 0m5.986s
At the maintenance window only the real upgrade is executed.
-bash-5.2$ time node -c upgrade name=g0075 build=s11u4-sru95
Upgrade started for System g0075 ...
Checking JSvdcf-client package on node g0075 and update if required: OK
doing a 'pkg update -C 5 --accept --be-name s11.4.95.0.1.227.1 entire@11.4,5.11-11.4.95.0.1.227.1 explorer ddt-incorporation' now ...
Actions: 1/44039 actions (Removing old actions)
Actions: 7512/44039 actions (Installing new actions)
Actions: 12768/44039 actions (Installing new actions)
Actions: 13575/44039 actions (Updating modified actions)
Actions: 18830/44039 actions (Updating modified actions)
Actions: 19608/44039 actions (Updating modified actions)
Actions: 24254/44039 actions (Updating modified actions)
Actions: 27711/44039 actions (Updating modified actions)
Actions: 31772/44039 actions (Updating modified actions)
Actions: 36696/44039 actions (Updating modified actions)
Actions: 41083/44039 actions (Updating modified actions)
Actions: 43736/44039 actions (Updating modified actions)
Actions: Completed 44039 actions in 45.93 seconds.
Finalize: Updating package state database ... Done
Finalize: Updating package cache ... Done
Finalize: Updating image state ... Done
Finalize: Creating fast lookup database ... Done
Finalize: Reading search index ... Done
Finalize: Building new search index ... Done
Finalize: Linked images: 0/3 done; 3 working: zone:v0153 zone:v0183 zone:v0186
Finalize: Linked images: 1/3 done; 2 working: zone:v0183 zone:v0186
Finalize: Linked images: 2/3 done; 1 working: zone:v0183
Finalize: Finished processing linked images.
Finalize: Updating package cache ... Done
A clone of s11.4.94.0.1.221.2 exists and has been updated and activated.
On the next boot the Boot Environment be://rpool/s11.4.95.0.1.227.1 will be
mounted on '/'. Reboot when ready to switch to this updated BE.
Finalize: Updating package cache ... Done
Current BootEnvironment list:
BE Name Flags Mountpoint Space Policy Created
------------------ ----- ---------- ------ ------ ----------------
s11.4.89.0.1.207.2 - - 1.78G static 2026-03-16 13:58
s11.4.94.0.1.221.2 N / 8.03G static 2026-07-29 15:15
s11.4.95.0.1.227.1 R - 32.68G static 2026-09-28 14:27
Node g0075 updated to Solaris 11 4.95.0.1.227.1. A new boot environment was created.
Reboot Node g0075 to activate new boot environment.
real 6m52.344s
user 0m3.902s
sys 0m8.390s
The duration of the maintenance window is reduced significantly
from 20 minutes to 7 minutes.
Learn more about JomaSoft VDCF on our webpage
21 September 2026
New Features in Solaris 11.4 SRU95 (September 2026)
Another quarterly Solaris SRU including new features
psrinfo -P
pbind -i uid/gid accept username/groupname
zpool monitor [-t provider[,provider...]]
fmdump improvements
FOSS: GCC 16
EOF announce: sar
EOF: SMB1 client (smbfs), MySQL 8.0
21 August 2026
Cleanup LDom Memory Fragmentation
Over time after many online memory changes, the memory may become
fragmented like this example. The small blocks prevent the system
from allocating large pages which causes degraded performance.
The fragments typically arise when you reduce memory
while the domain is running. It is recommended to reduce
memory while the guest domain is down and use start-reconf
for the control domain.
# ldm list-devices -a memory
MEMORY
PA SIZE BOUND
0x0 60M _sys_
0x3c00000 32M _sys_
0x5c00000 94M _sys_
0xba00000 1030M _sys_
0x4c000000 64M _sys_
0x50000000 2560M primary
0xf0000000 256M marcel
0x100000000 2560M primary
0x1a0000000 256M marcel
0x1b0000000 5888M primary
0x320000000 256M marcel
0x330000000 768M primary
0x360000000 256M marcel
0x370000000 3584M primary
0x450000000 11G marcel
0x710000000 15G g0075
0xad0000000 6G g0095
0xc50000000 8G g0081
0xe50000000 1792M
0xec0000000 2304M primary
0xf50000000 2560M
0xff0000000 128M _sys_
0xff8000000 64M _sys_
0xffc000000 64M _sys_
0x400000000000 2G g0056
0x400080000000 1G primary
0x4000c0000000 1G g0056
0x400100000000 5888M primary
0x400270000000 8G g0056
0x400470000000 8G g0079
0x400670000000 1G g0056
0x4006b0000000 8G g0107
0x4008b0000000 10G g0058
0x400b30000000 4G g0082
0x400c30000000 8G s0004
0x400e30000000 4G g0082
0x400f30000000 3G
0x400ff0000000 192M _sys_
0x400ffc000000 64M _sys_
Since Solaris 11.4 SRU39 the ldm command add-spconfig offers
the new -m flag to cleanup the memory configuration.
# ldm add-spconfig -m s0003m
we need to power cycle the control domain.
shutdown all guest domains.
For users of JomaSoft VDCF you can use
gdom -c shutdown cdom=s0003
afterwards we poweroff and poweron the control domain
to activate the new configuration.
# init 0
after the system is down at the ok prompt.
{0} ok
Serial console stopped.
-> stop /SYS
Are you sure you want to stop /SYS (y/n)? y
Stopping /SYS
-> show /SYS power_state
/SYS
Properties:
power_state = Off
-> start /SYS
Are you sure you want to start /SYS (y/n)? y
Starting /SYS
this improved the memory allocation of all the domains
# ldm list-devices -a memory
MEMORY
PA SIZE BOUND
0x0 60M _sys_
0x3c00000 32M _sys_
0x5c00000 94M _sys_
0xba00000 1030M _sys_
0x4c000000 64M _sys_
0x50000000 24G primary
0x650000000 15G g0075
0xa10000000 8G g0081
0xc10000000 8G g0082
0xe10000000 6G g0095
0xf90000000 1536M marcel
0xff0000000 128M _sys_
0xff8000000 64M _sys_
0xffc000000 64M _sys_
0x400000000000 12G g0056
0x400300000000 10G g0058
0x400580000000 8G g0079
0x400780000000 8G g0107
0x400980000000 10752M marcel
0x400c20000000 8G s0004
0x400e20000000 7424M
0x400ff0000000 192M _sys_
0x400ffc000000 64M _sys_
14 August 2026
New postgres packages 08/2026 are ready for Solaris 11.4 SPARC
New postgres packages are ready for Solaris 11.4 SPARC
You don't need to download source and compile yourself for Solaris.
We provide compiled postgres as Solaris 11.4 SPARC IPS pkgs.
Current versions are 18.6, 17.11, 16.15, 15.19, 14.24
Free download and no registration
https://www.jomasoft.ch/downloads/#js-opensource
28 July 2026
Only 6 months left for Solaris 10 and 11.3
Oracle does provide patches under Extended Support for
Solaris 10 and Solaris 11.3 till January 2027.
The dates are documented in
https://www.oracle.com/us/support/library/lifetime-support-hardware-301321.pdf
You can continue to run this Solaris versions, but who does
that without new patches and the security risks?
Migrate to Solaris 11.4, which will receive patches and new features
till January 2037 for sure, probably longer. Oracle extended
this date in the past already several times.
For Solaris 11.3 systems it is just SRU updates to Solaris 11.4.
For Solaris 10 you have to move the systems into Solaris branded zones
on Solaris 11.4. Your Solaris 10 apps and binaries will then run on
a current Solaris 11.4 kernel.
If you need help with such migrations you can use our JomaSoft
VDCF management tool and we offer migration and consulting services.
https://www.jomasoft.ch