Bug#896658: qtbase-opensource-src FTBFS on alpha: ambiguous call of atime()

2018-05-15 Thread Lisandro Damián Nicanor Pérez Meyer
El viernes, 11 de mayo de 2018 22:39:55 -03 Michael Cree escribió:
> On Tue, May 01, 2018 at 10:21:11AM -0300, Lisandro Damián Nicanor Pérez 
Meyer wrote:
> > > qtbase-opensource-src FTBFS on Alpha [1] due to an ambiguous
> > 
> > Thanks for the very clear explanation! There are two possible ways out
> > here:
> > 
> > 1) Preferred by us Qt maintainers: file a bug in bugreports.qt.io and send
> > us the link so we can follow it.
> 
> I've tired making an account there to report the bug. What a painful
> experience: it tried to solicit information off me for commercial
> advertising purposes (which is totally unacceptable), and after many
> more painful and unclear steps I finally got to the bug web pages.

None of them are really necessary. I admit I have done those steps long ago so 
maybe it has changed a lot in the meantime.

> But I don't know what to do.  I can't work out the products or
> components (none match the Debian source package names or seem
> to bear much relationship to them) so I am totally lost.

That's actually normal You are looking for Core, which is the base of 
everything else.

> I now regret attempting to make an account there and wish I could
> just completely delete it.
> 
> Please, would you file the bug upstream, I'm not having anything
> more to do with that obnoxious web site.

Only if you subscribe to it afterwards. Acting as a proxy with regards arch 
stuff normally does not works out well, it's preferably to have the 
knowledgeable people around.

Of course I'll be more than happy to assist you in the process. So if you 
agree please just tell me and I'll file the bug.


-- 
"La política es una actividad noble. Hay que revalorizarla, ejerciéndola con
vocación y una dedicación que exige testimonio, martirio, o sea, morir
por el bien común."
  Padre Bergoglio - http://www.lanacion.com.ar/1153060

Lisandro Damián Nicanor Pérez Meyer
http://perezmeyer.com.ar/
http://perezmeyer.blogspot.com/


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


Bug#896658: qtbase-opensource-src FTBFS on alpha: ambiguous call of atime()

2018-05-01 Thread Lisandro Damián Nicanor Pérez Meyer
Hi Michael! Sorry for the delay.


El lunes, 23 de abril de 2018 06:27:34 -03 Michael Cree escribió:
> Source: qtbase-opensource-src
> Version: 5.10.1+dfsg-5
> Severity: important
> Justification: fails to build from source (but built in past)
> User: debian-al...@lists.debian.org
> Usertags: ftbfs
> Tags: patch
> 
> qtbase-opensource-src FTBFS on Alpha [1] due to an ambiguous
> resolution of the overloaded call to atime() with definitions of
> atime() at lines 246, 254 and 299 in
> src/corelib/io/qfilesystemengine_unix.cpp. The one at line 299
> is declared as:
> 
> Q_DECL_UNUSED static typename std::enable_if<(::st_atimensec, true)
> ...
> 
> which I guess (I don't know C++ very well) means that if the field
> st_atimensec is present then include that declaration of atime().  On
> Alpha Linux this field is present in the struct stat declaration in
> the header file (sys/stat.h) inside a union declaration, which looks
> to be a unique definition of struct stat amongst the Linicies.  So
> this definition of atime() at line 299 applies on Alpha Linux and
> conflicts with one of the earlier definitions at lines 246 and 254.
> 
> I don't know if this is a bug in the header file (i.e. glibc) or
> present for historical reasons (Alpha Linux being the first 64-bit
> Linux does have some idiosyncrasies not repeated in later 64-bit
> Linicies), nevertheless I attach a patch that disables the second
> confounding definition of atime() at line 299 on Alpha only.  With
> the patch qtbase-opensource-src builds to completion on Alpha.

Thanks for the very clear explanation! There are two possible ways out here:

1) Preferred by us Qt maintainers: file a bug in bugreports.qt.io and send us 
the link so we can follow it. Notice that I'm asking you to do it because you 
are the alpha porter, so you will be the right one to reply to possible 
upstream's questions. Of course as soon as you send us the bug link I'll 
subscribe to it to follow it and try to help if possible.

I can also push this simple patch to upstream's gerrit once the bug is filed 
(had it be more involved I would need to ask you to do it because of 
copyright, but in this case it's pretty straightforward).

Why is this preferable? Because upstream tends to know if the solution is 
right or if it should be fixed in, let's say, glibc. They also know the code 
quirks much better than us and will probably notice if this affects something 
else.

2) We ship a Debian delta for this. Doable, but definitely not the best thing.

So, pick one ;-) (pun intended :-P)

Cheers, Lisandro.

-- 
Trabaja como si no necesitaras el dinero.
Ama como si nunca hubieses sido herido.
Baila como si nadie estuviera mirando.
Canta como si nadie escuchara.
Vive como si fuera el Cielo en la Tierra.
  Anónimo

Lisandro Damián Nicanor Pérez Meyer
http://perezmeyer.com.ar/
http://perezmeyer.blogspot.com/


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


Bug#896658: qtbase-opensource-src FTBFS on alpha: ambiguous call of atime()

2018-04-23 Thread Michael Cree
Source: qtbase-opensource-src
Version: 5.10.1+dfsg-5
Severity: important
Justification: fails to build from source (but built in past)
User: debian-al...@lists.debian.org
Usertags: ftbfs
Tags: patch

qtbase-opensource-src FTBFS on Alpha [1] due to an ambiguous
resolution of the overloaded call to atime() with definitions of
atime() at lines 246, 254 and 299 in
src/corelib/io/qfilesystemengine_unix.cpp. The one at line 299
is declared as:

Q_DECL_UNUSED static typename std::enable_if<(::st_atimensec, true)
...

which I guess (I don't know C++ very well) means that if the field
st_atimensec is present then include that declaration of atime().  On
Alpha Linux this field is present in the struct stat declaration in
the header file (sys/stat.h) inside a union declaration, which looks
to be a unique definition of struct stat amongst the Linicies.  So
this definition of atime() at line 299 applies on Alpha Linux and
conflicts with one of the earlier definitions at lines 246 and 254.

I don't know if this is a bug in the header file (i.e. glibc) or
present for historical reasons (Alpha Linux being the first 64-bit
Linux does have some idiosyncrasies not repeated in later 64-bit
Linicies), nevertheless I attach a patch that disables the second
confounding definition of atime() at line 299 on Alpha only.  With
the patch qtbase-opensource-src builds to completion on Alpha.

Cheers
Michael.

[1]
https://buildd.debian.org/status/fetch.php?pkg=qtbase-opensource-src=alpha=5.10.1%2Bdfsg-5=1523222004=0
--- a/src/corelib/io/qfilesystemengine_unix.cpp
+++ b/src/corelib/io/qfilesystemengine_unix.cpp
@@ -292,7 +292,7 @@
 { return timespecToMSecs(statBuffer.st_mtimespec); }
 #endif
 
-#ifndef st_mtimensec
+#if !defined(st_mtimensec) && !defined(__alpha__)
 // Xtimensec
 template 
 Q_DECL_UNUSED static typename std::enable_if<(::st_atimensec, true), qint64>::type