Hi Olaf!

On Thu, 23 Apr 2020 at 12:02, Olaf Mandel <o.man...@menlosystems.com> wrote:
>
> Dear Lisandro,
>
> Am 23.04.2020 um 14:19 schrieb Lisandro Damián Nicanor Pérez Meyer:
> > On Thu, 23 Apr 2020 at 07:27, Olaf Mandel <o.man...@menlosystems.com> wrote:
> >>     QT += quickcontrols2-private quicktemplates2-private
> >>
> >> Currently, such a compile fails as the *.pri files (not to mention the
> >> header files) are missing.
> >>
> >> Note that while compiling against Qt private modules may not be good
> >> form, it is allowed and I would expect this to be possible with
> >> Debian-provided Qt modules (it is with the qtbase ones).
> >
> > We do indeed remove all private headers except for the ones required
> > by another submodules (that's why qtbase ships them).
> > [...]> That's a very bad idea, private headers are not API/ABI stable.
> >
> Couldn't this uncharitably be reinterpreted as "we remove these headers
> for others use as undesired because they are not API/ABI stable...
> except for cases where we ourselves need them"?

Exactly that, yes.

> What is the difference between Debian-maintained packages and
> user-compiled software that justifies making compiling the latter more
> difficult than the former? In Debian-packages, the Build-Depends/Depends
> fields can be set to the exact version of the dependent library to
> ensure API/ABI compatibility. Why couldn't the user do something
> similar? Or if/when they don't recompile after an upgrade, then this is
> the users lookout (IMO).

Because in our use case (qt submodules) we know beforehand that the
API/ABi will work, because it's a matter of splitting Qt into
submodules (we could build Qt from one huge tarball, but that would be
insane).

We are currently forced to do transitions on **every** Qt upload, and
the amount of work third party apps using private headers gives us is
defintely more than enough. So yes, the less private headers, the
better.

>
> > *Maybe* we can add the private headers for everything in the last Qt 5
> > upload, as it will switch to Qt 6 after all. But that's to be decided.
> >
> I am not sure that this would match my expectations: Once Qt6 comes out,
> I would probably rewrite my code to compile under Qt6 and if I still
> needed the private parts, I would have this same problem again until Qt7
> comes out...

Exactly. Don't use private headers. If you need them work with Qt
upstreams to make them public API.

> Given both of these points, I at least would prefer to have the private
> headers available, even to non-package developers. The one thing I could
> understand is that the private headers are in a new package
> qtquickcontrols2-5-private-dev instead of in the "normal"
> qtquickcontrols2-5-dev. That might serve as an extra level of warning to
> the user.

People would still use them in their packages, so no.

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

Reply via email to