[PATCH v1] gnu: matterbridge: Unbundle most golang.org dependencies.

  • Done
  • quality assurance status badge
Details
2 participants
  • Denis 'GNUtoo' Carikli
  • Sharlatan Hellseher
Owner
unassigned
Submitted by
Denis 'GNUtoo' Carikli
Severity
normal
D
D
Denis 'GNUtoo' Carikli wrote on 27 Oct 19:12 +0100
(name . Denis 'GNUtoo' Carikli)(address . GNUtoo@cyberdimension.org)
20241027181255.4680-1-GNUtoo@cyberdimension.org
The vendor/golang.org/x/net dependency was kept because removing it redults in
a compilation failure:
%exception #<&invoke-error program: "go" arguments: ("install" "-v" "-x"
"-ldflags=-s -w" "-trimpath" "github.com/42wim/matterbridge")
exit-status: 1 term-signal: #f stop-signal: #f>

* gnu/packages/messaging.scm (matterbridge) [source]:
Add snippet removing the unbundled dependencies.
[arguments]: Add new unbundled dependencies.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Change-Id: I67afeff8721833d34a54fd52684a4acbcbcaf179
---
gnu/packages/messaging.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index c482cd469e..86f6ff0e04 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -3302,6 +3302,19 @@ (define-public matterbridge
(url "https://github.com/42wim/matterbridge")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
+ (modules '((guix build utils)))
+ (snippet '(for-each delete-file-recursively
+ ;; TODO: unbundle the rest as well
+ '("vendor/golang.org/x/crypto"
+ "vendor/golang.org/x/image"
+ "vendor/golang.org/x/mod"
+ "vendor/golang.org/x/oauth2"
+ "vendor/golang.org/x/sys"
+ "vendor/golang.org/x/term"
+ "vendor/golang.org/x/text"
+ "vendor/golang.org/x/time"
+ "vendor/golang.org/x/tools")))
+
(sha256
(base32
"0939fiy7z53izznfhlr7c6vaskbmkbj3ncb09fzx5dmz9cjngy80"))))
@@ -3309,6 +3322,15 @@ (define-public matterbridge
(arguments
(list
#:import-path "github.com/42wim/matterbridge"))
+ (inputs (list go-golang-org-x-crypto
+ go-golang-org-x-image
+ go-golang-org-x-mod
+ go-golang-org-x-oauth2
+ go-golang-org-x-sys
+ go-golang-org-x-term
+ go-golang-org-x-text
+ go-golang-org-x-time
+ go-golang-org-x-tools))
(synopsis "Bridge together various messaging networks and protocols")
(description
"Relays messages between different channels from various
--
2.46.0
S
S
Sharlatan Hellseher wrote on 27 Oct 21:26 +0100
(address . 74049@debbugs.gnu.org)(name . Denis 'GNUtoo' Carikli)(address . GNUtoo@cyberdimension.org)
87iktduwbo.fsf@gmail.com
Hi,

Thanks for the initiation of unbundeling process for materbridge!

A general comments for Golang packages which is just final binary, you
may apply "#:install-source? #f" parameter which mean do not place
source of the project into store and just move produced binary.

Also for the final binary all build inputs may be placed to
"native-inputs" they will never be used elsewhere after the install
phase.

While you are keen to unbundle let's pick up as many as we can. You may
also add some other inputs which are available already:

- filippo.io/edwards25519
- go.uber.org/multierr
- gopkg.in/ini.v1
- gopkg.in/natefinch/lumberjack.v2
- gopkg.in/natefinch/lumberjack.v2
- gopkg.in/yaml.v2
- gopkg.in/yaml.v3
- google.golang.org/protobuf
- github.com/hashicorp ;; all of them are available
- github.com/golang/protobuf
- github.com/fatih/color
- github.com/google/uuid
- github.com/gorilla/websocket
- github.com/pkg/errors

Basically we targeting to have just the first level of dependentices in
"native-inputs" as seen in

Please take a look if removing them from vendor and adding them to
native-inputs still keeps the build green.

Thanks for your time.

--
Oleg
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEmEeB3micIcJkGAhndtcnv/Ys0rUFAmceodsACgkQdtcnv/Ys
0rWq+hAAySQPbH6Bg5Ua6ijazcJOVufuUqq3DTjjIxgMgNV/vUpVkU7ha6Jwsn8O
MpCX5I/RFUudY1JQO+NiPg/MkGictP7T2lhwD/LnFMt5qqsV0KpRoSrHuK0jLJYI
q9WA/i59AhRjn/LScAv5cZzXSE2RpIz7lpuaOSMwBibhedGBWPB9mnfYyMHIzqMV
dylE9yh/GU6sTZgCTQmqPYB6aVudiLkIigGudplISnilczcXQj8yDNirblFtKext
pF3/8LUG4OSQ+bsViqhNaXEMQdBjTKLzcKewZgnAE4BohQ02g2lrEmStNXohTtbt
chVO1KBlyPUj5+5kYjLTuOQl2onzIL/zBKJTjmoCFRLVbUGMC+YIFL/bffuEsl55
dUcCsQu7id7ecCRD8n+7Bxqv12Yey1ufY6NZrJZMMvQ73WiZ2ygqUNpUsKCWTYuc
u+58SGk7VPkfVX+nqcmN1tG3Izel+aGaK5CeVLgTUY2+xsbQG8FodHlrKSX0K011
CB82WBSIAiUCs37vXwUliPif/tcAbwzIw0nzbr1a0txeB+O0N5AVZ4iZSSSLiC3/
frUgdNzoGJW2bdOkHeEru8zA7CB2zErjyi5YxtWiHYFVEEJZkZv1g7h3BcplDbQv
hv3rh00U+/lgI7UE6jdwcqKKpFcIU4hjysfmMZIP3NBsSKfjp9I=
=Jc37
-----END PGP SIGNATURE-----

D
D
Denis 'GNUtoo' Carikli wrote on 28 Oct 14:00 +0100
(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)(address . 74049@debbugs.gnu.org)
20241028140001.1d996969@primarylaptop.localdomain
On Sun, 27 Oct 2024 20:26:03 +0000
Sharlatan Hellseher <sharlatanus@gmail.com> wrote:

Toggle quote (1 lines)
> Thanks for the initiation of unbundeling process for materbridge!
Thanks a lot for the review.

Toggle quote (3 lines)
> A general comments for Golang packages which is just final binary, you
> may apply "#:install-source? #f" parameter which mean do not place
> source of the project into store and just move produced binary.
Thanks, I'll do that in a newer patch.

Toggle quote (3 lines)
> Also for the final binary all build inputs may be placed to
> "native-inputs" they will never be used elsewhere after the install
> phase.
Right, I just copied a bit what was done in the example I followed, so
that might need to be fixed as well.

Using inputs didn't look right to me but it was done in this way so I
assumed that there was a good reason for it (I tried unbundling long
time ago and it didn't work at the time, but maybe I was just unlucky).

Toggle quote (2 lines)
> While you are keen to unbundle let's pick up as many as we can. You
> may also add some other inputs which are available already:
I was already unsure about the patch I sent. In the v2 should I do it
all at once in a single patch or should I split the work across multiple
patches?

The advantage of the former is that it becomes easier to bisect issues.

The downside is that if the granularity is too small, I fear that we'll
end up with hundreds of patches.

So I also think it's a good idea to agree on how to make these changes
before doing more and more patches. For instance you could validate one
patch (without necessarily pushing it) so I could use that as a
blueprint for the next ones and not have to redo all the work for so
many patches.

Here I picked something in between where I grouped the unbundling of
dependencies by selecting something they had in common, but I've no
idea if it's the right way to do it.

Also note that I ran the resulting binary, but without feeding it a
configuration. I'll do a more complete test later on as tests are quite
expensive: I need to install Guix on the production server, update it,
build the matterbridge package, and uninstall guix after that to reduce
the attack surface.

Toggle quote (14 lines)
> - filippo.io/edwards25519
> - go.uber.org/multierr
> - gopkg.in/ini.v1
> - gopkg.in/natefinch/lumberjack.v2
> - gopkg.in/natefinch/lumberjack.v2
> - gopkg.in/yaml.v2
> - gopkg.in/yaml.v3
> - google.golang.org/protobuf
> - github.com/hashicorp ;; all of them are available
> - github.com/golang/protobuf
> - github.com/fatih/color
> - github.com/google/uuid
> - github.com/gorilla/websocket
> - github.com/pkg/errors
Thanks, I found some of them like the protobuf one but I didn't add
them in my patch yet.

Toggle quote (3 lines)
> Basically we targeting to have just the first level of dependentices
> in "native-inputs" as seen in
> <https://github.com/42wim/matterbridge/blob/master/go.mod>.
OK, I didn't look at that yet, I just started looking at what was in
vendor/ with a script and made a patch with the group that is closer to
the language (golang).

Toggle quote (2 lines)
> Please take a look if removing them from vendor and adding them to
> native-inputs still keeps the build green.
Thanks for the additional list, I'll definitely do that.

Denis.
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEeC+d2+Nrp/PU3kkGX138wUF34mMFAmcfitEACgkQX138wUF3
4mODkw//eevg70/gkJxGnTZUBwasdGgEc5U1s8d2eSVOEL+uWM2SurQXLCcpxxIM
a143IVYVkX0MzSbdQuXcLxc5xzd2pNio/3uVOfZulLPX5BW0LielD+ktLkwPjNC4
E8G2HNFEWA9pHjsbpEr9OliFCq74EHDjF7sVrEZar5Q7QDs315pC66QGpkEc4wll
8ly4S1ws+nGu5OpAD9kHNezUlPt9m+qO5qEBBT0+KbfC249owPP8jUXJGxjGW/mp
yhbeZ0ecuuDeZLTQ6rfPPEN5Jj4OyUDcmeb9oWiD0awKRof5YzmXomb1Qdw+CRgO
iNjLw4QYT+oDb/cyFlkJtrXc2iEWvoDBqgIqdivHU4Pv6plQbUoGw4uCKKVu2a29
FaYO2LnRLpJzCyTZpglKQXIQc4au7IG8VYJLyoGXTmvfbn0Ni2cs4CQL8kgUjmaL
b4bLKHeV3RIFhry7zs4P0IcKyHnzCw1M3SKP1h5puzQJX0XwecYTQEK2pdpy6p3i
7zptp7dBtUXFz+kGLlZ3e2y2tsq8dNHH6LT0SMzuNvA5PZSyJYkzEN82UqieKa6Q
IRkWphyY8BQpcFemXyp1/uueO5LFvX6GCsp85hT1s+LYBRL9gIeeD/K47WHWwe/C
hCeW/CcdCIWoDpYEgeG5FwcqsO7CsfuUyPndQG2vhTyWl+dUTKM=
=dxUf
-----END PGP SIGNATURE-----


S
S
Sharlatan Hellseher wrote on 28 Oct 22:56 +0100
[PATCH v1] gnu: matterbridge: Unbundle most golang.org dependencies.
(address . 74049@debbugs.gnu.org)(name . Denis 'GNUtoo' Carikli)(address . GNUtoo@cyberdimension.org)
87frofvqln.fsf@gmail.com
Hi Denis,

Toggle quote (4 lines)
> I was already unsure about the patch I sent. In the v2 should I do it
> all at once in a single patch or should I split the work across multiple
> patches?

I would suggest to think about the flow, let's say:

* Unbundle as many as possible first, and make it as a single patch
(which should pass build, test, lint etc.)

* Review the massive dependence tree and split it in some sort of
logical blocks/future series which should be self contain and build
individually or when series applied as a whole.

* Start unwind it slowly let's say by 8-12 packages per series, making
sure each series may be apply directly on current master and may be
built.

We may reduce amount of noise to bug-tracker and keep on track with
unbundle process without too much stress and time requiring to review
100++ series

To keep you in a peas of mind - you are not alone in that hard work and
your efforts will be enforced by others who updates/unbunle Golang
packages the more we have the less effort we need to apply to unbunle as
some of the package may be reused.

In short, keep eye on current master and go-team branches and do
rebate/pul often.

I'm waiting for my turne to merge go-team and will continue on the work
with unbundling kubo which will bring about 300 packages.

Some neat-pick give a try to use "guix import go --recursive
<module/name>" on go-team branch which has much better performance than
available in current master.

--
Thanks,
Oleg
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEmEeB3micIcJkGAhndtcnv/Ys0rUFAmcgCJQACgkQdtcnv/Ys
0rWD8RAAgCzHilrgp6IFo82qJviaKMeQrmEiXPt/LY8dLUJ7Du+s0uZ2+E+R6xOZ
GGoUSxC+kJkl4gCQu/grrrEmah/XPTRxyTBitvaNc46+Y4Pe2VN25MA9PAhjEjc+
EutDcNLNJ+pbjAgjGoNACNdiIhdzbU5t+6bi7Jz2MKn9dfU9dM95mLUAQ87Sw0XH
f5yQSSe3nJYKiBsTJEK1fCVbOBFLo0+mVp7Pq06RlyoQ4m0lTwUi+mRmz8ERw4Q3
fVazukVmIXvVHO/lOSkmNZKo4dCNrmCTlIT/UFbB5BcYbtQwWwV53Cn4AkuBeDZZ
47UDjxMJFQXqehXtnY+QRDISBwCpfcZ0uCs72orWPngnzm9jvC0x0G2TvWbtSRbN
gYM0EvAhq64SczRUOjqT4dvhfQU4DfYlamcpB4jNPex5rvFFF3/AAx8uEWyFCwJd
T9z3K5DzPN33B1uONqbkgQNz6d59HGgEsnE9+wAwye1P6DHYn9C0zQV6zA+ebuIF
pDCPWfUZz2L7wRozWpRpb52Aw3W4HpL3AN+RdmaTQtVvycbJ0tz5jccI8JlTfsVB
R+frJLWGT2rsxRKVxqgTBiHT/AqFJv2e/kTgYTJdG1qwMGnphMRiIonwFP3npVuc
TjESplVKHOMqZLC8TP7nYL4SDqj0xqiQ01pTsLMOOKwLHXKLKKA=
=27XJ
-----END PGP SIGNATURE-----

D
D
Denis 'GNUtoo' Carikli wrote on 5 Nov 23:27 +0100
[PATCH v2] gnu: matterbridge: Unbundle most golang.org dependencies.
(address . 74049@debbugs.gnu.org)(name . Denis 'GNUtoo' Carikli)(address . GNUtoo@cyberdimension.org)
20241105222737.12926-1-GNUtoo@cyberdimension.org
The vendor/golang.org/x/net and vendor/github.com/russross/blackfriday
dependencies were kept because removing any of them results in a compilation
failure:
%exception #<&invoke-error program: "go" arguments: ("install" "-v" "-x"
"-ldflags=-s -w" "-trimpath" "github.com/42wim/matterbridge")
exit-status: 1 term-signal: #f stop-signal: #f>

* gnu/packages/messaging.scm (matterbridge) [source]:
Add snippet removing the unbundled dependencies.
[arguments]: Add new unbundled dependencies.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Change-Id: I67afeff8721833d34a54fd52684a4acbcbcaf179
---
ChangeLog v1->v2:
* Updated copyrights in messaging.scm.
* Unbundled all I could with the existing Guix packages and the commit message
was updated accordingly.
* Added comments to group the dependencies together as there are lots of
dependencies.
---
gnu/packages/messaging.scm | 140 ++++++++++++++++++++++++++++++++++++-
1 file changed, 139 insertions(+), 1 deletion(-)

Toggle diff (176 lines)
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index c482cd469e..f2d7dd90fb 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -29,7 +29,7 @@
;;; Copyright © 2020, 2021 Robert Karszniewicz <avoidr@posteo.de>
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
-;;; Copyright © 2021, 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+;;; Copyright © 2021, 2023-2024 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; Copyright © 2021, 2024 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2021 jgart <jgart@dismail.de>
;;; Copyright © 2022 Aleksandr Vityazev <avityazev@posteo.org>
@@ -96,6 +96,9 @@ (define-module (gnu packages messaging)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-build)
+ #:use-module (gnu packages golang-check)
+ #:use-module (gnu packages golang-compression)
+ #:use-module (gnu packages golang-crypto)
#:use-module (gnu packages golang-web)
#:use-module (gnu packages golang-xyz)
#:use-module (gnu packages gperf)
@@ -3302,6 +3305,69 @@ (define-public matterbridge
(url "https://github.com/42wim/matterbridge")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
+ (modules '((guix build utils)))
+ (snippet '(for-each delete-file-recursively
+ ;; TODO: unbundle the rest as well
+ '(;; golang.org
+ "vendor/golang.org/x/crypto"
+ "vendor/golang.org/x/image"
+ "vendor/golang.org/x/mod"
+ "vendor/golang.org/x/oauth2"
+ "vendor/golang.org/x/sys"
+ "vendor/golang.org/x/term"
+ "vendor/golang.org/x/text"
+ "vendor/golang.org/x/time"
+ "vendor/golang.org/x/tools"
+ ;; google.golang.org
+ "vendor/google.golang.org/protobuf/"
+ ;; gopkg.in
+ "vendor/gopkg.in/ini.v1"
+ "vendor/gopkg.in/yaml.v2"
+ "vendor/gopkg.in/yaml.v3"
+ "vendor/gopkg.in/natefinch"
+ ;; filippo.io
+ "vendor/filippo.io"
+ ;; uber.org
+ "vendor/go.uber.org/atomic"
+ "vendor/go.uber.org/multierr"
+ "vendor/go.uber.org/zap"
+ ;; github.com
+ "vendor/github.com/blang"
+ "vendor/github.com/d5"
+ "vendor/github.com/davecgh"
+ "vendor/github.com/dustin"
+ "vendor/github.com/vmihailenco/tagparser"
+ "vendor/github.com/francoispqt"
+ "vendor/github.com/fsnotify"
+ "vendor/github.com/go-asn1-ber"
+ "vendor/github.com/golang"
+ "vendor/github.com/golang-jwt"
+ "vendor/github.com/google/uuid"
+ "vendor/github.com/gorilla/websocket"
+ "vendor/github.com/hashicorp"
+ "vendor/github.com/json-iterator"
+ "vendor/github.com/klauspost"
+ "vendor/github.com/jpillora"
+ "vendor/github.com/kballard"
+ "vendor/github.com/magiconair"
+ "vendor/github.com/mattn/go-colorable"
+ "vendor/github.com/mattn/go-isatty"
+ "vendor/github.com/mattn/go-runewidth"
+ "vendor/github.com/minio/sha256-simd"
+ "vendor/github.com/mitchellh"
+ "vendor/github.com/modern-go"
+ "vendor/github.com/opentracing"
+ "vendor/github.com/pelletier"
+ "vendor/github.com/pkg"
+ "vendor/github.com/rivo"
+ "vendor/github.com/sirupsen"
+ "vendor/github.com/skip2"
+ "vendor/github.com/spf13"
+ "vendor/github.com/stretchr"
+ "vendor/github.com/subosito"
+ "vendor/github.com/valyala/bytebufferpool"
+ "vendor/github.com/pmezard"
+ "vendor/github.com/mgutz/ansi")))
(sha256
(base32
"0939fiy7z53izznfhlr7c6vaskbmkbj3ncb09fzx5dmz9cjngy80"))))
@@ -3309,6 +3375,78 @@ (define-public matterbridge
(arguments
(list
#:import-path "github.com/42wim/matterbridge"))
+ (inputs (list
+ ;; golang.org
+ go-golang-org-x-crypto
+ go-golang-org-x-image
+ go-golang-org-x-mod
+ go-golang-org-x-oauth2
+ go-golang-org-x-sys
+ go-golang-org-x-term
+ go-golang-org-x-text
+ go-golang-org-x-time
+ go-golang-org-x-tools
+ ;; google.golang.org
+ go-google-golang-org-protobuf
+ ;; gopkg.in
+ go-gopkg-in-ini-v1
+ go-gopkg-in-yaml-v2
+ go-gopkg-in-yaml-v3
+ go-gopkg-in-natefinch-lumberjack.v2
+ ;; filippo.io
+ go-filippo-io-edwards25519
+ ;; uber.org
+ go-go-uber-org-atomic
+ go-go-uber-org-multierr
+ go-go-uber-org-zap
+ ;; github.com
+ go-github-com-blang-semver
+ go-github-com-d5-tengo-v2
+ go-github-com-davecgh-go-spew
+ go-github-com-dustin-go-humanize
+ go-github-com-vmihailenco-tagparser
+ go-github-com-francoispqt-gojay
+ go-github-com-fsnotify-fsnotify
+ go-github-com-go-asn1-ber-asn1-ber
+ go-github-com-golang-protobuf
+ go-github-com-golang-jwt-jwt
+ go-github-com-google-uuid
+ go-github-com-gorilla-websocket
+ go-github-com-hashicorp-hcl
+ go-github-com-hashicorp-errwrap
+ go-github-com-hashicorp-golang-lru
+ go-github-com-hashicorp-go-multierror
+ go-github-com-json-iterator-go
+ go-github-com-klauspost-cpuid-v2
+ go-github-com-klauspost-compress
+ go-github-com-jpillora-backoff
+ go-github-com-kballard-go-shellquote
+ go-github-com-magiconair-properties
+ go-github-com-mattn-go-colorable
+ go-github-com-mattn-go-isatty
+ go-github-com-mattn-go-runewidth
+ go-github-com-minio-sha256-simd
+ go-github-com-mitchellh-go-homedir
+ go-github-com-mitchellh-mapstructure
+ go-github-com-modern-go-reflect2
+ go-github-com-modern-go-concurrent
+ go-github-com-opentracing-opentracing-go
+ go-github-com-pelletier-go-toml
+ go-github-com-pelletier-go-toml-v2
+ go-github-com-pkg-errors
+ go-github-com-rivo-uniseg
+ go-github-com-sirupsen-logrus
+ go-github-com-skip2-go-qrcode
+ go-github-com-spf13-pflag
+ go-github-com-spf13-jwalterweatherman
+ go-github-com-spf13-cast
+ go-github-com-spf13-afero
+ go-github-com-spf13-viper
+ go-github-com-stretchr-testify
+ go-github-com-subosito-gotenv
+ go-github-com-valyala-bytebufferpool
+ go-github-com-pmezard-go-difflib
+ go-github-com-mgutz-ansi))
(synopsis "Bridge together various messaging networks and protocols")
(description
"Relays messages between different channels from various

base-commit: 78ffa637313f61a4fec06e5f1e41595f0e79b9eb
--
2.46.0
S
S
Sharlatan Hellseher wrote 5 days ago
[PATCH v1] gnu: matterbridge: Unbundle most golang.org dependencies.
(address . 74049-done@debbugs.gnu.org)
874j43juwj.fsf@gmail.com
Hi,

I've adjusted the patch a litle by adding embeded file search for
"golang.org/x/net" and fix build with "github.com/russross/blackfriday".

Pushed as cdf968ae86..1dd7a47b65 to master.

--
Oleg
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEmEeB3micIcJkGAhndtcnv/Ys0rUFAmc8fcwACgkQdtcnv/Ys
0rXXtRAAmIwdlZ3UZJF6JvR9OPsm+mW6KeklJrnpt+dZQWXgZCD3Ik7N5TFK5VmW
gP3II/IWfw8m7HG9B3aJXOfFYIBKqqzY7D68RKqjR4gaGXzxc6CoFKyUh4V6N8Fm
uWyckKwVAgEUQs9I9HzglKO0EeUYaf90K5aUFo+/vjKs1P/dT8Q3tict/2KTSj+/
L1Pb8L48fpYV0xNO9mlpkSKb+gudjzYfwrqYh4BPwq8xZZf8gIxW6/NaWTYNIE/U
3Br99eTMa8EU8mLUJWbMdUPEPKHG7rTZh+6l2T/sZhL8Bi/gpYM4GEf2vMKZYGiN
olRB1u721JRjTJpjo5+6r64PtPyl3/6K4nx4CFE8E/lyYSJF7yV9TKeJjXEnaHG/
BVfqJUx/grSPC06Ef5JtG6j9llK1FBvKYJkHxlOFiy7o8q61IIapmfd0m1lLfuWN
uf71tHfsgJZp+pW9DyimSyUNxCdPMMp4//YyluI9rnjQwUZ/cqbbEIuzo8T0Kk4G
o6i206v43dM/EhEyb8Ghuq1OE9GtNregBO5MJMqvVZA3T8mkrtZX/GzvRB4PBqVk
FuZFcITAueeJdtI503XuUxxjy8Aqb1Gbrc5uX7g0efoNuXGiQvEhveQI51mXuWPL
qq94HQIkfq+IYRSZKCeZWTjQJ0PGalqMcDcvut69kLiDGgZeMYo=
=WVtO
-----END PGP SIGNATURE-----

Closed
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 74049@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 74049
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch