Message ID | CAFw+=j3HG_a7f8R1p7C6izu+gAyeQ=uJVkijded881cTQcSnag@mail.gmail.com |
---|---|
State | New |
Headers | show |
Series | [bug#43628] Request for patch evaluation/review | expand |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
I forgot to mention, but the union-build works. If one `guix build`s the union package, and cd into the /gnu/store/...-union-build, one will see that things are there as it should be (lib/normal-alsa-*.so and lib/alsa-lib/*pulse*.so). It's just that aegisub seems to be looking from the /gnu/store/normal-alsa-lib-dir instead of /gnu/store/union-alsa-package.
Another information: I have other programs on my foreign system (installed via guix) that produce sound well, without any issues. They include: espeak and kdenlive. Also, I did try making the union-build use copies instead of symlinks using (union-build ... #:symlink copy-recursively) but that didn't work out either. Now, I'm going to take a look at fixing the pkg-config rules, and will be updating this thread should that resolve this issue. On Sat, Sep 26, 2020 at 12:21 PM Prafulla Giri <pratheblackdiamond@gmail.com> wrote: > I forgot to mention, but the union-build works. If one `guix build`s the > union package, and cd into the /gnu/store/...-union-build, one will see > that things are there as it should be (lib/normal-alsa-*.so and > lib/alsa-lib/*pulse*.so). > > It's just that aegisub seems to be looking from the > /gnu/store/normal-alsa-lib-dir instead of /gnu/store/union-alsa-package. >
Hi Prafulla, Le 26 septembre 2020 03:31:38 GMT-04:00, Prafulla Giri <pratheblackdiamond@gmail.com> a écrit : >Another information: > >I have other programs on my foreign system (installed via guix) that >produce sound well, without any issues. They include: >espeak and kdenlive. > >Also, I did try making the union-build use copies instead of symlinks >using >(union-build ... #:symlink copy-recursively) but that didn't work out >either. > >Now, I'm going to take a look at fixing the pkg-config rules, and will >be >updating this thread should that resolve this issue. > >On Sat, Sep 26, 2020 at 12:21 PM Prafulla Giri ><pratheblackdiamond@gmail.com> >wrote: > >> I forgot to mention, but the union-build works. If one `guix build`s >the >> union package, and cd into the /gnu/store/...-union-build, one will >see >> that things are there as it should be (lib/normal-alsa-*.so and >> lib/alsa-lib/*pulse*.so). >> >> It's just that aegisub seems to be looking from the >> /gnu/store/normal-alsa-lib-dir instead of >/gnu/store/union-alsa-package. >> I think the issue with the union-build is that it is completely ignored: alsa doesn't look in it's current directory for plugins, but in the directory where it's been configured (at build time) to look for. On the Guix System, there is a service that creates a /etc/asound.conf, which references alsa-plugins:pulseaudio. Maybe you actually want to configure that? Maybe try to copy this to a new file .asoundrc: pcm_type.pule { lib "/home/foo/.guix-profile/lib/alsa-lib/libasound_module_pcm_pulse.so" } ctl_type.pulse { lib"/home/foo/.guix-profile/lib/alsa-lib/libasound_module_ctl_pulse.so" } pcm.!default { type pulse } ctl.!default { type pulse }
Hello Mr. Lepiller, Thank you for the tip. For the moment, I want to poke around this issue. Perhaps I get absolutely tired of it (or find a good hack - and an ugly patch). I did manage to learn a bit more about union-builds in general. So, that's a silver lining. Also, your work on guix-android seems so very cool! Please keep up the great work! On Sat, Sep 26, 2020 at 3:28 PM Julien Lepiller <julien@lepiller.eu> wrote: > > > Hi Prafulla, > > Le 26 septembre 2020 03:31:38 GMT-04:00, Prafulla Giri < > pratheblackdiamond@gmail.com> a écrit : > >Another information: > > > >I have other programs on my foreign system (installed via guix) that > >produce sound well, without any issues. They include: > >espeak and kdenlive. > > > >Also, I did try making the union-build use copies instead of symlinks > >using > >(union-build ... #:symlink copy-recursively) but that didn't work out > >either. > > > >Now, I'm going to take a look at fixing the pkg-config rules, and will > >be > >updating this thread should that resolve this issue. > > > >On Sat, Sep 26, 2020 at 12:21 PM Prafulla Giri > ><pratheblackdiamond@gmail.com> > >wrote: > > > >> I forgot to mention, but the union-build works. If one `guix build`s > >the > >> union package, and cd into the /gnu/store/...-union-build, one will > >see > >> that things are there as it should be (lib/normal-alsa-*.so and > >> lib/alsa-lib/*pulse*.so). > >> > >> It's just that aegisub seems to be looking from the > >> /gnu/store/normal-alsa-lib-dir instead of > >/gnu/store/union-alsa-package. > >> > > I think the issue with the union-build is that it is completely ignored: > alsa doesn't look in it's current directory for plugins, but in the > directory where it's been configured (at build time) to look for. > > On the Guix System, there is a service that creates a /etc/asound.conf, > which references alsa-plugins:pulseaudio. Maybe you actually want to > configure that? Maybe try to copy this to a new file .asoundrc: > > pcm_type.pule { > lib "/home/foo/.guix-profile/lib/alsa-lib/libasound_module_pcm_pulse.so" > } > > ctl_type.pulse { > lib"/home/foo/.guix-profile/lib/alsa-lib/libasound_module_ctl_pulse.so" > } > > pcm.!default { > type pulse > } > > ctl.!default { > type pulse > } >
Is this a duplicate of #40832, "alsa-lib cannot find its plugins"? https://bugs.gnu.org/40832 The patch I submitted in that bug ticket does work. I haven't found the energy to perform a final review of the C code.
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 0f727a6e9e..0e037fb24b 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -3836,7 +3836,41 @@ programmers to access a standard API to open and decompress media files.") ("hunspell" ,hunspell) ("mesa" ,mesa) ("libass" ,libass) - ("alsa-lib" ,alsa-lib) + ("alsa-lib-with-pulseaudio-plugin" + ,(package + (inherit alsa-lib) + (name "alsa-lib-with-pulseaudio-plugin") + (source #f) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build union) + (guix build utils)) + #:builder + (begin + (use-modules (ice-9 match) + (guix build union) + (guix build utils)) + (let ((out (assoc-ref %outputs "out"))) + (match %build-inputs + (((names . directories) ...) + (union-build out + directories + #:create-all-directories? #f) + #t)) + ;; do stuff here + (find-files (string-append out "/lib/alsa-lib/") + (lambda (found stat) + (symlink-relative + found + (string-append + out + "/lib/" + (basename found))) + #t))) + #t))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("alsa-plugins:pulseaudio" ,alsa-plugins "pulseaudio"))))) ("pulseaudio" ,pulseaudio) ("libx11" ,libx11) ("freetype" ,freetype)