Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 4 Mar 2014 17:21:12 GMT
From:      Martin Tournoij <martin@arp242.net>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/187260: x11-toolkits/qt5-gui Compile error: linux/kd.h not found
Message-ID:  <201403041721.s24HLCOZ095548@cgiserv.freebsd.org>
Resent-Message-ID: <201403041730.s24HU07u004914@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         187260
>Category:       ports
>Synopsis:       x11-toolkits/qt5-gui Compile error: linux/kd.h not found
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Mar 04 17:30:00 UTC 2014
>Closed-Date:
>Last-Modified:
>Originator:     Martin Tournoij
>Release:        9.2
>Organization:
>Environment:
FreeBSD rincewind.arp242.net 9.2-RELEASE-p3 FreeBSD 9.2-RELEASE-p3 #0: Sat Jan 11 03:25:02 UTC 2014     root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  amd64

>Description:
x11-toolkits/qt5-gui fails to build with the error:

input/evdevmouse/qevdevmousehandler.cpp:56:10: fatal error: 'linux/kd.h' file not found
#include <linux/kd.h>

I fixed this by replacing the header with <sys/kbio.h>, I lifted this solution from graphics/svgalib, which I found after a little grepping.

Then I get this error:

clang++ -Wl,--no-undefined -Wl,-O1 -pthread -Wl,-rpath,/usr/local/lib -shared -o libqxcb.so .obj/qxcbclipboard.o  .obj/qxcbconnection.o  .obj/qxcbintegration.o  .obj/qxcbkeyboard.o  .obj/qxcbmime.o  .obj/qxcbdrag.o  .obj/qxcbscreen.o  .obj/qxcbwindow.o  .obj/qxcbbackingstore.o  .obj/qxcbwmsupport.o  .obj/main.o  .obj/qxcbnativeinterface.o  .obj/qxcbcursor.o  .obj/qxcbimage.o  .obj/qxcbxsettings.o  .obj/qxcbsystemtraytracker.o  .obj/qxcbconnection_xi2.o  .obj/qxcbsessionmanager.o  .obj/qglxintegration.o  .obj/moc_qxcbconnection.o  .obj/moc_qxcbmime.o  .obj/moc_qxcbnativeinterface.o  .obj/moc_qxcbsystemtraytracker.o  -L/usr/local/lib -lX11-xcb -lXi -lxcb-render-util -lSM -lICE -lxcb-glx -lxcb-render -ldbus-1 -lxcb -lxcb-image -lxcb-icccm -lxcb-sync -lxcb-xfixes -lxcb-shm -lxcb-randr -lxcb-shape -lxcb-keysyms -lxkbcommon -L/usr/obj/usr/ports/x11-toolkits/qt5-gui/work/qtbase-opensource-src-5.2.1/lib -lQt5PlatformSupport -lfontconfig -lfreetype -lgthread-2.0 -pthread -lglib-2.0 -lintl -lX
 render -lXext -lX11 -lm -lQt5DBus -lQt5Gui -lQt5Core -lGL 
.obj/qxcbconnection.o: In function `QXcbConnection::initializeXKB()':
qxcbconnection.cpp:(.text+0x1d3a): undefined reference to `xcb_xkb_id'
qxcbconnection.cpp:(.text+0x1d70): undefined reference to `xcb_xkb_use_extension'
qxcbconnection.cpp:(.text+0x1d7c): undefined reference to `xcb_xkb_use_extension_reply'
qxcbconnection.cpp:(.text+0x1dd2): undefined reference to `xcb_xkb_select_events_checked'
.obj/qxcbconnection.o:(.data.rel.ro+0x28): undefined reference to `xcb_xkb_id'
.obj/qxcbkeyboard.o: In function `QXcbKeyboard::updateKeymap()':
qxcbkeyboard.cpp:(.text+0x388): undefined reference to `xcb_xkb_get_state'
qxcbkeyboard.cpp:(.text+0x394): undefined reference to `xcb_xkb_get_state_reply'
.obj/qxcbkeyboard.o: In function `QXcbKeyboard::QXcbKeyboard(QXcbConnection*)':
qxcbkeyboard.cpp:(.text+0xd3b): undefined reference to `xcb_xkb_get_device_info'
qxcbkeyboard.cpp:(.text+0xd4b): undefined reference to `xcb_xkb_get_device_info_reply'
.obj/qxcbkeyboard.o: In function `QXcbKeyboard::updateVModMapping()':
qxcbkeyboard.cpp:(.text+0xde9): undefined reference to `xcb_xkb_get_names'
qxcbkeyboard.cpp:(.text+0xdf9): undefined reference to `xcb_xkb_get_names_reply'
qxcbkeyboard.cpp:(.text+0xe0d): undefined reference to `xcb_xkb_get_names_value_list'
qxcbkeyboard.cpp:(.text+0xe52): undefined reference to `xcb_xkb_get_names_value_list_unpack'
.obj/qxcbkeyboard.o: In function `QXcbKeyboard::updateVModToRModMapping()':
qxcbkeyboard.cpp:(.text+0x10e6): undefined reference to `xcb_xkb_get_map'
qxcbkeyboard.cpp:(.text+0x10f6): undefined reference to `xcb_xkb_get_map_reply'
qxcbkeyboard.cpp:(.text+0x110a): undefined reference to `xcb_xkb_get_map_map'
qxcbkeyboard.cpp:(.text+0x1168): undefined reference to `xcb_xkb_get_map_map_unpack'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)


This seems to be defined in /usr/local/include/xcb/xkb.h, which is part of x11/libxcb; I have the latest version installed (1.9.3).

I fixed this by adding:
-lxcb-xkb
to /src/plugins/platforms/xcb/Makefile.xcb-plugin in the LIBS variable

After this, build & install seem to work okay.

Sorry for not providing a patch to fix this in the port. :-( I have a number of other things I *really* need to get done, and it's been ages since I did anything serious with the port system & CMake...
>How-To-Repeat:

>Fix:


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201403041721.s24HLCOZ095548>