Summary: | kde-frameworks/networkmanager-qt stores pkg-config path information in KF5NetworkManagerQtTargets.cmake | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Franz Trischberger <franz.trischberger> |
Component: | Current packages | Assignee: | Gentoo KDE team <kde> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | alex, belliash, bugs, cctsurf, chris, daiajo, daniel, dschridde+gentoobugs, email200202, f0o, floppym, franz.trischberger, gabemarcano, jannik.glueckert, jbowler, jms.gentoo, julien.dlq, krinpaus, mackal.cook, mjaoune55, moltonel, nowa, o.freyermuth, raistlin, sandyvujakovicj, silvio.gerli, sl.tom, till2.schaefer, vitaut.bayaryn, whissi, williamh |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
URL: | https://gitlab.freedesktop.org/pkg-config/pkg-config/issues/7 | ||
See Also: | https://bugs.debian.org/892956 | ||
Whiteboard: | workaround: emerge -1 networkmanager-qt; fixed in 5.88.0 | ||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | 816042 | ||
Bug Blocks: | |||
Attachments: | build.log |
Description
Franz Trischberger
2019-09-28 10:23:57 UTC
(In reply to Franz Trischberger from comment #0) > kde-frameworks/networmanager-qt was not rebuilt automatically after > libffi-update, it doesn't list libffi as a dependency. That's because there is no such dependency. It looks like something is leaking this and other includes into the build. *** Bug 695862 has been marked as a duplicate of this bug. *** *** Bug 697120 has been marked as a duplicate of this bug. *** This hack allowed powerdevil to configure (the one in my tmp directory is the original)...
# diff $tmp/build/powerdevil/KF5NetworkManagerQtTargets.cmake /usr/lib64/cmake/KF5NetworkManagerQt/KF5NetworkManagerQtTargets.cmake
66c66
< INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include/KF5/NetworkManagerQt;/usr/include/libnm;/usr/include/glib-2.0;/usr/lib64/glib-2.0/include;/usr/lib64/libffi-3.2.1/include;/usr/include/libmount;/usr/include/blkid;/usr/include/uuid;${_IMPORT_PREFIX}/include/KF5"
---
> INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include/KF5/NetworkManagerQt;/usr/include/libnm;/usr/include/glib-2.0;/usr/lib64/glib-2.0/include;/usr/lib64/libffi-3.3_rc0/include;/usr/include/libmount;/usr/include/blkid;/usr/include/uuid;${_IMPORT_PREFIX}/include/KF5"
Sorry diff got chopped
# diff $tmp/build/powerdevil/KF5NetworkManagerQtTargets.cmake /usr/lib64/cmake/KF5NetworkManagerQt/KF5NetworkManagerQtTargets.cmake
66c66
< INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include/KF5/NetworkManagerQt;/usr/include/libnm;/usr/include/glib-2.0;/usr/lib64/glib-2.0/include;/usr/lib64/libffi-3.2.1/include;/usr/include/libmount;/usr/include/blkid;/usr/include/uuid;${_IMPORT_PREFIX}/include/KF5"
---
> INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include/KF5/NetworkManagerQt;/usr/include/libnm;/usr/include/glib-2.0;/usr/lib64/glib-2.0/include;/usr/lib64/libffi-3.3_rc0/include;/usr/include/libmount;/usr/include/blkid;/usr/include/uuid;${_IMPORT_PREFIX}/include/KF5"
This comes from dev-libs/glib, through "/usr/lib64/pkgconfig/gobject-2.0.pc". Removed the line "Requires.private: libffi >= 3.0.0", rebuilt networkmanager-qt and no libffi include dir anymore in "/usr/lib64/cmake/KF5NetworkManagerQt/KF5NetworkManagerQtTargets.cmake". *** Bug 698530 has been marked as a duplicate of this bug. *** I emerged emerge -1v networkmanager-qt and everything goes fine now. Seems to be a meson thing: > --- dev-libs/glib-2.58.3-r1/image/usr/lib64/pkgconfig/gobject-2.0.pc > +++ dev-libs/glib-2.60.7/image/usr/lib64/pkgconfig/gobject-2.0.pc > @@ -1,12 +1,12 @@ > prefix=/usr > -exec_prefix=${prefix} > -libdir=/usr/lib64 > +libdir=${prefix}/lib64 > includedir=${prefix}/include > > Name: GObject > Description: GLib Type, Object, Parameter and Signal Library > +Version: 2.60.7 > Requires: glib-2.0 > -Version: 2.58.3 > +Requires.private: libffi >= 3.0.0 > Libs: -L${libdir} -lgobject-2.0 > -Libs.private: -lffi > -Cflags: > +Libs.private: -pthread > +Cflags: -I${includedir} Which is leading to this output: > $ pkg-config --cflags libnm > -I/usr/include/libnm -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/lib64/libffi-3.3_rc1/include -pthread -I/usr/include/libmount -I/usr/include/blkid Adding meson and glib maintainers. As per advice of comment #8 and with reference to bug #697120 this worked for me: emerge -1v =networkmanager-qt-5.63.0 && emerge -1v =kde-plasma/powerdevil-5.17.1 && emerge -1v =kde-plasma/plasma-meta-5.17.1 I was able to successfully complete @world updates on 4 different computers. *** Bug 698896 has been marked as a duplicate of this bug. *** *** Bug 698894 has been marked as a duplicate of this bug. *** *** Bug 698894 has been marked as a duplicate of this bug. *** Re-assigning, as the only thing we could do from kde proj's side is hacking the result, not the underlying problem. (In reply to Andreas Sturmlechner from comment #14) If you feel meson is generating an incorrect pkgconfig file, please report it upstream. We are not doing anything special in Gentoo that would cause it. meson seems to be working as documented. I think you may have a tough time convincing meson upstream to change this. https://mesonbuild.com/Pkgconfig-module.html#implicit-dependencies Requires.private seems appropriate here, though the --cflags behavior is unfortunate. It's been documented in this FAQ for a long time. https://people.freedesktop.org/~dbn/pkg-config-guide.html#faq Possibly glib cloud abandon the meson pkgconfig module, and go back to generating custom pkgconfig files to avoid this. As well, it could be argued that pkg-config output should not be cached into cmake files, since it becomes invalid any time a pkgconfig file in the dependency chain is updated. *** Bug 699056 has been marked as a duplicate of this bug. *** *** Bug 699062 has been marked as a duplicate of this bug. *** *** Bug 699088 has been marked as a duplicate of this bug. *** So what can gnome@ do here? Maybe someone that already studied all the details could go talk to glib upstream in https://gitlab.gnome.org/GNOME/glib/issues ? *** Bug 701332 has been marked as a duplicate of this bug. *** I'm checking with the toolchain maintainers to see if we can move the libffi headers to a more stable location, which should avoid this problem. The real issue here seems to be that pkg-config information is getting stored into generated cmake files by various KDE framework packages. This information may become invalid at any time as packages are upgraded. What is the purpose of this? (In reply to Mike Gilbert from comment #23) > into generated cmake files by various KDE framework packages. Nope, exactly one Framework, networkmanager-qt and none else. The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=91330e1d176561bb267945a0142ef40e1a9d8295 commit 91330e1d176561bb267945a0142ef40e1a9d8295 Author: Sergei Trofimovich <slyfox@gentoo.org> AuthorDate: 2019-11-27 22:56:32 +0000 Commit: Sergei Trofimovich <slyfox@gentoo.org> CommitDate: 2019-11-27 22:57:59 +0000 dev-libs/libffi: drop libffi version from includedir, bug #695788 Posting ebuild source note as-is: ``` --includedir= path maintains a few properties: 1. have stable name across libffi versions: some packages like dev-lang/ghc or kde-frameworks/networkmanager-qt embed ${includedir} at build-time. Don't require those to be rebuilt unless SONAME changes. bug #695788 We use /usr/.../${PN} (instead of former /usr/.../${P}). 2. have ${ABI}-specific location as ffi.h is target-dependent. We use /usr/$(get_libdir)/... to have ABI identifier. ``` Before the change libffi installed headers into: /usr/lib/libffi-3.3/include/ /usr/lib64/libffi-3.3/include/ After the change the patchs are: /usr/lib/libffi/include/ /usr/lib64/libffi/include/ Reported-by: Franz Trischberger Bug: https://bugs.gentoo.org/695788 Package-Manager: Portage-2.3.79, Repoman-2.3.18 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> dev-libs/libffi/libffi-3.3-r1.ebuild | 83 ++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) *** Bug 701540 has been marked as a duplicate of this bug. *** *** Bug 709548 has been marked as a duplicate of this bug. *** *** Bug 709588 has been marked as a duplicate of this bug. *** *** Bug 709608 has been marked as a duplicate of this bug. *** *** Bug 709608 has been marked as a duplicate of this bug. *** *** Bug 709680 has been marked as a duplicate of this bug. *** *** Bug 709798 has been marked as a duplicate of this bug. *** Confirmed the last two duplicate bugs happened to me as well, and that emerge -1 networkmanager-qt fixed them. *** Bug 709810 has been marked as a duplicate of this bug. *** *** Bug 709822 has been marked as a duplicate of this bug. *** *** Bug 710360 has been marked as a duplicate of this bug. *** *** Bug 710850 has been marked as a duplicate of this bug. *** Had this bug when emerging x11-libs/vte. Resolved it by re-emerging gobject-introspection (pkg-config gobject-introspection added the wrong include path of libffi to cflags) The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/proj/kde.git/commit/?id=ac8620a1cd4a7260a626a48091fd58175066afa8 commit ac8620a1cd4a7260a626a48091fd58175066afa8 Author: Andreas Sturmlechner <asturm@gentoo.org> AuthorDate: 2021-11-13 19:00:13 +0000 Commit: Andreas Sturmlechner <asturm@gentoo.org> CommitDate: 2021-11-13 19:00:13 +0000 kde-frameworks/networkmanager-qt: Update dependencies Upstream switched to cmake imported targets, cleaning up hardcoded directories ending up in KF5NetworkManagerQtTargets.cmake. Upstream commit 025ea91bfad3121a3800786706a213f9f2ff45c3 See also: https://invent.kde.org/frameworks/networkmanager-qt/-/merge_requests/11 Bug: https://bugs.gentoo.org/695788 Package-Manager: Portage-3.0.28, Repoman-3.0.3 Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org> kde-frameworks/networkmanager-qt/networkmanager-qt-5.88.0.ebuild | 8 +++++--- kde-frameworks/networkmanager-qt/networkmanager-qt-9999.ebuild | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) |