Community Packages

Please read this before reporting a bug:
https://wiki.archlinux.org/title/Bug_reporting_guidelines

Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!
Tasklist

FS#55763 - [logstash] package fails to build with jre9-openjdk

Attached to Project: Community Packages
Opened by Erich Eckner (deepthought) - Wednesday, 27 September 2017, 07:32 GMT
Last edited by Levente Polyak (anthraxx) - Wednesday, 11 October 2017, 23:03 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Levente Polyak (anthraxx)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:

With jre9-openjdk, the package fails to build:
==> Rake bootstrap...
mkdir -p vendor
mkdir vendor/_
mkdir -p build
mkdir -p build/bootstrap
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by jnr.posix.JavaLibCHelper to method sun.nio.ch.SelChImpl.getFD()
WARNING: Please consider reporting this to the maintainers of jnr.posix.JavaLibCHelper
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
io/console on JRuby shells out to stty for most operations
rake aborted!
load error: jopenssl/load -- java.lang.ExceptionInInitializerError: null
org/jruby/RubyKernel.java:1040:in `require'
org/jruby/RubyKernel.java:1040:in `require'
org/jruby/RubyKernel.java:1040:in `require'
org/jruby/RubyKernel.java:1040:in `require'
org/jruby/RubyKernel.java:1040:in `require'
org/jruby/RubyKernel.java:1040:in `require'
org/jruby/RubyKernel.java:1059:in `load'
/build/logstash/src/logstash-5.6.2/rakelib/gems.rake:1:in `(root)'
/build/logstash/src/logstash-5.6.2/rakelib/gems.rake:2:in `(root)'
org/jruby/RubyKernel.java:1059:in `load'
(See full trace by running task with --trace)
==> ERROR: A failure occurred in build().

However, with jre8-openjdk, it works.

Additional info:
* package version(s)
logstash 5.6.2-1
* config and/or log files etc.
logs are attached

Steps to reproduce:
> git clone https://git.archlinux.org/svntogit/community.git/
> cd community
> git checkout 114a904e3500d134c325dc99e982792d5626a793
> cd logstash/repos/community-x86_64
> sed -i 's|>=8|=9|' PKGBUILD
# Note, that we replace makedepends _and_ depends on purpose: If jre8-openjdk is installed to satisfy depends, the build will still work, because java8 will/might be used.
> staging-x86_64-build
This task depends upon

Closed by  Levente Polyak (anthraxx)
Wednesday, 11 October 2017, 23:03 GMT
Reason for closing:  Fixed
Additional comments about closing:  5.6.3-1
Comment by Levente Polyak (anthraxx) - Wednesday, 27 September 2017, 10:59 GMT
what exactly is the purpose of this ticket? If it should be able to be built with jdk 9 then it is something that you may want to report upstream, as its jruby used in logstash that fails.
the Makedepends can be pinned to 8, but that's about it.
Comment by Erich Eckner (deepthought) - Wednesday, 27 September 2017, 11:04 GMT
Pinning the makedepends to =8 would be a (partial) solution to this ticket.
"partial", because makepkg may/will install java9 as depends plus java8 as makedepends (later on) which will still break the package build, because the build() uses java9 then IIRC, but let me recheck.
Comment by Erich Eckner (deepthought) - Wednesday, 27 September 2017, 11:21 GMT
yep, setting depends=9 and makedepends=8 leads to the predicted behaviour: it even emits a warning, that java9 will be used as default.
I think, aditionally to pinning the makedepends version to 8, build() should:
a) set the default java version during the build to 8 or
b) ensure by some other means, that java8 is used for building.
Comment by Levente Polyak (anthraxx) - Wednesday, 27 September 2017, 11:24 GMT
why should i change it to depends=9 is what i don't understand
Comment by Erich Eckner (deepthought) - Wednesday, 27 September 2017, 11:26 GMT
you should not change depends - it's solely for testing
This way, you can see what happens if pacman choses (for whatever reason) to install java9 to satisfy java>=8
Comment by Levente Polyak (anthraxx) - Wednesday, 27 September 2017, 11:29 GMT
that's obvious but as long as it doesn't do this by default i understand but fail to see where the issue is right now and why it would need any adjustments for the current setup/behavior. as long as you don't manually modify it, it works as it should.
Comment by Erich Eckner (deepthought) - Wednesday, 27 September 2017, 11:32 GMT
The problem arises as soon as you have java9 in a package repository which is listed before the package repository of java8.
This is currently the case for achlinux32, as jre9-openjdk is in testing whereas jre8-openjdk is in extra. Therefor pacman installs jre9-openjdk, which breaks the build.

Loading...