Re: Freeplane and latest jgoodies-forms: strange runtime error

2016-12-10 Thread tony mancill
On Thu, Dec 08, 2016 at 09:23:35PM -0800, tony mancill wrote:
> On Tue, Dec 06, 2016 at 07:40:59PM +0100, Markus Koschany wrote:
> 
> 
> 
> > I wouldn't worry to much about JGoodies now. We are already at the end
> > of the Stretch release cycle but there is still one month left to clean
> > everything up. Best and most time saving option IMO would be to ask the
> > release team to binNMU all reverse-dependencies. I know transition
> > freeze was on 5th of November but hey, let's talk to them and see how
> > they react. Otherwise we just split the work between all active DDs and
> > rebuild all reverse-dependencies. That should do the trick.
> 
> Thanks to all who have contributed to the thread.  I will start digging
> into the r-deps this weekend so we have a list of what is affected at
> runtime.  If nothing else, that will allow me to explain myself to the
> Release Team and understand the problem better.  But I agree that we can
> get rebuilds done if necessary.  Thank you for the support.

I have performed runtime checks on a sid system for all r-deps that I
found in the archive for libjgoodies-[looks|forms]-java.  With the
exceptions of biomaj, which I wasn't sure how to test, and jitsi, which
isn't currently installable, everything else appears to be okay with the
versions of jgoodies packages in the archive.

If there is evidence to the contrary, please send it my way.

Thanks,
tony


signature.asc
Description: PGP signature


Re: Freeplane and latest jgoodies-forms: strange runtime error

2016-12-08 Thread tony mancill
On Tue, Dec 06, 2016 at 07:40:59PM +0100, Markus Koschany wrote:



> I wouldn't worry to much about JGoodies now. We are already at the end
> of the Stretch release cycle but there is still one month left to clean
> everything up. Best and most time saving option IMO would be to ask the
> release team to binNMU all reverse-dependencies. I know transition
> freeze was on 5th of November but hey, let's talk to them and see how
> they react. Otherwise we just split the work between all active DDs and
> rebuild all reverse-dependencies. That should do the trick.

Thanks to all who have contributed to the thread.  I will start digging
into the r-deps this weekend so we have a list of what is affected at
runtime.  If nothing else, that will allow me to explain myself to the
Release Team and understand the problem better.  But I agree that we can
get rebuilds done if necessary.  Thank you for the support.

Cheers,
tony


signature.asc
Description: PGP signature


Re: Freeplane and latest jgoodies-forms: strange runtime error

2016-12-06 Thread Paul Wise
On Wed, Dec 7, 2016 at 12:37 AM, Emmanuel Bourg wrote:

> This one was really tricky, nobody could have anticipated it with our
> current tools. We would need a kind of static analyzer that scans all
> classes in the Debian packages and reports if any type, method of field
> can't be resolved. Bonus point if we can couple that with Britney to
> prevent the packages breaking the binary compatibility from
> transitioning to testing.

The package 'adequate' does this for C libraries, perhaps it could be
extended to Java too.

-- 
bye,
pabs

https://wiki.debian.org/PaulWise



Re: Freeplane and latest jgoodies-forms: strange runtime error

2016-12-06 Thread Paul Wise
On Tue, Dec 6, 2016 at 11:31 PM, tony mancill wrote:

>  And I didn't anticipate the run-time breakage.  Long-term, I
> think it is worth discussing how best to support Java applications in
> main, since it often feels like we're swimming against the stream trying
> to support system-level JARs for everything packaged for Debian.

Probably the addition of more autopkgtests would help.

Also, there is a Java API tracker here:

https://github.com/lvc/japi-tracker

-- 
bye,
pabs

https://wiki.debian.org/PaulWise



Re: Freeplane and latest jgoodies-forms: strange runtime error

2016-12-06 Thread Markus Koschany
On 06.12.2016 16:31, tony mancill wrote:
> On Tue, Dec 06, 2016 at 11:22:46AM +0100, Thorsten Glaser wrote:
>> On Mon, 5 Dec 2016, Felix Natter wrote:
>>
>>> 2. Could someone please help analyse the underlying problem
>>
>> I was also bitten by this problem:
>>
>> https://lists.alioth.debian.org/pipermail/pkg-java-commits/2016-December/062915.html
>>
>> On the other hand, Squirrel-SQL is not uploaded to Debian yet,
>> so that’s nobody’s fault.
>>
>> But I think we basically have to assume that the exact contrary
>> of what the jgoodies website states is true, i.e. that every new
>> version breaks all rdeps, both at compile and at runtime.
> 
> ...  I'm frustrated by this because
> I thought we had addressed the compile-time rdeps by building everything
> and reaching out to package maintainers when there was compile-time
> breakage.  And I didn't anticipate the run-time breakage.  Long-term, I
> think it is worth discussing how best to support Java applications in
> main, since it often feels like we're swimming against the stream trying
> to support system-level JARs for everything packaged for Debian.
> 
> But short-term, I'd like to ask for the team's input on what I needs to
> do to clean up the mess I have made by introducing the new version.  Is
> it sufficient to rebuild all rdeps and then upload after a quick
> run-time test?
> 
> Thanks for the input, and sorry for the noise,

Hi,

I agree it is often difficult to bring the Java and Debian philosophies
together and we should use only one version of a Java library whenever
possible but we should also be flexible as Emmanuel already pointed out.
We could write autopkg tests or implement some other QA system but most
of the transitions are controllable, that means FTBFS issues are quickly
detected (thanks to the reproducible builds effort or the QA team) or
our own rebuilds. Runtime breakage is rather rare and it will be
detected if nothing else by users in time for the next stable release.

I wouldn't worry to much about JGoodies now. We are already at the end
of the Stretch release cycle but there is still one month left to clean
everything up. Best and most time saving option IMO would be to ask the
release team to binNMU all reverse-dependencies. I know transition
freeze was on 5th of November but hey, let's talk to them and see how
they react. Otherwise we just split the work between all active DDs and
rebuild all reverse-dependencies. That should do the trick.

Regards,

Markus




signature.asc
Description: OpenPGP digital signature


Re: Freeplane and latest jgoodies-forms: strange runtime error

2016-12-06 Thread Markus Koschany
On 06.12.2016 18:59, Thorsten Glaser wrote:
> On Tue, 6 Dec 2016, Emmanuel Bourg wrote:
> 
>> issues. if a package often breaks the compatibility and isn't security
>> sensitive, then maintaining more than one version is probably more
>> efficient (jgoodies and guava fall into this category).
> 
> What is “security sensitive”? I’d not dare to put numbers to such
> a denomination.

Bouncycastle is a prime example of security sensitive Java software
while qdox, ASM or any Java package that just provides some sort of API
is less likely vulnerable. It's a matter of balancing the pros and cons
and we have already removed duplicate libraries or reduced dependencies
during the Stretch release cycle. See [1] for a quick overview for some
of them.

> No idea whether maintaining several versions is really worth it.
> I mean, jgoodies looks upstream-dead, so this is a good argument
> in favour of both

JGoodies' upstream has discontinued to release his software as free
software but he is still very active. [2] Hence we won't have to suffer
from future JGoodies transitions, although the reason is rather sad.

> ⓐ maintain multiple versions of our own
> 
> ⓑ package the last version of it, maintain that, and patch
>   all applications to use it (and we expect no further/new
>   breakage, because there will be no new upstream version)

I think we can expect that this is the last version of JGoodies, so
maintaining it will become easier until the reverse-dependencies decide
to switch to another library.

Regards,

Markus


[1] https://wiki.debian.org/Java/Oldlibs
[2] http://www.jgoodies.com/downloads/libraries/



signature.asc
Description: OpenPGP digital signature


Re: Freeplane and latest jgoodies-forms: strange runtime error

2016-12-06 Thread Thorsten Glaser
On Tue, 6 Dec 2016, Emmanuel Bourg wrote:

> issues. if a package often breaks the compatibility and isn't security
> sensitive, then maintaining more than one version is probably more
> efficient (jgoodies and guava fall into this category).

What is “security sensitive”? I’d not dare to put numbers to such
a denomination.

No idea whether maintaining several versions is really worth it.
I mean, jgoodies looks upstream-dead, so this is a good argument
in favour of both

ⓐ maintain multiple versions of our own

ⓑ package the last version of it, maintain that, and patch
  all applications to use it (and we expect no further/new
  breakage, because there will be no new upstream version)

bye,
//mirabilos
-- 
tarent solutions GmbH
Rochusstraße 2-4, D-53123 Bonn • http://www.tarent.de/
Tel: +49 228 54881-393 • Fax: +49 228 54881-235
HRB 5168 (AG Bonn) • USt-ID (VAT): DE122264941
Geschäftsführer: Dr. Stefan Barth, Kai Ebenrett, Boris Esser, Alexander Steeg



Re: Freeplane and latest jgoodies-forms: strange runtime error

2016-12-06 Thread Thorsten Glaser
On Tue, 6 Dec 2016, tony mancill wrote:

> and reaching out to package maintainers when there was compile-time
> breakage.  And I didn't anticipate the run-time breakage.  Long-term, I

I’d assume runtime breakage would also show at compile time, but
apparently it’s worse than I thought when you checked that.

As for Squirrel-SQL, well, it’s not yet uploaded to Debian proper
(there’s a TODO list for that), so it’s not your fault.

> think it is worth discussing how best to support Java applications in
> main, since it often feels like we're swimming against the stream trying
> to support system-level JARs for everything packaged for Debian.

We are, but this is still the only way forward. And for a language
as “enterprise” as Java™, there’s no excuse; the extremely large
corpus of software written in C, C++, etc. manages that just fine.

> But short-term, I'd like to ask for the team's input on what I needs to
> do to clean up the mess I have made by introducing the new version.  Is
> it sufficient to rebuild all rdeps and then upload after a quick
> run-time test?

As I said, I’d think they would break at compile time, but if that’s
not it, good question. I didn’t look at it in depth yet, but they
may need source patches to work with the newer jgoodies (yes, string
of expletives matches my feelings quite well when dealing with that
piece of… software).

bye,
//mirabilos
-- 
tarent solutions GmbH
Rochusstraße 2-4, D-53123 Bonn • http://www.tarent.de/
Tel: +49 228 54881-393 • Fax: +49 228 54881-235
HRB 5168 (AG Bonn) • USt-ID (VAT): DE122264941
Geschäftsführer: Dr. Stefan Barth, Kai Ebenrett, Boris Esser, Alexander Steeg



Re: Freeplane and latest jgoodies-forms: strange runtime error

2016-12-06 Thread Emmanuel Bourg
Le 6/12/2016 à 16:31, tony mancill a écrit :

> ...  I'm frustrated by this because
> I thought we had addressed the compile-time rdeps by building everything
> and reaching out to package maintainers when there was compile-time
> breakage. And I didn't anticipate the run-time breakage.

This one was really tricky, nobody could have anticipated it with our
current tools. We would need a kind of static analyzer that scans all
classes in the Debian packages and reports if any type, method of field
can't be resolved. Bonus point if we can couple that with Britney to
prevent the packages breaking the binary compatibility from
transitioning to testing.


> I think it is worth discussing how best to support Java applications in
> main, since it often feels like we're swimming against the stream trying
> to support system-level JARs for everything packaged for Debian.

We don't have many options if we want to stay within the bounds defined
by the Debian rules. I think we have to find the balance between
adapting the packages to the latest version of their dependencies, and
maintaining several versions of the same package to avoid compatibility
issues. if a package often breaks the compatibility and isn't security
sensitive, then maintaining more than one version is probably more
efficient (jgoodies and guava fall into this category).


> But short-term, I'd like to ask for the team's input on what I needs to
> do to clean up the mess I have made by introducing the new version.  Is
> it sufficient to rebuild all rdeps and then upload after a quick
> run-time test?

I think so.

Emmanuel Bourg



Re: Freeplane and latest jgoodies-forms: strange runtime error

2016-12-06 Thread tony mancill
On Tue, Dec 06, 2016 at 11:22:46AM +0100, Thorsten Glaser wrote:
> On Mon, 5 Dec 2016, Felix Natter wrote:
> 
> > 2. Could someone please help analyse the underlying problem
> 
> I was also bitten by this problem:
> 
> https://lists.alioth.debian.org/pipermail/pkg-java-commits/2016-December/062915.html
> 
> On the other hand, Squirrel-SQL is not uploaded to Debian yet,
> so that’s nobody’s fault.
> 
> But I think we basically have to assume that the exact contrary
> of what the jgoodies website states is true, i.e. that every new
> version breaks all rdeps, both at compile and at runtime.

...  I'm frustrated by this because
I thought we had addressed the compile-time rdeps by building everything
and reaching out to package maintainers when there was compile-time
breakage.  And I didn't anticipate the run-time breakage.  Long-term, I
think it is worth discussing how best to support Java applications in
main, since it often feels like we're swimming against the stream trying
to support system-level JARs for everything packaged for Debian.

But short-term, I'd like to ask for the team's input on what I needs to
do to clean up the mess I have made by introducing the new version.  Is
it sufficient to rebuild all rdeps and then upload after a quick
run-time test?

Thanks for the input, and sorry for the noise,
tony


signature.asc
Description: PGP signature


Re: Freeplane and latest jgoodies-forms: strange runtime error

2016-12-06 Thread Thorsten Glaser
On Mon, 5 Dec 2016, Felix Natter wrote:

> 2. Could someone please help analyse the underlying problem

I was also bitten by this problem:

https://lists.alioth.debian.org/pipermail/pkg-java-commits/2016-December/062915.html

On the other hand, Squirrel-SQL is not uploaded to Debian yet,
so that’s nobody’s fault.

But I think we basically have to assume that the exact contrary
of what the jgoodies website states is true, i.e. that every new
version breaks all rdeps, both at compile and at runtime.

bye,
//mirabilos
-- 
tarent solutions GmbH
Rochusstraße 2-4, D-53123 Bonn • http://www.tarent.de/
Tel: +49 228 54881-393 • Fax: +49 228 54881-235
HRB 5168 (AG Bonn) • USt-ID (VAT): DE122264941
Geschäftsführer: Dr. Stefan Barth, Kai Ebenrett, Boris Esser, Alexander Steeg



Re: Freeplane and latest jgoodies-forms: strange runtime error

2016-12-06 Thread Emmanuel Bourg
Le 6/12/2016 à 08:08, Felix Natter a écrit :

> I think the problem was simply that freeplane needed to be recompiled
> with the new jgoodies-forms [1].
> First we made freeplane-1.5.16-2 compatible with the new
> jgoodies-forms-1.9.0, then
> we uploaded the new jgoodies-forms, which apparently did not trigger a
> rebuild of freeplane.
>  
> How does debian work here, when are rebuilds triggered? So for these
> types of changes
> (the type of Borders.DLU2 changed from Borders to Paddings, see
> decompiled code above),
> I always need to provide a freeplane update?

Hi Felix,

You've been hit by a binary incompatibility between jgoodies-forms 1.6
and 1.9. The type of the Borders.DLU2 field changed from
javax.swing.Border to com.jgoodies.forms.factories.Paddings.Padding.
This modification is source compatible (Padding implements
javax.swing.Border) but not binary compatible (the JVM attempts to match
the exact signature), thus requiring the StyleEditorPanel class to be
recompiled.

There is no mechanism is Debian to detect this kind of incompatibility
(that would be an excellent task for a GSoC student!), even the periodic
rebuilds performed by the Reproducible Builds Team wouldn't be able to
detect it. So rebuilding manually is the best thing you can do in this case.

Emmanuel Bourg



Re: Freeplane and latest jgoodies-forms: strange runtime error

2016-12-05 Thread Felix Natter
hello debian-java,

 

(here are the pastebins which do not expire:

http://paste.debian.net/900764/
http://paste.debian.net/900765/)

 

I think the problem was simply that freeplane needed to be recompiled with the new jgoodies-forms [1].

First we made freeplane-1.5.16-2 compatible with the new jgoodies-forms-1.9.0, then

we uploaded the new jgoodies-forms, which apparently did not trigger a rebuild of freeplane.

 

How does debian work here, when are rebuilds triggered? So for these types of changes

(the type of Borders.DLU2 changed from Borders to Paddings, see decompiled code above),

I always need to provide a freeplane update?

 

[1] https://docs.oracle.com/javase/7/docs/api/java/lang/NoSuchFieldError.html

 

Thanks and Best Regards,

Felix

 

Felix Natter



Freeplane and latest jgoodies-forms: strange runtime error

2016-12-05 Thread Felix Natter
hello Debian-Java,

I have two concerns:

1. Could someone please upload freeplane-1.5.16-3 which fixes an RC bug
(#846816):
  https://anonscm.debian.org/cgit/pkg-java/freeplane.git

2. Could someone please help analyse the underlying problem
(freeplane-1.5.16-3 might only fix a symptom)?

Here is the problem which occurs when starting Freeplane
(I believe that this only occurs at runtime) [1]:

STDERR: Exception in thread "AWT-EventQueue-1" 
STDERR: java.lang.NoSuchFieldError: DLU2
STDERR: at 
org.freeplane.features.styles.mindmapmode.StyleEditorPanel.init(StyleEditorPanel.java:845)
STDERR: at 
org.freeplane.features.styles.mindmapmode.StyleEditorPanel.access$2500(StyleEditorPanel.java:119)
STDERR: at 
org.freeplane.features.styles.mindmapmode.StyleEditorPanel$1.hierarchyChanged(StyleEditorPanel.java:582)
STDERR: at java.awt.Component.processHierarchyEvent(Component.java:6700)
STDERR: at java.awt.Component.processEvent(Component.java:6319)
STDERR: at java.awt.Container.processEvent(Container.java:2236)
STDERR: at java.awt.Component.dispatchEventImpl(Component.java:4889)
STDERR: at java.awt.Container.dispatchEventImpl(Container.java:2294)
STDERR: at java.awt.Component.dispatchEvent(Component.java:4711)
STDERR: at java.awt.Component.addNotify(Component.java:6969)
STDERR: at java.awt.Container.addNotify(Container.java:2762)
STDERR: at javax.swing.JComponent.addNotify(JComponent.java:4740)
STDERR: at java.awt.Container.addNotify(Container.java:2773)
STDERR: at javax.swing.JComponent.addNotify(JComponent.java:4740)
STDERR: at java.awt.Container.addNotify(Container.java:2773)
STDERR: at javax.swing.JComponent.addNotify(JComponent.java:4740)
STDERR: at java.awt.Container.addNotify(Container.java:2773)
STDERR: at javax.swing.JComponent.addNotify(JComponent.java:4740)
STDERR: at java.awt.Container.addNotify(Container.java:2773)
STDERR: at javax.swing.JComponent.addNotify(JComponent.java:4740)
STDERR: at java.awt.Container.addImpl(Container.java:1121)
STDERR: at java.awt.Container.add(Container.java:467)
STDERR: at 
org.freeplane.features.ui.FrameController.selectMode(FrameController.java:365)
STDERR: at 
org.freeplane.features.mode.Controller.selectMode(Controller.java:171)
STDERR: at 
org.freeplane.features.mode.Controller.selectMode(Controller.java:184)
STDERR: at 
org.freeplane.main.application.FreeplaneGUIStarter.loadMaps(FreeplaneGUIStarter.java:372)
STDERR: at 
org.freeplane.main.application.FreeplaneGUIStarter.loadMaps(FreeplaneGUIStarter.java:312)
STDERR: at 
org.freeplane.main.application.FreeplaneGUIStarter.access$200(FreeplaneGUIStarter.java:87)
STDERR: at 
org.freeplane.main.application.FreeplaneGUIStarter$2.run(FreeplaneGUIStarter.java:273)
STDERR: at 
java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
STDERR: at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
STDERR: at java.awt.EventQueue.access$500(EventQueue.java:97)
STDERR: at java.awt.EventQueue$3.run(EventQueue.java:709)
STDERR: at java.awt.EventQueue$3.run(EventQueue.java:703)
STDERR: at java.security.AccessController.doPrivileged(Native Method)
STDERR: at 
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
STDERR: at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
STDERR: at 
org.GNOME.Accessibility.AtkWrapper$5.dispatchEvent(AtkWrapper.java:700)
STDERR: at 
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
STDERR: at 
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
STDERR: at 
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
STDERR: at 
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
STDERR: at 
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
STDERR: at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=846816

In 1.5.16-3, this is "fixed" by replacing Borders.DLU2 with
Paddings.DLU2, which is the correct way ("@deprecated Replaced by {@link
Paddings}." [2])
-->
 final DefaultFormBuilder rightBuilder = new DefaultFormBuilder(rightLayout);
-rightBuilder.border(Borders.DLU2);
+rightBuilder.border(Paddings.DLU2);

As you can see, Borders is deprecated in jgoodies-forms-1.9.0, but not
removed [2].

[2] 
https://anonscm.debian.org/cgit/pkg-java/libjgoodies-forms-java.git/tree/src/main/java/com/jgoodies/forms/factories/Borders.java

A little explanation: The gradle build system of freeplane generates the
classpaths (jar references) in OSGi Manifests using gradle dependency
information (converted to relative paths). F