~ruther/guix-local

f3b2af2147949e0f091ad16589baa7b34d850079 — raingloom 4 years ago dee3e33
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.
[arguments]: Also install genkeys.
[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.

Signed-off-by: Ricardo Wurmus <rekado@elephly.net>
2 files changed, 69 insertions(+), 39 deletions(-)

M gnu/packages/networking.scm
M gnu/packages/patches/yggdrasil-extra-config.patch
M gnu/packages/networking.scm => gnu/packages/networking.scm +39 -16
@@ 4067,7 4067,7 @@ network.")
(define-public yggdrasil
  (package
    (name "yggdrasil")
    (version "0.3.16")
    (version "0.4.0")
    (source
     (origin
       (method git-fetch)


@@ 4078,7 4078,7 @@ network.")
         (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


@@ 4095,7 4095,7 @@ network.")
                          "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)


@@ 4106,7 4106,7 @@ network.")
                        (for-each
                         (lambda (f)
                           (install-file f bin))
                         (list "yggdrasil" "yggdrasilctl"))
                         (list "yggdrasil" "yggdrasilctl" "genkeys"))
                        (mkdir-p doc)
                        (copy-recursively
                         (string-append


@@ 4116,20 4116,43 @@ network.")
                      #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")

M gnu/packages/patches/yggdrasil-extra-config.patch => gnu/packages/patches/yggdrasil-extra-config.patch +30 -23
@@ 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)