Bug 435561 - Header file <> header file location mismatch
Summary: Header file <> header file location mismatch
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: WebKit
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Peter Gordon
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 435562
TreeView+ depends on / blocked
 
Reported: 2008-03-01 18:21 UTC by Mamoru TASAKA
Modified: 2008-03-05 04:22 UTC (History)
1 user (show)

Fixed In Version: 1.0.0-0.6.svn30667
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2008-03-05 04:22:23 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Mamoru TASAKA 2008-03-01 18:21:16 UTC
Description of problem:
[tasaka1@localhost trunk-build]$ rpm -ql WebKit-gtk-devel | xargs grep 'include
' | grep webkit/
/usr/include/WebKit/webkit.h:#include <webkit/webkitdefines.h>
/usr/include/WebKit/webkit.h:#include <webkit/webkitnetworkrequest.h>
/usr/include/WebKit/webkit.h:#include <webkit/webkitwebframe.h>
/usr/include/WebKit/webkit.h:#include <webkit/webkitwebsettings.h>
/usr/include/WebKit/webkit.h:#include <webkit/webkitwebview.h>
/usr/include/WebKit/webkit.h:#include <webkit/webkitwebbackforwardlist.h>
/usr/include/WebKit/webkit.h:#include <webkit/webkitwebhistoryitem.h>
/usr/include/WebKit/webkitnetworkrequest.h:#include <webkit/webkitdefines.h>
/usr/include/WebKit/webkitwebbackforwardlist.h:#include <webkit/webkitdefines.h>
/usr/include/WebKit/webkitwebbackforwardlist.h:#include
<webkit/webkitwebhistoryitem.h>
/usr/include/WebKit/webkitwebframe.h:#include <webkit/webkitdefines.h>
/usr/include/WebKit/webkitwebframe.h:#include <webkit/webkitnetworkrequest.h>
/usr/include/WebKit/webkitwebhistoryitem.h:#include <webkit/webkitdefines.h>
/usr/include/WebKit/webkitwebsettings.h:#include <webkit/webkitdefines.h>
/usr/include/WebKit/webkitwebview.h:#include <webkit/webkitdefines.h>
/usr/include/WebKit/webkitwebview.h:#include <webkit/webkitwebbackforwardlist.h>
/usr/include/WebKit/webkitwebview.h:#include <webkit/webkitwebhistoryitem.h>
/usr/include/WebKit/webkitwebview.h:#include <webkit/webkitwebsettings.h>

But these header files shown in #include macros are
actually installed under /usr/include/WebKit, not /usr/include/webkit.

This mismatch causes errors like below:
------------------------------------------------------------
/usr/include/WebKit/webkit.h:23:34: error: webkit/webkitdefines.h: No such file
or directory
/usr/include/WebKit/webkit.h:24:41: error: webkit/webkitnetworkrequest.h: No
such file or directory
/usr/include/WebKit/webkit.h:25:35: error: webkit/webkitwebframe.h: No such file
or directory
/usr/include/WebKit/webkit.h:26:38: error: webkit/webkitwebsettings.h: No such
file or directory
/usr/include/WebKit/webkit.h:27:34: error: webkit/webkitwebview.h: No such file
or directory
/usr/include/WebKit/webkit.h:28:45: error: webkit/webkitwebbackforwardlist.h: No
such file or directory
/usr/include/WebKit/webkit.h:29:41: error: webkit/webkitwebhistoryitem.h: No
such file or directory
-----------------------------------------------------------

Version-Release number of selected component (if applicable):
WebKit-gtk-devel-1.0.0-0.5.svn30667.fc9

How reproducible:
100%

Steps to Reproduce:
1. See above
2.
3.

Comment 1 Peter Gordon 2008-03-01 19:27:35 UTC
Hmm. The pkgconfig files reference the include directory as "WebKit" so I'll
have to patch those headers a bit. I'll get to this after some food. :)

Thanks for the bug report!

Comment 2 Peter Gordon 2008-03-02 10:22:36 UTC
I believe this is fixed with tomorrow's Rawhide (1.0.0-0.6.svn30667.fc9). Please
re-open this bug with further details if the issue persists. Thanks.

Comment 3 Erik van Pienbroek 2008-03-02 14:17:26 UTC
On Gentoo they are using svn 30468 of WebKit and the package is build using the
plain old ./configure method (no qmake) without any additional scripting (only
the GTK part is build).

The resulting files from this build differ from what's now in Fedora. First of
all, the pkgconfig file, /usr/lib/pkgconfig/WebKitGtk.pc doesn't exist, but a
new file, named /usr/lib/pkgconfig/webkit-1.0.pc is.

The contents of this file are :

--

prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: WebKit
Description: Web content engine for GTK+ applications
Version: 0.1
Requires: gtk+-2.0
Libs: -L${libdir} -lWebKitGtk
Cflags: -I${includedir}/WebKit

--

Also, The webkit*.h headers from the WebKit-gtk package are all placed in
/usr/include/WebKit/webkit, not in /usr/include/webkit :

$ls /usr/include/WebKit/webkit/
webkitdefines.h
webkit.h
webkitnetworkrequest.h
webkitwebbackforwardlist.h
webkitwebframe.h
webkitwebhistoryitem.h
webkitwebsettings.h
webkitwebview.h

This makes it difficult for developers which want to use WebKit to develop
software as there are differences between the distro's.

Maybe it would be better if you could ask upstream which direction they want to
go with the naming and placement of the pkgconfig file and the headers, so all
the distro's can adapt to the same layout.

Comment 4 Peter Gordon 2008-03-05 04:22:23 UTC
(In reply to comment #3)
> On Gentoo they are using svn 30468 of WebKit and the package is build using the
> plain old ./configure method (no qmake) without any additional scripting (only
> the GTK part is build).
In Fedora's build, both the Qt *and* GTK+ ports are built, so this qmake
invoking is necessary. 

> The resulting files from this build differ from what's now in Fedora. First of
> all, the pkgconfig file, /usr/lib/pkgconfig/WebKitGtk.pc doesn't exist, but a
> new file, named /usr/lib/pkgconfig/webkit-1.0.pc is.
> 
> The contents of this file are :
> [...]
This file rename is due to the use of autotools instead of qmake. Thus, since
Gentoo uses autotools (and builds only the GTK+ port), the pkgconfig file is
changed.

> Also, The webkit*.h headers from the WebKit-gtk package are all placed in
> /usr/include/WebKit/webkit, not in /usr/include/webkit :
> [...]
> This makes it difficult for developers which want to use WebKit to develop
> software as there are differences between the distro's.
> 

The include directory should not matter. Anything that needs to build against it
should be calling pkg-config to find the headers location; and so long as the
pkgconfig data is correct, the build should succeed...in theory.

I have based my WebKit packaging on that of Debian/Ubuntu (which build both
ports, versus Gentoo's GTK-only build), so I believe it to be sufficiently
consistent in terms of cross-distro compatibility.

However, if this does pose a problem in the future, please let me know and I
will attempt to work with the upstream devs so that it can be resolved
appropriately. Thanks.


Note You need to log in before you can comment on or make changes to this bug.