...estore-loading-usr-share-alsa-alsa.conf.d.patch | 24 + .gear/alsa-git.patch | 728 +++++++++++++++++++++ .gear/rules | 3 + .../tags/92b7901e91970934918b1b06a774793f4c57da7b | 214 ++++++ .gear/tags/list | 1 + asound.conf.sonicvibes_2 | 54 ++ libalsa.spec | 602 +++++++++++++++++ 7 files changed, 1626 insertions(+) diff --git a/.gear/0001-Restore-loading-usr-share-alsa-alsa.conf.d.patch b/.gear/0001-Restore-loading-usr-share-alsa-alsa.conf.d.patch new file mode 100644 index 00000000..4eeac0a8 --- /dev/null +++ b/.gear/0001-Restore-loading-usr-share-alsa-alsa.conf.d.patch @@ -0,0 +1,24 @@ +From c5a7a1f4739c961b19922b1dd6b6be60972ed4cf Mon Sep 17 00:00:00 2001 +From: Mikhail Novosyolov +Date: Mon, 18 Feb 2019 01:53:21 +0300 +Subject: [PATCH] Restore loading /usr/share/alsa/alsa.conf.d/* + +--- + src/conf/alsa.conf | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/conf/alsa.conf b/src/conf/alsa.conf +index bb00ff40..e6c4a5f6 100644 +--- a/src/conf/alsa.conf ++++ b/src/conf/alsa.conf +@@ -10,6 +10,7 @@ + files [ + "/usr/etc/alsa/conf.d" + "/etc/alsa/conf.d" ++ "/usr/share/alsa/alsa.conf.d" + "/etc/asound.conf|||/usr/etc/asound.conf" + "~/.asoundrc" + { +-- +2.19.2 + diff --git a/.gear/alsa-git.patch b/.gear/alsa-git.patch new file mode 100644 index 00000000..b42c2d23 --- /dev/null +++ b/.gear/alsa-git.patch @@ -0,0 +1,728 @@ +From ddfc32abf5697de1618b9e7ffdf57a0f97013090 Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Wed, 2 Jun 2021 08:49:32 +0200 +Subject: [PATCH 01/18] conf: fix load_for_all_cards() + +The 63f7745b commit is loading the driver specific configuration +multiple times which ends with the array merges (see the bug). + +Introduce the loaded compound which traces the already loaded +driver configurations and skip the multiple load requests. + +Fixes: https://github.com/alsa-project/alsa-lib/issues/143 +Fixes: 63f7745b ("conf: extend load_for_all_cards hook (id/value table)") +Signed-off-by: Jaroslav Kysela +--- + src/conf.c | 33 ++++++++++++++++++++++++++++----- + 1 file changed, 28 insertions(+), 5 deletions(-) + +diff --git a/src/conf.c b/src/conf.c +index f6c80031..d863dec6 100644 +--- a/src/conf.c ++++ b/src/conf.c +@@ -4325,18 +4325,23 @@ static int _snd_config_hook_table(snd_config_t *root, snd_config_t *config, snd_ + int snd_config_hook_load_for_all_cards(snd_config_t *root, snd_config_t *config, snd_config_t **dst, snd_config_t *private_data ATTRIBUTE_UNUSED) + { + int card = -1, err; ++ snd_config_t *loaded; // trace loaded cards + ++ err = snd_config_top(&loaded); ++ if (err < 0) ++ return err; + do { + err = snd_card_next(&card); + if (err < 0) +- return err; ++ goto __fin_err; + if (card >= 0) { +- snd_config_t *n, *private_data = NULL; ++ snd_config_t *n, *m, *private_data = NULL; + const char *driver; + char *fdriver = NULL; ++ bool load; + err = snd_determine_driver(card, &fdriver); + if (err < 0) +- return err; ++ goto __fin_err; + if (snd_config_search(root, fdriver, &n) >= 0) { + if (snd_config_get_string(n, &driver) < 0) { + if (snd_config_get_type(n) == SND_CONFIG_TYPE_COMPOUND) { +@@ -4357,6 +4362,19 @@ int snd_config_hook_load_for_all_cards(snd_config_t *root, snd_config_t *config, + driver = fdriver; + } + __std: ++ load = true; ++ err = snd_config_imake_integer(&m, driver, 1); ++ if (err < 0) ++ goto __err; ++ err = snd_config_add(loaded, m); ++ if (err < 0) { ++ if (err == -EEXIST) { ++ snd_config_delete(m); ++ load = false; ++ } else { ++ goto __err; ++ } ++ } + private_data = _snd_config_hook_private_data(card, driver); + if (!private_data) { + err = -ENOMEM; +@@ -4365,17 +4383,22 @@ int snd_config_hook_load_for_all_cards(snd_config_t *root, snd_config_t *config, + err = _snd_config_hook_table(root, config, private_data); + if (err < 0) + goto __err; +- err = snd_config_hook_load(root, config, &n, private_data); ++ if (load) ++ err = snd_config_hook_load(root, config, &n, private_data); + __err: + if (private_data) + snd_config_delete(private_data); + free(fdriver); + if (err < 0) +- return err; ++ goto __fin_err; + } + } while (card >= 0); ++ snd_config_delete(loaded); + *dst = NULL; + return 0; ++__fin_err: ++ snd_config_delete(loaded); ++ return err; + } + #ifndef DOC_HIDDEN + SND_DLSYM_BUILD_VERSION(snd_config_hook_load_for_all_cards, SND_CONFIG_DLSYM_VERSION_HOOK); +-- +2.30.2 + + +From 0e4ba2ea8c0402f12a645032a14693eb9b1278e6 Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Wed, 2 Jun 2021 11:09:43 +0200 +Subject: [PATCH 02/18] ucm: add _alibpref to get the private device prefix + +It may be useful to get the device prefix for the local configuration. + +Link: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1251 +Signed-off-by: Jaroslav Kysela +--- + include/use-case.h | 1 + + src/ucm/main.c | 21 +++++++++++++++++++++ + 2 files changed, 22 insertions(+) + +diff --git a/include/use-case.h b/include/use-case.h +index ec1a97b0..7890358b 100644 +--- a/include/use-case.h ++++ b/include/use-case.h +@@ -258,6 +258,7 @@ int snd_use_case_get_list(snd_use_case_mgr_t *uc_mgr, + * - _verb - return current verb + * - _file - return configuration file loaded for current card + * - _alibcfg - return private alsa-lib's configuration for current card ++ * - _alibpref - return private alsa-lib's configuration device prefix for current card + * + * - [=]{NAME}[/[{modifier}|{/device}][/{verb}]] + * - value identifier {NAME} +diff --git a/src/ucm/main.c b/src/ucm/main.c +index 361952f6..3c9ea15d 100644 +--- a/src/ucm/main.c ++++ b/src/ucm/main.c +@@ -2138,6 +2138,25 @@ static int get_alibcfg(snd_use_case_mgr_t *uc_mgr, char **str) + return 0; + } + ++/** ++ * \brief Get device prefix for private alsa-lib configuration ++ * \param uc_mgr Use case manager ++ * \param str Returned value string ++ * \return Zero on success (value is filled), otherwise a negative error code ++ */ ++static int get_alibpref(snd_use_case_mgr_t *uc_mgr, char **str) ++{ ++ const size_t l = 9; ++ char *s; ++ ++ s = malloc(l); ++ if (s == NULL) ++ return -ENOMEM; ++ snprintf(s, l, "_ucm%04X", uc_mgr->ucm_card_number); ++ *str = s; ++ return 0; ++} ++ + /** + * \brief Get current - string + * \param uc_mgr Use case manager +@@ -2193,6 +2212,8 @@ int snd_use_case_get(snd_use_case_mgr_t *uc_mgr, + + } else if (strcmp(identifier, "_alibcfg") == 0) { + err = get_alibcfg(uc_mgr, (char **)value); ++ } else if (strcmp(identifier, "_alibpref") == 0) { ++ err = get_alibpref(uc_mgr, (char **)value); + } else if (identifier[0] == '_') { + err = -ENOENT; + } else { +-- +2.30.2 + + +From 9621d0bff2e60b43e329ffa5059ab19f2914ec14 Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Wed, 2 Jun 2021 11:21:54 +0200 +Subject: [PATCH 03/18] ucm: fix _alibpref string (add '.' delimiter to the + end) + +Fixes: 0e4ba2ea ("ucm: add _alibpref to get the private device prefix") +Signed-off-by: Jaroslav Kysela +--- + src/ucm/main.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/ucm/main.c b/src/ucm/main.c +index 3c9ea15d..c9b37b68 100644 +--- a/src/ucm/main.c ++++ b/src/ucm/main.c +@@ -2146,13 +2146,13 @@ static int get_alibcfg(snd_use_case_mgr_t *uc_mgr, char **str) + */ + static int get_alibpref(snd_use_case_mgr_t *uc_mgr, char **str) + { +- const size_t l = 9; ++ const size_t l = 10; + char *s; + + s = malloc(l); + if (s == NULL) + return -ENOMEM; +- snprintf(s, l, "_ucm%04X", uc_mgr->ucm_card_number); ++ snprintf(s, l, "_ucm%04X.", uc_mgr->ucm_card_number); + *str = s; + return 0; + } +-- +2.30.2 + + +From 2a1dafdbe5932260aeb4db359ce5d630b8106889 Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Wed, 2 Jun 2021 19:26:47 +0200 +Subject: [PATCH 04/18] conf: remove dead code in snd_config_get_card() + +Signed-off-by: Jaroslav Kysela +--- + src/confmisc.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/confmisc.c b/src/confmisc.c +index 3663d164..a561040c 100644 +--- a/src/confmisc.c ++++ b/src/confmisc.c +@@ -154,10 +154,10 @@ int snd_config_get_card(const snd_config_t *conf) + long v; + int err; + +- if ((err = snd_config_get_integer(conf, &v)) < 0) { ++ if (snd_config_get_integer(conf, &v) < 0) { + if ((err = snd_config_get_string(conf, &str)) < 0) { +- snd_config_get_id(conf, &id); +- SNDERR("Invalid field %s", id); ++ if (snd_config_get_id(conf, &id) >= 0) ++ SNDERR("Invalid field %s", id); + return -EINVAL; + } + err = snd_card_get_index(str); +-- +2.30.2 + + +From 013ec607db9de11b682f2b85d843be062ca0d046 Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Wed, 2 Jun 2021 19:28:32 +0200 +Subject: [PATCH 05/18] control: remap - fix uninitialized value in + parse_map_vindex() + +Signed-off-by: Jaroslav Kysela +--- + src/control/control_remap.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/control/control_remap.c b/src/control/control_remap.c +index f3d65010..17c6558a 100644 +--- a/src/control/control_remap.c ++++ b/src/control/control_remap.c +@@ -1040,7 +1040,7 @@ static int parse_map_vindex(struct snd_ctl_map_ctl *mctl, snd_config_t *conf) + + snd_config_for_each(i, next, conf) { + snd_config_t *n = snd_config_iterator_entry(i); +- long idx, chn; ++ long idx = -1, chn = -1; + const char *id; + if (snd_config_get_id(n, &id) < 0) + continue; +-- +2.30.2 + + +From 2fee6af9b6e157475159d284af8de1e879bb7a36 Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Wed, 2 Jun 2021 19:35:44 +0200 +Subject: [PATCH 06/18] pcm: direct - fix pcmp error path in + _snd_pcm_direct_new() + +Signed-off-by: Jaroslav Kysela +--- + src/pcm/pcm_direct.c | 21 ++++++++++++--------- + 1 file changed, 12 insertions(+), 9 deletions(-) + +diff --git a/src/pcm/pcm_direct.c b/src/pcm/pcm_direct.c +index 0e5e0421..361805bd 100644 +--- a/src/pcm/pcm_direct.c ++++ b/src/pcm/pcm_direct.c +@@ -2126,24 +2126,20 @@ int _snd_pcm_direct_new(snd_pcm_t **pcmp, snd_pcm_direct_t **_dmix, int type, + dmix->type = type; + + ret = snd_pcm_new(pcmp, type, name, stream, mode); +- if (ret < 0) { +-_err_nosem: +- free(dmix->bindings); +- free(dmix); +- return ret; +- } ++ if (ret < 0) ++ goto _err_nosem; + + while (1) { + ret = snd_pcm_direct_semaphore_create_or_connect(dmix); + if (ret < 0) { + SNDERR("unable to create IPC semaphore"); +- goto _err_nosem; ++ goto _err_nosem_free; + } + ret = snd_pcm_direct_semaphore_down(dmix, DIRECT_IPC_SEM_CLIENT); + if (ret < 0) { + snd_pcm_direct_semaphore_discard(dmix); + if (--fail_sem_loop <= 0) +- goto _err_nosem; ++ goto _err_nosem_free; + continue; + } + break; +@@ -2153,10 +2149,17 @@ _err_nosem: + if (ret < 0) { + SNDERR("unable to create IPC shm instance"); + snd_pcm_direct_semaphore_up(dmix, DIRECT_IPC_SEM_CLIENT); +- goto _err_nosem; ++ goto _err_nosem_free; + } else { + *_dmix = dmix; + } + ++ return ret; ++_err_nosem_free: ++ snd_pcm_free(*pcmp); ++ *pcmp = NULL; ++_err_nosem: ++ free(dmix->bindings); ++ free(dmix); + return ret; + } +-- +2.30.2 + + +From eb95cad4e22a0bf2577f1fa4a3f6fd18caed3362 Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Wed, 2 Jun 2021 19:37:53 +0200 +Subject: [PATCH 07/18] pcm: remove extra NULL checks in snd_pcm_dmix_open() + +Signed-off-by: Jaroslav Kysela +--- + src/pcm/pcm_dmix.c | 11 ++++------- + 1 file changed, 4 insertions(+), 7 deletions(-) + +diff --git a/src/pcm/pcm_dmix.c b/src/pcm/pcm_dmix.c +index 8747450f..608593f1 100644 +--- a/src/pcm/pcm_dmix.c ++++ b/src/pcm/pcm_dmix.c +@@ -998,7 +998,7 @@ int snd_pcm_dmix_open(snd_pcm_t **pcmp, const char *name, + snd_config_t *root, snd_config_t *sconf, + snd_pcm_stream_t stream, int mode) + { +- snd_pcm_t *pcm = NULL, *spcm = NULL; ++ snd_pcm_t *pcm, *spcm = NULL; + snd_pcm_direct_t *dmix; + int ret, first_instance; + +@@ -1154,12 +1154,9 @@ int snd_pcm_dmix_open(snd_pcm_t **pcmp, const char *name, + } else + snd_pcm_direct_semaphore_up(dmix, DIRECT_IPC_SEM_CLIENT); + _err_nosem: +- if (dmix) { +- free(dmix->bindings); +- free(dmix); +- } +- if (pcm) +- snd_pcm_free(pcm); ++ free(dmix->bindings); ++ free(dmix); ++ snd_pcm_free(pcm); + return ret; + } + +-- +2.30.2 + + +From 01a45aec6fcd5a5378a5b5e0ae0f9dacde2068e4 Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Wed, 2 Jun 2021 19:39:32 +0200 +Subject: [PATCH 08/18] pcm: remove extra NULL checks in snd_pcm_dsnoop_open() + +Signed-off-by: Jaroslav Kysela +--- + src/pcm/pcm_dsnoop.c | 13 +++++-------- + 1 file changed, 5 insertions(+), 8 deletions(-) + +diff --git a/src/pcm/pcm_dsnoop.c b/src/pcm/pcm_dsnoop.c +index fb1b02c2..2c3b9f43 100644 +--- a/src/pcm/pcm_dsnoop.c ++++ b/src/pcm/pcm_dsnoop.c +@@ -564,8 +564,8 @@ int snd_pcm_dsnoop_open(snd_pcm_t **pcmp, const char *name, + snd_config_t *root, snd_config_t *sconf, + snd_pcm_stream_t stream, int mode) + { +- snd_pcm_t *pcm = NULL, *spcm = NULL; +- snd_pcm_direct_t *dsnoop = NULL; ++ snd_pcm_t *pcm, *spcm = NULL; ++ snd_pcm_direct_t *dsnoop; + int ret, first_instance; + + assert(pcmp); +@@ -708,12 +708,9 @@ int snd_pcm_dsnoop_open(snd_pcm_t **pcmp, const char *name, + snd_pcm_direct_semaphore_up(dsnoop, DIRECT_IPC_SEM_CLIENT); + + _err_nosem: +- if (dsnoop) { +- free(dsnoop->bindings); +- free(dsnoop); +- } +- if (pcm) +- snd_pcm_free(pcm); ++ free(dsnoop->bindings); ++ free(dsnoop); ++ snd_pcm_free(pcm); + return ret; + } + +-- +2.30.2 + + +From 74c6382df6cf18b801659d8c5c53407a7ea1f02b Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Wed, 2 Jun 2021 19:46:46 +0200 +Subject: [PATCH 09/18] pcm: remove extra NULL checks in snd_pcm_dshare_open() + +Signed-off-by: Jaroslav Kysela +--- + src/pcm/pcm_dshare.c | 13 +++++-------- + 1 file changed, 5 insertions(+), 8 deletions(-) + +diff --git a/src/pcm/pcm_dshare.c b/src/pcm/pcm_dshare.c +index 0f5238a6..a918512b 100644 +--- a/src/pcm/pcm_dshare.c ++++ b/src/pcm/pcm_dshare.c +@@ -690,8 +690,8 @@ int snd_pcm_dshare_open(snd_pcm_t **pcmp, const char *name, + snd_config_t *root, snd_config_t *sconf, + snd_pcm_stream_t stream, int mode) + { +- snd_pcm_t *pcm = NULL, *spcm = NULL; +- snd_pcm_direct_t *dshare = NULL; ++ snd_pcm_t *pcm, *spcm = NULL; ++ snd_pcm_direct_t *dshare; + int ret, first_instance; + unsigned int chn; + +@@ -851,12 +851,9 @@ int snd_pcm_dshare_open(snd_pcm_t **pcmp, const char *name, + } else + snd_pcm_direct_semaphore_up(dshare, DIRECT_IPC_SEM_CLIENT); + _err_nosem: +- if (dshare) { +- free(dshare->bindings); +- free(dshare); +- } +- if (pcm) +- snd_pcm_free(pcm); ++ free(dshare->bindings); ++ free(dshare); ++ snd_pcm_free(pcm); + return ret; + } + +-- +2.30.2 + + +From eabadf545c51d4c88c5f359db73726ec3ac653ba Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Wed, 2 Jun 2021 19:49:29 +0200 +Subject: [PATCH 10/18] pcm: softvol - fix early exit in add_tlv_info() + +Signed-off-by: Jaroslav Kysela +--- + src/pcm/pcm_softvol.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/pcm/pcm_softvol.c b/src/pcm/pcm_softvol.c +index e2bdd31a..eea322ca 100644 +--- a/src/pcm/pcm_softvol.c ++++ b/src/pcm/pcm_softvol.c +@@ -711,13 +711,13 @@ static int add_tlv_info(snd_pcm_softvol_t *svol, snd_ctl_elem_info_t *cinfo, + unsigned int *old_tlv, size_t old_tlv_size) + { + unsigned int tlv[4]; +- if (sizeof(tlv) <= old_tlv_size && memcmp(tlv, old_tlv, sizeof(tlv)) == 0) +- return 0; + tlv[SNDRV_CTL_TLVO_TYPE] = SND_CTL_TLVT_DB_SCALE; + tlv[SNDRV_CTL_TLVO_LEN] = 2 * sizeof(int); + tlv[SNDRV_CTL_TLVO_DB_SCALE_MIN] = (int)(svol->min_dB * 100); + tlv[SNDRV_CTL_TLVO_DB_SCALE_MUTE_AND_STEP] = + (int)((svol->max_dB - svol->min_dB) * 100 / svol->max_val); ++ if (sizeof(tlv) <= old_tlv_size && memcmp(tlv, old_tlv, sizeof(tlv)) == 0) ++ return 0; + return snd_ctl_elem_tlv_write(svol->ctl, &cinfo->id, tlv); + } + +-- +2.30.2 + + +From cf3846d46053b23006e6a9042b586fc78e81af55 Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Wed, 2 Jun 2021 19:50:17 +0200 +Subject: [PATCH 11/18] timer: remove dead code in _snd_timer_hw_open() + +--- + src/timer/timer_hw.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/src/timer/timer_hw.c b/src/timer/timer_hw.c +index cfb77463..fe4e40bb 100644 +--- a/src/timer/timer_hw.c ++++ b/src/timer/timer_hw.c +@@ -330,8 +330,6 @@ int _snd_timer_hw_open(snd_timer_t **timer, char *name, + SNDERR("Unexpected field %s", id); + return -EINVAL; + } +- if (card < 0) +- return -EINVAL; + return snd_timer_hw_open(timer, name, dev_class, dev_sclass, card, device, subdevice, mode); + } + SND_DLSYM_BUILD_VERSION(_snd_timer_hw_open, SND_TIMER_DLSYM_VERSION); +-- +2.30.2 + + +From 200d18cda7a700607c21ad5dc9faaea2a1e27dbd Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Wed, 2 Jun 2021 19:51:13 +0200 +Subject: [PATCH 12/18] ucm: fix error path in execute_cfgsave() + +Signed-off-by: Jaroslav Kysela +--- + src/ucm/main.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/ucm/main.c b/src/ucm/main.c +index c9b37b68..42fdaa1d 100644 +--- a/src/ucm/main.c ++++ b/src/ucm/main.c +@@ -605,8 +605,10 @@ static int execute_cfgsave(snd_use_case_mgr_t *uc_mgr, const char *filename) + uc_error("unable to open file '%s': %s", file, snd_strerror(err)); + goto _err; + } +- if (!config || snd_config_is_empty(config)) ++ if (!config || snd_config_is_empty(config)) { ++ snd_output_close(out); + goto _err; ++ } + if (with_root) { + snd_output_printf(out, "%s ", root); + err = _snd_config_save_node_value(config, out, 0); +-- +2.30.2 + + +From 9b71d53bde21c8bb0d900c17863664e12753d844 Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Wed, 2 Jun 2021 19:52:12 +0200 +Subject: [PATCH 13/18] ucm: fix use after free in if_eval_regex_match() + +Signed-off-by: Jaroslav Kysela +--- + src/ucm/ucm_cond.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/ucm/ucm_cond.c b/src/ucm/ucm_cond.c +index 59d1a155..adb0ecd9 100644 +--- a/src/ucm/ucm_cond.c ++++ b/src/ucm/ucm_cond.c +@@ -160,11 +160,12 @@ static int if_eval_regex_match(snd_use_case_mgr_t *uc_mgr, snd_config_t *eval) + if (err < 0) + return err; + err = regcomp(&re, s, options); +- free(s); + if (err) { + uc_error("Regex '%s' compilation failed (code %d)", s, err); ++ free(s); + return -EINVAL; + } ++ free(s); + + err = uc_mgr_get_substituted_value(uc_mgr, &s, string); + if (err < 0) { +-- +2.30.2 + + +From 7764e3e621a4c8a52327833d44e32c8b6fe3a131 Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Wed, 2 Jun 2021 19:53:24 +0200 +Subject: [PATCH 14/18] ucm: fix if_eval_path() - access NULL pointer + +Signed-off-by: Jaroslav Kysela +--- + src/ucm/ucm_cond.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/ucm/ucm_cond.c b/src/ucm/ucm_cond.c +index adb0ecd9..0ed0b690 100644 +--- a/src/ucm/ucm_cond.c ++++ b/src/ucm/ucm_cond.c +@@ -272,7 +272,7 @@ static int if_eval_control_exists(snd_use_case_mgr_t *uc_mgr, snd_config_t *eval + + static int if_eval_path(snd_use_case_mgr_t *uc_mgr, snd_config_t *eval) + { +- const char *path, *mode = NULL; ++ const char *path, *mode = ""; + int err, amode = F_OK; + + if (uc_mgr->conf_format < 4) { +-- +2.30.2 + + +From 7fcb1aadd56e94f03e51c4747e72d77279151c22 Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Wed, 2 Jun 2021 19:56:01 +0200 +Subject: [PATCH 15/18] ucm: find_exec() - fix memory leak (dir) + +Signed-off-by: Jaroslav Kysela +--- + src/ucm/ucm_exec.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/ucm/ucm_exec.c b/src/ucm/ucm_exec.c +index a22df8fe..1cdb2633 100644 +--- a/src/ucm/ucm_exec.c ++++ b/src/ucm/ucm_exec.c +@@ -73,6 +73,7 @@ static int find_exec(const char *name, char *out, size_t len) + || !(st.st_mode & S_IEXEC)) + continue; + snd_strlcpy(out, bin, len); ++ closedir(dir); + return 1; + } + closedir(dir); +-- +2.30.2 + + +From 26ab7fc3e4cba416cf51aa0fb48fdddaa0d861ee Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Wed, 2 Jun 2021 19:58:04 +0200 +Subject: [PATCH 16/18] ucm: fix possible NULL pointer dereference in + uc_mgr_exec() + +Signed-off-by: Jaroslav Kysela +--- + src/ucm/ucm_exec.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/src/ucm/ucm_exec.c b/src/ucm/ucm_exec.c +index 1cdb2633..d83206d0 100644 +--- a/src/ucm/ucm_exec.c ++++ b/src/ucm/ucm_exec.c +@@ -185,7 +185,11 @@ int uc_mgr_exec(const char *prog) + return -EINVAL; + + prog = argv[0]; +- if (argv[0][0] != '/' && argv[0][0] != '.') { ++ if (prog == NULL) { ++ err = -EINVAL; ++ goto __error; ++ } ++ if (prog[0] != '/' && prog[0] != '.') { + if (!find_exec(argv[0], bin, sizeof(bin))) { + err = -ENOEXEC; + goto __error; +-- +2.30.2 + + +From 64a6d4d1e827732bef7c68e1e6d2cb6863b4597c Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Wed, 2 Jun 2021 19:59:10 +0200 +Subject: [PATCH 17/18] ucm: check error value in parse_lookup_query() + +Signed-off-by: Jaroslav Kysela +--- + src/ucm/ucm_subs.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/src/ucm/ucm_subs.c b/src/ucm/ucm_subs.c +index c56730c5..0bc4e63f 100644 +--- a/src/ucm/ucm_subs.c ++++ b/src/ucm/ucm_subs.c +@@ -224,7 +224,11 @@ static snd_config_t *parse_lookup_query(const char *query) + uc_error("unable to create memory input buffer"); + return NULL; + } +- snd_config_top(&config); ++ err = snd_config_top(&config); ++ if (err < 0) { ++ snd_input_close(input); ++ return NULL; ++ } + err = snd_config_load(config, input); + snd_input_close(input); + if (err < 0) { +-- +2.30.2 + + +From 30d1d256e792fbabf14c57efb98c489541b19f37 Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Wed, 2 Jun 2021 20:01:08 +0200 +Subject: [PATCH 18/18] ucm: fix out-of-array access in + rval_device_lookup_init() + +Signed-off-by: Jaroslav Kysela +--- + src/ucm/ucm_subs.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/ucm/ucm_subs.c b/src/ucm/ucm_subs.c +index 0bc4e63f..20905c3f 100644 +--- a/src/ucm/ucm_subs.c ++++ b/src/ucm/ucm_subs.c +@@ -489,7 +489,7 @@ static int rval_device_lookup_init(snd_use_case_mgr_t *uc_mgr, + uc_error("Missing device type!"); + return -EINVAL; + } +- for (t = types; t; t++) ++ for (t = types; t->name; t++) + if (strcasecmp(t->name, s) == 0) + return t->init(iter, config); + uc_error("Device type '%s' is invalid", s); +-- +2.30.2 + diff --git a/.gear/rules b/.gear/rules new file mode 100644 index 00000000..48de7f62 --- /dev/null +++ b/.gear/rules @@ -0,0 +1,3 @@ +copy: .gear/*.patch +tar: v@version@:. +diff: v@version@:. . diff --git a/.gear/tags/92b7901e91970934918b1b06a774793f4c57da7b b/.gear/tags/92b7901e91970934918b1b06a774793f4c57da7b new file mode 100644 index 00000000..aee5c3c0 --- /dev/null +++ b/.gear/tags/92b7901e91970934918b1b06a774793f4c57da7b @@ -0,0 +1,214 @@ +object 9f16fa572947044468695e956a654d4ea07f264f +type commit +tag v1.2.5 +tagger Jaroslav Kysela 1622454708 +0200 + +Release v1.2.5 + +Core + - Release v1.2.5 + - control: add missing src/conf/ctl/Makefile.am + - ucm: add LibraryConfig support + - control: remap plugin - initial version + - configure: bumb version to 1.2.5pre1 (for CI tests) +Config API + - conf: add snd_config_make_path() function + - conf: add snd_config_is_empty() function + - conf: add snd_config_merge() function + - conf: introduce snd_config_get_card() function +Control API + - control: remap - add no-op when the remapping is not active + - control: remap - don't allow I/O on renamed IDs + - ucm: add LibraryConfig support + - control: add empty plugin + - control: remap plugin - add docs + - control: doc - create controls plugin page + - control: remap plugin - initial version + - control: add _snd_ctl_open_child() + - control: shm - add missing continue to _snd_ctl_shm_open() + - ucm: move __snd_ctl_ascii_elem_id_parse prototype to control_local.h + - control: add __snd_ctl_add_elem_set() helper + - control: add snd_ctl_elem_id_compare_numid() function + - control: rename snd_ctl_elem_id_compare() to snd_ctl_elem_id_compare_set() + - control: fix the subdevice fields comparison in snd_ctl_elem_id_compare() + - control: better docs for snd_ctl_elem_id_compare() + - control: add snd_ctl_elem_id_compare() function + - control: snd_ctl_ascii_elem_id_get() - do not show unset numid + - conf: introduce snd_config_get_card() function + - control: improve snd_ctl_add_*_elem_set functions (access flags) + - control: fix iformation -> information typos +Control Plugin API + - control: remap plugin - add docs + - control: doc - create controls plugin page +HWDEP API + - conf: introduce snd_config_get_card() function +I/O API + - output: Add snd_output_buffer_steal() function +Mixer API + - mixer: simple - Fix "Capture Volume" and "Capture Switch" being seen as global controls + - mixer: simple - use for loop in base_len() + - mixer: simple - Unify simple_none: base_len() exception handling +PCM API + - pcm: hw - correct the comment in snd_pcm_hw_state() + - pcm: hw - fix again snd_pcm_hw_state() when the driver was disconnected + - pcm: hw - fix snd_pcm_hw_state() + - pcm: fix open in direct plugins - wrong pointer assignment + - pcm: direct - move the direct struct init to _snd_pcm_direct_new() + - pcm: dshare - fix shared memory pointer check + - ucm: add LibraryConfig support + - pcm: empty plugin - fix the docs + - pcm: softvol - improve TLV data check for new configs + - pcm: fix snd_pcm_plugin_status() + - conf: introduce snd_config_get_card() function + - pcm: softvol - make snd_pcm_parse_control_id private + - pcm: softvol - do not set TLV access flags for the switch + - pcm: pcm_ioplug - fix the avail_update mmap capture copy issue + - pcm: share: Pass appl_ptr and hw_ptr in snd_pcm_status() + - pcm: null: Pass appl_ptr and hw_ptr in snd_pcm_status() + - pcm: ioplug: Pass appl_ptr and hw_ptr in snd_pcm_status() + - pcm: direct: Fix the missing appl_ptr update + - pcm: dmix/dshare - delay calculation fixes and cleanups + - pcm_plugin: set the initial hw_ptr/appl_ptr from the child pcm + - pcm: rate - fix the capture delay values + - pcm: rate - use pcm_frame_diff() on related places + - pcm: plugin - fix status code for capture + - pcm: rate - use pcm_frame_diff() in snd_pcm_rate_playback_internal_delay() + - pcm: ioplug - fix the delay calculation for old plugins + - pcm: rate - tidy up snd_pcm_rate_avail_update() + - pcm: ioplug - fix the delay calculation in the status callback + - Revert "pcm_plugin: fix delay" + - pcm: plugin - optimize sync in snd_pcm_plugin_status() + - pcm: plugin - tidy snd_pcm_plugin_avail_update() + - pcm: plugin status - revert the recent changes + - pcm: plugin status - fix the return value (regression) + - pcm: fix __snd_pcm_state() return value + - pcm_multi: remove dead assignment from _snd_pcm_multi_open + - pcm: remove dead assignments from snd_pcm_rate_(commit_area|grab_next_period) + - pcm: Fix a typo in SND_PCM_AUDIO_TSTAMP_TYPE_LAST definition + - pcm: Add snd_pcm_audio_tstamp_type_t constants + - pcm: set the snd_pcm_ioplug_status() tstamp field + - pcm: snd_pcm_mmap_readi - fix typo in comment +RawMidi API + - ucm: add LibraryConfig support + - conf: introduce snd_config_get_card() function + - rawmidi: fix memory leak in snd_rawmidi_virtual_open +Sequencer API + - seq: fix snd_seq_parse_address() + - ucm: add LibraryConfig support +Timer API + - timer: fix sizeof operator mismatch in snd_timer_query_hw_open +Topology API + - topology/pcm.c: remove duplicated AC97 hw format + - topology: fix 'parse_tuple_set() - remove dead condition code' + - topology: sort_config() cleanups - use goto for the error path + - topology: parse_tuple_set() - remove dead condition code + - topology: tplg_decode_pcm() - add missing log argument (compress) + - topology: tplg_add_widget_object() - do not use invalid elem_ctl + - topology: tplg_pprint_integer() fix coverity uninitalized variable error + - topology: use inclusive language in documentation + - topology: use inclusive language for fsync + - topology: use inclusive language for bclk +Use Case Manager API + - ucm: compound_merge - use snd_config_merge() + - ucm: recognize first '-' character as ignore error for exec/shell + - ucm: cfg-save - allow to save the sub-tree including root keys + - ucm: libconfig - merge not override items + - ucm: libconfig parser - fix memory leaks + - ucm: add cfg-save command + - ucm: fix memory leak in execute_cset() + - ucm: parse LibraryConfig also in the toplevel file + - ucm: fix regexec() REG_NOMATCH state handling for define regex + - ucm: add exec sequence command + - ucm: Fix sysw sequence command not working when requesting to ignore errors + - ucm: fix the local ucm control device name caching + - ucm: limit the master config scan to conf.virt.d + - ucm: fixed find-device substitution (non-continuous PCM devices) + - ucm: allow to escape the trailing variable substitution character + - ucm: find-device / pcm - the ctl_list may be empty + - ucm: add missing uc_mgr_card_close() call to snd_use_case_mgr_open() + - ucm: cosmetic code reshuffle in rval_lookup_main() + - ucm: fix uc_mgr_has_local_config() + - ucm: rewrite device value only when the local config exists + - ucm: return error if fixedboot_list is empty + - ucm: return error if boot_list is empty + - ucm: ucm_filename() - avoid double // + - ucm: handle better the system() call + - ucm: add LibraryConfig support + - ucm: add ${ConfLibDir} substitution + - ucm: add ctl-remove sequence command to delete controls from UCM + - ucm: add cset-new sequence command to create new controls from UCM + - ucm: move __snd_ctl_ascii_elem_id_parse prototype to control_local.h + - ucm: add Path condition type + - ucm: rename sysset to sysw + - ucm: warn about unknown sequence commands + - ucm: implement sysset sequence command + - ucm: ucm_main.c - cosmetic tab cleanups + - ucm: add _fboot / FixedBootSequence + - ucm: fix two error messages + - ucm: add ${find-card} and ${find-device} substitutions + - ucm: uc_mgr_substitute_tree() fix use after free + - ucm: fix possible memory leak in parse_verb_file() + - ucm: fix bad frees in get_list0 and get_list20 +/Makefile.am + - Makefile: Add README.md to EXTRA_DIST +/include/Makefile.am + - include: try to fix the out-of-source-tree build + - include: fix out-of-source-tree build + - include: fix SND_LIB_VER() macro + - include: add SND_LIB_VER() macro + - control: remap plugin - add docs +Configuration + - conf: snd_config_merge() - substitute non-compound config handles + - conf: snd_config_merge() - merge (concat) correctly arrays + - conf: return count of items in snd_config_is_array() + - conf: print quoted string more wisely + - ucm: cfg-save - allow to save the sub-tree including root keys + - conf: fix snd_config_merge() - merge schema + - conf: load the card specific configurations to the config sub-tree + - conf: add snd_config_make_path() function + - conf: add snd_config_is_empty() function + - conf: _snd_config_evaluate - remove 'delete compound members' call + - conf: fix snd_config_substitute() - memory leak + - conf: fix snd_config_merge() - double free in overwrite mode + - alsa: conf - use card number roots for device redirects + - conf: extend load_for_all_cards hook (id/value table) + - control: add missing src/conf/ctl/Makefile.am + - conf: usb - correct 'SB Omni Surround 5.1' iec958 device + - conf: USB - add "Cmedia Audio" to USB-Audio.pcm.iec958_device + - Remove non-existent SPDIF output on Dell AE515 + - conf: No SPDIF on Plantronics 3220 headset + - conf: add snd_config_merge() function + - conf: add /var/lib/alsa/conf.d directory lookup + - conf: add /var/lib/alsa/card.conf.d directory lookups + - conf: extend hook load_for_all_cards + - conf: make ctl.default and sysdefault devices more universal + - conf: Fix invalid free at parse_args() + - conf: fix memory leak on the error path in parse_args() + - conf: snd_config_save() - print arrays as [] not the internal representation + - conf: improve the tabulator level prints + - conf: introduce snd_config_get_card() function + - conf: HDA-Intel: increase the max number of HDMI/DP output to 11 + - conf: USB - add "Xonar U7 MKII" to USB-Audio.pcm.iec958_device + - conf: fix return code in _snd_config_load_with_include + - confmisc: fix memory leak in snd_func_concat + - conf: fix get_hexachar() return value + - conf: fix use after free in _snd_config_load_with_include +Documentation + - control: doc - create controls plugin page +Dynamic Loader helpers + - dlmisc: fix snd_plugin_dir locking for not DL_ORIGIN_AVAILABLE + - dlmisc: the snd_plugin_dir_set / snd_plugin_dir must be declared even for \!DL_ORIGIN_AVAILABLE +I/O subsystem + - output: Add snd_output_buffer_steal() function +Kernel Headers + - topology: use inclusive language for fsync + - topology: use inclusive language for bclk +Test/Example code + - test: audio_time - fix timestamp2ns() and usage() + - test/audio_time: Make use of SND_PCM_AUDIO_TSTAMP_TYPE constants +Utils + - utils/alsa.m4: another quick fix for the brackets + - utils/alsa.m4: a quick fix for missing end brackets + - utils/alsa.m4: update for newer autoconf. + +Signed-off-by: Jaroslav Kysela diff --git a/.gear/tags/list b/.gear/tags/list new file mode 100644 index 00000000..8a3f32d4 --- /dev/null +++ b/.gear/tags/list @@ -0,0 +1 @@ +92b7901e91970934918b1b06a774793f4c57da7b v1.2.5 diff --git a/asound.conf.sonicvibes_2 b/asound.conf.sonicvibes_2 new file mode 100644 index 00000000..cae792ea --- /dev/null +++ b/asound.conf.sonicvibes_2 @@ -0,0 +1,54 @@ +pcm.!default { + type plug + slave.pcm "asymed" +} + +pcm.asymed { + type asym + playback.pcm "swmixer" + capture.pcm "mixin" +} + +pcm.dsp0 { + type plug + slave.pcm "asymed" +} + +pcm.swmixer { + type dmix + ipc_key 1234 + slowptr yes + slave { + pcm "hw:0,0" + period_time 0 + period_size 1024 + buffer_size 4096 + #rate 48000 + rate 44100 + } +} + +ctl.dmixer { + type hw + card 0 +} + +pcm.mixin { + type dsnoop + ipc_key 5978293 # must be unique for all dmix plugins!!!! + ipc_key_add_uid yes + slave { + pcm "hw:0,0" + channels 2 + period_size 1024 + buffer_size 4096 + #rate 48000 + rate 44100 + periods 0 + period_time 0 + } + bindings { + 0 0 + 0 1 + } +} diff --git a/libalsa.spec b/libalsa.spec new file mode 100644 index 00000000..8d290c16 --- /dev/null +++ b/libalsa.spec @@ -0,0 +1,602 @@ +%def_with doc +%def_without python + +Name: libalsa +Version: 1.2.5 +Release: alt1.1 +Epoch: 1 + +Summary: Advanced Linux Sound Architecture (ALSA) library +License: LGPLv2.1 +Group: System/Libraries + +Source: %name-%version.tar +Patch0: %name-%version-%release.patch +Patch1: 0001-Restore-loading-usr-share-alsa-alsa.conf.d.patch +# latest upstream fixes +# FIXME! remove this after 1.2.5.1! +Patch2: alsa-git.patch +Url: http://www.alsa-project.org + +# tse3 still depends on that, argh +Provides: libalsa2 = %version +Obsoletes: libalsa2 < %version + +# for fourth-party software +Provides: alsa-lib = %version + +# factored out from alsa-lib.git +Requires: alsa-ucm-conf +Requires: alsa-topology-conf + +# Automatically added by buildreq on Mon Dec 26 2016 +# optimized out: perl python-base python-modules +%{?_with_doc:BuildRequires: doxygen} + +# for smixer plugins, see commit a668a94238dc67b19ae187b52a161e027d79ee5d +%{?_with_python:BuildRequires: python-dev} + +%define pkgdocdir %_docdir/%name-%version +%define modutils_oss /etc/modutils.d/oss +%define modules_conf /etc/modules.conf +%define modprobe_old %_sysconfdir/modprobe.d/alsa-modindex +%define modprobe_conf %modprobe_old.conf + +%define _unpackaged_files_terminate_build 1 + +%description +Advanced Linux Sound Architecture (ALSA) libs. Modularized +architecture with support for a large range of ISA and PCI cards. +Fully compatible with OSS/Lite (kernel sound drivers), but +contains many enhanced features. + +%package -n aserver +Summary: Sound server for alsa +Group: Sound +Requires: %name = %epoch:%version-%release + +%description -n aserver +Sound server for ALSA + +%package devel +Summary: Development environment for Advanced Linux Sound Architecture (ALSA) +Group: Development/C +Requires: %name = %epoch:%version-%release +Provides: libalsa2-devel = %version +Obsoletes: libalsa2-devel < %version + +%description devel +Advanced Linux Sound Architecture (ALSA) libs. Modularized +architecture with support for a large range of ISA and PCI cards. +Fully compatible with OSS/Lite (kernel sound drivers), but +contains many enhanced features. + +This is the development environment to compile ALSA applications. + +%if_with doc +%package docs +Summary: Documentation for Advanced Linux Sound Architecture (ALSA) +Group: Development/Documentation +BuildArch: noarch + +%description docs +Advanced Linux Sound Architecture (ALSA) Developer Documentation +(C library reference) +%endif + +%prep +%setup +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +# Replace "include" with "__include__" in public header files +# to make them compilable by "gcc -ansi" again. +find include -type f -print0 | + xargs -r0 grep -FZl ' inline ' -- | + xargs -r0 sed -i 's/ inline / __inline__ /g' -- + +%build +%autoreconf +%configure \ + --with-configdir=%_datadir/alsa \ + %{?!_with_python:--disable-python} \ + --disable-static +%make_build +%{?_with_doc:%make doc} + +%install +%makeinstall_std + +find %buildroot%_libdir -name \*.la -delete + +install -pDm644 asound.conf.sonicvibes_2 %buildroot%_datadir/alsa/cards/SonicVibes.conf + +mkdir -p %buildroot%pkgdocdir +%if_with doc +install -pm644 NOTES MEMORY-LEAK TODO %buildroot%pkgdocdir/ +cp -a doc/doxygen/html %buildroot%pkgdocdir/ +%endif + +mkdir -p %buildroot%_sysconfdir/modprobe.d +cat << __EOF__ >> %buildroot%modprobe_conf +## spare index=0 for a hotplug soundcard (if any) +#options snd-usb-audio index=0 + +## offset HDMI output compared to onboard audio (#28648) +#options snd_hda_codec_hdmi index=2,3 +#options snd_hda_intel index=2,3 + +#options snd_intel8x0 index=2 +#options snd_via82xx index=2 +#options snd-bt87x index=3 +#options snd_intel8x0m index=4 +#options snd-atiixp-modem index=4 +#options snd-via82xx-modem index=4 + +## get PC speaker out of the way +options snd_pcsp index=10 +__EOF__ + +install -d %buildroot%_localstatedir/alsa + +%pre +[ ! -f %modutils_oss ] || { + grep -q "^above snd-" %modules_conf && { + echo '*** %modutils_oss found:' + echo '*** commenting out "above/below snd-*-oss" lines in %modules_conf' + subst 's/^above snd-.* snd-.*-oss$/#&/' %modules_conf ||: + } ||: +} + +%post +# newer module-init-tools barf at files missing .conf suffix +# (and rightfully so) +rm -f %modprobe_old~ +for suffix in "" .rpmnew .rpmsave; do + [ -f "%modprobe_old$suffix" ] && { + echo '*** migrating configuration, please check:' + mv -v "%modprobe_conf" "%modprobe_old.rpmorig" + mv -v "%modprobe_old$suffix" "%modprobe_conf" + exit 0 + } ||: +done + +%files +%_libdir/*.so.* +%if_with python +%dir %_libdir/alsa-lib +%_libdir/alsa-lib/smixer +%endif +%config(noreplace) %modprobe_conf +%_datadir/alsa +%dir %_localstatedir/alsa + +%files devel +%_includedir/sys/* +%_includedir/alsa +%_includedir/asoundlib.h +%_libdir/*.so +%_pkgconfigdir/alsa.pc +%_pkgconfigdir/alsa-topology.pc +%_datadir/aclocal/* + +%if_with doc +%files docs +%dir %pkgdocdir +%pkgdocdir/[D-Z]* +%pkgdocdir/html +%endif + +%files -n aserver +%_bindir/aserver + +%changelog +* Sat Jun 05 2021 L.A. Kostis 1:1.2.5-alt1.1 +- Apply latest fixes from git (before 1.2.5.1 will be released). + +* Tue Jun 01 2021 Michael Shigorin 1:1.2.5-alt1 +- 1.2.5 + +* Wed Oct 21 2020 Michael Shigorin 1:1.2.4-alt1 +- 1.2.4 + +* Thu Jul 09 2020 Michael Shigorin 1:1.2.3.2-alt1 +- 1.2.3.2 + +* Sat Jun 20 2020 Michael Shigorin 1:1.2.3.1-alt1 +- 1.2.3.1 + +* Wed Jun 10 2020 Michael Shigorin 1:1.2.3-alt1 +- 1.2.3 + +* Thu Feb 20 2020 Michael Shigorin 1:1.2.2-alt1 +- 1.2.2 + +* Mon Dec 02 2019 Michael Shigorin 1:1.2.1.2-alt1 +- 1.2.1.2 +- better License: tag spelling + +* Fri Nov 22 2019 Michael Shigorin 1:1.2.1.1-alt1 +- 1.2.1.1 +- fix License: tag spelling +- fix doc knob +- E2K: drop lcc 1.21 support + +* Mon Nov 18 2019 Michael Shigorin 1:1.2.1-alt1 +- 1.2.1 +- R: alsa-ucm-conf, alsa-topology-conf (maintained separately now) +- added alsa-topology.pc to -devel subpackage + +* Tue May 14 2019 Dmitry V. Levin 1:1.1.9-alt2 +- NMU. +- Packaged %_includedir/asoundlib.h introduced in 1.1.9 to fix builds + of packages that use asoundlib.h header file. + +* Mon May 13 2019 Michael Shigorin 1:1.1.9-alt1 +- 1.1.9 + +* Mon Feb 18 2019 Mikhail Novosyolov 1:1.1.8-alt2 +- Patch: restore loading /usr/share/alsa/alsa.conf.d/* (Closes: 35790) + +* Thu Jan 24 2019 Michael Shigorin 1:1.1.8-alt1 +- 1.1.8 + +* Wed Oct 17 2018 Michael Shigorin 1:1.1.7-alt1 +- 1.1.7 + +* Sun Sep 09 2018 Michael Shigorin 1:1.1.6-alt2 +- E2K: explicitly link with -lcxa + +* Wed Apr 04 2018 Michael Shigorin 1:1.1.6-alt1 +- 1.1.6 + +* Wed Nov 22 2017 Michael Shigorin 1:1.1.5-alt1 +- 1.1.5 + +* Mon Jun 12 2017 Michael Shigorin 1:1.1.4.1-alt1 +- 1.1.4.1 + +* Mon May 29 2017 Michael Shigorin 1:1.1.4-alt1 +- 1.1.4 + +* Tue Dec 27 2016 Michael Shigorin 1:1.1.3-alt3 +- disabed python support by default (asked by glebfm@) + +* Mon Dec 26 2016 Michael Shigorin 1:1.1.3-alt2 +- 1.1.3 +- BOOTSTRAP: added doc, python knobs + + enabled python support by default too + +* Thu Dec 22 2016 Michael Shigorin 1:1.1.3-alt1 +- 1.1.3 + +* Thu Oct 06 2016 Michael Shigorin 1:1.1.2-alt1 +- 1.1.2 + +* Mon Jun 20 2016 Michael Shigorin 1:1.1.1-alt1 +- 1.1.1 + +* Tue Feb 02 2016 Michael Shigorin 1:1.1.0-alt1.1.1 +- added %_localstatedir/alsa (thx aris@) + +* Mon Dec 07 2015 Michael Shigorin 1:1.1.0-alt1.1 +- added snd-hda-codec-hdmi to alsa-modindex.conf too (see #28648) + +* Mon Nov 09 2015 Michael Shigorin 1:1.1.0-alt1 +- 1.1.0 + +* Fri Feb 27 2015 Michael Shigorin 1:1.0.29-alt1 +- 1.0.29 + +* Wed Jun 18 2014 Michael Shigorin 1:1.0.28-alt1 +- 1.0.28 + +* Wed Apr 30 2014 Michael Shigorin 1:1.0.27.2-alt1 +- 1.0.27.2 + +* Tue Apr 16 2013 Dmitry V. Levin 1:1.0.27-alt3 +- libalsa-alsa: replaced "include" with "__include__", to make + header files compilable by "gcc -ansi" as they were in 1.0.26. + +* Sat Apr 13 2013 Michael Shigorin 1:1.0.27-alt2 +- retag + +* Sat Apr 13 2013 Michael Shigorin 1:1.0.27-alt1 +- 1.0.27 + +* Sat Mar 09 2013 Michael Shigorin 1:1.0.26-alt3 +- alsa-modindex.conf: promote USB audio, demote HDMI audio example + (closes: #28648) + +* Fri Sep 07 2012 Michael Shigorin 1:1.0.26-alt2 +- retag + +* Thu Sep 06 2012 Michael Shigorin 1:1.0.26-alt1 +- 1.0.26 +- %_datadir/alsa/pulse.conf is no more autoloaded + (moved to %_datadir/alsa/alsa.conf.d/pulse.conf + in corresponding alsa-plugins package) + +* Tue Oct 04 2011 Michael Shigorin 1:1.0.24.1-alt4 +- renamed %modprobe_old + to %modprobe_conf + for newer module-init-tools to be happy (thx led@) + +* Fri Jun 10 2011 Michael Shigorin 1:1.0.24.1-alt3 +- added compat Provides: alsa-lib (zerg@) + +* Fri Feb 18 2011 Michael Shigorin 1:1.0.24.1-alt2 +- retag (thx at@) + +* Wed Feb 16 2011 Michael Shigorin 1:1.0.24.1-alt1 +- 1.0.24.1 + +* Sun Feb 13 2011 Alexey Tourbin 1:1.0.23-alt6 +- rebuilt for debuginfo + +* Thu Jan 13 2011 Michael Shigorin 1:1.0.23-alt5 +- /etc/modprobe.d/alsa-modindex back (see also #24914) + +* Fri Nov 26 2010 Michael Shigorin 1:1.0.23-alt4 +- rebuilt for set versions + +* Thu Oct 21 2010 Michael Shigorin 1:1.0.23-alt3 +- rebuild +- minor spec cleanup + +* Thu Apr 22 2010 Valery Inozemtsev 1:1.0.23-alt2 +- post release fixes + +* Sun Apr 18 2010 Valery Inozemtsev 1:1.0.23-alt1 +- 1.0.23 + +* Thu Dec 24 2009 Valery Inozemtsev 1:1.0.22-alt1 +- 1.0.22 + +* Fri Sep 11 2009 Valery Inozemtsev 1.0.21a-alt1 +- 1.0.21a + +* Tue Sep 01 2009 Valery Inozemtsev 1.0.21-alt1 +- 1.0.21 + +* Sun May 17 2009 Valery Inozemtsev 1.0.20-alt2 +- configure: fixed check libtool version + +* Thu May 07 2009 Valery Inozemtsev 1.0.20-alt1 +- 1.0.20 + +* Mon Jan 19 2009 Valery Inozemtsev 1.0.19-alt1 +- 1.0.19 + +* Sat Nov 22 2008 Valery Inozemtsev 1.0.18-alt2 +- removed obsolete %%post_ldconfig/%%postun_ldconfig calls + +* Wed Oct 29 2008 Valery Inozemtsev 1.0.18-alt1 +- 1.0.18 + +* Mon Sep 08 2008 Valery Inozemtsev 1.0.17a-alt2 +- marked %_sysconfdir/modprobe.d/alsa-modindex is %%config(noreplace) (close #17034) + +* Fri Aug 15 2008 Valery Inozemtsev 1.0.17a-alt1 +- 1.0.17a + +* Sun Aug 03 2008 Valery Inozemtsev 1.0.17-alt2 +- IEC958 definition for consumer status channel update + +* Mon Jul 14 2008 Valery Inozemtsev 1.0.17-alt1 +- 1.0.17 + +* Fri May 30 2008 Valery Inozemtsev 1.0.16-alt2 +- build without python (close #15626) + +* Thu May 01 2008 Valery Inozemtsev 1.0.16-alt1 +- 1.0.16 + +* Sun Jan 27 2008 Valery Inozemtsev 1.0.15-alt1 +- 1.0.15 +- disabled static by defaults +- spec cleanup +- update build dependencies + +* Fri Aug 17 2007 Valery Inozemtsev 1.0.14a-alt2.1 +- NMU: + + fixed linear<->float conversion in PCM plugin + + adapted alsa-modindex for module-init-tools + +* Thu Jun 28 2007 Michael Shigorin 1.0.14a-alt2 +- removed linux-libc-headers build requirement to facilitate + build on ARM (thanks kas@ for investigation) + +* Mon Jun 11 2007 Michael Shigorin 1.0.14a-alt1 +- 1.0.14a +- build fixes (muchos gracios, icesik@) +- removed stale patches (weren't applied anyways) +- added dmix configuration for Sonic Vibes by zerg@ (#5003) + +* Mon Oct 16 2006 Michael Shigorin 1.0.13-alt1 +- 1.0.13 + +* Sat Sep 02 2006 Michael Shigorin 1.0.12-alt1 +- 1.0.12 +- changed BuildPreReq: kernel-headers-std to linux-libc-headers + (thanks shrek@ for success story and lakostis@ for reminders) + +* Wed Apr 19 2006 Michael Shigorin 1.0.11-alt1 +- 1.0.11 +- alsalisp no more installed, see changelog + +* Wed Apr 05 2006 Michael Shigorin 1.0.11-alt0.4 +- 1.0.11rc4 + +* Sat Mar 04 2006 Michael Shigorin 1.0.11-alt0.3 +- 1.0.11rc3; should fix #9181 (apps hang when using dmix) + + thanks Artem G. Delendik for thorough investigation +- removed patch4 (applied already) + +* Sat Dec 10 2005 Michael Shigorin 1.0.10-alt2 +- added ALSA CVS patch for dmix: + fixed ipc_gid initialization when gid specified as number + + thanks Sergey Vlasov (vsu@) for a bounce/explanation +- added overlooked %_libdir/alsa-lib/smixer/ +- fixed a silly typo which barred inclusion of + %_sysconfdir/modutils.d/alsa-modindex into a package +- spec *cleanup* + +* Wed Nov 16 2005 Michael Shigorin 1.0.10-alt1 +- 1.0.10 +- removed patch2 (merged upstream) + +* Wed Oct 19 2005 Michael Shigorin 1.0.9-alt7 +- updated docs Group: + +* Mon Oct 17 2005 Michael Shigorin 1.0.9-alt7 +- fixed small typo in %post (rather cosmetic) + +* Tue Oct 04 2005 Michael Shigorin 1.0.9-alt6 +- applied changes proposed in #8133 to avoid %pre failure; + thanks Anton Farygin (rider@) for alert/fix + +* Mon Oct 03 2005 Michael Shigorin 1.0.9-alt5 +- attempt to workaround #8096 just in case it still applies + ("Too deep recursion in module dependencies!") +- see also http://wiki.sisyphus.ru/admin/Sound/ModuleLoadProblem + +* Fri Sep 16 2005 Michael Shigorin 1.0.9-alt4 +- removed superfluous COPYING (standard license mentioned + in package header data), thanks to Alexey Tourbin (at@) + for absolute symlink warning + +* Mon Jul 11 2005 Michael Shigorin 1.0.9-alt3 +- added modutils file to let shift on-board AC97 codec drivers + after "real" hardware ones, if any; also some more stuff from FAQ + (should be properly fixed within hotplug and/or alsa) + +* Fri Jul 08 2005 Michael Shigorin 1.0.9-alt2 +- added CVS patches (name clash; ALSA bug #1139) +- thanks Vitaly Lipatov (lav@) for alerting and Sergey Vlasov (vsu@) + for identifying the problem and handing over the patches + +* Thu Jun 23 2005 Michael Shigorin 1.0.9-alt1 +- 1.0.9 +- added separate docs subpackage (#5935) + +* Thu Jun 09 2005 Michael Shigorin 1.0.9-alt0 +- 1.0.9 + +* Thu Apr 28 2005 Michael Shigorin 1.0.8-alt2 +- #6697 (license fix) + +* Thu Jan 13 2005 Michael Shigorin 1.0.8-alt1 +- 1.0.8 +- enabled static library build by default (#5580) + +* Mon Nov 29 2004 Michael Shigorin 1.0.7-alt1 +- 1.0.7 (err...) + +* Sat Jun 26 2004 Michael Shigorin 1.0.5-alt2 +- tiny spec cleanup/rebuild + +* Mon May 31 2004 Michael Shigorin 1.0.5-alt1 +- 1.0.5 + +* Sat Apr 03 2004 Michael Shigorin 1.0.4-alt1 +- 1.0.4 + +* Sun Mar 21 2004 Michael Shigorin 1.0.3b-alt1 +- 1.0.3b +- added kernel-headers-std build dep + +* Sat Mar 06 2004 Michael Shigorin 1.0.3a-alt1 +- 1.0.3a + +* Tue Mar 02 2004 Michael Shigorin 1.0.3-alt1 +- 1.0.3 + +* Thu Jan 29 2004 Michael Shigorin 1.0.2-alt2 +- 1.0.2, Final Upload by ALSA Project (TM) 20040129 18:35 +0200 +- thanks to Sergey Vlasov (vsu@) for alerting about re-uploads + +* Wed Jan 28 2004 Michael Shigorin 1.0.2-alt1 +- 1.0.2 +- upstream merged patch0, patch1 (alt-fpic and shm-leak) + +* Tue Jan 20 2004 Michael Shigorin 1.0.1-alt3 +- added patch by Adam Tla/lka to fix shared + memory leak; thanks to Sergey Vlasov (vsu@) +- added %_bindir/alsalisp to devel subpackage + +* Mon Jan 19 2004 Michael Shigorin 1.0.1-alt2 +- spec facelift/cleanup by Mikhail Zabaluev (mhz@): + * doxygen'erated docs, license files installed the right way; + * build deps refresh/cleanup +- translated package info + +* Sun Jan 18 2004 Mikhail Zabaluev 1.0.1-alt1.1 +- build doxygen docs, package them plus readme files and symlinked license +- spec cleanup +- buildreq (WTF was this mawk thing?) +- builds fine without alsa-driver-headers (?) + +* Sun Jan 11 2004 Michael Shigorin 1.0.1-alt1 +- 1.0.1 +- WARNING: API has changed in 1.0.x, things may break +- removed *.la +- don't package static libs by default + +* Tue Nov 11 2003 Michael Shigorin 0.9.8-alt2 +- fixed -fPIC-related trouble: + * %optflags_shared + * patch by Dmitry V. Levin (ldv@) + +* Wed Oct 22 2003 Michael Shigorin 0.9.8-alt1 +- 0.9.8 + +* Fri Sep 26 2003 Michael Shigorin 0.9.7-alt1 +- 0.9.7 + +* Wed Jul 30 2003 Michael Shigorin 0.9.6-alt1 +- 0.9.6 + +* Tue Jul 15 2003 Michael Shigorin 0.9.5-alt1 +- 0.9.5 + +* Tue Jul 08 2003 Michael Shigorin 0.9.4-alt2 +- fixed forcibly broken BuildRequires as kernel-source-alsa-std got fixed + (alsa-driver-headers >= %%version) + +* Mon Jun 23 2003 Michael Shigorin 0.9.4-alt1 +- 0.9.4 +- renamed to libalsa + +* Wed Apr 02 2003 Michael Shigorin 0.9.2-alt0.1 +- 0.9.2 (unofficial build) + +* Tue Feb 04 2003 Rider 0.9.0rc7-alt1 +- 0.9.0rc7 + +* Tue Nov 26 2002 Konstantin Volckov 0.9.0rc6-alt1 +- 0.9.0rc6 +- REbuilt in new environment + +* Mon Jun 10 2002 Konstantin Volckov 0.9.0rc1-alt2 +- Removed requires to virtual kernel alsa + +* Fri Jun 07 2002 Konstantin Volckov 0.9.0rc1-alt1 +- 0.9.0rc1 + +* Thu Feb 28 2002 Konstantin Volckov 0.9.0beta12-alt1 +- 0.9.0beta12 + +* Wed Dec 26 2001 Konstantin Volckov 0.9.0beta10a-alt1 +- 0.9.0beta10a + +* Tue Nov 20 2001 Konstantin Volckov 0.9.0beta9-alt1 +- 0.9.0beta9 + +* Fri Oct 12 2001 Konstantin Volckov 0.9.0beta8a-alt1 +- 0.9.0beta8a +- Fixed requires +- Fixed filelists + +* Fri Sep 21 2001 Konstantin Volckov 0.9.0beta7-alt1 +- First build for Sisyphus