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
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).
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
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
qt5-qtbase-5.6.0-13.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2016-8c8f2dc789
qt5-qtbase-5.6.0-13.fc23 has been submitted as an update to Fedora 23. https://bodhi.fedoraproject.org/updates/FEDORA-2016-80ae549503
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
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
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
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
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
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
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
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.
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.
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.
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.
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