PATCH: Update Yggdrasil to new protocol (important breaking changes)

DoneSubmitted by raingloom.
Details
4 participants
  • Ludovic Courtès
  • pukkamustard
  • raingloom
  • Ricardo Wurmus
Owner
unassigned
Severity
normal
R
R
raingloom wrote on 2 Nov 2021 07:59
(name . Guix Patches)(address . guix-patches@gnu.org)
20211102065917.082a2e55@riseup.net
This is way overdue.

Credit for the packaging work:

It did need some more work though. The Go importer leaves a few things
to be desired, but that's for another thread.

Anyways, I tested it and it works. System service could be restarted
after a reconfigure without any issues.

Please apply this soon, because nodes running the outdated versions
can't connect to ones running this new version, due to breaking
protocol changes.
From 8150cb42022a91764223f52b991c512ba310ffaf Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 2 Nov 2021 06:36:37 +0000
Subject: [PATCH 1/7] gnu: Add go-github-com-vividcortex-ewma.

* gnu/packages/golang.scm (go-github-com-vividcortex-ewma): New variable.
---
gnu/packages/golang.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index cc2a4ebc16..84e7387408 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -8839,3 +8839,24 @@ (define-public go-gopkg-in-djherbis-times-v1
     (description
      "Provides a platform-independent way to get atime, mtime, ctime and btime for files.")
     (license license:expat)))
+
+(define-public go-github-com-vividcortex-ewma
+  (package
+    (name "go-github-com-vividcortex-ewma")
+    (version "1.2.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/VividCortex/ewma")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32 "0whx516l9nm4n41spagb605ry7kfnz1qha96mcshnfjlahhnnylq"))))
+    (build-system go-build-system)
+    (arguments '(#:import-path "github.com/VividCortex/ewma"))
+    (home-page "https://github.com/VividCortex/ewma")
+    (synopsis "EWMA")
+    (description
+      "Package ewma implements exponentially weighted moving averages.")
+    (license license:expat)))
-- 
2.33.1
From 7e220e450fa368a44584047b586800ce212efd8e Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 2 Nov 2021 06:37:11 +0000
Subject: [PATCH 2/7] gnu: Add go-github-com-rivo-uniseg.

* gnu/packages/golang.scm (go-github-com-rivo-uniseg): New variable.
---
gnu/packages/golang.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 84e7387408..90ba03b0b9 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -8860,3 +8860,26 @@ (define-public go-github-com-vividcortex-ewma
     (description
       "Package ewma implements exponentially weighted moving averages.")
     (license license:expat)))
+
+(define-public go-github-com-rivo-uniseg
+  (package
+    (name "go-github-com-rivo-uniseg")
+    (version "0.2.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/rivo/uniseg")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32 "0j7h22vfmjj562vr8gpsyrkrwp1pq9ayh5fylv24skxb467g9f0q"))))
+    (build-system go-build-system)
+    (arguments '(#:import-path "github.com/rivo/uniseg"))
+    (home-page "https://github.com/rivo/uniseg")
+    (synopsis "Unicode Text Segmentation for Go")
+    (description
+      "Package uniseg implements Unicode Text Segmentation according to Unicode
+Standard Annex #29 (@url{http://unicode.org/reports/tr29/,http://unicode.org/reports/tr29/}).
+")
+    (license license:expat)))
-- 
2.33.1
From 819ee93b9775dc3cd50b8289d10ae6e16233a13e Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 2 Nov 2021 06:37:17 +0000
Subject: [PATCH 3/7] gnu: Add go-github-com-mattn-go-runewidth.

* gnu/packages/golang.scm (go-github-com-mattn-go-runewidth): New variable.
---
gnu/packages/golang.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 90ba03b0b9..34ca28998b 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -8883,3 +8883,26 @@ (define-public go-github-com-rivo-uniseg
 Standard Annex #29 (@url{http://unicode.org/reports/tr29/,http://unicode.org/reports/tr29/}).
 ")
     (license license:expat)))
+
+(define-public go-github-com-mattn-go-runewidth
+  (package
+    (name "go-github-com-mattn-go-runewidth")
+    (version "0.0.13")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/mattn/go-runewidth")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32 "1yir0f3wc5z5hnkwhvx5qb6nmpfb05zp2gvfjvna63s8kmla1rrn"))))
+    (build-system go-build-system)
+    (arguments '(#:import-path "github.com/mattn/go-runewidth"))
+    (propagated-inputs
+      `(("go-github-com-rivo-uniseg" ,go-github-com-rivo-uniseg)))
+    (home-page "https://github.com/mattn/go-runewidth")
+    (synopsis "go-runewidth")
+    (description
+      "This package provides functions to get fixed width of the character or string.")
+    (license license:expat)))
-- 
2.33.1
From b5e0bab1e54c472a3c8cbfd0c78023f022ec9ceb Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 2 Nov 2021 06:45:47 +0000
Subject: [PATCH 4/7] gnu: go-github-com-cheggaaa-pb: Update to 3.0.8.

* gnu/packages/golang.scm (go-github-com-cheggaaa-pb): Update to 3.0.8.
---
gnu/packages/golang.scm | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)

Toggle diff (45 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 34ca28998b..93085f6477 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -7948,7 +7948,7 @@ (define-public go-github-com-arceliar-phony
 (define-public go-github-com-cheggaaa-pb
   (package
     (name "go-github-com-cheggaaa-pb")
-    (version "3.0.4")
+    (version "3.0.8")
     (source
       (origin
        (method git-fetch)
@@ -7957,18 +7957,20 @@ (define-public go-github-com-cheggaaa-pb
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0xhsv9yf3fz918ay6w0d87jnb3hk9vxvi16jk172kqq26x7jixd0"))))
+        (base32 "0d701s2niy39r650d1phjw19h4l27b1yfc2ih6s31f56b3zzqspx"))))
     (build-system go-build-system)
-    (arguments
-     '(#:import-path "github.com/cheggaaa/pb/"))
+    (arguments '(#:import-path "github.com/cheggaaa/pb/v3"
+                 ;; XXX: it does have tests but I'm not sure how to run them.
+                 ;; go-build-system is looking in the wrong directory.
+                 #:tests? #f))
     (propagated-inputs
-     `(("go-github-com-fatih-color" ,go-github-com-fatih-color)
+     `(("go-golang-org-x-sys" ,go-golang-org-x-sys)
+       ("go-github-com-rivo-uniseg" ,go-github-com-rivo-uniseg)
+       ("go-github-com-mattn-go-runewidth" ,go-github-com-mattn-go-runewidth)
+       ("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
        ("go-github-com-mattn-go-colorable" ,go-github-com-mattn-go-colorable)
-       ("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
-       ("go-golang-org-x-sys" ,go-golang-org-x-sys)))
-    (native-inputs
-     `(("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)))
+       ("go-github-com-fatih-color" ,go-github-com-fatih-color)
+       ("go-github-com-vividcortex-ewma" ,go-github-com-vividcortex-ewma)))
     (home-page "https://github.com/cheggaaa/pb/")
     (synopsis "Console progress bar for Go")
     (description "This package is a Go library that draws progress bars on
-- 
2.33.1
From b3cc4ba59737a0729f4d962d614ea256771998c2 Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 2 Nov 2021 06:46:57 +0000
Subject: [PATCH 5/7] gnu: Rename go-github-com-cheggaaa-pb to
go-github-com-cheggaaa-pb-v3.

* gnu/packages/golang.scm:
(go-github-com-cheggaaa-pb): Rename variable.
(go-github-com-cheggaaa-pb-v3): New variable.
---
gnu/packages/golang.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (18 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 93085f6477..2ce5dc0d4d 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -7945,9 +7945,9 @@ (define-public go-github-com-arceliar-phony
 inspired by the causal messaging system in the Pony programming language.")
       (license license:expat))))
 
-(define-public go-github-com-cheggaaa-pb
+(define-public go-github-com-cheggaaa-pb-v3
   (package
-    (name "go-github-com-cheggaaa-pb")
+    (name "go-github-com-cheggaaa-pb-v3")
     (version "3.0.8")
     (source
       (origin
-- 
2.33.1
From 84fe7cb50744c103ad7b922ab69f7c5232ffdad3 Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 2 Nov 2021 06:50:36 +0000
Subject: [PATCH 6/7] gnu: Add go-github-com-arceliar-ironwood.

* gnu/packages/golang.scm (go-github-com-arceliar-ironwood): New variable.
---
gnu/packages/golang.scm | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)

Toggle diff (44 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 2ce5dc0d4d..c9f6de878e 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -8908,3 +8908,37 @@ (define-public go-github-com-mattn-go-runewidth
     (description
       "This package provides functions to get fixed width of the character or string.")
     (license license:expat)))
+
+(define-public go-github-com-arceliar-ironwood
+  (package
+    (name "go-github-com-arceliar-ironwood")
+    (version "0.0.0-20210912013146-c2bc55bb349c")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/Arceliar/ironwood")
+               (commit (go-version->git-ref version))))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32
+            "1dfkqnkfxwlwcsk8g9r1pv84lfzgn8r1vam13zlmk81cgan2r6fx"))))
+    (build-system go-build-system)
+    (arguments
+      '(#:import-path "github.com/Arceliar/ironwood"
+        #:tests? #f
+        #:phases
+        (modify-phases %standard-phases
+          ;; Source-only package
+          (delete 'build))))
+    (propagated-inputs
+      `(("go-golang-org-x-crypto"
+         ,go-golang-org-x-crypto)
+        ("go-github-com-arceliar-phony"
+         ,go-github-com-arceliar-phony)))
+    (home-page
+      "https://github.com/Arceliar/ironwood")
+    (synopsis "Ironwood")
+    (description
+      "Ironwood is a routing library with a @code{net.PacketConn}-compatible interface using @code{ed25519.PublicKey}s as addresses.  Basically, you use it when you want to communicate with some other nodes in a network, but you can't guarantee that you can directly connect to every node in that network.  It was written to test improvements to / replace the routing logic in @url{https://github.com/yggdrasil-network/yggdrasil-go,Yggdrasil}, but it may be useful for other network applications.")
+    (license license:mpl2.0)))
-- 
2.33.1
From 73c240e5bb2310a1c66978a0f1b08fc5450b7b3c Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 2 Nov 2021 06:51:10 +0000
Subject: [PATCH 7/7] gnu: yggdrasil: Update to 0.4.0.

* gnu/packages/patches/yggdrasil-extra-config.patch: Update patch.
* gnu/packages/networking.scm (yggdrasil): Update to 0.4.0.
[propagated-inputs]: Remove go-github-com-cheggaaa-pb; add go-golang-org-x-sys,
go-github-com-mattn-go-runewidth, go-github-com-mattn-go-isatty,
go-github-com-fatih-color, go-github-com-cheggaaa-pb-v3,
go-github-com-vividcortex-ewma, and go-github-com-arceliar-ironwood.
---
gnu/packages/networking.scm | 55 +++++++++++++------
.../patches/yggdrasil-extra-config.patch | 53 ++++++++++--------
2 files changed, 69 insertions(+), 39 deletions(-)

Toggle diff (215 lines)
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 8ac3b0095e..d1a437e177 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -4086,7 +4086,7 @@ (define-public nbd
 (define-public yggdrasil
   (package
     (name "yggdrasil")
-    (version "0.3.16")
+    (version "0.4.0")
     (source
      (origin
        (method git-fetch)
@@ -4097,7 +4097,7 @@ (define-public yggdrasil
          (recursive? #t)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0vyd7a333hwn6j1lv1g9sicw74a4qk982bsi3cfdhjlv6hsjwmil"))
+        (base32 "0mmqw6w5a6ph49xd1yzb7i70xg466k9pi5sdvplhb66x68wipixh"))
        (patches (search-patches "yggdrasil-extra-config.patch"))))
     (build-system go-build-system)
     (arguments
@@ -4114,7 +4114,7 @@ (define-public yggdrasil
                           "go" "build" "-v" "-ldflags=-s -w"
                           (string-append
                            "github.com/yggdrasil-network/yggdrasil-go/cmd/" c)))
-                       (list "yggdrasil" "yggdrasilctl"))
+                       (list "yggdrasil" "yggdrasilctl" "genkeys"))
                       #t))
                   (replace 'install
                     (lambda* (#:key outputs #:allow-other-keys)
@@ -4125,7 +4125,7 @@ (define-public yggdrasil
                         (for-each
                          (lambda (f)
                            (install-file f bin))
-                         (list "yggdrasil" "yggdrasilctl"))
+                         (list "yggdrasil" "yggdrasilctl" "genkeys"))
                         (mkdir-p doc)
                         (copy-recursively
                          (string-append
@@ -4135,20 +4135,43 @@ (define-public yggdrasil
                       #t)))))
     ;; https://github.com/kardianos/minwinsvc is windows only
     (propagated-inputs
-     `(("go-github-com-arceliar-phony" ,go-github-com-arceliar-phony)
-       ("go-github-com-cheggaaa-pb" ,go-github-com-cheggaaa-pb)
-       ("go-github-com-gologme-log" ,go-github-com-gologme-log)
-       ("go-github-com-hashicorp-go-syslog" ,go-github-com-hashicorp-go-syslog)
-       ("go-github-com-hjson-hjson-go" ,go-github-com-hjson-hjson-go)
-       ("go-github-com-kardianos-minwinsvc" ,go-github-com-kardianos-minwinsvc)
+     `(;;("go-golang-zx2c4-com-wireguard-windows"
+       ;; ,go-golang-zx2c4-com-wireguard-windows)
+       ("go-golang-zx2c4-com-wireguard"
+        ,go-golang-zx2c4-com-wireguard)
+       ("go-golang-org-x-text" ,go-golang-org-x-text)
+       ("go-golang-org-x-sys" ,go-golang-org-x-sys)
+       ("go-golang-org-x-net" ,go-golang-org-x-net)
+       ("go-golang-org-x-crypto"
+        ,go-golang-org-x-crypto)
+       ("go-netns"
+        ,go-netns)
+       ("go-netlink"
+        ,go-netlink)
        ("go-github-com-mitchellh-mapstructure"
         ,go-github-com-mitchellh-mapstructure)
-       ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
-       ("go-golang-org-x-net" ,go-golang-org-x-net)
-       ("go-golang-org-x-text" ,go-golang-org-x-text)
-       ("go-golang-zx2c4-com-wireguard" ,go-golang-zx2c4-com-wireguard)
-       ("go-netlink" ,go-netlink)
-       ("go-netns" ,go-netns)))
+       ("go-github-com-mattn-go-runewidth"
+        ,go-github-com-mattn-go-runewidth)
+       ("go-github-com-mattn-go-isatty"
+        ,go-github-com-mattn-go-isatty)
+       ("go-github-com-kardianos-minwinsvc"
+        ,go-github-com-kardianos-minwinsvc)
+       ("go-github-com-hjson-hjson-go"
+        ,go-github-com-hjson-hjson-go)
+       ("go-github-com-hashicorp-go-syslog"
+        ,go-github-com-hashicorp-go-syslog)
+       ("go-github-com-gologme-log"
+        ,go-github-com-gologme-log)
+       ("go-github-com-fatih-color"
+        ,go-github-com-fatih-color)
+       ("go-github-com-cheggaaa-pb-v3"
+        ,go-github-com-cheggaaa-pb-v3)
+       ("go-github-com-vividcortex-ewma"
+        ,go-github-com-vividcortex-ewma)
+       ("go-github-com-arceliar-phony"
+        ,go-github-com-arceliar-phony)
+       ("go-github-com-arceliar-ironwood"
+        ,go-github-com-arceliar-ironwood)))
     (home-page "https://yggdrasil-network.github.io/blog.html")
     (synopsis
      "Experiment in scalable routing as an encrypted IPv6 overlay network")
diff --git a/gnu/packages/patches/yggdrasil-extra-config.patch b/gnu/packages/patches/yggdrasil-extra-config.patch
index c21ca29a84..46fd3f15fc 100644
--- a/gnu/packages/patches/yggdrasil-extra-config.patch
+++ b/gnu/packages/patches/yggdrasil-extra-config.patch
@@ -3,25 +3,25 @@ index 813e950..08d35cc 100644
 --- a/cmd/yggdrasil/main.go
 +++ b/cmd/yggdrasil/main.go
 @@ -40,11 +40,12 @@ type node struct {
- 	admin     module.Module // admin.AdminSocket
+ 	admin     *admin.AdminSocket
  }
  
--func readConfig(useconf *bool, useconffile *string, normaliseconf *bool) *config.NodeConfig {
-+func readConfig(useconf *bool, useconffile *string, extraconffile *string, normaliseconf *bool) *config.NodeConfig {
+-func readConfig(log *log.Logger, useconf bool, useconffile string, normaliseconf bool) *config.NodeConfig {
++func readConfig(log *log.Logger, useconf bool, useconffile string, extraconffile string, normaliseconf bool) *config.NodeConfig {
  	// Use a configuration file. If -useconf, the configuration will be read
  	// from stdin. If -useconffile, the configuration will be read from the
  	// filesystem.
  	var conf []byte
 +	var extraconf []byte
  	var err error
- 	if *useconffile != "" {
+ 	if useconffile != "" {
  		// Read the file from the filesystem
 @@ -56,6 +57,21 @@ func readConfig(useconf *bool, useconffile *string, normaliseconf *bool) *config
  	if err != nil {
  		panic(err)
  	}
-+	if *extraconffile != "" {
-+		extraconf, err = ioutil.ReadFile(*extraconffile);
++	if extraconffile != "" {
++		extraconf, err = ioutil.ReadFile(extraconffile);
 +	}
 +	if err != nil {
 +		panic(err)
@@ -30,7 +30,7 @@ index 813e950..08d35cc 100644
 +	// then parse the configuration we loaded above on top of it. The effect
 +	// of this is that any configuration item that is missing from the provided
 +	// configuration will use a sane default.
-+	cfg := config.GenerateConfig()
++	cfg := defaults.GenerateConfig()
 +	var confs [2][]byte
 +	confs[0]=conf
 +	confs[1]=extraconf
@@ -38,7 +38,7 @@ index 813e950..08d35cc 100644
  	// If there's a byte order mark - which Windows 10 is now incredibly fond of
  	// throwing everywhere when it's converting things into UTF-16 for the hell
  	// of it - remove it and decode back down into UTF-8. This is necessary
-@@ -69,11 +85,6 @@ func readConfig(useconf *bool, useconffile *string, normaliseconf *bool) *config
+@@ -69,11 +85,6 @@ func readConfig(log *log.Logger, useconf bool, useconffile string, normaliseconf bool) *config
  			panic(err)
  		}
  	}
@@ -46,11 +46,11 @@ index 813e950..08d35cc 100644
 -	// then parse the configuration we loaded above on top of it. The effect
 -	// of this is that any configuration item that is missing from the provided
 -	// configuration will use a sane default.
--	cfg := config.GenerateConfig()
+-	cfg := defaults.GenerateConfig()
  	var dat map[string]interface{}
  	if err := hjson.Unmarshal(conf, &dat); err != nil {
  		panic(err)
-@@ -112,6 +123,7 @@ func readConfig(useconf *bool, useconffile *string, normaliseconf *bool) *config
+@@ -112,6 +123,7 @@ func readConfig(log *log.Logger, useconf *bool, useconffile *string, normaliseconf *bool) *config
  	if err = mapstructure.Decode(dat, &cfg); err != nil {
  		panic(err)
  	}
@@ -58,6 +58,14 @@ index 813e950..08d35cc 100644
  	return cfg
  }
  
+@@ -185,6 +197,7 @@ func main() {
+ 	genconf       bool
+ 	useconf       bool
+ 	useconffile   string
++	extraconffile string
+ 	normaliseconf bool
+ 	confjson      bool
+ 	autoconf      bool
 @@ -164,6 +176,7 @@ func main() {
  	genconf := flag.Bool("genconf", false, "print a new config to stdout")
  	useconf := flag.Bool("useconf", false, "read HJSON/JSON config from stdin")
@@ -66,21 +74,20 @@ index 813e950..08d35cc 100644
  	normaliseconf := flag.Bool("normaliseconf", false, "use in combination with either -useconf or -useconffile, outputs your configuration normalised")
  	confjson := flag.Bool("json", false, "print configuration from -genconf or -normaliseconf as JSON instead of HJSON")
  	autoconf := flag.Bool("autoconf", false, "automatic mode (dynamic IP, peer with IPv6 neighbors)")
+@@ -212,6 +225,7 @@ func main() {
+ 		genconf:       *genconf,
+ 		useconf:       *useconf,
+ 		useconffile:   *useconffile,
++		extraconffile: *extraconffile,
+ 		normaliseconf: *normaliseconf,
+ 		confjson:      *confjson,
+ 		autoconf:      *autoconf,
 @@ -187,7 +200,7 @@ func main() {
- 		cfg = config.GenerateConfig()
- 	case *useconffile != "" || *useconf:
+ 		cfg = defaults.GenerateConfig()
+ 	case args.useconffile != "" || args.useconf:
  		// Read the configuration from either stdin or from the filesystem
--		cfg = readConfig(useconf, useconffile, normaliseconf)
-+		cfg = readConfig(useconf, useconffile, extraconffile, normaliseconf)
+-		cfg = readConfig(logger, args.useconf, args.useconffile, args.normaliseconf)
++		cfg = readConfig(logger, args.useconf, args.useconffile, args.extraconffile, args.normaliseconf)
  		// If the -normaliseconf option was specified then remarshal the above
  		// configuration and print it back to stdout. This lets the user update
  		// their configuration file with newly mapped names (like above) or to
-@@ -332,7 +345,7 @@ func main() {
- 			goto exit
- 		case _ = <-r:
- 			if *useconffile != "" {
--				cfg = readConfig(useconf, useconffile, normaliseconf)
-+				cfg = readConfig(useconf, useconffile, extraconffile, normaliseconf)
- 				logger.Infoln("Reloading configuration from", *useconffile)
- 				n.core.UpdateConfig(cfg)
- 				n.tuntap.UpdateConfig(cfg)
-- 
2.33.1
P
P
pukkamustard wrote on 15 Nov 2021 15:10
(name . raingloom)(address . raingloom@riseup.net)
86wnl9lcj3.fsf@posteo.net
Thanks for this!

Some minor changes may be needed to make the linter happy:

raingloom <raingloom@riseup.net> writes:

[..]

Toggle quote (2 lines)
> [3. text/x-patch; 0002-gnu-Add-go-github-com-rivo-uniseg.patch]...

Linter complains that a line is too long:

gnu/packages/golang.scm:8885:0: go-github-com-rivo-uniseg@0.2.0: line 8885 is way too long (93 characters)

Toggle quote (3 lines)
>
> [4. text/x-patch; 0003-gnu-Add-go-github-com-mattn-go-runewidth.patch]...

Linter complains about the synopsis. Maybe: "Go functions for getting
fixed width of characters or strings"?

Does seem like a bit of a duplication of the description...

Toggle quote (6 lines)
> [5. text/x-patch; 0004-gnu-go-github-com-cheggaaa-pb-Update-to-3.0.8.patch]...
>
> [6. text/x-patch; 0005-gnu-Rename-go-github-com-cheggaaa-pb-to-go-github-co.patch]...
>
> [7. text/x-patch; 0006-gnu-Add-go-github-com-arceliar-ironwood.patch]...

Lines in descriptions are too long and should be wrapped.

A synopsis is required. Maybe: "Ironwood is a Go network routing library
using cryptographic keys as addresses"?
R
R
raingloom wrote on 22 Nov 2021 22:13
(name . pukkamustard)(address . pukkamustard@posteo.net)
20211122221308.685c9f11@riseup.net
On Mon, 15 Nov 2021 14:10:46 +0000
pukkamustard <pukkamustard@posteo.net> wrote:

Toggle quote (38 lines)
> Thanks for this!
>
> Some minor changes may be needed to make the linter happy:
>
> raingloom <raingloom@riseup.net> writes:
>
> [..]
>
> > [3. text/x-patch; 0002-gnu-Add-go-github-com-rivo-uniseg.patch]...
>
> Linter complains that a line is too long:
>
> gnu/packages/golang.scm:8885:0: go-github-com-rivo-uniseg@0.2.0: line
> 8885 is way too long (93 characters)
>
> >
> > [4. text/x-patch;
> > 0003-gnu-Add-go-github-com-mattn-go-runewidth.patch]...
>
> Linter complains about the synopsis. Maybe: "Go functions for getting
> fixed width of characters or strings"?
>
> Does seem like a bit of a duplication of the description...
>
> > [5. text/x-patch;
> > 0004-gnu-go-github-com-cheggaaa-pb-Update-to-3.0.8.patch]...
> >
> > [6. text/x-patch;
> > 0005-gnu-Rename-go-github-com-cheggaaa-pb-to-go-github-co.patch]...
> >
> > [7. text/x-patch;
> > 0006-gnu-Add-go-github-com-arceliar-ironwood.patch]...
>
> Lines in descriptions are too long and should be wrapped.
>
> A synopsis is required. Maybe: "Ironwood is a Go network routing
> library using cryptographic keys as addresses"?

Heck, I think I meant to run the linter but it was getting late and I
just wanted to be done with the patch. Well, here is an updated patch
list.
From 776202eb2d0610e51f5168d108ce80a4096b10d4 Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Wed, 3 Nov 2021 21:40:37 +0100
Subject: [PATCH 8/8] gnu: yggdrasil: Update to 0.4.1.

* gnu/packages/networking.scm (yggdrasil): Update to 0.4.1.
* gnu/packages/patches/yggdrasil-extra-config.patch: Update for new version.
---
gnu/packages/networking.scm | 4 +-
.../patches/yggdrasil-extra-config.patch | 47 ++++++++++++-------
2 files changed, 33 insertions(+), 18 deletions(-)

Toggle diff (128 lines)
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 62bb3ef07e..22d38fb4fd 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -4088,7 +4088,7 @@ (define-public nbd
 (define-public yggdrasil
   (package
     (name "yggdrasil")
-    (version "0.4.0")
+    (version "0.4.1")
     (source
      (origin
        (method git-fetch)
@@ -4099,7 +4099,7 @@ (define-public yggdrasil
          (recursive? #t)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0mmqw6w5a6ph49xd1yzb7i70xg466k9pi5sdvplhb66x68wipixh"))
+        (base32 "1ajhn0z58ap9jldip7mqj78drmgg4645zfsxsy004cfkm60fasnx"))
        (patches (search-patches "yggdrasil-extra-config.patch"))))
     (build-system go-build-system)
     (arguments
diff --git a/gnu/packages/patches/yggdrasil-extra-config.patch b/gnu/packages/patches/yggdrasil-extra-config.patch
index 46fd3f15fc..bd4bea7b9f 100644
--- a/gnu/packages/patches/yggdrasil-extra-config.patch
+++ b/gnu/packages/patches/yggdrasil-extra-config.patch
@@ -1,8 +1,20 @@
+From 779f980451d20079b34812f7006f2d7230738ad0 Mon Sep 17 00:00:00 2001
+From: csepp <raingloom@riseup.net>
+Date: Wed, 3 Nov 2021 21:14:54 +0100
+Subject: [PATCH] add extra config file option to yggdrasil command
+
+This is useful in Guix and Nix, because one config file can come
+from the world-readable store and another can be placed directly
+into /etc with much stricter permissions.
+---
+ cmd/yggdrasil/main.go | 29 ++++++++++++++++++++++-------
+ 1 file changed, 22 insertions(+), 7 deletions(-)
+
 diff --git a/cmd/yggdrasil/main.go b/cmd/yggdrasil/main.go
-index 813e950..08d35cc 100644
+index 58b8230..b9df98a 100644
 --- a/cmd/yggdrasil/main.go
 +++ b/cmd/yggdrasil/main.go
-@@ -40,11 +40,12 @@ type node struct {
+@@ -43,11 +43,12 @@ type node struct {
  	admin     *admin.AdminSocket
  }
  
@@ -16,7 +28,7 @@ index 813e950..08d35cc 100644
  	var err error
  	if useconffile != "" {
  		// Read the file from the filesystem
-@@ -56,6 +57,21 @@ func readConfig(useconf *bool, useconffile *string, normaliseconf *bool) *config
+@@ -59,6 +60,21 @@ func readConfig(log *log.Logger, useconf bool, useconffile string, normaliseconf
  	if err != nil {
  		panic(err)
  	}
@@ -38,7 +50,7 @@ index 813e950..08d35cc 100644
  	// If there's a byte order mark - which Windows 10 is now incredibly fond of
  	// throwing everywhere when it's converting things into UTF-16 for the hell
  	// of it - remove it and decode back down into UTF-8. This is necessary
-@@ -69,11 +85,6 @@ func readConfig(log *log.Logger, useconf bool, useconffile string, normaliseconf bool) *config
+@@ -72,11 +88,6 @@ func readConfig(log *log.Logger, useconf bool, useconffile string, normaliseconf
  			panic(err)
  		}
  	}
@@ -50,7 +62,7 @@ index 813e950..08d35cc 100644
  	var dat map[string]interface{}
  	if err := hjson.Unmarshal(conf, &dat); err != nil {
  		panic(err)
-@@ -112,6 +123,7 @@ func readConfig(log *log.Logger, useconf *bool, useconffile *string, normaliseconf *bool) *config
+@@ -136,6 +147,7 @@ func readConfig(log *log.Logger, useconf bool, useconffile string, normaliseconf
  	if err = mapstructure.Decode(dat, &cfg); err != nil {
  		panic(err)
  	}
@@ -58,15 +70,15 @@ index 813e950..08d35cc 100644
  	return cfg
  }
  
-@@ -185,6 +197,7 @@ func main() {
- 	genconf       bool
- 	useconf       bool
+@@ -192,6 +204,7 @@ type yggArgs struct {
+ 	getaddr       bool
+ 	getsnet       bool
  	useconffile   string
-+	extraconffile string
- 	normaliseconf bool
- 	confjson      bool
- 	autoconf      bool
-@@ -164,6 +176,7 @@ func main() {
++        extraconffile string
+ 	logto         string
+ 	loglevel      string
+ }
+@@ -200,6 +213,7 @@ func getArgs() yggArgs {
  	genconf := flag.Bool("genconf", false, "print a new config to stdout")
  	useconf := flag.Bool("useconf", false, "read HJSON/JSON config from stdin")
  	useconffile := flag.String("useconffile", "", "read HJSON/JSON config from specified file path")
@@ -74,15 +86,15 @@ index 813e950..08d35cc 100644
  	normaliseconf := flag.Bool("normaliseconf", false, "use in combination with either -useconf or -useconffile, outputs your configuration normalised")
  	confjson := flag.Bool("json", false, "print configuration from -genconf or -normaliseconf as JSON instead of HJSON")
  	autoconf := flag.Bool("autoconf", false, "automatic mode (dynamic IP, peer with IPv6 neighbors)")
-@@ -212,6 +225,7 @@ func main() {
+@@ -213,6 +227,7 @@ func getArgs() yggArgs {
  		genconf:       *genconf,
  		useconf:       *useconf,
  		useconffile:   *useconffile,
-+		extraconffile: *extraconffile,
++                extraconffile: *extraconffile,
  		normaliseconf: *normaliseconf,
  		confjson:      *confjson,
  		autoconf:      *autoconf,
-@@ -187,7 +200,7 @@ func main() {
+@@ -265,7 +280,7 @@ func run(args yggArgs, ctx context.Context, done chan struct{}) {
  		cfg = defaults.GenerateConfig()
  	case args.useconffile != "" || args.useconf:
  		// Read the configuration from either stdin or from the filesystem
@@ -91,3 +103,6 @@ index 813e950..08d35cc 100644
  		// If the -normaliseconf option was specified then remarshal the above
  		// configuration and print it back to stdout. This lets the user update
  		// their configuration file with newly mapped names (like above) or to
+-- 
+2.33.1
+
-- 
2.33.1
From 230ce36ac9e9afb962fd875124cafa6a97dcf256 Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 2 Nov 2021 06:51:10 +0000
Subject: [PATCH 7/8] gnu: yggdrasil: Update to 0.4.0.

* gnu/packages/patches/yggdrasil-extra-config.patch: Update patch.
* gnu/packages/networking.scm (yggdrasil): Update to 0.4.0.
[propagated-inputs]: Remove go-github-com-cheggaaa-pb; add go-golang-org-x-sys,
go-github-com-mattn-go-runewidth, go-github-com-mattn-go-isatty,
go-github-com-fatih-color, go-github-com-cheggaaa-pb-v3,
go-github-com-vividcortex-ewma, and go-github-com-arceliar-ironwood.
---
gnu/packages/networking.scm | 55 +++++++++++++------
.../patches/yggdrasil-extra-config.patch | 53 ++++++++++--------
2 files changed, 69 insertions(+), 39 deletions(-)

Toggle diff (215 lines)
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 02041924f6..62bb3ef07e 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -4088,7 +4088,7 @@ (define-public nbd
 (define-public yggdrasil
   (package
     (name "yggdrasil")
-    (version "0.3.16")
+    (version "0.4.0")
     (source
      (origin
        (method git-fetch)
@@ -4099,7 +4099,7 @@ (define-public yggdrasil
          (recursive? #t)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0vyd7a333hwn6j1lv1g9sicw74a4qk982bsi3cfdhjlv6hsjwmil"))
+        (base32 "0mmqw6w5a6ph49xd1yzb7i70xg466k9pi5sdvplhb66x68wipixh"))
        (patches (search-patches "yggdrasil-extra-config.patch"))))
     (build-system go-build-system)
     (arguments
@@ -4116,7 +4116,7 @@ (define-public yggdrasil
                           "go" "build" "-v" "-ldflags=-s -w"
                           (string-append
                            "github.com/yggdrasil-network/yggdrasil-go/cmd/" c)))
-                       (list "yggdrasil" "yggdrasilctl"))
+                       (list "yggdrasil" "yggdrasilctl" "genkeys"))
                       #t))
                   (replace 'install
                     (lambda* (#:key outputs #:allow-other-keys)
@@ -4127,7 +4127,7 @@ (define-public yggdrasil
                         (for-each
                          (lambda (f)
                            (install-file f bin))
-                         (list "yggdrasil" "yggdrasilctl"))
+                         (list "yggdrasil" "yggdrasilctl" "genkeys"))
                         (mkdir-p doc)
                         (copy-recursively
                          (string-append
@@ -4137,20 +4137,43 @@ (define-public yggdrasil
                       #t)))))
     ;; https://github.com/kardianos/minwinsvc is windows only
     (propagated-inputs
-     `(("go-github-com-arceliar-phony" ,go-github-com-arceliar-phony)
-       ("go-github-com-cheggaaa-pb" ,go-github-com-cheggaaa-pb)
-       ("go-github-com-gologme-log" ,go-github-com-gologme-log)
-       ("go-github-com-hashicorp-go-syslog" ,go-github-com-hashicorp-go-syslog)
-       ("go-github-com-hjson-hjson-go" ,go-github-com-hjson-hjson-go)
-       ("go-github-com-kardianos-minwinsvc" ,go-github-com-kardianos-minwinsvc)
+     `(;;("go-golang-zx2c4-com-wireguard-windows"
+       ;; ,go-golang-zx2c4-com-wireguard-windows)
+       ("go-golang-zx2c4-com-wireguard"
+        ,go-golang-zx2c4-com-wireguard)
+       ("go-golang-org-x-text" ,go-golang-org-x-text)
+       ("go-golang-org-x-sys" ,go-golang-org-x-sys)
+       ("go-golang-org-x-net" ,go-golang-org-x-net)
+       ("go-golang-org-x-crypto"
+        ,go-golang-org-x-crypto)
+       ("go-netns"
+        ,go-netns)
+       ("go-netlink"
+        ,go-netlink)
        ("go-github-com-mitchellh-mapstructure"
         ,go-github-com-mitchellh-mapstructure)
-       ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
-       ("go-golang-org-x-net" ,go-golang-org-x-net)
-       ("go-golang-org-x-text" ,go-golang-org-x-text)
-       ("go-golang-zx2c4-com-wireguard" ,go-golang-zx2c4-com-wireguard)
-       ("go-netlink" ,go-netlink)
-       ("go-netns" ,go-netns)))
+       ("go-github-com-mattn-go-runewidth"
+        ,go-github-com-mattn-go-runewidth)
+       ("go-github-com-mattn-go-isatty"
+        ,go-github-com-mattn-go-isatty)
+       ("go-github-com-kardianos-minwinsvc"
+        ,go-github-com-kardianos-minwinsvc)
+       ("go-github-com-hjson-hjson-go"
+        ,go-github-com-hjson-hjson-go)
+       ("go-github-com-hashicorp-go-syslog"
+        ,go-github-com-hashicorp-go-syslog)
+       ("go-github-com-gologme-log"
+        ,go-github-com-gologme-log)
+       ("go-github-com-fatih-color"
+        ,go-github-com-fatih-color)
+       ("go-github-com-cheggaaa-pb-v3"
+        ,go-github-com-cheggaaa-pb-v3)
+       ("go-github-com-vividcortex-ewma"
+        ,go-github-com-vividcortex-ewma)
+       ("go-github-com-arceliar-phony"
+        ,go-github-com-arceliar-phony)
+       ("go-github-com-arceliar-ironwood"
+        ,go-github-com-arceliar-ironwood)))
     (home-page "https://yggdrasil-network.github.io/blog.html")
     (synopsis
      "Experiment in scalable routing as an encrypted IPv6 overlay network")
diff --git a/gnu/packages/patches/yggdrasil-extra-config.patch b/gnu/packages/patches/yggdrasil-extra-config.patch
index c21ca29a84..46fd3f15fc 100644
--- a/gnu/packages/patches/yggdrasil-extra-config.patch
+++ b/gnu/packages/patches/yggdrasil-extra-config.patch
@@ -3,25 +3,25 @@ index 813e950..08d35cc 100644
 --- a/cmd/yggdrasil/main.go
 +++ b/cmd/yggdrasil/main.go
 @@ -40,11 +40,12 @@ type node struct {
- 	admin     module.Module // admin.AdminSocket
+ 	admin     *admin.AdminSocket
  }
  
--func readConfig(useconf *bool, useconffile *string, normaliseconf *bool) *config.NodeConfig {
-+func readConfig(useconf *bool, useconffile *string, extraconffile *string, normaliseconf *bool) *config.NodeConfig {
+-func readConfig(log *log.Logger, useconf bool, useconffile string, normaliseconf bool) *config.NodeConfig {
++func readConfig(log *log.Logger, useconf bool, useconffile string, extraconffile string, normaliseconf bool) *config.NodeConfig {
  	// Use a configuration file. If -useconf, the configuration will be read
  	// from stdin. If -useconffile, the configuration will be read from the
  	// filesystem.
  	var conf []byte
 +	var extraconf []byte
  	var err error
- 	if *useconffile != "" {
+ 	if useconffile != "" {
  		// Read the file from the filesystem
 @@ -56,6 +57,21 @@ func readConfig(useconf *bool, useconffile *string, normaliseconf *bool) *config
  	if err != nil {
  		panic(err)
  	}
-+	if *extraconffile != "" {
-+		extraconf, err = ioutil.ReadFile(*extraconffile);
++	if extraconffile != "" {
++		extraconf, err = ioutil.ReadFile(extraconffile);
 +	}
 +	if err != nil {
 +		panic(err)
@@ -30,7 +30,7 @@ index 813e950..08d35cc 100644
 +	// then parse the configuration we loaded above on top of it. The effect
 +	// of this is that any configuration item that is missing from the provided
 +	// configuration will use a sane default.
-+	cfg := config.GenerateConfig()
++	cfg := defaults.GenerateConfig()
 +	var confs [2][]byte
 +	confs[0]=conf
 +	confs[1]=extraconf
@@ -38,7 +38,7 @@ index 813e950..08d35cc 100644
  	// If there's a byte order mark - which Windows 10 is now incredibly fond of
  	// throwing everywhere when it's converting things into UTF-16 for the hell
  	// of it - remove it and decode back down into UTF-8. This is necessary
-@@ -69,11 +85,6 @@ func readConfig(useconf *bool, useconffile *string, normaliseconf *bool) *config
+@@ -69,11 +85,6 @@ func readConfig(log *log.Logger, useconf bool, useconffile string, normaliseconf bool) *config
  			panic(err)
  		}
  	}
@@ -46,11 +46,11 @@ index 813e950..08d35cc 100644
 -	// then parse the configuration we loaded above on top of it. The effect
 -	// of this is that any configuration item that is missing from the provided
 -	// configuration will use a sane default.
--	cfg := config.GenerateConfig()
+-	cfg := defaults.GenerateConfig()
  	var dat map[string]interface{}
  	if err := hjson.Unmarshal(conf, &dat); err != nil {
  		panic(err)
-@@ -112,6 +123,7 @@ func readConfig(useconf *bool, useconffile *string, normaliseconf *bool) *config
+@@ -112,6 +123,7 @@ func readConfig(log *log.Logger, useconf *bool, useconffile *string, normaliseconf *bool) *config
  	if err = mapstructure.Decode(dat, &cfg); err != nil {
  		panic(err)
  	}
@@ -58,6 +58,14 @@ index 813e950..08d35cc 100644
  	return cfg
  }
  
+@@ -185,6 +197,7 @@ func main() {
+ 	genconf       bool
+ 	useconf       bool
+ 	useconffile   string
++	extraconffile string
+ 	normaliseconf bool
+ 	confjson      bool
+ 	autoconf      bool
 @@ -164,6 +176,7 @@ func main() {
  	genconf := flag.Bool("genconf", false, "print a new config to stdout")
  	useconf := flag.Bool("useconf", false, "read HJSON/JSON config from stdin")
@@ -66,21 +74,20 @@ index 813e950..08d35cc 100644
  	normaliseconf := flag.Bool("normaliseconf", false, "use in combination with either -useconf or -useconffile, outputs your configuration normalised")
  	confjson := flag.Bool("json", false, "print configuration from -genconf or -normaliseconf as JSON instead of HJSON")
  	autoconf := flag.Bool("autoconf", false, "automatic mode (dynamic IP, peer with IPv6 neighbors)")
+@@ -212,6 +225,7 @@ func main() {
+ 		genconf:       *genconf,
+ 		useconf:       *useconf,
+ 		useconffile:   *useconffile,
++		extraconffile: *extraconffile,
+ 		normaliseconf: *normaliseconf,
+ 		confjson:      *confjson,
+ 		autoconf:      *autoconf,
 @@ -187,7 +200,7 @@ func main() {
- 		cfg = config.GenerateConfig()
- 	case *useconffile != "" || *useconf:
+ 		cfg = defaults.GenerateConfig()
+ 	case args.useconffile != "" || args.useconf:
  		// Read the configuration from either stdin or from the filesystem
--		cfg = readConfig(useconf, useconffile, normaliseconf)
-+		cfg = readConfig(useconf, useconffile, extraconffile, normaliseconf)
+-		cfg = readConfig(logger, args.useconf, args.useconffile, args.normaliseconf)
++		cfg = readConfig(logger, args.useconf, args.useconffile, args.extraconffile, args.normaliseconf)
  		// If the -normaliseconf option was specified then remarshal the above
  		// configuration and print it back to stdout. This lets the user update
  		// their configuration file with newly mapped names (like above) or to
-@@ -332,7 +345,7 @@ func main() {
- 			goto exit
- 		case _ = <-r:
- 			if *useconffile != "" {
--				cfg = readConfig(useconf, useconffile, normaliseconf)
-+				cfg = readConfig(useconf, useconffile, extraconffile, normaliseconf)
- 				logger.Infoln("Reloading configuration from", *useconffile)
- 				n.core.UpdateConfig(cfg)
- 				n.tuntap.UpdateConfig(cfg)
-- 
2.33.1
From ce6e34a490816fd9c093fec3b9124bff26620e1f Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 2 Nov 2021 06:50:36 +0000
Subject: [PATCH 6/8] gnu: Add go-github-com-arceliar-ironwood.

* gnu/packages/golang.scm (go-github-com-arceliar-ironwood): New variable.
---
gnu/packages/golang.scm | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)

Toggle diff (50 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index d0435b5469..d8456c8f05 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -8909,3 +8909,43 @@ (define-public go-github-com-mattn-go-runewidth
     (description
       "Provides functions to get fixed width of the character or string.")
     (license license:expat)))
+
+(define-public go-github-com-arceliar-ironwood
+  (package
+    (name "go-github-com-arceliar-ironwood")
+    (version "0.0.0-20210912013146-c2bc55bb349c")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/Arceliar/ironwood")
+               (commit (go-version->git-ref version))))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32
+            "1dfkqnkfxwlwcsk8g9r1pv84lfzgn8r1vam13zlmk81cgan2r6fx"))))
+    (build-system go-build-system)
+    (arguments
+      '(#:import-path "github.com/Arceliar/ironwood"
+        #:tests? #f
+        #:phases
+        (modify-phases %standard-phases
+          ;; Source-only package
+          (delete 'build))))
+    (propagated-inputs
+      `(("go-golang-org-x-crypto"
+         ,go-golang-org-x-crypto)
+        ("go-github-com-arceliar-phony"
+         ,go-github-com-arceliar-phony)))
+    (home-page
+      "https://github.com/Arceliar/ironwood")
+    (synopsis "Experimental network routing library")
+    (description
+      "Ironwood is a routing library with a @code{net.PacketConn}-compatible
+interface using @code{ed25519.PublicKey}s as addresses.  Basically, you use it
+when you want to communicate with some other nodes in a network, but you can't
+guarantee that you can directly connect to every node in that network.  It was
+written to test improvements to / replace the routing logic in
+@url{https://github.com/yggdrasil-network/yggdrasil-go,Yggdrasil}, but it may
+be useful for other network applications.")
+    (license license:mpl2.0)))
-- 
2.33.1
From 1b4bfd5a947902f453e47a510ab058ff459412f5 Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 2 Nov 2021 06:46:57 +0000
Subject: [PATCH 5/8] gnu: Rename go-github-com-cheggaaa-pb to
go-github-com-cheggaaa-pb-v3.

* gnu/packages/golang.scm:
(go-github-com-cheggaaa-pb): Rename variable.
(go-github-com-cheggaaa-pb-v3): New variable.
---
gnu/packages/golang.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (18 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 4033806c7f..d0435b5469 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -7945,9 +7945,9 @@ (define-public go-github-com-arceliar-phony
 inspired by the causal messaging system in the Pony programming language.")
       (license license:expat))))
 
-(define-public go-github-com-cheggaaa-pb
+(define-public go-github-com-cheggaaa-pb-v3
   (package
-    (name "go-github-com-cheggaaa-pb")
+    (name "go-github-com-cheggaaa-pb-v3")
     (version "3.0.8")
     (source
       (origin
-- 
2.33.1
From 6a4220dbb3cbb56cc818bd2f2714484e5f8682e4 Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 2 Nov 2021 06:45:47 +0000
Subject: [PATCH 4/8] gnu: go-github-com-cheggaaa-pb: Update to 3.0.8.

* gnu/packages/golang.scm (go-github-com-cheggaaa-pb): Update to 3.0.8.
---
gnu/packages/golang.scm | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)

Toggle diff (45 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 63300c265f..4033806c7f 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -7948,7 +7948,7 @@ (define-public go-github-com-arceliar-phony
 (define-public go-github-com-cheggaaa-pb
   (package
     (name "go-github-com-cheggaaa-pb")
-    (version "3.0.4")
+    (version "3.0.8")
     (source
       (origin
        (method git-fetch)
@@ -7957,18 +7957,20 @@ (define-public go-github-com-cheggaaa-pb
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0xhsv9yf3fz918ay6w0d87jnb3hk9vxvi16jk172kqq26x7jixd0"))))
+        (base32 "0d701s2niy39r650d1phjw19h4l27b1yfc2ih6s31f56b3zzqspx"))))
     (build-system go-build-system)
-    (arguments
-     '(#:import-path "github.com/cheggaaa/pb/"))
+    (arguments '(#:import-path "github.com/cheggaaa/pb/v3"
+                 ;; XXX: it does have tests but I'm not sure how to run them.
+                 ;; go-build-system is looking in the wrong directory.
+                 #:tests? #f))
     (propagated-inputs
-     `(("go-github-com-fatih-color" ,go-github-com-fatih-color)
+     `(("go-golang-org-x-sys" ,go-golang-org-x-sys)
+       ("go-github-com-rivo-uniseg" ,go-github-com-rivo-uniseg)
+       ("go-github-com-mattn-go-runewidth" ,go-github-com-mattn-go-runewidth)
+       ("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
        ("go-github-com-mattn-go-colorable" ,go-github-com-mattn-go-colorable)
-       ("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
-       ("go-golang-org-x-sys" ,go-golang-org-x-sys)))
-    (native-inputs
-     `(("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)))
+       ("go-github-com-fatih-color" ,go-github-com-fatih-color)
+       ("go-github-com-vividcortex-ewma" ,go-github-com-vividcortex-ewma)))
     (home-page "https://github.com/cheggaaa/pb/")
     (synopsis "Console progress bar for Go")
     (description "This package is a Go library that draws progress bars on
-- 
2.33.1
From a234dd530900d0914a9972ad5a22a1fe303c1bc5 Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 2 Nov 2021 06:37:17 +0000
Subject: [PATCH 3/8] gnu: Add go-github-com-mattn-go-runewidth.

* gnu/packages/golang.scm (go-github-com-mattn-go-runewidth): New variable.
---
gnu/packages/golang.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index e2fee47b91..63300c265f 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -8884,3 +8884,26 @@ (define-public go-github-com-rivo-uniseg
 (@url{http://unicode.org/reports/tr29/,http://unicode.org/reports/tr29/}).
 ")
     (license license:expat)))
+
+(define-public go-github-com-mattn-go-runewidth
+  (package
+    (name "go-github-com-mattn-go-runewidth")
+    (version "0.0.13")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/mattn/go-runewidth")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32 "1yir0f3wc5z5hnkwhvx5qb6nmpfb05zp2gvfjvna63s8kmla1rrn"))))
+    (build-system go-build-system)
+    (arguments '(#:import-path "github.com/mattn/go-runewidth"))
+    (propagated-inputs
+      `(("go-github-com-rivo-uniseg" ,go-github-com-rivo-uniseg)))
+    (home-page "https://github.com/mattn/go-runewidth")
+    (synopsis "Rune width implementation for Go")
+    (description
+      "Provides functions to get fixed width of the character or string.")
+    (license license:expat)))
-- 
2.33.1
From 4732bee7bdbea38292afe9f6b1149986dbfabcb7 Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 2 Nov 2021 06:37:11 +0000
Subject: [PATCH 2/8] gnu: Add go-github-com-rivo-uniseg.

* gnu/packages/golang.scm (go-github-com-rivo-uniseg): New variable.
---
gnu/packages/golang.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 84e7387408..e2fee47b91 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -8860,3 +8860,27 @@ (define-public go-github-com-vividcortex-ewma
     (description
       "Package ewma implements exponentially weighted moving averages.")
     (license license:expat)))
+
+(define-public go-github-com-rivo-uniseg
+  (package
+    (name "go-github-com-rivo-uniseg")
+    (version "0.2.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/rivo/uniseg")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32 "0j7h22vfmjj562vr8gpsyrkrwp1pq9ayh5fylv24skxb467g9f0q"))))
+    (build-system go-build-system)
+    (arguments '(#:import-path "github.com/rivo/uniseg"))
+    (home-page "https://github.com/rivo/uniseg")
+    (synopsis "Unicode Text Segmentation for Go")
+    (description
+      "Package uniseg implements Unicode Text Segmentation according to Unicode
+Standard Annex #29
+(@url{http://unicode.org/reports/tr29/,http://unicode.org/reports/tr29/}).
+")
+    (license license:expat)))
-- 
2.33.1
From c11a2cf43ddd6108b57c24ef9669655b677ce276 Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@riseup.net>
Date: Tue, 2 Nov 2021 06:36:37 +0000
Subject: [PATCH 1/8] gnu: Add go-github-com-vividcortex-ewma.

* gnu/packages/golang.scm (go-github-com-vividcortex-ewma): New variable.
---
gnu/packages/golang.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index cc2a4ebc16..84e7387408 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -8839,3 +8839,24 @@ (define-public go-gopkg-in-djherbis-times-v1
     (description
      "Provides a platform-independent way to get atime, mtime, ctime and btime for files.")
     (license license:expat)))
+
+(define-public go-github-com-vividcortex-ewma
+  (package
+    (name "go-github-com-vividcortex-ewma")
+    (version "1.2.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/VividCortex/ewma")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32 "0whx516l9nm4n41spagb605ry7kfnz1qha96mcshnfjlahhnnylq"))))
+    (build-system go-build-system)
+    (arguments '(#:import-path "github.com/VividCortex/ewma"))
+    (home-page "https://github.com/VividCortex/ewma")
+    (synopsis "EWMA")
+    (description
+      "Package ewma implements exponentially weighted moving averages.")
+    (license license:expat)))
-- 
2.33.1
R
R
raingloom wrote on 28 Nov 2021 21:47
(name . pukkamustard)(address . pukkamustard@posteo.net)
20211128214738.2347f9e4@riseup.net
On Mon, 22 Nov 2021 22:13:08 +0100
raingloom <raingloom@riseup.net> wrote:

Toggle quote (46 lines)
> On Mon, 15 Nov 2021 14:10:46 +0000
> pukkamustard <pukkamustard@posteo.net> wrote:
>
> > Thanks for this!
> >
> > Some minor changes may be needed to make the linter happy:
> >
> > raingloom <raingloom@riseup.net> writes:
> >
> > [..]
> >
> > > [3. text/x-patch;
> > > 0002-gnu-Add-go-github-com-rivo-uniseg.patch]...
> >
> > Linter complains that a line is too long:
> >
> > gnu/packages/golang.scm:8885:0: go-github-com-rivo-uniseg@0.2.0:
> > line 8885 is way too long (93 characters)
> >
> > >
> > > [4. text/x-patch;
> > > 0003-gnu-Add-go-github-com-mattn-go-runewidth.patch]...
> >
> > Linter complains about the synopsis. Maybe: "Go functions for
> > getting fixed width of characters or strings"?
> >
> > Does seem like a bit of a duplication of the description...
> >
> > > [5. text/x-patch;
> > > 0004-gnu-go-github-com-cheggaaa-pb-Update-to-3.0.8.patch]...
> > >
> > > [6. text/x-patch;
> > > 0005-gnu-Rename-go-github-com-cheggaaa-pb-to-go-github-co.patch]...
> > >
> > > [7. text/x-patch;
> > > 0006-gnu-Add-go-github-com-arceliar-ironwood.patch]...
> >
> > Lines in descriptions are too long and should be wrapped.
> >
> > A synopsis is required. Maybe: "Ironwood is a Go network routing
> > library using cryptographic keys as addresses"?
>
> Heck, I think I meant to run the linter but it was getting late and I
> just wanted to be done with the patch. Well, here is an updated patch
> list.

Bump. Could someome merge this if everything is in order?
L
L
Ludovic Courtès wrote on 1 Dec 2021 16:27
Re: bug#51565: PATCH: Update Yggdrasil to new protocol (important breaking changes)
(name . raingloom)(address . raingloom@riseup.net)
87fsrc2vms.fsf_-_@gnu.org
Hi raingloom,

Apologies for the delay.

raingloom <raingloom@riseup.net> skribis:

Toggle quote (8 lines)
>>From 776202eb2d0610e51f5168d108ce80a4096b10d4 Mon Sep 17 00:00:00 2001
> From: raingloom <raingloom@riseup.net>
> Date: Wed, 3 Nov 2021 21:40:37 +0100
> Subject: [PATCH 8/8] gnu: yggdrasil: Update to 0.4.1.
>
> * gnu/packages/networking.scm (yggdrasil): Update to 0.4.1.
> * gnu/packages/patches/yggdrasil-extra-config.patch: Update for new version.

OK.

Toggle quote (7 lines)
>>From ce6e34a490816fd9c093fec3b9124bff26620e1f Mon Sep 17 00:00:00 2001
> From: raingloom <raingloom@riseup.net>
> Date: Tue, 2 Nov 2021 06:50:36 +0000
> Subject: [PATCH 6/8] gnu: Add go-github-com-arceliar-ironwood.
>
> * gnu/packages/golang.scm (go-github-com-arceliar-ironwood): New variable.

OK.

Toggle quote (27 lines)
>>From 1b4bfd5a947902f453e47a510ab058ff459412f5 Mon Sep 17 00:00:00 2001
> From: raingloom <raingloom@riseup.net>
> Date: Tue, 2 Nov 2021 06:46:57 +0000
> Subject: [PATCH 5/8] gnu: Rename go-github-com-cheggaaa-pb to
> go-github-com-cheggaaa-pb-v3.
>
> * gnu/packages/golang.scm:
> (go-github-com-cheggaaa-pb): Rename variable.
> (go-github-com-cheggaaa-pb-v3): New variable.
> ---
> gnu/packages/golang.scm | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
> index 4033806c7f..d0435b5469 100644
> --- a/gnu/packages/golang.scm
> +++ b/gnu/packages/golang.scm
> @@ -7945,9 +7945,9 @@ (define-public go-github-com-arceliar-phony
> inspired by the causal messaging system in the Pony programming language.")
> (license license:expat))))
>
> -(define-public go-github-com-cheggaaa-pb
> +(define-public go-github-com-cheggaaa-pb-v3
> (package
> - (name "go-github-com-cheggaaa-pb")
> + (name "go-github-com-cheggaaa-pb-v3")

Why rename? If we do need to rename, let’s add a ‘deprecated-package’
definition to allow users to notice and get a smooth upgrade.

Toggle quote (7 lines)
>>From 6a4220dbb3cbb56cc818bd2f2714484e5f8682e4 Mon Sep 17 00:00:00 2001
> From: raingloom <raingloom@riseup.net>
> Date: Tue, 2 Nov 2021 06:45:47 +0000
> Subject: [PATCH 4/8] gnu: go-github-com-cheggaaa-pb: Update to 3.0.8.
>
> * gnu/packages/golang.scm (go-github-com-cheggaaa-pb): Update to 3.0.8.

Could you mention input changes?

Toggle quote (7 lines)
>>From a234dd530900d0914a9972ad5a22a1fe303c1bc5 Mon Sep 17 00:00:00 2001
> From: raingloom <raingloom@riseup.net>
> Date: Tue, 2 Nov 2021 06:37:17 +0000
> Subject: [PATCH 3/8] gnu: Add go-github-com-mattn-go-runewidth.
>
> * gnu/packages/golang.scm (go-github-com-mattn-go-runewidth): New variable.

[...]

Toggle quote (5 lines)
> + (synopsis "Rune width implementation for Go")
> + (description
> + "Provides functions to get fixed width of the character or string.")

Toggle quote (7 lines)
>>From 4732bee7bdbea38292afe9f6b1149986dbfabcb7 Mon Sep 17 00:00:00 2001
> From: raingloom <raingloom@riseup.net>
> Date: Tue, 2 Nov 2021 06:37:11 +0000
> Subject: [PATCH 2/8] gnu: Add go-github-com-rivo-uniseg.
>
> * gnu/packages/golang.scm (go-github-com-rivo-uniseg): New variable.

[...]

Toggle quote (7 lines)
> + (synopsis "Unicode Text Segmentation for Go")
> + (description
> + "Package uniseg implements Unicode Text Segmentation according to Unicode
> +Standard Annex #29
> +(@url{http://unicode.org/reports/tr29/,http://unicode.org/reports/tr29/}).
> +")

Ditto.

Toggle quote (7 lines)
>>From c11a2cf43ddd6108b57c24ef9669655b677ce276 Mon Sep 17 00:00:00 2001
> From: raingloom <raingloom@riseup.net>
> Date: Tue, 2 Nov 2021 06:36:37 +0000
> Subject: [PATCH 1/8] gnu: Add go-github-com-vividcortex-ewma.
>
> * gnu/packages/golang.scm (go-github-com-vividcortex-ewma): New variable.

[...]

Toggle quote (5 lines)
> + (synopsis "EWMA")
> + (description
> + "Package ewma implements exponentially weighted moving averages.")

Ditto.

Could you send updated patches?

TIA,
Ludo’.
R
R
raingloom wrote on 1 Dec 2021 17:03
(name . Ludovic Courtès)(address . ludo@gnu.org)
20211201170310.00164259@riseup.net
On Wed, 01 Dec 2021 16:27:23 +0100
Ludovic Courtès <ludo@gnu.org> wrote:

Toggle quote (60 lines)
> Hi raingloom,
>
> Apologies for the delay.
>
> raingloom <raingloom@riseup.net> skribis:
>
> >>From 776202eb2d0610e51f5168d108ce80a4096b10d4 Mon Sep 17 00:00:00
> >>2001
> > From: raingloom <raingloom@riseup.net>
> > Date: Wed, 3 Nov 2021 21:40:37 +0100
> > Subject: [PATCH 8/8] gnu: yggdrasil: Update to 0.4.1.
> >
> > * gnu/packages/networking.scm (yggdrasil): Update to 0.4.1.
> > * gnu/packages/patches/yggdrasil-extra-config.patch: Update for new
> > version.
>
> OK.
>
> >>From ce6e34a490816fd9c093fec3b9124bff26620e1f Mon Sep 17 00:00:00
> >>2001
> > From: raingloom <raingloom@riseup.net>
> > Date: Tue, 2 Nov 2021 06:50:36 +0000
> > Subject: [PATCH 6/8] gnu: Add go-github-com-arceliar-ironwood.
> >
> > * gnu/packages/golang.scm (go-github-com-arceliar-ironwood): New
> > variable.
>
> OK.
>
> >>From 1b4bfd5a947902f453e47a510ab058ff459412f5 Mon Sep 17 00:00:00
> >>2001
> > From: raingloom <raingloom@riseup.net>
> > Date: Tue, 2 Nov 2021 06:46:57 +0000
> > Subject: [PATCH 5/8] gnu: Rename go-github-com-cheggaaa-pb to
> > go-github-com-cheggaaa-pb-v3.
> >
> > * gnu/packages/golang.scm:
> > (go-github-com-cheggaaa-pb): Rename variable.
> > (go-github-com-cheggaaa-pb-v3): New variable.
> > ---
> > gnu/packages/golang.scm | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
> > index 4033806c7f..d0435b5469 100644
> > --- a/gnu/packages/golang.scm
> > +++ b/gnu/packages/golang.scm
> > @@ -7945,9 +7945,9 @@ (define-public go-github-com-arceliar-phony
> > inspired by the causal messaging system in the Pony programming
> > language.") (license license:expat))))
> >
> > -(define-public go-github-com-cheggaaa-pb
> > +(define-public go-github-com-cheggaaa-pb-v3
> > (package
> > - (name "go-github-com-cheggaaa-pb")
> > + (name "go-github-com-cheggaaa-pb-v3")
>
> Why rename? If we do need to rename, let’s add a ‘deprecated-package’
> definition to allow users to notice and get a smooth upgrade.

Without a rename guix import go gets confused and imports it again
under that name. It didn't seem like anything was using it so I went
with a rename, but I guess someone's channel might be depending on it.
(although I doubt it)
What would proper deprecation look like? Just inheriting from the new
package, changing the name field, and marking it as deprecated?

Toggle quote (76 lines)
> >>From 6a4220dbb3cbb56cc818bd2f2714484e5f8682e4 Mon Sep 17 00:00:00
> >>2001
> > From: raingloom <raingloom@riseup.net>
> > Date: Tue, 2 Nov 2021 06:45:47 +0000
> > Subject: [PATCH 4/8] gnu: go-github-com-cheggaaa-pb: Update to
> > 3.0.8.
> >
> > * gnu/packages/golang.scm (go-github-com-cheggaaa-pb): Update to
> > 3.0.8.
>
> Could you mention input changes?
>
> >>From a234dd530900d0914a9972ad5a22a1fe303c1bc5 Mon Sep 17 00:00:00
> >>2001
> > From: raingloom <raingloom@riseup.net>
> > Date: Tue, 2 Nov 2021 06:37:17 +0000
> > Subject: [PATCH 3/8] gnu: Add go-github-com-mattn-go-runewidth.
> >
> > * gnu/packages/golang.scm (go-github-com-mattn-go-runewidth): New
> > variable.
>
> [...]
>
> > + (home-page "https://github.com/mattn/go-runewidth")
> > + (synopsis "Rune width implementation for Go")
> > + (description
> > + "Provides functions to get fixed width of the character or
> > string.")
>
> Please write a full sentence:
>
> https://guix.gnu.org/manual/en/html_node/Synopses-and-Descriptions.html
>
> >>From 4732bee7bdbea38292afe9f6b1149986dbfabcb7 Mon Sep 17 00:00:00
> >>2001
> > From: raingloom <raingloom@riseup.net>
> > Date: Tue, 2 Nov 2021 06:37:11 +0000
> > Subject: [PATCH 2/8] gnu: Add go-github-com-rivo-uniseg.
> >
> > * gnu/packages/golang.scm (go-github-com-rivo-uniseg): New
> > variable.
>
> [...]
>
> > + (synopsis "Unicode Text Segmentation for Go")
> > + (description
> > + "Package uniseg implements Unicode Text Segmentation
> > according to Unicode +Standard Annex #29
> > +(@url{http://unicode.org/reports/tr29/,http://unicode.org/reports/tr29/}).
> > +")
>
> Ditto.
>
> >>From c11a2cf43ddd6108b57c24ef9669655b677ce276 Mon Sep 17 00:00:00
> >>2001
> > From: raingloom <raingloom@riseup.net>
> > Date: Tue, 2 Nov 2021 06:36:37 +0000
> > Subject: [PATCH 1/8] gnu: Add go-github-com-vividcortex-ewma.
> >
> > * gnu/packages/golang.scm (go-github-com-vividcortex-ewma): New
> > variable.
>
> [...]
>
> > + (home-page "https://github.com/VividCortex/ewma")
> > + (synopsis "EWMA")
> > + (description
> > + "Package ewma implements exponentially weighted moving
> > averages.")
>
> Ditto.
>
> Could you send updated patches?
>
> TIA,
> Ludo’.
R
R
Ricardo Wurmus wrote on 1 Dec 2021 17:04
PATCH: Update Yggdrasil to new protocol (important breaking changes)
(address . 51565-done@debbugs.gnu.org)
877dcos3zj.fsf@elephly.net
Ludo’s review overlapped my review. I’ve already made all the
changes that Ludo requested.

+ changed the descriptions
+ recorded all changes in the commit
+ added a deprecated-package in the rename commit
+ fixed indentation

Commit d9956e938343c7637647ad10b977fdb0f3b8b138 updates yggdrasil
to 0.4.1.

--
Ricardo
Closed
L
L
Ludovic Courtès wrote on 2 Dec 2021 10:15
(name . raingloom)(address . raingloom@riseup.net)
8735nbxt83.fsf@gnu.org
Hi,

raingloom <raingloom@riseup.net> skribis:

Toggle quote (12 lines)
>> > -(define-public go-github-com-cheggaaa-pb
>> > +(define-public go-github-com-cheggaaa-pb-v3
>> > (package
>> > - (name "go-github-com-cheggaaa-pb")
>> > + (name "go-github-com-cheggaaa-pb-v3")
>>
>> Why rename? If we do need to rename, let’s add a ‘deprecated-package’
>> definition to allow users to notice and get a smooth upgrade.
>
> Without a rename guix import go gets confused and imports it again
> under that name.

Ah that makes sense; would be worth adding a comment above.

Toggle quote (5 lines)
> It didn't seem like anything was using it so I went with a rename, but
> I guess someone's channel might be depending on it. (although I doubt
> it) What would proper deprecation look like? Just inheriting from the
> new package, changing the name field, and marking it as deprecated?

Yes, you can grep for ‘deprecated-package’ in gnu/packages/*.scm.

Thanks,
Ludo’.
L
L
Ludovic Courtès wrote on 2 Dec 2021 10:16
Re: PATCH: Update Yggdrasil to new protocol (important breaking changes)
(name . Ricardo Wurmus)(address . rekado@elephly.net)
87y253wemx.fsf@gnu.org
Hi,

Ricardo Wurmus <rekado@elephly.net> skribis:

Toggle quote (11 lines)
> Ludo’s review overlapped my review. I’ve already made all the changes
> that Ludo requested.
>
> + changed the descriptions
> + recorded all changes in the commit
> + added a deprecated-package in the rename commit
> + fixed indentation
>
> Commit d9956e938343c7637647ad10b977fdb0f3b8b138 updates yggdrasil to
> 0.4.1.

Ah wonderful, thank you!

Ludo’.
Closed
?
Your comment

This issue is archived.

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