Skip site navigation (1)Skip section navigation (2)
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>