<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>231369</bug_id>
          
          <creation_ts>2021-10-07 09:44:13 -0700</creation_ts>
          <short_desc>[WPE] QtWPE API has undeclared dependency on qpa/qplatformnativeinterface.h</short_desc>
          <delta_ts>2026-01-21 01:19:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WPE WebKit</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aperez</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>dpino</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1801633</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-10-07 09:44:13 -0700</bug_when>
    <thetext>I&apos;ve failed to figure out how to build the QtWPE API:

/home/mcatanzaro/Projects/WebKit/Source/WebKit/UIProcess/API/wpe/qt/WPEQtView.cpp:33:10: fatal error: qpa/qplatformnativeinterface.h: No such file or directory
   33 | #include &lt;qpa/qplatformnativeinterface.h&gt;
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

Not sure which Qt devel package on Fedora provides this. It appears to be a private header that&apos;s not part of the public API?

Anyway, there is a WebKit bug here: OptionsWPE.cmake should detect all requirements and fail during the cmake stage if something is missing, rather than waiting until later to fail during compilation. Currently OptionsWPE.cmake does this:

if (ENABLE_WPE_QT_API)
    find_package(Qt5 REQUIRED COMPONENTS Core Quick Gui)
    find_package(Qt5Test REQUIRED)
endif ()

Something must be missing from here. Not sure what.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815021</commentid>
    <comment_count>1</comment_count>
    <who name="Diego Pino">dpino</who>
    <bug_when>2021-11-15 04:47:45 -0800</bug_when>
    <thetext>In Debian/Ubuntu, qplatformnativeinterface.h is provided by qtbase5-private-dev

```
$ apt-file search qplatformnativeinterface.h
qtbase5-private-dev: /usr/include/x86_64-linux-gnu/qt5/QtGui/5.15.2/QtGui/qpa/qplatformnativeinterface.h
```

In Fedora, the header is provided by the same package but the location it seems to be different:

/usr/include/qt5/QtGui/5.15.1/QtGui/qpa/qplatformnativeinterface.h

https://fedora.pkgs.org/33/fedora-x86_64/qt5-qtbase-private-devel-5.15.1-5.fc33.x86_64.rpm.html

I think there&apos;s nothing wrong with the required components in OptionsWPE.cmake as this file seems to be provided by Qt5Gui in both cases.

I think the problem may lay in ${Qt5Gui_PRIVATE_INCLUDE_DIRS} (https://webkit-search.igalia.com/webkit/source/Source/WebKit/PlatformWPE.cmake#456). Perhaps it&apos;s not pointing to the right location of the headers in the case of Fedora?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815048</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-11-15 06:40:12 -0800</bug_when>
    <thetext>(In reply to Diego Pino from comment #1)
&gt; I think there&apos;s nothing wrong with the required components in
&gt; OptionsWPE.cmake as this file seems to be provided by Qt5Gui in both cases.

I don&apos;t agree, it&apos;s not checking for qt5-qtbase-private-devel at all. Proof: if I install qt5-qtbase-gui-devel but not qt5-qtbase-private-devel, the cmake stage succeeds even though the required package is not installed. So the cmake checks are insufficient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2173591</commentid>
    <comment_count>3</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2026-01-21 01:19:08 -0800</bug_when>
    <thetext>I suppose this is not an issue anymore with the Qt6 bindings? We have removed the Qt5 ones (see #305602), and for the Qt6 ones, we have an additional:

  target_link_libraries(qtwpe PRIVATE Qt::QuickPrivate)

We did not have something like that for the Qt5 code, and now the Qt6 one is using imported targets in CMake, and I expect the imported targets pull-in all needed flags for dependencies correctly.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>