ports/187260: x11-toolkits/qt5-gui Compile error: linux/kd.h not found
Martin Tournoij
martin at arp242.net
Tue Mar 4 17:30:00 UTC 2014
>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 at 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:
More information about the freebsd-ports-bugs
mailing list