Re: [Development] How to get Qt_5.9.1_PRIVATE_API

2017-10-15 Thread Kevin Kofler
Thiago Macieira wrote:
> The point of the ELF version was to help you the distributions detect
> which ones need rebuilding by having the symbol show up. Having the symbol
> rename all the time doesn't make the distro-building more robust, since
> the previous symbols would just disappear and new ones would appear,
> possibly causing breakages. Packagers still need to figure out a way to
> cause that rebuild anyway.

It actually does make the distro-building more robust for RPM distros, for 
the reasons I explained in:
http://lists.qt-project.org/pipermail/development/2016-December/028052.html
http://lists.qt-project.org/pipermail/development/2016-December/028061.html

Kevin Kofler

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] How to get Qt_5.9.1_PRIVATE_API

2017-10-13 Thread Thiago Macieira
On Friday, 13 October 2017 10:27:59 PDT Lisandro Damián Nicanor Pérez Meyer 
wrote:
> On jueves, 12 de octubre de 2017 09:28:20 -03 Thiago Macieira wrote:
> [snip]
> 
> > The point of the ELF version was to help you the distributions detect
> > which
> > ones need rebuilding by having the symbol show up. Having the symbol
> > rename
> > all the time doesn't make the distro-building more robust, since the
> > previous symbols would just disappear and new ones would appear, possibly
> > causing breakages. Packagers still need to figure out a way to cause that
> > rebuild anyway.
> 
> Right, this would be problematic at least for us in Debian. Of course that
> if the patch is applied we can always unapply it.

The thing is that if you solve the problem of rebuilding, then the issue of 
the name of the ELF version is moot.

For a Linux distribution, whose most frequent updates are a full patch or 
minor release, the changes in the private API are significant and require 
rebuilding everything.

For Qt's own developers, the updates are very minute and most often don't 
break the private API.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] How to get Qt_5.9.1_PRIVATE_API

2017-10-13 Thread Lisandro Damián Nicanor Pérez Meyer
On jueves, 12 de octubre de 2017 09:28:20 -03 Thiago Macieira wrote:
[snip]
> The point of the ELF version was to help you the distributions detect which
> ones need rebuilding by having the symbol show up. Having the symbol rename
> all the time doesn't make the distro-building more robust, since the
> previous symbols would just disappear and new ones would appear, possibly
> causing breakages. Packagers still need to figure out a way to cause that
> rebuild anyway.

Right, this would be problematic at least for us in Debian. Of course that if 
the patch is applied we can always unapply it.

-- 
Must it be assumed that because we are engineers beauty is not
our concern, and that while we make our constructions robust
and durable we do not also strive to make them elegant?
Is it not true that the genuine conditions of strength always
comply with the secret conditions of harmony?
 Gustave Eiffel, 1887

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.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] How to get Qt_5.9.1_PRIVATE_API

2017-10-12 Thread Thiago Macieira
On quinta-feira, 12 de outubro de 2017 09:28:20 PDT Thiago Macieira wrote:
> The advantage is that you simply run a binary that was wasn't rebuilt. The
> disadvantage is that you cannot run a binary that wasn't rebuilt.

In editing the sentence, I deleted the wrong word. s/simply/cannot/

The advantage is that you cannot run a binary that was wasn't rebuilt. The 
disadvantage is that you cannot run a binary that wasn't rebuilt.


-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] How to get Qt_5.9.1_PRIVATE_API

2017-10-12 Thread Thiago Macieira
On quinta-feira, 12 de outubro de 2017 08:31:12 PDT Rex Dieter wrote:
> Thiago Macieira wrote:
> > On quarta-feira, 11 de outubro de 2017 13:39:03 PDT Rex Dieter wrote:
> >> The patch's purpose looks appealing, are there "reasons(tm)" it cannot be
> >> used by default upstream?
> > 
> > Yeah: we don't want to.
> > 
> > It would make the lives of the developers harder: you'd have to recompile
> > everything the moment that the version was bumped and it would make
> > impossible to mix libraries in order to bisect issues.
> 
> Shouldn't private api users recompile everything anyway?  That's essentially
> what downstreams need to do, why are "developers" any different?

In theory yes, in practice no. See my response to Allan.

> Otherwise, what's the point of introducing this at all?  (Yes, it is one
> small baby step in the right direction as-is, but the suse patch takes the
> final big step, imo).

The point of the ELF version was to help you the distributions detect which 
ones need rebuilding by having the symbol show up. Having the symbol rename 
all the time doesn't make the distro-building more robust, since the previous 
symbols would just disappear and new ones would appear, possibly causing 
breakages. Packagers still need to figure out a way to cause that rebuild 
anyway.

The advantage is that you simply run a binary that was wasn't rebuilt. The 
disadvantage is that you cannot run a binary that wasn't rebuilt.

Also note that distros apply patches without changing the version number, some 
of which could change the private API.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] How to get Qt_5.9.1_PRIVATE_API

2017-10-12 Thread Rex Dieter
Thiago Macieira wrote:

> On quarta-feira, 11 de outubro de 2017 13:39:03 PDT Rex Dieter wrote:
>> The patch's purpose looks appealing, are there "reasons(tm)" it cannot be
>> used by default upstream?
> 
> Yeah: we don't want to.
> 
> It would make the lives of the developers harder: you'd have to recompile
> everything the moment that the version was bumped and it would make
> impossible to mix libraries in order to bisect issues.

Shouldn't private api users recompile everything anyway?  That's essentially 
what downstreams need to do, why are "developers" any different?

Otherwise, what's the point of introducing this at all?  (Yes, it is one 
small baby step in the right direction as-is, but the suse patch takes the 
final big step, imo).

-- Rex

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] How to get Qt_5.9.1_PRIVATE_API

2017-10-12 Thread Thiago Macieira
On quinta-feira, 12 de outubro de 2017 00:27:51 PDT Allan Sandfeld Jensen 
wrote:
> On Donnerstag, 12. Oktober 2017 02:47:36 CEST Thiago Macieira wrote:
> > On quarta-feira, 11 de outubro de 2017 13:39:03 PDT Rex Dieter wrote:
> > > The patch's purpose looks appealing, are there "reasons(tm)" it cannot
> > > be
> > > used by default upstream?
> > 
> > Yeah: we don't want to.
> > 
> > It would make the lives of the developers harder: you'd have to recompile
> > everything the moment that the version was bumped and it would make
> > impossible to mix libraries in order to bisect issues.
> 
> Assuming it only applies to private exports, it should only affect libraries
> using private API, 

Which is almost all of them. Remember this applies not just to using privates 
from QtCore, but any privates between any two libraries, such as QtQml and 
QtQuick.

> who should recompile as we do not guarantee ABI for
> those, and in fact have runtime checks in qobject that crashes if the
> private version of a qobjectprivate doesn't match point release of qtbase.

True, but a narrow bisect can find that nothing did change and rebuilding is 
possible. For the example of QtQml and QtQuick, it is possible to rebuild just 
those two and find the problem, without having to rebuild the whole of qtbase, 
qtsvg and qtxmlpatterns, plus whatever else was required to run the test 
itself (suppose it used QtLocation).

> Do you think the Suse patch would also break ABI of applications not using
> private API?

No, it only renames the ELF version we apply to privates. It doesn't change 
which symbols are marked private.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] How to get Qt_5.9.1_PRIVATE_API

2017-10-12 Thread Allan Sandfeld Jensen
On Donnerstag, 12. Oktober 2017 02:47:36 CEST Thiago Macieira wrote:
> On quarta-feira, 11 de outubro de 2017 13:39:03 PDT Rex Dieter wrote:
> > The patch's purpose looks appealing, are there "reasons(tm)" it cannot be
> > used by default upstream?
> 
> Yeah: we don't want to.
> 
> It would make the lives of the developers harder: you'd have to recompile
> everything the moment that the version was bumped and it would make
> impossible to mix libraries in order to bisect issues.
> 
Assuming it only applies to private exports, it should only affect libraries 
using private API, who should recompile as we do not guarantee ABI for those, 
and in fact have runtime checks in qobject that crashes if the private version 
of a qobjectprivate doesn't match point release of qtbase.

Do you think the Suse patch would also break ABI of applications not using 
private API?

'Allan
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] How to get Qt_5.9.1_PRIVATE_API

2017-10-11 Thread Thiago Macieira
On quarta-feira, 11 de outubro de 2017 13:39:03 PDT Rex Dieter wrote:
> The patch's purpose looks appealing, are there "reasons(tm)" it cannot be
> used by default upstream?

Yeah: we don't want to.

It would make the lives of the developers harder: you'd have to recompile 
everything the moment that the version was bumped and it would make impossible 
to mix libraries in order to bisect issues.

-developer-build doesn't help, since we want to test against non-developer 
build libraries too.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] How to get Qt_5.9.1_PRIVATE_API

2017-10-11 Thread Rex Dieter
Thiago Macieira wrote:

> On terça-feira, 10 de outubro de 2017 23:56:08 PDT Martin Koller wrote:
>> Hi,
>> 
>> on openSuse 42.2 I have a self-built 5.9.1 version and also the openSuse
>> 5.9.1 installed one. For some reason (which is not important for my
>> question) my application picks up the openSuse library but fails with the
>> error
>> libQt5Core.so.5: version `Qt_5.9.1_PRIVATE_API' not found (required by
>> /usr/lib64/libQt5Quick.so.5)
>> 
>> I just want to know how do I have to configure my self-built Qt so that
>> the missing private_api symbol is included?
> 
> Apply the patch found in the qtbase package from the OpenSUSE repository.
> It's non-standard.

The patch's purpose looks appealing, are there "reasons(tm)" it cannot be 
used by default upstream?

-- Rex


___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] How to get Qt_5.9.1_PRIVATE_API

2017-10-11 Thread Thiago Macieira
On terça-feira, 10 de outubro de 2017 23:56:08 PDT Martin Koller wrote:
> Hi,
> 
> on openSuse 42.2 I have a self-built 5.9.1 version and also the openSuse
> 5.9.1 installed one. For some reason (which is not important for my
> question) my application picks up the openSuse library but fails with the
> error
> libQt5Core.so.5: version `Qt_5.9.1_PRIVATE_API' not found (required by
> /usr/lib64/libQt5Quick.so.5)
> 
> I just want to know how do I have to configure my self-built Qt so that the
> missing private_api symbol is included?

Apply the patch found in the qtbase package from the OpenSUSE repository. It's 
non-standard.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] How to get Qt_5.9.1_PRIVATE_API

2017-10-11 Thread Martin Koller
On Mittwoch, 11. Oktober 2017 10:13:07 CEST Martin Koller wrote:
> On Mittwoch, 11. Oktober 2017 09:06:53 CEST Mitch Curtis wrote:
> > Does -developer-build help?
> 
> sadly no.
> it still just contains
> 2 0x00 0x0dcbd2c9 Qt_5_PRIVATE_API
> 
> instead of the openSuse versions:
> 2 0x00 0x0be84779 Qt_5.9.1_PRIVATE_API

For the record: I found it. It's due to a Suse patch:
https://build.opensuse.org/package/view_file/KDE:Qt5/libqt5-qtbase/tell-the-truth-about-private-api.patch?expand=1

-- 
Best regards/Schöne Grüße

Martin
A: Because it breaks the logical sequence of discussion
Q: Why is top posting bad?

()  ascii ribbon campaign - against html e-mail 
/\- against proprietary attachments

Geschenkideen, Accessoires, Seifen, Kulinarisches: www.lillehus.at


___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] How to get Qt_5.9.1_PRIVATE_API

2017-10-11 Thread Christoph Feck

On 11.10.2017 08:56, Martin Koller wrote:

on openSuse 42.2 I have a self-built 5.9.1 version and also the openSuse 5.9.1 
installed one.
For some reason (which is not important for my question) my application picks 
up the openSuse library
but fails with the error
libQt5Core.so.5: version `Qt_5.9.1_PRIVATE_API' not found (required by 
/usr/lib64/libQt5Quick.so.5)

I just want to know how do I have to configure my self-built Qt so that the 
missing private_api symbol is included?



See patch 'tell-the-truth-about-private-api.patch' at 
https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] How to get Qt_5.9.1_PRIVATE_API

2017-10-11 Thread Kevin Funk
On Wednesday, 11 October 2017 10:13:07 CEST Martin Koller wrote:
> On Mittwoch, 11. Oktober 2017 09:06:53 CEST Mitch Curtis wrote:
> > Does -developer-build help?
> 
> sadly no.
> it still just contains
> 2 0x00 0x0dcbd2c9 Qt_5_PRIVATE_API
> 
> instead of the openSuse versions:
> 2 0x00 0x0be84779 Qt_5.9.1_PRIVATE_API

That 'tagging' happens in mkspecs/features/qt_module.prf.

OpenSuse seems to patch their Qt sources:
  http://lists.qt-project.org/pipermail/development/2016-December/028040.html

Contains:
-verscript_content = "Qt_$${QT_MAJOR_VERSION}_PRIVATE_API {" \
+verscript_content = "Qt_$${QT_MAJOR_VERSION}.$${QT_MINOR_VERSION}.$$
{QT_PATCH_VERSION}_PRIVATE_API {" \

You might want to apply the same patch to your self-build Qt so the symbols 
are named equally.

Regards,
Kevin

> > > -Original Message-
> > > From: Development [mailto:development-bounces+mitch.curtis=qt.io@qt-
> > > project.org] On Behalf Of Martin Koller
> > > Sent: Wednesday, 11 October 2017 8:56 AM
> > > To: development@qt-project.org
> > > Subject: [Development] How to get Qt_5.9.1_PRIVATE_API
> > > 
> > > Hi,
> > > 
> > > on openSuse 42.2 I have a self-built 5.9.1 version and also the openSuse
> > > 5.9.1 installed one.
> > > For some reason (which is not important for my question) my application
> > > picks up the openSuse library but fails with the error
> > > libQt5Core.so.5: version `Qt_5.9.1_PRIVATE_API' not found (required by
> > > /usr/lib64/libQt5Quick.so.5)
> > > 
> > > I just want to know how do I have to configure my self-built Qt so that
> > > the
> > > missing private_api symbol is included?
> > > 
> > > --
> > > Best regards/Schöne Grüße
> > > 
> > > Martin
> > > A: Because it breaks the logical sequence of discussion
> > > Q: Why is top posting bad?
> > > 
> > > ()  ascii ribbon campaign - against html e-mail
> > > /\- against proprietary attachments
> > > 
> > > Geschenkideen, Accessoires, Seifen, Kulinarisches: www.lillehus.at
> > > 
> > > 
> > > ___
> > > Development mailing list
> > > Development@qt-project.org
> > > http://lists.qt-project.org/mailman/listinfo/development


-- 
Kevin Funk | kf...@kde.org | http://kfunk.org

signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] How to get Qt_5.9.1_PRIVATE_API

2017-10-11 Thread Martin Koller
On Mittwoch, 11. Oktober 2017 09:06:53 CEST Mitch Curtis wrote:
> Does -developer-build help?

sadly no.
it still just contains
2 0x00 0x0dcbd2c9 Qt_5_PRIVATE_API

instead of the openSuse versions:
2 0x00 0x0be84779 Qt_5.9.1_PRIVATE_API


> 
> > -Original Message-
> > From: Development [mailto:development-bounces+mitch.curtis=qt.io@qt-
> > project.org] On Behalf Of Martin Koller
> > Sent: Wednesday, 11 October 2017 8:56 AM
> > To: development@qt-project.org
> > Subject: [Development] How to get Qt_5.9.1_PRIVATE_API
> > 
> > Hi,
> > 
> > on openSuse 42.2 I have a self-built 5.9.1 version and also the openSuse 
> > 5.9.1
> > installed one.
> > For some reason (which is not important for my question) my application
> > picks up the openSuse library but fails with the error
> > libQt5Core.so.5: version `Qt_5.9.1_PRIVATE_API' not found (required by
> > /usr/lib64/libQt5Quick.so.5)
> > 
> > I just want to know how do I have to configure my self-built Qt so that the
> > missing private_api symbol is included?
> > 
> > --
> > Best regards/Schöne Grüße
> > 
> > Martin
> > A: Because it breaks the logical sequence of discussion
> > Q: Why is top posting bad?
> > 
> > ()  ascii ribbon campaign - against html e-mail
> > /\- against proprietary attachments
> > 
> > Geschenkideen, Accessoires, Seifen, Kulinarisches: www.lillehus.at
> > 
> > 
> > ___
> > Development mailing list
> > Development@qt-project.org
> > http://lists.qt-project.org/mailman/listinfo/development


-- 
Best regards/Schöne Grüße

Martin
A: Because it breaks the logical sequence of discussion
Q: Why is top posting bad?

()  ascii ribbon campaign - against html e-mail 
/\- against proprietary attachments

Geschenkideen, Accessoires, Seifen, Kulinarisches: www.lillehus.at


___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] How to get Qt_5.9.1_PRIVATE_API

2017-10-11 Thread Mitch Curtis
Does -developer-build help?

> -Original Message-
> From: Development [mailto:development-bounces+mitch.curtis=qt.io@qt-
> project.org] On Behalf Of Martin Koller
> Sent: Wednesday, 11 October 2017 8:56 AM
> To: development@qt-project.org
> Subject: [Development] How to get Qt_5.9.1_PRIVATE_API
> 
> Hi,
> 
> on openSuse 42.2 I have a self-built 5.9.1 version and also the openSuse 5.9.1
> installed one.
> For some reason (which is not important for my question) my application
> picks up the openSuse library but fails with the error
> libQt5Core.so.5: version `Qt_5.9.1_PRIVATE_API' not found (required by
> /usr/lib64/libQt5Quick.so.5)
> 
> I just want to know how do I have to configure my self-built Qt so that the
> missing private_api symbol is included?
> 
> --
> Best regards/Schöne Grüße
> 
> Martin
> A: Because it breaks the logical sequence of discussion
> Q: Why is top posting bad?
> 
> ()  ascii ribbon campaign - against html e-mail
> /\- against proprietary attachments
> 
> Geschenkideen, Accessoires, Seifen, Kulinarisches: www.lillehus.at
> 
> 
> ___
> Development mailing list
> Development@qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] How to get Qt_5.9.1_PRIVATE_API

2017-10-10 Thread Martin Koller
Hi,

on openSuse 42.2 I have a self-built 5.9.1 version and also the openSuse 5.9.1 
installed one.
For some reason (which is not important for my question) my application picks 
up the openSuse library
but fails with the error
libQt5Core.so.5: version `Qt_5.9.1_PRIVATE_API' not found (required by 
/usr/lib64/libQt5Quick.so.5)

I just want to know how do I have to configure my self-built Qt so that the 
missing private_api symbol is included?

-- 
Best regards/Schöne Grüße

Martin
A: Because it breaks the logical sequence of discussion
Q: Why is top posting bad?

()  ascii ribbon campaign - against html e-mail 
/\- against proprietary attachments

Geschenkideen, Accessoires, Seifen, Kulinarisches: www.lillehus.at


___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development