https://bugs.kde.org/show_bug.cgi?id=452633

            Bug ID: 452633
           Summary: Pkg-config file for KF5WaylandClient.pc is missing
                    KWayland module name or namespace in include path
           Product: frameworks-kwayland
           Version: 5.93.0
          Platform: Gentoo Packages
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: client
          Assignee: mgraess...@kde.org
          Reporter: russ...@obets.net
                CC: kwin-bugs-n...@kde.org
  Target Milestone: ---

SUMMARY
While trying to build gnupg pinentry, I found the pkg-config file for
KF5WaylandClient is pointing to ${prefix}/include/KF5 instead of
${prefix}/include/KF5/KWayland.

The header install path was updated in a recent commit:
https://invent.kde.org/frameworks/kwayland/-/commit/de442e4a94e249a29cf2e005db8e0a5e4a6a13ed

STEPS TO REPRODUCE
On Gentoo:
1. Install/update to kde-frameworks/kwayland-5.93.0 `emerge -1
=kde-frameworks/kwayland-5.93.0`

2. Attempt to install or update app-crypt/pinentry-1.2.0 `emerge -1
=app-crypt/pinentry-1.2.0`. This fails with error:
```x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I..   -I.. -I../secmem
-I/usr/include/ncursesw -I../pinentry -Wall -I/usr/include/KF5 -DQT_GUI_LIB
-I/usr/include/qt5/QtGui -I/usr/include/qt5 -DQT_CORE_LIB
-I/usr/include/qt5/QtCore   -I/usr/include/qt5/QtCore -I/usr/include/qt5
-I/usr/include/qt5/QtGui -DQT_WIDGETS_LIB -I/usr/include/qt5/QtWidgets
-DQT_GUI_LIB -DQT_CORE_LIB  -fpic -std=c++11 -DQT_X11EXTRAS_LIB
-I/usr/include/qt5/QtX11Extras -I/usr/include/qt5 -I/usr/include/qt5/QtCore
-DQT_GUI_LIB -I/usr/include/qt5/QtGui -DQT_CORE_LIB  -fpic -O2 -march=skylake
-mtune=skylake -falign-functions=32 -O3 -fgraphite-identity
-floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta
-fno-semantic-interposition -flto=auto -fuse-linker-plugin -pipe -O2 -pipe
-Wl,-O1 -Wl,--as-needed -std=gnu++11 -c -o capslock_unix.o capslock_unix.cpp
capslock_unix.cpp:29:11: fatal error: KWayland/Client/connection_thread.h: No
such file or directory
   29 | # include <KWayland/Client/connection_thread.h>
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```

3. Check pkg-config data for KF5WaylandClient `pkg-config --cflags
KF5WaylandClient`


OBSERVED RESULT
Include path for KF5WaylandClient is /usr/include/KF5
```
# pkg-config --cflags KF5WaylandClient
-I/usr/include/KF5 -DQT_GUI_LIB -I/usr/include/qt5/QtGui -I/usr/include/qt5
-DQT_CORE_LIB -I/usr/include/qt5/QtCore 
```


EXPECTED RESULT
Expect include path to be /usr/include/KF5/KWayland/
```
# ls /usr/include/KF5/KWayland/
KWayland  kwayland_version.h  Server
```

BluezQt with a similar directory structure provides an include path of
/usr/include/KF5/BluezQt.
```
# ls /usr/include/KF5/BluezQt/
bluezqt  BluezQt  bluezqt_version.h

 # pkg-config --cflags KF5BluezQt 
-I/usr/include/KF5/BluezQt/ -I/usr/include/qt5/QtCore -I/usr/include/qt5
-DQT_NETWORK_LIB -I/usr/include/qt5/QtNetwork -DQT_DBUS_LIB
-I/usr/include/qt5/QtDBus -DQT_CORE_LIB 
```

SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma:  Plasma 5.24.4 on Gentoo ~x86_64
(available in About System)
KDE Plasma Version: 5.24.4
KDE Frameworks Version: 5.93.0
Qt Version: 5.15.3

ADDITIONAL INFORMATION
Looks like even build prep is enough to see the resulting pkg-config file.

```
 russell@russell-blade ~/git/kwayland/build  master $ git show --oneline -s
f565454 (HEAD -> master, origin/master, origin/HEAD) [plasmawindowmanagement]
Add resourceName
 russell@russell-blade ~/git/kwayland/build  master $ cmake ..
...
 russell@russell-blade ~/git/kwayland/build  master $ cat KF5WaylandClient.pc 

prefix=/usr
exec_prefix=${prefix}
libdir=${prefix}/lib64
includedir=${prefix}/include/KF5

Name: KF5WaylandClient
Description: Qt-style API to interact with the wayland-client and
wayland-server API
URL: https://www.kde.org/
Version: 5.94.0
Libs: -L${prefix}/lib64 -lKF5WaylandClient
Cflags: -I${prefix}/include/KF5 
Requires: Qt5Gui
```

cmake_install.cmake shows the install path as
"${CMAKE_INSTALL_PREFIX}/include/KF5/KWayland"
```
if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xDevelx" OR NOT
CMAKE_INSTALL_COMPONENT)
  file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/KF5/KWayland" TYPE
FILE FILES "/home/russell/git/kwayland/build/kwayland_version.h")
endif()
```

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to