On 2026/02/02 12:47, Kurt Miller wrote:
> On Feb 2, 2026, at 6:21 AM, Theo Buehler <[email protected]> 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...