ports/123684: [PATCH] audio/nas: update to 1.9.1

Dmitry Marakasov amdmi3 at amdmi3.ru
Wed May 14 19:50:01 UTC 2008


>Number:         123684
>Category:       ports
>Synopsis:       [PATCH] audio/nas: update to 1.9.1
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Wed May 14 19:50:00 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Dmitry Marakasov
>Release:        FreeBSD 7.0-RELEASE-p1 i386
>Organization:
>Environment:
System: FreeBSD hades.panopticon 7.0-RELEASE-p1 FreeBSD 7.0-RELEASE-p1 #0: Fri Apr 25 11:18:45 MSD 2008 root at hades.panopticon:/usr/obj/usr/src/sys/HADES i386


>Description:
* Update to 1.9.1 which is claimed to fix many race conditions and nasd segfaults (I experience those quite often with 1.8) (I haven't yet used new nasd for enough time to prove that)
* Use SF macro, USE_XORG (so this port should be ready to ports/122340) and make this port respect CC/CXX
* Adapt all old patches to the new code
>How-To-Repeat:
>Fix:

--- nas.patch begins here ---
diff -ruN nas.orig/Makefile nas/Makefile
--- nas.orig/Makefile	2008-05-12 20:34:15.000000000 +0400
+++ nas/Makefile	2008-05-14 23:41:07.000000000 +0400
@@ -6,18 +6,20 @@
 #
 
 PORTNAME=	nas
-PORTVERSION=	1.8
-PORTREVISION=	1
+PORTVERSION=	1.9.1
 CATEGORIES=	audio
-MASTER_SITES=	http://nas.codebrilliance.com/nas/
+MASTER_SITES=	SF
 EXTRACT_SUFX=	.src.tar.gz
 
 MAINTAINER=	multimedia at FreeBSD.org
 COMMENT=	Network Audio System
 
 USE_IMAKE=	yes
+USE_XORG=	x11 xext xt xau sm ice xp xpm xmu xaw
 USE_LDCONFIG=	yes
 MAKE_ENV+=	COMPRESS_CMD="${COMPRESS_CMD:S/c//}"
+MAKE_ARGS=	CC="${CC}" CXX="${CXX}"
+
 PKGMESSAGE=	${WRKDIR}/pkg-message
 SUB_FILES=	pkg-message
 
diff -ruN nas.orig/Makefile.man nas/Makefile.man
--- nas.orig/Makefile.man	2008-05-12 20:34:15.000000000 +0400
+++ nas/Makefile.man	2008-05-14 23:28:47.000000000 +0400
@@ -12,7 +12,6 @@
 	aurecord.1 \
 	auscope.1 \
 	autool.1 \
-	auvoxware.1 \
 	auwave.1 \
 	checkmail.1 \
 	issndfile.1 \
diff -ruN nas.orig/distinfo nas/distinfo
--- nas.orig/distinfo	2008-05-12 20:34:15.000000000 +0400
+++ nas/distinfo	2008-05-12 22:19:19.000000000 +0400
@@ -1,3 +1,3 @@
-MD5 (nas-1.8.src.tar.gz) = 7e5ecab75a48c75b0c6305fcced34a97
-SHA256 (nas-1.8.src.tar.gz) = e9b1e17f469c5db04f693c233886b78fce92fb48fe967976257eebadb09eb98d
-SIZE (nas-1.8.src.tar.gz) = 1290578
+MD5 (nas-1.9.1.src.tar.gz) = d975efefba50b985446bb2c2cb4ee91f
+SHA256 (nas-1.9.1.src.tar.gz) = df25cc35f119deb05e42b01b541d7cd2f47f14dffb787637756c2911d995308a
+SIZE (nas-1.9.1.src.tar.gz) = 1454523
diff -ruN nas.orig/files/patch-ab nas/files/patch-ab
--- nas.orig/files/patch-ab	2008-05-12 20:34:15.000000000 +0400
+++ nas/files/patch-ab	2008-05-14 22:41:03.000000000 +0400
@@ -1,5 +1,5 @@
---- server/dda/voxware/auvoxware.c.orig	Sat Oct 23 08:44:47 2004
-+++ server/dda/voxware/auvoxware.c	Mon Nov 15 21:13:49 2004
+--- server/dda/voxware/auvoxware.c.orig	2008-05-14 22:35:08.000000000 +0400
++++ server/dda/voxware/auvoxware.c	2008-05-14 22:40:32.000000000 +0400
 @@ -133,7 +133,7 @@
  
  #include <stdio.h>
@@ -9,7 +9,7 @@
  #include <getopt.h>
  #endif
  #include <sys/types.h>
-@@ -177,7 +177,9 @@
+@@ -183,7 +183,9 @@
  # else
  #  include <machine/soundcard.h>
  # endif
@@ -19,19 +19,19 @@
  #else
  # ifdef __NetBSD__
  #  include <sys/ioctl.h>
-@@ -670,7 +672,11 @@
-   if(sndStatOut.fd == -1)
-     {
-       while ((sndStatOut.fd = open(sndStatOut.device, 
+@@ -875,7 +877,11 @@
+         if (sndStatOut.fd == -1) {
+             while ((sndStatOut.fd = open(sndStatOut.device,
+                                          sndStatOut.
 +#if defined(__FreeBSD__)
-+                                   sndStatOut.howToOpen|extramode, 
++                                         howToOpen | extramode,
 +#else
-                                    sndStatOut.howToOpen|O_SYNC|extramode, 
+                                          howToOpen | O_SYNC | extramode,
 +#endif
-                                    0666)) == -1 && wait)
-         {
-           osLogMsg("openDevice: waiting on output device\n");
-@@ -1330,6 +1334,11 @@
+                                          0666)) == -1 && wait) {
+                 osLogMsg("openDevice: waiting on output device\n");
+                 sleep(1);
+@@ -1618,6 +1624,11 @@
  /*
   * Setup soundcard at maximum audio quality.
   */
@@ -40,18 +40,18 @@
 +#define NO_16_BIT_SAMPLING
 +#endif
 +
- static void setupSoundcard(sndStatPtr)
- SndStat* sndStatPtr;
+ static void
+ setupSoundcard(SndStat * sndStatPtr)
  {
-@@ -1571,7 +1580,11 @@
- 		   sndStatOut.device, sndStatOut.howToOpen);
- 	
- 	if ((fd = open(sndStatOut.device, 
+@@ -1880,7 +1891,11 @@
+                              sndStatOut.device, sndStatOut.howToOpen);
+ 
+                 if ((fd = open(sndStatOut.device,
 +#if defined(__FreeBSD__)
-+		       sndStatOut.howToOpen|extramode, 0)) == -1)
++                               sndStatOut.howToOpen | extramode,
 +#else
- 		       sndStatOut.howToOpen|O_SYNC|extramode, 0)) == -1)
+                                sndStatOut.howToOpen | O_SYNC | extramode,
 +#endif
- 	  {
- 	    UNIDENTMSG;
-             osLogMsg("Output open(%s) failed: %s\n",
+                                0)) == -1) {
+                     UNIDENTMSG;
+                     osLogMsg("Init: Output open(%s) failed: %s\n",
diff -ruN nas.orig/files/patch-clients_audio_auphone_auphone.c nas/files/patch-clients_audio_auphone_auphone.c
--- nas.orig/files/patch-clients_audio_auphone_auphone.c	2008-05-12 20:34:15.000000000 +0400
+++ nas/files/patch-clients_audio_auphone_auphone.c	2008-05-14 22:45:07.000000000 +0400
@@ -1,61 +1,72 @@
---- clients/audio/auphone/auphone.c	Sat Jul 20 21:13:30 2002
-+++ clients/audio/auphone/auphone.c	Mon Oct 10 11:32:46 2005
-@@ -28,4 +28,5 @@
+--- clients/audio/auphone/auphone.c.orig	2007-06-16 23:03:12.000000000 +0400
++++ clients/audio/auphone/auphone.c	2008-05-14 22:44:05.000000000 +0400
+@@ -27,6 +27,7 @@
+  * $NCDId: @(#)auphone.c,v 1.10 1996/05/07 20:13:12 greg Exp $
   */
  
 +#include <inttypes.h>
  #include <stdio.h>
  #include <stdlib.h>
-@@ -218,7 +219,7 @@
+ 
+@@ -219,13 +220,12 @@
+                *ringoutData,
                 *busyData;
  
 -static int
 +static intptr_t
- fatalError(message, arg)
--char           *message,
-+const char     *message,
-                *arg;
+ fatalError(const char *message, const char *arg)
  {
-@@ -226,5 +227,4 @@
+     fprintf(stderr, message, arg);
      fprintf(stderr, "\n");
      exit(1);
 -    return 0;
  }
  
-@@ -240,5 +240,5 @@
+ static void
+@@ -237,7 +237,7 @@
+     {
  	g->bufSize = e->num_bytes;
  
 -	if (!(g->buf = (char *) malloc(g->bufSize)))
 +	if (!(g->buf = malloc(g->bufSize)))
- 	    fatalError("malloc failed");
+ 	    fatalError("malloc failed", NULL);
      }
-@@ -252,6 +252,6 @@
+     else
+@@ -249,8 +249,8 @@
+ 
  	g->bufSize += e->num_bytes;
  
 -	if (!(g->buf = (char *) realloc(g->buf, g->bufSize)))
--	    fatalError("malloc failed");
+-	    fatalError("malloc failed", NULL);
 +	if (!(g->buf = realloc(g->buf, g->bufSize)))
-+	    fatalError("realloc failed");
++	    fatalError("remalloc failed", NULL);
      }
  
-@@ -918,5 +918,5 @@
+     n = AuReadElement(g->local.aud, e->flow, e->element_num, e->num_bytes,
+@@ -871,7 +871,7 @@
+ adjustVolume(Widget w, XtPointer gp, XtPointer volp)
  {
      GlobalDataPtr   g = (GlobalDataPtr)gp;
 -    int             vol = (int)volp;
 +    intptr_t        vol = (intptr_t)volp;
      AuElementParameters parms;
  
-@@ -940,5 +940,5 @@
+     if (!g->local.volFlow)
+@@ -890,7 +890,7 @@
+ adjustInputGain(Widget w, XtPointer gp, XtPointer gainp)
  {
      GlobalDataPtr   g = (GlobalDataPtr)gp;
 -    int             gain = (int)gainp;
 +    intptr_t        gain = (intptr_t)gainp;
      ServerPtr       l = &g->local;
      AuDeviceAttributes da;
-@@ -1129,5 +1129,5 @@
+ 
+@@ -1065,7 +1065,7 @@
+ 	if (!(s = SoundOpenFileForReading(ring)))
  	    fatalError("Can't open ring %s", ring);
  
 -	if (!(chunk = (char *) malloc(CHUNK_SIZE)))
 +	if (!(chunk = malloc(CHUNK_SIZE)))
- 	    fatalError("malloc failed");
+ 	    fatalError("malloc failed", NULL);
  
+ 	sprintf(buf, "%s %d", RINGIN, volume);
diff -ruN nas.orig/files/patch-server_dda_voxware_config.c nas/files/patch-server_dda_voxware_config.c
--- nas.orig/files/patch-server_dda_voxware_config.c	2008-05-12 20:34:15.000000000 +0400
+++ nas/files/patch-server_dda_voxware_config.c	2008-05-14 22:49:40.000000000 +0400
@@ -1,97 +1,133 @@
---- server/dda/voxware/config.c	Fri Jul 12 00:44:16 2002
-+++ server/dda/voxware/config.c	Mon Oct 10 10:25:22 2005
-@@ -6,4 +6,5 @@
+--- server/dda/voxware/config.c.orig	2007-06-16 23:03:22.000000000 +0400
++++ server/dda/voxware/config.c	2008-05-14 22:49:23.000000000 +0400
+@@ -5,6 +5,7 @@
+  */
  
  #include <fcntl.h>
 +#include <inttypes.h>
  #include "nasconf.h"
  #include "config.h"
-@@ -27,5 +28,5 @@
-     {
-     case CONF_SET_SECTION:
--      num = (int) value;
-+      num = (intptr_t) value;
+ #include "aulog.h"
+@@ -27,7 +28,7 @@
  
-       if (num == INPUTSECTION)
-@@ -40,10 +41,10 @@
+     switch (token) {
+     case CONF_SET_SECTION:
+-        num = (int) value;
++        num = (intptr_t) value;
  
-     case FORCERATE :
--      num = (int) value;
-+      num = (intptr_t) value;
-       confStat->forceRate = num ;
-       break;
- 
-     case GAIN :
--      num = (int) value;
-+      num = (intptr_t) value;
-       /* the default is 50, so if it's just out of range, don't
- 	 reset it */
-@@ -56,10 +57,10 @@
- 
-     case AUTOOPEN :
--      num = (int) value;
-+      num = (intptr_t) value;
-       confStat->autoOpen = num;
-       break;
- 
-     case READWRITE :
--      num = (int) value;
-+      num = (intptr_t) value;
-       if (confStat == &sndStatIn) {
- 	confStat->howToOpen = (num ? O_RDWR : O_RDONLY);
-@@ -85,5 +86,5 @@
+         if (num == INPUTSECTION) {      /* we're in the input section */
+             confStat = &sndStatIn;
+@@ -37,12 +38,12 @@
+         break;
+ 
+     case FORCERATE:
+-        num = (int) value;
++        num = (intptr_t) value;
+         confStat->forceRate = num;
+         break;
+ 
+     case GAINSCALE:
+-        num = (int) value;
++        num = (intptr_t) value;
+         if (num < 0 || num > 100)
+             osLogMsg("config: gain scaling must be within the range 0-100\n");
+         else
+@@ -50,7 +51,7 @@
+         break;
+ 
+     case GAIN:
+-        num = (int) value;
++        num = (intptr_t) value;
+         /* the default is 50, so if it's just out of range, don't
+            reset it */
+         if (num < 0 || num > 100)
+@@ -61,12 +62,12 @@
+         break;
+ 
+     case AUTOOPEN:
+-        num = (int) value;
++        num = (intptr_t) value;
+         confStat->autoOpen = num;
+         break;
+ 
+     case READWRITE:
+-        num = (int) value;
++        num = (intptr_t) value;
+         if (confStat == &sndStatIn) {
+             confStat->howToOpen = (num ? O_RDWR : O_RDONLY);
+         } else {
+@@ -89,7 +90,7 @@
+         break;
  
      case WORDSIZE:
--      num = (int) value;
-+      num = (intptr_t) value;
+-        num = (int) value;
++        num = (intptr_t) value;
  
-       if (num != 8 && num != 16) 
-@@ -97,5 +98,5 @@
+         if (num != 8 && num != 16) {
+             osLogMsg("config: Wordsize (%d) not 8 or 16, setting to 8\n",
+@@ -100,7 +101,7 @@
+         break;
  
      case FRAGSIZE:
--      num = (int) value;
-+      num = (intptr_t) value;
+-        num = (int) value;
++        num = (intptr_t) value;
  
-       {
-@@ -122,5 +123,5 @@
+         {
+             int i, j, k;
+@@ -125,7 +126,7 @@
+         break;
  
      case MINFRAGS:
--      num = (int) value;
-+      num = (intptr_t) value;
+-        num = (int) value;
++        num = (intptr_t) value;
  
-       if (num < 2 || num > 32) 
-@@ -137,5 +138,5 @@
+         if (num < 2 || num > 32) {
+             osLogMsg("config: Minfrags out of range - setting to 2\n");
+@@ -138,7 +139,7 @@
+         break;
  
      case MAXFRAGS:
--      num = (int) value;
-+      num = (intptr_t) value;
+-        num = (int) value;
++        num = (intptr_t) value;
  
-       if (num < 2 || num > 32) 
-@@ -152,5 +153,5 @@
+         if (num < 2 || num > 32) {
+             osLogMsg("config: Maxfrags out of range - setting to 32\n");
+@@ -151,7 +152,7 @@
+         break;
  
      case NUMCHANS:
--      num = (int) value;
-+      num = (intptr_t) value;
+-        num = (int) value;
++        num = (intptr_t) value;
  
-       if (num != 1 && num != 2) 
-@@ -164,5 +165,5 @@
+         if (num != 1 && num != 2) {
+             osLogMsg("config: Number of channels wrong, setting to 1\n");
+@@ -161,25 +162,25 @@
+         break;
  
      case MAXRATE:
--      num = (int) value;
-+      num = (intptr_t) value;
+-        num = (int) value;
++        num = (intptr_t) value;
  
-       confStat->maxSampleRate = num;
-@@ -170,5 +171,5 @@
+         confStat->maxSampleRate = num;
+         break;
  
      case MINRATE:
--      num = (int) value;
-+      num = (intptr_t) value;
+-        num = (int) value;
++        num = (intptr_t) value;
  
-       confStat->minSampleRate = num;
-@@ -176,5 +177,5 @@
+         confStat->minSampleRate = num;
+         break;
  
      case MIXERINIT:
--      num = (int) value;
-+      num = (intptr_t) value;
+-        num = (int) value;
++        num = (intptr_t) value;
+ 
+         VOXMixerInit = num;
+         break;
+ 
+     case REINITMIXER:
+-        num = (int) value;
++        num = (intptr_t) value;
  
-       VOXMixerInit = num;
+         VOXReInitMixer = num;
+         break;
diff -ruN nas.orig/files/patch-server_dia_gram.y nas/files/patch-server_dia_gram.y
--- nas.orig/files/patch-server_dia_gram.y	2008-05-12 20:34:15.000000000 +0400
+++ nas/files/patch-server_dia_gram.y	2008-05-14 23:01:40.000000000 +0400
@@ -1,64 +1,69 @@
---- server/dia/gram.y	Mon Dec 22 21:00:04 2003
-+++ server/dia/gram.y	Mon Oct 10 10:46:03 2005
-@@ -4,4 +4,5 @@
+--- server/dia/gram.y.orig	2007-06-16 23:03:22.000000000 +0400
++++ server/dia/gram.y	2008-05-14 22:51:53.000000000 +0400
+@@ -3,6 +3,7 @@
+ 
  
  %{
 +#include <inttypes.h>
  #include <stdio.h>
  #include <stdlib.h>
-@@ -15,5 +16,5 @@
+ #include <string.h>
+@@ -14,14 +15,14 @@
+ #include "misc.h"
  
- static char	*ptr;
+ static char     *ptr;
 -static int parsebool(char *str);
 +static intptr_t parsebool(const char *str);
  extern int yylineno;
  
-@@ -22,5 +23,5 @@
+ %}
+ 
  %union
  {
 -    int num;
 +    intptr_t num;
      char *ptr;
  };
-@@ -239,30 +240,21 @@
+ 
+@@ -250,30 +251,21 @@
+     *o = '\0';
  }
  
--static int parsebool(char *str)
+-static int
+-parsebool(char *str)
 +static intptr_t
 +parsebool(const char *str)
  {
--  char *s;
+-    char *s;
 -
--  s = str;
+-    s = str;
 -
--  if (s == NULL)
-+  if (str == NULL)
-     return(-1);
- 
--  while(*s)
--    {
--      *s = (char)tolower(*s);
--      s++;
+-    if (s == NULL)
++    if (str == NULL)
+         return (-1);
+ 
+-    while (*s) {
+-        *s = (char) tolower(*s);
+-        s++;
 -    }
 -
--  if (((char *)strstr("false", str) != NULL) ||
--      ((char *)strstr("no", str) != NULL)    ||
--      ((char *)strstr("0", str) != NULL)     ||
--      ((char *)strstr("off", str) != NULL))
-+  if (((char *)strcasestr("false", str) != NULL) ||
-+      ((char *)strcasestr("no", str) != NULL)    ||
-+      ((char *)strcasestr("0", str) != NULL)     ||
-+      ((char *)strcasestr("off", str) != NULL))
-     {
-       return(FALSE);
-     }
--  else if (((char *)strstr("true", str) != NULL) ||
--           ((char *)strstr("yes", str) != NULL)  ||
--           ((char *)strstr("1", str) != NULL)    ||
--           ((char *)strstr("on", str) != NULL))
-+  else if (((char *)strcasestr("true", str) != NULL) ||
-+           ((char *)strcasestr("yes", str) != NULL)  ||
-+           ((char *)strcasestr("1", str) != NULL)    ||
-+           ((char *)strcasestr("on", str) != NULL))
-     {
-       return(TRUE);
+-    if (((char *) strstr("false", str) != NULL) ||
+-        ((char *) strstr("no", str) != NULL) ||
+-        ((char *) strstr("0", str) != NULL) ||
+-        ((char *) strstr("off", str) != NULL)) {
++    if (((char *) strcasestr("false", str) != NULL) ||
++        ((char *) strcasestr("no", str) != NULL) ||
++        ((char *) strcasestr("0", str) != NULL) ||
++        ((char *) strcasestr("off", str) != NULL)) {
+         return (FALSE);
+-    } else if (((char *) strstr("true", str) != NULL) ||
+-               ((char *) strstr("yes", str) != NULL) ||
+-               ((char *) strstr("1", str) != NULL) ||
+-               ((char *) strstr("on", str) != NULL)) {
++    } else if (((char *) strcasestr("true", str) != NULL) ||
++               ((char *) strcasestr("yes", str) != NULL) ||
++               ((char *) strcasestr("1", str) != NULL) ||
++               ((char *) strcasestr("on", str) != NULL)) {
+         return (TRUE);
+     } else {
+         fprintf(stderr, "parsebool(): error parsing '%s', \n\t%s\n",
diff -ruN nas.orig/files/patch-useXt nas/files/patch-useXt
--- nas.orig/files/patch-useXt	2008-05-12 20:34:15.000000000 +0400
+++ nas/files/patch-useXt	2008-05-14 22:57:17.000000000 +0400
@@ -1,8 +1,12 @@
---- lib/audio/Imakefile	Sat Jun  4 16:08:54 2005
-+++ lib/audio/Imakefile	Mon Oct 10 15:38:24 2005
-@@ -152,5 +152,3 @@
+--- lib/audio/Imakefile.orig	2008-05-14 22:57:01.000000000 +0400
++++ lib/audio/Imakefile	2008-05-14 22:57:08.000000000 +0400
+@@ -150,9 +150,7 @@
+ XAULIB = -lXau
+ #endif
  
--#if defined(LinuxArchitecture)
+-#if defined(LinuxArchitecture) || defined(GNUArchitecture) || defined(__FreeBSD_kernel__)
  REQUIREDLIBS = -L$(USRLIBDIR) -lXt $(XAULIB) -lm 
 -#endif
  
+ #if defined(cygwinArchitecture)
+ REQUIREDLIBS = $(LDPRELIB) $(XAUTHLIB) $(XTOOLLIB) $(XONLYLIB)
--- nas.patch ends here ---

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list