From: Stuart Henderson Subject: Re: jruby vs jdk updates To: Kurt Miller Cc: Theo Buehler , jeremy@openbsd.org, ports@openbsd.org Date: Mon, 2 Feb 2026 15:18:32 +0000 On 2026/02/02 12:47, Kurt Miller wrote: > On Feb 2, 2026, at 6:21 AM, Theo Buehler wrote: > > > > jruby has a file containing the jdk version. whenever the jdk/21 minor > > version changes, jruby no longer packages. I fixed this up a couple of > > times recently but I wonder if there's a better way of handling this. > > > > Yes, there is a better way. That file is a Class Data Sharing Archive (CDS) > file. I’m not all that familiar with them but my research this morning > indicates they are compatible at the major version level for a particular > OS/JVM combo. I would suggest the following: > > * Adjust the port to build that file with the major version only > * patch jruby.sh as follows: Currently jruby.sh is not installed. The binary ${WRKBUILD}/bin/jruby is installed to /usr/local/bin/jruby. Perhaps bin/jruby.sh should be installed to /usr/local/bin/jruby, and bin/jruby installed to /usr/local/jruby/bin/jruby (plus whatever patches are needed to use it). Should use INSTALL_PROGRAM for bin/jruby, not INSTALL_SCRIPT, too. If using jruby.sh, it complains if the directory holding the .jsa file is not writable, and disables AppCDS operations. If writable, there *is* a difference in startup time. On the system I'm trying it on, it takes ~7s if generating the .jsa, ~5s if not using .jsa at all, ~3.5s if .jsa is already present and usable. However we don't want a package-installed .jsa to get overwritten at runtime anyway...