Date: Sun, 12 Jun 2005 21:31:50 +0200 From: "Björn König" <bkoenig@cs.tu-berlin.de> To: FreeBSD-gnats-submit@FreeBSD.org Cc: krion@FreeBSD.org Subject: ports/82171: Port devel/sdl12: libSDL-1.1 is broken in a world with NO_USB Message-ID: <20050612193147.1D4B8123939@mail.efacilitas.de> Resent-Message-ID: <200506121940.j5CJeCAb095441@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 82171 >Category: ports >Synopsis: Port devel/sdl12: libSDL-1.1 is broken in a world with NO_USB >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Sun Jun 12 19:40:11 GMT 2005 >Closed-Date: >Last-Modified: >Originator: Björn König >Release: FreeBSD 5.4-RELEASE-p1 i386 >Organization: >Environment: >Description: If you have a world which was built with NO_USB=yes then libusbhid.so doesn't exist. The current Makefile of the port devel/sdl12 just assumes that the old libusb.so is present and trusts in the correctness of the configure script; but it'll screw up and won't specify any joystick subsystem in this case; not even the dummy. This breaks libSDL-1.1 and causes that all ports that depend on this library won't compile. You'll get the following errors if you try to link with libSDL-1.1: libSDL-1.1.so: undefined reference to `SDL_SYS_JoystickUpdate' libSDL-1.1.so: undefined reference to `SDL_SYS_JoystickOpen' libSDL-1.1.so: undefined reference to `SDL_SYS_JoystickQuit' libSDL-1.1.so: undefined reference to `SDL_SYS_JoystickName' libSDL-1.1.so: undefined reference to `SDL_SYS_JoystickInit' libSDL-1.1.so: undefined reference to `SDL_SYS_JoystickClose' >How-To-Repeat: Rename usbhid.h to pretend that we live in a world with NO_USB. cd /usr/include mv usbhid.h usbhid.h.bak Build and install devel/sdl12. cd /usr/ports/devel/sdl12i make install clean Try to build a port that depends on devel/sdl12. cd /usr/ports/x11/electricsheep make build This will fail with the error messages that were mentioned in the description section of this PR. >Fix: The devel/sdl12 port should make a more accurate check whether USB related libraries are available. If they aren't then disable support for joysticks. Another solution would be to use the dummy joystick subsystem, but I was too lazy to create a suitable patch right now. I'll do this if desired. --- Makefile.diff begins here --- --- Makefile.orig Sun Jun 12 19:51:09 2005 +++ Makefile Sun Jun 12 19:52:01 2005 @@ -71,8 +71,10 @@ .if exists(/usr/include/libusbhid.h) CONFIGURE_ENV+= USB_LIBS=-lusbhid CFLAGS+= -DHAVE_LIBUSBHID_H -.else +.elif exists(/usr/include/libusb.h) CONFIGURE_ENV+= USB_LIBS=-lusb +.else +CONFIGURE_ARGS+=--enable-joystick=no .endif MAN3!= ${CAT} ${FILESDIR}/man3 --- Makefile.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050612193147.1D4B8123939>