Bug#1034830: qtbase5-private-dev ships header that requires cbor.h without dependency
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
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
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
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
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