Bug 1233829 (qt5-private) - Qt5: private headers/interfaces
Summary: Qt5: private headers/interfaces
Keywords:
Status: CLOSED WONTFIX
Alias: qt5-private
Product: Fedora
Classification: Fedora
Component: qt5-qtbase
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Than Ngo
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: qt-5.5
TreeView+ depends on / blocked
 
Reported: 2015-06-19 14:11 UTC by Rex Dieter
Modified: 2017-07-18 09:44 UTC (History)
7 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2017-07-18 09:44:11 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Rex Dieter 2015-06-19 14:11:24 UTC
Per mailing list thread,
https://lists.fedoraproject.org/pipermail/devel/2015-June/211294.html

we would like to introduce some new package splits for Qt5 private headers/interfaces, so :

1.  we can track which packages use these
2.  tighten dependencies to reduce/minimize breakage for version upgrades

My initial thoughts were to include anything matching:
/usr/include/qt5/*/private/
/usr/lib(64)/qt5/mkspecs/modules/qt_lib*_private.pri

plus anything else relevant (like platform plugins, static libs?)


Debian is already doing this, can leverage what they have too, e.g.
https://packages.debian.org/sid/i386/qtbase5-private-dev/filelist

Comment 1 Rex Dieter 2015-06-19 14:12:30 UTC
After discussing this with some other qt5 maintainers, we'll wait to introduce any changes here at least until after 5.5.0 lands (in rawhide), which should be "real soon now"(tm).

Comment 2 Rex Dieter 2015-07-14 21:14:41 UTC
I think we can use the data included here to make an initial effort at implementing this:

$ grep private.depends /usr/lib64/qt5/mkspecs/modules/*.pri

/usr/lib64/qt5/mkspecs/modules/qt_lib_bluetooth_private.pri:QT.bluetooth_private.depends = bluetooth
/usr/lib64/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri:QT.bootstrap_private.depends =
/usr/lib64/qt5/mkspecs/modules/qt_lib_clucene_private.pri:QT.clucene_private.depends = core
/usr/lib64/qt5/mkspecs/modules/qt_lib_compositor_private.pri:QT.compositor_private.depends = compositor
/usr/lib64/qt5/mkspecs/modules/qt_lib_concurrent_private.pri:QT.concurrent_private.depends = concurrent
/usr/lib64/qt5/mkspecs/modules/qt_lib_core_private.pri:QT.core_private.depends = core
/usr/lib64/qt5/mkspecs/modules/qt_lib_dbus_private.pri:QT.dbus_private.depends = dbus
/usr/lib64/qt5/mkspecs/modules/qt_lib_declarative_private.pri:QT.declarative_private.depends = declarative
/usr/lib64/qt5/mkspecs/modules/qt_lib_designercomponents_private.pri:QT.designercomponents_private.depends = core gui_private widgets_private designer_private
/usr/lib64/qt5/mkspecs/modules/qt_lib_designer_private.pri:QT.designer_private.depends = designer
/usr/lib64/qt5/mkspecs/modules/qt_lib_eglfs_device_lib_private.pri:QT.eglfs_device_lib_private.depends = core gui
/usr/lib64/qt5/mkspecs/modules/qt_lib_gui_private.pri:QT.gui_private.depends = gui
/usr/lib64/qt5/mkspecs/modules/qt_lib_help_private.pri:QT.help_private.depends = help
/usr/lib64/qt5/mkspecs/modules/qt_lib_location_private.pri:QT.location_private.depends = location
/usr/lib64/qt5/mkspecs/modules/qt_lib_multimedia_private.pri:QT.multimedia_private.depends = multimedia
/usr/lib64/qt5/mkspecs/modules/qt_lib_multimediawidgets_private.pri:QT.multimediawidgets_private.depends = multimediawidgets
/usr/lib64/qt5/mkspecs/modules/qt_lib_network_private.pri:QT.network_private.depends = network
/usr/lib64/qt5/mkspecs/modules/qt_lib_nfc_private.pri:QT.nfc_private.depends = nfc
/usr/lib64/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri:QT.openglextensions_private.depends = openglextensions
/usr/lib64/qt5/mkspecs/modules/qt_lib_opengl_private.pri:QT.opengl_private.depends = opengl
/usr/lib64/qt5/mkspecs/modules/qt_lib_platformsupport_private.pri:QT.platformsupport_private.depends = core_private gui_private
/usr/lib64/qt5/mkspecs/modules/qt_lib_positioning_private.pri:QT.positioning_private.depends = positioning
/usr/lib64/qt5/mkspecs/modules/qt_lib_printsupport_private.pri:QT.printsupport_private.depends = printsupport
/usr/lib64/qt5/mkspecs/modules/qt_lib_qmldevtools_private.pri:QT.qmldevtools_private.depends = core
/usr/lib64/qt5/mkspecs/modules/qt_lib_qml_private.pri:QT.qml_private.depends = qml
/usr/lib64/qt5/mkspecs/modules/qt_lib_qmltest_private.pri:QT.qmltest_private.depends = qmltest
/usr/lib64/qt5/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri:QT.qtmultimediaquicktools_private.depends = core quick multimedia_private
/usr/lib64/qt5/mkspecs/modules/qt_lib_quickparticles_private.pri:QT.quickparticles_private.depends = core_private gui_private qml_private quick_private
/usr/lib64/qt5/mkspecs/modules/qt_lib_quick_private.pri:QT.quick_private.depends = quick
/usr/lib64/qt5/mkspecs/modules/qt_lib_quickwidgets_private.pri:QT.quickwidgets_private.depends = quickwidgets
/usr/lib64/qt5/mkspecs/modules/qt_lib_script_private.pri:QT.script_private.depends = script
/usr/lib64/qt5/mkspecs/modules/qt_lib_scripttools_private.pri:QT.scripttools_private.depends = scripttools
/usr/lib64/qt5/mkspecs/modules/qt_lib_sensors_private.pri:QT.sensors_private.depends = sensors
/usr/lib64/qt5/mkspecs/modules/qt_lib_serialport_private.pri:QT.serialport_private.depends = serialport
/usr/lib64/qt5/mkspecs/modules/qt_lib_sql_private.pri:QT.sql_private.depends = sql
/usr/lib64/qt5/mkspecs/modules/qt_lib_svg_private.pri:QT.svg_private.depends = svg
/usr/lib64/qt5/mkspecs/modules/qt_lib_testlib_private.pri:QT.testlib_private.depends = testlib
/usr/lib64/qt5/mkspecs/modules/qt_lib_uitools_private.pri:QT.uitools_private.depends = uitools
/usr/lib64/qt5/mkspecs/modules/qt_lib_waylandclient_private.pri:QT.waylandclient_private.depends = waylandclient platformsupport_private
/usr/lib64/qt5/mkspecs/modules/qt_lib_webchannel_private.pri:QT.webchannel_private.depends = webchannel
/usr/lib64/qt5/mkspecs/modules/qt_lib_webkit_private.pri:QT.webkit_private.depends = webkit
/usr/lib64/qt5/mkspecs/modules/qt_lib_webkitwidgets_private.pri:QT.webkitwidgets_private.depends = webkitwidgets
/usr/lib64/qt5/mkspecs/modules/qt_lib_websockets_private.pri:QT.websockets_private.depends = websockets
/usr/lib64/qt5/mkspecs/modules/qt_lib_widgets_private.pri:QT.widgets_private.depends = widgets
/usr/lib64/qt5/mkspecs/modules/qt_lib_x11extras_private.pri:QT.x11extras_private.depends = x11extras
/usr/lib64/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri:QT.xcb_qpa_lib_private.depends = core gui
/usr/lib64/qt5/mkspecs/modules/qt_lib_xmlpatterns_private.pri:QT.xmlpatterns_private.depends = xmlpatterns
/usr/lib64/qt5/mkspecs/modules/qt_lib_xml_private.pri:QT.xml_private.depends = xml

Comment 3 Rex Dieter 2015-07-14 21:15:23 UTC
line-wrapping fail, here's with some extraneous path stripped:

qt_lib_bluetooth_private.pri:QT.bluetooth_private.depends = bluetooth
qt_lib_bootstrap_private.pri:QT.bootstrap_private.depends =
qt_lib_clucene_private.pri:QT.clucene_private.depends = core
qt_lib_compositor_private.pri:QT.compositor_private.depends = compositor
qt_lib_concurrent_private.pri:QT.concurrent_private.depends = concurrent
qt_lib_core_private.pri:QT.core_private.depends = core
qt_lib_dbus_private.pri:QT.dbus_private.depends = dbus
qt_lib_declarative_private.pri:QT.declarative_private.depends = declarative
qt_lib_designercomponents_private.pri:QT.designercomponents_private.depends = core gui_private widgets_private designer_private
qt_lib_designer_private.pri:QT.designer_private.depends = designer
qt_lib_eglfs_device_lib_private.pri:QT.eglfs_device_lib_private.depends = core gui
qt_lib_gui_private.pri:QT.gui_private.depends = gui
qt_lib_help_private.pri:QT.help_private.depends = help
qt_lib_location_private.pri:QT.location_private.depends = location
qt_lib_multimedia_private.pri:QT.multimedia_private.depends = multimedia
qt_lib_multimediawidgets_private.pri:QT.multimediawidgets_private.depends = multimediawidgets
qt_lib_network_private.pri:QT.network_private.depends = network
qt_lib_nfc_private.pri:QT.nfc_private.depends = nfc
qt_lib_openglextensions_private.pri:QT.openglextensions_private.depends = openglextensions
qt_lib_opengl_private.pri:QT.opengl_private.depends = opengl
qt_lib_platformsupport_private.pri:QT.platformsupport_private.depends = core_private gui_private
qt_lib_positioning_private.pri:QT.positioning_private.depends = positioning
qt_lib_printsupport_private.pri:QT.printsupport_private.depends = printsupport
qt_lib_qmldevtools_private.pri:QT.qmldevtools_private.depends = core
qt_lib_qml_private.pri:QT.qml_private.depends = qml
qt_lib_qmltest_private.pri:QT.qmltest_private.depends = qmltest
qt_lib_qtmultimediaquicktools_private.pri:QT.qtmultimediaquicktools_private.depends = core quick multimedia_private
qt_lib_quickparticles_private.pri:QT.quickparticles_private.depends = core_private gui_private qml_private quick_private
qt_lib_quick_private.pri:QT.quick_private.depends = quick
qt_lib_quickwidgets_private.pri:QT.quickwidgets_private.depends = quickwidgets
qt_lib_script_private.pri:QT.script_private.depends = script
qt_lib_scripttools_private.pri:QT.scripttools_private.depends = scripttools
qt_lib_sensors_private.pri:QT.sensors_private.depends = sensors
qt_lib_serialport_private.pri:QT.serialport_private.depends = serialport
qt_lib_sql_private.pri:QT.sql_private.depends = sql
qt_lib_svg_private.pri:QT.svg_private.depends = svg
qt_lib_testlib_private.pri:QT.testlib_private.depends = testlib
qt_lib_uitools_private.pri:QT.uitools_private.depends = uitools
qt_lib_waylandclient_private.pri:QT.waylandclient_private.depends = waylandclient platformsupport_private
qt_lib_webchannel_private.pri:QT.webchannel_private.depends = webchannel
qt_lib_webkit_private.pri:QT.webkit_private.depends = webkit
qt_lib_webkitwidgets_private.pri:QT.webkitwidgets_private.depends = webkitwidgets
qt_lib_websockets_private.pri:QT.websockets_private.depends = websockets
qt_lib_widgets_private.pri:QT.widgets_private.depends = widgets
qt_lib_x11extras_private.pri:QT.x11extras_private.depends = x11extras
qt_lib_xcb_qpa_lib_private.pri:QT.xcb_qpa_lib_private.depends = core gui
qt_lib_xmlpatterns_private.pri:QT.xmlpatterns_private.depends = xmlpatterns
qt_lib_xml_private.pri:QT.xml_private.depends = xml

Comment 4 Fedora Update System 2016-04-30 18:03:37 UTC
qt5-qtbase-5.6.0-13.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2016-8c8f2dc789

Comment 5 Fedora Update System 2016-04-30 18:07:25 UTC
qt5-qtbase-5.6.0-13.fc23 has been submitted as an update to Fedora 23. https://bodhi.fedoraproject.org/updates/FEDORA-2016-80ae549503

Comment 6 Rex Dieter 2016-04-30 20:00:39 UTC
So far, in qt5-qtbase-5.6.0-13 implemented only

%changelog
* Sat Apr 16 2016 Rex Dieter <rdieter> - 5.6.0-13
- -devel: Provides: qt5-qtbase-private-devel (#1233829)

So, packages that we know use private interfaces can:
BuildRequires: qt5-qtbase-private-devel

Comment 7 Fedora Update System 2016-04-30 20:01:24 UTC
qt5-qtbase-5.6.0-13.el7 has been submitted as an update to Fedora EPEL 7. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2016-d542a893b1

Comment 8 Fedora Update System 2016-04-30 22:40:20 UTC
qt5-qtbase-5.6.0-13.el6 has been submitted as an update to Fedora EPEL 6. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2016-18eff5e442

Comment 9 Fedora Update System 2016-05-01 17:54:56 UTC
qt5-qtbase-5.6.0-13.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-8c8f2dc789

Comment 10 Fedora Update System 2016-05-02 00:21:48 UTC
qt5-qtbase-5.6.0-13.el7 has been pushed to the Fedora EPEL 7 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2016-d542a893b1

Comment 11 Fedora Update System 2016-05-02 00:53:00 UTC
qt5-qtbase-5.6.0-13.fc23 has been pushed to the Fedora 23 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-80ae549503

Comment 12 Fedora Update System 2016-05-02 06:20:57 UTC
qt5-qtbase-5.6.0-13.el6 has been pushed to the Fedora EPEL 6 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2016-18eff5e442

Comment 13 Fedora Update System 2016-05-07 11:44:50 UTC
qt5-qtbase-5.6.0-13.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report.

Comment 14 Fedora Update System 2016-05-10 17:59:23 UTC
qt5-qtbase-5.6.0-13.fc23 has been pushed to the Fedora 23 stable repository. If problems still persist, please make note of it in this bug report.

Comment 15 Fedora Update System 2016-05-16 19:05:11 UTC
qt5-qtbase-5.6.0-13.el7 has been pushed to the Fedora EPEL 7 stable repository. If problems still persist, please make note of it in this bug report.

Comment 16 Fedora Update System 2016-05-17 02:59:36 UTC
qt5-qtbase-5.6.0-13.el6 has been pushed to the Fedora EPEL 6 stable repository. If problems still persist, please make note of it in this bug report.

Comment 17 Than Ngo 2017-07-18 09:44:11 UTC
I don't see any benefit by splitting into subpackage. If the api is changed in the the privat header files, all packages which depend on it, have to be rebuilt against the api changes no matter if it's splitted or not.

I closed it as "wontfix". Please feel free to reopen it again if there's really big benefit.

Thanks


Note You need to log in before you can comment on or make changes to this bug.