Bug 2051135 - automake fails to build with java-17-openjdk
Summary: automake fails to build with java-17-openjdk
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: automake
Version: 36
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: ---
Assignee: Frédéric Bérat
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 2024265
TreeView+ depends on / blocked
 
Reported: 2022-02-06 13:59 UTC by jiri vanek
Modified: 2022-02-15 14:02 UTC (History)
14 users (show)

Fixed In Version: automake-1.16.5-4.fc37 automake-1.16.5-4.fc36
Clone Of:
Environment:
Last Closed: 2022-02-15 14:02:00 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description jiri vanek 2022-02-06 13:59:59 UTC
automake fails to build with java-17-openjdk as sytem JDK. See https://fedoraproject.org/wiki/Changes/Java17 .
See especially part about known failures: https://fedoraproject.org/wiki/Changes/Java17#common_issues_packagers_can_face_and_gathered_solutions

For the build logs, see: https://koji.fedoraproject.org/koji/taskinfo?taskID=82423694
https://kojipkgs.fedoraproject.org/work/tasks/3918/82423918/mock_output.log
https://kojipkgs.fedoraproject.org/work/tasks/3918/82423918/hw_info.log
https://kojipkgs.fedoraproject.org/work/tasks/3918/82423918/state.log
https://kojipkgs.fedoraproject.org/work/tasks/3918/82423918/build.log
https://kojipkgs.fedoraproject.org/work/tasks/3918/82423918/root.log
We run the rebuild in side tag f36-java17, but as fail ratio was small, we expect this side tag to be merged into rawhide 7 or 8 of February 2022.
To reproduce before this date simply: fedpkg clone automake; cd automake;  fedpkg build --target f36-java17; #The target is crucial.
After this date the usual fedpkg build in f36 and up should do.

We run two reruns your package failed both.

We had also run the mass rebuilds in copr since November. We keep all encountered failures. See them here: https://copr.fedorainfracloud.org/coprs/jvanek/java17//package/automake
You may find interesting additional informations here. Also we were spamming maintainers regualrly, check you spam folder.
              

We had tried aprox 500 packages, and aprox 65 had failed, so the java-17-openjdk will be system JDK in f36, and you should fix your package if you want to keep it alive. Usually the fix is simple, and best is to update the package to latest upstream version.
There will be usual mass rebuild once f36 branches. You may got another FTBFS bug.
Let us know here if you have any questions, here in bug, or at java-devel.org .

We'd appreciate help from the people who know this package best, but if you don't want to work on this now, let us know so we can try to work around it on our side if needed.

Comment 1 jiri vanek 2022-02-06 14:23:45 UTC
+ case $keep_testdirs in
+ return 0
+ set +x
SKIP contrib/t/parallel-tests-html-recursive.sh (exit status: 77)
RPM build errors:
+ false


Overall does nto look like java caused issue

Comment 2 Frédéric Bérat 2022-02-07 11:16:54 UTC
It looks like there are 3 tests failing in this build:

FAIL: t/objc-deps.sh
FAIL: t/objcxx-minidemo.sh
FAIL: t/objcxx-deps.sh

But none of them seem related to Java:

gcc  -g -O2  -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  -o foo bar.o  
/usr/bin/ld: bar.o: `stdout@@GLIBC_2.2' non-PLT reloc for symbol defined in shared library and accessed from executable (rebuild file with -fPIC ?)
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status

g++  -g -O2  -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  -o ok ok.o  
/usr/bin/ld: ok.o: `_ZSt4cout@@GLIBCXX_3.4' non-PLT reloc for symbol defined in shared library and accessed from executable (rebuild file with -fPIC ?)
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status

g++  -g -O2  -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  -o foo bar.o  
/usr/bin/ld: bar.o: `_ZSt4cout@@GLIBCXX_3.4' non-PLT reloc for symbol defined in shared library and accessed from executable (rebuild file with -fPIC ?)
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status

Comment 3 Frédéric Bérat 2022-02-07 15:47:02 UTC
After some more investigation, it looks like these tests are now failing even on a plain rawhide build:
https://koji.fedoraproject.org/koji/taskinfo?taskID=82504606

The same tests are succeeding on f35:
https://koji.fedoraproject.org/koji/taskinfo?taskID=82507509

The following change seems to fix the issue, although it's not yet clear how and why:
@@@ -56,7 -56,7 +56,7 @@@ BuildRequires: expec
  BuildRequires: flex
  BuildRequires: gcc-gfortran
  BuildRequires: gettext-devel
--BuildRequires: java-11-openjdk-devel
++BuildRequires: java-devel
  BuildRequires: libtool
  BuildRequires: ncompress
  BuildRequires: sharutils

Checked with https://koji.fedoraproject.org/koji/taskinfo?taskID=82506620

Comment 4 Frédéric Bérat 2022-02-07 18:39:12 UTC
After some more investigations, the tests are skipped if I remove the java-11-openjdk-devel from BuildRequires.
The skip of the test is a result of a failure during the configure call:

 checking whether we are cross compiling... configure: error: in `/builddir/build/BUILD/automake-1.16.5/t/objcxx-minidemo.dir':
 configure: error: cannot run Objective C++ compiled programs.
 If you meant to cross compile, use `--host'.

Which means that either the jdk is actually required for the Objective C tests to be executed properly, or an indirect dependency of it is. Since I'm not familiar with Objective C under-hoods, it's hard to make a definitive statement here.

Anyway, since java-11-openjdk-devel is not supported any longer, having java-devel instead makes sense.

Comment 5 Severin Gehwolf 2022-02-07 19:18:40 UTC
(In reply to Frédéric Bérat from comment #4)
> Anyway, since java-11-openjdk-devel is not supported any longer, having
> java-devel instead makes sense.

Just to clarify. JDK 11 (a.k.a java-11-openjdk-devel) is still supported and will be for some time.

The change in question here is that F36 will have JDK 17 as system JDK (thus, will provide java-devel in F36 instead of JDK 11).

Comment 6 Ben Cotton 2022-02-08 20:07:48 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 36 development cycle.
Changing version to 36.


Note You need to log in before you can comment on or make changes to this bug.