Hi, please apply the patch from Samuel Thibault to build libao on hurd-i386. Don't wait for the next upstream release, because it prevent xmms2 to build on hurd-i386. Attached the debdiff. Apply this to the package and add a new changelog entry.
Please let me know, if I should do a NMU instead. -- Benjamin Drung Ubuntu Developer (www.ubuntu.com) | Debian Maintainer (www.debian.org)
diff -u libao-0.8.8/debian/patches/series libao-0.8.8/debian/patches/series --- libao-0.8.8/debian/patches/series +++ libao-0.8.8/debian/patches/series @@ -1,0 +2 @@ +path-max.patch only in patch2: unchanged: --- libao-0.8.8.orig/debian/patches/path-max.patch +++ libao-0.8.8/debian/patches/path-max.patch @@ -0,0 +1,114 @@ +Description: Fix FTBFS on hurd-i386 +Author: Samuel Thibault <samuel.thiba...@ens-lyon.org> + +--- ./src/audio_out.c.orig 2009-03-31 21:54:58.650000000 +0100 ++++ ./src/audio_out.c 2009-03-31 21:57:00.040000000 +0100 +@@ -253,7 +253,6 @@ + struct dirent *plugin_dirent; + char *ext; + struct stat statbuf; +- char fullpath[PATH_MAX]; + DIR *plugindir; + driver_list *plugin; + driver_list *driver = end; +@@ -262,7 +261,8 @@ + plugindir = opendir(AO_PLUGIN_PATH); + if (plugindir != NULL) { + while ((plugin_dirent = readdir(plugindir)) != NULL) { +- snprintf(fullpath, PATH_MAX, "%s/%s", ++ char fullpath[strlen(AO_PLUGIN_PATH) + 1 + strlen(plugin_dirent->d_name) + 1]; ++ snprintf(fullpath, sizeof(fullpath), "%s/%s", + AO_PLUGIN_PATH, plugin_dirent->d_name); + if (!stat(fullpath, &statbuf) && + S_ISREG(statbuf.st_mode) && +--- ./src/plugins/pulse/ao_pulse.c.orig 2009-03-31 21:58:00.050000000 +0100 ++++ ./src/plugins/pulse/ao_pulse.c 2009-03-31 22:05:08.230000000 +0100 +@@ -71,7 +71,7 @@ + } + + int ao_plugin_test(void) { +- char p[PATH_MAX], t[256], t2[256]; ++ char *p, t[256], t2[256]; + const char *fn; + struct pa_simple *s; + static const struct pa_sample_spec ss = { +@@ -79,17 +79,32 @@ + .rate = 44100, + .channels = 2 + }; ++ size_t allocated = 128; + + disable_sigpipe(); + + if (getenv("PULSE_SERVER") || getenv("PULSE_SINK")) + return 1; + +- if ((fn = pa_get_binary_name(p, sizeof(p)))) { +- snprintf(t, sizeof(t), "libao[%s]", fn); +- snprintf(t2, sizeof(t2), "libao[%s] test", fn); +- } ++ while (1) { ++ p = pa_xmalloc(allocated); ++ ++ if (!(fn = pa_get_binary_name(p, allocated))) { ++ pa_xfree(p); ++ break; ++ } ++ ++ if (fn != p || strlen(p) < allocated - 1) { ++ snprintf(t, sizeof(t), "libao[%s]", fn); ++ snprintf(t2, sizeof(t2), "libao[%s] playback stream", fn); ++ break; ++ } + ++ pa_xfree(p); ++ allocated *= 2; ++ } ++ pa_xfree(p); ++ + if (!(s = pa_simple_new(NULL, fn ? t : "libao", PA_STREAM_PLAYBACK, NULL, fn ? t2 : "libao test", &ss, NULL, NULL, NULL))) + return 0; + +@@ -136,10 +151,11 @@ + } + + int ao_plugin_open(ao_device *device, ao_sample_format *format) { +- char p[PATH_MAX], t[256], t2[256]; ++ char *p, t[256], t2[256]; + const char *fn = NULL; + ao_pulse_internal *internal; + struct pa_sample_spec ss; ++ size_t allocated = 128; + + assert(device && device->internal && format); + +@@ -160,11 +176,25 @@ + + disable_sigpipe(); + +- if (pa_get_binary_name(p, sizeof(p))) { +- fn = pa_path_get_filename(p); +- snprintf(t, sizeof(t), "libao[%s]", fn); +- snprintf(t2, sizeof(t2), "libao[%s] playback stream", fn); ++ while (1) { ++ p = pa_xmalloc(allocated); ++ ++ if (!(fn = pa_get_binary_name(p, allocated))) { ++ pa_xfree(p); ++ break; ++ } ++ ++ if (fn != p || strlen(p) < allocated - 1) { ++ fn = pa_path_get_filename(fn); ++ snprintf(t, sizeof(t), "libao[%s]", fn); ++ snprintf(t2, sizeof(t2), "libao[%s] playback stream", fn); ++ break; ++ } ++ ++ pa_xfree(p); ++ allocated *= 2; + } ++ pa_xfree(p); + + if (!(internal->simple = pa_simple_new(internal->server, fn ? t : "libao", PA_STREAM_PLAYBACK, internal->sink, fn ? t2 : "libao playback stream", &ss, NULL, NULL, NULL))) + return 0;
signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil