1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-10-18 19:49:40 +00:00

audio/alsa-lib, audio/alsa-plugins, audio/alsa-utils: Update to 1.2.2

PR:		245321
Reviewed by:	swills
Tested by:	Oleh Hushchenkov <o.hushchenkov@gmail.com>
This commit is contained in:
Greg V 2021-05-11 19:49:32 +03:00 committed by Gleb Popov
parent d4a6b63b1c
commit 44c14328c0
25 changed files with 254 additions and 791 deletions

View File

@ -1,8 +1,7 @@
# Created by: Aragon Gouveia <aragon@phat.za.net>
PORTNAME= alsa-lib
PORTVERSION= 1.1.2
PORTREVISION= 2
PORTVERSION= 1.2.2
CATEGORIES= audio
MASTER_SITES= ftp://ftp.alsa-project.org/pub/lib/ \
GENTOO
@ -24,21 +23,15 @@ TEST_ENV= ${MAKE_ENV} \
TEST_TARGET= check
CPPFLAGS+= -I${FILESDIR}
OPTIONS_DEFINE= PYTHON
OPTIONS_SUB= yes
OPTIONS_DEFINE= PYTHON
OPTIONS_SUB= yes
PYTHON_USES= python
PYTHON_CONFIGURE_ENABLE= python
PYTHON_USES= gettext-runtime python
PYTHON_CONFIGURE_ENABLE= mixer-pymods python
PYTHON_BINARY_ALIAS= python3-config=${PYTHON_CMD:T}-config
post-patch: .SILENT
${REINPLACE_CMD} -e '/LIBS/ { s/-ldl//g; s/-lrt//g; }' \
-e 's/python-config/${PYTHON_CMD:T}-config/g' \
-e '/pythonlibs/s/--libs/--ldflags/' \
-e '/_GNU_SOURCE/d' \
-e '/lt_cv_dlopen/s/-ldl//g' ${WRKSRC}/configure
${REINPLACE_CMD} '/LIBADD/s/-ldl//g' \
${WRKSRC}/modules/mixer/simple/Makefile.in
${REINPLACE_CMD} 's|/etc|${PREFIX}&|g' \
post-patch:
@${REINPLACE_CMD} 's|%%PREFIX%%|${PREFIX}|g' \
${WRKSRC}/src/conf/alsa.conf
post-install:

View File

@ -1,2 +1,3 @@
SHA256 (alsa-lib-1.1.2.tar.bz2) = d38dacd9892b06b8bff04923c380b38fb2e379ee5538935ff37e45b395d861d6
SIZE (alsa-lib-1.1.2.tar.bz2) = 947423
TIMESTAMP = 1615528054
SHA256 (alsa-lib-1.2.2.tar.bz2) = d8e853d8805574777bbe40937812ad1419c9ea7210e176f0def3e6ed255ab3ec
SIZE (alsa-lib-1.2.2.tar.bz2) = 1030747

View File

@ -10,6 +10,16 @@
typedef pid_t __kernel_pid_t;
typedef off_t __kernel_off_t;
typedef long __kernel_long_t;
typedef uint8_t __u8;
typedef uint16_t __u16;
typedef uint32_t __u32;
typedef uint64_t __u64;
typedef int8_t __s8;
typedef int16_t __s16;
typedef int32_t __s32;
typedef int64_t __s64;
#endif /* _LINUX_TYPES_H */

View File

@ -1,59 +0,0 @@
commit 3bad0a21b4d13d8d10691f382c836897fa7a7cb9
Author: Breno Leitao <leitao@debian.org>
Date: Wed Feb 22 16:45:00 2017 -0300
Drop ppc64-specific workaround for versioned symbols
Currently aserver fails to build when using parameter
--without-versioned, due to an workaround for ppc64
(06221f86d207cb33ddd4867ca5301eeb247c4400). This workaround is
not required anymore on the ppc64 ABI v2, and, in fact is breaking the
compilation. Reverting this commit
Signed-off-by: Breno Leitao <leitao@debian.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
--- include/alsa-symbols.h.orig 2016-08-02 17:48:38 UTC
+++ include/alsa-symbols.h
@@ -29,19 +29,10 @@
#define INTERNAL_CONCAT2_2(Pre, Post) Pre##Post
#define INTERNAL(Name) INTERNAL_CONCAT2_2(__, Name)
-#ifdef __powerpc64__
-# define symbol_version(real, name, version) \
- __asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@" #version); \
- __asm__ (".symver ." ASM_NAME(#real) ",." ASM_NAME(#name) "@" #version)
-# define default_symbol_version(real, name, version) \
- __asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@@" #version); \
- __asm__ (".symver ." ASM_NAME(#real) ",." ASM_NAME(#name) "@@" #version)
-#else
# define symbol_version(real, name, version) \
__asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@" #version)
# define default_symbol_version(real, name, version) \
__asm__ (".symver " ASM_NAME(#real) "," ASM_NAME(#name) "@@" #version)
-#endif
#ifdef USE_VERSIONED_SYMBOLS
#define use_symbol_version(real, name, version) \
@@ -50,13 +41,6 @@
default_symbol_version(real, name, version)
#else
#define use_symbol_version(real, name, version) /* nothing */
-#ifdef __powerpc64__
-#define use_default_symbol_version(real, name, version) \
- __asm__ (".weak " ASM_NAME(#name)); \
- __asm__ (".weak ." ASM_NAME(#name)); \
- __asm__ (".set " ASM_NAME(#name) "," ASM_NAME(#real)); \
- __asm__ (".set ." ASM_NAME(#name) ",." ASM_NAME(#real))
-#else
#if defined(__alpha__) || defined(__mips__)
#define use_default_symbol_version(real, name, version) \
__asm__ (".weak " ASM_NAME(#name)); \
@@ -65,7 +49,6 @@
#define use_default_symbol_version(real, name, version) \
__asm__ (".weak " ASM_NAME(#name)); \
__asm__ (".set " ASM_NAME(#name) "," ASM_NAME(#real))
-#endif
#endif
#endif

View File

@ -1,565 +0,0 @@
https://git.alsa-project.org/?p=alsa-lib.git;a=commitdiff;h=345843fc24b3
--- modules/mixer/simple/python.c.orig 2016-08-02 17:48:38 UTC
+++ modules/mixer/simple/python.c
@@ -25,6 +25,10 @@
#include "asoundlib.h"
#include "mixer_abst.h"
+#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2))
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif
+
struct python_priv {
int py_initialized;
PyObject *py_event_func;
@@ -56,20 +60,49 @@ struct pymixer {
static PyInterpreterState *main_interpreter;
+#if PY_MAJOR_VERSION >= 3
+ #define PyInt_FromLong PyLong_FromLong
+#endif
+
+static inline int get_long(PyObject *o, long *val)
+{
+#if PY_MAJOR_VERSION < 3
+ if (PyInt_Check(o)) {
+ *val = PyInt_AsLong(o);
+ return 0;
+ }
+#endif
+ if (PyLong_Check(o)) {
+ *val = PyLong_AsLong(o);
+ return 0;
+ }
+ return 1;
+}
+
+static inline PyObject *InternFromString(const char *name)
+{
+#if PY_MAJOR_VERSION < 3
+ return PyString_InternFromString(name);
+#else
+ return PyUnicode_InternFromString(name);
+#endif
+}
+
static void *get_C_ptr(PyObject *obj, const char *attr)
{
PyObject *o;
+ long val;
- o = PyObject_GetAttr(obj, PyString_InternFromString(attr));
+ o = PyObject_GetAttr(obj, InternFromString(attr));
if (!o) {
PyErr_Format(PyExc_TypeError, "missing '%s' attribute", attr);
return NULL;
}
- if (!PyInt_Check(o)) {
- PyErr_Format(PyExc_TypeError, "'%s' attribute is not integer", attr);
+ if (get_long(o, &val)) {
+ PyErr_Format(PyExc_TypeError, "'%s' attribute is not Int or Long", attr);
return NULL;
}
- return (void *)PyInt_AsLong(o);
+ return (void *)val;
}
static struct pymelem *melem_to_pymelem(snd_mixer_elem_t *elem)
@@ -80,11 +113,11 @@ static struct pymelem *melem_to_pymelem(snd_mixer_elem
static int pcall(struct pymelem *pymelem, const char *attr, PyObject *args, PyObject **_res)
{
PyObject *obj = (PyObject *)pymelem, *res;
- int xres = 0;
+ long xres = 0;
if (_res)
*_res = NULL;
- obj = PyObject_GetAttr(obj, PyString_InternFromString(attr));
+ obj = PyObject_GetAttr(obj, InternFromString(attr));
if (!obj) {
PyErr_Format(PyExc_TypeError, "missing '%s' attribute", attr);
PyErr_Print();
@@ -103,8 +136,12 @@ static int pcall(struct pymelem *pymelem, const char *
*_res = res;
res = PyTuple_GetItem(res, 0);
}
- if (PyInt_Check(res)) {
+ if (PyLong_Check(res)) {
+ xres = PyLong_AsLong(res);
+#if PY_MAJOR_VERSION < 3
+ } else if (PyInt_Check(res)) {
xres = PyInt_AsLong(res);
+#endif
} else if (res == Py_None) {
xres = 0;
} else if (PyBool_Check(res)) {
@@ -155,7 +192,7 @@ static int is_ops(snd_mixer_elem_t *elem, int dir, int
static int get_x_range_ops(snd_mixer_elem_t *elem, int dir,
long *min, long *max, const char *attr)
{
- PyObject *obj1, *res;
+ PyObject *obj1, *t1, *t2, *res;
struct pymelem *pymelem = melem_to_pymelem(elem);
int err;
@@ -163,21 +200,23 @@ static int get_x_range_ops(snd_mixer_elem_t *elem, int
PyTuple_SET_ITEM(obj1, 0, PyInt_FromLong(dir));
err = pcall(pymelem, attr, obj1, &res);
if (err >= 0) {
- err = !PyInt_Check(PyTuple_GetItem(res, 1)) || !PyInt_Check(PyTuple_GetItem(res, 2));
- if (err) {
- err = !PyLong_Check(PyTuple_GetItem(res, 1)) || !PyLong_Check(PyTuple_GetItem(res, 2));
- if (err) {
- PyErr_Format(PyExc_TypeError, "wrong result (invalid tuple)");
- PyErr_Print();
- PyErr_Clear();
- err = -EIO;
- } else {
- *min = PyLong_AsLong(PyTuple_GetItem(res, 1));
- *max = PyLong_AsLong(PyTuple_GetItem(res, 2));
- }
- } else {
+ t1 = PyTuple_GetItem(res, 1);
+ t2 = PyTuple_GetItem(res, 2);
+ if (PyLong_Check(t1) && PyLong_Check(t2)) {
+ *min = PyLong_AsLong(PyTuple_GetItem(res, 1));
+ *max = PyLong_AsLong(PyTuple_GetItem(res, 2));
+ err = 0;
+#if PY_MAJOR_VERSION < 3
+ } else if (PyInt_Check(t1) && PyInt_Check(t2)) {
*min = PyInt_AsLong(PyTuple_GetItem(res, 1));
*max = PyInt_AsLong(PyTuple_GetItem(res, 2));
+ err = 0;
+#endif
+ } else {
+ PyErr_Format(PyExc_TypeError, "wrong result (invalid tuple)");
+ PyErr_Print();
+ PyErr_Clear();
+ err = -EIO;
}
}
Py_XDECREF(res);
@@ -207,7 +246,7 @@ static int get_x_ops(snd_mixer_elem_t *elem, int dir,
long channel, long *value,
const char *attr)
{
- PyObject *obj1, *res;
+ PyObject *obj1, *t1, *res;
struct pymelem *pymelem = melem_to_pymelem(elem);
int err;
@@ -216,19 +255,20 @@ static int get_x_ops(snd_mixer_elem_t *elem, int dir,
PyTuple_SET_ITEM(obj1, 1, PyInt_FromLong(channel));
err = pcall(pymelem, attr, obj1, &res);
if (err >= 0) {
- err = !PyInt_Check(PyTuple_GetItem(res, 1));
- if (err) {
- err = !PyLong_Check(PyTuple_GetItem(res, 1));
- if (err) {
- PyErr_Format(PyExc_TypeError, "wrong result (invalid tuple)");
- PyErr_Print();
- PyErr_Clear();
- err = -EIO;
- } else {
- *value = PyLong_AsLong(PyTuple_GetItem(res, 1));
- }
+ t1 = PyTuple_GetItem(res, 1);
+ if (PyLong_Check(t1)) {
+ *value = PyLong_AsLong(t1);
+ err = 0;
+#if PY_MAJOR_VERSION < 3
+ } else if (PyInt_Check(t1)) {
+ *value = PyInt_AsLong(t1);
+ err = 0;
+#endif
} else {
- *value = PyInt_AsLong(PyTuple_GetItem(res, 1));
+ PyErr_Format(PyExc_TypeError, "wrong result (invalid tuple)");
+ PyErr_Print();
+ PyErr_Clear();
+ err = -EIO;
}
}
Py_XDECREF(res);
@@ -265,7 +305,7 @@ static int ask_dB_vol_ops(snd_mixer_elem_t *elem,
long *dbValue,
int xdir)
{
- PyObject *obj1, *res;
+ PyObject *obj1, *t1, *res;
struct pymelem *pymelem = melem_to_pymelem(elem);
int err;
@@ -275,19 +315,20 @@ static int ask_dB_vol_ops(snd_mixer_elem_t *elem,
PyTuple_SET_ITEM(obj1, 2, PyInt_FromLong(xdir));
err = pcall(pymelem, "opsGetDBVol", obj1, &res);
if (err >= 0) {
- err = !PyInt_Check(PyTuple_GetItem(res, 1));
- if (err) {
- err = !PyLong_Check(PyTuple_GetItem(res, 1));
- if (err) {
- PyErr_Format(PyExc_TypeError, "wrong result (invalid tuple)");
- PyErr_Print();
- PyErr_Clear();
- err = -EIO;
- } else {
- *dbValue = PyLong_AsLong(PyTuple_GetItem(res, 1));
- }
+ t1 = PyTuple_GetItem(res, 1);
+ if (PyLong_Check(t1)) {
+ *dbValue = PyLong_AsLong(t1);
+ err = 0;
+#if PY_MAJOR_VERSION < 3
+ } else if (PyInt_Check(t1)) {
+ *dbValue = PyInt_AsLong(t1);
+ err = 0;
+#endif
} else {
- *dbValue = PyInt_AsLong(PyTuple_GetItem(res, 1));
+ PyErr_Format(PyExc_TypeError, "wrong result (invalid tuple)");
+ PyErr_Print();
+ PyErr_Clear();
+ err = -EIO;
}
}
Py_XDECREF(res);
@@ -353,7 +394,7 @@ static int enum_item_name_ops(snd_mixer_elem_t *elem,
unsigned int item,
size_t maxlen, char *buf)
{
- PyObject *obj1, *res;
+ PyObject *obj1, *obj2, *t1, *res;
struct pymelem *pymelem = melem_to_pymelem(elem);
int err;
unsigned int len;
@@ -363,19 +404,35 @@ static int enum_item_name_ops(snd_mixer_elem_t *elem,
PyTuple_SET_ITEM(obj1, 0, PyInt_FromLong(item));
err = pcall(pymelem, "opsGetEnumItemName", obj1, &res);
if (err >= 0) {
- err = !PyString_Check(PyTuple_GetItem(res, 1));
- if (err) {
- PyErr_Format(PyExc_TypeError, "wrong result (invalid tuple)");
- PyErr_Print();
- PyErr_Clear();
- err = -EIO;
- } else {
- s = PyString_AsString(PyTuple_GetItem(res, 1));
+ t1 = PyTuple_GetItem(res, 1);
+ if (PyUnicode_Check(t1)) {
+ obj2 = PyUnicode_AsEncodedString(t1, "utf-8", "strict");
+ if (obj2) {
+ s = PyBytes_AsString(obj2);
+ len = strlen(s);
+ if (maxlen - 1 > len)
+ len = maxlen - 1;
+ memcpy(buf, s, len);
+ buf[len] = '\0';
+ Py_DECREF(obj2);
+ } else {
+ goto errlbl;
+ }
+#if PY_MAJOR_VERSION < 3
+ } else if (PyString_Check(t1)) {
+ s = PyString_AsString(t1);
len = strlen(s);
if (maxlen - 1 > len)
len = maxlen - 1;
memcpy(buf, s, len);
buf[len] = '\0';
+#endif
+ } else {
+errlbl:
+ PyErr_Format(PyExc_TypeError, "wrong result (invalid tuple)");
+ PyErr_Print();
+ PyErr_Clear();
+ err = -EIO;
}
}
Py_XDECREF(res);
@@ -386,7 +443,7 @@ static int get_enum_item_ops(snd_mixer_elem_t *elem,
snd_mixer_selem_channel_id_t channel,
unsigned int *itemp)
{
- PyObject *obj1, *res;
+ PyObject *obj1, *t1, *res;
struct pymelem *pymelem = melem_to_pymelem(elem);
int err;
@@ -394,14 +451,20 @@ static int get_enum_item_ops(snd_mixer_elem_t *elem,
PyTuple_SET_ITEM(obj1, 0, PyInt_FromLong(channel));
err = pcall(pymelem, "opsGetEnumItem", obj1, &res);
if (err >= 0) {
- err = !PyInt_Check(PyTuple_GetItem(res, 1));
- if (err) {
+ t1 = PyTuple_GetItem(res, 1);
+ if (PyLong_Check(t1)) {
+ *itemp = PyLong_AsLong(t1);
+ err = 0;
+#if PY_MAJOR_VERSION < 3
+ } else if (PyInt_Check(t1)) {
+ *itemp = PyInt_AsLong(t1);
+ err = 0;
+#endif
+ } else {
PyErr_Format(PyExc_TypeError, "wrong result (invalid tuple)");
PyErr_Print();
PyErr_Clear();
err = -EIO;
- } else {
- *itemp = PyInt_AsLong(PyTuple_GetItem(res, 1));
}
}
Py_XDECREF(res);
@@ -464,7 +527,7 @@ pymelem_get_caps(struct pymelem *pymelem, void *priv A
static PyObject *
pymelem_get_name(struct pymelem *pymelem, void *priv ATTRIBUTE_UNUSED)
{
- return PyString_FromString(snd_mixer_selem_id_get_name(pymelem->selem.id));
+ return PyUnicode_FromString(snd_mixer_selem_id_get_name(pymelem->selem.id));
}
static PyObject *
@@ -476,12 +539,18 @@ pymelem_get_index(struct pymelem *pymelem, void *priv
static int
pymelem_set_caps(struct pymelem *pymelem, PyObject *val, void *priv ATTRIBUTE_UNUSED)
{
- if (!PyInt_Check(val)) {
- PyErr_SetString(PyExc_TypeError, "The last attribute value must be an integer");
- return -1;
+ if (PyLong_Check(val)) {
+ pymelem->selem.caps = PyLong_AsLong(val);
+ return 0;
}
- pymelem->selem.caps = PyInt_AsLong(val);
- return 0;
+#if PY_MAJOR_VERSION < 3
+ if (PyInt_Check(val)) {
+ pymelem->selem.caps = PyInt_AsLong(val);
+ return 0;
+ }
+#endif
+ PyErr_SetString(PyExc_TypeError, "The last attribute value must be an integer");
+ return -1;
}
static PyObject *
@@ -588,7 +657,6 @@ static void
pymelem_dealloc(struct pymelem *self)
{
selem_free(self->melem);
- self->ob_type->tp_free(self);
}
static PyGetSetDef pymelem_getseters[] = {
@@ -634,7 +702,7 @@ static PyMethodDef pymelem_methods[] = {
};
static PyTypeObject pymelem_type = {
- PyObject_HEAD_INIT(0)
+ PyVarObject_HEAD_INIT(NULL, 0)
tp_name: "smixer_python.InternalMElement",
tp_basicsize: sizeof(struct pymelem),
tp_dealloc: (destructor)pymelem_dealloc,
@@ -708,7 +776,7 @@ pymixer_melement_new(struct pymixer *pymixer, PyObject
obj1 = PyTuple_New(4);
if (PyTuple_SET_ITEM(obj1, 0, (PyObject *)pymixer))
Py_INCREF((PyObject *)pymixer);
- PyTuple_SET_ITEM(obj1, 1, PyString_FromString(name));
+ PyTuple_SET_ITEM(obj1, 1, PyUnicode_FromString(name));
PyTuple_SET_ITEM(obj1, 2, PyInt_FromLong(index));
PyTuple_SET_ITEM(obj1, 3, PyInt_FromLong(weight));
obj2 = PyObject_CallObject(obj, obj1);
@@ -800,7 +868,6 @@ static void
pymixer_dealloc(struct pymixer *self)
{
pymixer_free(self);
- self->ob_type->tp_free(self);
}
static PyGetSetDef pymixer_getseters[] = {
@@ -816,7 +883,7 @@ static PyMethodDef pymixer_methods[] = {
};
static PyTypeObject pymixer_type = {
- PyObject_HEAD_INIT(0)
+ PyVarObject_HEAD_INIT(NULL, 0)
tp_name: "smixer_python.InternalMixer",
tp_basicsize: sizeof(struct pymixer),
tp_dealloc: (destructor)pymixer_dealloc,
@@ -910,12 +977,12 @@ int alsa_mixer_simple_event(snd_mixer_class_t *class,
snd_hctl_elem_t *helem, snd_mixer_elem_t *melem)
{
struct python_priv *priv = snd_mixer_sbasic_get_private(class);
- PyThreadState *tstate, *origstate;
+ PyThreadState *tstate;
PyObject *t, *o, *r;
int res = -ENOMEM;
tstate = PyThreadState_New(main_interpreter);
- origstate = PyThreadState_Swap(tstate);
+ PyThreadState_Swap(tstate);
t = PyTuple_New(3);
if (t) {
@@ -935,8 +1002,12 @@ int alsa_mixer_simple_event(snd_mixer_class_t *class,
r = PyObject_CallObject(priv->py_event_func, t);
Py_DECREF(t);
if (r) {
- if (PyInt_Check(r)) {
+ if (PyLong_Check(r)) {
+ res = PyLong_AsLong(r);
+#if PY_MAJOR_VERSION < 3
+ } else if (PyInt_Check(r)) {
res = PyInt_AsLong(r);
+#endif
} else if (r == Py_None) {
res = 0;
}
@@ -966,6 +1037,71 @@ static void alsa_mixer_simple_free(snd_mixer_class_t *
free(priv);
}
+static int alsa_mixer_simple_pyinit(struct python_priv *priv,
+ PyObject *py_mod,
+ FILE *fp,
+ const char *file,
+ snd_mixer_class_t *class,
+ snd_mixer_t *mixer,
+ const char *device)
+{
+ PyObject *obj, *obj1, *obj2, *mdict;
+
+ mdict = priv->py_mdict = PyModule_GetDict(py_mod);
+ obj = PyUnicode_FromString(file);
+ if (obj)
+ PyDict_SetItemString(mdict, "__file__", obj);
+ Py_XDECREF(obj);
+ obj = PyUnicode_FromString(device);
+ if (obj)
+ PyDict_SetItemString(mdict, "device", obj);
+ Py_XDECREF(obj);
+ Py_INCREF(&pymelem_type);
+ Py_INCREF(&pymixer_type);
+ PyModule_AddObject(py_mod, "InternalMElement", (PyObject *)&pymelem_type);
+ PyModule_AddObject(py_mod, "InternalMixer", (PyObject *)&pymixer_type);
+ obj = PyDict_GetItemString(mdict, "InternalMixer");
+ if (obj) {
+ obj1 = PyTuple_New(3);
+ PyTuple_SET_ITEM(obj1, 0, PyInt_FromLong((long)class));
+ PyTuple_SET_ITEM(obj1, 1, PyInt_FromLong((long)mixer));
+ if (PyTuple_SET_ITEM(obj1, 2, mdict))
+ Py_INCREF(mdict);
+ obj2 = PyObject_CallObject(obj, obj1);
+ Py_XDECREF(obj1);
+ PyDict_SetItemString(mdict, "mixer", obj2);
+ priv->py_mixer = obj2;
+ } else {
+ SNDERR("Unable to create InternalMixer object");
+ return -EIO;
+ }
+
+ obj = PyRun_FileEx(fp, file, Py_file_input, mdict, mdict, 1);
+ if (obj == NULL)
+ PyErr_Print();
+ Py_XDECREF(obj);
+ priv->py_event_func = PyDict_GetItemString(mdict, "event");
+ if (priv->py_event_func == NULL) {
+ SNDERR("Unable to find python function 'event'");
+ return -EIO;
+ }
+ return 0;
+}
+
+#if PY_MAJOR_VERSION >= 3
+static struct PyModuleDef smixer_python_module = {
+ PyModuleDef_HEAD_INIT,
+ "smixer_python",
+ NULL,
+ 0,
+ python_methods,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+};
+#endif
+
int alsa_mixer_simple_finit(snd_mixer_class_t *class,
snd_mixer_t *mixer,
const char *device)
@@ -973,7 +1109,7 @@ int alsa_mixer_simple_finit(snd_mixer_class_t *class,
struct python_priv *priv;
FILE *fp;
const char *file;
- PyObject *obj, *obj1, *obj2, *py_mod, *mdict;
+ PyObject *obj, *py_mod;
priv = calloc(1, sizeof(*priv));
if (priv == NULL)
@@ -993,54 +1129,21 @@ int alsa_mixer_simple_finit(snd_mixer_class_t *class,
}
Py_Initialize();
- if (PyType_Ready(&pymelem_type) < 0)
+ if (PyType_Ready(&pymelem_type) < 0 ||
+ PyType_Ready(&pymixer_type) < 0) {
+ fclose(fp);
return -EIO;
- if (PyType_Ready(&pymixer_type) < 0)
- return -EIO;
+ }
+#if PY_MAJOR_VERSION < 3
Py_InitModule("smixer_python", python_methods);
+#else
+ PyModule_Create(&smixer_python_module);
+#endif
priv->py_initialized = 1;
main_interpreter = PyThreadState_Get()->interp;
obj = PyImport_GetModuleDict();
py_mod = PyDict_GetItemString(obj, "__main__");
- if (py_mod) {
- mdict = priv->py_mdict = PyModule_GetDict(py_mod);
- obj = PyString_FromString(file);
- if (obj)
- PyDict_SetItemString(mdict, "__file__", obj);
- Py_XDECREF(obj);
- obj = PyString_FromString(device);
- if (obj)
- PyDict_SetItemString(mdict, "device", obj);
- Py_XDECREF(obj);
- Py_INCREF(&pymixer_type);
- PyModule_AddObject(py_mod, "InternalMElement", (PyObject *)&pymelem_type);
- PyModule_AddObject(py_mod, "InternalMixer", (PyObject *)&pymixer_type);
- obj = PyDict_GetItemString(mdict, "InternalMixer");
- if (obj) {
- obj1 = PyTuple_New(3);
- PyTuple_SET_ITEM(obj1, 0, PyInt_FromLong((long)class));
- PyTuple_SET_ITEM(obj1, 1, PyInt_FromLong((long)mixer));
- if (PyTuple_SET_ITEM(obj1, 2, mdict))
- Py_INCREF(mdict);
- obj2 = PyObject_CallObject(obj, obj1);
- Py_XDECREF(obj1);
- PyDict_SetItemString(mdict, "mixer", obj2);
- priv->py_mixer = obj2;
- } else {
- SNDERR("Unable to create InternalMixer object");
- return -EIO;
- }
-
-
- obj = PyRun_FileEx(fp, file, Py_file_input, mdict, mdict, 1);
- if (obj == NULL)
- PyErr_Print();
- Py_XDECREF(obj);
- priv->py_event_func = PyDict_GetItemString(mdict, "event");
- if (priv->py_event_func == NULL) {
- SNDERR("Unable to find python function 'event'");
- return -EIO;
- }
- }
+ if (py_mod)
+ alsa_mixer_simple_pyinit(priv, py_mod, fp, file, class, mixer, device);
return 0;
}

View File

@ -1,8 +1,8 @@
$NetBSD: patch-bk,v 1.1 2008/12/25 13:18:00 hasso Exp $
--- src/async.c.orig 2016-03-31 13:10:39 UTC
--- src/async.c.orig 2020-02-19 09:35:39 UTC
+++ src/async.c
@@ -51,6 +51,15 @@ static LIST_HEAD(snd_async_handlers);
@@ -54,6 +54,15 @@ static LIST_HEAD(snd_async_handlers);
static void snd_async_handler(int signo ATTRIBUTE_UNUSED, siginfo_t *siginfo, void *context ATTRIBUTE_UNUSED)
{
@ -18,7 +18,7 @@ $NetBSD: patch-bk,v 1.1 2008/12/25 13:18:00 hasso Exp $
int fd;
struct list_head *i;
//assert(siginfo->si_code == SI_SIGIO);
@@ -60,6 +69,7 @@ static void snd_async_handler(int signo
@@ -66,6 +75,7 @@ static void snd_async_handler(int signo ATTRIBUTE_UNUS
if (h->fd == fd && h->callback)
h->callback(h);
}

View File

@ -0,0 +1,13 @@
--- src/conf/alsa.conf.orig 2020-02-19 09:35:39 UTC
+++ src/conf/alsa.conf
@@ -8,8 +8,8 @@
{
func load
files [
- "/etc/alsa/conf.d"
- "/etc/asound.conf"
+ "%%PREFIX%%/etc/alsa/conf.d"
+ "%%PREFIX%%/etc/asound.conf"
"~/.asoundrc"
]
errors false

View File

@ -1,5 +1,4 @@
bin/aserver
include/alsa/alisp.h
include/alsa/asoundef.h
include/alsa/asoundlib.h
include/alsa/conf.h
@ -33,27 +32,34 @@ include/alsa/sound/sb16_csp.h
include/alsa/sound/sscape_ioctl.h
include/alsa/sound/tlv.h
include/alsa/sound/type_compat.h
include/alsa/sound/uapi/asoc.h
include/alsa/sound/uapi/asound_fm.h
include/alsa/sound/uapi/emu10k1.h
include/alsa/sound/uapi/hdsp.h
include/alsa/sound/uapi/hdspm.h
include/alsa/sound/uapi/sb16_csp.h
include/alsa/sound/uapi/sscape_ioctl.h
include/alsa/sound/uapi/tlv.h
include/alsa/timer.h
include/alsa/topology.h
include/alsa/use-case.h
include/alsa/version.h
include/asoundlib.h
include/sys/asoundlib.h
lib/alsa-lib/smixer/smixer-ac97.la
lib/alsa-lib/smixer/smixer-ac97.so
lib/alsa-lib/smixer/smixer-hda.la
lib/alsa-lib/smixer/smixer-hda.so
%%PYTHON%%lib/alsa-lib/smixer/smixer-python.la
%%PYTHON%%lib/alsa-lib/smixer/smixer-python.so
lib/alsa-lib/smixer/smixer-sbase.la
lib/alsa-lib/smixer/smixer-sbase.so
lib/libasound.la
lib/libasound.so
lib/libasound.so.2
lib/libasound.so.2.0.0
lib/libatopology.la
lib/libatopology.so
lib/libatopology.so.2
lib/libatopology.so.2.0.0
libdata/pkgconfig/alsa-topology.pc
libdata/pkgconfig/alsa.pc
share/aclocal/alsa.m4
share/alsa/alsa.conf
share/alsa/alsa.conf.d/README
share/alsa/cards/AACI.conf
share/alsa/cards/ATIIXP-MODEM.conf
share/alsa/cards/ATIIXP-SPDMA.conf
@ -83,6 +89,7 @@ share/alsa/cards/FWSpeakers.conf
share/alsa/cards/FireWave.conf
share/alsa/cards/GUS.conf
share/alsa/cards/HDA-Intel.conf
share/alsa/cards/HdmiLpeAudio.conf
share/alsa/cards/ICE1712.conf
share/alsa/cards/ICE1724.conf
share/alsa/cards/ICH-MODEM.conf
@ -99,8 +106,6 @@ share/alsa/cards/RME9636.conf
share/alsa/cards/RME9652.conf
share/alsa/cards/SB-XFi.conf
share/alsa/cards/SI7018.conf
share/alsa/cards/SI7018/sndoc-mixer.alisp
share/alsa/cards/SI7018/sndop-mixer.alisp
share/alsa/cards/TRID4DWAVENX.conf
share/alsa/cards/USB-Audio.conf
share/alsa/cards/VIA686A.conf
@ -111,8 +116,9 @@ share/alsa/cards/VX222.conf
share/alsa/cards/VXPocket.conf
share/alsa/cards/VXPocket440.conf
share/alsa/cards/YMF744.conf
share/alsa/cards/aliases.alisp
share/alsa/cards/aliases.conf
share/alsa/cards/pistachio-card.conf
share/alsa/cards/vc4-hdmi.conf
share/alsa/pcm/center_lfe.conf
share/alsa/pcm/default.conf
share/alsa/pcm/dmix.conf
@ -130,61 +136,4 @@ share/alsa/pcm/surround41.conf
share/alsa/pcm/surround50.conf
share/alsa/pcm/surround51.conf
share/alsa/pcm/surround71.conf
share/alsa/smixer.conf
share/alsa/sndo-mixer.alisp
share/alsa/topology/broadwell/broadwell.conf
share/alsa/topology/sklrt286/codec0_in-cpr-1.bin
share/alsa/topology/sklrt286/codec0_in-mi.bin
share/alsa/topology/sklrt286/codec0_out-cpr-4.bin
share/alsa/topology/sklrt286/codec0_out-mo.bin
share/alsa/topology/sklrt286/codec1_out-cpr-5.bin
share/alsa/topology/sklrt286/codec1_out-mo.bin
share/alsa/topology/sklrt286/dmic01_hifi_in-cpr-3.bin
share/alsa/topology/sklrt286/dmic01_hifi_in-mi.bin
share/alsa/topology/sklrt286/hdmi1_pt_out-cpr-7.bin
share/alsa/topology/sklrt286/hdmi1_pt_out-cpr-8.bin
share/alsa/topology/sklrt286/hdmi2_pt_out-cpr-10.bin
share/alsa/topology/sklrt286/hdmi2_pt_out-cpr-9.bin
share/alsa/topology/sklrt286/hdmi3_pt_out-cpr-11.bin
share/alsa/topology/sklrt286/hdmi3_pt_out-cpr-12.bin
share/alsa/topology/sklrt286/media0_in-cpr-0.bin
share/alsa/topology/sklrt286/media0_in-mi.bin
share/alsa/topology/sklrt286/media0_out-cpr-6.bin
share/alsa/topology/sklrt286/media0_out-mo.bin
share/alsa/topology/sklrt286/skl_i2s.conf
share/alsa/ucm/DAISY-I2S/DAISY-I2S.conf
share/alsa/ucm/DAISY-I2S/HiFi.conf
share/alsa/ucm/GoogleNyan/GoogleNyan.conf
share/alsa/ucm/GoogleNyan/HiFi.conf
share/alsa/ucm/PAZ00/HiFi.conf
share/alsa/ucm/PAZ00/PAZ00.conf
share/alsa/ucm/PAZ00/Record.conf
share/alsa/ucm/PandaBoard/FMAnalog
share/alsa/ucm/PandaBoard/PandaBoard.conf
share/alsa/ucm/PandaBoard/hifi
share/alsa/ucm/PandaBoard/hifiLP
share/alsa/ucm/PandaBoard/record
share/alsa/ucm/PandaBoard/voice
share/alsa/ucm/PandaBoard/voiceCall
share/alsa/ucm/PandaBoardES/FMAnalog
share/alsa/ucm/PandaBoardES/PandaBoardES.conf
share/alsa/ucm/PandaBoardES/hifi
share/alsa/ucm/PandaBoardES/hifiLP
share/alsa/ucm/PandaBoardES/record
share/alsa/ucm/PandaBoardES/voice
share/alsa/ucm/PandaBoardES/voiceCall
share/alsa/ucm/SDP4430/FMAnalog
share/alsa/ucm/SDP4430/SDP4430.conf
share/alsa/ucm/SDP4430/hifi
share/alsa/ucm/SDP4430/hifiLP
share/alsa/ucm/SDP4430/record
share/alsa/ucm/SDP4430/voice
share/alsa/ucm/SDP4430/voiceCall
share/alsa/ucm/VEYRON-I2S/HiFi.conf
share/alsa/ucm/VEYRON-I2S/VEYRON-I2S.conf
share/alsa/ucm/broadwell-rt286/HiFi
share/alsa/ucm/broadwell-rt286/broadwell-rt286.conf
share/alsa/ucm/chtrt5645/HiFi.conf
share/alsa/ucm/chtrt5645/chtrt5645.conf
share/alsa/ucm/tegraalc5632/tegraalc5632.conf
@sample etc/asound.conf.sample

View File

@ -1,8 +1,7 @@
# Created by: Aragon Gouveia <aragon@phat.za.net>
PORTNAME= alsa-plugins
PORTVERSION= 1.1.1
PORTREVISION= 7
PORTVERSION= 1.2.2
CATEGORIES= audio
MASTER_SITES= ftp://ftp.alsa-project.org/pub/plugins/ \
GENTOO
@ -16,47 +15,43 @@ LIB_DEPENDS= libasound.so:audio/alsa-lib
USES= alias libtool:keepla localbase pkgconfig tar:bzip2
GNU_CONFIGURE= yes
MAKE_ARGS+= RM="${RM}"
EXTRA_PATCHES+= ${FILESDIR}/alsa-plugins.patch
INSTALL_TARGET= install-strip
CPPFLAGS+= -I${.CURDIR}/../alsa-lib/files
OPTIONS_DEFAULT=IO_PTR
OPTIONS_DEFINE= JACK FFMPEG PULSEAUDIO SAMPLERATE SPEEX
OPTIONS_SUB= yes
OPTIONS_DEFAULT= BUFSZ_P2 IO_PTR PULSEAUDIO
OPTIONS_DEFINE= BUFSZ_P2 FFMPEG JACK PULSEAUDIO SAMPLERATE SPEEX
OPTIONS_SUB= yes
OPTIONS_GROUP= OSS
OPTIONS_GROUP_OSS=IO_PTR BLKCNT_P2 BUFSZ_P2 VERBOSE
OPTIONS_GROUP= OSS
OPTIONS_GROUP_OSS= BLKCNT_P2 BUFSZ_P2 IO_PTR VERBOSE
IO_PTR_DESC= Precise playback/recording pointer
BLKCNT_P2_DESC= Restrict number of fragments to ^2 aligned
BUFSZ_P2_DESC= Restrict buffer size to ^2 aligned
VERBOSE_DESC= Print debugging messages
IO_PTR_CFLAGS= -DFREEBSD_OSS_USE_IO_PTR
BLKCNT_P2_CFLAGS=-DFREEBSD_OSS_BLKCNT_P2
BUFSZ_P2_CFLAGS=-DFREEBSD_OSS_BUFSZ_P2
VERBOSE_CFLAGS= -DFREEBSD_OSS_DEBUG_VERBOSE
IO_PTR_CFLAGS= -DFREEBSD_OSS_USE_IO_PTR
BLKCNT_P2_CFLAGS= -DFREEBSD_OSS_BLKCNT_P2
BUFSZ_P2_CFLAGS= -DFREEBSD_OSS_BUFSZ_P2
VERBOSE_CFLAGS= -DFREEBSD_OSS_DEBUG_VERBOSE
JACK_LIB_DEPENDS= libjack.so:audio/jack
JACK_CONFIGURE_ENABLE= jack
JACK_IMPLIES= SAMPLERATE
FFMPEG_LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg
FFMPEG_CONFIGURE_ENABLE=avcodec
FFMPEG_LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg
FFMPEG_CONFIGURE_ENABLE= avcodec
PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
PULSEAUDIO_CONFIGURE_ENABLE=pulseaudio
PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
PULSEAUDIO_CONFIGURE_ENABLE= pulseaudio
SAMPLERATE_LIB_DEPENDS= libsamplerate.so:audio/libsamplerate
SAMPLERATE_CONFIGURE_ENABLE=samplerate
SAMPLERATE_LIB_DEPENDS= libsamplerate.so:audio/libsamplerate
SAMPLERATE_CONFIGURE_ENABLE= samplerate
SPEEX_LIB_DEPENDS= libspeex.so:audio/speex
SPEEX_CONFIGURE_ON= --with-speex=lib
SPEEX_CONFIGURE_OFF= --without-speex
post-patch: .SILENT
${REINPLACE_CMD} -e '/LIBS/s/-ldl//g' \
-e '/lt_cv_dlopen/s/-ldl//g' \
${WRKSRC}/configure
.include <bsd.port.mk>

View File

@ -1,2 +1,3 @@
SHA256 (alsa-plugins-1.1.1.tar.bz2) = 8ea4d1e082c36528a896a2581e5eb62d4dc2683238e353050d0d624e65f901f1
SIZE (alsa-plugins-1.1.1.tar.bz2) = 366193
TIMESTAMP = 1585923260
SHA256 (alsa-plugins-1.2.2.tar.bz2) = 1c0f06450c928d711719686c9dbece2d480184f36fab11b8f0534cb7b41e337d
SIZE (alsa-plugins-1.2.2.tar.bz2) = 406494

View File

@ -1,3 +1,10 @@
@comment etc/alsa/conf.d/50-arcam-av-ctl.conf
@comment etc/alsa/conf.d/50-oss.conf
@comment etc/alsa/conf.d/50-pulseaudio.conf
@comment etc/alsa/conf.d/60-upmix.conf
@comment etc/alsa/conf.d/60-vdownmix.conf
@comment etc/alsa/conf.d/98-usb-stream.conf
@comment etc/alsa/conf.d/99-pulseaudio-default.conf.example
%%PULSEAUDIO%%lib/alsa-lib/libasound_module_conf_pulse.la
%%PULSEAUDIO%%lib/alsa-lib/libasound_module_conf_pulse.so
lib/alsa-lib/libasound_module_ctl_arcam_av.la
@ -38,5 +45,9 @@ lib/alsa-lib/libasound_module_pcm_vdownmix.so
%%SPEEX%%lib/alsa-lib/libasound_module_rate_speexrate.so
%%SPEEX%%lib/alsa-lib/libasound_module_rate_speexrate_best.so
%%SPEEX%%lib/alsa-lib/libasound_module_rate_speexrate_medium.so
@comment share/alsa/alsa.conf.d/50-arcam-av-ctl.conf
@comment share/alsa/alsa.conf.d/50-oss.conf
%%PULSEAUDIO%%share/alsa/alsa.conf.d/50-pulseaudio.conf
%%PULSEAUDIO%%share/alsa/alsa.conf.d/99-pulseaudio-default.conf.example
@comment share/alsa/alsa.conf.d/60-upmix.conf
@comment share/alsa/alsa.conf.d/60-vdownmix.conf
@comment share/alsa/alsa.conf.d/98-usb-stream.conf

View File

@ -1,8 +1,7 @@
# Created by: Aragon Gouveia <aragon@phat.za.net>
PORTNAME= alsa-utils
PORTVERSION= 1.1.2
PORTREVISION= 1
PORTVERSION= 1.2.2
CATEGORIES= audio
MASTER_SITES= ftp://ftp.alsa-project.org/pub/utils/ \
GENTOO
@ -13,45 +12,54 @@ COMMENT= ALSA compatibility utilities
LICENSE= GPLv2+
LIB_DEPENDS= libasound.so:audio/alsa-lib \
libfftw3f.so:math/fftw3-float
libepoll-shim.so:devel/libepoll-shim \
libfftw3f.so:math/fftw3-float \
libinotify.so:devel/libinotify
RUN_DEPENDS= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:audio/alsa-plugins
USES= gmake localbase ncurses shebangfix tar:bzip2
USES= autoreconf gmake libtool localbase ncurses shebangfix tar:bzip2 pkgconfig
GNU_CONFIGURE= yes
CONFIGURE_ARGS= --with-udev-rules-dir="\$${prefix}/lib/udev"
SHEBANG_FILES= alsa-info/alsa-info.sh alsaconf/alsaconf.in bat/alsabat-test.sh
INSTALL_TARGET= install-strip
CPPFLAGS+= -I${.CURDIR}/../alsa-lib/files
CFLAGS+= -Dlseek64=lseek -DSCHED_IDLE=SCHED_OTHER \
-I${LOCALBASE}/include/libepoll-shim
LDFLAGS+= -linotify -lepoll-shim
OPTIONS_SUB= yes
OPTIONS_DEFINE= BAT MANPAGES NLS SAMPLERATE
OPTIONS_DEFAULT=BAT MANPAGES
OPTIONS_SUB= yes
OPTIONS_DEFINE= BAT MANPAGES NLS SAMPLERATE
OPTIONS_DEFAULT= BAT MANPAGES
BAT_DESC= Basic Audio Tester support
BAT_LIB_DEPENDS=libfftw3.so:math/fftw3
BAT_CONFIGURE_ENABLE=bat
BAT_DESC= Basic Audio Tester support
BAT_LIB_DEPENDS= libfftw3.so:math/fftw3 \
libfftw3f.so:math/fftw3-float
BAT_CONFIGURE_ENABLE= bat
MANPAGES_BUILD_DEPENDS= minixmlto:textproc/minixmlto
MANPAGES_CONFIGURE_ENV= ac_cv_prog_xmlto=minixmlto
MANPAGES_CONFIGURE_ENABLE=xmlto
MANPAGES_BUILD_DEPENDS= minixmlto:textproc/minixmlto
MANPAGES_CONFIGURE_ENV= ac_cv_prog_xmlto=minixmlto
MANPAGES_CONFIGURE_ENABLE= xmlto
NLS_USES= gettext
NLS_CONFIGURE_ENABLE=nls
NLS_LIBS= -lintl
NLS_USES= gettext
NLS_CONFIGURE_ENABLE= nls
NLS_LIBS= -lintl
SAMPLERATE_LIB_DEPENDS= libsamplerate.so:audio/libsamplerate
SAMPLERATE_CONFIGURE_ENV_OFF=ac_cv_header_samplerate_h=no
SAMPLERATE_LIB_DEPENDS= libsamplerate.so:audio/libsamplerate
SAMPLERATE_CONFIGURE_ENV_OFF= ac_cv_header_samplerate_h=no
post-patch: .SILENT
${REINPLACE_CMD} -e '/LIBS/s/-ldl//g; /LIBRT/s/-lrt//g;' \
-e '/x"$$xmlto"/s/= xyes/!= xno/' \
${WRKSRC}/configure
${REINPLACE_CMD} -e 's/ xmlto/ $$(xmlto)/' \
${WRKSRC}/alsactl/Makefile.in
${FIND} -E ${WRKSRC} -type f -regex \
'.*\.([[:digit:]]|spec\.in|csv|xml)' -exec \
${REINPLACE_CMD} -i .pathfix.bak \
-e 's|/usr/share|${PREFIX}/share|g' \
-e 's|/etc/asound\.conf|${LOCALBASE}&|g' {} +
post-patch:
@${REINPLACE_CMD} \
's|%%PREFIX%%|${PREFIX}|g' \
${WRKSRC}/alsactl/alsactl_init.xml \
${WRKSRC}/speaker-test/speaker-test.1 \
${WRKSRC}/speaker-test/samples/sample_map.csv \
${WRKSRC}/alsaconf/alsaconf.fr.8 \
${WRKSRC}/alsaconf/alsaconf.8 \
${WRKSRC}/utils/alsa-utils.spec.in \
${WRKSRC}/amidi/amidi.1
@${REINPLACE_CMD} \
's|%%LOCALBASE%%|${LOCALBASE}|g' \
${WRKSRC}/alsa-info/alsa-info.sh.1 \
${WRKSRC}/amidi/amidi.1
.include <bsd.port.mk>

View File

@ -1,2 +1,3 @@
SHA256 (alsa-utils-1.1.2.tar.bz2) = 7af603c0877d1251599d65b4fbc372e63a54371b888f5c26c6a86ac1d0519071
SIZE (alsa-utils-1.1.2.tar.bz2) = 1193140
TIMESTAMP = 1615527978
SHA256 (alsa-utils-1.2.2.tar.bz2) = 44807bd578c5f6df6e91a11b8d37e546424a5a1ea8d8e659ee359fe01730e4f3
SIZE (alsa-utils-1.2.2.tar.bz2) = 1274821

View File

@ -0,0 +1,11 @@
--- alsa-info/alsa-info.sh.1.orig 2020-02-19 12:02:10 UTC
+++ alsa-info/alsa-info.sh.1
@@ -37,7 +37,7 @@ Includes output from \fIamixer\fP.
Includes output from \fIalsactl\fP.
.TP
\fI\-\-with-configs\fP
-Includes output from ~/.asoundrc and /etc/asound.conf if they exist.
+Includes output from ~/.asoundrc and %%LOCALBASE%%/etc/asound.conf if they exist.
.TP
\fI\-\-update\fP
Check server for updates.

View File

@ -0,0 +1,11 @@
--- alsaconf/alsaconf.8.orig 2020-02-19 12:02:10 UTC
+++ alsaconf/alsaconf.8
@@ -79,7 +79,7 @@ In Debian, the default gid of the device files is 29 (
audio group) and the default device mode is 0660.
For the ALSA base package, see also
-.I /usr/share/doc/alsa\-base/
+.I %%PREFIX%%/share/doc/alsa\-base/
.SH SEE ALSO
\fB

View File

@ -0,0 +1,11 @@
--- alsaconf/alsaconf.fr.8.orig 2020-02-19 12:02:10 UTC
+++ alsaconf/alsaconf.fr.8
@@ -82,7 +82,7 @@ correspond au groupe audio) et le mode par défaut des
0660.
Pour le paquetage de base ALSA, voir aussi
-.I /usr/share/doc/alsa-base/
+.I %%PREFIX%%/share/doc/alsa-base/
.SH VOIR AUSSI
\fB

View File

@ -0,0 +1,11 @@
--- alsactl/Makefile.in.orig 2021-03-12 04:46:51 UTC
+++ alsactl/Makefile.in
@@ -1110,7 +1110,7 @@ alsa-restore.service: alsa-restore.service.in
$(edit)
%.7: %.xml
- xmlto man $?
+ $(xmlto) man $?
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.

View File

@ -0,0 +1,24 @@
--- alsactl/alsactl_init.xml.orig 2020-02-19 12:02:10 UTC
+++ alsactl/alsactl_init.xml
@@ -29,8 +29,8 @@
<refsect1><title>CONFIGURATION</title>
<para>All "alsactl init" configuration files are placed in
- <filename>/usr/share/alsa/init/</filename> directory. The top level
- configuration file is <filename>/usr/share/alsa/init/00main</filename>.
+ <filename>%%PREFIX%%/share/alsa/init/</filename> directory. The top level
+ configuration file is <filename>%%PREFIX%%/share/alsa/init/00main</filename>.
The default top-level file can be also specified using -i or
--initfile parameter for the alsactl tool.
Every file consists of a set of lines of text. All empty lines or
@@ -38,8 +38,8 @@
<refsect2><title>Rules files</title>
<para>The "alsactl init" rules are read from the files located
- in the <filename>/usr/share/alsa/init/*</filename>. The top
- level configuration file is <filename>/usr/share/alsa/init/00main</filename>.
+ in the <filename>%%PREFIX%%/share/alsa/init/*</filename>. The top
+ level configuration file is <filename>%%PREFIX%%/share/alsa/init/00main</filename>.
Every line in the rules file contains at least one key value pair.
There are two kind of keys, match and assignment keys. If all match
keys are matching against its value, the rule gets applied and the

View File

@ -1,11 +0,0 @@
--- alsamixer/volume_mapping.c.orig 2016-03-31 14:37:02 UTC
+++ alsamixer/volume_mapping.c
@@ -37,7 +37,7 @@
#include <stdbool.h>
#include "volume_mapping.h"
-#ifdef __UCLIBC__
+#ifndef __GLIBC__
/* 10^x = 10^(log e^x) = (e^x)^log10 = e^(x * log 10) */
#define exp10(x) (exp((x) * log(10)))
#endif /* __UCLIBC__ */

View File

@ -0,0 +1,15 @@
--- amidi/amidi.1.orig 2020-02-19 12:02:10 UTC
+++ amidi/amidi.1
@@ -160,10 +160,10 @@ and stops after the device has finished sending data
creates a virtual RawMIDI port and prints all data sent to this port.
.SH FILES
-.I /usr/share/alsa/alsa.conf
+.I %%PREFIX%%/share/alsa/alsa.conf
default rawmidi definitions
.br
-.I /etc/asound.conf
+.I %%LOCALBASE%%/etc/asound.conf
system\-wide rawmidi definitions
.br
.I ~/.asoundrc

View File

@ -1,23 +1,23 @@
--- aplay/aplay.c.orig 2016-03-31 14:37:02 UTC
--- aplay/aplay.c.orig 2020-02-19 12:02:10 UTC
+++ aplay/aplay.c
@@ -48,7 +48,6 @@
@@ -49,7 +49,6 @@
#include <sys/time.h>
#include <sys/stat.h>
#include <sys/types.h>
-#include <endian.h>
#include "aconfig.h"
#include "gettext.h"
#include "formats.h"
#include "version.h"
@@ -70,6 +69,12 @@
#define be16toh(x) __be16_to_cpu(x)
#define le32toh(x) __le32_to_cpu(x)
#define be32toh(x) __be32_to_cpu(x)
#endif
+#endif
+
+#ifndef _LARGEFILE64_SOURCE
+/* assume modern system */
+typedef off_t off64_t;
+#define lseek64 lseek
+#endif
+
#define DEFAULT_FORMAT SND_PCM_FORMAT_U8
#define DEFAULT_SPEED 8000
#endif
#define DEFAULT_FORMAT SND_PCM_FORMAT_U8

View File

@ -0,0 +1,7 @@
--- speaker-test/samples/sample_map.csv.orig 2020-02-19 12:02:10 UTC
+++ speaker-test/samples/sample_map.csv
@@ -1,2 +1,2 @@
-0, "Front Left", "/usr/share/alsa/samples/Front_Left.wav"
-1, "Front Right", "/usr/share/alsa/samples/Front_Right.wav"
+0, "Front Left", "%%PREFIX%%/share/alsa/samples/Front_Left.wav"
+1, "Front Right", "%%PREFIX%%/share/alsa/samples/Front_Right.wav"
Can't render this file because it has a wrong number of fields in line 3.

View File

@ -0,0 +1,11 @@
--- speaker-test/speaker-test.1.orig 2020-02-19 12:02:10 UTC
+++ speaker-test/speaker-test.1
@@ -129,7 +129,7 @@ Use the given WAV file for the playback instead of pre
.TP
\fB\-W\fP | \fB\-\-wavdir\fP \fIDIRECTORY\fP
Specify the directory containing WAV files for playback.
-The default path is \fI/usr/share/sounds/alsa\fP.
+The default path is \fI%%PREFIX%%/share/sounds/alsa\fP.
.TP
\fB\-m\fP | \fB\-\-chmap\fP \fIMAP\fP

View File

@ -0,0 +1,11 @@
--- utils/alsa-utils.spec.in.orig 2020-02-19 12:02:10 UTC
+++ utils/alsa-utils.spec.in
@@ -41,7 +41,7 @@ Advanced Linux Sound Architecture (ALSA) - Utils
* Sun Nov 11 2001 Miroslav Benes <mbenes@tenez.cz>
- dangerous command "rpm -rf $RPM_BUILD_ROOT" checks $RPM_BUILD_ROOT variable
-- unset key "Docdir" - on some new systems are documentation in /usr/share/doc
+- unset key "Docdir" - on some new systems are documentation in %%PREFIX%%/share/doc
* Mon May 28 1998 Helge Jensen <slog@slog.dk>

View File

@ -12,11 +12,15 @@ bin/arecord
bin/arecordmidi
bin/aseqdump
bin/aseqnet
bin/axfer
bin/iecset
bin/speaker-test
lib/udev/89-alsa-ucm.rules
lib/udev/90-alsa-restore.rules
man/fr/man8/alsaconf.8.gz
man/man1/aconnect.1.gz
man/man1/alsa-info.sh.1.gz
%%BAT%%man/man1/alsabat.1.gz
man/man1/alsactl.1.gz
man/man1/alsaloop.1.gz
man/man1/alsamixer.1.gz
@ -28,11 +32,11 @@ man/man1/arecord.1.gz
man/man1/arecordmidi.1.gz
man/man1/aseqdump.1.gz
man/man1/aseqnet.1.gz
man/man1/axfer-list.1.gz
man/man1/axfer-transfer.1.gz
man/man1/axfer.1.gz
man/man1/iecset.1.gz
man/man1/speaker-test.1.gz
man/man1/alsa-info.sh.1.gz
%%BAT%%man/man1/alsabat.1.gz
%%MANPAGES%%man/man7/alsactl_init.7.gz
man/man8/alsaconf.8.gz
sbin/alsa-info.sh
%%BAT%%sbin/alsabat-test.sh