Hello community, here is the log from the commit of package alsa checked in at Tue Jan 9 17:41:33 CET 2007. -------- --- alsa/alsa.changes 2006-12-19 15:52:03.000000000 +0100 +++ /mounts/work_src_done/STABLE/alsa/alsa.changes 2007-01-09 12:07:23.000000000 +0100 @@ -1,0 +2,9 @@ +Tue Jan 9 12:05:24 CET 2007 - tiwai@suse.de + +- Add empty Should-Start to alsasound init script (#231674) +- Fix compilation of alsa-lib with non-versioned symbols +- Fix LADSPA plugin with multi-channels +- Fix error handling in timer code +- Improved man page of aconnect + +------------------------------------------------------------------- New: ---- alsa-lib-hg-fixes.diff alsa-utils-hg-fixes.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ alsa.spec ++++++ --- /var/tmp/diff_new_pack.ey1435/_old 2007-01-09 17:40:39.000000000 +0100 +++ /var/tmp/diff_new_pack.ey1435/_new 2007-01-09 17:40:39.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package alsa (Version 1.0.13) # -# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine # package are under the same license as the package itself. # @@ -21,7 +21,7 @@ Autoreqprov: on Summary: Advanced Linux Sound Architecture Version: 1.0.13 -Release: 24 +Release: 26 Source1: ftp://ftp.alsa-project.org/pub/lib/alsa-lib-%{package_version}.tar.bz2 Source2: ftp://ftp.alsa-project.org/pub/util/alsa-utils-%{package_version}.tar.bz2 # Source5: ftp://ftp.alsa-project.org/pub/oss/alsa-oss-%{package_version}.tar.bz2 @@ -40,8 +40,8 @@ Source30: all_notes_off Source31: all_notes_off.bin Source32: all_notes_off.mid -# Patch1: alsa-lib-hg-fixes.diff -# Patch2: alsa-utils-hg-fixes.diff +Patch1: alsa-lib-hg-fixes.diff +Patch2: alsa-utils-hg-fixes.diff # Patch3: alsa-oss-hg-fixes.diff URL: http://www.alsa-project.org/ BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -95,11 +95,12 @@ %prep %setup -c -n alsa -T -a 1 -a 2 -a 5 -# cd alsa-lib*/. -# cd .. -# cd alsa-utils*/. -# %patch2 -p1 -# cd .. +cd alsa-lib*/. +%patch1 -p1 +cd .. +cd alsa-utils*/. +%patch2 -p1 +cd .. # cd alsa-oss*/. # %patch3 -p1 # cd .. @@ -362,6 +363,12 @@ %doc alsa-lib*/doc/doxygen/html/* %changelog -n alsa +* Tue Jan 09 2007 - tiwai@suse.de +- Add empty Should-Start to alsasound init script (#231674) +- Fix compilation of alsa-lib with non-versioned symbols +- Fix LADSPA plugin with multi-channels +- Fix error handling in timer code +- Improved man page of aconnect * Tue Dec 19 2006 - tiwai@suse.de - update to ALSA 1.0.14rc1: * device enumeration API ++++++ alsa-lib-hg-fixes.diff ++++++ diff -r f5f02f509ea1 include/control.h --- a/include/control.h Thu Dec 07 15:04:28 2006 +0100 +++ b/include/control.h Mon Dec 18 10:46:32 2006 +0100 @@ -260,7 +260,6 @@ snd_ctl_type_t snd_ctl_type(snd_ctl_t *c const char *snd_ctl_elem_type_name(snd_ctl_elem_type_t type); const char *snd_ctl_elem_iface_name(snd_ctl_elem_iface_t iface); -const char *snd_ctl_iface_conf_name(snd_ctl_elem_iface_t iface); const char *snd_ctl_event_type_name(snd_ctl_event_type_t type); unsigned int snd_ctl_event_elem_get_mask(const snd_ctl_event_t *obj); diff -r f5f02f509ea1 src/control/namehint.c --- a/src/control/namehint.c Thu Dec 07 15:04:28 2006 +0100 +++ b/src/control/namehint.c Mon Dec 18 10:46:32 2006 +0100 @@ -601,7 +601,8 @@ int snd_device_name_free_hint(void **hin /** * \brief Get a hint Free a string list with device name hints. - * \param hints A string list to free + * \param hint A pointer to hint + * \param id Hint ID (see bellow) * \result an allocated ASCII string if success, otherwise NULL * * List of valid IDs: diff -r f5f02f509ea1 src/pcm/pcm_direct.c --- a/src/pcm/pcm_direct.c Thu Dec 07 15:04:28 2006 +0100 +++ b/src/pcm/pcm_direct.c Mon Jan 08 16:38:49 2007 +0100 @@ -895,7 +895,7 @@ int snd_pcm_direct_initialize_slave(snd_ } if (ret < 0 && dmix->type != SND_PCM_TYPE_DMIX) { /* TODO: try to choose a good format */ - ret = snd_pcm_hw_params_set_format_first(spcm, hw_params, &format); + ret = INTERNAL(snd_pcm_hw_params_set_format_first)(spcm, hw_params, &format); } if (ret < 0) { SNDERR("requested or auto-format is not available"); diff -r f5f02f509ea1 src/pcm/pcm_ladspa.c --- a/src/pcm/pcm_ladspa.c Thu Dec 07 15:04:28 2006 +0100 +++ b/src/pcm/pcm_ladspa.c Mon Jan 08 15:02:22 2007 +0100 @@ -406,33 +406,36 @@ static int snd_pcm_ladspa_connect_plugin snd_pcm_ladspa_plugin_io_t *io, snd_pcm_ladspa_eps_t *eps) { - unsigned int port, channels, idx; + unsigned int port, channels, idx, idx1; int err; assert(plugin->policy == SND_PCM_LADSPA_POLICY_NONE); channels = io->port_bindings_size > 0 ? io->port_bindings_size : snd_pcm_ladspa_count_ports(plugin, io->pdesc | LADSPA_PORT_AUDIO); - for (idx = 0; idx < channels; idx++) { + for (idx = idx1 = 0; idx < channels; idx++) { if (io->port_bindings_size > 0) port = io->port_bindings[idx]; else { err = snd_pcm_ladspa_find_port(&port, plugin, io->pdesc | LADSPA_PORT_AUDIO, idx); if (err < 0) { - SNDERR("unable to find audio %s port %u plugin '%s'\n", io->pdesc & LADSPA_PORT_INPUT ? "input" : "output", idx, plugin->desc->Name); + SNDERR("unable to find audio %s port %u plugin '%s'", io->pdesc & LADSPA_PORT_INPUT ? "input" : "output", idx, plugin->desc->Name); return err; } } - err = snd_pcm_ladspa_add_to_carray(&eps->channels, idx, idx); + if (port == NO_ASSIGN) + continue; + err = snd_pcm_ladspa_add_to_carray(&eps->channels, idx1, idx); if (err < 0) { - SNDERR("unable to add channel %u for audio %s plugin '%s'\n", idx, io->pdesc & LADSPA_PORT_INPUT ? "input" : "output", plugin->desc->Name); + SNDERR("unable to add channel %u for audio %s plugin '%s'", idx, io->pdesc & LADSPA_PORT_INPUT ? "input" : "output", plugin->desc->Name); return err; } - err = snd_pcm_ladspa_add_to_array(&eps->ports, idx, port); + err = snd_pcm_ladspa_add_to_array(&eps->ports, idx1, port); if (err < 0) { - SNDERR("unable to add port %u for audio %s plugin '%s'\n", port, io->pdesc & LADSPA_PORT_INPUT ? "input" : "output", plugin->desc->Name); + SNDERR("unable to add port %u for audio %s plugin '%s'", port, io->pdesc & LADSPA_PORT_INPUT ? "input" : "output", plugin->desc->Name); return err; } + idx1++; } return 0; } @@ -465,18 +468,18 @@ static int snd_pcm_ladspa_connect_plugin } else { err = snd_pcm_ladspa_find_port(&port, plugin, io->pdesc | LADSPA_PORT_AUDIO, 0); if (err < 0) { - SNDERR("unable to find audio %s port %u plugin '%s'\n", io->pdesc & LADSPA_PORT_INPUT ? "input" : "output", (unsigned int)0, plugin->desc->Name); + SNDERR("unable to find audio %s port %u plugin '%s'", io->pdesc & LADSPA_PORT_INPUT ? "input" : "output", (unsigned int)0, plugin->desc->Name); return err; } } err = snd_pcm_ladspa_add_to_carray(&eps->channels, 0, idx); if (err < 0) { - SNDERR("unable to add channel %u for audio %s plugin '%s'\n", idx, io->pdesc & LADSPA_PORT_INPUT ? "input" : "output", plugin->desc->Name); + SNDERR("unable to add channel %u for audio %s plugin '%s'", idx, io->pdesc & LADSPA_PORT_INPUT ? "input" : "output", plugin->desc->Name); return err; } err = snd_pcm_ladspa_add_to_array(&eps->ports, 0, port); if (err < 0) { - SNDERR("unable to add port %u for audio %s plugin '%s'\n", port, io->pdesc & LADSPA_PORT_INPUT ? "input" : "output", plugin->desc->Name); + SNDERR("unable to add port %u for audio %s plugin '%s'", port, io->pdesc & LADSPA_PORT_INPUT ? "input" : "output", plugin->desc->Name); return err; } return 0; @@ -592,13 +595,13 @@ static int snd_pcm_ladspa_check_connect( for (idx = midx = 0; idx < plugin->desc->PortCount; idx++) if ((plugin->desc->PortDescriptors[idx] & (io->pdesc | LADSPA_PORT_AUDIO)) == (io->pdesc | LADSPA_PORT_AUDIO)) { if (eps->channels.array[midx] == NO_ASSIGN) { - SNDERR("%s port for plugin %s depth %u is not connected\n", io->pdesc & LADSPA_PORT_INPUT ? "input" : "output", plugin->desc->Name, depth); + SNDERR("%s port for plugin %s depth %u is not connected", io->pdesc & LADSPA_PORT_INPUT ? "input" : "output", plugin->desc->Name, depth); err++; } midx++; } if (err > 0) { - SNDERR("%i connection errors total\n", err); + SNDERR("%i connection errors total", err); return -EINVAL; } return 0; @@ -715,11 +718,13 @@ static int snd_pcm_ladspa_allocate_memor nchannels = channels; for (idx = 0; idx < instance->input.channels.size; idx++) { chn = instance->input.channels.array[idx]; + assert(instance->input.ports.array[idx] != NO_ASSIGN); if (chn >= nchannels) nchannels = chn + 1; } for (idx = 0; idx < instance->output.channels.size; idx++) { chn = instance->output.channels.array[idx]; + assert(instance->output.ports.array[idx] != NO_ASSIGN); if (chn >= nchannels) nchannels = chn + 1; } @@ -876,8 +881,8 @@ snd_pcm_ladspa_write_areas(snd_pcm_t *pc if (data == NULL) { data = (LADSPA_Data *)((char *)areas[chn].addr + (areas[chn].first / 8)); data += offset; - } - instance->desc->connect_port(instance->handle, instance->input.ports.array[idx], data); + } + instance->desc->connect_port(instance->handle, instance->input.ports.array[idx], data); } for (idx = 0; idx < instance->output.channels.size; idx++) { chn = instance->output.channels.array[idx]; @@ -886,7 +891,7 @@ snd_pcm_ladspa_write_areas(snd_pcm_t *pc data = (LADSPA_Data *)((char *)slave_areas[chn].addr + (areas[chn].first / 8)); data += slave_offset; } - instance->desc->connect_port(instance->handle, instance->output.ports.array[idx], data); + instance->desc->connect_port(instance->handle, instance->output.ports.array[idx], data); } instance->desc->run(instance->handle, size1); } @@ -1005,7 +1010,7 @@ static void snd_pcm_ladspa_dump_array(sn snd_output_putc(out, '-'); else snd_output_printf(out, "%u", val); - if (plugin) + if (plugin && val != NO_ASSIGN) snd_output_printf(out, " \"%s\"", plugin->desc->PortNames[val]); } } @@ -1099,8 +1104,10 @@ static int snd_pcm_ladspa_check_file(snd if (label != NULL) { lc = localeconv (); labellocale = malloc (strlen (label) + 1); - if (labellocale == NULL) + if (labellocale == NULL) { + dlclose(handle); return -ENOMEM; + } strcpy (labellocale, label); if (strrchr(labellocale, '.')) *strrchr (labellocale, '.') = *lc->decimal_point; @@ -1114,8 +1121,10 @@ static int snd_pcm_ladspa_check_file(snd if (ladspa_id > 0 && d->UniqueID != ladspa_id) continue; plugin->filename = strdup(filename); - if (plugin->filename == NULL) + if (plugin->filename == NULL) { + dlclose(handle); return -ENOMEM; + } plugin->dl_handle = handle; plugin->desc = d; return 1; @@ -1153,18 +1162,24 @@ static int snd_pcm_ladspa_check_dir(snd_ } filename = malloc(len + strlen(dirent->d_name) + 1 + need_slash); - if (filename == NULL) + if (filename == NULL) { + closedir(dir); return -ENOMEM; + } strcpy(filename, path); if (need_slash) strcat(filename, "/"); strcat(filename, dirent->d_name); err = snd_pcm_ladspa_check_file(plugin, filename, label, ladspa_id); free(filename); - if (err < 0 && err != -ENOENT) + if (err < 0 && err != -ENOENT) { + closedir(dir); return err; - if (err > 0) + } + if (err > 0) { + closedir(dir); return 1; + } } /* never reached */ return 0; diff -r f5f02f509ea1 src/timer/timer.c --- a/src/timer/timer.c Thu Dec 07 15:04:28 2006 +0100 +++ b/src/timer/timer.c Mon Jan 08 15:04:17 2007 +0100 @@ -92,7 +92,7 @@ static int snd_timer_open_conf(snd_timer #ifndef PIC extern void *snd_timer_open_symbols(void); #endif - void *h; + void *h = NULL; if (snd_config_get_type(timer_conf) != SND_CONFIG_TYPE_COMPOUND) { if (name) SNDERR("Invalid type for TIMER %s definition", name); diff -r f5f02f509ea1 src/timer/timer_query.c --- a/src/timer/timer_query.c Thu Dec 07 15:04:28 2006 +0100 +++ b/src/timer/timer_query.c Mon Jan 08 16:28:40 2007 +0100 @@ -50,7 +50,7 @@ static int snd_timer_query_open_conf(snd #ifndef PIC extern void *snd_timer_query_open_symbols(void); #endif - void *h; + void *h = NULL; if (snd_config_get_type(timer_conf) != SND_CONFIG_TYPE_COMPOUND) { if (name) SNDERR("Invalid type for TIMER %s definition", name); @@ -77,6 +77,7 @@ static int snd_timer_query_open_conf(snd if (err >= 0) { if (snd_config_get_type(type_conf) != SND_CONFIG_TYPE_COMPOUND) { SNDERR("Invalid type for TIMER type %s definition", str); + err = -EINVAL; goto _err; } snd_config_for_each(i, next, type_conf) { ++++++ alsasound ++++++ --- alsa/alsasound 2006-09-01 17:20:53.000000000 +0200 +++ /mounts/work_src_done/STABLE/alsa/alsasound 2007-01-09 12:04:58.000000000 +0100 @@ -32,7 +32,9 @@ # ### BEGIN INIT INFO # Provides: alsasound +# Required-Start: # Should-Start: $remote_fs resmgr +# Required-Stop: # Should-Stop: $remote_fs resmgr # Default-Start: 2 3 5 # Default-Stop: ++++++ alsa-utils-hg-fixes.diff ++++++ diff -r 37fec0da2399 seq/aconnect/aconnect.1 --- a/seq/aconnect/aconnect.1 Thu Dec 07 15:04:31 2006 +0100 +++ b/seq/aconnect/aconnect.1 Mon Jan 08 11:44:20 2007 +0100 @@ -1,5 +1,12 @@ .TH aconnect 1 "August 31, 2000" -.LO 1 +.de EX +.nf +.ft CW +.. +.de EE +.ft R +.fi +.. .SH NAME aconnect \- ALSA sequencer connection manager @@ -33,12 +40,16 @@ For disconnection, use For disconnection, use .B \-d option. -.IP "" 4 +.sp +.EX % aconnect \-d 64:0 65:0 +.EE .PP The address can be given using the client's name. -.IP "" 4 +.sp +.EX % aconnect External:0 Emu8000:1 +.EE .PP Then the port 0 of the client matching with the string "External" is connected to the port 1 of the client matching with the "Emu8000". @@ -52,19 +63,15 @@ ports, can be listed with ports, can be listed with .B \-i option. -.IP "" 4 +.sp +.EX % aconnect \-i -.br client 0: 'System' [type=kernel] -.in +4 -0 'Timer ' -.br -1 'Announce ' -.in -4 + 0 'Timer ' + 1 'Announce ' client 64: 'External MIDI\-0' [type=kernel] -.in +4 -0 'MIDI 0\-0 ' -.in -4 + 0 'MIDI 0\-0 ' +.EE .PP Similarly, to see the output ports, use .B \-o ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org