Subject: [bug#43628] Further Info

From: Prafulla Giri <[email-masked]>
Date: Sun, 27 Sep 2020 11:41:31 +0545

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 <[email-masked]> 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 <
> [email-masked]> 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 <[email-masked]>
>> 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 <
>>> [email-masked]> a écrit :
>>>>
>>>> Okay, I think I'm stuck now. lol
>>>>
>>>>
>>>>
>>>> On Sat, Sep 26, 2020 at 3:42 PM Prafulla Giri <
>>>> [email-masked]> 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 <[email-masked]>
>>>>> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> Hi Prafulla,
>>>>>>
>>>>>> Le 26 septembre 2020 03:31:38 GMT-04:00, Prafulla Giri <
>>>>>> [email-masked]> 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
>>>>>> ><[email-masked]>
>>>>>> >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
>>>>>> }
>>>>>>
>>>>>