Bug#1034830: qtbase5-private-dev ships header that requires cbor.h without dependency

2023-05-13 Thread Dmitry Shachnev
Hi all, again.

On Tue, Apr 25, 2023 at 05:56:36PM +0200, Steve Langasek wrote:
> Dear maintainers,
>
> As part of an investigation to establish the feasibility of moving 32-bit
> archs to 64-bit time_t, I am running an analysis of all header files in the
> archive to determine which libraries' ABIs are affected.  This requires the
> headers in question to be compilable.
>
> qtbase5-private-dev ships header files which have includes that are not
> satisfied by its dependencies.  For my purposes, I've worked around these
> unusable headers by adding quirks to my scripts, but it seems worth
> reporting as a bug that headers are being shipped that aren't usable.
>
> - qt5/QtCore/5.15.8/QtCore/private/qcborcommon_p.h, which #includes cbor.h,
>   found in libcbor-dev; but does not provide the CborValue type

Actually, Qt uses tinycbor [1], not libcbor. tinycbor is not packaged in
Debian, and Qt doesn't have an option to build with system tinycbor anyway,
so we are using the bundled version.

[1]: https://github.com/intel/tinycbor

> - qt5/QtCore/5.15.8/QtCore/private/qcfsocketnotifier_p.h, which #includes
>   CoreFoundation/CoreFoundation.h, not found in any package in the archive.
> - qt5/QtGui/5.15.8/QtGui/private/qcoregraphics_p.h: same
> - qt5/QtCore/5.15.8/QtCore/private/qcore_mac_p.h, same
> - 
> qt5/QtFontDatabaseSupport/5.15.8/QtFontDatabaseSupport/private/qcoretextfontdatabase_p.h,
>   depends on the preceding
> - 
> qt5/QtFontDatabaseSupport/5.15.8/QtFontDatabaseSupport/private/qfontengine_coretext_p.h:
>   same
> - qt5/QtTest/5.15.8/QtTest/private/qappletestlogger_p.h: same

These headers are macOS-specific, but the Qt build system installs all
headers unconditionally.

> - qt5/QtCore/5.15.8/QtCore/private/qcollator_p.h, which #includes
>   unicode/ucol.h, found in libicu-dev
> - qt5/QtCore/5.15.8/QtCore/private/qdoublescanprint_p.h, which #includes
>   double-conversion/double-conversion.h, found in libdouble-conversion-dev
> [...]

I have added these two and the other packages you mentioned to Suggests.
Thank you for providing such a list.

As earlier discussed, I don't want to depend on 16 packages that most of
qtbase5-private-dev users won't actually need.

--
Dmitry Shachnev


signature.asc
Description: PGP signature


Bug#1034830: qtbase5-private-dev ships header that requires cbor.h without dependency

2023-04-26 Thread Lisandro Damián Nicanor Pérez Meyer
Hi,

On Tue, 25 Apr 2023 at 17:38, Dmitry Shachnev  wrote:
>
> Hi all!
>
> On Tue, Apr 25, 2023 at 05:21:45PM -0300, Lisandro Damián Nicanor Pérez Meyer 
> wrote:
> > To the best of my knowledge Qt installs lots of really not-required headers 
> > in
> > it's private stuff. If you ask them it's for the sake of simplicity, as you 
> > are
> > not supposed to use private headers...
> >
> > The reason we export those private headers is because we build Qt by
> > submodules instead of a big huuuge build including webengine et all, and Qt
> > submodules do have internal private dependencies.
> >
> > So yes, it is a valid bug, but I am afraid that it will be too hard to get
> > that right. Non the less I really appreciate you filing this bug report, it 
> > is
> > a good thing to have it around.
> >
> > @Dmitry: I would mark this as wontfix, what do you think?
>
> Well, if adding just one small dependency will make Steve's script happy,
> then I don't mind doing it. But if we are talking about a dozen of extra
> dependencies, I would rather not do it. Or maybe they should be Recommends or
> Suggests.

Oh, I actually had my mind mostly on the dependencies that are
unsolvable on Debian. But yes, I agree with those.


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



Bug#1034830: qtbase5-private-dev ships header that requires cbor.h without dependency

2023-04-25 Thread Dmitry Shachnev
Hi all!

On Tue, Apr 25, 2023 at 05:21:45PM -0300, Lisandro Damián Nicanor Pérez Meyer 
wrote:
> To the best of my knowledge Qt installs lots of really not-required headers 
> in 
> it's private stuff. If you ask them it's for the sake of simplicity, as you 
> are 
> not supposed to use private headers...
>
> The reason we export those private headers is because we build Qt by 
> submodules instead of a big huuuge build including webengine et all, and Qt 
> submodules do have internal private dependencies.
>
> So yes, it is a valid bug, but I am afraid that it will be too hard to get 
> that right. Non the less I really appreciate you filing this bug report, it 
> is 
> a good thing to have it around.
>
> @Dmitry: I would mark this as wontfix, what do you think?

Well, if adding just one small dependency will make Steve's script happy,
then I don't mind doing it. But if we are talking about a dozen of extra
dependencies, I would rather not do it. Or maybe they should be Recommends or
Suggests.

--
Dmitry Shachnev


signature.asc
Description: PGP signature


Bug#1034830: qtbase5-private-dev ships header that requires cbor.h without dependency

2023-04-25 Thread Lisandro Damián Nicanor Pérez Meyer
Hi Steve!

El martes, 25 de abril de 2023 12:56:36 -03 Steve Langasek escribió:
> Package: qtbase5-private-dev
> Version: 5.15.8+dfsg-3
> Severity: minor
> User: ubuntu-de...@lists.ubuntu.com
> Usertags: origin-ubuntu lunar
> 
> Dear maintainers,
> 
> As part of an investigation to establish the feasibility of moving 32-bit
> archs to 64-bit time_t, I am running an analysis of all header files in the
> archive to determine which libraries' ABIs are affected.  This requires the
> headers in question to be compilable.
> 
> qtbase5-private-dev ships header files which have includes that are not
> satisfied by its dependencies.  For my purposes, I've worked around these
> unusable headers by adding quirks to my scripts, but it seems worth
> reporting as a bug that headers are being shipped that aren't usable.

To the best of my knowledge Qt installs lots of really not-required headers in 
it's private stuff. If you ask them it's for the sake of simplicity, as you are 
not supposed to use private headers...

The reason we export those private headers is because we build Qt by 
submodules instead of a big huuuge build including webengine et all, and Qt 
submodules do have internal private dependencies.

So yes, it is a valid bug, but I am afraid that it will be too hard to get 
that right. Non the less I really appreciate you filing this bug report, it is 
a good thing to have it around.

@Dmitry: I would mark this as wontfix, what do you think?

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


Bug#1034830: qtbase5-private-dev ships header that requires cbor.h without dependency

2023-04-25 Thread Steve Langasek
Package: qtbase5-private-dev
Version: 5.15.8+dfsg-3
Severity: minor
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu lunar

Dear maintainers,

As part of an investigation to establish the feasibility of moving 32-bit
archs to 64-bit time_t, I am running an analysis of all header files in the
archive to determine which libraries' ABIs are affected.  This requires the
headers in question to be compilable.

qtbase5-private-dev ships header files which have includes that are not
satisfied by its dependencies.  For my purposes, I've worked around these
unusable headers by adding quirks to my scripts, but it seems worth
reporting as a bug that headers are being shipped that aren't usable.

- qt5/QtCore/5.15.8/QtCore/private/qcborcommon_p.h, which #includes cbor.h,
  found in libcbor-dev; but does not provide the CborValue type
- qt5/QtCore/5.15.8/QtCore/private/qcfsocketnotifier_p.h, which #includes
  CoreFoundation/CoreFoundation.h, not found in any package in the archive.
- qt5/QtGui/5.15.8/QtGui/private/qcoregraphics_p.h: same
- qt5/QtCore/5.15.8/QtCore/private/qcore_mac_p.h, same
- 
qt5/QtFontDatabaseSupport/5.15.8/QtFontDatabaseSupport/private/qcoretextfontdatabase_p.h,
  depends on the preceding
- 
qt5/QtFontDatabaseSupport/5.15.8/QtFontDatabaseSupport/private/qfontengine_coretext_p.h:
  same
- qt5/QtTest/5.15.8/QtTest/private/qappletestlogger_p.h: same
- qt5/QtCore/5.15.8/QtCore/private/qcollator_p.h, which #includes
  unicode/ucol.h, found in libicu-dev
- qt5/QtCore/5.15.8/QtCore/private/qdoublescanprint_p.h, which #includes
  double-conversion/double-conversion.h, found in libdouble-conversion-dev
- qt5/QtCore/5.15.8/QtCore/private/qeventdispatcher_win_p.h, which #includes
  qt_windows.h, which in turn #includes windows.h, which does not exist
- qt5/QtCore/5.15.8/QtCore/private/qeventdispatcher_winrt_p.h: same
- qt5/QtCore/5.15.8/QtCore/private/qoperatingsystemversion_win_p.h: same
- qt5/QtCore/5.15.8/QtCore/private/qwindowspipereader_p.h: same
- qt5/QtCore/5.15.8/QtCore/private/qwindowspipewriter_p.h: same
- qt5/QtCore/5.15.8/QtCore/private/qwineventnotifier_p.h: same
- qt5/QtCore/5.15.8/QtCore/private/qwinregistry_p.h: same
- 
qt5/QtEventDispatcherSupport/5.15.8/QtEventDispatcherSupport/private/qwindowsguieventdispatcher_p.h:
  same
- 
qt5/QtFontDatabaseSupport/5.15.8/QtFontDatabaseSupport/private/qwindowsfontdatabase_ft_p.h:
  same
- 
qt5/QtFontDatabaseSupport/5.15.8/QtFontDatabaseSupport/private/qwindowsfontdatabase_p.h:
  same
- 
qt5/QtFontDatabaseSupport/5.15.8/QtFontDatabaseSupport/private/qwindowsfontengine_p.h:
  same
- 
qt5/QtFontDatabaseSupport/5.15.8/QtFontDatabaseSupport/private/qwindowsnativeimage_p.h:
  same
- qt5/QtCore/5.15.8/QtCore/private/qfilesystemwatcher_fsevents_p.h, which
  #includes dispatch/dispatch.h, which does not exist (libdispatch-dev did
  exist, but was removed due to FTBFS)
- qt5/QtCore/5.15.8/QtCore/private/qjni_p.h, which #includes jni.h from
  default-jdk-headless
- qt5/QtCore/5.15.8/QtCore/private/qppsobjectprivate_p.h, which #includes
  sys/pps.h, which does not exist
- qt5/QtCore/5.15.8/QtCore/private/qstdweb_p.h, which #includes
  emscripten/val.h from emscripten
- qt5/QtGui/5.15.8/QtGui/private/qharfbuzzng_p.h, which #includes
  harfbuzz/hb.h from libharfbuzz-dev
- qt5/QtGui/5.15.8/QtGui/private/qrhid3d11_p_p.h, which includes d3d11_1.h,
  Windows-specific
- qt5/QtGui/5.15.8/QtGui/private/qt_gui_pch.h, which includes
  corelib/global/qt_pch.h; qt_pch.h is only available as
  qt5/QtCore/5.15.8/QtCore/private/qt_pch.h, so wrong include path for us?
- qt5/QtKmsSupport/5.15.8/QtKmsSupport/private/qkmsdevice_p.h, which
  #includes xf86drm.h, provided by libdrm-dev
- qt5/QtGui/5.15.8/QtGui/private/qt_mips_asm_dsp_p.h, MIPS-specific
  assembly, so seems irrelevant to ship on non-mips archives?
- 
qt5/QtLinuxAccessibilitySupport/5.15.8/QtLinuxAccessibilitySupport/private/atspiadaptor_p.h,
  which includes atspi/atspi-constants.h from libatspi2.0-dev
- qt5/QtNetwork/5.15.8/QtNetwork/private/qdtls_openssl_p.h, which includes
  openssl/ossl_typ.h from libssl-dev
- qt5/QtNetwork/5.15.8/QtNetwork/private/qhttp2protocolhandler_p.h, which
  includes access/qhttp2configuration.h, but this file is only available as
  qt5/QtNetwork/qhttp2configuration.h
- qt5/QtNetwork/5.15.8/QtNetwork/private/qsslsocket_mac_p.h, which includes
  Security/Security.h, which does not exist
- qt5/QtNetwork/5.15.8/QtNetwork/private/qsslsocket_schannel_p.h, which
  includes schnlsp.h, Windows-specific
- qt5/QtOpenGL/5.15.8/QtOpenGL/private/qgl_p.h, which includes
  QtOpenGL/qgl.h, shipped in libqt5opengl5-dev
- qt5/QtPrintSupport/5.15.8/QtPrintSupport/private/qprint_p.h, which
  includes cups/ppd.h from libcups2-dev
- qt5/QtPrintSupport/5.15.8/QtPrintSupport/private/qcupsjobwidget_p.h, which
  includes ui_qcupsjobwidget.h, which does not exist
- qt5/QtPrintSupport/5.15.8/QtPrintSupport/private/qpagesetupdialog_unix_p.h,
  which includes kernel/qprint_p.h, but this file is only available as