Created attachment 591200 [details] build.log Earlier today I got an update from libffi-3.2.1 to libffi-3.3_rc0 which is the reason for the non-existant include path. kde-frameworks/networmanager-qt was not rebuilt automatically after libffi-update, it doesn't list libffi as a dependency. ===== ❯ emerge --info Portage 2.3.69 (python 3.6.5-final-0, default/linux/amd64/17.0/desktop, gcc-8.3.0, glibc-2.29-r2, 4.19.66-gentoo x86_64) ================================================================= System uname: Linux-4.19.66-gentoo-x86_64-Intel-R-_Core-TM-_i3-2350M_CPU_@_2.30GHz-with-gentoo-2.6 KiB Mem: 3877976 total, 453664 free KiB Swap: 5242876 total, 4945636 free Timestamp of repository gentoo: Sat, 28 Sep 2019 04:08:31 +0000 Head commit of repository gentoo: ce181dae4aba700a874804648f52d35787f4b15f sh bash 4.4_p23-r1 ld GNU ld (Gentoo 2.32 p2) 2.32.0 distcc 3.3.3 x86_64-pc-linux-gnu [enabled] app-shells/bash: 4.4_p23-r1::gentoo dev-java/java-config: 2.2.0-r4::gentoo dev-lang/perl: 5.28.2-r1::gentoo dev-lang/python: 2.7.15::gentoo, 3.6.5::gentoo dev-util/cmake: 3.14.6::gentoo dev-util/pkgconfig: 0.29.2::gentoo sys-apps/baselayout: 2.6-r1::gentoo sys-apps/openrc: 0.41.2::gentoo sys-apps/sandbox: 2.13::gentoo sys-devel/autoconf: 2.13-r1::gentoo, 2.69-r4::gentoo sys-devel/automake: 1.11.6-r3::gentoo, 1.12.6-r2::gentoo, 1.16.1-r1::gentoo sys-devel/binutils: 2.32-r1::gentoo sys-devel/gcc: 8.3.0-r1::gentoo sys-devel/gcc-config: 2.0::gentoo sys-devel/libtool: 2.4.6-r3::gentoo sys-devel/make: 4.2.1-r4::gentoo sys-kernel/linux-headers: 4.20::gentoo (virtual/os-headers) sys-libs/glibc: 2.29-r2::gentoo Repositories: gentoo location: /var/repositories/gentoo sync-type: git sync-uri: https://github.com/gentoo-mirror/gentoo priority: -1000 ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="*" CBUILD="x86_64-pc-linux-gnu" CC="clang" CFLAGS="-march=sandybridge -mno-aes -O2 -pipe -ggdb" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /lib/modules /usr/share/config /usr/share/gnupg/qualified.txt" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXX="clang++" CXXFLAGS="-march=sandybridge -mno-aes -O2 -pipe -ggdb" DISTDIR="/var/distfiles" EMERGE_DEFAULT_OPTS="--quiet-build y --quiet-fail y --dynamic-deps y" ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs config-protect-if-modified distcc distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned sandbox sfperms split-log splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="de_DE.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" LINGUAS="de de_DE" MAKEOPTS="-j4" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" PORTAGE_TMPDIR="/var/tmp" USE="X a52 aac acl acpi alsa amd64 apm berkdb branding bzip2 cairo cdda cdr cli crypt cups cxx dbus directfb dri dts dvd dvdr emboss encode exif fam ffmpeg flac fortran gdbm gif glamor gpm iconv icu infinality introspection ipv6 jpeg jpeg2k kipi lcdfilter lcms libtirpc linguas_de linguas_de_DE mad mmx mmxext mng mp3 mp4 mpeg multilib ncurses nls nptl ogg opengl openmp openrc pam pango pcre pdf png policykit ppds pulse pulseaudio readline sdl seccomp spell split-usr sse sse2 sse3 sse4 sse4_1 ssl ssse3 svg systemd tcpd theora threads tiff truetype udev udisks unicode upower usb vaapi vorbis vpx x264 xattr xcb xcomposite xml xscreensaver xv xvid zlib zsh-completion" ABI_X86="64" ADA_TARGET="gnat_2018" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="krita sheets stage words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="avx mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" ELIBC="glibc" ENLIGHTENMENT_MODULES="appmenu backlight battery bluez4 clock conf conf-applications conf-bindings conf-comp conf-dialogs conf-display conf-interaction conf-intl conf-menus conf-paths conf-performance conf-randr conf-shelves conf-theme conf-wallpaper2 conf-window-manipulation conf-window-remembers connman contact cpufreq everything fileman fileman-opinfo gadman ibar ibox lokker mixer msgbus music-control notification pager pager16 pager-plain quickaccess shot start syscon systray tasks teamwork temperature tiling winlist wizard xkbswitch wl-desktop-shell wl-drm wl-fb wl-text-input wl-wl wl-x11 xwayland lua_targets_51 lua_targets_53" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="wacom libinput" KERNEL="linux" L10N="de de-DE" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" NETBEANS_MODULES="apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-2" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_6" PYTHON_TARGETS="python2_7 python3_6" RUBY_TARGETS="ruby24 ruby25" SANE_BACKENDS="epson epson2" USERLAND="GNU" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
(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. ***
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 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(-)