diff mbox series

[bug#41803] Yggdrasil package and accompanying shepherd service (mesh network)

Message ID 20200713162330.79213853@riseup.net
State Accepted
Headers show
Series [bug#41803] Yggdrasil package and accompanying shepherd service (mesh network) | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch fail View Laminar job

Commit Message

Csepp July 13, 2020, 2:23 p.m. UTC
On Sun, 12 Jul 2020 00:12:06 +0200
Julien Lepiller <julien@lepiller.eu> wrote:

> 
> Hi,
> 
> this is more of a quick review.
> 
> First patch LGTM.
> 
> You should split every package you add in the second patch in separate
> patches. Also the commit message should say "new variable", no need to
> say it's public.

Done!

> You left a comment about the license for go-github-com-gologme-log.
> Have you contacted upstream to tell them about that, what was their
> reaction? I think the fact that the readme says bsd implies the
> intention is that it is free software, but better safe than sorry.

Heck, I forgot to do that, but I have contacted them yesterday and they
fixed it.

> Otherwise, these packages lgtm.
> 
> In the third patch again, the commit message should say "new
> variable". You should not use the past tense either, so "Add it".
> 
> Is the licenes lgpl3, or lgpl3+?

Looks like (custom) lgpl3. The readme says so and I couldn't find
anything to indicate that a later version would also be acceptable.

> Not a go programmer, so I'm not reading the patch, but I'm trusting
> you that it works :)
> 
> For the fourth patch, I don't think you need to list new private
> variables in the commit message, nor new dependencies. Only list
> public variables, as "New variables".
> 
> As you noted, could you add something about it to the manual?

On it, but I've never used texinfo, so this might take a while. Gonna
send it in a later mail.

> In the system example, should Yggdrasil really be installed in the
> system profile? If so, I think you can add a profile-service-type
> extension to the service so the package is automatically available.
> Then you don't need to specify the package in the os configuration,
> and it ensures you install the same package (declared in the service
> configuration) for the service and in the system.

Technically it can be used without it, but yggdrasilctl is a useful
tool. I added it with the profile-service-type extension and removed
it from the packages field in the example.

> Thanks for working on this!

UwU

Comments

Csepp Oct. 7, 2020, 10:15 p.m. UTC | #1
On Mon, 13 Jul 2020 16:23:30 +0200
raingloom <raingloom@riseup.net> wrote:

> On Sun, 12 Jul 2020 00:12:06 +0200
> Julien Lepiller <julien@lepiller.eu> wrote:
> 
> > 
> > Hi,
> > 
> > this is more of a quick review.
> > 
> > First patch LGTM.
> > 
> > You should split every package you add in the second patch in
> > separate patches. Also the commit message should say "new
> > variable", no need to say it's public.
> 
> Done!
> 
> > You left a comment about the license for go-github-com-gologme-log.
> > Have you contacted upstream to tell them about that, what was their
> > reaction? I think the fact that the readme says bsd implies the
> > intention is that it is free software, but better safe than sorry.
> 
> Heck, I forgot to do that, but I have contacted them yesterday and
> they fixed it.
> 
> > Otherwise, these packages lgtm.
> > 
> > In the third patch again, the commit message should say "new
> > variable". You should not use the past tense either, so "Add it".
> > 
> > Is the licenes lgpl3, or lgpl3+?
> 
> Looks like (custom) lgpl3. The readme says so and I couldn't find
> anything to indicate that a later version would also be acceptable.
> 
> > Not a go programmer, so I'm not reading the patch, but I'm trusting
> > you that it works :)
> > 
> > For the fourth patch, I don't think you need to list new private
> > variables in the commit message, nor new dependencies. Only list
> > public variables, as "New variables".
> > 
> > As you noted, could you add something about it to the manual?
> 
> On it, but I've never used texinfo, so this might take a while. Gonna
> send it in a later mail.
> 
> > In the system example, should Yggdrasil really be installed in the
> > system profile? If so, I think you can add a profile-service-type
> > extension to the service so the package is automatically available.
> > Then you don't need to specify the package in the os configuration,
> > and it ensures you install the same package (declared in the service
> > configuration) for the service and in the system.
> 
> Technically it can be used without it, but yggdrasilctl is a useful
> tool. I added it with the profile-service-type extension and removed
> it from the packages field in the example.
> 
> > Thanks for working on this!
> 
> UwU

Bump.

Could someone please test this?

Others have expressed interest in usin Yggdrasil with Guix, so I really
think these patches would be useful.

New versions of the packages are already coming out though, so if
necessary I could send a new patch series with the updated versions.
diff mbox series

Patch

From 1f947b42acdf2aa20ae0421081c959a8faebaacf Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@protonmail.com>
Date: Thu, 11 Jun 2020 14:16:42 +0200
Subject: [PATCH 10/10] gnu: system: add example with yggdrasil

* gnu/system/examples/yggdrasil.tmpl: New file.
---
 gnu/system/examples/yggdrasil.tmpl | 61 ++++++++++++++++++++++++++++++
 1 file changed, 61 insertions(+)
 create mode 100644 gnu/system/examples/yggdrasil.tmpl

diff --git a/gnu/system/examples/yggdrasil.tmpl b/gnu/system/examples/yggdrasil.tmpl
new file mode 100644
index 0000000000..be222e9223
--- /dev/null
+++ b/gnu/system/examples/yggdrasil.tmpl
@@ -0,0 +1,61 @@ 
+;; This is an operating system configuration template
+;; for a "bare bones" setup, with no X11 display server.
+
+(use-modules (gnu))
+(use-service-modules networking ssh)
+(use-package-modules admin networking screen)
+
+(operating-system
+  (host-name "ruby-guard-5545")
+  (timezone "Europe/Budapest")
+  (locale "en_US.utf8")
+
+  ;; Boot in "legacy" BIOS mode, assuming /dev/sdX is the
+  ;; target hard disk, and "my-root" is the label of the target
+  ;; root file system.
+  (bootloader (bootloader-configuration
+                (bootloader grub-bootloader)
+                (target "/dev/sdX")))
+  (file-systems (cons (file-system
+                        (device (file-system-label "my-root"))
+                        (mount-point "/")
+                        (type "ext4"))
+                      %base-file-systems))
+
+  ;; This is where user accounts are specified.  The "root"
+  ;; account is implicit, and is initially created with the
+  ;; empty password.
+  (users (cons (user-account
+                (name "alice")
+                (comment "Bob's sister")
+                (group "users")
+
+                ;; Adding the account to the "wheel" group
+                ;; makes it a sudoer.  Adding it to "audio"
+                ;; and "video" allows the user to play sound
+                ;; and access the webcam.
+                (supplementary-groups '("wheel"
+                                        "audio" "video")))
+               %base-user-accounts))
+
+  ;; Globally-installed packages.
+  (packages (cons* screen %base-packages))
+
+  ;; Add services to the baseline: a DHCP client and
+  ;; an SSH server.
+  (services
+   (append
+    (list
+     (service dhcp-client-service-type)
+     (service yggdrasil-service-type
+              (yggdrasil-configuration
+               (log-to 'stdout)
+               (log-level 'debug)
+               (autoconf? #f)
+               (json-config
+               ;; choose one from https://github.com/yggdrasil-network/public-peers
+                '((peers . #("tcp://1.2.3.4:1337"))))))
+     (service openssh-service-type
+              (openssh-configuration
+               (port-number 2222))))
+    %base-services)))
-- 
2.27.0