Bug#844486: Bug#844526: Bug#844486: gnuplot-qt: Mismatch between the program and library build versions with GNUTERM=wxt

2016-12-08 Thread Vincent Lefevre
On 2016-12-08 02:32:48 +, Olly Betts wrote:
> On Thu, Dec 08, 2016 at 02:59:54AM +0100, Vincent Lefevre wrote:
> > On 2016-12-08 00:22:51 +, Olly Betts wrote:
> > > As for the proposed patch, I'm not wild about just removing this
> > > warning - the current patch we're applying downgrades the fatal
> > > error to a warning so that there's a hint as to what's going on
> > > if there are problems caused by the compler ABI change. Remove
> > > that will make it much harder to debug any such cases, and risks
> > > annoying wx upstream with bug reports. If people are finding the
> > > current wording too scary, we could reword it.
> > 
> > The terminal is not there to output debug messages (unless explicitly
> > requested by the user). Such messages are distracting the user.
> 
> It's not a debug message, it's a warning message.

Then this means that something is wrong and this needs to be
fixed. It is not normal that each time the user runs gnuplot
with a plot, he gets such a message.

> > In any case, if you fear that the ABI change may break something,
> > you should rebuild the packages.
> 
> I don't fear it will break something, but I worry that if it did break
> something it would be much harder for people to work out what's going on.

This would mean that this is only debugging information. This can
also mislead the user. See Adrian Bunk's message: "It is even possible
that the crash is completely unrelated to the warning message."

And even knowing the warning, it is useless in case of random crashes.
The best way to make it easier for people to work out what's going on
is to make sure the ABI is completely consistent in the first place.

> A binNMU for wxwidgets3.0 is OK by me - the point I was trying to make in
> #844526 is that it's not helpful to just binNMU wxwidgets3.0 - you also
> need to binNMU any rdeps which haven't yet been rebuilt with the newer
> compiler ABI - otherwise you're just moving the warnings to different
> packages.

Yes.

-- 
Vincent Lefèvre  - Web: 
100% accessible validated (X)HTML - Blog: 
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)



Bug#844486: [Freewx-maint] Bug#844486: Bug#844526: Bug#844486: gnuplot-qt: Mismatch between the program and library build versions with GNUTERM=wxt

2016-12-07 Thread Adrian Bunk
Control: unmerge 846019
Control: severity 844486 minor
Control: affects 846019 =
Control: reassign 846019 pgadmin3 1.22.2-1

On Wed, Dec 07, 2016 at 07:36:42PM -0500, Scott Talbert wrote:
> On Thu, 8 Dec 2016, Olly Betts wrote:
> 
> > #846019 looks to be something different - it's giving a *FATAL* error there
> > (it's not obvious to me how or why since the two strings seem to match aside
> > from the ABI and I've not had time to try to reproduce yet), but that means 
> > it
> > would not be helped by the proposed patch, since it's not invoking the 
> > warning
> > case but dropping through to the fatal error code below.
> 
> I haven't been able to reproduce the fatal error either.  I wonder if
> perhaps it has some dependency on the user's language settings, as the
> original reporter has LANG=sv_SE.UTF-8.  I tried setting my LANG to
> sv_SE.UTF-8 but still wasn't able to repro, but maybe I didn't do it
> correctly.

After trying to run pgadmin3, I can also not reproduce it.

It is even possible that the crash is completely unrelated to the 
warning message.

I am moving #846019 back to pgadmin3.

> Scott

cu
Adrian

-- 

   "Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   "Only a promise," Lao Er said.
   Pearl S. Buck - Dragon Seed



Bug#844486: Bug#844526: Bug#844486: gnuplot-qt: Mismatch between the program and library build versions with GNUTERM=wxt

2016-12-07 Thread Olly Betts
On Thu, Dec 08, 2016 at 02:59:54AM +0100, Vincent Lefevre wrote:
> On 2016-12-08 00:22:51 +, Olly Betts wrote:
> > As for the proposed patch, I'm not wild about just removing this warning - 
> > the
> > current patch we're applying downgrades the fatal error to a warning so that
> > there's a hint as to what's going on if there are problems caused by the
> > compler ABI change.  Remove that will make it much harder to debug any
> > such cases, and risks annoying wx upstream with bug reports.  If people
> > are finding the current wording too scary, we could reword it.
> 
> The terminal is not there to output debug messages (unless explicitly
> requested by the user). Such messages are distracting the user.

It's not a debug message, it's a warning message.

> In any case, if you fear that the ABI change may break something,
> you should rebuild the packages.

I don't fear it will break something, but I worry that if it did break
something it would be much harder for people to work out what's going on.

A binNMU for wxwidgets3.0 is OK by me - the point I was trying to make in
#844526 is that it's not helpful to just binNMU wxwidgets3.0 - you also
need to binNMU any rdeps which haven't yet been rebuilt with the newer
compiler ABI - otherwise you're just moving the warnings to different
packages.

Cheers,
Olly



Bug#844486: Bug#844526: Bug#844486: gnuplot-qt: Mismatch between the program and library build versions with GNUTERM=wxt

2016-12-07 Thread Vincent Lefevre
On 2016-12-08 00:22:51 +, Olly Betts wrote:
> As for the proposed patch, I'm not wild about just removing this warning - the
> current patch we're applying downgrades the fatal error to a warning so that
> there's a hint as to what's going on if there are problems caused by the
> compler ABI change.  Remove that will make it much harder to debug any
> such cases, and risks annoying wx upstream with bug reports.  If people
> are finding the current wording too scary, we could reword it.

The terminal is not there to output debug messages (unless explicitly
requested by the user). Such messages are distracting the user.

In any case, if you fear that the ABI change may break something,
you should rebuild the packages.

-- 
Vincent Lefèvre  - Web: 
100% accessible validated (X)HTML - Blog: 
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)



Bug#844486: [Freewx-maint] Bug#844486: Bug#844526: Bug#844486: gnuplot-qt: Mismatch between the program and library build versions with GNUTERM=wxt

2016-12-07 Thread Scott Talbert

On Thu, 8 Dec 2016, Olly Betts wrote:


#846019 looks to be something different - it's giving a *FATAL* error there
(it's not obvious to me how or why since the two strings seem to match aside
from the ABI and I've not had time to try to reproduce yet), but that means it
would not be helped by the proposed patch, since it's not invoking the warning
case but dropping through to the fatal error code below.


I haven't been able to reproduce the fatal error either.  I wonder if 
perhaps it has some dependency on the user's language settings, as the 
original reporter has LANG=sv_SE.UTF-8.  I tried setting my LANG to 
sv_SE.UTF-8 but still wasn't able to repro, but maybe I didn't do it 
correctly.


Scott



Bug#844486: [Freewx-maint] Bug#844486: Bug#844526: Bug#844486: gnuplot-qt: Mismatch between the program and library build versions with GNUTERM=wxt

2016-12-07 Thread Olly Betts
On Wed, Dec 07, 2016 at 07:36:42PM -0500, Scott Talbert wrote:
> On Thu, 8 Dec 2016, Olly Betts wrote:
> >#846019 looks to be something different - it's giving a *FATAL* error there
> >(it's not obvious to me how or why since the two strings seem to match aside
> >from the ABI and I've not had time to try to reproduce yet), but that means 
> >it
> >would not be helped by the proposed patch, since it's not invoking the 
> >warning
> >case but dropping through to the fatal error code below.
> 
> I haven't been able to reproduce the fatal error either.  I wonder if
> perhaps it has some dependency on the user's language settings, as the
> original reporter has LANG=sv_SE.UTF-8.  I tried setting my LANG to
> sv_SE.UTF-8 but still wasn't able to repro, but maybe I didn't do it
> correctly.

Hmm, I wonder if the reporter has a non-packaged build of wxWidgets 3.0
installed and that's getting used instead of the Debian package - if
they're running the unpatched upstream code that would explain the fatal
error.

Cheers,
Olly



Bug#844486: Bug#844526: Bug#844486: gnuplot-qt: Mismatch between the program and library build versions with GNUTERM=wxt

2016-12-07 Thread Olly Betts
Control: severity -1 minor

On Tue, Dec 06, 2016 at 07:26:17PM +0200, Adrian Bunk wrote:
> Control: reassign 846019 src:wxwidgets3.0
> Control: forcemerge -1 846019
> Control: severity -1 serious
> Control: affects -1 pgadmin3
> 
> After looking at #846019 this appears to be pretty RC.

#846019 looks to be something different - it's giving a *FATAL* error there
(it's not obvious to me how or why since the two strings seem to match aside
from the ABI and I've not had time to try to reproduce yet), but that means it
would not be helped by the proposed patch, since it's not invoking the warning
case but dropping through to the fatal error code below.

I also don't have the time right now to work out how to undo the unhelpful
forcemerge you've just done, so for now I'm just setting the severity back to
the appropriate one for #844486.  If you know how to cleanly revert a
forcemerge, please do.

As for the proposed patch, I'm not wild about just removing this warning - the
current patch we're applying downgrades the fatal error to a warning so that
there's a hint as to what's going on if there are problems caused by the
compler ABI change.  Remove that will make it much harder to debug any
such cases, and risks annoying wx upstream with bug reports.  If people
are finding the current wording too scary, we could reword it.

Cheers,
Olly



Bug#844486: Bug#844526: Bug#844486: gnuplot-qt: Mismatch between the program and library build versions with GNUTERM=wxt

2016-12-06 Thread Adrian Bunk
Control: reassign 846019 src:wxwidgets3.0
Control: forcemerge -1 846019
Control: severity -1 serious
Control: affects -1 pgadmin3

After looking at #846019 this appears to be pretty RC.

On Sat, Nov 19, 2016 at 01:25:52AM +0100, Vincent Lefevre wrote:
> Control: tags -1 patch
> 
> On 2016-11-17 15:37:13 +0200, Adrian Bunk wrote:
> > On Thu, Nov 17, 2016 at 09:41:07AM +0100, Vincent Lefevre wrote:
> > > A warning can be very annoying (e.g. because it mixes with other output
> > > to the terminal) and possibly break scripts that don't expect output to
> > > stderr. If this is not expected to work, then an error like upstreams's
> > > behavior is the right thing to do (there is a real issue, and the user
> > > must make sure that it gets fixed). Otherwise a warning isn't needed,
> > > except in some debug mode for developers or andvanced users (but such
> > > a mode would not be the default).
> > 
> > Yes, this is what should be done.
> 
> Removing the
> 
>   wxLogWarning(msg.c_str());
> 
> line from the warn-for-compiler-abi-mismatch.patch patch (and
> updating the comment) is sufficient. This gives the attached
> patch.
> 
> -- 
> Vincent Lefèvre  - Web: 
> 100% accessible validated (X)HTML - Blog: 
> Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)

> --- wxwidgets3.0-3.0.2.orig/src/common/appbase.cpp
> +++ wxwidgets3.0-3.0.2/src/common/appbase.cpp
> @@ -762,6 +762,22 @@ bool wxAppConsoleBase::CheckBuildOptions
>  msg.Printf(wxT("Mismatch between the program and library build 
> versions detected.\nThe library used %s,\nand %s used %s."),
> lib.c_str(), progName.c_str(), prog.c_str());
>  
> +
> + int l_off = lib.Find("compiler with C++ ABI ");
> + int p_off = prog.Find("compiler with C++ ABI ");
> + if (l_off != wxNOT_FOUND && p_off != wxNOT_FOUND) {
> + int space;
> + space = lib.Find(' ', l_off);
> + lib.erase(l_off, space - l_off);
> + space = prog.Find(' ', l_off);
> + prog.erase(p_off, space - p_off);
> + if (lib == prog) {
> + // Only difference is the ABI version, which apparently only
> + // affect obscure cases.
> + return false;


Shouldn't this also return true?


> + }
> + }
> +
>  wxLogFatalError(msg.c_str());
>  
>  // normally wxLogFatalError doesn't return


cu
Adrian

-- 

   "Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   "Only a promise," Lao Er said.
   Pearl S. Buck - Dragon Seed



Bug#844486: Bug#844526: Bug#844486: gnuplot-qt: Mismatch between the program and library build versions with GNUTERM=wxt

2016-11-18 Thread Vincent Lefevre
Control: tags -1 patch

On 2016-11-17 15:37:13 +0200, Adrian Bunk wrote:
> On Thu, Nov 17, 2016 at 09:41:07AM +0100, Vincent Lefevre wrote:
> > A warning can be very annoying (e.g. because it mixes with other output
> > to the terminal) and possibly break scripts that don't expect output to
> > stderr. If this is not expected to work, then an error like upstreams's
> > behavior is the right thing to do (there is a real issue, and the user
> > must make sure that it gets fixed). Otherwise a warning isn't needed,
> > except in some debug mode for developers or andvanced users (but such
> > a mode would not be the default).
> 
> Yes, this is what should be done.

Removing the

  wxLogWarning(msg.c_str());

line from the warn-for-compiler-abi-mismatch.patch patch (and
updating the comment) is sufficient. This gives the attached
patch.

-- 
Vincent Lefèvre  - Web: 
100% accessible validated (X)HTML - Blog: 
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)
--- wxwidgets3.0-3.0.2.orig/src/common/appbase.cpp
+++ wxwidgets3.0-3.0.2/src/common/appbase.cpp
@@ -762,6 +762,22 @@ bool wxAppConsoleBase::CheckBuildOptions
 msg.Printf(wxT("Mismatch between the program and library build 
versions detected.\nThe library used %s,\nand %s used %s."),
lib.c_str(), progName.c_str(), prog.c_str());
 
+
+   int l_off = lib.Find("compiler with C++ ABI ");
+   int p_off = prog.Find("compiler with C++ ABI ");
+   if (l_off != wxNOT_FOUND && p_off != wxNOT_FOUND) {
+   int space;
+   space = lib.Find(' ', l_off);
+   lib.erase(l_off, space - l_off);
+   space = prog.Find(' ', l_off);
+   prog.erase(p_off, space - p_off);
+   if (lib == prog) {
+   // Only difference is the ABI version, which apparently only
+   // affect obscure cases.
+   return false;
+   }
+   }
+
 wxLogFatalError(msg.c_str());
 
 // normally wxLogFatalError doesn't return


Bug#844486: Bug#844526: Bug#844486: gnuplot-qt: Mismatch between the program and library build versions with GNUTERM=wxt

2016-11-17 Thread Adrian Bunk
Control: reassign -1 src:wxwidgets3.0
Control: retitle -1 wxwidgets3.0 should drop the ABI mismatch message
Control: affects -1 gnuplot-qt

On Thu, Nov 17, 2016 at 09:41:07AM +0100, Vincent Lefevre wrote:
> On 2016-11-17 14:36:08 +1300, Olly Betts wrote:
> > In upstream wxWidgets, if the compile-time ABI and run-time ABI don't
> > match, then you get an error and the app won't run, which is just not
> > helpful.  In Debian we reduce that error to a warning - in practice I've
> > never seen an actual problem due to this, but leaving the warning there
> > means that this at least gets flagged as a potential issue.
> 
> A warning can be very annoying (e.g. because it mixes with other output
> to the terminal) and possibly break scripts that don't expect output to
> stderr. If this is not expected to work, then an error like upstreams's
> behavior is the right thing to do (there is a real issue, and the user
> must make sure that it gets fixed). Otherwise a warning isn't needed,
> except in some debug mode for developers or andvanced users (but such
> a mode would not be the default).

Yes, this is what should be done.

When the C++ ABI changes in an incompatible way (like it did a year ago),
there will anyway be a complete ABI transition in Debian - any
potential issue would not be specific to wxWidgets.

Matthias Klose confirmed that ABI version 10 is supposed to be backwards 
compatible with ABI version 9.

I'm closing the binNMU request and move the other bug
to src:wxwidgets3.0

cu
Adrian

-- 

   "Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   "Only a promise," Lao Er said.
   Pearl S. Buck - Dragon Seed



Bug#844486: gnuplot-qt: Mismatch between the program and library build versions with GNUTERM=wxt

2016-11-17 Thread Vincent Lefevre
On 2016-11-17 14:36:08 +1300, Olly Betts wrote:
> In upstream wxWidgets, if the compile-time ABI and run-time ABI don't
> match, then you get an error and the app won't run, which is just not
> helpful.  In Debian we reduce that error to a warning - in practice I've
> never seen an actual problem due to this, but leaving the warning there
> means that this at least gets flagged as a potential issue.

A warning can be very annoying (e.g. because it mixes with other output
to the terminal) and possibly break scripts that don't expect output to
stderr. If this is not expected to work, then an error like upstreams's
behavior is the right thing to do (there is a real issue, and the user
must make sure that it gets fixed). Otherwise a warning isn't needed,
except in some debug mode for developers or andvanced users (but such
a mode would not be the default).

-- 
Vincent Lefèvre  - Web: 
100% accessible validated (X)HTML - Blog: 
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)



Bug#844486: gnuplot-qt: Mismatch between the program and library build versions with GNUTERM=wxt

2016-11-16 Thread Anton Gladky
Hi Olly,

thanks for your opinion! From my point of view, wxwidgets3.0
should be binNMUed together with all rdeps. Because even a
minor source upload of wxwidges3.0t will start this process anyway
but in uncoordinated mode.

Cheers

Anton

2016-11-17 2:36 GMT+01:00 Olly Betts :
> However, if you want to eliminate this warning message and are going to
> binNMU wxwidgets3.0 to that end, you will also need to binNMU any of its
> rdeps which haven't been built with the newer compiler ABI, or else
> you're just going to swap around which rdeps issue this warning.
>
> Cheers,
> Olly



Bug#844486: gnuplot-qt: Mismatch between the program and library build versions with GNUTERM=wxt

2016-11-16 Thread Olly Betts
On Wed, Nov 16, 2016 at 08:14:00PM +0100, Anton Gladky wrote:
> block 844486 by 844526
> thanks
> 
> wxwidget should be binnmued to fix the bug properly.

I don't believe there's actually any real bug here, let alone an RC one.

GCC makes small fixes to obscure corner cases of the C++ ABI from time
to time and (not unreasonably) bumps the ABI version each time.  It used
to be the case that GCC defaulted to the old ABI version in this case,
but more recently they seem to make the new ABI version the default
instead.

In upstream wxWidgets, if the compile-time ABI and run-time ABI don't
match, then you get an error and the app won't run, which is just not
helpful.  In Debian we reduce that error to a warning - in practice I've
never seen an actual problem due to this, but leaving the warning there
means that this at least gets flagged as a potential issue.

However, if you want to eliminate this warning message and are going to
binNMU wxwidgets3.0 to that end, you will also need to binNMU any of its
rdeps which haven't been built with the newer compiler ABI, or else
you're just going to swap around which rdeps issue this warning.

Cheers,
Olly



Bug#844486: gnuplot-qt: Mismatch between the program and library build versions with GNUTERM=wxt

2016-11-16 Thread Anton Gladky
block 844486 by 844526
thanks

wxwidget should be binnmued to fix the bug properly.

Cheers

Anton


2016-11-16 11:11 GMT+01:00 Vincent Lefevre :
>> (Set to serious as I believe that the ABI mismatch may yield obscure
>> bugs and should be solved before the next stable release.)
>
> More generally, isn't there anything missing in the build dependency
> rules to avoid this mismatch?



Bug#844486: gnuplot-qt: Mismatch between the program and library build versions with GNUTERM=wxt

2016-11-16 Thread Vincent Lefevre
On 2016-11-16 10:10:09 +0100, Vincent Lefevre wrote:
> Package: gnuplot-qt
> Version: 5.0.5+dfsg1-4
> Severity: serious
> 
> (Set to serious as I believe that the ABI mismatch may yield obscure
> bugs and should be solved before the next stable release.)

More generally, isn't there anything missing in the build dependency
rules to avoid this mismatch?

-- 
Vincent Lefèvre  - Web: 
100% accessible validated (X)HTML - Blog: 
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)



Bug#844486: gnuplot-qt: Mismatch between the program and library build versions with GNUTERM=wxt

2016-11-16 Thread Vincent Lefevre
Package: gnuplot-qt
Version: 5.0.5+dfsg1-4
Severity: serious

(Set to serious as I believe that the ABI mismatch may yield obscure
bugs and should be solved before the next stable release.)

When I use GNUTERM=wxt and plot data, I get a warning like:

10:01:38: Warning: Mismatch between the program and library build versions 
detected.
The library used 3.0 (wchar_t,compiler with C++ ABI 1009,wx 
containers,compatible with 2.8),
and your program used 3.0 (wchar_t,compiler with C++ ABI 1010,wx 
containers,compatible with 2.8).

for instance with:

$ GNUTERM=wxt /usr/bin/gnuplot -persist <