FS#49396 - [swt] Package is unbuildable and missing an upstream bug fix

Attached to Project: Arch Linux
Opened by felix (fstirlitz) - Thursday, 19 May 2016, 11:21 GMT
Last edited by Doug Newgard (Scimmia) - Thursday, 19 May 2016, 22:24 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To No-one
Architecture x86_64
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Maybe I should have written two reports, but both issues came up while investigating the same bug. So:

0. The version of SWT in [extra] apparently has <https://bugs.eclipse.org/bugs/show_bug.cgi?id=457183> unfixed (despite it being fixed upstream in the package source code), judging from the fact that TuxGuitar hangs on startup (eating 100% CPU time) with this stack trace:

[1] org.eclipse.swt.internal.gtk.OS._g_list_data (native method)
[2] org.eclipse.swt.internal.gtk.OS.g_list_data (null)
[3] org.eclipse.swt.widgets.Combo.findButtonHandle (null)
[4] org.eclipse.swt.widgets.Combo.createHandle (null)
[5] org.eclipse.swt.widgets.Widget.createWidget (null)
[6] org.eclipse.swt.widgets.Control.createWidget (null)
[7] org.eclipse.swt.widgets.Scrollable.createWidget (null)
[8] org.eclipse.swt.widgets.Control.<init> (null)
[9] org.eclipse.swt.widgets.Scrollable.<init> (null)
[10] org.eclipse.swt.widgets.Composite.<init> (null)
[11] org.eclipse.swt.widgets.Combo.<init> (null)
[12] org.herac.tuxguitar.app.view.dialog.fretboard.TGFretBoard.initToolBar (TGFretBoard.java:141)
[13] org.herac.tuxguitar.app.view.dialog.fretboard.TGFretBoard.<init> (TGFretBoard.java:88)
[14] org.herac.tuxguitar.app.view.dialog.fretboard.TGFretBoardEditor.showFretBoard (TGFretBoardEditor.java:73)
[15] org.herac.tuxguitar.app.view.main.TGWindow.createShellComposites (TGWindow.java:124)
[16] org.herac.tuxguitar.app.view.main.TGWindow.createShell (TGWindow.java:67)
[17] org.herac.tuxguitar.app.TuxGuitar.displayGUI (TuxGuitar.java:121)
[18] org.herac.tuxguitar.app.TGMainSingleton.launchTuxGuitar (TGMainSingleton.java:59)
[19] org.herac.tuxguitar.app.TGMainSingleton.launchSingleton (TGMainSingleton.java:47)
[20] org.herac.tuxguitar.app.TGMainSingleton.main (TGMainSingleton.java:35)

1. The swt source package in ABS is not buildable. This is the build log:

[javac] build-swt.xml:11: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
[javac] Compiling 1164 source files to build
[javac]
[javac] WARNING
[javac]
[javac] The -source switch defaults to 1.8 in JDK 1.8.
[javac] If you specify -target 1.6 you now must also specify -source 1.6.
[javac] Ant will implicitly add -source 1.6 for you. Please change your build file.
[javac] warning: [options] bootstrap class path not set in conjunction with -source 1.6
[javac] src/org/eclipse/swt/SWT.java:47: error: duplicate class: org.eclipse.swt.SWT
[javac] public class SWT {
[javac] ^
[javac] src/org/eclipse/swt/SWTError.java:42: error: duplicate class: org.eclipse.swt.SWTError
[javac] public class SWTError extends Error {
[javac] ^
[javac] src/org/eclipse/swt/SWTException.java:33: error: duplicate class: org.eclipse.swt.SWTException
[javac] public class SWTException extends RuntimeException {
[javac] ^
[javac] src/org/eclipse/swt/accessibility/ACC.java:22: error: duplicate class: org.eclipse.swt.accessibility.ACC
[javac] public class ACC {
[javac] ^
...
and so on
...
[javac] 100 errors
[javac] 1 warning

Reproducible with both OpenJDK7 and OpenJDK8; may be a javac bug. I haven't investigated further.
This task depends upon

Closed by  Doug Newgard (Scimmia)
Thursday, 19 May 2016, 22:24 GMT
Reason for closing:  Not a bug
Comment by Doug Newgard (Scimmia) - Thursday, 19 May 2016, 12:01 GMT
Builds just fine here in a clean chroot, have you tried that?

Edit: As for the bug fix, it's there. Just look at the code.
Comment by felix (fstirlitz) - Thursday, 19 May 2016, 12:57 GMT
Sigh. Yes, it's there. And the build failing was my mistake; I had the files extracted twice in two different directories. Deleting ${srcdir} fixed it.

It's actually tuxguitar's packaging that's insane: it bundles its own outdated copy of SWT for some reason. After doing

# ln -fs /usr/share/java/swt.jar /usr/share/tuxguitar/lib

it runs fine. Why it does so is beyond me; the package explicitly lists SWT in its dependencies, it should have used the system-installed copy.

Loading...