View | Details | Raw Unified | Return to bug 245321 | Differences between
and this patch

Collapse All | Expand All

(-)audio/alsa-lib/Makefile (-18 / +11 lines)
Lines 2-14 Link Here
2
# $FreeBSD$
2
# $FreeBSD$
3
3
4
PORTNAME=	alsa-lib
4
PORTNAME=	alsa-lib
5
PORTVERSION=	1.1.2
5
PORTVERSION=	1.2.2
6
PORTREVISION=	2
7
CATEGORIES=	audio
6
CATEGORIES=	audio
8
MASTER_SITES=	ftp://ftp.alsa-project.org/pub/lib/ \
7
MASTER_SITES=	ftp://ftp.alsa-project.org/pub/lib/ \
9
		GENTOO
8
		GENTOO
10
9
11
MAINTAINER=	ports@FreeBSD.org
10
MAINTAINER=	greg@unrelenting.technology
12
COMMENT=	ALSA compatibility library
11
COMMENT=	ALSA compatibility library
13
12
14
LICENSE=	LGPL21+
13
LICENSE=	LGPL21+
Lines 25-45 TEST_ENV= ${MAKE_ENV} \ Link Here
25
TEST_TARGET=	check
24
TEST_TARGET=	check
26
CPPFLAGS+=	-I${FILESDIR}
25
CPPFLAGS+=	-I${FILESDIR}
27
26
28
OPTIONS_DEFINE=	PYTHON
27
OPTIONS_DEFINE=		PYTHON
29
OPTIONS_SUB=	yes
28
OPTIONS_SUB=		yes
30
29
31
PYTHON_USES=			python
30
PYTHON_USES=			gettext-runtime python
32
PYTHON_CONFIGURE_ENABLE=	python
31
PYTHON_CONFIGURE_ENABLE=	mixer-pymods python
33
32
PYTHON_BINARY_ALIAS=		python3-config=${PYTHON_CMD:T}-config
34
post-patch:	.SILENT
33
35
	${REINPLACE_CMD} -e '/LIBS/ { s/-ldl//g; s/-lrt//g; }' \
34
post-patch:
36
		-e 's/python-config/${PYTHON_CMD:T}-config/g' \
35
	@${REINPLACE_CMD} 's|%%PREFIX%%|${PREFIX}|g' \
37
		-e '/pythonlibs/s/--libs/--ldflags/' \
38
		-e '/_GNU_SOURCE/d' \
39
		-e '/lt_cv_dlopen/s/-ldl//g' ${WRKSRC}/configure
40
	${REINPLACE_CMD} '/LIBADD/s/-ldl//g' \
41
		${WRKSRC}/modules/mixer/simple/Makefile.in
42
	${REINPLACE_CMD} 's|/etc|${PREFIX}&|g' \
43
		${WRKSRC}/src/conf/alsa.conf
36
		${WRKSRC}/src/conf/alsa.conf
44
37
45
post-install:
38
post-install:
(-)audio/alsa-lib/distinfo (-2 / +3 lines)
Lines 1-2 Link Here
1
SHA256 (alsa-lib-1.1.2.tar.bz2) = d38dacd9892b06b8bff04923c380b38fb2e379ee5538935ff37e45b395d861d6
1
TIMESTAMP = 1615528054
2
SIZE (alsa-lib-1.1.2.tar.bz2) = 947423
2
SHA256 (alsa-lib-1.2.2.tar.bz2) = d8e853d8805574777bbe40937812ad1419c9ea7210e176f0def3e6ed255ab3ec
3
SIZE (alsa-lib-1.2.2.tar.bz2) = 1030747
(-)audio/alsa-lib/files/linux/types.h (+10 lines)
Lines 10-15 Link Here
10
10
11
typedef pid_t __kernel_pid_t;
11
typedef pid_t __kernel_pid_t;
12
typedef off_t __kernel_off_t;
12
typedef off_t __kernel_off_t;
13
typedef long __kernel_long_t;
13
14
15
typedef uint8_t __u8;
16
typedef uint16_t __u16;
17
typedef uint32_t __u32;
14
typedef uint64_t __u64;
18
typedef uint64_t __u64;
19
20
typedef int8_t __s8;
21
typedef int16_t __s16;
22
typedef int32_t __s32;
23
typedef int64_t __s64;
24
15
#endif /* _LINUX_TYPES_H */
25
#endif /* _LINUX_TYPES_H */
(-)audio/alsa-lib/files/patch-include_alsa-symbols.h (-59 lines)
Removed Link Here
1
commit 3bad0a21b4d13d8d10691f382c836897fa7a7cb9
2
Author: Breno Leitao <leitao@debian.org>
3
Date:   Wed Feb 22 16:45:00 2017 -0300
4
5
    Drop ppc64-specific workaround for versioned symbols
6
    
7
    Currently aserver fails to build when using parameter
8
    --without-versioned, due to an workaround for ppc64
9
    (06221f86d207cb33ddd4867ca5301eeb247c4400).  This workaround is
10
    not required anymore on the ppc64 ABI v2, and, in fact is breaking the
11
    compilation. Reverting this commit
12
    
13
    Signed-off-by: Breno Leitao <leitao@debian.org>
14
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
15
16
--- include/alsa-symbols.h.orig	2016-08-02 17:48:38 UTC
17
+++ include/alsa-symbols.h
18
@@ -29,19 +29,10 @@
19
 #define INTERNAL_CONCAT2_2(Pre, Post) Pre##Post
20
 #define INTERNAL(Name) INTERNAL_CONCAT2_2(__, Name)
21
 
22
-#ifdef __powerpc64__
23
-# define symbol_version(real, name, version) 			\
24
-	__asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@" #version);	\
25
-	__asm__ (".symver ." ASM_NAME(#real) ",." ASM_NAME(#name) "@" #version)
26
-# define default_symbol_version(real, name, version) 		\
27
-	__asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@@" #version);	\
28
-	__asm__ (".symver ." ASM_NAME(#real) ",." ASM_NAME(#name) "@@" #version)
29
-#else
30
 # define symbol_version(real, name, version) \
31
 	__asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@" #version)
32
 # define default_symbol_version(real, name, version) \
33
 	__asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@@" #version)
34
-#endif
35
 
36
 #ifdef USE_VERSIONED_SYMBOLS
37
 #define use_symbol_version(real, name, version) \
38
@@ -50,13 +41,6 @@
39
 		default_symbol_version(real, name, version)
40
 #else
41
 #define use_symbol_version(real, name, version) /* nothing */
42
-#ifdef __powerpc64__
43
-#define use_default_symbol_version(real, name, version) \
44
-	__asm__ (".weak " ASM_NAME(#name)); 			\
45
-	__asm__ (".weak ." ASM_NAME(#name)); 			\
46
-	__asm__ (".set " ASM_NAME(#name) "," ASM_NAME(#real));		\
47
-	__asm__ (".set ." ASM_NAME(#name) ",." ASM_NAME(#real))
48
-#else
49
 #if defined(__alpha__) || defined(__mips__)
50
 #define use_default_symbol_version(real, name, version) \
51
         __asm__ (".weak " ASM_NAME(#name)); \
52
@@ -65,7 +49,6 @@
53
 #define use_default_symbol_version(real, name, version) \
54
 	__asm__ (".weak " ASM_NAME(#name)); \
55
 	__asm__ (".set " ASM_NAME(#name) "," ASM_NAME(#real))
56
-#endif
57
 #endif
58
 #endif
59
 
(-)audio/alsa-lib/files/patch-modules_mixer_simple_python.c (-565 lines)
Removed Link Here
1
https://git.alsa-project.org/?p=alsa-lib.git;a=commitdiff;h=345843fc24b3
2
3
--- modules/mixer/simple/python.c.orig	2016-08-02 17:48:38 UTC
4
+++ modules/mixer/simple/python.c
5
@@ -25,6 +25,10 @@
6
 #include "asoundlib.h"
7
 #include "mixer_abst.h"
8
 
9
+#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2))
10
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
11
+#endif
12
+
13
 struct python_priv {
14
 	int py_initialized;
15
 	PyObject *py_event_func;
16
@@ -56,20 +60,49 @@ struct pymixer {
17
 
18
 static PyInterpreterState *main_interpreter;
19
 
20
+#if PY_MAJOR_VERSION >= 3
21
+  #define PyInt_FromLong PyLong_FromLong
22
+#endif
23
+
24
+static inline int get_long(PyObject *o, long *val)
25
+{
26
+#if PY_MAJOR_VERSION < 3
27
+        if (PyInt_Check(o)) {
28
+                *val = PyInt_AsLong(o);
29
+                return 0;
30
+        }
31
+#endif
32
+        if (PyLong_Check(o)) {
33
+                *val = PyLong_AsLong(o);
34
+                return 0;
35
+        }
36
+        return 1;
37
+}
38
+
39
+static inline PyObject *InternFromString(const char *name)
40
+{
41
+#if PY_MAJOR_VERSION < 3
42
+        return PyString_InternFromString(name);
43
+#else
44
+        return PyUnicode_InternFromString(name);
45
+#endif
46
+}
47
+
48
 static void *get_C_ptr(PyObject *obj, const char *attr)
49
 {
50
 	PyObject *o;
51
+	long val;
52
 
53
-	o = PyObject_GetAttr(obj, PyString_InternFromString(attr));
54
+	o = PyObject_GetAttr(obj, InternFromString(attr));
55
 	if (!o) {
56
 		PyErr_Format(PyExc_TypeError, "missing '%s' attribute", attr);
57
 		return NULL;
58
 	}
59
-	if (!PyInt_Check(o)) {
60
-		PyErr_Format(PyExc_TypeError, "'%s' attribute is not integer", attr);
61
+	if (get_long(o, &val)) {
62
+		PyErr_Format(PyExc_TypeError, "'%s' attribute is not Int or Long", attr);
63
 		return NULL;
64
 	}
65
-	return (void *)PyInt_AsLong(o);
66
+	return (void *)val;
67
 }
68
 
69
 static struct pymelem *melem_to_pymelem(snd_mixer_elem_t *elem)
70
@@ -80,11 +113,11 @@ static struct pymelem *melem_to_pymelem(snd_mixer_elem
71
 static int pcall(struct pymelem *pymelem, const char *attr, PyObject *args, PyObject **_res)
72
 {
73
 	PyObject *obj = (PyObject *)pymelem, *res;
74
-	int xres = 0;
75
+	long xres = 0;
76
 
77
 	if (_res)
78
 		*_res = NULL;
79
-	obj = PyObject_GetAttr(obj, PyString_InternFromString(attr));
80
+	obj = PyObject_GetAttr(obj, InternFromString(attr));
81
 	if (!obj) {
82
 		PyErr_Format(PyExc_TypeError, "missing '%s' attribute", attr);
83
 		PyErr_Print();
84
@@ -103,8 +136,12 @@ static int pcall(struct pymelem *pymelem, const char *
85
 		*_res = res;
86
 		res = PyTuple_GetItem(res, 0);
87
 	}
88
-	if (PyInt_Check(res)) {
89
+	if (PyLong_Check(res)) {
90
+		xres = PyLong_AsLong(res);
91
+#if PY_MAJOR_VERSION < 3
92
+	} else if (PyInt_Check(res)) {
93
 		xres = PyInt_AsLong(res);
94
+#endif
95
 	} else if (res == Py_None) {
96
 		xres = 0;
97
 	} else if (PyBool_Check(res)) {
98
@@ -155,7 +192,7 @@ static int is_ops(snd_mixer_elem_t *elem, int dir, int
99
 static int get_x_range_ops(snd_mixer_elem_t *elem, int dir,
100
                            long *min, long *max, const char *attr)
101
 {
102
-	PyObject *obj1, *res;
103
+	PyObject *obj1, *t1, *t2, *res;
104
 	struct pymelem *pymelem = melem_to_pymelem(elem);
105
 	int err;
106
 	
107
@@ -163,21 +200,23 @@ static int get_x_range_ops(snd_mixer_elem_t *elem, int
108
 	PyTuple_SET_ITEM(obj1, 0, PyInt_FromLong(dir));
109
 	err = pcall(pymelem, attr, obj1, &res);
110
 	if (err >= 0) {
111
-		err = !PyInt_Check(PyTuple_GetItem(res, 1)) || !PyInt_Check(PyTuple_GetItem(res, 2));
112
-		if (err) {
113
-			err = !PyLong_Check(PyTuple_GetItem(res, 1)) || !PyLong_Check(PyTuple_GetItem(res, 2));
114
-			if (err) {
115
-				PyErr_Format(PyExc_TypeError, "wrong result (invalid tuple)");
116
-				PyErr_Print();
117
-				PyErr_Clear();
118
-				err = -EIO;
119
-			} else {
120
-				*min = PyLong_AsLong(PyTuple_GetItem(res, 1));
121
-				*max = PyLong_AsLong(PyTuple_GetItem(res, 2));
122
-			}
123
-		} else {
124
+		t1 = PyTuple_GetItem(res, 1);
125
+		t2 = PyTuple_GetItem(res, 2);
126
+		if (PyLong_Check(t1) && PyLong_Check(t2)) {
127
+			*min = PyLong_AsLong(PyTuple_GetItem(res, 1));
128
+			*max = PyLong_AsLong(PyTuple_GetItem(res, 2));
129
+			err = 0;
130
+#if PY_MAJOR_VERSION < 3
131
+		} else if (PyInt_Check(t1) && PyInt_Check(t2)) {
132
 			*min = PyInt_AsLong(PyTuple_GetItem(res, 1));
133
 			*max = PyInt_AsLong(PyTuple_GetItem(res, 2));
134
+			err = 0;
135
+#endif
136
+		} else {
137
+			PyErr_Format(PyExc_TypeError, "wrong result (invalid tuple)");
138
+			PyErr_Print();
139
+			PyErr_Clear();
140
+			err = -EIO;
141
 		}
142
 	}
143
 	Py_XDECREF(res);
144
@@ -207,7 +246,7 @@ static int get_x_ops(snd_mixer_elem_t *elem, int dir,
145
                      long channel, long *value,
146
                      const char *attr)
147
 {
148
-	PyObject *obj1, *res;
149
+	PyObject *obj1, *t1, *res;
150
 	struct pymelem *pymelem = melem_to_pymelem(elem);
151
 	int err;
152
 	
153
@@ -216,19 +255,20 @@ static int get_x_ops(snd_mixer_elem_t *elem, int dir,
154
 	PyTuple_SET_ITEM(obj1, 1, PyInt_FromLong(channel));
155
 	err = pcall(pymelem, attr, obj1, &res);
156
 	if (err >= 0) {
157
-		err = !PyInt_Check(PyTuple_GetItem(res, 1));
158
-		if (err) {
159
-			err = !PyLong_Check(PyTuple_GetItem(res, 1));
160
-			if (err) {
161
-				PyErr_Format(PyExc_TypeError, "wrong result (invalid tuple)");
162
-				PyErr_Print();
163
-				PyErr_Clear();
164
-				err = -EIO;
165
-			} else {
166
-				*value = PyLong_AsLong(PyTuple_GetItem(res, 1));
167
-			}
168
+		t1 = PyTuple_GetItem(res, 1);
169
+		if (PyLong_Check(t1)) {
170
+			*value = PyLong_AsLong(t1);
171
+			err = 0;
172
+#if PY_MAJOR_VERSION < 3
173
+		} else if (PyInt_Check(t1)) {
174
+			*value = PyInt_AsLong(t1);
175
+			err = 0;
176
+#endif
177
 		} else {
178
-			*value = PyInt_AsLong(PyTuple_GetItem(res, 1));
179
+			PyErr_Format(PyExc_TypeError, "wrong result (invalid tuple)");
180
+			PyErr_Print();
181
+			PyErr_Clear();
182
+			err = -EIO;
183
 		}
184
 	}
185
 	Py_XDECREF(res);
186
@@ -265,7 +305,7 @@ static int ask_dB_vol_ops(snd_mixer_elem_t *elem,
187
 			  long *dbValue,
188
 			  int xdir)
189
 {
190
-	PyObject *obj1, *res;
191
+	PyObject *obj1, *t1, *res;
192
 	struct pymelem *pymelem = melem_to_pymelem(elem);
193
 	int err;
194
 	
195
@@ -275,19 +315,20 @@ static int ask_dB_vol_ops(snd_mixer_elem_t *elem,
196
 	PyTuple_SET_ITEM(obj1, 2, PyInt_FromLong(xdir));
197
 	err = pcall(pymelem, "opsGetDBVol", obj1, &res);
198
 	if (err >= 0) {
199
-		err = !PyInt_Check(PyTuple_GetItem(res, 1));
200
-		if (err) {
201
-			err = !PyLong_Check(PyTuple_GetItem(res, 1));
202
-			if (err) {
203
-				PyErr_Format(PyExc_TypeError, "wrong result (invalid tuple)");
204
-				PyErr_Print();
205
-				PyErr_Clear();
206
-				err = -EIO;
207
-			} else {
208
-				*dbValue = PyLong_AsLong(PyTuple_GetItem(res, 1));
209
-			}
210
+		t1 = PyTuple_GetItem(res, 1);
211
+		if (PyLong_Check(t1)) {
212
+			*dbValue = PyLong_AsLong(t1);
213
+			err = 0;
214
+#if PY_MAJOR_VERSION < 3
215
+		} else if (PyInt_Check(t1)) {
216
+			*dbValue = PyInt_AsLong(t1);
217
+			err = 0;
218
+#endif
219
 		} else {
220
-			*dbValue = PyInt_AsLong(PyTuple_GetItem(res, 1));
221
+			PyErr_Format(PyExc_TypeError, "wrong result (invalid tuple)");
222
+			PyErr_Print();
223
+			PyErr_Clear();
224
+			err = -EIO;
225
 		}
226
 	}
227
 	Py_XDECREF(res);
228
@@ -353,7 +394,7 @@ static int enum_item_name_ops(snd_mixer_elem_t *elem,
229
                               unsigned int item,
230
                               size_t maxlen, char *buf)
231
 {
232
-	PyObject *obj1, *res;
233
+	PyObject *obj1, *obj2, *t1, *res;
234
 	struct pymelem *pymelem = melem_to_pymelem(elem);
235
 	int err;
236
 	unsigned int len;
237
@@ -363,19 +404,35 @@ static int enum_item_name_ops(snd_mixer_elem_t *elem,
238
 	PyTuple_SET_ITEM(obj1, 0, PyInt_FromLong(item));
239
 	err = pcall(pymelem, "opsGetEnumItemName", obj1, &res);
240
 	if (err >= 0) {
241
-		err = !PyString_Check(PyTuple_GetItem(res, 1));
242
-		if (err) {
243
-			PyErr_Format(PyExc_TypeError, "wrong result (invalid tuple)");
244
-			PyErr_Print();
245
-			PyErr_Clear();
246
-			err = -EIO;
247
-		} else {
248
-			s = PyString_AsString(PyTuple_GetItem(res, 1));
249
+		t1 = PyTuple_GetItem(res, 1);
250
+		if (PyUnicode_Check(t1)) {
251
+			obj2 = PyUnicode_AsEncodedString(t1, "utf-8", "strict");
252
+			if (obj2) {
253
+				s = PyBytes_AsString(obj2);
254
+				len = strlen(s);
255
+				if (maxlen - 1 > len)
256
+					len = maxlen - 1;
257
+				memcpy(buf, s, len);
258
+				buf[len] = '\0';
259
+				Py_DECREF(obj2);
260
+			} else {
261
+				goto errlbl;
262
+			}
263
+#if PY_MAJOR_VERSION < 3
264
+		} else if (PyString_Check(t1)) {
265
+			s = PyString_AsString(t1);
266
 			len = strlen(s);
267
 			if (maxlen - 1 > len)
268
 				len = maxlen - 1;
269
 			memcpy(buf, s, len);
270
 			buf[len] = '\0';
271
+#endif
272
+		} else {
273
+errlbl:
274
+			PyErr_Format(PyExc_TypeError, "wrong result (invalid tuple)");
275
+			PyErr_Print();
276
+			PyErr_Clear();
277
+			err = -EIO;
278
 		}
279
 	}
280
 	Py_XDECREF(res);
281
@@ -386,7 +443,7 @@ static int get_enum_item_ops(snd_mixer_elem_t *elem,
282
                              snd_mixer_selem_channel_id_t channel,
283
                              unsigned int *itemp)
284
 {
285
-	PyObject *obj1, *res;
286
+	PyObject *obj1, *t1, *res;
287
 	struct pymelem *pymelem = melem_to_pymelem(elem);
288
 	int err;
289
 	
290
@@ -394,14 +451,20 @@ static int get_enum_item_ops(snd_mixer_elem_t *elem,
291
 	PyTuple_SET_ITEM(obj1, 0, PyInt_FromLong(channel));
292
 	err = pcall(pymelem, "opsGetEnumItem", obj1, &res);
293
 	if (err >= 0) {
294
-		err = !PyInt_Check(PyTuple_GetItem(res, 1));
295
-		if (err) {
296
+		t1 = PyTuple_GetItem(res, 1);
297
+		if (PyLong_Check(t1)) {
298
+			*itemp = PyLong_AsLong(t1);
299
+			err = 0;
300
+#if PY_MAJOR_VERSION < 3
301
+		} else if (PyInt_Check(t1)) {
302
+			*itemp = PyInt_AsLong(t1);
303
+			err = 0;
304
+#endif
305
+		} else {
306
 			PyErr_Format(PyExc_TypeError, "wrong result (invalid tuple)");
307
 			PyErr_Print();
308
 			PyErr_Clear();
309
 			err = -EIO;
310
-		} else {
311
-			*itemp = PyInt_AsLong(PyTuple_GetItem(res, 1));
312
 		}
313
 	}
314
 	Py_XDECREF(res);
315
@@ -464,7 +527,7 @@ pymelem_get_caps(struct pymelem *pymelem, void *priv A
316
 static PyObject *
317
 pymelem_get_name(struct pymelem *pymelem, void *priv ATTRIBUTE_UNUSED)
318
 {
319
-	return PyString_FromString(snd_mixer_selem_id_get_name(pymelem->selem.id));
320
+	return PyUnicode_FromString(snd_mixer_selem_id_get_name(pymelem->selem.id));
321
 }
322
 
323
 static PyObject *
324
@@ -476,12 +539,18 @@ pymelem_get_index(struct pymelem *pymelem, void *priv 
325
 static int
326
 pymelem_set_caps(struct pymelem *pymelem, PyObject *val, void *priv ATTRIBUTE_UNUSED)
327
 {
328
-	if (!PyInt_Check(val)) {
329
-		PyErr_SetString(PyExc_TypeError, "The last attribute value must be an integer");
330
-		return -1;
331
+	if (PyLong_Check(val)) {
332
+		pymelem->selem.caps = PyLong_AsLong(val);
333
+		return 0;
334
 	}
335
-	pymelem->selem.caps = PyInt_AsLong(val);
336
-	return 0;
337
+#if PY_MAJOR_VERSION < 3
338
+	if (PyInt_Check(val)) {
339
+		pymelem->selem.caps = PyInt_AsLong(val);
340
+		return 0;
341
+	}
342
+#endif
343
+	PyErr_SetString(PyExc_TypeError, "The last attribute value must be an integer");
344
+	return -1;
345
 }
346
 
347
 static PyObject *
348
@@ -588,7 +657,6 @@ static void
349
 pymelem_dealloc(struct pymelem *self)
350
 {
351
 	selem_free(self->melem);
352
-        self->ob_type->tp_free(self);
353
 }
354
 
355
 static PyGetSetDef pymelem_getseters[] = {
356
@@ -634,7 +702,7 @@ static PyMethodDef pymelem_methods[] = {
357
 };
358
 
359
 static PyTypeObject pymelem_type = {
360
-        PyObject_HEAD_INIT(0)
361
+        PyVarObject_HEAD_INIT(NULL, 0)
362
         tp_name:        "smixer_python.InternalMElement",
363
         tp_basicsize:   sizeof(struct pymelem),
364
         tp_dealloc:     (destructor)pymelem_dealloc,
365
@@ -708,7 +776,7 @@ pymixer_melement_new(struct pymixer *pymixer, PyObject
366
 		obj1 = PyTuple_New(4);
367
 		if (PyTuple_SET_ITEM(obj1, 0, (PyObject *)pymixer))
368
 			Py_INCREF((PyObject *)pymixer);
369
-		PyTuple_SET_ITEM(obj1, 1, PyString_FromString(name));
370
+		PyTuple_SET_ITEM(obj1, 1, PyUnicode_FromString(name));
371
 		PyTuple_SET_ITEM(obj1, 2, PyInt_FromLong(index));
372
 		PyTuple_SET_ITEM(obj1, 3, PyInt_FromLong(weight));
373
 		obj2 = PyObject_CallObject(obj, obj1);
374
@@ -800,7 +868,6 @@ static void
375
 pymixer_dealloc(struct pymixer *self)
376
 {
377
 	pymixer_free(self);
378
-        self->ob_type->tp_free(self);
379
 }
380
 
381
 static PyGetSetDef pymixer_getseters[] = {
382
@@ -816,7 +883,7 @@ static PyMethodDef pymixer_methods[] = {
383
 };
384
 
385
 static PyTypeObject pymixer_type = {
386
-        PyObject_HEAD_INIT(0)
387
+        PyVarObject_HEAD_INIT(NULL, 0)
388
         tp_name:        "smixer_python.InternalMixer",
389
         tp_basicsize:   sizeof(struct pymixer),
390
         tp_dealloc:     (destructor)pymixer_dealloc,
391
@@ -910,12 +977,12 @@ int alsa_mixer_simple_event(snd_mixer_class_t *class, 
392
 			    snd_hctl_elem_t *helem, snd_mixer_elem_t *melem)
393
 {
394
 	struct python_priv *priv = snd_mixer_sbasic_get_private(class);
395
-	PyThreadState *tstate, *origstate;
396
+	PyThreadState *tstate;
397
 	PyObject *t, *o, *r;
398
 	int res = -ENOMEM;
399
 
400
 	tstate = PyThreadState_New(main_interpreter);
401
-        origstate = PyThreadState_Swap(tstate);
402
+	PyThreadState_Swap(tstate);
403
         
404
         t = PyTuple_New(3);
405
         if (t) {
406
@@ -935,8 +1002,12 @@ int alsa_mixer_simple_event(snd_mixer_class_t *class, 
407
 		r = PyObject_CallObject(priv->py_event_func, t);
408
 		Py_DECREF(t);
409
 		if (r) {
410
-			if (PyInt_Check(r)) {
411
+			if (PyLong_Check(r)) {
412
+				res = PyLong_AsLong(r);
413
+#if PY_MAJOR_VERSION < 3
414
+			} else if (PyInt_Check(r)) {
415
 				res = PyInt_AsLong(r);
416
+#endif
417
 			} else if (r == Py_None) {
418
 				res = 0;
419
 			}
420
@@ -966,6 +1037,71 @@ static void alsa_mixer_simple_free(snd_mixer_class_t *
421
 	free(priv);
422
 }
423
 
424
+static int alsa_mixer_simple_pyinit(struct python_priv *priv,
425
+                                    PyObject *py_mod,
426
+                                    FILE *fp,
427
+				    const char *file,
428
+				    snd_mixer_class_t *class,
429
+				    snd_mixer_t *mixer,
430
+				    const char *device)
431
+{
432
+	PyObject *obj, *obj1, *obj2, *mdict;
433
+
434
+	mdict = priv->py_mdict = PyModule_GetDict(py_mod);
435
+	obj = PyUnicode_FromString(file);
436
+	if (obj)
437
+		PyDict_SetItemString(mdict, "__file__", obj);
438
+	Py_XDECREF(obj);
439
+	obj = PyUnicode_FromString(device);
440
+	if (obj)
441
+		PyDict_SetItemString(mdict, "device", obj);
442
+	Py_XDECREF(obj);
443
+	Py_INCREF(&pymelem_type);
444
+	Py_INCREF(&pymixer_type);
445
+	PyModule_AddObject(py_mod, "InternalMElement", (PyObject *)&pymelem_type);
446
+	PyModule_AddObject(py_mod, "InternalMixer", (PyObject *)&pymixer_type);
447
+	obj = PyDict_GetItemString(mdict, "InternalMixer");
448
+	if (obj) {
449
+		obj1 = PyTuple_New(3);
450
+		PyTuple_SET_ITEM(obj1, 0, PyInt_FromLong((long)class));
451
+		PyTuple_SET_ITEM(obj1, 1, PyInt_FromLong((long)mixer));
452
+		if (PyTuple_SET_ITEM(obj1, 2, mdict))
453
+			Py_INCREF(mdict);
454
+		obj2 = PyObject_CallObject(obj, obj1);
455
+		Py_XDECREF(obj1);
456
+		PyDict_SetItemString(mdict, "mixer", obj2);
457
+		priv->py_mixer = obj2;
458
+	} else {
459
+		SNDERR("Unable to create InternalMixer object");
460
+		return -EIO;
461
+	}
462
+
463
+	obj = PyRun_FileEx(fp, file, Py_file_input, mdict, mdict, 1);
464
+	if (obj == NULL)
465
+		PyErr_Print();
466
+	Py_XDECREF(obj);
467
+	priv->py_event_func = PyDict_GetItemString(mdict, "event");
468
+	if (priv->py_event_func == NULL) {
469
+		SNDERR("Unable to find python function 'event'");
470
+		return -EIO;
471
+	}
472
+	return 0;
473
+}
474
+
475
+#if PY_MAJOR_VERSION >= 3
476
+static struct PyModuleDef smixer_python_module = {
477
+        PyModuleDef_HEAD_INIT,
478
+        "smixer_python",
479
+        NULL,
480
+        0,
481
+        python_methods,
482
+        NULL,
483
+        NULL,
484
+        NULL,
485
+        NULL
486
+};
487
+#endif
488
+
489
 int alsa_mixer_simple_finit(snd_mixer_class_t *class,
490
 			    snd_mixer_t *mixer,
491
 			    const char *device)
492
@@ -973,7 +1109,7 @@ int alsa_mixer_simple_finit(snd_mixer_class_t *class,
493
 	struct python_priv *priv;
494
 	FILE *fp;
495
 	const char *file;
496
-	PyObject *obj, *obj1, *obj2, *py_mod, *mdict;
497
+	PyObject *obj, *py_mod;
498
 
499
 	priv = calloc(1, sizeof(*priv));
500
 	if (priv == NULL)
501
@@ -993,54 +1129,21 @@ int alsa_mixer_simple_finit(snd_mixer_class_t *class,
502
 	}
503
 	
504
 	Py_Initialize();
505
-	if (PyType_Ready(&pymelem_type) < 0)
506
+	if (PyType_Ready(&pymelem_type) < 0 ||
507
+	    PyType_Ready(&pymixer_type) < 0) {
508
+		fclose(fp);
509
 		return -EIO;
510
-	if (PyType_Ready(&pymixer_type) < 0)
511
-		return -EIO;
512
+	}
513
+#if PY_MAJOR_VERSION < 3
514
 	Py_InitModule("smixer_python", python_methods);
515
+#else
516
+	PyModule_Create(&smixer_python_module);
517
+#endif
518
 	priv->py_initialized = 1;
519
 	main_interpreter = PyThreadState_Get()->interp;
520
 	obj = PyImport_GetModuleDict();
521
 	py_mod = PyDict_GetItemString(obj, "__main__");
522
-	if (py_mod) {
523
-		mdict = priv->py_mdict = PyModule_GetDict(py_mod);
524
-		obj = PyString_FromString(file);
525
-		if (obj)
526
-			PyDict_SetItemString(mdict, "__file__", obj);
527
-		Py_XDECREF(obj);
528
-		obj = PyString_FromString(device);
529
-		if (obj)
530
-			PyDict_SetItemString(mdict, "device", obj);
531
-		Py_XDECREF(obj);
532
-		Py_INCREF(&pymixer_type);
533
-		PyModule_AddObject(py_mod, "InternalMElement", (PyObject *)&pymelem_type);
534
-		PyModule_AddObject(py_mod, "InternalMixer", (PyObject *)&pymixer_type);
535
-		obj = PyDict_GetItemString(mdict, "InternalMixer");
536
-		if (obj) {
537
-			obj1 = PyTuple_New(3);
538
-			PyTuple_SET_ITEM(obj1, 0, PyInt_FromLong((long)class));
539
-			PyTuple_SET_ITEM(obj1, 1, PyInt_FromLong((long)mixer));
540
-			if (PyTuple_SET_ITEM(obj1, 2, mdict))
541
-				Py_INCREF(mdict);
542
-			obj2 = PyObject_CallObject(obj, obj1);
543
-			Py_XDECREF(obj1);
544
-			PyDict_SetItemString(mdict, "mixer", obj2);
545
-			priv->py_mixer = obj2;
546
-		} else {
547
-			SNDERR("Unable to create InternalMixer object");
548
-			return -EIO;
549
-		}
550
-
551
-
552
-		obj = PyRun_FileEx(fp, file, Py_file_input, mdict, mdict, 1);
553
-		if (obj == NULL)
554
-			PyErr_Print();
555
-		Py_XDECREF(obj);
556
-		priv->py_event_func = PyDict_GetItemString(mdict, "event");
557
-		if (priv->py_event_func == NULL) {
558
-			SNDERR("Unable to find python function 'event'");
559
-			return -EIO;
560
-		}
561
-	}
562
+	if (py_mod)
563
+		alsa_mixer_simple_pyinit(priv, py_mod, fp, file, class, mixer, device);
564
 	return 0;
565
 }
(-)audio/alsa-lib/files/patch-src_async.c (-3 / +3 lines)
Lines 1-8 Link Here
1
$NetBSD: patch-bk,v 1.1 2008/12/25 13:18:00 hasso Exp $
1
$NetBSD: patch-bk,v 1.1 2008/12/25 13:18:00 hasso Exp $
2
2
3
--- src/async.c.orig	2016-03-31 13:10:39 UTC
3
--- src/async.c.orig	2020-02-19 09:35:39 UTC
4
+++ src/async.c
4
+++ src/async.c
5
@@ -51,6 +51,15 @@ static LIST_HEAD(snd_async_handlers);
5
@@ -54,6 +54,15 @@ static LIST_HEAD(snd_async_handlers);
6
 
6
 
7
 static void snd_async_handler(int signo ATTRIBUTE_UNUSED, siginfo_t *siginfo, void *context ATTRIBUTE_UNUSED)
7
 static void snd_async_handler(int signo ATTRIBUTE_UNUSED, siginfo_t *siginfo, void *context ATTRIBUTE_UNUSED)
8
 {
8
 {
Lines 18-24 $NetBSD: patch-bk,v 1.1 2008/12/25 13:18:00 hasso Exp $ Link Here
18
 	int fd;
18
 	int fd;
19
 	struct list_head *i;
19
 	struct list_head *i;
20
 	//assert(siginfo->si_code == SI_SIGIO);
20
 	//assert(siginfo->si_code == SI_SIGIO);
21
@@ -60,6 +69,7 @@ static void snd_async_handler(int signo 
21
@@ -66,6 +75,7 @@ static void snd_async_handler(int signo ATTRIBUTE_UNUS
22
 		if (h->fd == fd && h->callback)
22
 		if (h->fd == fd && h->callback)
23
 			h->callback(h);
23
 			h->callback(h);
24
 	}
24
 	}
(-)audio/alsa-lib/files/patch-src_conf_alsa.conf (+13 lines)
Added Link Here
1
--- src/conf/alsa.conf.orig	2020-02-19 09:35:39 UTC
2
+++ src/conf/alsa.conf
3
@@ -8,8 +8,8 @@
4
 	{
5
 		func load
6
 		files [
7
-			"/etc/alsa/conf.d"
8
-			"/etc/asound.conf"
9
+			"%%PREFIX%%/etc/alsa/conf.d"
10
+			"%%PREFIX%%/etc/asound.conf"
11
 			"~/.asoundrc"
12
 		]
13
 		errors false
(-)audio/alsa-lib/pkg-plist (-68 / +17 lines)
Lines 1-5 Link Here
1
bin/aserver
1
bin/aserver
2
include/alsa/alisp.h
3
include/alsa/asoundef.h
2
include/alsa/asoundef.h
4
include/alsa/asoundlib.h
3
include/alsa/asoundlib.h
5
include/alsa/conf.h
4
include/alsa/conf.h
Lines 33-59 include/alsa/sound/sb16_csp.h Link Here
33
include/alsa/sound/sscape_ioctl.h
32
include/alsa/sound/sscape_ioctl.h
34
include/alsa/sound/tlv.h
33
include/alsa/sound/tlv.h
35
include/alsa/sound/type_compat.h
34
include/alsa/sound/type_compat.h
35
include/alsa/sound/uapi/asoc.h
36
include/alsa/sound/uapi/asound_fm.h
37
include/alsa/sound/uapi/emu10k1.h
38
include/alsa/sound/uapi/hdsp.h
39
include/alsa/sound/uapi/hdspm.h
40
include/alsa/sound/uapi/sb16_csp.h
41
include/alsa/sound/uapi/sscape_ioctl.h
42
include/alsa/sound/uapi/tlv.h
36
include/alsa/timer.h
43
include/alsa/timer.h
37
include/alsa/topology.h
44
include/alsa/topology.h
38
include/alsa/use-case.h
45
include/alsa/use-case.h
39
include/alsa/version.h
46
include/alsa/version.h
47
include/asoundlib.h
40
include/sys/asoundlib.h
48
include/sys/asoundlib.h
41
lib/alsa-lib/smixer/smixer-ac97.la
42
lib/alsa-lib/smixer/smixer-ac97.so
43
lib/alsa-lib/smixer/smixer-hda.la
44
lib/alsa-lib/smixer/smixer-hda.so
45
%%PYTHON%%lib/alsa-lib/smixer/smixer-python.la
49
%%PYTHON%%lib/alsa-lib/smixer/smixer-python.la
46
%%PYTHON%%lib/alsa-lib/smixer/smixer-python.so
50
%%PYTHON%%lib/alsa-lib/smixer/smixer-python.so
47
lib/alsa-lib/smixer/smixer-sbase.la
48
lib/alsa-lib/smixer/smixer-sbase.so
49
lib/libasound.la
51
lib/libasound.la
50
lib/libasound.so
52
lib/libasound.so
51
lib/libasound.so.2
53
lib/libasound.so.2
52
lib/libasound.so.2.0.0
54
lib/libasound.so.2.0.0
55
lib/libatopology.la
56
lib/libatopology.so
57
lib/libatopology.so.2
58
lib/libatopology.so.2.0.0
59
libdata/pkgconfig/alsa-topology.pc
53
libdata/pkgconfig/alsa.pc
60
libdata/pkgconfig/alsa.pc
54
share/aclocal/alsa.m4
61
share/aclocal/alsa.m4
55
share/alsa/alsa.conf
62
share/alsa/alsa.conf
56
share/alsa/alsa.conf.d/README
57
share/alsa/cards/AACI.conf
63
share/alsa/cards/AACI.conf
58
share/alsa/cards/ATIIXP-MODEM.conf
64
share/alsa/cards/ATIIXP-MODEM.conf
59
share/alsa/cards/ATIIXP-SPDMA.conf
65
share/alsa/cards/ATIIXP-SPDMA.conf
Lines 83-88 share/alsa/cards/FWSpeakers.conf Link Here
83
share/alsa/cards/FireWave.conf
89
share/alsa/cards/FireWave.conf
84
share/alsa/cards/GUS.conf
90
share/alsa/cards/GUS.conf
85
share/alsa/cards/HDA-Intel.conf
91
share/alsa/cards/HDA-Intel.conf
92
share/alsa/cards/HdmiLpeAudio.conf
86
share/alsa/cards/ICE1712.conf
93
share/alsa/cards/ICE1712.conf
87
share/alsa/cards/ICE1724.conf
94
share/alsa/cards/ICE1724.conf
88
share/alsa/cards/ICH-MODEM.conf
95
share/alsa/cards/ICH-MODEM.conf
Lines 99-106 share/alsa/cards/RME9636.conf Link Here
99
share/alsa/cards/RME9652.conf
106
share/alsa/cards/RME9652.conf
100
share/alsa/cards/SB-XFi.conf
107
share/alsa/cards/SB-XFi.conf
101
share/alsa/cards/SI7018.conf
108
share/alsa/cards/SI7018.conf
102
share/alsa/cards/SI7018/sndoc-mixer.alisp
103
share/alsa/cards/SI7018/sndop-mixer.alisp
104
share/alsa/cards/TRID4DWAVENX.conf
109
share/alsa/cards/TRID4DWAVENX.conf
105
share/alsa/cards/USB-Audio.conf
110
share/alsa/cards/USB-Audio.conf
106
share/alsa/cards/VIA686A.conf
111
share/alsa/cards/VIA686A.conf
Lines 111-118 share/alsa/cards/VX222.conf Link Here
111
share/alsa/cards/VXPocket.conf
116
share/alsa/cards/VXPocket.conf
112
share/alsa/cards/VXPocket440.conf
117
share/alsa/cards/VXPocket440.conf
113
share/alsa/cards/YMF744.conf
118
share/alsa/cards/YMF744.conf
114
share/alsa/cards/aliases.alisp
115
share/alsa/cards/aliases.conf
119
share/alsa/cards/aliases.conf
120
share/alsa/cards/pistachio-card.conf
121
share/alsa/cards/vc4-hdmi.conf
116
share/alsa/pcm/center_lfe.conf
122
share/alsa/pcm/center_lfe.conf
117
share/alsa/pcm/default.conf
123
share/alsa/pcm/default.conf
118
share/alsa/pcm/dmix.conf
124
share/alsa/pcm/dmix.conf
Lines 130-190 share/alsa/pcm/surround41.conf Link Here
130
share/alsa/pcm/surround50.conf
136
share/alsa/pcm/surround50.conf
131
share/alsa/pcm/surround51.conf
137
share/alsa/pcm/surround51.conf
132
share/alsa/pcm/surround71.conf
138
share/alsa/pcm/surround71.conf
133
share/alsa/smixer.conf
134
share/alsa/sndo-mixer.alisp
135
share/alsa/topology/broadwell/broadwell.conf
136
share/alsa/topology/sklrt286/codec0_in-cpr-1.bin
137
share/alsa/topology/sklrt286/codec0_in-mi.bin
138
share/alsa/topology/sklrt286/codec0_out-cpr-4.bin
139
share/alsa/topology/sklrt286/codec0_out-mo.bin
140
share/alsa/topology/sklrt286/codec1_out-cpr-5.bin
141
share/alsa/topology/sklrt286/codec1_out-mo.bin
142
share/alsa/topology/sklrt286/dmic01_hifi_in-cpr-3.bin
143
share/alsa/topology/sklrt286/dmic01_hifi_in-mi.bin
144
share/alsa/topology/sklrt286/hdmi1_pt_out-cpr-7.bin
145
share/alsa/topology/sklrt286/hdmi1_pt_out-cpr-8.bin
146
share/alsa/topology/sklrt286/hdmi2_pt_out-cpr-10.bin
147
share/alsa/topology/sklrt286/hdmi2_pt_out-cpr-9.bin
148
share/alsa/topology/sklrt286/hdmi3_pt_out-cpr-11.bin
149
share/alsa/topology/sklrt286/hdmi3_pt_out-cpr-12.bin
150
share/alsa/topology/sklrt286/media0_in-cpr-0.bin
151
share/alsa/topology/sklrt286/media0_in-mi.bin
152
share/alsa/topology/sklrt286/media0_out-cpr-6.bin
153
share/alsa/topology/sklrt286/media0_out-mo.bin
154
share/alsa/topology/sklrt286/skl_i2s.conf
155
share/alsa/ucm/DAISY-I2S/DAISY-I2S.conf
156
share/alsa/ucm/DAISY-I2S/HiFi.conf
157
share/alsa/ucm/GoogleNyan/GoogleNyan.conf
158
share/alsa/ucm/GoogleNyan/HiFi.conf
159
share/alsa/ucm/PAZ00/HiFi.conf
160
share/alsa/ucm/PAZ00/PAZ00.conf
161
share/alsa/ucm/PAZ00/Record.conf
162
share/alsa/ucm/PandaBoard/FMAnalog
163
share/alsa/ucm/PandaBoard/PandaBoard.conf
164
share/alsa/ucm/PandaBoard/hifi
165
share/alsa/ucm/PandaBoard/hifiLP
166
share/alsa/ucm/PandaBoard/record
167
share/alsa/ucm/PandaBoard/voice
168
share/alsa/ucm/PandaBoard/voiceCall
169
share/alsa/ucm/PandaBoardES/FMAnalog
170
share/alsa/ucm/PandaBoardES/PandaBoardES.conf
171
share/alsa/ucm/PandaBoardES/hifi
172
share/alsa/ucm/PandaBoardES/hifiLP
173
share/alsa/ucm/PandaBoardES/record
174
share/alsa/ucm/PandaBoardES/voice
175
share/alsa/ucm/PandaBoardES/voiceCall
176
share/alsa/ucm/SDP4430/FMAnalog
177
share/alsa/ucm/SDP4430/SDP4430.conf
178
share/alsa/ucm/SDP4430/hifi
179
share/alsa/ucm/SDP4430/hifiLP
180
share/alsa/ucm/SDP4430/record
181
share/alsa/ucm/SDP4430/voice
182
share/alsa/ucm/SDP4430/voiceCall
183
share/alsa/ucm/VEYRON-I2S/HiFi.conf
184
share/alsa/ucm/VEYRON-I2S/VEYRON-I2S.conf
185
share/alsa/ucm/broadwell-rt286/HiFi
186
share/alsa/ucm/broadwell-rt286/broadwell-rt286.conf
187
share/alsa/ucm/chtrt5645/HiFi.conf
188
share/alsa/ucm/chtrt5645/chtrt5645.conf
189
share/alsa/ucm/tegraalc5632/tegraalc5632.conf
190
@sample etc/asound.conf.sample
139
@sample etc/asound.conf.sample
(-)audio/alsa-plugins/Makefile (-23 / +18 lines)
Lines 2-14 Link Here
2
# $FreeBSD$
2
# $FreeBSD$
3
3
4
PORTNAME=	alsa-plugins
4
PORTNAME=	alsa-plugins
5
PORTVERSION=	1.1.1
5
PORTVERSION=	1.2.2
6
PORTREVISION=	7
7
CATEGORIES=	audio
6
CATEGORIES=	audio
8
MASTER_SITES=	ftp://ftp.alsa-project.org/pub/plugins/ \
7
MASTER_SITES=	ftp://ftp.alsa-project.org/pub/plugins/ \
9
		GENTOO
8
		GENTOO
10
9
11
MAINTAINER=	ports@FreeBSD.org
10
MAINTAINER=	greg@unrelenting.technology
12
COMMENT=	ALSA compatibility library plugins
11
COMMENT=	ALSA compatibility library plugins
13
12
14
LICENSE=	LGPL21+
13
LICENSE=	LGPL21+
Lines 17-63 LIB_DEPENDS= libasound.so:audio/alsa-lib Link Here
17
16
18
USES=		alias libtool:keepla localbase pkgconfig tar:bzip2
17
USES=		alias libtool:keepla localbase pkgconfig tar:bzip2
19
GNU_CONFIGURE=	yes
18
GNU_CONFIGURE=	yes
19
MAKE_ARGS+=	RM="${RM}"
20
EXTRA_PATCHES+=	${FILESDIR}/alsa-plugins.patch
20
EXTRA_PATCHES+=	${FILESDIR}/alsa-plugins.patch
21
INSTALL_TARGET=	install-strip
21
INSTALL_TARGET=	install-strip
22
CPPFLAGS+=	-I${.CURDIR}/../alsa-lib/files
22
CPPFLAGS+=	-I${.CURDIR}/../alsa-lib/files
23
23
24
OPTIONS_DEFAULT=IO_PTR
24
OPTIONS_DEFAULT=	BUFSZ_P2 IO_PTR PULSEAUDIO
25
OPTIONS_DEFINE=	JACK FFMPEG PULSEAUDIO SAMPLERATE SPEEX
25
OPTIONS_DEFINE=		BUFSZ_P2 FFMPEG JACK PULSEAUDIO SAMPLERATE SPEEX
26
OPTIONS_SUB=	yes
26
OPTIONS_SUB=		yes
27
27
28
OPTIONS_GROUP=	OSS
28
OPTIONS_GROUP=		OSS
29
OPTIONS_GROUP_OSS=IO_PTR BLKCNT_P2 BUFSZ_P2 VERBOSE
29
OPTIONS_GROUP_OSS=	BLKCNT_P2 BUFSZ_P2 IO_PTR VERBOSE
30
30
31
IO_PTR_DESC=	Precise playback/recording pointer
31
IO_PTR_DESC=	Precise playback/recording pointer
32
BLKCNT_P2_DESC=	Restrict number of fragments to ^2 aligned
32
BLKCNT_P2_DESC=	Restrict number of fragments to ^2 aligned
33
BUFSZ_P2_DESC=	Restrict buffer size to ^2 aligned
33
BUFSZ_P2_DESC=	Restrict buffer size to ^2 aligned
34
VERBOSE_DESC=	Print debugging messages
34
VERBOSE_DESC=	Print debugging messages
35
35
36
IO_PTR_CFLAGS=	-DFREEBSD_OSS_USE_IO_PTR
36
IO_PTR_CFLAGS=		-DFREEBSD_OSS_USE_IO_PTR
37
BLKCNT_P2_CFLAGS=-DFREEBSD_OSS_BLKCNT_P2
37
BLKCNT_P2_CFLAGS=	-DFREEBSD_OSS_BLKCNT_P2
38
BUFSZ_P2_CFLAGS=-DFREEBSD_OSS_BUFSZ_P2
38
BUFSZ_P2_CFLAGS=	-DFREEBSD_OSS_BUFSZ_P2
39
VERBOSE_CFLAGS=	-DFREEBSD_OSS_DEBUG_VERBOSE
39
VERBOSE_CFLAGS=		-DFREEBSD_OSS_DEBUG_VERBOSE
40
40
41
JACK_LIB_DEPENDS=	libjack.so:audio/jack
41
JACK_LIB_DEPENDS=	libjack.so:audio/jack
42
JACK_CONFIGURE_ENABLE=	jack
42
JACK_CONFIGURE_ENABLE=	jack
43
JACK_IMPLIES=		SAMPLERATE
43
JACK_IMPLIES=		SAMPLERATE
44
44
45
FFMPEG_LIB_DEPENDS=	libavcodec.so:multimedia/ffmpeg
45
FFMPEG_LIB_DEPENDS=		libavcodec.so:multimedia/ffmpeg
46
FFMPEG_CONFIGURE_ENABLE=avcodec
46
FFMPEG_CONFIGURE_ENABLE=	avcodec
47
47
48
PULSEAUDIO_LIB_DEPENDS=	libpulse.so:audio/pulseaudio
48
PULSEAUDIO_LIB_DEPENDS=		libpulse.so:audio/pulseaudio
49
PULSEAUDIO_CONFIGURE_ENABLE=pulseaudio
49
PULSEAUDIO_CONFIGURE_ENABLE=	pulseaudio
50
50
51
SAMPLERATE_LIB_DEPENDS=	libsamplerate.so:audio/libsamplerate
51
SAMPLERATE_LIB_DEPENDS=		libsamplerate.so:audio/libsamplerate
52
SAMPLERATE_CONFIGURE_ENABLE=samplerate
52
SAMPLERATE_CONFIGURE_ENABLE=	samplerate
53
53
54
SPEEX_LIB_DEPENDS=	libspeex.so:audio/speex
54
SPEEX_LIB_DEPENDS=	libspeex.so:audio/speex
55
SPEEX_CONFIGURE_ON=	--with-speex=lib
55
SPEEX_CONFIGURE_ON=	--with-speex=lib
56
SPEEX_CONFIGURE_OFF=	--without-speex
56
SPEEX_CONFIGURE_OFF=	--without-speex
57
57
58
post-patch:	.SILENT
59
	${REINPLACE_CMD} -e '/LIBS/s/-ldl//g' \
60
		-e '/lt_cv_dlopen/s/-ldl//g' \
61
		${WRKSRC}/configure
62
63
.include <bsd.port.mk>
58
.include <bsd.port.mk>
(-)audio/alsa-plugins/distinfo (-2 / +3 lines)
Lines 1-2 Link Here
1
SHA256 (alsa-plugins-1.1.1.tar.bz2) = 8ea4d1e082c36528a896a2581e5eb62d4dc2683238e353050d0d624e65f901f1
1
TIMESTAMP = 1585923260
2
SIZE (alsa-plugins-1.1.1.tar.bz2) = 366193
2
SHA256 (alsa-plugins-1.2.2.tar.bz2) = 1c0f06450c928d711719686c9dbece2d480184f36fab11b8f0534cb7b41e337d
3
SIZE (alsa-plugins-1.2.2.tar.bz2) = 406494
(-)audio/alsa-plugins/pkg-plist (-1 / +12 lines)
Lines 1-3 Link Here
1
@comment etc/alsa/conf.d/50-arcam-av-ctl.conf
2
@comment etc/alsa/conf.d/50-oss.conf
3
@comment etc/alsa/conf.d/50-pulseaudio.conf
4
@comment etc/alsa/conf.d/60-upmix.conf
5
@comment etc/alsa/conf.d/60-vdownmix.conf
6
@comment etc/alsa/conf.d/98-usb-stream.conf
7
@comment etc/alsa/conf.d/99-pulseaudio-default.conf.example
1
%%PULSEAUDIO%%lib/alsa-lib/libasound_module_conf_pulse.la
8
%%PULSEAUDIO%%lib/alsa-lib/libasound_module_conf_pulse.la
2
%%PULSEAUDIO%%lib/alsa-lib/libasound_module_conf_pulse.so
9
%%PULSEAUDIO%%lib/alsa-lib/libasound_module_conf_pulse.so
3
lib/alsa-lib/libasound_module_ctl_arcam_av.la
10
lib/alsa-lib/libasound_module_ctl_arcam_av.la
Lines 38-42 lib/alsa-lib/libasound_module_pcm_vdownmix.so Link Here
38
%%SPEEX%%lib/alsa-lib/libasound_module_rate_speexrate.so
45
%%SPEEX%%lib/alsa-lib/libasound_module_rate_speexrate.so
39
%%SPEEX%%lib/alsa-lib/libasound_module_rate_speexrate_best.so
46
%%SPEEX%%lib/alsa-lib/libasound_module_rate_speexrate_best.so
40
%%SPEEX%%lib/alsa-lib/libasound_module_rate_speexrate_medium.so
47
%%SPEEX%%lib/alsa-lib/libasound_module_rate_speexrate_medium.so
48
@comment share/alsa/alsa.conf.d/50-arcam-av-ctl.conf
49
@comment share/alsa/alsa.conf.d/50-oss.conf
41
%%PULSEAUDIO%%share/alsa/alsa.conf.d/50-pulseaudio.conf
50
%%PULSEAUDIO%%share/alsa/alsa.conf.d/50-pulseaudio.conf
42
%%PULSEAUDIO%%share/alsa/alsa.conf.d/99-pulseaudio-default.conf.example
51
@comment share/alsa/alsa.conf.d/60-upmix.conf
52
@comment share/alsa/alsa.conf.d/60-vdownmix.conf
53
@comment share/alsa/alsa.conf.d/98-usb-stream.conf
(-)audio/alsa-utils/Makefile (-35 / +43 lines)
Lines 2-58 Link Here
2
# $FreeBSD$
2
# $FreeBSD$
3
3
4
PORTNAME=	alsa-utils
4
PORTNAME=	alsa-utils
5
PORTVERSION=	1.1.2
5
PORTVERSION=	1.2.2
6
PORTREVISION=	1
7
CATEGORIES=	audio
6
CATEGORIES=	audio
8
MASTER_SITES=	ftp://ftp.alsa-project.org/pub/utils/ \
7
MASTER_SITES=	ftp://ftp.alsa-project.org/pub/utils/ \
9
		GENTOO
8
		GENTOO
10
9
11
MAINTAINER=	ports@FreeBSD.org
10
MAINTAINER=	greg@unrelenting.technology
12
COMMENT=	ALSA compatibility utils
11
COMMENT=	ALSA compatibility utils
13
12
14
LICENSE=	GPLv2+
13
LICENSE=	GPLv2+
15
14
16
LIB_DEPENDS=	libasound.so:audio/alsa-lib \
15
LIB_DEPENDS=	libasound.so:audio/alsa-lib \
17
		libfftw3f.so:math/fftw3-float
16
		libepoll-shim.so:devel/libepoll-shim \
17
		libfftw3f.so:math/fftw3-float \
18
		libinotify.so:devel/libinotify
18
RUN_DEPENDS=	${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:audio/alsa-plugins
19
RUN_DEPENDS=	${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:audio/alsa-plugins
19
20
20
USES=		gmake localbase ncurses shebangfix tar:bzip2
21
USES=		autoreconf gmake libtool localbase ncurses shebangfix tar:bzip2 pkgconfig
21
GNU_CONFIGURE=	yes
22
GNU_CONFIGURE=	yes
22
CONFIGURE_ARGS=	--with-udev-rules-dir="\$${prefix}/lib/udev"
23
CONFIGURE_ARGS=	--with-udev-rules-dir="\$${prefix}/lib/udev"
23
SHEBANG_FILES=	alsa-info/alsa-info.sh alsaconf/alsaconf.in bat/alsabat-test.sh
24
SHEBANG_FILES=	alsa-info/alsa-info.sh alsaconf/alsaconf.in bat/alsabat-test.sh
24
INSTALL_TARGET=	install-strip
25
INSTALL_TARGET=	install-strip
25
CPPFLAGS+=	-I${.CURDIR}/../alsa-lib/files
26
CPPFLAGS+=	-I${.CURDIR}/../alsa-lib/files
27
CFLAGS+=	-Dlseek64=lseek -DSCHED_IDLE=SCHED_OTHER \
28
		-I${LOCALBASE}/include/libepoll-shim
29
LDFLAGS+=	-linotify -lepoll-shim
26
30
27
OPTIONS_SUB=	yes
31
OPTIONS_SUB=		yes
28
OPTIONS_DEFINE=	BAT MANPAGES NLS SAMPLERATE
32
OPTIONS_DEFINE=		BAT MANPAGES NLS SAMPLERATE
29
OPTIONS_DEFAULT=BAT MANPAGES
33
OPTIONS_DEFAULT=	BAT MANPAGES
30
34
31
BAT_DESC=	Basic Audio Tester support
35
BAT_DESC=		Basic Audio Tester support
32
BAT_LIB_DEPENDS=libfftw3.so:math/fftw3
36
BAT_LIB_DEPENDS=	libfftw3.so:math/fftw3 \
33
BAT_CONFIGURE_ENABLE=bat
37
			libfftw3f.so:math/fftw3-float
34
38
BAT_CONFIGURE_ENABLE=	bat
35
MANPAGES_BUILD_DEPENDS=	minixmlto:textproc/minixmlto
39
36
MANPAGES_CONFIGURE_ENV=	ac_cv_prog_xmlto=minixmlto
40
MANPAGES_BUILD_DEPENDS=		minixmlto:textproc/minixmlto
37
MANPAGES_CONFIGURE_ENABLE=xmlto
41
MANPAGES_CONFIGURE_ENV=		ac_cv_prog_xmlto=minixmlto
38
42
MANPAGES_CONFIGURE_ENABLE=	xmlto
39
NLS_USES=	gettext
43
40
NLS_CONFIGURE_ENABLE=nls
44
NLS_USES=		gettext
41
NLS_LIBS=	-lintl
45
NLS_CONFIGURE_ENABLE=	nls
42
46
NLS_LIBS=		-lintl
43
SAMPLERATE_LIB_DEPENDS=	libsamplerate.so:audio/libsamplerate
47
44
SAMPLERATE_CONFIGURE_ENV_OFF=ac_cv_header_samplerate_h=no
48
SAMPLERATE_LIB_DEPENDS=		libsamplerate.so:audio/libsamplerate
45
49
SAMPLERATE_CONFIGURE_ENV_OFF=	ac_cv_header_samplerate_h=no
46
post-patch:	.SILENT
50
47
	${REINPLACE_CMD} -e '/LIBS/s/-ldl//g; /LIBRT/s/-lrt//g;' \
51
post-patch:
48
		-e '/x"$$xmlto"/s/= xyes/!= xno/' \
52
	@${REINPLACE_CMD} \
49
		${WRKSRC}/configure
53
		's|%%PREFIX%%|${PREFIX}|g' \
50
	${REINPLACE_CMD} -e 's/	xmlto/	$$(xmlto)/' \
54
		${WRKSRC}/alsactl/alsactl_init.xml \
51
		${WRKSRC}/alsactl/Makefile.in
55
		${WRKSRC}/speaker-test/speaker-test.1 \
52
	${FIND} -E ${WRKSRC} -type f -regex \
56
		${WRKSRC}/speaker-test/samples/sample_map.csv \
53
		'.*\.([[:digit:]]|spec\.in|csv|xml)' -exec \
57
		${WRKSRC}/alsaconf/alsaconf.fr.8 \
54
		${REINPLACE_CMD} -i .pathfix.bak \
58
		${WRKSRC}/alsaconf/alsaconf.8 \
55
		-e 's|/usr/share|${PREFIX}/share|g' \
59
		${WRKSRC}/utils/alsa-utils.spec.in \
56
		-e 's|/etc/asound\.conf|${LOCALBASE}&|g' {} +
60
		${WRKSRC}/amidi/amidi.1
61
	@${REINPLACE_CMD} \
62
		's|%%LOCALBASE%%|${LOCALBASE}|g' \
63
		${WRKSRC}/alsa-info/alsa-info.sh.1 \
64
		${WRKSRC}/amidi/amidi.1
57
65
58
.include <bsd.port.mk>
66
.include <bsd.port.mk>
(-)audio/alsa-utils/distinfo (-2 / +3 lines)
Lines 1-2 Link Here
1
SHA256 (alsa-utils-1.1.2.tar.bz2) = 7af603c0877d1251599d65b4fbc372e63a54371b888f5c26c6a86ac1d0519071
1
TIMESTAMP = 1615527978
2
SIZE (alsa-utils-1.1.2.tar.bz2) = 1193140
2
SHA256 (alsa-utils-1.2.2.tar.bz2) = 44807bd578c5f6df6e91a11b8d37e546424a5a1ea8d8e659ee359fe01730e4f3
3
SIZE (alsa-utils-1.2.2.tar.bz2) = 1274821
(-)audio/alsa-utils/files/patch-alsa-info_alsa-info.sh.1 (+11 lines)
Added Link Here
1
--- alsa-info/alsa-info.sh.1.orig	2020-02-19 12:02:10 UTC
2
+++ alsa-info/alsa-info.sh.1
3
@@ -37,7 +37,7 @@ Includes output from \fIamixer\fP.
4
 Includes output from \fIalsactl\fP.
5
 .TP
6
 \fI\-\-with-configs\fP
7
-Includes output from ~/.asoundrc and /etc/asound.conf if they exist.
8
+Includes output from ~/.asoundrc and %%LOCALBASE%%/etc/asound.conf if they exist.
9
 .TP
10
 \fI\-\-update\fP
11
 Check server for updates.
(-)audio/alsa-utils/files/patch-alsaconf_alsaconf.8 (+11 lines)
Added Link Here
1
--- alsaconf/alsaconf.8.orig	2020-02-19 12:02:10 UTC
2
+++ alsaconf/alsaconf.8
3
@@ -79,7 +79,7 @@ In Debian, the default gid of the device files is 29 (
4
 audio group) and the default device mode is 0660.
5
 
6
 For the ALSA base package, see also
7
-.I /usr/share/doc/alsa\-base/
8
+.I %%PREFIX%%/share/doc/alsa\-base/
9
 
10
 .SH SEE ALSO
11
 \fB
(-)audio/alsa-utils/files/patch-alsaconf_alsaconf.fr.8 (+11 lines)
Added Link Here
1
--- alsaconf/alsaconf.fr.8.orig	2020-02-19 12:02:10 UTC
2
+++ alsaconf/alsaconf.fr.8
3
@@ -82,7 +82,7 @@ correspond au groupe audio) et le mode par défaut des 
4
 0660.
5
 
6
 Pour le paquetage de base ALSA, voir aussi
7
-.I /usr/share/doc/alsa-base/
8
+.I %%PREFIX%%/share/doc/alsa-base/
9
 
10
 .SH VOIR AUSSI
11
 \fB
(-)audio/alsa-utils/files/patch-alsactl_Makefile.in (+11 lines)
Added Link Here
1
--- alsactl/Makefile.in.orig	2021-03-12 04:46:51 UTC
2
+++ alsactl/Makefile.in
3
@@ -1110,7 +1110,7 @@ alsa-restore.service: alsa-restore.service.in
4
 	$(edit)
5
 
6
 %.7: %.xml
7
-	xmlto man $?
8
+	$(xmlto) man $?
9
 
10
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
11
 # Otherwise a system limit (for SysV at least) may be exceeded.
(-)audio/alsa-utils/files/patch-alsactl_alsactl__init.xml (+24 lines)
Added Link Here
1
--- alsactl/alsactl_init.xml.orig	2020-02-19 12:02:10 UTC
2
+++ alsactl/alsactl_init.xml
3
@@ -29,8 +29,8 @@
4
 
5
       <refsect1><title>CONFIGURATION</title>
6
         <para>All "alsactl init" configuration files are placed in
7
-        <filename>/usr/share/alsa/init/</filename> directory. The top level
8
-        configuration file is <filename>/usr/share/alsa/init/00main</filename>.
9
+        <filename>%%PREFIX%%/share/alsa/init/</filename> directory. The top level
10
+        configuration file is <filename>%%PREFIX%%/share/alsa/init/00main</filename>.
11
 	The default top-level file can be also specified using -i or
12
 	--initfile parameter for the alsactl tool.
13
 	Every file consists of a set of lines of text. All empty lines or
14
@@ -38,8 +38,8 @@
15
 
16
         <refsect2><title>Rules files</title>
17
           <para>The "alsactl init" rules are read from the files located
18
-          in the <filename>/usr/share/alsa/init/*</filename>. The top
19
-          level configuration file is <filename>/usr/share/alsa/init/00main</filename>.
20
+          in the <filename>%%PREFIX%%/share/alsa/init/*</filename>. The top
21
+          level configuration file is <filename>%%PREFIX%%/share/alsa/init/00main</filename>.
22
           Every line in the rules file contains at least one key value pair.
23
           There are two kind of keys, match and assignment keys. If all match
24
           keys are matching against its value, the rule gets applied and the
(-)audio/alsa-utils/files/patch-alsamixer_volume__mapping.c (-11 lines)
Removed Link Here
1
--- alsamixer/volume_mapping.c.orig	2016-03-31 14:37:02 UTC
2
+++ alsamixer/volume_mapping.c
3
@@ -37,7 +37,7 @@
4
 #include <stdbool.h>
5
 #include "volume_mapping.h"
6
 
7
-#ifdef __UCLIBC__
8
+#ifndef __GLIBC__
9
 /* 10^x = 10^(log e^x) = (e^x)^log10 = e^(x * log 10) */
10
 #define exp10(x) (exp((x) * log(10)))
11
 #endif /* __UCLIBC__ */
(-)audio/alsa-utils/files/patch-amidi_amidi.1 (+15 lines)
Added Link Here
1
--- amidi/amidi.1.orig	2020-02-19 12:02:10 UTC
2
+++ amidi/amidi.1
3
@@ -160,10 +160,10 @@ and stops after the device has finished sending data
4
 creates a virtual RawMIDI port and prints all data sent to this port.
5
 
6
 .SH FILES
7
-.I /usr/share/alsa/alsa.conf
8
+.I %%PREFIX%%/share/alsa/alsa.conf
9
 default rawmidi definitions
10
 .br
11
-.I /etc/asound.conf
12
+.I %%LOCALBASE%%/etc/asound.conf
13
 system\-wide rawmidi definitions
14
 .br
15
 .I ~/.asoundrc
(-)audio/alsa-utils/files/patch-aplay_aplay.c (-9 / +9 lines)
Lines 1-23 Link Here
1
--- aplay/aplay.c.orig	2016-03-31 14:37:02 UTC
1
--- aplay/aplay.c.orig	2020-02-19 12:02:10 UTC
2
+++ aplay/aplay.c
2
+++ aplay/aplay.c
3
@@ -48,7 +48,6 @@
3
@@ -49,7 +49,6 @@
4
 #include <sys/time.h>
4
 #include <sys/time.h>
5
 #include <sys/stat.h>
5
 #include <sys/stat.h>
6
 #include <sys/types.h>
6
 #include <sys/types.h>
7
-#include <endian.h>
7
-#include <endian.h>
8
 #include "aconfig.h"
9
 #include "gettext.h"
8
 #include "gettext.h"
10
 #include "formats.h"
9
 #include "formats.h"
10
 #include "version.h"
11
@@ -70,6 +69,12 @@
11
@@ -70,6 +69,12 @@
12
 #define be16toh(x) __be16_to_cpu(x)
13
 #define le32toh(x) __le32_to_cpu(x)
12
 #define be32toh(x) __be32_to_cpu(x)
14
 #define be32toh(x) __be32_to_cpu(x)
13
 #endif
15
+#endif
14
 
16
+
15
+#ifndef _LARGEFILE64_SOURCE
17
+#ifndef _LARGEFILE64_SOURCE
16
+/* assume modern system */
18
+/* assume modern system */
17
+typedef off_t off64_t;
19
+typedef off_t off64_t;
18
+#define lseek64 lseek
20
+#define lseek64 lseek
19
+#endif
21
 #endif
20
+
21
 #define DEFAULT_FORMAT		SND_PCM_FORMAT_U8
22
 #define DEFAULT_SPEED 		8000
23
 
22
 
23
 #define DEFAULT_FORMAT		SND_PCM_FORMAT_U8
(-)audio/alsa-utils/files/patch-speaker-test_samples_sample__map.csv (+7 lines)
Added Link Here
1
--- speaker-test/samples/sample_map.csv.orig	2020-02-19 12:02:10 UTC
2
+++ speaker-test/samples/sample_map.csv
3
@@ -1,2 +1,2 @@
4
-0, "Front Left", "/usr/share/alsa/samples/Front_Left.wav"
5
-1, "Front Right", "/usr/share/alsa/samples/Front_Right.wav"
6
+0, "Front Left", "%%PREFIX%%/share/alsa/samples/Front_Left.wav"
7
+1, "Front Right", "%%PREFIX%%/share/alsa/samples/Front_Right.wav"
(-)audio/alsa-utils/files/patch-speaker-test_speaker-test.1 (+11 lines)
Added Link Here
1
--- speaker-test/speaker-test.1.orig	2020-02-19 12:02:10 UTC
2
+++ speaker-test/speaker-test.1
3
@@ -129,7 +129,7 @@ Use the given WAV file for the playback instead of pre
4
 .TP
5
 \fB\-W\fP | \fB\-\-wavdir\fP \fIDIRECTORY\fP
6
 Specify the directory containing WAV files for playback.
7
-The default path is \fI/usr/share/sounds/alsa\fP.
8
+The default path is \fI%%PREFIX%%/share/sounds/alsa\fP.
9
 
10
 .TP
11
 \fB\-m\fP | \fB\-\-chmap\fP \fIMAP\fP
(-)audio/alsa-utils/files/patch-utils_alsa-utils.spec.in (+11 lines)
Added Link Here
1
--- utils/alsa-utils.spec.in.orig	2020-02-19 12:02:10 UTC
2
+++ utils/alsa-utils.spec.in
3
@@ -41,7 +41,7 @@ Advanced Linux Sound Architecture (ALSA) - Utils
4
 * Sun Nov 11 2001 Miroslav Benes <mbenes@tenez.cz>
5
 
6
 - dangerous command "rpm -rf $RPM_BUILD_ROOT" checks $RPM_BUILD_ROOT variable
7
-- unset key "Docdir" - on some new systems are documentation in /usr/share/doc
8
+- unset key "Docdir" - on some new systems are documentation in %%PREFIX%%/share/doc
9
 
10
 * Mon May 28 1998 Helge Jensen <slog@slog.dk>
11
 
(-)audio/alsa-utils/pkg-plist (-3 / +7 lines)
Lines 12-22 bin/arecord Link Here
12
bin/arecordmidi
12
bin/arecordmidi
13
bin/aseqdump
13
bin/aseqdump
14
bin/aseqnet
14
bin/aseqnet
15
bin/axfer
15
bin/iecset
16
bin/iecset
16
bin/speaker-test
17
bin/speaker-test
18
lib/udev/89-alsa-ucm.rules
17
lib/udev/90-alsa-restore.rules
19
lib/udev/90-alsa-restore.rules
18
man/fr/man8/alsaconf.8.gz
20
man/fr/man8/alsaconf.8.gz
19
man/man1/aconnect.1.gz
21
man/man1/aconnect.1.gz
22
man/man1/alsa-info.sh.1.gz
23
%%BAT%%man/man1/alsabat.1.gz
20
man/man1/alsactl.1.gz
24
man/man1/alsactl.1.gz
21
man/man1/alsaloop.1.gz
25
man/man1/alsaloop.1.gz
22
man/man1/alsamixer.1.gz
26
man/man1/alsamixer.1.gz
Lines 28-38 man/man1/arecord.1.gz Link Here
28
man/man1/arecordmidi.1.gz
32
man/man1/arecordmidi.1.gz
29
man/man1/aseqdump.1.gz
33
man/man1/aseqdump.1.gz
30
man/man1/aseqnet.1.gz
34
man/man1/aseqnet.1.gz
35
man/man1/axfer-list.1.gz
36
man/man1/axfer-transfer.1.gz
37
man/man1/axfer.1.gz
31
man/man1/iecset.1.gz
38
man/man1/iecset.1.gz
32
man/man1/speaker-test.1.gz
39
man/man1/speaker-test.1.gz
33
man/man1/alsa-info.sh.1.gz
34
%%BAT%%man/man1/alsabat.1.gz
35
%%MANPAGES%%man/man7/alsactl_init.7.gz
36
man/man8/alsaconf.8.gz
40
man/man8/alsaconf.8.gz
37
sbin/alsa-info.sh
41
sbin/alsa-info.sh
38
%%BAT%%sbin/alsabat-test.sh
42
%%BAT%%sbin/alsabat-test.sh

Return to bug 245321