Bug#1013594: insubstantial: FTBFS: Caused by: : java.lang.VerifyError: Expecting a stackmap frame at branch target 33

2023-03-03 Thread Ben Hutchings
The laf-widget library that's part of this package generates some Java
bytecode directly:
.
Since Java 11, additional metadata (the "stackmap frame") appears to be
required for Java bytecode, and is not generated by laf-widget.

However, this code generation is apparently only used to "augment" the
rendering of other widget classes and does not seem to be essential for
the function of the library.  In fact, it was completely removed in a
later version of laf-widget:
https://github.com/kirill-grouchnikov/laf-widget/commit/8b0871e84ca6b6c0c479a6033998eb39e0fc767d

I patched the Gradle build files to disable this code generation and
the build succeeded.  I tested triplea with the old and new binaries
built from insubstantial: start the program, install the "Tutorial"
map, and start a local game with that map.  I didn't see any
regressions.  As I expected, the GUI rendering is different but only
slightly; see the attached "old" and "new" screenshots.

scilab is already broken (#1030205) so I couldn't test it.

I will NMU with the attached changes shortly.

Ben.

-- 
Ben Hutchings
Never put off till tomorrow what you can avoid all together.
diff -Nru insubstantial-7.3+dfsg3/debian/changelog insubstantial-7.3+dfsg3/debian/changelog
--- insubstantial-7.3+dfsg3/debian/changelog	2019-08-26 13:49:59.0 +0200
+++ insubstantial-7.3+dfsg3/debian/changelog	2023-03-03 23:42:05.0 +0100
@@ -1,3 +1,10 @@
+insubstantial (7.3+dfsg3-5.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Java 11: disable augmentation (fixes FTBFS) (Closes: #1013594)
+
+ -- Ben Hutchings   Fri, 03 Mar 2023 23:42:05 +0100
+
 insubstantial (7.3+dfsg3-5) unstable; urgency=medium
 
   [ Andrius Merkys ]
diff -Nru insubstantial-7.3+dfsg3/debian/patches/java-11-disable-augmentation.patch insubstantial-7.3+dfsg3/debian/patches/java-11-disable-augmentation.patch
--- insubstantial-7.3+dfsg3/debian/patches/java-11-disable-augmentation.patch	1970-01-01 01:00:00.0 +0100
+++ insubstantial-7.3+dfsg3/debian/patches/java-11-disable-augmentation.patch	2023-03-03 23:11:22.0 +0100
@@ -0,0 +1,51 @@
+From: Ben Hutchings 
+Subject: Java 11: disable augmentation
+Date: Fri, 03 Mar 2023 23:11:14 +0100
+Bug-Debian: https://bugs.debian.org/1013594
+
+Since Java 11, Java bytecode is required to include some additional
+metadata.  The bytecode generated by laf-widget for "augmentation" of
+other widget libraries does not follow this requirement, resulting in
+a build failure.
+
+A later version of laf-widget has removed this augmentation rather
+than fixing it:
+https://github.com/kirill-grouchnikov/laf-widget/commit/8b0871e84ca6b6c0c479a6033998eb39e0fc767d
+
+This augmentation does not seem to be essential, so disable it until
+it is fixed or properly removed.
+
+---
+--- a/substance-flamingo/build.gradle
 b/substance-flamingo/build.gradle
+@@ -24,6 +24,8 @@ dependencies {
+ 
+ task augmentation(dependsOn: classes) {
+   description = "Performs code augmentaiton for the laf-plugin and laf-widget libraries on the substance jar classes"
++  // Broken under Java 11 - see Debian bug #1013594
++  enabled = false
+ 
+   doLast {
+ def augmentClassPath = configurations.toolsCompile.asPath + File.pathSeparator + configurations.compile.asPath
+--- a/substance-swingx/build.gradle
 b/substance-swingx/build.gradle
+@@ -25,6 +25,8 @@ dependencies {
+ 
+ task augmentation(dependsOn: classes) {
+   description = "Performs code augmentaiton for the laf-plugin and laf-widget libraries on the substance jar classes"
++  // Broken under Java 11 - see Debian bug #1013594
++  enabled = false
+ 
+   doLast {
+ def augmentClassPath = configurations.toolsCompile.asPath + File.pathSeparator + configurations.compile.asPath
+--- a/substance/build.gradle
 b/substance/build.gradle
+@@ -28,6 +28,8 @@ dependencies {
+ 
+ task augmentation(dependsOn: classes) {
+   description = "Performs code augmentaiton for the laf-plugin and laf-widget libraries on the substance jar classes"
++  // Broken under Java 11 - see Debian bug #1013594
++  enabled = false
+ 
+   doLast {
+ def augmentClassPath = configurations.toolsCompile.asPath
diff -Nru insubstantial-7.3+dfsg3/debian/patches/series insubstantial-7.3+dfsg3/debian/patches/series
--- insubstantial-7.3+dfsg3/debian/patches/series	2019-08-26 13:49:59.0 +0200
+++ insubstantial-7.3+dfsg3/debian/patches/series	2023-03-03 22:31:44.0 +0100
@@ -4,3 +4,4 @@
 asm5.patch
 java9-compatibility.patch
 fix-56.patch
+java-11-disable-augmentation.patch


signature.asc
Description: This is a digitally signed message part


Bug#1013594: insubstantial: FTBFS: Caused by: : java.lang.VerifyError: Expecting a stackmap frame at branch target 33

2023-02-25 Thread Jerome Charaoui
Control: user debian-rele...@lists.debian.org
Control: usertag -1 + bsp-2023-02-ca-montreal

Hello,

I've worked on this today: I can confirm the FTBFS issue occurs
consistently, but I wasn't able to find a solution.

Upstream isn't much help here: 7.3 is the latest release and was tagged
in 2014 (9 years ago) and the project is now archived/read-only on
GitHub.

If we removed this from Debian, notable packages affected would be
include triplea and scilab.

Thanks,

-- Jérôme



Bug#1013594: insubstantial: FTBFS: Caused by: : java.lang.VerifyError: Expecting a stackmap frame at branch target 33

2022-06-24 Thread Lucas Nussbaum
Source: insubstantial
Version: 7.3+dfsg3-5
Severity: serious
Justification: FTBFS
Tags: bookworm sid ftbfs
User: lu...@debian.org
Usertags: ftbfs-20220624 ftbfs-bookworm

Hi,

During a rebuild of all packages in sid, your package failed to build
on amd64.


Relevant part (hopefully):
> make[1]: Entering directory '/<>'
> dh_auto_build -- -x test check assemble -x :substance:compileToolsJava
>   mkdir -p .gradle/init.d
>   cp /usr/share/gradle-debian-helper/init.gradle .gradle/init.d/
>   gradle --info --console plain --offline --stacktrace --no-daemon 
> --refresh-dependencies --gradle-user-home .gradle -Duser.home=. 
> -Duser.name=debian -Ddebian.package=insubstantial -Dfile.encoding=UTF-8 
> --parallel --max-workers=8 -x test check assemble -x 
> :substance:compileToolsJava
> Initialized native services in: /<>/.gradle/native
> To honour the JVM settings for this build a new JVM will be forked. Please 
> consider using the daemon: 
> https://docs.gradle.org/4.4.1/userguide/gradle_daemon.html.
> Starting process 'Gradle build daemon'. Working directory: 
> /<>/.gradle/daemon/4.4.1 Command: 
> /usr/lib/jvm/java-11-openjdk-amd64/bin/java 
> -Xbootclasspath/a:/usr/share/java/gradle-helper-hook.jar:/usr/share/java/maven-repo-helper.jar
>  --add-opens java.base/java.lang=ALL-UNNAMED -Dfile.encoding=UTF-8 
> -Duser.country -Duser.language=en -Duser.variant -cp 
> /usr/share/gradle/lib/gradle-launcher-4.4.1.jar 
> org.gradle.launcher.daemon.bootstrap.GradleDaemon 4.4.1
> Successfully started process 'Gradle build daemon'
> An attempt to start the daemon took 0.834 secs.
> The client will now receive all logging from the daemon (pid: 4095812). The 
> daemon log file: /<>/.gradle/daemon/4.4.1/daemon-4095812.out.log
> Daemon will be stopped at the end of the build stopping after processing
> Closing daemon's stdin at end of input.
> The daemon will no longer process any standard input.
> Using 8 worker leases.
> Creating new cache for fileHashes, path 
> /<>/.gradle/caches/4.4.1/fileHashes/fileHashes.bin, access 
> org.gradle.cache.internal.DefaultCacheAccess@624a2ef
> Creating new cache for resourceHashesCache, path 
> /<>/.gradle/caches/4.4.1/fileHashes/resourceHashesCache.bin, 
> access org.gradle.cache.internal.DefaultCacheAccess@624a2ef
> Creating new cache for fileHashes, path 
> /<>/.gradle/4.4.1/fileHashes/fileHashes.bin, access 
> org.gradle.cache.internal.DefaultCacheAccess@146f4ba3
> Starting Build
> Compiling initialization script '/<>/.gradle/init.d/init.gradle' 
> using SubsetScriptTransformer.
> Creating new cache for metadata-1.1/results, path 
> /<>/.gradle/caches/transforms-1/metadata-1.1/results.bin, access 
> org.gradle.cache.internal.DefaultCacheAccess@478049c5
> Compiling initialization script '/<>/.gradle/init.d/init.gradle' 
> using BuildScriptTransformer.
> Compiling settings file '/<>/settings.gradle' using 
> SubsetScriptTransformer.
> Compiling settings file '/<>/settings.gradle' using 
> BuildScriptTransformer.
> Settings evaluated using settings file '/<>/settings.gradle'.
>   Settings file found (/<>/settings.gradle), but 
> rootProject.name isn't defined
>   Root project name not defined in settings.gradle, defaulting to 
> 'insubstantial' instead of the name of the root directory 
> 'insubstantial-7.3+dfsg3'
> Projects loaded. Root project using build file 
> '/<>/build.gradle'.
> Included projects: [root project 'insubstantial', project ':flamingo', 
> project ':laf-plugin', project ':laf-widget', project ':substance', project 
> ':substance-flamingo', project ':substance-swingx', project ':trident']
>   Keep-alive timer started
>   Adding Debian repository to project 'insubstantial'
>   Adding Debian repository to project 'flamingo'
>   Adding Debian repository to project 'laf-plugin'
>   Adding Debian repository to project 'laf-widget'
>   Adding Debian repository to project 'substance'
>   Adding Debian repository to project 'substance-flamingo'
>   Adding Debian repository to project 'substance-swingx'
>   Adding Debian repository to project 'trident'
> Parallel execution is an incubating feature.
> Evaluating root project 'insubstantial' using build file 
> '/<>/build.gradle'.
> Compiling build file '/<>/build.gradle' using 
> SubsetScriptTransformer.
> Compiling build file '/<>/build.gradle' using 
> BuildScriptTransformer.
> Evaluating project ':flamingo' using build file 
> '/<>/flamingo/build.gradle'.
> Compiling build file '/<>/flamingo/build.gradle' using 
> SubsetScriptTransformer.
> Compiling build file '/<>/flamingo/build.gradle' using 
> BuildScriptTransformer.
>   Adding Maven pom generation to project 'flamingo'
>   Linking the generated javadoc to the system JDK API documentation
> Evaluating project ':laf-plugin' using build file 
> '/<>/laf-plugin/build.gradle'.
> Compiling build file '/<>/laf-plugin/build.gradle' using 
> SubsetScriptTransformer.
> Compiling build file