Package: freeglut
Severity: important
Tags: patch
Hi,
freeglut fails to build on GNU/kfreeBSD due to some missing checks for
this platform in the source code. Please find attached a patch to do
that. It would be nice if you could add it in the next upload.
Thanks in advance,
Aurelien
-- System Information:
Debian Release: testing/unstable
Architecture: kfreebsd-i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: GNU/kFreeBSD 5.4-1-686
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Status: in BTS
Author: aurel32
diff -u freeglut-2.4.0/debian/control freeglut-2.4.0/debian/control
--- freeglut-2.4.0/debian/control
+++ freeglut-2.4.0/debian/control
@@ -2,7 +2,7 @@
Section: graphics
Priority: optional
Maintainer: Jamie Wilkinson <[EMAIL PROTECTED]>
-Build-Depends: debhelper (>= 4.0.0), libx11-dev, libxt-dev, libxext-dev, xlibmesa-gl-dev | mesag-dev | libgl-dev, libglu1-xorg-dev | xlibmesa-glu-dev | libglu-dev, automake1.8, autoconf, libtool
+Build-Depends: debhelper (>= 4.0.0), libx11-dev, libxt-dev, libxext-dev, xlibmesa-gl-dev | mesag-dev | libgl-dev, libglu1-xorg-dev | xlibmesa-glu-dev | libglu-dev, libusbhid-dev [kfreebsd-i386], automake1.8, autoconf, libtool
Standards-Version: 3.6.1
Package: freeglut3
--- freeglut-2.4.0.orig/src/Makefile.am
+++ freeglut-2.4.0/src/Makefile.am
@@ -41,7 +41,7 @@
#
# Additional linker flags
#
[EMAIL PROTECTED]@_la_LIBADD = $(LIBM) $(X_LIBS) -lGL -lGLU -lXext -lX11 $(LIBXXF86VM)
[EMAIL PROTECTED]@_la_LIBADD = $(LIBM) $(X_LIBS) -lGL -lGLU -lXext -lX11 $(LIBXXF86VM) $(LIBUSBHID)
[EMAIL PROTECTED]@_la_LDFLAGS = -version-info 11:0:8
[EMAIL PROTECTED]@_la_CFLAGS = $(X_CFLAGS)
--- freeglut-2.4.0.orig/src/freeglut_joystick.c
+++ freeglut-2.4.0/src/freeglut_joystick.c
@@ -76,11 +76,11 @@
# include <fcntl.h>
# endif
# include <errno.h>
-# if defined(__FreeBSD__) || defined(__NetBSD__)
+# if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
/* XXX The below hack is done until freeglut's autoconf is updated. */
# define HAVE_USB_JS 1
-# if defined(__FreeBSD__) && __FreeBSD_version >= 500000
+# if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) && (__FreeBSD_version >= 500000 || __FreeBSD_kernel_version >= 500000)
# include <sys/joystick.h>
# else
/*
@@ -131,7 +131,7 @@
/* BSD defines from "jsBSD.cxx" around lines 42-270 */
-#if defined(__NetBSD__) || defined(__FreeBSD__)
+#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
# ifdef HAVE_USB_JS
# if defined(__NetBSD__)
@@ -142,13 +142,11 @@
# else
# include <usb.h>
# endif
-# elif defined(__FreeBSD__)
-# if __FreeBSD_version < 500000
-# include <libusbhid.h>
-# else
-/* XXX The below hack is done until freeglut's autoconf is updated. */
-# define HAVE_USBHID_H 1
+# elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+# ifdef HAVE_USBHID_H
# include <usbhid.h>
+# else
+# include <libusbhid.h>
# endif
# endif
# include <dev/usb/usb.h>
@@ -393,7 +391,7 @@
#if TARGET_HOST_UNIX_X11
-# if defined(__FreeBSD__) || defined(__NetBSD__)
+# if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
struct os_specific_s *os;
# endif
@@ -461,7 +459,7 @@
int status;
#endif
-#if defined(__FreeBSD__) || defined(__NetBSD__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
int len;
#endif
@@ -598,7 +596,7 @@
#endif
#if TARGET_HOST_UNIX_X11
-# if defined(__FreeBSD__) || defined(__NetBSD__)
+# if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
if ( joy->os->is_analog )
{
int status = read ( joy->os->fd, &joy->os->ajs, sizeof(joy->os->ajs) );
@@ -656,9 +654,9 @@
if (usage > 0 && usage < _JS_MAX_BUTTONS + 1)
{
if (d)
- joy->os->cache_buttons |= (1 << usage - 1);
+ joy->os->cache_buttons |= (1 << (usage - 1));
else
- joy->os->cache_buttons &= ~(1 << usage - 1);
+ joy->os->cache_buttons &= ~(1 << (usage - 1));
}
}
}
@@ -744,7 +742,7 @@
}
if ( buttons )
-# if defined( __FreeBSD__ ) || defined( __NetBSD__ )
+# if defined( __FreeBSD__ ) || defined(__FreeBSD_kernel__) || defined( __NetBSD__ )
*buttons = ( joy->js.b1 ? 1 : 0 ) | ( joy->js.b2 ? 2 : 0 ); /* XXX Should not be here -- BSD is handled earlier */
# else
*buttons = joy->js.buttons;
@@ -1054,12 +1052,12 @@
CFTypeRef topLevelElement;
#endif
#if TARGET_HOST_UNIX_X11
-# if defined( __FreeBSD__ ) || defined( __NetBSD__ )
+# if defined( __FreeBSD__ ) || defined(__FreeBSD_kernel__) || defined( __NetBSD__ )
char *cp;
# endif
# ifdef JS_NEW
unsigned char u;
-# else
+# elif defined(__linux__)
int counter;
# endif
#endif
@@ -1285,7 +1283,7 @@
#endif
#if TARGET_HOST_UNIX_X11
-#if defined( __FreeBSD__ ) || defined( __NetBSD__ )
+#if defined( __FreeBSD__ ) || defined(__FreeBSD_kernel__) || defined( __NetBSD__ )
for( i = 0; i < _JS_MAX_AXES; i++ )
joy->os->cache_axes[ i ] = 0.0f;
@@ -1549,7 +1547,7 @@
#endif
#if TARGET_HOST_UNIX_X11
-# if defined( __FreeBSD__ ) || defined( __NetBSD__ )
+# if defined( __FreeBSD__ ) || defined(__FreeBSD_kernel__) || defined( __NetBSD__ )
fgJoystick[ ident ]->id = ident;
fgJoystick[ ident ]->error = GL_FALSE;
@@ -1619,7 +1617,7 @@
#endif
#if TARGET_HOST_UNIX_X11
-#if defined( __FreeBSD__ ) || defined( __NetBSD__ )
+#if defined( __FreeBSD__ ) || defined(__FreeBSD_kernel__) || defined( __NetBSD__ )
if( fgJoystick[ident]->os )
{
if( ! fgJoystick[ ident ]->error )
only in patch2:
unchanged:
--- freeglut-2.4.0.orig/configure.ac
+++ freeglut-2.4.0/configure.ac
@@ -24,9 +24,13 @@
[$X_LIBS -lXext -lX11])
AC_SUBST([LIBXXF86VM])
+AC_CHECK_LIB([usbhid], [hid_init],
+ [LIBUSBHID=-lusbhid], [LIBUSBHID=])
+AC_SUBST(LIBUSBHID)
+
# Checks for header files.
AC_HEADER_STDC
-AC_CHECK_HEADERS([GL/gl.h GL/glu.h GL/glx.h fcntl.h limits.h sys/ioctl.h sys/param.h sys/time.h])
+AC_CHECK_HEADERS([GL/gl.h GL/glu.h GL/glx.h fcntl.h limits.h sys/ioctl.h sys/param.h sys/time.h usbhid.h libusbhid.h])
AC_HEADER_TIME
save_CFLAGS="$CFLAGS"