[PATCH 1/2] gnu: Add grumble.

DoneSubmitted by jgart.
Details
3 participants
  • jgart
  • Leo Prikler
  • Maxim Cournoyer
Owner
unassigned
Severity
normal
J
(address . guix-patches@gnu.org)
cd89e2168da413f579b889f5d537e6d3@dismail.de
Hi Guix!

Here is grumble, an alternative mumble server implemented in golang.

go-github-com-gorilla-websocket was the only dependency we needed to package for it.

Now, to create a grumble-service-type :)

This was packaged by myself, donotshake, and Raghav Gururajan while communicating on a grumble instance and pair programming over tmate. All the co-authors are listed in the commit message.

Thank you,

jgart

libremiami.org
mumble.libremiami.org
L
L
Leo Prikler wrote on 12 Mar 2021 21:37
68917ec376f1aa2da0e88e9c72a850aa1e531cdd.camel@student.tugraz.at
Hi jgart,

Am Freitag, den 12.03.2021, 16:25 +0000 schrieb jgart:
Toggle quote (1 lines)
> Now, to create a grumble-service-type :)
I know you mean this somewhat jokingly, but is there anything (apart
maybe from the name of the binary), that would keep you from reusing
murmur-service-type?

Toggle quote (20 lines)
> @@ -4809,7 +4810,7 @@ test results.")
> (define-public go-github-com-golang-protobuf-proto
> (package
> (name "go-github-com-golang-protobuf-proto")
> - (version "1.3.1")
> + (version "1.3.5")
> (source (origin
> (method git-fetch)
> (uri (git-reference
> @@ -4818,7 +4819,7 @@ test results.")
> (file-name (git-file-name name version))
> (sha256
> (base32
> - "15am4s4646qy6iv0g3kkqq52rzykqjhm4bf08dk0fy2r58knpsy
> l"))))
> + "1gkd1942vk9n8kfzdwy1iil6wgvlwjq7a3y5jc49ck4lz9rhmgk
> q"))))
> (build-system go-build-system)
> (arguments
> '(#:import-path "github.com/golang/protobuf/proto"
Please refrain from silently bumping other packages 😉

Toggle quote (1 lines)
> + (version (git-version "0.0.0" revision commit))
Three 0s is a bit much for a package, that has declared 1.0~devel since
its inception. Are there even plans to release this ever?

Apart from the above, there are some other question, that I'd like to
ask before greenlighting this patch.
1. Is this package in its current state usable?
2. Is it still maintained upstream? It is a little stretch to say
Grumble is undergoing active development after a year of no activity.
few features that are lacking, but does it maybe contain features, that
would make it worth packaging?

If the answer is "no" to any of the above, I'm not too sure whether it
would be wise to have this in Guix upstream. If LibreMiami wanted to
host grumble instances on Guix regardless, perhaps a channel might be a
better fit?

Toggle quote (2 lines)
> This was packaged by myself, donotshake, and Raghav Gururajan while
> communicating on a grumble instance[...].
I'm not sure whether our broadcasting regulations would require you to
label this patch as product placement, but thanks for the info, I
guess.

Regards,
Leo
J
grumble status update
(address . 47104@debbugs.gnu.org)
e01f8d02625a4fb4a1a1d8d7daa3afef@dismail.de
Hi Leo,

Toggle quote (4 lines)
> I know you mean this somewhat jokingly, but is there anything (apart
> maybe from the name of the binary), that would keep you from reusing
> murmur-service-type?

See here:


There are more sources related to the grumble config that's currently implemented that I can't locate at the moment.

I remember reading that they didn't necessarily want to maintain feature parity with the grumble config format.

Toggle quote (2 lines)
> 1. Is this package in its current state usable?

I would say yes. We packaged grumble while talking over grumble. It feels pretty solid.

Grumble also has an active fork as a library and being used by wahay: https://wahay.org/

It is currently 16 commits ahead of upstream:


Toggle quote (3 lines)
> 2. Is it still maintained upstream? It is a little stretch to say
> Grumble is undergoing active development after a year of no activity.

It sounds like the project maintainers of the upstream grumble project are very slow to review pull requests. It sounds like they are too busy with other projects/work.

See the complaint here by one of the contributors that chimed in when I opened an issue:


Toggle quote (4 lines)
> few features that are lacking, but does it maybe contain features, that
> would make it worth packaging?


"... Grumble has the distinguishing feature of native support for Websockets (because I was a lot worse at C++ back then and so I contributed a patch here instead), and Murmur will probably not have that for the foreseeable future. You could of course just configure a proxy in front of Murmur if you need this. A lot of the plans for work we were making a few years ago pointed towards Grumble being more focused on ease-of-use and these small workloads I talked about above. It makes sense: the Murmur static binary has issues and so a Grumble static (just how Go works) binary that you can download and run, trivially configure and easily negotiate certs over LE (unfortunately never happened due to LE issues, but it would be viable now), accessible over the Web could fulfil a sort of "batteries-included" user-friendly niche."

Toggle quote (5 lines)
> If the answer is "no" to any of the above, I'm not too sure whether it
> would be wise to have this in Guix upstream. If LibreMiami wanted to
> host grumble instances on Guix regardless, perhaps a channel might be a
> better fit?

We can put this in a LibreMiami channel with a service for it if you insist it not be included in upstream guix.

If upstream grumble picks up development then I can send a patch again for review.

That said, can you take the patch for go-github-com-gorilla-websocket?

We will need go-github-com-gorilla-websocket for many other packages that we're working on. One of them being the hugo static site generator that we're working on with Ryan Prior.

Relatedly, we're planning on packaging wahay (https://wahay.org/).

wahay depends on the fork of grumble that I linked above.

Should we package only the fork of grumble in that case and not upstream grumble?

all the best,

jgart
L
L
Leo Prikler wrote on 18 Apr 2021 20:31
aa104682b7cb0079d5369b964124eaf6556fa034.camel@student.tugraz.at
Hi jgart,

Am Sonntag, den 18.04.2021, 17:25 +0000 schrieb jgart:
Toggle quote (18 lines)
> Hi Leo,
>
> > I know you mean this somewhat jokingly, but is there anything
> > (apart
> > maybe from the name of the binary), that would keep you from
> > reusing
> > murmur-service-type?
>
> See here:
>
> https://github.com/mumble-voip/grumble/issues/21
> https://github.com/mumble-voip/grumble/pull/26
>
> There are more sources related to the grumble config that's currently
> implemented that I can't locate at the moment.
>
> I remember reading that they didn't necessarily want to maintain
> feature parity with the grumble config format.
That's… disappointing.

Toggle quote (11 lines)
> > 1. Is this package in its current state usable?
>
> I would say yes. We packaged grumble while talking over grumble. It
> feels pretty solid.
>
> Grumble also has an active fork as a library and being used by wahay:
> https://wahay.org/
>
> It is currently 16 commits ahead of upstream:
>
> https://github.com/digitalautonomy/grumble
This doesn't really look active to me either. It appears as though
they diverged at some point and simultaneously came to a halt. Now
wahay is still active, but that's a different beast.

Toggle quote (12 lines)
> > 2. Is it still maintained upstream? It is a little stretch to say
> > Grumble is undergoing active development after a year of no
> > activity.
>
> It sounds like the project maintainers of the upstream grumble
> project are very slow to review pull requests. It sounds like they
> are too busy with other projects/work.
>
> See the complaint here by one of the contributors that chimed in when
> I opened an issue:
>
> https://github.com/mumble-voip/grumble/issues/76
I take that as a "Maybe, but actually no".

Toggle quote (21 lines)
> > a
> > few features that are lacking, but does it maybe contain features,
> > that
> > would make it worth packaging?
>
> See https://github.com/mumble-voip/grumble/issues/76
>
> "... Grumble has the distinguishing feature of native support for
> Websockets (because I was a lot worse at C++ back then and so I
> contributed a patch here instead), and Murmur will probably not have
> that for the foreseeable future. You could of course just configure a
> proxy in front of Murmur if you need this. A lot of the plans for
> work we were making a few years ago pointed towards Grumble being
> more focused on ease-of-use and these small workloads I talked about
> above. It makes sense: the Murmur static binary has issues and so a
> Grumble static (just how Go works) binary that you can download and
> run, trivially configure and easily negotiate certs over LE
> (unfortunately never happened due to LE issues, but it would be
> viable now), accessible over the Web could fulfil a sort of
> "batteries-included" user-friendly niche."
W.r.t. ease-of-use I don't think it should be too difficult to get
murmur + certbot working in Guix. All I can recall from the Debian
(yeah, I know) server, that I currently run murmur on, is that you need
to get your hook for restarting murmur right.

Toggle quote (10 lines)
> > If the answer is "no" to any of the above, I'm not too sure whether
> > it
> > would be wise to have this in Guix upstream. If LibreMiami wanted
> > to
> > host grumble instances on Guix regardless, perhaps a channel might
> > be a
> > better fit?
>
> We can put this in a LibreMiami channel with a service for it if you
> insist it not be included in upstream guix.
It is not so much me insisting rather than me thinking, that channels
fit such "niche" uses better. As far as I can tell, Guix tries to make
system services as secure as possible and having a service with glaring
security flaws is not really a good fit in that scenario. See also the
recent removal of mongodb.

Toggle quote (2 lines)
> If upstream grumble picks up development then I can send a patch
> again for review.
Please do so.

Toggle quote (6 lines)
> That said, can you take the patch for go-github-com-gorilla-
> websocket?
>
> We will need go-github-com-gorilla-websocket for many other packages
> that we're working on. One of them being the hugo static site
> generator that we're working on with Ryan Prior.
While the package description itself LGTM, the patch inadvertently
version bumps some Go protobuf package. If it's okay with you and
Ryan, I think the better solution would be to send a clean patch along
with hugo or perhaps separately.

Toggle quote (6 lines)
> Relatedly, we're planning on packaging wahay (https://wahay.org/).
>
> wahay depends on the fork of grumble that I linked above.
>
> Should we package only the fork of grumble in that case and not
> upstream grumble?
Again, since wahay has no public release and LibreMiami might want to
tail upstream, I think that this would be a better fit outside of Guix.
As for the differences in their versions of grumble, I honestly don't
know what to do. Guix usually tries not to vendor packages and this
might mean using upstream grumble for wahay, but the grumble fork might
also implement features, that are necessary for wahay.

This is just my personal opinion, but right now Guix seems to have
about 70 "no release" comments, some of which are actually "no release
since". I don't think there's a reason to bump this number unless the
developer has a good reason not to assign version numbers (other than
"it's not ready yet", which is a perfect reason not to assign version
numbers, but also a perfect reason to refrain from packaging it), which
does not seem to hold here.

Regards,
Leo
J
4164d47d2927aa352d2c7c9c15e9bda4@dismail.de
Toggle quote (6 lines)
> It is not so much me insisting rather than me thinking, that channels
> fit such "niche" uses better. As far as I can tell, Guix tries to make
> system services as secure as possible and having a service with glaring
> security flaws is not really a good fit in that scenario. See also the
> recent removal of mongodb.

I also agree that this will be a good use case for a guix channel. Thanks for the advice on that.

We'll move grumble and wahay (tbd) to our channel for community testing and experimentation.

Toggle quote (5 lines)
> While the package description itself LGTM, the patch inadvertently
> version bumps some Go protobuf package. If it's okay with you and
> Ryan, I think the better solution would be to send a clean patch along
> with hugo or perhaps separately.

I'll resend a patch for go-github-com-gorilla-websocket soon.

Hugo might be a while. It's a beast of a package:


It definitely doesn't resemble the one in nixpkgs :)


Thank you for taking the time to review our patches.

all the best,

jgart

April 18, 2021 2:32 PM, "Leo Prikler" <leo.prikler@student.tugraz.at> wrote:

Toggle quote (141 lines)
> Hi jgart,
>
> Am Sonntag, den 18.04.2021, 17:25 +0000 schrieb jgart:
>
>> Hi Leo,
>>
>> I know you mean this somewhat jokingly, but is there anything
>> (apart
>> maybe from the name of the binary), that would keep you from
>> reusing
>> murmur-service-type?
>>
>> See here:
>>
>> https://github.com/mumble-voip/grumble/issues/21
>> https://github.com/mumble-voip/grumble/pull/26
>>
>> There are more sources related to the grumble config that's currently
>> implemented that I can't locate at the moment.
>>
>> I remember reading that they didn't necessarily want to maintain
>> feature parity with the grumble config format.
>
> That's… disappointing.
>
>> 1. Is this package in its current state usable?
>>
>> I would say yes. We packaged grumble while talking over grumble. It
>> feels pretty solid.
>>
>> Grumble also has an active fork as a library and being used by wahay:
>> https://wahay.org
>>
>> It is currently 16 commits ahead of upstream:
>>
>> https://github.com/digitalautonomy/grumble
>
> This doesn't really look active to me either. It appears as though
> they diverged at some point and simultaneously came to a halt. Now
> wahay is still active, but that's a different beast.
>
>> 2. Is it still maintained upstream? It is a little stretch to say
>> Grumble is undergoing active development after a year of no
>> activity.
>>
>> It sounds like the project maintainers of the upstream grumble
>> project are very slow to review pull requests. It sounds like they
>> are too busy with other projects/work.
>>
>> See the complaint here by one of the contributors that chimed in when
>> I opened an issue:
>>
>> https://github.com/mumble-voip/grumble/issues/76
>
> I take that as a "Maybe, but actually no".
>
>> 3. https://github.com/mumble-voip/grumble#project-statuslists quite
>> a
>> few features that are lacking, but does it maybe contain features,
>> that
>> would make it worth packaging?
>>
>> See https://github.com/mumble-voip/grumble/issues/76
>>
>> "... Grumble has the distinguishing feature of native support for
>> Websockets (because I was a lot worse at C++ back then and so I
>> contributed a patch here instead), and Murmur will probably not have
>> that for the foreseeable future. You could of course just configure a
>> proxy in front of Murmur if you need this. A lot of the plans for
>> work we were making a few years ago pointed towards Grumble being
>> more focused on ease-of-use and these small workloads I talked about
>> above. It makes sense: the Murmur static binary has issues and so a
>> Grumble static (just how Go works) binary that you can download and
>> run, trivially configure and easily negotiate certs over LE
>> (unfortunately never happened due to LE issues, but it would be
>> viable now), accessible over the Web could fulfil a sort of
>> "batteries-included" user-friendly niche."
>
> W.r.t. ease-of-use I don't think it should be too difficult to get
> murmur + certbot working in Guix. All I can recall from the Debian
> (yeah, I know) server, that I currently run murmur on, is that you need
> to get your hook for restarting murmur right.
>
>> If the answer is "no" to any of the above, I'm not too sure whether
>> it
>> would be wise to have this in Guix upstream. If LibreMiami wanted
>> to
>> host grumble instances on Guix regardless, perhaps a channel might
>> be a
>> better fit?
>>
>> We can put this in a LibreMiami channel with a service for it if you
>> insist it not be included in upstream guix.
>
> It is not so much me insisting rather than me thinking, that channels
> fit such "niche" uses better. As far as I can tell, Guix tries to make
> system services as secure as possible and having a service with glaring
> security flaws is not really a good fit in that scenario. See also the
> recent removal of mongodb.
>
>> If upstream grumble picks up development then I can send a patch
>> again for review.
>
> Please do so.
>
>> That said, can you take the patch for go-github-com-gorilla-
>> websocket?
>>
>> We will need go-github-com-gorilla-websocket for many other packages
>> that we're working on. One of them being the hugo static site
>> generator that we're working on with Ryan Prior.
>
> While the package description itself LGTM, the patch inadvertently
> version bumps some Go protobuf package. If it's okay with you and
> Ryan, I think the better solution would be to send a clean patch along
> with hugo or perhaps separately.
>
>> Relatedly, we're planning on packaging wahay (https://wahay.org).
>>
>> wahay depends on the fork of grumble that I linked above.
>>
>> Should we package only the fork of grumble in that case and not
>> upstream grumble?
>
> Again, since wahay has no public release and LibreMiami might want to
> tail upstream, I think that this would be a better fit outside of Guix.
> As for the differences in their versions of grumble, I honestly don't
> know what to do. Guix usually tries not to vendor packages and this
> might mean using upstream grumble for wahay, but the grumble fork might
> also implement features, that are necessary for wahay.
>
> This is just my personal opinion, but right now Guix seems to have
> about 70 "no release" comments, some of which are actually "no release
> since". I don't think there's a reason to bump this number unless the
> developer has a good reason not to assign version numbers (other than
> "it's not ready yet", which is a perfect reason not to assign version
> numbers, but also a perfect reason to refrain from packaging it), which
> does not seem to hold here.
>
> Regards,
> Leo
M
M
Maxim Cournoyer wrote 3 days ago
Re: bug#47104: [PATCH 1/2] gnu: Add grumble.
(name . jgart)(address . jgart@dismail.de)
87tu8c4jlw.fsf_-_@gmail.com
Hello,

"jgart" <jgart@dismail.de> writes:

Toggle quote (10 lines)
>> It is not so much me insisting rather than me thinking, that channels
>> fit such "niche" uses better. As far as I can tell, Guix tries to make
>> system services as secure as possible and having a service with glaring
>> security flaws is not really a good fit in that scenario. See also the
>> recent removal of mongodb.
>
> I also agree that this will be a good use case for a guix channel. Thanks for the advice on that.
>
> We'll move grumble and wahay (tbd) to our channel for community testing and experimentation.

OK.

Closing this tracker then.

Thanks,

Maxim
Closed
?