summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/networking.scm55
-rw-r--r--gnu/packages/patches/yggdrasil-extra-config.patch53
2 files changed, 69 insertions, 39 deletions
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 814ff59c46..d79eeb3b13 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -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")
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)