patches/jack-04-solaris.diff
author jurikm
Sun, 12 Feb 2012 14:04:10 +0000
changeset 8245 383896da4129
parent 2215 b02c1fa671c9
permissions -rw-r--r--
SFEsauerbraten.spec: add IPS package name
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2215
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
     1
diff -Naur jack-audio-connection-kit-0.116.2/config/cpu/Makefile.am jack-audio-connection-kit-0.116.2-patch/config/cpu/Makefile.am
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
     2
--- jack-audio-connection-kit-0.116.2/config/cpu/Makefile.am	2007-04-12 21:08:32.000000000 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
     3
+++ jack-audio-connection-kit-0.116.2-patch/config/cpu/Makefile.am	2009-09-20 19:20:09.718140719 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
     4
@@ -1,2 +1,2 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
     5
 MAINTAINERCLEANFILES = Makefile.in
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
     6
-DIST_SUBDIRS = alpha cris generic i386 i486 ia64 m68k mips powerpc s390
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
     7
+DIST_SUBDIRS = alpha cris generic i386 i486 ia64 m68k mips powerpc s390 sparc
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
     8
diff -Naur jack-audio-connection-kit-0.116.2/config/cpu/i386/atomicity.h jack-audio-connection-kit-0.116.2-patch/config/cpu/i386/atomicity.h
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
     9
--- jack-audio-connection-kit-0.116.2/config/cpu/i386/atomicity.h	2007-04-12 21:08:32.000000000 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    10
+++ jack-audio-connection-kit-0.116.2-patch/config/cpu/i386/atomicity.h	2009-09-20 19:20:09.719047630 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    11
@@ -30,6 +30,10 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    12
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    13
 typedef int _Atomic_word;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    14
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    15
+#if defined(__SUNPRO_C)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    16
+#pragma error_messages (off,E_ASM_UNUSED_PARAM)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    17
+#endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    18
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    19
 static inline _Atomic_word 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    20
 __attribute__ ((__unused__))
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    21
 __exchange_and_add(volatile _Atomic_word* __mem, int __val)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    22
@@ -49,4 +53,8 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    23
 			: "=m" (*__mem) : "ir" (__val), "m" (*__mem));
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    24
 }
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    25
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    26
+#if defined(__SUNPRO_C)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    27
+#pragma error_messages (default,E_ASM_UNUSED_PARAM)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    28
+#endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    29
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    30
 #endif /* atomicity.h */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    31
diff -Naur jack-audio-connection-kit-0.116.2/config/cpu/sparc/atomicity.h jack-audio-connection-kit-0.116.2-patch/config/cpu/sparc/atomicity.h
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    32
--- jack-audio-connection-kit-0.116.2/config/cpu/sparc/atomicity.h	1970-01-01 01:00:00.000000000 +0100
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    33
+++ jack-audio-connection-kit-0.116.2-patch/config/cpu/sparc/atomicity.h	2009-09-20 19:20:09.720666259 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    34
@@ -0,0 +1,41 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    35
+/* Low-level functions for atomic operations.  Stub version.
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    36
+   Copyright (C) 1997,2001 Free Software Foundation, Inc.
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    37
+   This file is part of the GNU C Library.
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    38
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    39
+   The GNU C Library is free software; you can redistribute it and/or
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    40
+   modify it under the terms of the GNU Lesser General Public
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    41
+   License as published by the Free Software Foundation; either
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    42
+   version 2.1 of the License, or (at your option) any later version.
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    43
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    44
+   The GNU C Library is distributed in the hope that it will be useful,
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    45
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    46
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    47
+   Lesser General Public License for more details.
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    48
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    49
+   You should have received a copy of the GNU Lesser General Public
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    50
+   License along with the GNU C Library; if not, write to the Free
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    51
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    52
+   02111-1307 USA.  */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    53
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    54
+#ifndef _ATOMICITY_H
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    55
+#define _ATOMICITY_H	1
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    56
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    57
+#warning "stub atomicity functions are not atomic on this platform"
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    58
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    59
+typedef int _Atomic_word;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    60
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    61
+static inline _Atomic_word 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    62
+__exchange_and_add(volatile _Atomic_word* mem, int val)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    63
+{
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    64
+  int result = *mem;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    65
+  *mem += val;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    66
+  return result;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    67
+}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    68
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    69
+static inline void
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    70
+__atomic_add(volatile _Atomic_word* mem, int val)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    71
+{
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    72
+  *mem += val;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    73
+}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    74
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    75
+#endif /* atomicity.h */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    76
diff -Naur jack-audio-connection-kit-0.116.2/config/cpu/sparc/cycles.h jack-audio-connection-kit-0.116.2-patch/config/cpu/sparc/cycles.h
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    77
--- jack-audio-connection-kit-0.116.2/config/cpu/sparc/cycles.h	1970-01-01 01:00:00.000000000 +0100
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    78
+++ jack-audio-connection-kit-0.116.2-patch/config/cpu/sparc/cycles.h	2009-09-20 19:20:09.721456565 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    79
@@ -0,0 +1,48 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    80
+/*
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    81
+    Copyright (C) 2001 Paul Davis
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    82
+    
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    83
+    This program is free software; you can redistribute it and/or modify
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    84
+    it under the terms of the GNU General Public License as published by
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    85
+    the Free Software Foundation; either version 2 of the License, or
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    86
+    (at your option) any later version.
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    87
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    88
+    This program is distributed in the hope that it will be useful,
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    89
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    90
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    91
+    GNU General Public License for more details.
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    92
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    93
+    You should have received a copy of the GNU General Public License
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    94
+    along with this program; if not, write to the Free Software
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    95
+    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    96
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    97
+*/
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    98
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
    99
+#ifndef __jack_cycles_h__
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   100
+#define __jack_cycles_h__
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   101
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   102
+/* generic solution that is not really a solution at all */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   103
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   104
+#if !defined(sun)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   105
+#warning You are compiling JACK on a platform for which jack/config/sysdep/cycles.h needs work
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   106
+#endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   107
+#include <sys/time.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   108
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   109
+typedef long cycles_t;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   110
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   111
+static inline cycles_t get_cycles(void)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   112
+{
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   113
+#if defined(sun)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   114
+	/*
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   115
+	 * gethrtime() returns nanoseconds. We need usec.
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   116
+	 * Thus divide by 1000....
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   117
+	 */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   118
+	return((cycles_t)(gethrtime()/1000));
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   119
+#else
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   120
+       struct timeval tv;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   121
+       gettimeofday (&tv, NULL);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   122
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   123
+       return ((cycles_t) tv.tv_sec * 1000000) + tv.tv_usec;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   124
+#endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   125
+}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   126
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   127
+#endif /* __jack_cycles_h__ */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   128
diff -Naur jack-audio-connection-kit-0.116.2/config/os/Makefile.am jack-audio-connection-kit-0.116.2-patch/config/os/Makefile.am
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   129
--- jack-audio-connection-kit-0.116.2/config/os/Makefile.am	2007-04-12 21:08:32.000000000 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   130
+++ jack-audio-connection-kit-0.116.2-patch/config/os/Makefile.am	2009-09-20 19:20:09.722127482 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   131
@@ -1,3 +1,3 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   132
 MAINTAINERCLEANFILES = Makefile.in
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   133
-DIST_SUBDIRS = generic gnu-linux macosx
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   134
+DIST_SUBDIRS = generic gnu-linux macosx solaris
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   135
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   136
diff -Naur jack-audio-connection-kit-0.116.2/config/os/solaris/Makefile.am jack-audio-connection-kit-0.116.2-patch/config/os/solaris/Makefile.am
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   137
--- jack-audio-connection-kit-0.116.2/config/os/solaris/Makefile.am	1970-01-01 01:00:00.000000000 +0100
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   138
+++ jack-audio-connection-kit-0.116.2-patch/config/os/solaris/Makefile.am	2009-09-20 19:20:09.722968581 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   139
@@ -0,0 +1,2 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   140
+MAINTAINERCLEANFILES = Makefile.in
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   141
+noinst_HEADERS = ipc.h poll.h time.c time.h
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   142
diff -Naur jack-audio-connection-kit-0.116.2/config/os/solaris/ipc.h jack-audio-connection-kit-0.116.2-patch/config/os/solaris/ipc.h
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   143
--- jack-audio-connection-kit-0.116.2/config/os/solaris/ipc.h	1970-01-01 01:00:00.000000000 +0100
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   144
+++ jack-audio-connection-kit-0.116.2-patch/config/os/solaris/ipc.h	2009-09-20 19:20:09.723790365 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   145
@@ -0,0 +1,27 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   146
+/*
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   147
+    Copyright (C) 2004 Jack O'Quin
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   148
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   149
+    Generic version, overridden by OS-specific defines when needed.
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   150
+    
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   151
+    This program is free software; you can redistribute it and/or modify
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   152
+    it under the terms of the GNU Lesser General Public License as published by
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   153
+    the Free Software Foundation; either version 2.1 of the License, or
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   154
+    (at your option) any later version.
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   155
+    
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   156
+    This program is distributed in the hope that it will be useful,
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   157
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   158
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   159
+    GNU Lesser General Public License for more details.
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   160
+    
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   161
+    You should have received a copy of the GNU Lesser General Public License
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   162
+    along with this program; if not, write to the Free Software 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   163
+    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   164
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   165
+*/
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   166
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   167
+#ifndef _jack_sys_ipc
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   168
+#define _jack_sys_ipc 1
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   169
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   170
+#include <sys/ipc.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   171
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   172
+#endif /* _jack_sys_ipc */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   173
diff -Naur jack-audio-connection-kit-0.116.2/config/os/solaris/poll.h jack-audio-connection-kit-0.116.2-patch/config/os/solaris/poll.h
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   174
--- jack-audio-connection-kit-0.116.2/config/os/solaris/poll.h	1970-01-01 01:00:00.000000000 +0100
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   175
+++ jack-audio-connection-kit-0.116.2-patch/config/os/solaris/poll.h	2009-09-20 19:20:09.724608083 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   176
@@ -0,0 +1,27 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   177
+/*
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   178
+    Copyright (C) 2004 Jack O'Quin
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   179
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   180
+    Generic version, overridden by OS-specific defines when needed.
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   181
+    
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   182
+    This program is free software; you can redistribute it and/or modify
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   183
+    it under the terms of the GNU Lesser General Public License as published by
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   184
+    the Free Software Foundation; either version 2.1 of the License, or
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   185
+    (at your option) any later version.
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   186
+    
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   187
+    This program is distributed in the hope that it will be useful,
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   188
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   189
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   190
+    GNU Lesser General Public License for more details.
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   191
+    
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   192
+    You should have received a copy of the GNU Lesser General Public License
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   193
+    along with this program; if not, write to the Free Software 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   194
+    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   195
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   196
+*/
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   197
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   198
+#ifndef _jack_sys_poll
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   199
+#define _jack_sys_poll 1
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   200
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   201
+#include <sys/poll.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   202
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   203
+#endif /* _jack_sys_poll */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   204
diff -Naur jack-audio-connection-kit-0.116.2/config/os/solaris/time.c jack-audio-connection-kit-0.116.2-patch/config/os/solaris/time.c
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   205
--- jack-audio-connection-kit-0.116.2/config/os/solaris/time.c	1970-01-01 01:00:00.000000000 +0100
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   206
+++ jack-audio-connection-kit-0.116.2-patch/config/os/solaris/time.c	2009-09-20 19:20:09.725405547 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   207
@@ -0,0 +1,30 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   208
+/*
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   209
+    Copyright (C) 2001-2004 Paul Davis, Tilman Linneweh
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   210
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   211
+    Generic version, overridden by OS-specific definition when needed.
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   212
+    
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   213
+    This program is free software; you can redistribute it and/or modify
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   214
+    it under the terms of the GNU Lesser General Public License as published by
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   215
+    the Free Software Foundation; either version 2.1 of the License, or
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   216
+    (at your option) any later version.
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   217
+    
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   218
+    This program is distributed in the hope that it will be useful,
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   219
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   220
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   221
+    GNU Lesser General Public License for more details.
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   222
+    
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   223
+    You should have received a copy of the GNU Lesser General Public License
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   224
+    along with this program; if not, write to the Free Software 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   225
+    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   226
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   227
+*/
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   228
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   229
+void jack_init_time ()
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   230
+{
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   231
+	/* nothing to do on a generic system - we use the system clock */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   232
+}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   233
+void jack_set_clock_source (jack_timer_type_t clocksrc) 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   234
+{
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   235
+	/* only one clock source on a generic system */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   236
+}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   237
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   238
diff -Naur jack-audio-connection-kit-0.116.2/config/os/solaris/time.h jack-audio-connection-kit-0.116.2-patch/config/os/solaris/time.h
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   239
--- jack-audio-connection-kit-0.116.2/config/os/solaris/time.h	1970-01-01 01:00:00.000000000 +0100
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   240
+++ jack-audio-connection-kit-0.116.2-patch/config/os/solaris/time.h	2009-09-20 19:20:09.726165687 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   241
@@ -0,0 +1,33 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   242
+/*
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   243
+    Copyright (C) 2001-2004 Paul Davis, Tilman Linneweh
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   244
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   245
+    Generic version, overridden by OS-specific definition when needed.
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   246
+    
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   247
+    This program is free software; you can redistribute it and/or modify
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   248
+    it under the terms of the GNU Lesser General Public License as published by
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   249
+    the Free Software Foundation; either version 2.1 of the License, or
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   250
+    (at your option) any later version.
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   251
+    
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   252
+    This program is distributed in the hope that it will be useful,
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   253
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   254
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   255
+    GNU Lesser General Public License for more details.
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   256
+    
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   257
+    You should have received a copy of the GNU Lesser General Public License
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   258
+    along with this program; if not, write to the Free Software 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   259
+    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   260
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   261
+*/
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   262
+#ifndef __jack_time_h__
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   263
+#define __jack_time_h__
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   264
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   265
+#include <jack/types.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   266
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   267
+extern jack_time_t jack_get_microseconds_from_system (void);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   268
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   269
+static inline jack_time_t
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   270
+jack_get_microseconds (void) {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   271
+	return jack_get_microseconds_from_system ();
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   272
+}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   273
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   274
+#endif /* __jack_time_h__ */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   275
diff -Naur jack-audio-connection-kit-0.116.2/config/sysdeps/atomicity.h jack-audio-connection-kit-0.116.2-patch/config/sysdeps/atomicity.h
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   276
--- jack-audio-connection-kit-0.116.2/config/sysdeps/atomicity.h	2007-04-12 21:08:32.000000000 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   277
+++ jack-audio-connection-kit-0.116.2-patch/config/sysdeps/atomicity.h	2009-09-20 19:20:09.726850024 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   278
@@ -1,11 +1,11 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   279
 #ifndef _jack_sysdep_atomicity_h_
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   280
 #define _jack_sysdep_atomicity_h_
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   281
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   282
-#if defined(__i386__)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   283
+#if defined(__i386__) || (defined(__i386) && __SUNPRO_C >= 0x590)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   284
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   285
 #include <config/cpu/i386/atomicity.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   286
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   287
-#elif defined(__x86_64)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   288
+#elif defined(__x86_64) || (defined(__amd64) && __SUNPRO_C >= 0x590)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   289
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   290
 /* x86_64 can use rdtsc just like i[456]86 */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   291
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   292
diff -Naur jack-audio-connection-kit-0.116.2/config/sysdeps/cycles.h jack-audio-connection-kit-0.116.2-patch/config/sysdeps/cycles.h
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   293
--- jack-audio-connection-kit-0.116.2/config/sysdeps/cycles.h	2007-04-12 21:08:32.000000000 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   294
+++ jack-audio-connection-kit-0.116.2-patch/config/sysdeps/cycles.h	2009-09-20 19:20:09.727737823 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   295
@@ -1,7 +1,7 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   296
 #ifndef _jack_sysdep_cycles_h_
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   297
 #define _jack_sysdep_cycles_h_
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   298
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   299
-#if defined(__i386__)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   300
+#if defined(__i386__) || (defined(__i386) && __SUNPRO_C >= 0x590)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   301
     
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   302
 /* technically, i386 doesn't have a cycle counter, but
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   303
    running JACK on a real i386 seems like a ridiculuous
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   304
@@ -11,7 +11,7 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   305
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   306
 #include <config/cpu/i386/cycles.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   307
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   308
-#elif defined(__x86_64)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   309
+#elif defined(__x86_64) || (defined(__amd64) && __SUNPRO_C >= 0x590)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   310
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   311
 #include <config/cpu/i486/cycles.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   312
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   313
@@ -19,6 +19,10 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   314
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   315
 #include <config/cpu/powerpc/cycles.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   316
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   317
+#elif defined(__sparc)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   318
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   319
+#include <config/cpu/sparc/cycles.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   320
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   321
 #else
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   322
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   323
 #include <config/cpu/generic/cycles.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   324
diff -Naur jack-audio-connection-kit-0.116.2/config/sysdeps/time.c jack-audio-connection-kit-0.116.2-patch/config/sysdeps/time.c
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   325
--- jack-audio-connection-kit-0.116.2/config/sysdeps/time.c	2007-04-12 21:08:32.000000000 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   326
+++ jack-audio-connection-kit-0.116.2-patch/config/sysdeps/time.c	2009-09-20 19:20:09.728388378 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   327
@@ -5,6 +5,8 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   328
 #include <config/os/gnu-linux/time.c>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   329
 #elif defined(__MACH__) && defined(__APPLE__)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   330
 #include <config/os/macosx/time.c>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   331
+#elif defined(sun)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   332
+#include <config/os/solaris/time.c>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   333
 #else
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   334
 #include <config/os/generic/time.c>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   335
 #endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   336
diff -Naur jack-audio-connection-kit-0.116.2/config/sysdeps/time.h jack-audio-connection-kit-0.116.2-patch/config/sysdeps/time.h
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   337
--- jack-audio-connection-kit-0.116.2/config/sysdeps/time.h	2007-04-12 21:08:32.000000000 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   338
+++ jack-audio-connection-kit-0.116.2-patch/config/sysdeps/time.h	2009-09-20 19:20:09.729033592 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   339
@@ -5,6 +5,8 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   340
 #include <config/os/gnu-linux/time.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   341
 #elif defined(__MACH__) && defined(__APPLE__)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   342
 #include <config/os/macosx/time.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   343
+#elif defined(sun)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   344
+#include <config/os/solaris/time.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   345
 #else
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   346
 #include <config/os/generic/time.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   347
 #endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   348
diff -Naur jack-audio-connection-kit-0.116.2/configure.ac jack-audio-connection-kit-0.116.2-patch/configure.ac
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   349
--- jack-audio-connection-kit-0.116.2/configure.ac	2009-02-06 11:40:56.000000000 +0100
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   350
+++ jack-audio-connection-kit-0.116.2-patch/configure.ac	2009-09-20 19:23:52.924391619 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   351
@@ -97,6 +97,23 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   352
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   353
 CFLAGS="$ORIGINAL_CFLAGS"
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   354
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   355
+AC_MSG_CHECKING([Sun C compiler])
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   356
+AC_COMPILE_IFELSE(
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   357
+  [AC_LANG_PROGRAM(
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   358
+    [[
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   359
+#ifndef __SUNPRO_C
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   360
+#error We r not him
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   361
+#endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   362
+#include <stdio.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   363
+    ]],[[
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   364
+  (void)printf("JAVA CC");;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   365
+    ]]
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   366
+  )],
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   367
+  [SUNCC=true
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   368
+   AC_MSG_RESULT(yes)],
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   369
+  [SUNCC=false
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   370
+   AC_MSG_RESULT(no)])
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   371
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   372
 AC_MSG_CHECKING([platform dependencies])
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   373
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   374
 HOST_DEFAULT_TMP_DIR=/dev/shm
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   375
@@ -121,6 +138,14 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   376
     TRY_POSIX_SHM=yes			# POSIX shm works better
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   377
     HOST_DEFAULT_TMP_DIR=/tmp
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   378
     ;;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   379
+  solaris*)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   380
+    JACK_CPP_VARARGS_BROKEN=1;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   381
+    OS_LDFLAGS="-Wl,-z,muldefs"
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   382
+    if $SUNCC ; then
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   383
+	CPPFLAGS="-D__FUNCTION__=__func__"
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   384
+        CFLAGS="-xc99 -erroff=E_ARGUEMENT_MISMATCH $CFLAGS"
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   385
+    fi
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   386
+    ;;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   387
 esac
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   388
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   389
 AC_SUBST(OS_LDFLAGS)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   390
@@ -249,7 +274,7 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   391
 AM_CONDITIONAL(USE_POSIX_SHM, $USE_POSIX_SHM)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   392
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   393
 JACK_CORE_CFLAGS="-I\$(top_srcdir)/config -I\$(top_srcdir) \
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   394
--I\$(top_srcdir) -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -Wall"
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   395
+-I\$(top_srcdir) -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS"
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   396
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   397
 JACK_LIBC_HELPER_FLAGS=
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   398
 AC_ARG_ENABLE(ancient_libc,
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   399
@@ -705,6 +730,27 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   400
 fi
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   401
 AM_CONDITIONAL(HAVE_PA, $HAVE_PA)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   402
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   403
+#
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   404
+# Solaris does not have endian.h, so we check for the alsa hack version
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   405
+#
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   406
+AC_CHECK_HEADERS(endian.h alsa/endian-compat.h)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   407
+#
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   408
+# Headers needed for Solaris
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   409
+#
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   410
+AC_CHECK_HEADERS(sys/rtpriocntl.h sys/priocntl.h limits.h stropts.h priv.h)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   411
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   412
+#
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   413
+# If we find exec_attr.h, we assume we can use RBAC
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   414
+#
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   415
+USE_RBAC=false
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   416
+AC_CHECK_HEADER(exec_attr.h,[
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   417
+    AC_MSG_RESULT([*** Using Solaris RBAC ***])
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   418
+    USE_RBAC=true
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   419
+    AC_DEFINE(USE_RBAC,1,"Adding Solaris RBAC mods")
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   420
+])
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   421
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   422
+AM_CONDITIONAL(USE_RBAC,$USE_RBAC)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   423
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   424
 AC_ARG_ENABLE(coreaudio, AC_HELP_STRING([--disable-coreaudio], [ignore CoreAudio driver]),
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   425
 			TRY_COREAUDIO=$enableval , TRY_COREAUDIO=yes )
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   426
 HAVE_COREAUDIO="false"
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   427
@@ -795,6 +841,14 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   428
 HAVE_ALSA_MIDI=$HAVE_ALSA
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   429
 AM_CONDITIONAL(HAVE_ALSA_MIDI, $HAVE_ALSA_MIDI)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   430
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   431
+case "${host_os}" in
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   432
+  solaris*)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   433
+        if test "x$HAVE_OSS" != "x" ; then
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   434
+                JACK_DEFAULT_DRIVER=\"oss\"
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   435
+        fi
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   436
+  ;;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   437
+esac
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   438
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   439
 if test "$JACK_DEFAULT_DRIVER" = \"dummy\"; then
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   440
   AC_MSG_WARN([Only the dummy driver can be built])
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   441
 fi
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   442
diff -Naur jack-audio-connection-kit-0.116.2/drivers/alsa/memops.c jack-audio-connection-kit-0.116.2-patch/drivers/alsa/memops.c
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   443
--- jack-audio-connection-kit-0.116.2/drivers/alsa/memops.c	2008-11-22 12:54:59.000000000 +0100
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   444
+++ jack-audio-connection-kit-0.116.2-patch/drivers/alsa/memops.c	2009-09-20 19:27:17.137024449 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   445
@@ -30,7 +30,11 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   446
 #include <stdlib.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   447
 #include <stdint.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   448
 #include <limits.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   449
+#if defined(HAVE_ENDIAN_H)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   450
 #include <endian.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   451
+#elif defined(HAVE_ALSA_ENDIAN_COMPAT_H)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   452
+#include <alsa/endian_compat.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   453
+#endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   454
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   455
 #include <jack/memops.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   456
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   457
@@ -162,8 +166,15 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   458
 /* Linear Congruential noise generator. From the music-dsp list
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   459
  * less random than rand(), but good enough and 10x faster 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   460
  */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   461
-
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   462
-inline unsigned int fast_rand() {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   463
+#ifndef __SUNPRO_C
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   464
+inline
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   465
+#endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   466
+unsigned int fast_rand();
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   467
+  
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   468
+#ifndef __SUNPRO_C
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   469
+inline
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   470
+#endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   471
+unsigned int fast_rand() {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   472
 	static unsigned int seed = 22222;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   473
 	seed = (seed * 96314165) + 907633515;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   474
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   475
diff -Naur jack-audio-connection-kit-0.116.2/drivers/netjack/net_driver.c jack-audio-connection-kit-0.116.2-patch/drivers/netjack/net_driver.c
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   476
--- jack-audio-connection-kit-0.116.2/drivers/netjack/net_driver.c	2009-02-06 11:34:50.000000000 +0100
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   477
+++ jack-audio-connection-kit-0.116.2-patch/drivers/netjack/net_driver.c	2009-09-20 21:53:27.939374212 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   478
@@ -41,6 +41,10 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   479
 #include <sys/socket.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   480
 #include <netinet/in.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   481
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   482
+#if defined(__sun)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   483
+#include <alloca.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   484
+#endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   485
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   486
 #include "config.h"
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   487
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   488
 #if HAVE_SAMPLERATE
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   489
@@ -497,7 +501,7 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   490
     {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   491
 	int r;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   492
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   493
-#ifdef __APPLE__
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   494
+#if defined (__APPLE__) || defined (__sun)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   495
 	static const int flag = 0;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   496
 #else
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   497
 	static const int flag = MSG_CONFIRM;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   498
diff -Naur jack-audio-connection-kit-0.116.2/drivers/oss/oss_driver.c jack-audio-connection-kit-0.116.2-patch/drivers/oss/oss_driver.c
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   499
--- jack-audio-connection-kit-0.116.2/drivers/oss/oss_driver.c	2008-07-03 08:47:34.000000000 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   500
+++ jack-audio-connection-kit-0.116.2-patch/drivers/oss/oss_driver.c	2009-09-20 19:20:09.738289833 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   501
@@ -51,6 +51,9 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   502
 #include <stdarg.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   503
 #include <getopt.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   504
 #include <semaphore.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   505
+#ifdef HAVE_STROPTS_H
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   506
+#include <stropts.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   507
+#endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   508
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   509
 #include <sys/types.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   510
 #include <sys/stat.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   511
@@ -167,7 +170,7 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   512
 	driver->period_size = new_period_size;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   513
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   514
 	driver->period_usecs = 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   515
-		((double) driver->period_size /
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   516
+		((double) driver->period_size * 1.2 /
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   517
 		(double) driver->sample_rate) * 1e6;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   518
 	driver->last_wait_ust = 0;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   519
 	driver->last_periodtime = jack_get_microseconds();
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   520
@@ -610,7 +613,7 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   521
 				period_size);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   522
 			driver->period_size = period_size;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   523
 			driver->period_usecs = 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   524
-				((double) driver->period_size / 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   525
+				((double) driver->period_size * 1.2 / 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   526
 				 (double) driver->sample_rate) * 1e6;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   527
 			driver->engine->set_buffer_size(driver->engine, 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   528
 				driver->period_size);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   529
@@ -646,7 +649,7 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   530
 				period_size);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   531
 			driver->period_size = period_size;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   532
 			driver->period_usecs = 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   533
-				((double) driver->period_size / 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   534
+				((double) driver->period_size * 1.2 / 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   535
 				 (double) driver->sample_rate) * 1e6;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   536
 			driver->engine->set_buffer_size(driver->engine, 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   537
 				driver->period_size);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   538
diff -Naur jack-audio-connection-kit-0.116.2/jack/internal.h jack-audio-connection-kit-0.116.2-patch/jack/internal.h
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   539
--- jack-audio-connection-kit-0.116.2/jack/internal.h	2008-11-30 10:56:08.000000000 +0100
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   540
+++ jack-audio-connection-kit-0.116.2-patch/jack/internal.h	2009-09-20 19:51:18.139099446 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   541
@@ -44,6 +44,9 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   542
    compiler.
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   543
 */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   544
 #define POST_PACKED_STRUCTURE __attribute__((__packed__))
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   545
+#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5100)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   546
+/* Available from Sun Studio 12 u1 */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   547
+#define POST_PACKED_STRUCTURE __attribute__((__packed__))
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   548
 #else
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   549
 /* Add other things here for non-gcc platforms */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   550
 #endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   551
diff -Naur jack-audio-connection-kit-0.116.2/jack/transport.h jack-audio-connection-kit-0.116.2-patch/jack/transport.h
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   552
--- jack-audio-connection-kit-0.116.2/jack/transport.h	2008-11-24 10:32:58.000000000 +0100
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   553
+++ jack-audio-connection-kit-0.116.2-patch/jack/transport.h	2009-09-20 19:52:01.590508514 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   554
@@ -37,6 +37,9 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   555
    compiler.
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   556
 */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   557
 #define POST_PACKED_STRUCTURE __attribute__((__packed__))
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   558
+#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5100)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   559
+/* Available from Sun Studio 12 u1 */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   560
+#define POST_PACKED_STRUCTURE __attribute__((__packed__))
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   561
 #else
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   562
 /* Add other things here for non-gcc platforms */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   563
 #endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   564
diff -Naur jack-audio-connection-kit-0.116.2/jackd/Makefile.am jack-audio-connection-kit-0.116.2-patch/jackd/Makefile.am
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   565
--- jack-audio-connection-kit-0.116.2/jackd/Makefile.am	2008-12-02 12:13:14.000000000 +0100
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   566
+++ jack-audio-connection-kit-0.116.2-patch/jackd/Makefile.am	2009-09-20 19:30:06.741357835 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   567
@@ -1,5 +1,10 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   568
 MAINTAINERCLEANFILES = Makefile.in jackd.1 jack_md5.h 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   569
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   570
+if USE_RBAC
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   571
+RBAC_PROGS = jackstart
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   572
+RBAC_LIBS = -lsecdb
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   573
+endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   574
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   575
 if USE_CAPABILITIES
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   576
 CAP_PROGS = jackstart
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   577
 CAP_LIBS = -lcap
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   578
@@ -19,12 +24,13 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   579
 	@echo "Nothing to make for $@."
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   580
 endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   581
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   582
-bin_PROGRAMS = jackd $(CAP_PROGS)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   583
+bin_PROGRAMS = jackd $(CAP_PROGS) $(RBAC_PROGS)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   584
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   585
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   586
 AM_CFLAGS = $(JACK_CFLAGS) -DJACK_LOCATION=\"$(bindir)\"
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   587
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   588
 jackd_SOURCES = jackd.c
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   589
-jackd_LDADD = libjackserver.la $(CAP_LIBS) @OS_LDFLAGS@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   590
+jackd_LDADD = libjackserver.la $(CAP_LIBS) $(RBAC_LIBS) @OS_LDFLAGS@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   591
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   592
 noinst_HEADERS = jack_md5.h md5.h md5_loc.h \
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   593
 		 clientengine.h transengine.h
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   594
@@ -38,7 +44,7 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   595
 	echo "#define JACKD_MD5_SUM \"`md5sum .libs/jackd | awk '{print $$1}'`\"" > jack_md5.h
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   596
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   597
 jackstart_SOURCES = jackstart.c md5.c
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   598
-jackstart_LDFLAGS = -lcap
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   599
+jackstart_LDFLAGS = $(CAP_LIBS) $(RBAC_LIBS)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   600
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   601
 lib_LTLIBRARIES	= libjackserver.la
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   602
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   603
diff -Naur jack-audio-connection-kit-0.116.2/jackd/engine.c jack-audio-connection-kit-0.116.2-patch/jackd/engine.c
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   604
--- jack-audio-connection-kit-0.116.2/jackd/engine.c	2008-12-02 17:29:23.000000000 +0100
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   605
+++ jack-audio-connection-kit-0.116.2-patch/jackd/engine.c	2009-09-20 19:55:10.686511825 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   606
@@ -52,10 +52,13 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   607
 #include <sys/mman.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   608
 #endif /* USE_MLOCK */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   609
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   610
-#ifdef USE_CAPABILITIES
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   611
+#if defined(USE_CAPABILITIES)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   612
 /* capgetp and capsetp are linux only extensions, not posix */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   613
 #undef _POSIX_SOURCE
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   614
 #include <sys/capability.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   615
+#elif defined(USE_RBAC)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   616
+#undef _POSIX_SOURCE
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   617
+#include <priv.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   618
 #endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   619
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   620
 #include "clientengine.h"
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   621
@@ -1202,6 +1205,76 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   622
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   623
 #endif /* USE_CAPABILITIES */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   624
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   625
+#ifdef USE_RBAC
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   626
+static int check_privs (jack_engine_t *engine){
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   627
+	int have_all_privs = 1;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   628
+	priv_set_t	*effective;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   629
+	priv_ptype_t	*p;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   630
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   631
+	priv_ptype_t priv_list[] = {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   632
+	    PRIV_PROC_PRIOCNTL,
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   633
+	    PRIV_PROC_LOCK_MEMORY,
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   634
+	    PRIV_SYS_RESOURCE,
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   635
+	    (priv_ptype_t)NULL };
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   636
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   637
+	effective=priv_allocset();
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   638
+	if (effective == NULL) {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   639
+		VERBOSE (engine, "check: could not allocate privileges working storage\n");
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   640
+		return 0;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   641
+	}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   642
+	getppriv(PRIV_EFFECTIVE,effective);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   643
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   644
+	p = priv_list;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   645
+	while (*p!=(priv_ptype_t)NULL) {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   646
+		if (!priv_ismember(effective,*p)){
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   647
+			have_all_privs = 0;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   648
+			break;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   649
+		}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   650
+		p++;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   651
+	}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   652
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   653
+	priv_freeset(effective);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   654
+	return(have_all_privs);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   655
+}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   656
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   657
+/*
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   658
+ * Fix Me. I want code.....
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   659
+ *
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   660
+ */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   661
+static int give_privs (jack_engine_t *engine, pid_t pid){
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   662
+	char buf[1024];
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   663
+	static char client_privs[] =
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   664
+		"A+proc_priocntl,proc_lock_memory,sys_resource";
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   665
+	snprintf(buf,1024,"/usr/bin/ppriv -s %s %d",client_privs,pid);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   666
+	system(buf);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   667
+	return(0);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   668
+}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   669
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   670
+static int
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   671
+jack_set_client_privs (jack_engine_t *engine, pid_t priv_pid){
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   672
+	int ret = -1;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   673
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   674
+	/* before sending this request the client has
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   675
+	   already checked that the engine has
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   676
+	   realtime privileges, that it is running
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   677
+	   realtime and that the pid is defined
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   678
+	*/
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   679
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   680
+	if ((ret = give_privs (engine, priv_pid)) != 0) {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   681
+		jack_error ("could not give privileges to "
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   682
+			    "process %d\n",
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   683
+			    priv_pid);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   684
+	} else {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   685
+		VERBOSE (engine, "gave privileges to"
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   686
+			 " process %d\n",
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   687
+			 priv_pid);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   688
+	}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   689
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   690
+	return ret;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   691
+}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   692
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   693
+#endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   694
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   695
 /* perform internal or external client request
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   696
  *
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   697
  * reply_fd is NULL for internal requests
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   698
@@ -1284,6 +1357,11 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   699
 							    req->x.cap_pid);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   700
 		break;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   701
 #endif /* USE_CAPABILITIES */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   702
+#ifdef USE_RBAC
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   703
+	case SetClientCapabilities:
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   704
+		req->status = jack_set_client_privs (engine, req->x.cap_pid);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   705
+		break;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   706
+#endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   707
 		
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   708
 	case GetPortConnections:
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   709
 	case GetPortNConnections:
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   710
@@ -1399,6 +1477,12 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   711
 #endif /* JACK_USE_MACH_THREADS */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   712
 			return 1;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   713
 		} else {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   714
+#ifdef sun
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   715
+		if (errno==EAGAIN){
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   716
+//			jack_client_disconnect(engine, client->request_fd);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   717
+			return(0);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   718
+		}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   719
+#endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   720
 			jack_error ("cannot read request from client (%d/%d/%s)",
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   721
 				    r, sizeof(req), strerror (errno));
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   722
 			// XXX: shouldnt we mark this client as error now ?
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   723
@@ -1919,6 +2003,23 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   724
 	}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   725
 #endif /* USE_CAPABILITIES */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   726
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   727
+#ifdef USE_RBAC
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   728
+	/* only try to use privileges if not running as root */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   729
+	engine->control->has_capabilities = check_privs(engine);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   730
+	if (engine->control->has_capabilities == 0) {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   731
+		VERBOSE (engine, "required capabilities privileges are not "
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   732
+				 "available\n");
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   733
+	}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   734
+	if (engine->verbose) {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   735
+		priv_set_t *effective;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   736
+		effective=priv_allocset();
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   737
+		getppriv(PRIV_EFFECTIVE,effective);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   738
+		VERBOSE (engine, "privileges: %s\n",
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   739
+			 priv_set_to_str(effective,',',PRIV_STR_PORT));
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   740
+		priv_freeset(effective);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   741
+	}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   742
+#endif /* USE_RBAC */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   743
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   744
 	engine->control->engine_ok = 1;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   745
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   746
 	snprintf (engine->fifo_prefix, sizeof (engine->fifo_prefix),
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   747
diff -Naur jack-audio-connection-kit-0.116.2/jackd/jackd.c jack-audio-connection-kit-0.116.2-patch/jackd/jackd.c
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   748
--- jack-audio-connection-kit-0.116.2/jackd/jackd.c	2008-07-03 08:47:33.000000000 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   749
+++ jack-audio-connection-kit-0.116.2-patch/jackd/jackd.c	2009-09-20 19:20:09.747343995 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   750
@@ -40,7 +40,7 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   751
 #include <jack/driver_parse.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   752
 #include <jack/messagebuffer.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   753
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   754
-#ifdef USE_CAPABILITIES
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   755
+#if defined(USE_CAPABILITIES)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   756
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   757
 #include <sys/stat.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   758
 /* capgetp and capsetp are linux only extensions, not posix */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   759
@@ -49,7 +49,14 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   760
 #include <jack/start.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   761
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   762
 static struct stat pipe_stat;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   763
+#elif defined(USE_RBAC)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   764
+#include <sys/stat.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   765
+#include <priv.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   766
+/* RBAC is a Solaris only extensions, not posix */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   767
+#undef _POSIX_SOURCE
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   768
+#include <jack/start.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   769
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   770
+static struct stat pipe_stat;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   771
 #endif /* USE_CAPABILITIES */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   772
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   773
 static JSList *drivers = NULL;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   774
@@ -469,7 +476,7 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   775
 static void
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   776
 maybe_use_capabilities ()
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   777
 {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   778
-#ifdef USE_CAPABILITIES
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   779
+#if defined(USE_CAPABILITIES) || defined(USE_RBAC)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   780
 	int status;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   781
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   782
 	/* check to see if there is a pipe in the right descriptor */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   783
@@ -545,6 +552,9 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   784
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   785
 	setvbuf (stdout, NULL, _IOLBF, 0);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   786
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   787
+#if defined(USE_RBAC)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   788
+	(void)setpflags(PRIV_AWARE,1);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   789
+#endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   790
 	maybe_use_capabilities ();
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   791
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   792
 	opterr = 0;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   793
diff -Naur jack-audio-connection-kit-0.116.2/jackd/jackstart.c jack-audio-connection-kit-0.116.2-patch/jackd/jackstart.c
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   794
--- jack-audio-connection-kit-0.116.2/jackd/jackstart.c	2007-04-12 21:08:34.000000000 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   795
+++ jack-audio-connection-kit-0.116.2-patch/jackd/jackstart.c	2009-09-20 19:20:09.748740380 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   796
@@ -35,7 +35,15 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   797
 #include <config.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   798
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   799
 #undef _POSIX_SOURCE
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   800
+#if defined(USE_CAPABILITIES)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   801
 #include <sys/capability.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   802
+#elif defined(USE_RBAC)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   803
+#include <pwd.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   804
+#include <priv.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   805
+#include <exec_attr.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   806
+#else
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   807
+#warning Unknown System
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   808
+#endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   809
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   810
 #include "jack/start.h"
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   811
 #include "md5.h"
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   812
@@ -49,6 +57,7 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   813
 static char *jackd_md5_sum = JACKD_MD5_SUM;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   814
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   815
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   816
+#if defined(USE_CAPABILITIES)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   817
 static int check_capabilities (void)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   818
 {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   819
 	cap_t caps = cap_init();
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   820
@@ -121,6 +130,103 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   821
 	cap_free (caps);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   822
 	return 0;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   823
 }
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   824
+#endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   825
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   826
+#if defined(USE_RBAC)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   827
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   828
+int check_jackd_rbac(uid_t uid, char *binpath){
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   829
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   830
+	execattr_t	*exec;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   831
+	struct passwd	*pwent;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   832
+	priv_set_t	*iset = NULL;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   833
+	char		*inh;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   834
+	priv_ptype_t	*p;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   835
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   836
+	priv_ptype_t priv_list[] =
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   837
+                { PRIV_PROC_PRIOCNTL,
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   838
+		  PRIV_PROC_LOCK_MEMORY,
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   839
+		  PRIV_SYS_RESOURCE,
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   840
+		  (priv_ptype_t)NULL };
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   841
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   842
+	if ((pwent = getpwuid(uid)) == NULL) {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   843
+		fprintf(stderr,"Error: Cannot find a username for %d\n",uid);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   844
+		goto fail;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   845
+	}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   846
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   847
+	if ((exec=getexecuser(pwent->pw_name,KV_COMMAND,
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   848
+	    binpath, GET_ONE)) == NULL) {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   849
+		fprintf(stderr, "Error: Cannot get execution attributes\n");
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   850
+		goto fail;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   851
+	}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   852
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   853
+	if ((inh = kva_match(exec->attr, EXECATTR_IPRIV_KW)) == NULL) {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   854
+		fprintf(stderr, "Error: Cannot get inherited privs\n");
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   855
+		goto fail;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   856
+	}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   857
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   858
+	if ((iset = priv_str_to_set(inh, ",", NULL)) == NULL) {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   859
+		fprintf(stderr, "Error: Cannot get inherited privs\n");
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   860
+		goto fail;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   861
+	}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   862
+	
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   863
+	p = priv_list;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   864
+	while (*p!=(priv_ptype_t)NULL) {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   865
+		if (!priv_ismember(iset,*p)){
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   866
+			fprintf(stderr, "Error: Missing %s privilege\n",*p);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   867
+			goto fail;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   868
+		}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   869
+		p++;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   870
+	}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   871
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   872
+	if (exec) free_execattr(exec);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   873
+	if (iset) priv_freeset(iset);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   874
+	return(0);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   875
+fail:
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   876
+	if (exec) free_execattr(exec);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   877
+	if (iset) priv_freeset(iset);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   878
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   879
+	fprintf(stderr,"\n");
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   880
+	fprintf(stderr,"Error: For jackd to use change it's priority to realtime, %s\n",binpath);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   881
+	fprintf(stderr,"       requires the following privileges -\n");
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   882
+	p = priv_list;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   883
+	while (*p!=(priv_ptype_t)NULL) {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   884
+		fprintf(stderr,"           - %s\n",*p++);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   885
+	}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   886
+	fprintf(stderr,"\n");
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   887
+	return(-1);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   888
+}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   889
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   890
+int pfexec_execvp(char *binpath, int argc,char **argv){
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   891
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   892
+	static char *pfexec="/usr/bin/pfexec";
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   893
+	char **new_argv;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   894
+	char **p;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   895
+	char **argv_p;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   896
+	int i;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   897
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   898
+	/*
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   899
+	 * make a new argv with pfexec added at the front.
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   900
+	 */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   901
+	if (!binpath) return(-1);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   902
+	new_argv=(char **)malloc(sizeof(char *)*(argc+2));
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   903
+	p=new_argv;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   904
+	*p++=pfexec;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   905
+	*p++=binpath;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   906
+	i=0;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   907
+	argv_p=argv;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   908
+	argv_p++;  /* Skip arg0 */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   909
+	while(*argv_p!=(char *)NULL&&i++<16){
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   910
+		*p++=*argv_p++;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   911
+	}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   912
+	*p=(char *)NULL;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   913
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   914
+	execvp(pfexec,new_argv);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   915
+	fprintf (stderr, "jackstart: Cannot exec %s : %s\n",
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   916
+                         jackd_bin_path, strerror(errno));
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   917
+	free(new_argv);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   918
+        return(-1);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   919
+}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   920
+#endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   921
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   922
 static int check_binary (const char *binpath)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   923
 {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   924
@@ -211,6 +317,7 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   925
 	gid = getgid ();
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   926
 	euid = geteuid ();
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   927
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   928
+#if !defined(USE_RBAC)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   929
 	/* are we running suid root? */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   930
 	if (uid != 0) {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   931
 		if (euid != 0) {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   932
@@ -219,6 +326,9 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   933
 			fprintf (stderr, "    make jackstart suid root or start jackd directly\n\n");
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   934
 		}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   935
 	}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   936
+#endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   937
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   938
+#if defined(USE_CAPABILITIES)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   939
 	/* see if we can get the required capabilities */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   940
 	if (check_capabilities () == 0) {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   941
 		size_t size;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   942
@@ -230,6 +340,10 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   943
 		fprintf (stderr, "    a suitable kernel would have printed something like \"=eip\"\n\n");
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   944
 	}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   945
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   946
+#elif defined(USE_RBAC)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   947
+	check_jackd_rbac(euid, jackd_bin_path);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   948
+#endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   949
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   950
 	/* check the executable, owner, permissions, md5 checksum */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   951
 	if (check_binary(jackd_bin_path)) {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   952
 		exit(1);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   953
@@ -287,7 +401,11 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   954
 		/* set gid and uid */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   955
 		setregid(gid, gid);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   956
 		setreuid(uid, uid);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   957
+#if defined(USE_RBAC)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   958
+		pfexec_execvp(jackd_bin_path, argc, argv);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   959
+#else
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   960
 		execvp(jackd_bin_path, argv);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   961
+#endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   962
 	
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   963
 		/* we could not start jackd, clean up and exit */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   964
 		fprintf(stderr, "jackstart: unable to execute %s: %s\n", jackd_bin_path, strerror(errno));
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   965
@@ -316,8 +434,10 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   966
 			}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   967
 		}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   968
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   969
+#if defined(USE_CAPABILITIES)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   970
 		/* set privileges on jackd process */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   971
 		give_capabilities (parent_pid);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   972
+#endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   973
 	}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   974
 	exit (0);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   975
 }
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   976
diff -Naur jack-audio-connection-kit-0.116.2/libjack/client.c jack-audio-connection-kit-0.116.2-patch/libjack/client.c
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   977
--- jack-audio-connection-kit-0.116.2/libjack/client.c	2009-02-06 11:34:49.000000000 +0100
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   978
+++ jack-audio-connection-kit-0.116.2-patch/libjack/client.c	2009-09-20 19:20:09.751384143 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   979
@@ -668,15 +668,15 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   980
 	}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   981
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   982
 	if (!good) {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   983
-#if defined(USE_CAPABILITIES)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   984
+#if defined(USE_CAPABILITIES) || defined(USE_RBAC)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   985
 		command = JACK_LOCATION "/jackstart";
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   986
 		strncpy(arguments, JACK_LOCATION "/jackstart -T -R -d "
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   987
 			JACK_DEFAULT_DRIVER " -p 512", 255);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   988
-#else /* !USE_CAPABILITIES */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   989
+#else /* !USE_CAPABILITIES && !USE_RBAC */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   990
 		command = JACK_LOCATION "/jackd";
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   991
 		strncpy(arguments, JACK_LOCATION "/jackd -T -d "
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   992
 			JACK_DEFAULT_DRIVER, 255);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   993
-#endif /* USE_CAPABILITIES */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   994
+#endif /* USE_CAPABILITIES || USE_RBAC */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   995
 	} else {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   996
 		result = strcspn(arguments, " ");
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   997
 		command = (char *) malloc(result+1);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   998
@@ -829,9 +829,9 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
   999
 	snprintf (req.name, sizeof (req.name),
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1000
 		  "%s", client_name);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1001
 	snprintf (req.object_path, sizeof (req.object_path),
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1002
-		  "%s", va->load_name);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1003
+		  "%s", va->load_name?va->load_name:"(null)");
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1004
 	snprintf (req.object_data, sizeof (req.object_data),
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1005
-		  "%s", va->load_init);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1006
+		  "%s", va->load_init?va->load_init:"(null)");
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1007
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1008
 	if (write (*req_fd, &req, sizeof (req)) != sizeof (req)) {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1009
 		jack_error ("cannot send request to jack server (%s)",
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1010
@@ -1955,7 +1955,7 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1011
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1012
 	client->control->pid = getpid ();
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1013
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1014
-#ifdef USE_CAPABILITIES
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1015
+#if defined(USE_CAPABILITIES) || defined(USE_RBAC)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1016
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1017
 	if (client->engine->has_capabilities != 0 &&
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1018
 	    client->control->pid != 0 && client->engine->real_time != 0) {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1019
@@ -1985,7 +1985,7 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1020
 				    "client will run non-realtime");
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1021
 		} 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1022
 	}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1023
-#endif /* USE_CAPABILITIES */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1024
+#endif /* USE_CAPABILITIES || USE_RBAC */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1025
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1026
 	if (client->first_active) {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1027
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1028
diff -Naur jack-audio-connection-kit-0.116.2/libjack/thread.c jack-audio-connection-kit-0.116.2-patch/libjack/thread.c
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1029
--- jack-audio-connection-kit-0.116.2/libjack/thread.c	2008-10-25 14:29:26.000000000 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1030
+++ jack-audio-connection-kit-0.116.2-patch/libjack/thread.c	2009-09-20 19:20:09.752588950 +0200
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1031
@@ -39,6 +39,12 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1032
 #include <sysdeps/pThreadUtilities.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1033
 #endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1034
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1035
+#if defined(USE_RBAC)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1036
+#include <sys/types.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1037
+#include <sys/priocntl.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1038
+#include <sys/rtpriocntl.h>
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1039
+#endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1040
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1041
 static inline void
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1042
 log_result (char *msg, int res)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1043
 {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1044
@@ -52,7 +58,7 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1045
 static void
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1046
 maybe_get_capabilities (jack_client_t* client)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1047
 {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1048
-#ifdef USE_CAPABILITIES
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1049
+#if defined(USE_CAPABILITIES) || defined(USE_RBAC)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1050
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1051
 	if (client != 0) {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1052
 		
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1053
@@ -86,7 +92,7 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1054
 			}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1055
 		}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1056
 	}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1057
-#endif /* USE_CAPABILITIES */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1058
+#endif /* USE_CAPABILITIES || USE_RBAC */
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1059
 }	
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1060
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1061
 static void*
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1062
@@ -257,6 +263,29 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1063
 int
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1064
 jack_acquire_real_time_scheduling (pthread_t thread, int priority)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1065
 {
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1066
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1067
+#if defined(USE_RBAC)
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1068
+	uintptr_t       args[8];
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1069
+	uintptr_t       *argsp = &args[0];
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1070
+	pcinfo_t        pcinfo;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1071
+	pri_t           maxrtpri;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1072
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1073
+	maxrtpri = 60;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1074
+	if (priority<0) priority=0;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1075
+	if (priority>maxrtpri) priority=maxrtpri;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1076
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1077
+	args[0]=RT_KY_PRI;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1078
+	args[1]=priority;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1079
+	args[2]=0;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1080
+
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1081
+	if (priocntl(P_LWPID, thread, PC_SETXPARMS, "RT", argsp[0], argsp[1],
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1082
+          argsp[2], 0)!=0){
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1083
+		fprintf(stderr,"Error: Cannot change to RT priority : %s\n",
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1084
+			strerror(errno));
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1085
+		return(-1);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1086
+	}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1087
+	return(0);
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1088
+#else
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1089
 	struct sched_param rtparam;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1090
 	int x;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1091
 	
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1092
@@ -273,6 +302,7 @@
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1093
 	}
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1094
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1095
         return 0;
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1096
+#endif
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1097
 }
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1098
 
b02c1fa671c9 base-specs/jack.spec: update to newer version
jurikm
parents:
diff changeset
  1099
 #endif /* JACK_USE_MACH_THREADS */