Package: python-hid Version: 0.2.15+20060325-2.1 --- Please enter the report below this line. --- patch in attachment
this is a dirty patch, the include/assert.h shadow /usr/include/assert.h, so the complier can't find the assert symbol(Hmm, it's a macro). so I copy the /usr/include/assert.h to "include/assert2.h" and add "#include <assert2.h>" in the header. anyway, the patch in attachment does works. --- System information. --- Architecture: amd64 Kernel: Linux 2.6.26-1-amd64 Debian Release: lenny/sid 500 unstable 127.0.0.1 1 experimental 127.0.0.1 --- Package information. --- Depends (Version) | Installed ================================-+-============== python (<< 2.6) | 2.5.2-1 python (>= 2.5) | 2.5.2-1 python-support (>= 0.7.1) | 0.7.7 libc6 (>= 2.7-1) | 2.7-10 libhid0 | 0.2.15+20060325-2.1 libusb-0.1-4 (>= 2:0.1.12) | 2:0.1.12-13
diff --git a/include/assert2.h b/include/assert2.h new file mode 100644 index 0000000..8989713 --- /dev/null +++ b/include/assert2.h @@ -0,0 +1,118 @@ +/* Copyright (C) 1991,1992,1994-2001,2003,2004,2007 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +/* + * ISO C99 Standard: 7.2 Diagnostics <assert.h> + */ + +#ifdef _ASSERT_H + +# undef _ASSERT_H +# undef assert +# undef __ASSERT_VOID_CAST + +# ifdef __USE_GNU +# undef assert_perror +# endif + +#endif /* assert.h */ + +#define _ASSERT_H 1 +#include <features.h> + +#if defined __cplusplus && __GNUC_PREREQ (2,95) +# define __ASSERT_VOID_CAST static_cast<void> +#else +# define __ASSERT_VOID_CAST (void) +#endif + +/* void assert (int expression); + + If NDEBUG is defined, do nothing. + If not, and EXPRESSION is zero, print an error message and abort. */ + +#ifdef NDEBUG + +# define assert(expr) (__ASSERT_VOID_CAST (0)) + +/* void assert_perror (int errnum); + + If NDEBUG is defined, do nothing. If not, and ERRNUM is not zero, print an + error message with the error text for ERRNUM and abort. + (This is a GNU extension.) */ + +# ifdef __USE_GNU +# define assert_perror(errnum) (__ASSERT_VOID_CAST (0)) +# endif + +#else /* Not NDEBUG. */ + +#ifndef _ASSERT_H_DECLS +#define _ASSERT_H_DECLS +__BEGIN_DECLS + +/* This prints an "Assertion failed" message and aborts. */ +extern void __assert_fail (__const char *__assertion, __const char *__file, + unsigned int __line, __const char *__function) + __THROW __attribute__ ((__noreturn__)); + +/* Likewise, but prints the error text for ERRNUM. */ +extern void __assert_perror_fail (int __errnum, __const char *__file, + unsigned int __line, + __const char *__function) + __THROW __attribute__ ((__noreturn__)); + + +/* The following is not at all used here but needed for standard + compliance. */ +extern void __assert (const char *__assertion, const char *__file, int __line) + __THROW __attribute__ ((__noreturn__)); + + +__END_DECLS +#endif /* Not _ASSERT_H_DECLS */ + +# define assert(expr) \ + ((expr) \ + ? __ASSERT_VOID_CAST (0) \ + : __assert_fail (__STRING(expr), __FILE__, __LINE__, __ASSERT_FUNCTION)) + +# ifdef __USE_GNU +# define assert_perror(errnum) \ + (!(errnum) \ + ? __ASSERT_VOID_CAST (0) \ + : __assert_perror_fail ((errnum), __FILE__, __LINE__, __ASSERT_FUNCTION)) +# endif + +/* Version 2.4 and later of GCC define a magical variable `__PRETTY_FUNCTION__' + which contains the name of the function currently being defined. + This is broken in G++ before version 2.6. + C9x has a similar variable called __func__, but prefer the GCC one since + it demangles C++ function names. */ +# if defined __cplusplus ? __GNUC_PREREQ (2, 6) : __GNUC_PREREQ (2, 4) +# define __ASSERT_FUNCTION __PRETTY_FUNCTION__ +# else +# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L +# define __ASSERT_FUNCTION __func__ +# else +# define __ASSERT_FUNCTION ((__const char *) 0) +# endif +# endif + +#endif /* NDEBUG. */ diff --git a/swig/Makefile.in b/swig/Makefile.in index 67c8d8d..963689a 100644 --- a/swig/Makefile.in +++ b/swig/Makefile.in @@ -573,6 +573,7 @@ __init__.py: hid.py %.py %_wrap.c: %.i ../include/hid.h $(SWIG) $(SWIGFLAGS) $< echo '#include <compiler.h>' > tmp.c + echo '#include <assert2.h>' >> tmp.c sed -e 's/PyObject \*self/& UNUSED/' \ -e 's/int flags)/int flags UNUSED)/' < $(patsubst %.i,%_wrap.c,$<) >> tmp.c \ && mv tmp.c $(patsubst %.i,%_wrap.c,$<)