[Git][java-team/jruby][experimental] 21 commits: ship new upstream dotfiles used by main executable

Jérôme Charaoui (@lavamind) gitlab at salsa.debian.org
Fri Aug 28 20:10:51 BST 2026



Jérôme Charaoui pushed to branch experimental at Debian Java Maintainers / jruby


Commits:
e52c9448 by Jérôme Charaoui at 2026-08-28T08:14:12-04:00
ship new upstream dotfiles used by main executable

- - - - -
b84fac88 by Jérôme Charaoui at 2026-08-28T11:56:14-04:00
d/tests: install gem bundle from rubygems.org

previously we relied on library packaged in debian to run the test suite
in autopkgtests -- this relied on a some convoluted shell scripting to
create a synthetic gem installation which was then added to GEM_PATH and
had the inconvenience of not matching exactly the upstream versions

recent upstream versions have, however, substantially reduced the number
of default gems by transferring them into the bundle instead, making the
"offline" technique above infeasible

since jruby doesn't rely on any packaged gems at runtime, this seems
reasonable

- - - - -
be491a56 by Jérôme Charaoui at 2026-08-28T11:56:14-04:00
d/tests: add missing netbase dependency

fixes errors and warnings related to netdb such as "Failed to load
native services db" which causes certain tests to fail

- - - - -
5ece9e7c by Jérôme Charaoui at 2026-08-28T11:56:14-04:00
d/tests: smoke test improvements

prints environment info

- - - - -
98b21c1b by Jérôme Charaoui at 2026-08-28T11:56:14-04:00
d/tests: comment fixes

Gbp-Dch: ignore

- - - - -
dfdbf0bd by Jérôme Charaoui at 2026-08-28T11:56:14-04:00
d/tests: drop obsolete symlink

- - - - -
9332e7ab by Jérôme Charaoui at 2026-08-28T11:56:14-04:00
d/patches: add patch to work around an appcds issue

- - - - -
5739e051 by Jérôme Charaoui at 2026-08-28T11:56:14-04:00
d/tests: fixes for mri-core test

- - - - -
d7d9fcd1 by Jérôme Charaoui at 2026-08-28T11:56:14-04:00
d/tests: fix jruby testcase not actually running

- - - - -
4f126773 by Jérôme Charaoui at 2026-08-28T11:56:14-04:00
jirb is no longer part of the default gems

- - - - -
1c5da763 by Jérôme Charaoui at 2026-08-28T11:56:14-04:00
d/tests: upstream is now excluding these tests

- - - - -
bff5b43d by Jérôme Charaoui at 2026-08-28T11:56:14-04:00
d/tests: exclude two mri-stdlib tests failing

- - - - -
d1aaf7a1 by Jérôme Charaoui at 2026-08-28T11:56:14-04:00
run wrap-and-sort

Gbp-Dch: ignore

- - - - -
93c5e154 by Jérôme Charaoui at 2026-08-28T11:56:14-04:00
drop obsolete lintian overrides

- - - - -
e3a98040 by Jérôme Charaoui at 2026-08-28T11:56:14-04:00
Remove redundant Priority: optional from source stanza.

Changes-By: lintian-brush
Fixes: lintian: source: redundant-priority-optional-field
See-also: https://lintian.debian.org/tags/redundant-priority-optional-field.html

- - - - -
fd67ab34 by Jérôme Charaoui at 2026-08-28T11:56:14-04:00
Replace FSF postal address with a reference to https://www.gnu.org/licenses/.

Changes-By: lintian-brush
Fixes: lintian: source: old-fsf-address-in-copyright-file
See-also: https://lintian.debian.org/tags/old-fsf-address-in-copyright-file.html

- - - - -
77153aec by Jérôme Charaoui at 2026-08-28T11:56:14-04:00
Update standards version to 4.7.4, no changes needed.

Upgrade checklist verified:
 4.6.2 → 4.7.0:
  * Package does not use dpkg-divert
 4.7.0 → 4.7.1:
  * Package does not install to non-/usr paths
 4.7.3 → 4.7.4:
  * Package is not in non-free-firmware

Changes-By: lintian-brush
Fixes: lintian: source: ancient-standards-version 4.6.2 (released 2022-12-17) (current is 4.7.4.1)
See-also: https://lintian.debian.org/tags/ancient-standards-version.html

- - - - -
7fd1887c by Jérôme Charaoui at 2026-08-28T11:56:14-04:00
Removed Rules-Requires-Root

Changes-By: lintian-brush
Fixes: lintian: source: redundant-rules-requires-root-no-field [debian/control]
See-also: https://lintian.debian.org/tags/redundant-rules-requires-root-no-field.html

- - - - -
01d420b7 by Jérôme Charaoui at 2026-08-28T12:09:14-04:00
d/tests: add isolation-container restrictions

for tests that modify $HOME, as recommended by autopkgtest docs

- - - - -
04e96c2d by Jérôme Charaoui at 2026-08-28T14:12:38-04:00
d/tests: exclude unreliable/failing mri-stdlib tests

- - - - -
a5b1cbe3 by Jérôme Charaoui at 2026-08-28T14:13:12-04:00
Update changelog for 10.1.1.0+ds-1~exp1 release

- - - - -


27 changed files:

- debian/changelog
- debian/control
- debian/copyright
- − debian/jirb.1
- + debian/jruby.docs
- debian/jruby.install
- debian/jruby.links
- debian/jruby.lintian-overrides.in
- debian/manpages
- + debian/patches/0006-Rework-bundled-gems.patch
- − debian/patches/0006-omit-bundled-gems.patch
- + debian/patches/0016-Workaround-AppCDS-symlink-issue.patch
- debian/patches/series
- debian/rules
- debian/tests/common.sh
- debian/tests/control
- − debian/tests/jirb
- debian/tests/jruby
- debian/tests/mri-core
- debian/tests/mri-extra
- debian/tests/mri-stdlib
- debian/tests/smoke
- debian/tests/spec-compiler
- debian/tests/spec-ffi
- debian/tests/spec-ji
- debian/tests/spec-jruby
- debian/tests/spec-ruby


Changes:

=====================================
debian/changelog
=====================================
@@ -1,3 +1,39 @@
+jruby (10.1.1.0+ds-1~exp1) experimental; urgency=medium
+
+  * New upstream version 10.1.1.0+ds (Closes: #1064786, #1130186)
+  * ship new upstream dotfiles used by main executable
+  * jirb is no longer part of the default gems
+  * add maven.compiler.release=21
+  * drop obsolete lintian overrides
+  * d/control:
+    + add fastdoubleparser to deps
+    + bump min versions for some deps
+    + bump involkebinder version constraint
+  * d/patches:
+    + refresh for new upstream version
+    + add patch to work around an appcds issue
+    + new patch to bypass jruby-prism requirement
+  * d/rules: avoid wiping upstream-provided libs
+  * d/tests:
+    + fixes for mri-core test
+    + install gem bundle from rubygems.org
+    + add missing netbase dependency
+    + smoke test improvements
+    + fix jruby testcase not actually running
+    + add isolation-container restrictions
+    - drop obsolete symlink
+    - upstream is now excluding these tests
+    - exclude two mri-stdlib tests failing
+    - exclude unreliable/failing mri-stdlib tests
+  * d/watch: update to v5 format
+  * Remove redundant Priority: optional from source stanza.
+  * Replace FSF postal address with a reference to
+    https://www.gnu.org/licenses/.
+  * Update standards version to 4.7.4, no changes needed.
+  * Removed Rules-Requires-Root
+
+ -- Jérôme Charaoui <jerome at riseup.net>  Fri, 28 Aug 2026 07:41:17 -0400
+
 jruby (9.4.14.0+ds-1) unstable; urgency=medium
 
   * Rebuild for unstable release.


=====================================
debian/control
=====================================
@@ -1,6 +1,5 @@
 Source: jruby
 Section: ruby
-Priority: optional
 Maintainer: Debian Java Maintainers <pkg-java-maintainers at lists.alioth.debian.org>
 Uploaders:
  Thomas Goirand <zigo at debian.org>,
@@ -53,11 +52,10 @@ Build-Depends:
  locales-all,
  maven-debian-helper,
  quilt,
-Standards-Version: 4.6.2
+Standards-Version: 4.7.4
 Homepage: https://jruby.org/
 Vcs-Git: https://salsa.debian.org/java-team/jruby.git
 Vcs-Browser: https://salsa.debian.org/java-team/jruby
-Rules-Requires-Root: no
 
 Package: jruby
 Architecture: all


=====================================
debian/copyright
=====================================
@@ -703,9 +703,8 @@ License: GPL-2+
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.
  .
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ You should have received a copy of the GNU General Public License
+ along with this program.  If not, see <https://www.gnu.org/licenses/>.
  .
  On Debian systems, the complete text of the GNU General Public License
  can be found in `/usr/share/common-licenses/GPL-2'.
@@ -725,10 +724,8 @@ License: LGPL-2.1+
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.
  .
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- MA 02110-1301 USA.
+ You should have received a copy of the GNU General Public License
+ along with this program.  If not, see <https://www.gnu.org/licenses/>.
  .
  On Debian systems, the complete text of the GNU Lesser General Public
  License can be found in `/usr/share/common-licenses/LGPL-2.1'.


=====================================
debian/jirb.1 deleted
=====================================
@@ -1,506 +0,0 @@
-.TH JIRB1.3 "1" "April 2007"
-.SH NAME
-jirb1.3 \- interactive JRuby
-.SH SYNOPSIS
-.B jirb
-[\fIoptions\fR]
-.SH DESCRIPTION
-.PP
-irb stands for `interactive JRuby'. irb is a tool to execute interactively
-JRuby expressions read from stdin.
-Use of jirb is easy if you know JRuby.  Executing jirb, prompts are
-displayed as follows. Then, enter expression of ruby. Input is
-executed when it is syntacticaly completed.
-
-.nf
-\&    $ jirb1.3
-\&    irb(main):001:0> 1+2
-\&    3
-\&    irb(main):002:0> class Foo
-\&    irb(main):003:1>  def foo
-\&    irb(main):004:2>    print 1
-\&    irb(main):005:2>  end
-\&    irb(main):006:1> end
-\&    nil
-\&    irb(main):007:0>
-.fi
-
-And, Readline extension module can be used with irb. Using Readline
-is the standard default action if Readline is installed.
-.SH OPTIONS
-
-.PP
-
-.TP
-.fi
-.B
-\-f
-suppress read ~/.irbrc
-.TP
-.fi
-.B
-\-m
-bc mode (fraction or matrix are available)
-.TP
-.fi
-.B
-\-d
-set $DEBUG  to true (same as `ruby \-d')
-.TP
-.fi
-.B
-\-r load\-module
-same as `ruby \-r'
-.TP
-.fi
-.B
-\-\-inspect
-uses `inspect' for output (the default except bc mode)
-.TP
-.fi
-.B
-\-\-noinspect
-doesn't uses inspect for output
-.TP
-.fi
-.B
-\-\-readline
-uses Readline extension module
-.TP
-.fi
-.B
-\-\-noreadline
-doesn't use Readline extension module
-.TP
-.fi
-.B
-\-\-prompt prompt\-mode
-.TP
-.fi
-.B
-\-\-prompt\-mode prompt\-mode
-switches prompt mode. Pre\-defined prompt modes are
-`default', `simple', `xmp' and `inf\-ruby'
-.TP
-.fi
-.B
-\-\-inf\-ruby\-mode
-uses prompt appreciate for inf\-ruby\-mode on emacs.
-Suppresses \-\-readline.
-.TP
-.fi
-.B
-\-\-simple\-prompt
-simple prompt mode
-.TP
-.fi
-.B
-\-\-noprompt
-no prompt
-.TP
-.fi
-.B
-\-\-tracer
-display trace for each execution of commands.
-.TP
-.fi
-.B
-\-\-back\-trace\-limit n
-displays backtrace top n and tail n. The default
-value is 16.
-.TP
-.fi
-.B
-\-\-irb_debug n
-sets internal debug level to n (It shouldn't be used)
-.TP
-.fi
-.B
-\-v, \-\-version
-prints the version of irb
-.SH CONFIGURATIONS
-
-.PP
-jirb reads `~/.irbrc' when it is invoked. If `~/.irbrc' doesn't exist
-jirb try to read in the order `.irbrc', `irb.rc', `_irbrc' then `$irbrc'.
-The following is alternative to the command line option. To use them
-type as follows in a jirb session.
-
-.nf
-\&    IRB.conf[:IRB_NAME]="irb"
-\&    IRB.conf[:MATH_MODE]=false
-\&    IRB.conf[:USE_TRACER]=false
-\&    IRB.conf[:USE_LOADER]=false
-\&    IRB.conf[:IGNORE_SIGINT]=true
-\&    IRB.conf[:IGNORE_EOF]=false
-\&    IRB.conf[:INSPECT_MODE]=nil
-\&    IRB.conf[:IRB_RC] = nil
-\&    IRB.conf[:BACK_TRACE_LIMIT]=16
-\&    IRB.conf[:USE_LOADER] = false
-\&    IRB.conf[:USE_READLINE] = nil
-\&    IRB.conf[:USE_TRACER] = false
-\&    IRB.conf[:IGNORE_SIGINT] = true
-\&    IRB.conf[:IGNORE_EOF] = false
-\&    IRB.conf[:PROMPT_MODE] = :DEFALUT
-\&    IRB.conf[:PROMPT] = {...}
-\&    IRB.conf[:DEBUG_LEVEL]=0
-\&    IRB.conf[:VERBOSE]=true
-.fi
-.SH Customizing prompt
-
-.PP
-To customize the prompt you set a variable
-
-.nf
-\&    IRB.conf[:PROMPT]
-.fi
-
-For example, describe as follows in `.irbrc'.
-
-.nf
-\&    IRB.conf[:PROMPT][:MY_PROMPT] = { # name of prompt mode
-\&      :PROMPT_I => nil,		  # normal prompt
-\&      :PROMPT_S => nil,		  # prompt for continuated strings
-\&      :PROMPT_C => nil,		  # prompt for continuated statement
-\&      :RETURN => "    ==>%s\\n"	  # format to return value
-\&    }
-.fi
-
-Then, invoke irb with the above prompt mode by
-
-.nf
-\&    $ jirb1.3 \-\-prompt my\-prompt
-.fi
-
-Or add the following in `.irbrc'.
-
-.nf
-\&    IRB.conf[:PROMPT_MODE] = :MY_PROMPT
-.fi
-
-Constants PROMPT_I, PROMPT_S and PROMPT_C specifies the format.
-In the prompt specification, some special strings are available.
-
-.nf
-\&    %N	command name which is running
-\&    %m	to_s of main object (self)
-\&    %M	inspect of main object (self)
-\&    %l	type of string(", ', /, ]), `]' is inner %w[...]
-\&    %NNi	indent level. NN is degits and means as same as printf("%NNd").
-\&          It can be omitted
-\&    %NNn	line number.
-\&    %%    %
-.fi
-For instance, the default prompt mode is defined as follows:
-IRB.conf[:PROMPT_MODE][:DEFAULT] = {
-.TP
-.fi
-.B
-PROMPT_I => "%N(%m):%03n:%i> ",
-.TP
-.fi
-.B
-PROMPT_S => "%N(%m):%03n:%i%l ",
-.TP
-.fi
-.B
-PROMPT_C => "%N(%m):%03n:%i* ",
-.TP
-.fi
-.B
-RETURN => "%s\\n"}
-RETURN is used to printf.
-.SH Configuring subirb
-
-.PP
-The command line option or IRB.conf specify the default behavior of
-(sub)irb. On the other hand, each conf of in the next sction `6. Command'
-is used to individually configure (sub)irb.
-If proc is set to IRB.conf[:IRB_RC], its subirb will be invoked after
-execution of that proc under giving the context of irb as its
-argument. By this mechanism each subirb can be configured.
-.SH Command
-
-.PP
-For irb commands, both simple name and `irb_'\-prefixed name are prepared.
-.TP
-.fi
-.B
-exit, quit, irb_exit
-Quits (sub)irb.
-if you've done cb (see below), exit from the binding mode.
-
-.TP
-.fi
-.B
-conf, irb_context
-Displays current configuration. Modifying the configuration is
-achieved by sending message to `conf'.
-.TP
-.fi
-.B
-conf.back_trace_limit
-Sets display lines of backtrace as top n and tail n.
-The default value is 16.
-.TP
-.fi
-.B
-conf.debug_level = N
-Sets debug level of irb.
-.TP
-.fi
-.B
-conf.ignore_eof = true/false
-Whether ^D (control\-d) will be ignored or not.
-If false is set, ^D means quit.
-.TP
-.fi
-.B
-conf.ignore_sigint= true/false
-Whether ^C (control\-c) will be ignored or not.
-If false is set, ^D means quit.  If true,
-.nf
-\&    during input:   cancel inputing then return to top level.
-\&    during execute: abondon current execution.
-.fi
-.TP
-.fi
-.B
-conf.inf_ruby_mode = true/false
-Whether inf\-ruby\-mode or not. The default value is false.
-.TP
-.fi
-.B
-conf.inspect_mode = true/false/nil
-Specifies inspect mode.
-true:  display inspect
-false: display to_s
-nil:   inspect mode in non math mode,
-.nf
-\&    non inspect mode in math mode.
-.fi
-.TP
-.fi
-.B
-conf.irb_level
-The level of cb.
-.TP
-.fi
-.B
-conf.math_mode
-Whether bc mode or not.
-.TP
-.fi
-.B
-conf.use_loader = true/false
-Whether irb's own file reader method is used when load/require or not.
-This mode is globaly affected (irb wide).
-.TP
-.fi
-.B
-conf.prompt_c
-prompt for a continuating statement (e.g, immediately after of `if')
-.TP
-.fi
-.B
-conf.prompt_i
-standard prompt
-.TP
-.fi
-.B
-conf.prompt_s
-prompt for a continuating string
-.TP
-.fi
-.B
-conf.rc
-Whether ~/.irbrc is read or not.
-.TP
-.fi
-.B
-conf.use_prompt = true/false
-Prompting or not.
-.TP
-.fi
-.B
-conf.use_readline = true/false/nil
-Whether readline is used or not.
-true: uses
-false: doesn't use
-nil: intends to use readline except for inf\-reuby\-mode (default)
-.TP
-.fi
-.B
-conf.verbose=T/F
-Whether verbose messages are display or not.
-.TP
-.fi
-.B
-cb, irb_change_binding [obj]
-Enter new binding which has a distinct scope of local variables.
-If obj is given, obj will be self.
-.TP
-.fi
-.B
-irb [obj]
-Invoke subirb. If obj is given, obj will be self.
-.TP
-.fi
-.B
-jobs, irb_jobs
-List of subirb
-.TP
-.fi
-.B
-fg n, irb_fg n
-Switch into specified subirb. The following is candidates of n:
-.nf
-\&    irb number
-\&    thhread
-\&    irb object
-\&    self(obj which is specified of irb obj)
-.fi
-.TP
-.fi
-.B
-kill n, irb_kill n
-Kill subirb. The means of n is as same as the case of irb_fg.
-.SH System variable
-
-.PP
-
-.TP
-.fi
-.B
-_
-The latest value of evaluation (it is local)
-.SH Session Example
-
-.PP
-.nf
-\&    $ jirb1.3
-\&    irb(main):001:0> irb                        # invoke subirb
-\&    irb#1(main):001:0> jobs                     # list of subirbs
-\&    #0\->irb on main (#<Thread:0x400fb7e4> : stop)
-\&    #1\->irb#1 on main (#<Thread:0x40125d64> : running)
-\&    nil
-\&    irb#1(main):002:0> fg 0                     # switch job
-\&    nil
-\&    irb(main):002:0> class Foo;end
-\&    nil
-\&    irb(main):003:0> irb Foo                    # invoke subirb which has the
-.fi
-.nf
-\&    #              context of Foo
-.fi
-.nf
-\&    irb#2(Foo):001:0> def foo                   # define Foo#foo
-\&    irb#2(Foo):002:1>   print 1
-\&    irb#2(Foo):003:1> end
-\&    nil
-\&    irb#2(Foo):004:0> fg 0                      # switch job
-\&    nil
-\&    irb(main):004:0> jobs                       # list of job
-\&    #0\->irb on main (#<Thread:0x400fb7e4> : running)
-\&    #1\->irb#1 on main (#<Thread:0x40125d64> : stop)
-\&    #2\->irb#2 on Foo (#<Thread:0x4011d54c> : stop)
-\&    nil
-\&    irb(main):005:0> Foo.instance_methods       # Foo#foo is defined asurely
-\&    ["foo"]
-\&    irb(main):006:0> fg 2                       # switch job
-\&    nil
-\&    irb#2(Foo):005:0> def bar                   # define Foo#bar
-\&    irb#2(Foo):006:1>  print "bar"
-\&    irb#2(Foo):007:1> end
-\&    nil
-\&    irb#2(Foo):010:0>  Foo.instance_methods
-\&    ["bar", "foo"]
-\&    irb#2(Foo):011:0> fg 0
-\&    nil
-\&    irb(main):007:0> f = Foo.new
-\&    #<Foo:0x4010af3c>
-\&    irb(main):008:0> irb f                      # invoke subirb which has the
-.fi
-.nf
-\&    #  context of f (instance of Foo)
-.fi
-.nf
-\&    irb#3(#<Foo:0x4010af3c>):001:0> jobs
-\&    #0\->irb on main (#<Thread:0x400fb7e4> : stop)
-\&    #1\->irb#1 on main (#<Thread:0x40125d64> : stop)
-\&    #2\->irb#2 on Foo (#<Thread:0x4011d54c> : stop)
-\&    #3\->irb#3 on #<Foo:0x4010af3c> (#<Thread:0x4010a1e0> : running)
-\&    nil
-\&    irb#3(#<Foo:0x4010af3c>):002:0> foo         # evaluate f.foo
-\&    1nil
-\&    irb#3(#<Foo:0x4010af3c>):003:0> bar         # evaluate f.bar
-\&    barnil
-\&    irb#3(#<Foo:0x4010af3c>):004:0> kill 1, 2, 3# kill job
-\&    nil
-\&    irb(main):009:0> jobs
-\&    #0\->irb on main (#<Thread:0x400fb7e4> : running)
-\&    nil
-\&    irb(main):010:0> exit                       # exit
-.fi
-.SH Restrictions
-
-.PP
-Because irb evaluates the inputs immediately after the input is
-syntactically completed, irb gives slight different results than
-directly using ruby. Known differences are pointed out here.
-.SH Declaration of the local variable
-
-.PP
-The following causes an error in ruby:
-
-.nf
-\&    eval "foo = 0"
-\&    foo
-\&    \-\-
-\&    \-:2: undefined local variable or method `foo' for #<Object:0x40283118> (NameError)
-\&    \-\-\-
-\&    NameError
-.fi
-
-Though, the above will successfully done by irb.
-
-.nf
-\&    >> eval "foo = 0"
-.fi
-.nf
-\&    => 0
-\&    >> foo
-\&    => 0
-.fi
-
-Ruby evaluates a code after reading entire of code and determination
-of the scope of local variables. On the other hand, irb do
-immediately. More precisely, irb evaluate at first
-
-.nf
-\&    evel "foo = 0"
-.fi
-
-then foo is defined on this timing. It is because of this
-incompatibility.
-If you'd like to detect those differences, begin...end can be used:
-
-.nf
-\&    >> begin
-\&    ?>   eval "foo = 0"
-\&    >>   foo
-\&    >> end
-\&    NameError: undefined local variable or method `foo' for #<Object:0x4013d0f0>
-\&    (irb):3
-\&    (irb_local_binding):1:in `eval'
-.fi
-.SH Here\-document
-
-.PP
-Implementation of Here\-document is incomplete.
-.SH Symbol
-
-.PP
-Irb can not always recognize a symbol as to be Symbol. Concretely, an
-expression have completed, however Irb regard it as continuation line.
-


=====================================
debian/jruby.docs
=====================================
@@ -0,0 +1,2 @@
+# list of versioned gems needed for the testsuite
+lib/target/bundled_gems


=====================================
debian/jruby.install
=====================================
@@ -1,4 +1,7 @@
+bin/.dev_mode.java_opts                            usr/share/jruby/bin
+bin/.jruby.java_opts                               usr/share/jruby/bin
 bin/.jruby.module_opts                             usr/share/jruby/bin
+bin/.jruby.release                                 usr/share/jruby/bin
 bin/jruby.sh                                       usr/share/jruby/bin
 lib/target/classes/META-INF/jruby.home/bin/*       usr/share/jruby/bin
 lib/target/classes/META-INF/jruby.home/bin/jrubyc  usr/share/jruby/bin


=====================================
debian/jruby.links
=====================================
@@ -1,7 +1,5 @@
 usr/share/jruby/bin/ast                usr/bin/ast
 usr/share/jruby/bin/jgem               usr/bin/jgem
-usr/share/jruby/bin/jirb               usr/bin/jirb
-usr/share/jruby/bin/jirb_swing         usr/bin/jirb_swing
 usr/share/jruby/bin/jruby.sh           usr/bin/jruby
 usr/share/jruby/bin/jrubyc             usr/bin/jrubyc
 


=====================================
debian/jruby.lintian-overrides.in
=====================================
@@ -1,9 +1,7 @@
 # ERB template tags detected as interpreter specification
 jruby: unusual-interpreter <%= [usr/share/jruby/lib/ruby/stdlib/bundler/templates/Executable]
-jruby: unusual-interpreter <%= [usr/share/jruby/lib/ruby/stdlib/bundler/templates/Executable.bundler]
 jruby: unusual-interpreter <%= [usr/share/jruby/lib/ruby/stdlib/bundler/templates/Executable.standalone]
 # Falsely detected as executable scripts
-jruby: script-not-executable [usr/share/jruby/lib/ruby/stdlib/bundler/templates/Executable.bundler]
 jruby: script-not-executable [usr/share/jruby/lib/ruby/stdlib/bundler/templates/Executable.standalone]
 jruby: script-not-executable [usr/share/jruby/lib/ruby/stdlib/bundler/templates/Executable]
 jruby: script-not-executable [usr/share/jruby/lib/ruby/stdlib/bundler/templates/newgem/bin/console.tt]


=====================================
debian/manpages
=====================================
@@ -1,2 +1 @@
-debian/jirb.1
 debian/jruby.1


=====================================
debian/patches/0006-Rework-bundled-gems.patch
=====================================
@@ -0,0 +1,45 @@
+From: Jérôme Charaoui <jerome at riseup.net>
+Subject: Omit bundled gems from build
+Last-Updated: 2026-08-25
+Forwarded: not-needed
+
+The bundled gems are used to run the ruby-based test suite which we run only in
+autopkgtests. This patch prevents maven from attempting to download them, and
+creates an new "bundled_gems" build artifact that can be used to initialize a
+test environment, in autopkgtests for example.
+
+Index: jruby/lib/pom.rb
+===================================================================
+--- jruby.orig/lib/pom.rb
++++ jruby/lib/pom.rb
+@@ -190,15 +190,8 @@ project 'JRuby Lib Setup' do
+     end
+   end
+ 
+-  bundled_gems.each do |name, version|
+-    # use provided scope so it is not a real dependency for runtime
+-    dependency 'rubygems', name, version, type: 'gem', scope: :provided do
+-      exclusion 'rubygems:jar-dependencies'
+-    end
+-  end
+-
+   default_gemnames = default_gems.collect(&:first)
+-  all_gems = default_gems + bundled_gems
++  all_gems = default_gems
+ 
+   plugin :dependency,
+          useRepositoryLayout: true,
+@@ -364,9 +357,10 @@ project 'JRuby Lib Setup' do
+ 
+     bundled_gems.each do |name, version| # copy bin files for bundled gems (e.g. rake) as well
+       version = ctx.project.properties.get(version[2..-2]) || version # e.g. resolve '${rake.version}' from properties
+-      gem_name = "#{name}-#{version}"
+-      spec = Gem::Package.new(Dir[File.join(jruby_gems, 'cache', "#{gem_name}*.gem")].first).spec
+-      copy_gem_executables.call(spec, jruby_gems)
++      target = ctx.project.build.directory.to_pathname
++      File.open("#{target}/bundled_gems", 'a') do |f|
++        f.puts "#{name} #{version}"
++      end
+     end
+ 
+     # patch jruby-openssl - remove file which should be only inside gem


=====================================
debian/patches/0006-omit-bundled-gems.patch deleted
=====================================
@@ -1,26 +0,0 @@
-From: =?utf-8?b?SsOpcsO0bWUgQ2hhcmFvdWk=?= <jerome at riseup.net>
-Date: Tue, 24 Oct 2023 22:05:56 -0400
-Subject: Omit bundled gems from build
-
-Those gems are only useful for parts of the test suite which we don't run as
-part pf the build process.
-
-Forwarded: not-needed
----
- lib/pom.rb | 3 +++
- 1 file changed, 3 insertions(+)
-
-Index: jruby/lib/pom.rb
-===================================================================
---- jruby.orig/lib/pom.rb
-+++ jruby/lib/pom.rb
-@@ -148,6 +148,9 @@ bundled_gems = [
-   # ['typeprof', '0.31.1'],
- ]
- 
-+# Not needed for Debian builds
-+bundled_gems = []
-+
- project 'JRuby Lib Setup' do
-   version = ENV['JRUBY_VERSION'] ||
-             File.read(File.join(basedir, '..', 'VERSION')).strip


=====================================
debian/patches/0016-Workaround-AppCDS-symlink-issue.patch
=====================================
@@ -0,0 +1,22 @@
+Description: Workaround AppCDS symlink issue
+Author: Jérôme Charaoui <jerome at riseup.net>
+Last-Update: 2025-08-27
+Forwarded: not-needed
+
+This solves "sealing violation" crashes of the JVM when using a previously
+generated AppCDS archive, due to Debian loading the JRuby JAR from a symlink.
+
+See https://github.com/jruby/jruby/issues/9608
+Index: jruby/bin/jruby.sh
+===================================================================
+--- jruby.orig/bin/jruby.sh
++++ jruby/bin/jruby.sh
+@@ -657,7 +657,7 @@ CP_DELIMITER=":"
+ 
+ # Find main jruby jar and add it to the classpath
+ jruby_jar=
+-for j in "$JRUBY_HOME"/lib/jruby.jar "$JRUBY_HOME"/lib/jruby-complete.jar; do
++for j in $(readlink -f "$JRUBY_HOME"/lib/jruby.jar); do
+     if [ ! -e "$j" ]; then
+         continue
+     fi


=====================================
debian/patches/series
=====================================
@@ -3,7 +3,7 @@
 0003-disable-checksum-maven-plugin.patch
 0004-disable-truezip-plugin.patch
 0005-disable-jnr-ffi-native-usage.patch
-0006-omit-bundled-gems.patch
+0006-Rework-bundled-gems.patch
 0007-Disable-test-requiring-Awaitility.patch
 0008-Fix-testRevision-testcase.patch
 0009-Fix-test-failures-related-to-Module-PTY.patch
@@ -13,3 +13,4 @@
 0013-fix-default-appcds-cache-path.patch
 0014-Reduce-test-memory.patch
 0015-Drop-jruby-prism-requirement.patch
+0016-Workaround-AppCDS-symlink-issue.patch


=====================================
debian/rules
=====================================
@@ -83,6 +83,7 @@ execute_after_dh_prep:
 	# remove superfluous shell scripts
 	rm -f $(JRUBY_HOME_DIR)/bin/*.bat
 	rm -f $(JRUBY_HOME_DIR)/bin/*.sh
+	rm -f $(JRUBY_HOME_DIR)/bin/jirb*
 	# remove env from shell scripts
 	sed -i '1s|^#!/usr/bin/env\sruby|#!/usr/bin/jruby|' $(JRUBY_HOME_DIR)/bin/*
 	# mark all scripts executable


=====================================
debian/tests/common.sh
=====================================
@@ -2,7 +2,7 @@ set -e
 
 # prepare test environment
 prepare() {
-    cp -a default.build.properties Gemfile Rakefile rakelib spec test "$AUTOPKGTEST_TMP"
+    cp -a default.build.properties Rakefile rakelib spec test "$AUTOPKGTEST_TMP"
     cp -a /usr/share/jruby/bin "$AUTOPKGTEST_TMP/bin"
     ln -s /usr/share/jruby/lib "$AUTOPKGTEST_TMP/lib"
     export LANG=C.UTF-8
@@ -15,33 +15,25 @@ prepare() {
     # clear cache
     rm -f "$HOME/.cache/jruby-java*.jsa"
 
-    # create an additional directory for GEM_PATH
-    # with extra gems needed to run the testsuite
-    export GEM_TEMP="$AUTOPKGTEST_TMP/gem_temp"
-    mkdir -p "${GEM_TEMP}/gems" "${GEM_TEMP}/specifications"
+ }
 
-    # add test-required gems from system
-    RUBY_API_VERSION=$(/usr/bin/ruby -e "require 'ruby_debian_dev'; puts RubyDebianDev::RUBY_API_VERSION.values.first")
-    echo "installing system gems into jruby:"
-	for gem in diff-lcs matrix minitest net-ftp power_assert prime rake rexml rspec rspec-core rspec-expectations rspec-mocks rspec-support test-unit; do
-		# some gems are copied from libruby*, others from local rubygems
-        gem_version=$(find "/usr/lib/ruby/gems/${RUBY_API_VERSION}/gems" /usr/share/rubygems-integration/all/gems \
-            -maxdepth 1 -type d -regex ".*/${gem}-[0-9\.]+" -printf "%f\n" -quit)
-		if test -e "/usr/lib/ruby/gems/${RUBY_API_VERSION}/gems/${gem_version}"; then
-			gembase="/usr/lib/ruby/gems/${RUBY_API_VERSION}"
-		else
-			gembase=/usr/share/rubygems-integration/all
-		fi
-		echo "* ${gem_version}"
-		ln -s "${gembase}/gems/${gem_version}" "${GEM_TEMP}/gems"
-		ln -s "${gembase}/specifications/${gem_version}.gemspec" "${GEM_TEMP}/specifications"
-	done
+# extra dependencies are needed to run the testsuite
+install_gem_bundle() {
+    echo "---> Start installing gem bundle"
+    GEMFILE="${AUTOPKGTEST_TMP}/Gemfile"
+    cp Gemfile "$GEMFILE"
 
-    # copy/fixup the rake binary
-    cp /usr/bin/rake ./bin
-    sed -i '1s|^#!.*|#!/usr/bin/jruby|' ./bin/rake
+    # append list of "bundled" gems to Gemfile
+    while read -r gem version; do
+        echo "gem '${gem}', '${version}'" >> "$GEMFILE"
+    done < /usr/share/doc/jruby/bundled_gems
 
-    export GEM_PATH="/usr/share/jruby/lib/ruby/gems/shared:${GEM_TEMP}"
+    # destination directory for installing gems
+    export GEM_HOME="${AUTOPKGTEST_TMP}/gems"
+
+    # run bundler
+    jruby -S bundle install --gemfile "$GEMFILE"
+    echo "---> Finished installing gem bundle"
 }
 
 spec_skip() {


=====================================
debian/tests/control
=====================================
@@ -1,159 +1,142 @@
-Tests: smoke
-Restrictions: superficial
+Tests:
+ smoke,
+Restrictions:
+ superficial,
 Architecture: amd64, arm64
 
-Tests: jgem
+Tests:
+ jgem,
 Depends:
- rake,
- ruby-all-dev,
- ruby-diff-lcs,
- ruby-minitest,
- ruby-power-assert,
- ruby-rspec,
- ruby-test-unit,
- @,
-Restrictions: needs-internet
-Architecture: amd64, arm64
-
-Tests: jirb
-Depends:
- expect,
  @,
+Restrictions:
+ isolation-container,
+ needs-internet,
 Architecture: amd64, arm64
 
-Tests: jruby
+Tests:
+ jruby,
 Depends:
  ant,
  build-essential,
  default-jdk-headless,
  junit4,
  libjakarta-annotation-api-java,
- rake,
+ netbase,
  ruby-all-dev,
- ruby-diff-lcs,
- ruby-minitest,
- ruby-power-assert,
- ruby-rspec,
- ruby-test-unit,
  @,
-Restrictions: allow-stderr
+Restrictions:
+ allow-stderr,
+ isolation-container,
+ needs-internet,
 Architecture: amd64, arm64
 
-Tests: spec-compiler
+Tests:
+ spec-compiler,
 Depends:
  ant,
- rake,
+ build-essential,
  ruby-all-dev,
- ruby-diff-lcs,
- ruby-minitest,
- ruby-power-assert,
- ruby-rspec,
- ruby-test-unit,
  @,
-Restrictions: allow-stderr
+Restrictions:
+ allow-stderr,
+ isolation-container,
+ needs-internet,
 Architecture: amd64, arm64
 
-Tests: spec-ffi
+Tests:
+ spec-ffi,
 Depends:
  ant,
  build-essential,
- rake,
  ruby-all-dev,
- ruby-diff-lcs,
- ruby-minitest,
- ruby-power-assert,
- ruby-rspec,
- ruby-test-unit,
  @,
-Restrictions: allow-stderr
+Restrictions:
+ allow-stderr,
+ isolation-container,
+ needs-internet,
 Architecture: amd64, arm64
 
-Tests: spec-ji
+Tests:
+ spec-ji,
 Depends:
  ant,
+ build-essential,
  default-jdk-headless,
  junit4,
  libjakarta-annotation-api-java,
  libjarjar-java,
- rake,
  ruby-all-dev,
- ruby-diff-lcs,
- ruby-minitest,
- ruby-power-assert,
- ruby-rspec,
- ruby-test-unit,
  zip,
  @,
-Restrictions: allow-stderr
+Restrictions:
+ allow-stderr,
+ isolation-container,
+ needs-internet,
 Architecture: amd64, arm64
 
-Tests: spec-jruby
+Tests:
+ spec-jruby,
 Depends:
  ant,
+ build-essential,
  default-jdk-headless,
- rake,
  ruby-all-dev,
- ruby-diff-lcs,
- ruby-minitest,
- ruby-power-assert,
- ruby-rspec,
- ruby-test-unit,
  @,
-Restrictions: allow-stderr
+Restrictions:
+ allow-stderr,
+ isolation-container,
+ needs-internet,
 Architecture: amd64, arm64
 
-Tests: spec-ruby
+Tests:
+ spec-ruby,
 Depends:
  ant,
- rake,
+ build-essential,
+ netbase,
  ruby-all-dev,
- ruby-diff-lcs,
- ruby-minitest,
- ruby-power-assert,
- ruby-rspec,
- ruby-test-unit,
  @,
-Restrictions: allow-stderr
+Restrictions:
+ allow-stderr,
+ isolation-container,
 Architecture: amd64, arm64
 
-Tests: mri-core
+Tests:
+ mri-core,
 Depends:
  ant,
- rake,
+ build-essential,
  ruby-all-dev,
- ruby-diff-lcs,
- ruby-minitest,
- ruby-power-assert,
- ruby-rspec,
- ruby-test-unit,
  @,
-Restrictions: allow-stderr
+Restrictions:
+ allow-stderr,
+ isolation-container,
+ needs-internet,
 Architecture: amd64, arm64
 
-Tests: mri-extra
+Tests:
+ mri-extra,
 Depends:
  ant,
- rake,
+ build-essential,
  ruby-all-dev,
- ruby-diff-lcs,
- ruby-minitest,
- ruby-power-assert,
- ruby-rspec,
- ruby-test-unit,
  @,
-Restrictions: allow-stderr
+Restrictions:
+ allow-stderr,
+ isolation-container,
+ needs-internet,
 Architecture: amd64, arm64
 
-Tests: mri-stdlib
+Tests:
+ mri-stdlib,
 Depends:
  ant,
- rake,
+ build-essential,
+ netbase,
  ruby-all-dev,
- ruby-diff-lcs,
- ruby-minitest,
- ruby-power-assert,
- ruby-rspec,
- ruby-test-unit,
  @,
-Restrictions: allow-stderr
+Restrictions:
+ allow-stderr,
+ isolation-container,
+ needs-internet,
 Architecture: amd64, arm64


=====================================
debian/tests/jirb deleted
=====================================
@@ -1,16 +0,0 @@
-#!/bin/sh
-
-# Test jirb functionality with expect script
-
-set -e
-
-# create home cache directory to avoid AppCDS warning on stderr
-mkdir -p "$HOME/.cache"
-
-chmod +x "$(dirname $0)/jirb.exp"
-"$(dirname $0)/jirb.exp"
-
-# wait a bit to avoid leaking process
-sleep 3
-
-exit 0


=====================================
debian/tests/jruby
=====================================
@@ -3,6 +3,7 @@
 . "$(dirname $0)/common.sh"
 
 prepare
+install_gem_bundle
 
 cd "$AUTOPKGTEST_TMP"
 
@@ -10,7 +11,6 @@ cd "$AUTOPKGTEST_TMP"
 mkdir test/target
 ln -s /usr/share/java/junit4.jar test/target/junit.jar
 ln -s /usr/share/java/jakarta-annotation-api.jar test/target/annotation-api.jar
-ln -s /usr/share/java/jarjar.jar test/target/jarjar.jar
 
 # compile a few test dependencies
 gcc test/jruby/testapp/testapp.c -o test/jruby/testapp/testapp
@@ -36,5 +36,5 @@ export JRUBY_OPTS
 # run a single test
 #jruby -I. test/jruby/test_loading_builtin_libraries.rb
 
-# run the full rspec testsuite
-jruby -S rake test:jruby
+# run the testsuite
+jruby -S rake test:jruby:int


=====================================
debian/tests/mri-core
=====================================
@@ -3,6 +3,7 @@
 . "$(dirname $0)/common.sh"
 
 prepare
+install_gem_bundle
 debug_tests
 
 cd "$AUTOPKGTEST_TMP"
@@ -20,8 +21,16 @@ mri_exclude test_thread_value_in_trap TestThread.rb
 # flaky test
 mri_exclude test_autoload_same_file_with_raise TestAutoload.rb
 
+# fix TestDir#test_instance_chdir which sets HOME to $pwd
+JRUBY_OPTS="--nocache"
+export JRUBY_OPTS
+
+# fix TestRubyOptions#test_rubylib_invalid_encoding
+# due to unavailable locale in autopkgtest
+sed -i "s/en_US\.UTF-8/C.UTF-8/g" test/mri/ruby/test_rubyoptions.rb
+
 # run a single test
 #jruby test/mri/runner.rb --excludes=test/mri/excludes:test/mri/excludes_wip test/mri/ruby/test_thread.rb
 
-# run the full rspec testsuite
+# run the testsuite
 jruby -S rake test:mri:core


=====================================
debian/tests/mri-extra
=====================================
@@ -3,6 +3,7 @@
 . "$(dirname $0)/common.sh"
 
 prepare
+install_gem_bundle
 
 cd "$AUTOPKGTEST_TMP"
 


=====================================
debian/tests/mri-stdlib
=====================================
@@ -3,6 +3,7 @@
 . "$(dirname $0)/common.sh"
 
 prepare
+install_gem_bundle
 debug_tests
 
 cd "$AUTOPKGTEST_TMP"
@@ -11,20 +12,26 @@ cd "$AUTOPKGTEST_TMP"
 
 # Unreliable tests relying on bespoke threading
 # see https://github.com/jruby/jruby/issues/8118
-mri_exclude test_validation_success TestOpenURISSL.rb
 mri_exclude test_validation_failure TestOpenURISSL.rb
-mri_exclude test_validation_noverify TestOpenURISSL.rb
-
-# Causes the test to hang/timeout for an unknown reason
-mri_exclude test_get__break TestNetHTTP_v1_2.rb
 
 # Frequent timeout in salsa autopkgtest
 mri_exclude test_interrupt_in_other_thread TestRelineAsReadline.rb
 
+# these tests fail for unknown reason
+mri_exclude test_frozen_string_literal TestERBCore.rb
+mri_exclude test_frozen_string_literal TestERBCoreWOStrScan.rb
+
+# skip test case requiring bouncycastle >= 1.84
+mri_exclude test_tbs_precert_bytes OpenSSL/TestX509Certificate.rb
+
 # skip failing tests on specific architectures
 if [ "$(dpkg-architecture -qDEB_BUILD_ARCH)" = "arm64" ]; then
     mri_exclude test_failed_path TestIO_Console.rb
 fi
 
-# run the rspec testsuite
+# drop unreliable tests
+# https://github.com/jruby/jruby/issues/9614
+rm test/mri/net/http/test_http.rb
+
+# run the testsuite
 jruby -S rake test:mri:stdlib


=====================================
debian/tests/smoke
=====================================
@@ -2,12 +2,14 @@
 
 # Basic smoke test for jruby
 
-set -e
+. "$(dirname $0)/common.sh"
+
+prepare
 
 java -XshowSettings:properties -version > "$AUTOPKGTEST_ARTIFACTS/java_properties.txt" 2>&1
 
-# create home cache directory to avoid AppCDS warning on stderr
-mkdir -p "$HOME/.cache"
+# print info about jruby environment
+jruby --environment
 
 echo "puts 'Hello World!'" | jruby
 


=====================================
debian/tests/spec-compiler
=====================================
@@ -3,7 +3,9 @@
 . "$(dirname $0)/common.sh"
 
 prepare
+install_gem_bundle
 
-# run the rspec testsuite
 cd "$AUTOPKGTEST_TMP"
+
+# run the testsuite
 jruby -S rake spec:compiler


=====================================
debian/tests/spec-ffi
=====================================
@@ -3,8 +3,9 @@
 . "$(dirname $0)/common.sh"
 
 prepare
+install_gem_bundle
 
 cd "$AUTOPKGTEST_TMP"
 
-# run the rspec testsuite
+# run the testsuite
 jruby -S rake spec:ffi


=====================================
debian/tests/spec-ji
=====================================
@@ -3,6 +3,7 @@
 . "$(dirname $0)/common.sh"
 
 prepare
+install_gem_bundle
 
 # extra java libs required
 cd "$AUTOPKGTEST_TMP"


=====================================
debian/tests/spec-jruby
=====================================
@@ -3,7 +3,9 @@
 . "$(dirname $0)/common.sh"
 
 prepare
+install_gem_bundle
 
-# run the rspec testsuite
 cd "$AUTOPKGTEST_TMP"
+
+# run the testsuite
 jruby -S rake spec:jruby


=====================================
debian/tests/spec-ruby
=====================================
@@ -3,6 +3,7 @@
 . "$(dirname $0)/common.sh"
 
 prepare
+install_gem_bundle
 
 cd "$AUTOPKGTEST_TMP"
 
@@ -18,5 +19,5 @@ done
 # run a single spec
 #jruby spec/mspec/bin/mspec ci <spec>
 
-# run the rspec testsuite
+# run the testsuite
 jruby -S rake spec:ruby:fast



View it on GitLab: https://salsa.debian.org/java-team/jruby/-/compare/09d96af34e23b1ba3c45d7e94b558601e5f4a2ea...a5b1cbe3f4be37e71f3842ce16f5e95d70351674

-- 
View it on GitLab: https://salsa.debian.org/java-team/jruby/-/compare/09d96af34e23b1ba3c45d7e94b558601e5f4a2ea...a5b1cbe3f4be37e71f3842ce16f5e95d70351674
You're receiving this email because of your account on salsa.debian.org. Manage all notifications: https://salsa.debian.org/-/profile/notifications | Help: https://salsa.debian.org/help


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-java-commits/attachments/20260828/0b6d1580/attachment.htm>


More information about the pkg-java-commits mailing list