Bug#958521: qtquickcontrols2-5-dev: Private headers missing

2020-04-23 Thread Olaf Mandel
Package: qtquickcontrols2-5-dev
Version: 5.11.3+dfsg-2
Severity: important
Tags: patch

Dear Maintainer,

the private headers and modules are missing from this development
package for both modules quickcontrols2 and quicktemplates2. These files
are important if the user wants to compile a project that contains
either of these module dependencies:

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).

One can argue about creating an extra package just for the private
development files, but in the attached patch I opted to include the
files together with the public ones.

Thank you,
Olaf Mandel


-- System Information:
Debian Release: 10.3
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-debug'), (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.19.0-8-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages qtquickcontrols2-5-dev depends on:
ii  libqt5quickcontrols2-5   5.11.3+dfsg-2
ii  libqt5quicktemplates2-5  5.11.3+dfsg-2

qtquickcontrols2-5-dev recommends no packages.

qtquickcontrols2-5-dev suggests no packages.

-- no debconf information
--- a/debian/qtquickcontrols2-5-dev.install
+++ b/debian/qtquickcontrols2-5-dev.install
@@ -6,11 +6,129 @@
 usr/include/*/qt5/QtQuickControls2/qtquickcontrols2-config.h
 usr/include/*/qt5/QtQuickControls2/qtquickcontrols2global.h
 usr/include/*/qt5/QtQuickControls2/qtquickcontrols2version.h
+usr/include/*/qt5/QtQuickControls2/*/QtQuickControls2/private/qtquickcontrols2-config_p.h
+usr/include/*/qt5/QtQuickControls2/*/QtQuickControls2/private/qquicktumblerview_p.h
+usr/include/*/qt5/QtQuickControls2/*/QtQuickControls2/private/qquicktheme_p.h
+usr/include/*/qt5/QtQuickControls2/*/QtQuickControls2/private/qquickcolorimage_p.h
+usr/include/*/qt5/QtQuickControls2/*/QtQuickControls2/private/qquickplaceholdertext_p.h
+usr/include/*/qt5/QtQuickControls2/*/QtQuickControls2/private/qquickmnemoniclabel_p.h
+usr/include/*/qt5/QtQuickControls2/*/QtQuickControls2/private/qquickiconlabel_p_p.h
+usr/include/*/qt5/QtQuickControls2/*/QtQuickControls2/private/qquickiconimage_p_p.h
+usr/include/*/qt5/QtQuickControls2/*/QtQuickControls2/private/qquickattachedobject_p.h
+usr/include/*/qt5/QtQuickControls2/*/QtQuickControls2/private/qquickiconlabel_p.h
+usr/include/*/qt5/QtQuickControls2/*/QtQuickControls2/private/qquickpaddedrectangle_p.h
+usr/include/*/qt5/QtQuickControls2/*/QtQuickControls2/private/qquickstyleselector_p_p.h
+usr/include/*/qt5/QtQuickControls2/*/QtQuickControls2/private/qquickanimatednode_p.h
+usr/include/*/qt5/QtQuickControls2/*/QtQuickControls2/private/qquickclippedtext_p.h
+usr/include/*/qt5/QtQuickControls2/*/QtQuickControls2/private/qtquickcontrols2global_p.h
+usr/include/*/qt5/QtQuickControls2/*/QtQuickControls2/private/qquickcolor_p.h
+usr/include/*/qt5/QtQuickControls2/*/QtQuickControls2/private/qquickproxytheme_p.h
+usr/include/*/qt5/QtQuickControls2/*/QtQuickControls2/private/qquickitemgroup_p.h
+usr/include/*/qt5/QtQuickControls2/*/QtQuickControls2/private/qquickchecklabel_p.h
+usr/include/*/qt5/QtQuickControls2/*/QtQuickControls2/private/qquickstyle_p.h
+usr/include/*/qt5/QtQuickControls2/*/QtQuickControls2/private/qquickstyleselector_p.h
+usr/include/*/qt5/QtQuickControls2/*/QtQuickControls2/private/qquickiconimage_p.h
+usr/include/*/qt5/QtQuickControls2/*/QtQuickControls2/private/qquickstyleplugin_p.h
 usr/include/*/qt5/QtQuickTemplates2/QtQuickTemplates2
 usr/include/*/qt5/QtQuickTemplates2/QtQuickTemplates2Depends
 usr/include/*/qt5/QtQuickTemplates2/QtQuickTemplates2Version
 usr/include/*/qt5/QtQuickTemplates2/qtquicktemplates2-config.h
 usr/include/*/qt5/QtQuickTemplates2/qtquicktemplates2version.h
+usr/include/*/qt5/QtQuickTemplates2/*/QtQuickTemplates2/private/qquickswipedelegate_p_p.h
+usr/include/*/qt5/QtQuickTemplates2/*/QtQuickTemplates2/private/qquickaction_p_p.h
+usr/include/*/qt5/QtQuickTemplates2/*/QtQuickTemplates2/private/qquickoverlay_p.h
+usr/include/*/qt5/QtQuickTemplates2/*/QtQuickTemplates2/private/qquicktextfield_p_p.h
+usr/include/*/qt5/QtQuickTemplates2/*/QtQuickTemplates2/private/qquickdelaybutton_p.h
+usr/include/*/qt5/QtQuickTemplates2/*/QtQuickTemplates2/private/qquickroundbutton_p.h
+usr/include/*/qt5/QtQuickTemplates2/*/QtQuickTemplates2/private/qquickswitchdelegate_p.h
+usr/include/*/qt5/QtQuickTemplates2/*/QtQuickTemplates2/private/qquickpane_p_p.h
+usr/include/*/qt5/QtQuickTemplates2/*/QtQuickTemplates2/private/qquickrangeslider_p.h
+usr/include/*/qt5/QtQuickTemplates2/*/QtQuic

Bug#958521: qtquickcontrols2-5-dev: Private headers missing

2020-04-23 Thread Lisandro Damián Nicanor Pérez Meyer
Hi Olaf!

On Thu, 23 Apr 2020 at 07:27, Olaf Mandel  wrote:
>
> Package: qtquickcontrols2-5-dev
> Version: 5.11.3+dfsg-2
> Severity: important
> Tags: patch
>
> Dear Maintainer,
>
> the private headers and modules are missing from this development
> package for both modules quickcontrols2 and quicktemplates2. These files
> are important if the user wants to compile a project that contains
> either of these module dependencies:
>
> 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).

> One can argue about creating an extra package just for the private
> development files, but in the attached patch I opted to include the
> files together with the public ones.

That's a very bad idea, private headers are not API/ABI stable.

*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.

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



Bug#958521: qtquickcontrols2-5-dev: Private headers missing

2020-04-23 Thread Olaf Mandel
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  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"?

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).

> *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...

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.

Best regards,
Olaf Mandel



signature.asc
Description: OpenPGP digital signature


Bug#958521: qtquickcontrols2-5-dev: Private headers missing

2020-04-23 Thread Lisandro Damián Nicanor Pérez Meyer
Hi Olaf!

On Thu, 23 Apr 2020 at 12:02, Olaf Mandel  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  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/



ktp-accounts-kcm is marked for autoremoval from testing

2020-04-23 Thread Debian testing autoremoval watch
ktp-accounts-kcm 17.08.3-2 is marked for autoremoval from testing on 2020-05-14

It (build-)depends on packages with these RC bugs:
952060: libsignon-glib: FTBFS: signon-auth-service.c:72:13: error: 
G_ADD_PRIVATE [-Werror]