Re: [Development] How to get Qt_5.9.1_PRIVATE_API
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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