diff mbox series

[bug#43628] Further Info

Message ID CAFw+=j1YaOdywXXN9V5UeeOT6Oprrfq4mesOhFprr+nskysTyA@mail.gmail.com
State New
Headers show
Series [bug#43628] Further Info | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job

Commit Message

Prafulla Giri Sept. 26, 2020, 12:07 p.m. UTC
Okay, I think I'm stuck now. lol



On Sat, Sep 26, 2020 at 3:42 PM Prafulla Giri <pratheblackdiamond@gmail.com>
wrote:

> 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
>> }
>>
>

Comments

Julien Lepiller Sept. 26, 2020, 2:35 p.m. UTC | #1
Hehe, thanks for your interest in guix-android. It's not really done yet, but I'm very motivated :). It always feels weird when someone on the internet calls you Mr ^^. No need to be so stiff, you can call me "Julien" (and I suppose it's the norm to call people by their first name in this kind of internet community).

Maybe try to run aegisub with strace -f, you might find out something. You may have to take a look at alsa's sources to find out how it looks for its plugins exactly (maybe try to grep for PLUGIN or PLUGINDIR)?

Le 26 septembre 2020 08:07:34 GMT-04:00, Prafulla Giri <pratheblackdiamond@gmail.com> a écrit :
>Okay, I think I'm stuck now. lol
>
>
>
>On Sat, Sep 26, 2020 at 3:42 PM Prafulla Giri
><pratheblackdiamond@gmail.com>
>wrote:
>
>> 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
>>> }
>>>
>>
Prafulla Giri Sept. 26, 2020, 8:46 p.m. UTC | #2
Oh, I come from a culture that does not call seniors by their first names.
(:
Yes! guix-android looks super awesome! I'm glad that you are working on
that. You're awesome.
(Also, I just realized that you've also got guix-home-manager and so many
more cool repositories! I need to check those out, and soon!)

I did manage to resolve this issue. Kinda'. Here:
https://github.com/peanutbutterandcrackers/guix-packages/blob/master/aegisub.scm

All I had to do was re-define 'alsa-lib' to point to the /gnu/store path of
alsa-plugins. The /gnu/store path had to be figured out during runtime.

Could you please check how this fares in a GuixSD system? If it goes well,
perhaps I should send a patch in for aegisub. But then again, I wonder if I
should make the changes in alsa-lib itself, but I am not very sure about
that.

On Sat, Sep 26, 2020 at 8:20 PM Julien Lepiller <julien@lepiller.eu> wrote:

> Hehe, thanks for your interest in guix-android. It's not really done yet,
> but I'm very motivated :). It always feels weird when someone on the
> internet calls you Mr ^^. No need to be so stiff, you can call me "Julien"
> (and I suppose it's the norm to call people by their first name in this
> kind of internet community).
>
> Maybe try to run aegisub with strace -f, you might find out something. You
> may have to take a look at alsa's sources to find out how it looks for its
> plugins exactly (maybe try to grep for PLUGIN or PLUGINDIR)?
>
> Le 26 septembre 2020 08:07:34 GMT-04:00, Prafulla Giri <
> pratheblackdiamond@gmail.com> a écrit :
>>
>> Okay, I think I'm stuck now. lol
>>
>>
>>
>> On Sat, Sep 26, 2020 at 3:42 PM Prafulla Giri <
>> pratheblackdiamond@gmail.com> wrote:
>>
>>> 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
>>>> }
>>>>
>>>
Julien Lepiller Sept. 26, 2020, 9:15 p.m. UTC | #3
Thanks! On the guix system, aegisub already works properly (at least it did when I last used it), because the alsa config allows it to find pulseaudio.

There are three issues with your proposed change:

First using derivation-outputs is a bad idea, and it probably only works because alsa-plugin doesn't depend on your modified alsa-lib (you'd get an infinite loop I think). Since alsa-plugin doesn't depend on this modified alsa-lib, you don't need such a convoluted work around. When defining the conhigure flags, you can simply use (assoc-ref %build-inputs "alsa-plugin") when "alsa-plugin" is defined as an input to the package.

Second, setting plugindir at build-time is just asking for the same kind of issues you are trying to fix, only for finding another plugin that might be needed.

Third, the way you modify the arguments is… unconventional :) try using substitute-keyword-arguments instead. There are plenty of examples in the repo.

I remember having dealt with this issue before, and pushed a patch some 3 years ago: http://issues.guix.gnu.org/31239

Could you look at what happened in the meantime? I think it was reverted in favor of the asound.conf file we have in the guix system now. You might learn something if you find the reason why it was changed.

Re my other projects, framagit is going to close next year, so I'll be migrating to my own hosting, currently at git.lepiller.eu.

Ok for the cultural difference. It's probably too soon to call me a "senior" though, I'm still pretty young: only 3 years older than you :p

Le 26 septembre 2020 16:46:50 GMT-04:00, Prafulla Giri <pratheblackdiamond@gmail.com> a écrit :
>Oh, I come from a culture that does not call seniors by their first
>names.
>(:
>Yes! guix-android looks super awesome! I'm glad that you are working on
>that. You're awesome.
>(Also, I just realized that you've also got guix-home-manager and so
>many
>more cool repositories! I need to check those out, and soon!)
>
>I did manage to resolve this issue. Kinda'. Here:
>https://github.com/peanutbutterandcrackers/guix-packages/blob/master/aegisub.scm
>
>All I had to do was re-define 'alsa-lib' to point to the /gnu/store
>path of
>alsa-plugins. The /gnu/store path had to be figured out during runtime.
>
>Could you please check how this fares in a GuixSD system? If it goes
>well,
>perhaps I should send a patch in for aegisub. But then again, I wonder
>if I
>should make the changes in alsa-lib itself, but I am not very sure
>about
>that.
>
>On Sat, Sep 26, 2020 at 8:20 PM Julien Lepiller <julien@lepiller.eu>
>wrote:
>
>> Hehe, thanks for your interest in guix-android. It's not really done
>yet,
>> but I'm very motivated :). It always feels weird when someone on the
>> internet calls you Mr ^^. No need to be so stiff, you can call me
>"Julien"
>> (and I suppose it's the norm to call people by their first name in
>this
>> kind of internet community).
>>
>> Maybe try to run aegisub with strace -f, you might find out
>something. You
>> may have to take a look at alsa's sources to find out how it looks
>for its
>> plugins exactly (maybe try to grep for PLUGIN or PLUGINDIR)?
>>
>> Le 26 septembre 2020 08:07:34 GMT-04:00, Prafulla Giri <
>> pratheblackdiamond@gmail.com> a écrit :
>>>
>>> Okay, I think I'm stuck now. lol
>>>
>>>
>>>
>>> On Sat, Sep 26, 2020 at 3:42 PM Prafulla Giri <
>>> pratheblackdiamond@gmail.com> wrote:
>>>
>>>> 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
>>>>> }
>>>>>
>>>>
Prafulla Giri Sept. 27, 2020, 5:56 a.m. UTC | #4
First and foremost: wow. A post-doc at just three years older than me.
*cries in high-school drop-out* Super awesome!

I have cleaned up my package definition as per your review:
https://github.com/peanutbutterandcrackers/guix-packages/blob/master/aegisub.scm

I will look into the matter then. Might take me a while, but I'll try.

It's sad that framagit is closing. I think they were doing a great job with
peertube and all...

On Sun, Sep 27, 2020 at 3:00 AM Julien Lepiller <julien@lepiller.eu> wrote:

> Thanks! On the guix system, aegisub already works properly (at least it
> did when I last used it), because the alsa config allows it to find
> pulseaudio.
>
> There are three issues with your proposed change:
>
> First using derivation-outputs is a bad idea, and it probably only works
> because alsa-plugin doesn't depend on your modified alsa-lib (you'd get an
> infinite loop I think). Since alsa-plugin doesn't depend on this modified
> alsa-lib, you don't need such a convoluted work around. When defining the
> conhigure flags, you can simply use (assoc-ref %build-inputs "alsa-plugin")
> when "alsa-plugin" is defined as an input to the package.
>
> Second, setting plugindir at build-time is just asking for the same kind
> of issues you are trying to fix, only for finding another plugin that might
> be needed.
>
> Third, the way you modify the arguments is… unconventional :) try using
> substitute-keyword-arguments instead. There are plenty of examples in the
> repo.
>
> I remember having dealt with this issue before, and pushed a patch some 3
> years ago: http://issues.guix.gnu.org/31239
>
> Could you look at what happened in the meantime? I think it was reverted
> in favor of the asound.conf file we have in the guix system now. You might
> learn something if you find the reason why it was changed.
>
> Re my other projects, framagit is going to close next year, so I'll be
> migrating to my own hosting, currently at git.lepiller.eu.
>
> Ok for the cultural difference. It's probably too soon to call me a
> "senior" though, I'm still pretty young: only 3 years older than you :p
>
> Le 26 septembre 2020 16:46:50 GMT-04:00, Prafulla Giri <
> pratheblackdiamond@gmail.com> a écrit :
>>
>> Oh, I come from a culture that does not call seniors by their first
>> names. (:
>> Yes! guix-android looks super awesome! I'm glad that you are working on
>> that. You're awesome.
>> (Also, I just realized that you've also got guix-home-manager and so many
>> more cool repositories! I need to check those out, and soon!)
>>
>> I did manage to resolve this issue. Kinda'. Here:
>> https://github.com/peanutbutterandcrackers/guix-packages/blob/master/aegisub.scm
>>
>> All I had to do was re-define 'alsa-lib' to point to the /gnu/store path
>> of alsa-plugins. The /gnu/store path had to be figured out during runtime.
>>
>> Could you please check how this fares in a GuixSD system? If it goes
>> well, perhaps I should send a patch in for aegisub. But then again, I
>> wonder if I should make the changes in alsa-lib itself, but I am not very
>> sure about that.
>>
>> On Sat, Sep 26, 2020 at 8:20 PM Julien Lepiller <julien@lepiller.eu>
>> wrote:
>>
>>> Hehe, thanks for your interest in guix-android. It's not really done
>>> yet, but I'm very motivated :). It always feels weird when someone on the
>>> internet calls you Mr ^^. No need to be so stiff, you can call me "Julien"
>>> (and I suppose it's the norm to call people by their first name in this
>>> kind of internet community).
>>>
>>> Maybe try to run aegisub with strace -f, you might find out something.
>>> You may have to take a look at alsa's sources to find out how it looks for
>>> its plugins exactly (maybe try to grep for PLUGIN or PLUGINDIR)?
>>>
>>> Le 26 septembre 2020 08:07:34 GMT-04:00, Prafulla Giri <
>>> pratheblackdiamond@gmail.com> a écrit :
>>>>
>>>> Okay, I think I'm stuck now. lol
>>>>
>>>>
>>>>
>>>> On Sat, Sep 26, 2020 at 3:42 PM Prafulla Giri <
>>>> pratheblackdiamond@gmail.com> wrote:
>>>>
>>>>> 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
>>>>>> }
>>>>>>
>>>>>
Julien Lepiller Sept. 27, 2020, 11:09 a.m. UTC | #5
Le 27 septembre 2020 01:56:31 GMT-04:00, Prafulla Giri <pratheblackdiamond@gmail.com> a écrit :
>First and foremost: wow. A post-doc at just three years older than me.
>*cries in high-school drop-out* Super awesome!
>
>I have cleaned up my package definition as per your review:
>https://github.com/peanutbutterandcrackers/guix-packages/blob/master/aegisub.scm
>
>I will look into the matter then. Might take me a while, but I'll try.
>
>It's sad that framagit is closing. I think they were doing a great job
>with
>peertube and all...

Well, it's framasoft, they started so many services that they can't handle the load anymore. So they've started closing them little by little last year. Some of them will stay, and others will disappear. They never wanted to centralize the web around them, so it's understandable. Instead, they propose other alternatives, they've started the chaton initiative (where other structures propose the same kind of services, at a smaller scale), etc.

They're still developping peertube, don't worry about that. But they're not going to host a public instance. Remember they're about 10 volunteers and one employee :)

>
>On Sun, Sep 27, 2020 at 3:00 AM Julien Lepiller <julien@lepiller.eu>
>wrote:
>
>> Thanks! On the guix system, aegisub already works properly (at least
>it
>> did when I last used it), because the alsa config allows it to find
>> pulseaudio.
>>
>> There are three issues with your proposed change:
>>
>> First using derivation-outputs is a bad idea, and it probably only
>works
>> because alsa-plugin doesn't depend on your modified alsa-lib (you'd
>get an
>> infinite loop I think). Since alsa-plugin doesn't depend on this
>modified
>> alsa-lib, you don't need such a convoluted work around. When defining
>the
>> conhigure flags, you can simply use (assoc-ref %build-inputs
>"alsa-plugin")
>> when "alsa-plugin" is defined as an input to the package.
>>
>> Second, setting plugindir at build-time is just asking for the same
>kind
>> of issues you are trying to fix, only for finding another plugin that
>might
>> be needed.
>>
>> Third, the way you modify the arguments is… unconventional :) try
>using
>> substitute-keyword-arguments instead. There are plenty of examples in
>the
>> repo.
>>
>> I remember having dealt with this issue before, and pushed a patch
>some 3
>> years ago: http://issues.guix.gnu.org/31239
>>
>> Could you look at what happened in the meantime? I think it was
>reverted
>> in favor of the asound.conf file we have in the guix system now. You
>might
>> learn something if you find the reason why it was changed.
>>
>> Re my other projects, framagit is going to close next year, so I'll
>be
>> migrating to my own hosting, currently at git.lepiller.eu.
>>
>> Ok for the cultural difference. It's probably too soon to call me a
>> "senior" though, I'm still pretty young: only 3 years older than you
>:p
>>
>> Le 26 septembre 2020 16:46:50 GMT-04:00, Prafulla Giri <
>> pratheblackdiamond@gmail.com> a écrit :
>>>
>>> Oh, I come from a culture that does not call seniors by their first
>>> names. (:
>>> Yes! guix-android looks super awesome! I'm glad that you are working
>on
>>> that. You're awesome.
>>> (Also, I just realized that you've also got guix-home-manager and so
>many
>>> more cool repositories! I need to check those out, and soon!)
>>>
>>> I did manage to resolve this issue. Kinda'. Here:
>>>
>https://github.com/peanutbutterandcrackers/guix-packages/blob/master/aegisub.scm
>>>
>>> All I had to do was re-define 'alsa-lib' to point to the /gnu/store
>path
>>> of alsa-plugins. The /gnu/store path had to be figured out during
>runtime.
>>>
>>> Could you please check how this fares in a GuixSD system? If it goes
>>> well, perhaps I should send a patch in for aegisub. But then again,
>I
>>> wonder if I should make the changes in alsa-lib itself, but I am not
>very
>>> sure about that.
>>>
>>> On Sat, Sep 26, 2020 at 8:20 PM Julien Lepiller <julien@lepiller.eu>
>>> wrote:
>>>
>>>> Hehe, thanks for your interest in guix-android. It's not really
>done
>>>> yet, but I'm very motivated :). It always feels weird when someone
>on the
>>>> internet calls you Mr ^^. No need to be so stiff, you can call me
>"Julien"
>>>> (and I suppose it's the norm to call people by their first name in
>this
>>>> kind of internet community).
>>>>
>>>> Maybe try to run aegisub with strace -f, you might find out
>something.
>>>> You may have to take a look at alsa's sources to find out how it
>looks for
>>>> its plugins exactly (maybe try to grep for PLUGIN or PLUGINDIR)?
>>>>
>>>> Le 26 septembre 2020 08:07:34 GMT-04:00, Prafulla Giri <
>>>> pratheblackdiamond@gmail.com> a écrit :
>>>>>
>>>>> Okay, I think I'm stuck now. lol
>>>>>
>>>>>
>>>>>
>>>>> On Sat, Sep 26, 2020 at 3:42 PM Prafulla Giri <
>>>>> pratheblackdiamond@gmail.com> wrote:
>>>>>
>>>>>> 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
>>>>>>> }
>>>>>>>
>>>>>>
Prafulla Giri Sept. 28, 2020, 2:43 p.m. UTC | #6
I see...

Hmm.... I didn't know they were just 11 people.

Anyways, here is something that an ALSA developer told me... I couldn't
make much of it. But Perhaps you could?

The current alsa-lib code uses the RTLD_DI_ORIGIN glibc extension to
> determine the libasound.so path at runtime. The hardcoded path is used only
> if this mechanism does not work
>

Perhaps you'd like to see our conversation over at GitHub:
https://github.com/alsa-project/alsa-lib/issues/82

You're far more qualified to do this than I am.

On Sun, Sep 27, 2020 at 4:55 PM Julien Lepiller <julien@lepiller.eu> wrote:

>
>
> Le 27 septembre 2020 01:56:31 GMT-04:00, Prafulla Giri <
> pratheblackdiamond@gmail.com> a écrit :
> >First and foremost: wow. A post-doc at just three years older than me.
> >*cries in high-school drop-out* Super awesome!
> >
> >I have cleaned up my package definition as per your review:
> >
> https://github.com/peanutbutterandcrackers/guix-packages/blob/master/aegisub.scm
> >
> >I will look into the matter then. Might take me a while, but I'll try.
> >
> >It's sad that framagit is closing. I think they were doing a great job
> >with
> >peertube and all...
>
> Well, it's framasoft, they started so many services that they can't handle
> the load anymore. So they've started closing them little by little last
> year. Some of them will stay, and others will disappear. They never wanted
> to centralize the web around them, so it's understandable. Instead, they
> propose other alternatives, they've started the chaton initiative (where
> other structures propose the same kind of services, at a smaller scale),
> etc.
>
> They're still developping peertube, don't worry about that. But they're
> not going to host a public instance. Remember they're about 10 volunteers
> and one employee :)
>
> >
> >On Sun, Sep 27, 2020 at 3:00 AM Julien Lepiller <julien@lepiller.eu>
> >wrote:
> >
> >> Thanks! On the guix system, aegisub already works properly (at least
> >it
> >> did when I last used it), because the alsa config allows it to find
> >> pulseaudio.
> >>
> >> There are three issues with your proposed change:
> >>
> >> First using derivation-outputs is a bad idea, and it probably only
> >works
> >> because alsa-plugin doesn't depend on your modified alsa-lib (you'd
> >get an
> >> infinite loop I think). Since alsa-plugin doesn't depend on this
> >modified
> >> alsa-lib, you don't need such a convoluted work around. When defining
> >the
> >> conhigure flags, you can simply use (assoc-ref %build-inputs
> >"alsa-plugin")
> >> when "alsa-plugin" is defined as an input to the package.
> >>
> >> Second, setting plugindir at build-time is just asking for the same
> >kind
> >> of issues you are trying to fix, only for finding another plugin that
> >might
> >> be needed.
> >>
> >> Third, the way you modify the arguments is… unconventional :) try
> >using
> >> substitute-keyword-arguments instead. There are plenty of examples in
> >the
> >> repo.
> >>
> >> I remember having dealt with this issue before, and pushed a patch
> >some 3
> >> years ago: http://issues.guix.gnu.org/31239
> >>
> >> Could you look at what happened in the meantime? I think it was
> >reverted
> >> in favor of the asound.conf file we have in the guix system now. You
> >might
> >> learn something if you find the reason why it was changed.
> >>
> >> Re my other projects, framagit is going to close next year, so I'll
> >be
> >> migrating to my own hosting, currently at git.lepiller.eu.
> >>
> >> Ok for the cultural difference. It's probably too soon to call me a
> >> "senior" though, I'm still pretty young: only 3 years older than you
> >:p
> >>
> >> Le 26 septembre 2020 16:46:50 GMT-04:00, Prafulla Giri <
> >> pratheblackdiamond@gmail.com> a écrit :
> >>>
> >>> Oh, I come from a culture that does not call seniors by their first
> >>> names. (:
> >>> Yes! guix-android looks super awesome! I'm glad that you are working
> >on
> >>> that. You're awesome.
> >>> (Also, I just realized that you've also got guix-home-manager and so
> >many
> >>> more cool repositories! I need to check those out, and soon!)
> >>>
> >>> I did manage to resolve this issue. Kinda'. Here:
> >>>
> >
> https://github.com/peanutbutterandcrackers/guix-packages/blob/master/aegisub.scm
> >>>
> >>> All I had to do was re-define 'alsa-lib' to point to the /gnu/store
> >path
> >>> of alsa-plugins. The /gnu/store path had to be figured out during
> >runtime.
> >>>
> >>> Could you please check how this fares in a GuixSD system? If it goes
> >>> well, perhaps I should send a patch in for aegisub. But then again,
> >I
> >>> wonder if I should make the changes in alsa-lib itself, but I am not
> >very
> >>> sure about that.
> >>>
> >>> On Sat, Sep 26, 2020 at 8:20 PM Julien Lepiller <julien@lepiller.eu>
> >>> wrote:
> >>>
> >>>> Hehe, thanks for your interest in guix-android. It's not really
> >done
> >>>> yet, but I'm very motivated :). It always feels weird when someone
> >on the
> >>>> internet calls you Mr ^^. No need to be so stiff, you can call me
> >"Julien"
> >>>> (and I suppose it's the norm to call people by their first name in
> >this
> >>>> kind of internet community).
> >>>>
> >>>> Maybe try to run aegisub with strace -f, you might find out
> >something.
> >>>> You may have to take a look at alsa's sources to find out how it
> >looks for
> >>>> its plugins exactly (maybe try to grep for PLUGIN or PLUGINDIR)?
> >>>>
> >>>> Le 26 septembre 2020 08:07:34 GMT-04:00, Prafulla Giri <
> >>>> pratheblackdiamond@gmail.com> a écrit :
> >>>>>
> >>>>> Okay, I think I'm stuck now. lol
> >>>>>
> >>>>>
> >>>>>
> >>>>> On Sat, Sep 26, 2020 at 3:42 PM Prafulla Giri <
> >>>>> pratheblackdiamond@gmail.com> wrote:
> >>>>>
> >>>>>> 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
> >>>>>>> }
> >>>>>>>
> >>>>>>
>
Julien Lepiller Sept. 28, 2020, 3:20 p.m. UTC | #7
Ok, I tgink that means alsa-lib looks for plugins in its rpach, fails to do so, tgen fallls back to its hard-coded path, and fails again. So if we set the rpath correctly (which we cannot do in a package because it would introduce a cyclic dependency), it can load its plugin.

Could you try to set LD_LIBRARY_PATH like so:

LD_LIBRARY_PATH=<alsa-plugin's pulseaudio output>/lib aegisub

Le 28 septembre 2020 10:43:02 GMT-04:00, Prafulla Giri <pratheblackdiamond@gmail.com> a écrit :
>I see...
>
>Hmm.... I didn't know they were just 11 people.
>
>Anyways, here is something that an ALSA developer told me... I couldn't
>make much of it. But Perhaps you could?
>
>The current alsa-lib code uses the RTLD_DI_ORIGIN glibc extension to
>> determine the libasound.so path at runtime. The hardcoded path is
>used only
>> if this mechanism does not work
>>
>
>Perhaps you'd like to see our conversation over at GitHub:
>https://github.com/alsa-project/alsa-lib/issues/82
>
>You're far more qualified to do this than I am.
>
>On Sun, Sep 27, 2020 at 4:55 PM Julien Lepiller <julien@lepiller.eu>
>wrote:
>
>>
>>
>> Le 27 septembre 2020 01:56:31 GMT-04:00, Prafulla Giri <
>> pratheblackdiamond@gmail.com> a écrit :
>> >First and foremost: wow. A post-doc at just three years older than
>me.
>> >*cries in high-school drop-out* Super awesome!
>> >
>> >I have cleaned up my package definition as per your review:
>> >
>>
>https://github.com/peanutbutterandcrackers/guix-packages/blob/master/aegisub.scm
>> >
>> >I will look into the matter then. Might take me a while, but I'll
>try.
>> >
>> >It's sad that framagit is closing. I think they were doing a great
>job
>> >with
>> >peertube and all...
>>
>> Well, it's framasoft, they started so many services that they can't
>handle
>> the load anymore. So they've started closing them little by little
>last
>> year. Some of them will stay, and others will disappear. They never
>wanted
>> to centralize the web around them, so it's understandable. Instead,
>they
>> propose other alternatives, they've started the chaton initiative
>(where
>> other structures propose the same kind of services, at a smaller
>scale),
>> etc.
>>
>> They're still developping peertube, don't worry about that. But
>they're
>> not going to host a public instance. Remember they're about 10
>volunteers
>> and one employee :)
>>
>> >
>> >On Sun, Sep 27, 2020 at 3:00 AM Julien Lepiller <julien@lepiller.eu>
>> >wrote:
>> >
>> >> Thanks! On the guix system, aegisub already works properly (at
>least
>> >it
>> >> did when I last used it), because the alsa config allows it to
>find
>> >> pulseaudio.
>> >>
>> >> There are three issues with your proposed change:
>> >>
>> >> First using derivation-outputs is a bad idea, and it probably only
>> >works
>> >> because alsa-plugin doesn't depend on your modified alsa-lib
>(you'd
>> >get an
>> >> infinite loop I think). Since alsa-plugin doesn't depend on this
>> >modified
>> >> alsa-lib, you don't need such a convoluted work around. When
>defining
>> >the
>> >> conhigure flags, you can simply use (assoc-ref %build-inputs
>> >"alsa-plugin")
>> >> when "alsa-plugin" is defined as an input to the package.
>> >>
>> >> Second, setting plugindir at build-time is just asking for the
>same
>> >kind
>> >> of issues you are trying to fix, only for finding another plugin
>that
>> >might
>> >> be needed.
>> >>
>> >> Third, the way you modify the arguments is… unconventional :) try
>> >using
>> >> substitute-keyword-arguments instead. There are plenty of examples
>in
>> >the
>> >> repo.
>> >>
>> >> I remember having dealt with this issue before, and pushed a patch
>> >some 3
>> >> years ago: http://issues.guix.gnu.org/31239
>> >>
>> >> Could you look at what happened in the meantime? I think it was
>> >reverted
>> >> in favor of the asound.conf file we have in the guix system now.
>You
>> >might
>> >> learn something if you find the reason why it was changed.
>> >>
>> >> Re my other projects, framagit is going to close next year, so
>I'll
>> >be
>> >> migrating to my own hosting, currently at git.lepiller.eu.
>> >>
>> >> Ok for the cultural difference. It's probably too soon to call me
>a
>> >> "senior" though, I'm still pretty young: only 3 years older than
>you
>> >:p
>> >>
>> >> Le 26 septembre 2020 16:46:50 GMT-04:00, Prafulla Giri <
>> >> pratheblackdiamond@gmail.com> a écrit :
>> >>>
>> >>> Oh, I come from a culture that does not call seniors by their
>first
>> >>> names. (:
>> >>> Yes! guix-android looks super awesome! I'm glad that you are
>working
>> >on
>> >>> that. You're awesome.
>> >>> (Also, I just realized that you've also got guix-home-manager and
>so
>> >many
>> >>> more cool repositories! I need to check those out, and soon!)
>> >>>
>> >>> I did manage to resolve this issue. Kinda'. Here:
>> >>>
>> >
>>
>https://github.com/peanutbutterandcrackers/guix-packages/blob/master/aegisub.scm
>> >>>
>> >>> All I had to do was re-define 'alsa-lib' to point to the
>/gnu/store
>> >path
>> >>> of alsa-plugins. The /gnu/store path had to be figured out during
>> >runtime.
>> >>>
>> >>> Could you please check how this fares in a GuixSD system? If it
>goes
>> >>> well, perhaps I should send a patch in for aegisub. But then
>again,
>> >I
>> >>> wonder if I should make the changes in alsa-lib itself, but I am
>not
>> >very
>> >>> sure about that.
>> >>>
>> >>> On Sat, Sep 26, 2020 at 8:20 PM Julien Lepiller
><julien@lepiller.eu>
>> >>> wrote:
>> >>>
>> >>>> Hehe, thanks for your interest in guix-android. It's not really
>> >done
>> >>>> yet, but I'm very motivated :). It always feels weird when
>someone
>> >on the
>> >>>> internet calls you Mr ^^. No need to be so stiff, you can call
>me
>> >"Julien"
>> >>>> (and I suppose it's the norm to call people by their first name
>in
>> >this
>> >>>> kind of internet community).
>> >>>>
>> >>>> Maybe try to run aegisub with strace -f, you might find out
>> >something.
>> >>>> You may have to take a look at alsa's sources to find out how it
>> >looks for
>> >>>> its plugins exactly (maybe try to grep for PLUGIN or PLUGINDIR)?
>> >>>>
>> >>>> Le 26 septembre 2020 08:07:34 GMT-04:00, Prafulla Giri <
>> >>>> pratheblackdiamond@gmail.com> a écrit :
>> >>>>>
>> >>>>> Okay, I think I'm stuck now. lol
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>> On Sat, Sep 26, 2020 at 3:42 PM Prafulla Giri <
>> >>>>> pratheblackdiamond@gmail.com> wrote:
>> >>>>>
>> >>>>>> 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
>> >>>>>>> }
>> >>>>>>>
>> >>>>>>
>>
diff mbox series

Patch

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 0f727a6e9e..c828be546b 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -3836,7 +3836,52 @@  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"))
+                      (alsa-lib (assoc-ref %build-inputs "alsa-lib")))
+                  (match %build-inputs
+                    (((names . directories) ...)
+                     (union-build out
+                                  directories
+                                  ;; Instead of a symlink union, this is will be a
+                                  ;; copy union, because this won't "Just Work™"
+                                  ;; with mere symlinks. Some of the files that make
+                                  ;; up the union need to tweaked to work properly.
+                                  #:create-all-directories? #t
+                                  #:symlink copy-file)))
+                  ;; Fix alsa-lib pkg-config file to point to the /gnu/store of
+                  ;; this union, rather than that of alsa-lib itself.
+                  (substitute* (string-append out "/lib/pkgconfig/alsa.pc")
+                    ((alsa-lib) out))
+                  #t))))
+           (inputs
+            `(("alsa-lib"
+               ,(package
+                  (inherit alsa-lib)
+                  (arguments `(,@(cons
+                                  (car (package-arguments alsa-lib))
+                                  (list (append
+                                         (cadr
+                                          (package-arguments alsa-lib))
+                                         (list (string-append
+                                                "--with-plugin-dir="
+                                                ;; stuff goes here
+                                                ))))))))
+               )
+              ("alsa-plugins:pulseaudio" ,alsa-plugins "pulseaudio")))))
        ("pulseaudio" ,pulseaudio)
        ("libx11" ,libx11)
        ("freetype" ,freetype)