Package: nyquist
Version: 2.29-6
Severity: important
Tags: patch

Hi,

currently your package FTBFS on GNU/kFreeBSD with the following error:
> cc -c xlisp/xlfio.c -o xlisp/xlfio.o -DREADLINE -DCMTSTUFF -O2 -Inyqsrc 
> -Itran -Ixlisp -Isys/unix -Icmt -Isnd -Ifft
> xlisp/xlfio.c:12: error: expected '=', ',', ';', 'asm' or '__attribute__' 
> before 'error'
> xlisp/xlfio.c: In function 'xgetstroutput':
> xlisp/xlfio.c:581: warning: return makes pointer from integer without a cast
> xlisp/xlfio.c: In function 'xformat':
> xlisp/xlfio.c:657: warning: assignment makes pointer from integer without a 
> cast
> xlisp/xlfio.c: At top level:
> xlisp/xlfio.c:664: error: conflicting types for 'getstroutput'
> xlisp/xlfio.c:581: error: previous implicit declaration of 'getstroutput' was 
> here
> make[1]: *** [xlisp/xlfio.o] Error 1

Full build logs are available at
<http://experimental.ftbfs.de/build.php?arch=kfreebsd-i386&pkg=nyquist>.

Please find attached a patch to add support for GNU/kFreeBSD and which allows
your package to build fine on this platform. Please also note that I added two
"#error" since having plaintext warning/error instead of proper information
isn't that clean (and even quite dirty, IMVHO of course).

Cheers,

-- 
Cyril Brulebois
--- nyquist-2.29/snd/sndconfig.h	2002-11-21 14:15:14.000000000 +0100
+++ nyquist-2.29/snd/sndconfig.h	2007-03-16 05:36:17.000000000 +0100
@@ -60,7 +60,7 @@
 #elif defined(IRIX)
   #include "sndirix.h"
 
-#elif defined(__FreeBSD__)
+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
   #include "sndfreebsd.h"
 
 #elif defined(_WIN32)
--- nyquist-2.29/snd/sndcvt.c	2002-11-21 14:15:14.000000000 +0100
+++ nyquist-2.29/snd/sndcvt.c	2007-03-16 05:36:17.000000000 +0100
@@ -9,14 +9,14 @@
 #endif /* mips */
 #include "snd.h"
 #include "stdio.h"
-#ifdef LINUX
+#if defined(LINUX) && !defined(__FreeBSD_kernel__)
 #include "sys/file.h"
 #else
 /* #include <unistd.h> */
 #ifdef WIN32
 #include <sys/stat.h>
 #include "io.h"
-#elif defined(__FreeBSD__)
+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
 #include <sys/stat.h>
 #else
 #include <stat.h>
--- nyquist-2.29/xlisp/xlfio.c	2002-11-21 14:15:17.000000000 +0100
+++ nyquist-2.29/xlisp/xlfio.c	2007-03-16 05:36:17.000000000 +0100
@@ -9,13 +9,12 @@
 /* do some sanity checking: */
 #ifndef XL_BIG_ENDIAN
 #ifndef XL_LITTLE_ENDIAN
-configuration error -- either XL_BIG_ or XL_LITTLE_ENDIAN must be defined
-in xlisp.h
+#error configuration error -- either XL_BIG_ or XL_LITTLE_ENDIAN must be defined in xlisp.h
 #endif
 #endif
 #ifdef XL_BIG_ENDIAN
 #ifdef XL_LITTLE_ENDIAN
-configuration error -- both XL_BIG_ and XL_LITTLE_ENDIAN are defined!
+#error configuration error -- both XL_BIG_ and XL_LITTLE_ENDIAN are defined!
 #endif
 #endif
 
--- nyquist-2.29/xlisp/xlisp.h	2007-03-16 05:35:24.000000000 +0100
+++ nyquist-2.29/xlisp/xlisp.h	2007-03-16 05:41:01.000000000 +0100
@@ -143,7 +143,7 @@
 #endif
 
 /* Linux on Pentium */
-#ifdef __linux__
+#if defined(__linux__) || defined(__GLIBC__)
 #include <endian.h>
 #if __BYTE_ORDER == __LITTLE_ENDIAN
 #define XL_LITTLE_ENDIAN
--- nyquist-2.29/snd/sndio.c	2002-11-21 14:15:14.000000000 +0100
+++ nyquist-2.29/snd/sndio.c	2007-03-16 05:36:17.000000000 +0100
@@ -20,7 +20,7 @@
 #ifdef WIN32
 #include <sys/stat.h>
 #include "io.h"
-#elif defined(__FreeBSD__)
+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
 #include <sys/stat.h>
 #else
 #include <stat.h>
--- nyquist-2.29/sys/unix/osstuff.c	2007-03-16 05:35:24.000000000 +0100
+++ nyquist-2.29/sys/unix/osstuff.c	2007-03-16 05:36:17.000000000 +0100
@@ -100,7 +100,7 @@
 /* oserror - print an error message */
 void oserror(char *msg) {printf("error: %s\n",msg);}
 
-#ifndef linux
+#if !defined(linux) && !defined(__GLIBC__)
 extern long	random();
 #ifndef srandom /* if it isn't a macro */
 extern		srandom();
--- nyquist-2.29/sys/unix/term.c	2002-11-21 14:15:16.000000000 +0100
+++ nyquist-2.29/sys/unix/term.c	2007-03-16 05:36:17.000000000 +0100
@@ -4,12 +4,19 @@
 /* Thanks to Dave Cook for rescuing it */
 
 #include <termios.h>
+#if defined(linux)
 #include <asm/ioctls.h>
+#endif
 #include <signal.h>
 #include <stdlib.h>
 #include <unistd.h>
 #include <stdio.h>
 
+#if defined(__FreeBSD_kernel__)
+#include <sys/filio.h>
+#endif
+
+
 /* This will be used for new terminal settings. */
 static struct termios current;
 

Reply via email to