From d73a5008c715bd9fe607e43eff9cd7655dcd3b49 Mon Sep 17 00:00:00 2001 From: Nils Gillmann Date: Fri, 29 Jun 2018 06:17:25 +0000 Subject: [PATCH] Move wip'ish share of shepherd service to https://d.n0.is/pub/tmp/ where it is regulary updated Signed-off-by: Nils Gillmann --- contrib/services/shepherd/ng0_wip/.gitignore | 1 - ...0001-gnu-services-Add-gnunet-service.patch | 186 --------------- ...0001-gnu-services-Add-gnunet-service.patch | 225 ------------------ .../001-gnu-services-Add-gnunet-service.patch | 204 ---------------- contrib/services/shepherd/ng0_wip/README | 11 - contrib/services/shepherd/ng0_wip/gnunet.scm | 173 -------------- .../shepherd/ng0_wip/janneke-os-modified.scm | 62 ----- 7 files changed, 862 deletions(-) delete mode 100644 contrib/services/shepherd/ng0_wip/.gitignore delete mode 100644 contrib/services/shepherd/ng0_wip/00001-gnu-services-Add-gnunet-service.patch delete mode 100644 contrib/services/shepherd/ng0_wip/0001-gnu-services-Add-gnunet-service.patch delete mode 100644 contrib/services/shepherd/ng0_wip/001-gnu-services-Add-gnunet-service.patch delete mode 100644 contrib/services/shepherd/ng0_wip/README delete mode 100644 contrib/services/shepherd/ng0_wip/gnunet.scm delete mode 100644 contrib/services/shepherd/ng0_wip/janneke-os-modified.scm diff --git a/contrib/services/shepherd/ng0_wip/.gitignore b/contrib/services/shepherd/ng0_wip/.gitignore deleted file mode 100644 index 9b974979a..000000000 --- a/contrib/services/shepherd/ng0_wip/.gitignore +++ /dev/null @@ -1 +0,0 @@ -!*.patch \ No newline at end of file diff --git a/contrib/services/shepherd/ng0_wip/00001-gnu-services-Add-gnunet-service.patch b/contrib/services/shepherd/ng0_wip/00001-gnu-services-Add-gnunet-service.patch deleted file mode 100644 index 609a0a5ef..000000000 --- a/contrib/services/shepherd/ng0_wip/00001-gnu-services-Add-gnunet-service.patch +++ /dev/null @@ -1,186 +0,0 @@ -From 60a4c0f7c60ef705db17561fd3e930bbe11730c9 Mon Sep 17 00:00:00 2001 -From: ng0 -Date: Mon, 12 Sep 2016 12:26:52 +0000 -Subject: [PATCH] gnu: services: Add gnunet-service. - -* gnu/services/networking.scm (gnunet): New service. - -Signed-off-by: Nils Gillmann ---- - doc/guix.texi | 36 ++++++++++++++ - gnu/services/networking.scm | 93 ++++++++++++++++++++++++++++++++++++- - 2 files changed, 128 insertions(+), 1 deletion(-) - -diff --git a/doc/guix.texi b/doc/guix.texi -index d925b4eda..eb7b409d7 100644 ---- a/doc/guix.texi -+++ b/doc/guix.texi -@@ -11016,6 +11016,42 @@ Package object of the Open vSwitch. - @end table - @end deftp - -+@cindex GNUnet -+@cindex gnunet -+@subsubheading GNUnet Service -+ -+@deffn {Scheme Variable} gnunet-service-type -+This is the type of the @uref{https://gnunet.org, GNUnet} -+service, whose value should be an @code{gnunet-configuration} object -+as in this example: -+ -+@example -+(service gnunet-service-type -+ (gnunet-configuration -+ (config-file (local-file "./gnunet.conf")))) -+@end example -+@end deffn -+ -+@deftp {Data Type} gnunet-configuration -+Data type representing the configuration of GNUnet. -+ -+@table @asis -+@item @code{package} (default: @var{gnunet}) -+Package object of the GNUnet service. -+ -+@item @code{config-file} (default: @var{%default-gnunet-file}) -+File-like object of the GNUnet configuration file to use. For NAT is -+assumes by default that you are behind a NAT (@var{BEHIND_NAT = YES}) -+and enables UPNP (@var{ENABLE_UPNP = YES}). -+The hostlist is configured with the options @var{-b} (bootstrap using -+configured hostlist servers) and @var{-e} (enable learning advertised hostlists). -+Read the configuration files in @var{"~/.guix-profile/share/gnunet/config.d/"} -+for more information. These files also set the defaults when you don't set -+any explicit values to override them. -+ -+@end table -+@end deftp -+ - @node X Window - @subsubsection X Window - -diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm -index b0c23aafc..0ff20e707 100644 ---- a/gnu/services/networking.scm -+++ b/gnu/services/networking.scm -@@ -5,6 +5,7 @@ - ;;; Copyright © 2016 John Darrington - ;;; Copyright © 2017 Clément Lassieur - ;;; Copyright © 2017 Thomas Danckaert -+;;; Copyright © 2017 ng0 - ;;; - ;;; This file is part of GNU Guix. - ;;; -@@ -29,6 +30,7 @@ - #:use-module (gnu system pam) - #:use-module (gnu packages admin) - #:use-module (gnu packages connman) -+ #:use-module (gnu packages gnunet) - #:use-module (gnu packages linux) - #:use-module (gnu packages tor) - #:use-module (gnu packages messaging) -@@ -92,7 +94,12 @@ - wpa-supplicant-service-type - - openvswitch-service-type -- openvswitch-configuration)) -+ openvswitch-configuration -+ -+ gnunet-configuration -+ gnunet-configuration? -+ gnunet-service -+ gnunet-service-type)) - - ;;; Commentary: - ;;; -@@ -1125,4 +1132,88 @@ a network connection manager.")))) - switch designed to enable massive network automation through programmatic - extension."))) - -+;;; -+;;; GNUnet -+;;; -+ -+(define-record-type* -+ gnunet-configuration make-gnunet-configuration -+ gnunet-configuration? -+ (package gnunet-configuration-package -+ (default gnunet)) -+ (config-file gnunet-configuration-config-file -+ (default %default-gnunet-config-file))) -+ -+(define %default-gnunet-config-file -+ (plain-file "gnunet.conf" " -+[PATHS] -+SERVICEHOME = /var/lib/gnunet -+GNUNET_CONFIG_HOME = /var/lib/gnunet -+ -+[arm] -+SYSTEM_ONLY = YES -+USER_ONLY = NO -+ -+[nat] -+BEHIND_NAT = YES -+ENABLE_UPNP = YES -+ -+[hostlist] -+OPTIONS = -b -e -+")) -+ -+(define gnunet-shepherd-service -+ (match-lambda -+ (($ package config-file) -+ (list (shepherd-service -+ (provision '(gnunet)) -+ (requirement '(loopback)) -+ (documentation "Run the GNUnet service.") -+ (start -+ (let ((gnunet -+ (file-append package "/lib/gnunet/libexec/gnunet-service-arm"))) -+ #~(make-forkexec-constructor -+ (list #$gnunet "-c" #$config-file) -+ #:log-file "/var/log/gnunet.log" -+ #:pid-file "/var/run/gnunet.pid"))) -+ (stop -+ #~(make-kill-destructor))))))) -+ -+(define %gnunet-accounts -+ (list (user-group -+ (name "gnunetdns") -+ (system? #t)) -+ (user-group -+ (name "gnunet") -+ (system? #t)) -+ (user-account -+ (name "gnunet") -+ (group "gnunet") -+ (system? #t) -+ (comment "GNUnet system user") -+ (home-directory "/var/lib/gnunet") -+ (shell #~(string-append #$shadow "/sbin/nologin"))))) -+ -+(define gnunet-activation -+ (match-lambda -+ (($ package config-file) -+ (let ((gnunet -+ (file-append package "/lib/gnunet/libexec/gnunet-service-arm"))) -+ #~(begin -+ ;; Create the .config + .cache for gnunet user -+ (mkdir-p "/var/lib/gnunet/.config/gnunet") -+ (mkdir-p "/var/lib/gnunet/.cache/gnunet")))))) -+ -+(define gnunet-service-type -+ (service-type -+ (name 'gnunet) -+ (extensions (list (service-extension account-service-type -+ (const %gnunet-accounts)) -+ (service-extension activation-service-type -+ gnunet-activation) -+ (service-extension profile-service-type -+ (compose list gnunet-configuration-package)) -+ (service-extension shepherd-root-service-type -+ gnunet-shepherd-service))))) -+ - ;;; networking.scm ends here --- -2.17.0 - diff --git a/contrib/services/shepherd/ng0_wip/0001-gnu-services-Add-gnunet-service.patch b/contrib/services/shepherd/ng0_wip/0001-gnu-services-Add-gnunet-service.patch deleted file mode 100644 index a494434e0..000000000 --- a/contrib/services/shepherd/ng0_wip/0001-gnu-services-Add-gnunet-service.patch +++ /dev/null @@ -1,225 +0,0 @@ -From 434b05bc1a11b4865c0bd634281acd91dfce972c Mon Sep 17 00:00:00 2001 -From: ng0 -Date: Mon, 12 Sep 2016 12:26:52 +0000 -Subject: [PATCH] gnu: services: Add gnunet-service. - -Signed-off-by: Nils Gillmann ---- - doc/guix.texi | 36 ++++++++++ - gnu/services/networking.scm | 134 +++++++++++++++++++++++++++++++++++- - 2 files changed, 169 insertions(+), 1 deletion(-) - -diff --git a/doc/guix.texi b/doc/guix.texi -index 00bf24d3f..73589c88b 100644 ---- a/doc/guix.texi -+++ b/doc/guix.texi -@@ -10138,6 +10138,42 @@ Package object of the Open vSwitch. - @end table - @end deftp - -+@cindex GNUnet -+@cindex gnunet -+@subsubheading GNUnet Service -+ -+@deffn {Scheme Variable} gnunet-service-type -+This is the type of the @uref{https://gnunet.org, GNUnet} -+service, whose value should be an @code{gnunet-configuration} object -+as in this example: -+ -+@example -+(service gnunet-service-type -+ (gnunet-configuration -+ (config-file (local-file "./gnunet.conf")))) -+@end example -+@end deffn -+ -+@deftp {Data Type} gnunet-configuration -+Data type representing the configuration of GNUnet. -+ -+@table @asis -+@item @code{package} (default: @var{gnunet}) -+Package object of the GNUnet service. -+ -+@item @code{config-file} (default: @var{%default-gnunet-file}) -+File-like object of the GNUnet configuration file to use. For NAT is -+assumes by default that you are behind a NAT (@var{BEHIND_NAT = YES}) -+and enables UPNP (@var{ENABLE_UPNP = YES}). -+The hostlist is configured with the options @var{-b} (bootstrap using -+configured hostlist servers) and @var{-e} (enable learning advertised hostlists). -+Read the configuration files in @var{"~/.guix-profile/share/gnunet/config.d/"} -+for more information. These files also set the defaults when you don't set -+any explicit values to override them. -+ -+@end table -+@end deftp -+ - @node X Window - @subsubsection X Window - -diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm -index 99a3d493c..fe682b267 100644 ---- a/gnu/services/networking.scm -+++ b/gnu/services/networking.scm -@@ -5,6 +5,7 @@ - ;;; Copyright © 2016 John Darrington - ;;; Copyright © 2017 Clément Lassieur - ;;; Copyright © 2017 Thomas Danckaert -+;;; Copyright © 2017 ng0 - ;;; - ;;; This file is part of GNU Guix. - ;;; -@@ -29,6 +30,7 @@ - #:use-module (gnu system pam) - #:use-module (gnu packages admin) - #:use-module (gnu packages connman) -+ #:use-module (gnu packages gnunet) - #:use-module (gnu packages linux) - #:use-module (gnu packages tor) - #:use-module (gnu packages messaging) -@@ -92,7 +94,12 @@ - wpa-supplicant-service-type - - openvswitch-service-type -- openvswitch-configuration)) -+ openvswitch-configuration -+ -+ gnunet-configuration -+ gnunet-configuration? -+ gnunet-service-type -+ %default-gnunet-config-file)) - - ;;; Commentary: - ;;; -@@ -1069,4 +1076,129 @@ dns=" dns " - (service-extension shepherd-root-service-type - openvswitch-shepherd-service))))) - -+;;; -+;;; GNUnet -+;;; -+ -+;; steps: -+;; 0. The service works!!! -+;; 1. We want a completely adjustable config. -+;; 2. We want to extend this service with functions like -+;; vpn, comparable to tor-service -+;; Because of (1) we can't have a default. We can have -+;; default values which can be adjusted. A config is -+;; generated from these. -+ -+(define-record-type* -+ gnunet-configuration make-gnunet-configuration -+ gnunet-configuration? -+ (gnunet gnunet-configuration-package -+ (default gnunet)) -+ (config-file gnunet-configuration-config-file -+ (default (plain-file "empty" "")))) -+ -+(define %default-gnunet-config-file -+ (plain-file "gnunet.conf" " -+[PATHS] -+SERVICEHOME = /var/lib/gnunet -+GNUNET_CONFIG_HOME = /var/lib/gnunet -+ -+[arm] -+SYSTEM_ONLY = NO -+USER_ONLY = NO -+ -+[nat] -+BEHIND_NAT = YES -+ENABLE_UPNP = YES -+ -+[hostlist] -+OPTIONS = -b -e -+")) -+ -+(define gnunet-shepherd-service -+ (match-lambda -+ (($ package config-file) -+ (list (shepherd-service -+ (provision '(gnunet)) -+ (requirement '(user-processes loopback networking)) -+ (documentation "Run the GNUnet service.") -+ (start -+ (let ((gnunet -+ (file-append package "/lib/gnunet/libexec/gnunet-service-arm"))) -+ #~(make-forkexec-constructor -+ (list #$gnunet "-c" #$config-file "-d") -+ #:pid-file "/var/run/gnunet/arm-service.pid" -+ #:user "gnunet" -+ #:group "gnunet" -+ ;;#:log-file "/var/lib/gnunet/gnunet.log"))) -+ #:log-file "/var/log/gnunet.log"))) -+ (stop #~(make-kill-destructor))))))) -+ -+(define %gnunet-accounts -+ (list (user-group (name "gnunetdns") (system? #t)) -+ (user-group (name "gnunet") (system? #t)) -+ (user-account -+ (name "gnunet") -+ (group "gnunet") -+ (system? #t) -+ (comment "GNUnet system user") -+ (home-directory "/var/empty") -+ (shell (file-append shadow "/sbin/nologin"))))) -+ -+;; ${GNUNET_HOME}/.local/share/gnunet/gnunet.conf -> chmod 600 -+;; mkdir -p ${GNUNET_HOME}/.cache/gnunet -+ -+(define gnunet-activation -+ (match-lambda -+ (($ package config-file) -+ (let ((gnunet -+ (file-append package "/lib/gnunet/libexec/gnunet-service-arm"))) -+ #~(begin -+ (use-modules (guix build utils)) -+ (define %user (getpw "gnunet")) -+ (mkdir-p "/var/lib/gnunet/") -+ (chown "/var/lib/gnunet" (passwd:uid %user) (passwd:gid %user)) -+ ;;(chmod "/var/lib/gnunet/" #o755) -+ (mkdir-p "/var/lib/gnunet/.local/share/gnunet") -+ (mkdir-p "/var/lib/gnunet/.cache/gnunet") -+ (mkdir-p "/var/lib/gnunet/hostlist") -+ (mkdir-p "/var/lib/gnunet/.config/gnunet") -+ (chown "/var/lib/gnunet/.local/share/gnunet" (passwd:uid %user) (passwd:gid %user)) -+ (chown "/var/lib/gnunet/.cache/gnunet" (passwd:uid %user) (passwd:gid %user)) -+ (chown "/var/lib/gnunet/hostlist" (passwd:uid %user) (passwd:gid %user)) -+ ;;(chown "/var/lib/gnunet/gnunet.conf" (passwd:uid %user) (passwd:gid %user)) -+ (chown "/var/lib/gnunet/.config/gnunet" (passwd:uid %user) (passwd:gid %user))))))) -+ ;;(chmod "/var/lib/gnunet/.config/gnunet" #o755) -+ ;;(chmod "/var/lib/gnunet/.cache/gnunet" #o755) -+ ;;(chmod "/var/lib/gnunet/.local/share/gnunet" #o755)))))) -+ -+;; SUID_ROOT_HELPERS="exit nat-server nat-client transport-bluetooth transport-wlan vpn" -+;; set chmod u+s for those above. -+;; chmodown_execbin ${libexec}/gnunet-helper-dns 4750 root:gnunetdns -+;; chmodown_execbin ${libexec}/gnunet-service-dns 2750 gnunet:gnunetdns -+(define gnunet-setuid-programs -+ (match-lambda -+ (($ package) -+ (list (file-append package "/lib/gnunet/libexec/gnunet-helper-exit") -+ (file-append package "/lib/gnunet/libexec/gnunet-helper-nat-server") -+ (file-append package "/lib/gnunet/libexec/gnunet-helper-nat-client") -+ (file-append package "/lib/gnunet/libexec/gnunet-helper-transport-bluetooth") -+ (file-append package "/lib/gnunet/libexec/gnunet-helper-transport-wlan") -+ (file-append package "/lib/gnunet/libexec/gnunet-helper-vpn"))))) -+ -+(define gnunet-service-type -+ (service-type -+ (name 'gnunet) -+ (extensions (list (service-extension account-service-type -+ (const %gnunet-accounts)) -+ (service-extension activation-service-type -+ gnunet-activation) -+ (service-extension profile-service-type -+ (compose list gnunet-configuration-package)) -+ (service-extension setuid-program-service-type -+ gnunet-setuid-programs) -+ (service-extension shepherd-root-service-type -+ gnunet-shepherd-service))))) -+;;; --- here starts the rewrite. -+ - ;;; networking.scm ends here --- -2.17.0 - diff --git a/contrib/services/shepherd/ng0_wip/001-gnu-services-Add-gnunet-service.patch b/contrib/services/shepherd/ng0_wip/001-gnu-services-Add-gnunet-service.patch deleted file mode 100644 index 0017ec8cf..000000000 --- a/contrib/services/shepherd/ng0_wip/001-gnu-services-Add-gnunet-service.patch +++ /dev/null @@ -1,204 +0,0 @@ -From 91241bacb6533745535ff28d20f087ecd571e7be Mon Sep 17 00:00:00 2001 -From: ng0 -Date: Mon, 12 Sep 2016 12:26:52 +0000 -Subject: [PATCH] gnu: services: Add gnunet-service. - ---- - doc/guix.texi | 36 ++++++++++++++ - gnu/services/networking.scm | 114 +++++++++++++++++++++++++++++++++++++++++++- - 2 files changed, 149 insertions(+), 1 deletion(-) - -diff --git a/doc/guix.texi b/doc/guix.texi -index 99bde4aca..6c683393e 100644 ---- a/doc/guix.texi -+++ b/doc/guix.texi -@@ -8903,6 +8903,42 @@ Boolean values @var{ipv4?} and @var{ipv6?} determine whether to use IPv4/IPv6 - sockets. - @end deffn - -+@cindex GNUnet -+@cindex gnunet -+@subsubheading GNUnet Service -+ -+@deffn {Scheme Variable} gnunet-service-type -+This is the type of the @uref{https://gnunet.org, GNUnet} -+service, whose value should be an @code{gnunet-configuration} object -+as in this example: -+ -+@example -+(service gnunet-service-type -+ (gnunet-configuration -+ (config-file (local-file "./gnunet.conf")))) -+@end example -+@end deffn -+ -+@deftp {Data Type} gnunet-configuration -+Data type representing the configuration of GNUnet. -+ -+@table @asis -+@item @code{package} (default: @var{gnunet}) -+Package object of the GNUnet service. -+ -+@item @code{config-file} (default: @var{%default-gnunet-file}) -+File-like object of the GNUnet configuration file to use. For NAT is -+assumes by default that you are behind a NAT (@var{BEHIND_NAT = YES}) -+and enables UPNP (@var{ENABLE_UPNP = YES}). -+The hostlist is configured with the options @var{-b} (bootstrap using -+configured hostlist servers) and @var{-e} (enable learning advertised hostlists). -+Read the configuration files in @var{"~/.guix-profile/share/gnunet/config.d/"} -+for more information. These files also set the defaults when you don't set -+any explicit values to override them. -+ -+@end table -+@end deftp -+ - - @node X Window - @subsubsection X Window -diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm -index d672ecf68..ff3615ea2 100644 ---- a/gnu/services/networking.scm -+++ b/gnu/services/networking.scm -@@ -3,6 +3,7 @@ - ;;; Copyright © 2015 Mark H Weaver - ;;; Copyright © 2016 Efraim Flashner - ;;; Copyright © 2016 John Darrington -+;;; Copyright © 2016 ng0 - ;;; - ;;; This file is part of GNU Guix. - ;;; -@@ -27,6 +28,7 @@ - #:use-module (gnu system pam) - #:use-module (gnu packages admin) - #:use-module (gnu packages connman) -+ #:use-module (gnu packages gnunet) - #:use-module (gnu packages linux) - #:use-module (gnu packages tor) - #:use-module (gnu packages messaging) -@@ -66,7 +68,12 @@ - wicd-service - network-manager-service - connman-service -- wpa-supplicant-service-type)) -+ wpa-supplicant-service-type -+ -+ gnunet-configuration -+ gnunet-configuration? -+ gnunet-service-type -+ %default-gnunet-config-file)) - - ;;; Commentary: - ;;; -@@ -781,4 +788,109 @@ configure networking." - (service-extension dbus-root-service-type list) - (service-extension profile-service-type list))))) - -+ -+;;; GNUnet -+;;; -+;;; -+ -+(define-record-type* -+ gnunet-configuration make-gnunet-configuration -+ gnunet-configuration? -+ (package gnunet-configuration-package -+ (default gnunet)) -+ (config-file gnunet-configuration-config-file -+ (default %default-gnunet-config-file))) -+ -+(define %default-gnunet-config-file -+ (plain-file "gnunet.conf" " -+[PATHS] -+SERVICEHOME = /var/lib/gnunet -+GNUNET_CONFIG_HOME = /var/lib/gnunet -+ -+[arm] -+SYSTEM_ONLY = YES -+USER_ONLY = NO -+ -+[nat] -+BEHIND_NAT = YES -+ENABLE_UPNP = YES -+ -+[hostlist] -+OPTIONS = -b -e -+")) -+ -+(define gnunet-shepherd-service -+ (match-lambda -+ (($ package config-file) -+ (list (shepherd-service -+ (provision '(gnunet)) -+ (requirement '(user-processes loopback)) -+ (documentation "Run the GNUnet service.") -+ (start -+ (let ((gnunet -+ (file-append package "/lib/gnunet/libexec/gnunet-service-arm"))) -+ #~(make-forkexec-constructor -+ (list #$gnunet "-c" #$config-file) -+ #:pid-file "/var/run/gnunet.pid"))) -+ (stop -+ #~(make-kill-destructor -+ (list #$gnunet "-e")))))))) -+ -+(define %gnunet-accounts -+ (list (user-group -+ (name "gnunetdns") -+ (system? #t)) -+ (user-group -+ (name "gnunet") -+ (system? #t)) -+ (user-account -+ (name "gnunet") -+ (group "gnunet") -+ (system? #t) -+ (comment "GNUnet system user") -+ (home-directory "/var/empty") -+ (shell #~(string-append #$shadow "/sbin/nologin"))))) -+ -+(define gnunet-activation -+ (match-lambda -+ (($ package config-file) -+ (let ((gnunet -+ (file-append package "/lib/gnunet/libexec/gnunet-service-arm"))) -+ #~(begin -+ (use-modules (guix build utils)) -+ (define %user (getpw "gnunet")) -+ (mkdir-p "/var/lib/gnunet/") -+ (chown "/var/lib/gnunet" (passwd:uid %user) (passwd:gid %user)) -+ (chmod "/var/lib/gnunet/" #o600) -+ (mkdir-p "/var/lib/gnunet/.local/share/gnunet") -+ (mkdir-p "/var/lib/gnunet/.cache/gnunet") -+ (mkdir-p "/var/lib/gnunet/.config/gnunet") -+ (chmod "/var/lib/gnunet/.config/gnunet" #o600) -+ (chmod "/var/lib/gnunet/.cache/gnunet" #o600) -+ (chmod "/var/lib/gnunet/.local/share/gnunet" #o600)))))) -+ -+(define gnunet-setuid-programs -+ (match-lambda -+ (($ package) -+ (list (file-append package "/lib/gnunet/libexec/gnunet-helper-exit") -+ (file-append package "/lib/gnunet/libexec/gnunet-helper-nat-server") -+ (file-append package "/lib/gnunet/libexec/gnunet-helper-nat-client") -+ (file-append package "/lib/gnunet/libexec/gnunet-helper-transport-bluetooth") -+ (file-append package "/lib/gnunet/libexec/gnunet-helper-transport-wlan") -+ (file-append package "/lib/gnunet/libexec/gnunet-helper-vpn"))))) -+ -+(define gnunet-service-type -+ (service-type -+ (name 'gnunet) -+ (extensions (list (service-extension account-service-type -+ (const %gnunet-accounts)) -+ (service-extension activation-service-type -+ gnunet-activation) -+ (service-extension profile-service-type -+ (compose list gnunet-configuration-package)) -+ (service-extension setuid-program-service-type -+ gnunet-setuid-programs) -+ (service-extension shepherd-root-service-type -+ gnunet-shepherd-service))))) -+ - ;;; networking.scm ends here --- -2.11.0 - diff --git a/contrib/services/shepherd/ng0_wip/README b/contrib/services/shepherd/ng0_wip/README deleted file mode 100644 index c36c10959..000000000 --- a/contrib/services/shepherd/ng0_wip/README +++ /dev/null @@ -1,11 +0,0 @@ -short notes: - -* you are not expected to be able to run this as-is. -* you must keep it GPL3 licensed and NOT license it to GNUnet e.V., - for changes add your line to the header. -* does not apply to a guix checkout, you have to search and replace - the imported modules. in my development of plant, infotropique - services is equivalent to gnu services (same for packages) and plant - XYZ is guix XYZ. -* Understanding is optional. -* Patches come as context reading material. \ No newline at end of file diff --git a/contrib/services/shepherd/ng0_wip/gnunet.scm b/contrib/services/shepherd/ng0_wip/gnunet.scm deleted file mode 100644 index 80b807e74..000000000 --- a/contrib/services/shepherd/ng0_wip/gnunet.scm +++ /dev/null @@ -1,173 +0,0 @@ -;;; plant --- -;;; Copyright (C) 2016, 2017, 2018 Nils Gillmann -;;; -;;; This file is part of plant. -;;; -;;; plant is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; plant is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of thye GNU General Public License -;;; along with plant. If not, see . - -(define-module (infotropique services networking) - #:use-module (infotropique services) - #:use-module (infotropique services shepherd) - #:use-module (infotropique services dbus) - #:use-module (infotropique system shadow) - #:use-module (infotropique system pam) - #:use-module (infotropique packages admin) - #:use-module (infotropique packages connman) - #:use-module (infotropique packages linux) - #:use-module (infotropique packages tor) - #:use-module (infotropique packages messaging) - #:use-module (infotropique packages networking) - #:use-module (infotropique packages ntp) - #:use-module (infotropique packages wicd) - #:use-module (infotropique packages gnome) - #:use-module (infotropique packages gnunet) - #:use-module (plant gexp) - #:use-module (plant records) - #:use-module (plant modules) - #:use-module (srfi srfi-1) - #:use-module (srfi srfi-9) - #:use-module (srfi srfi-26) - #:use-module (ice-9 match) - #:export (gnunet-configuration - gnunet-configuration? - gnunet-service - gnunet-service-type)) - -;;; -;;; Commentary: -;;; gnunet (GNUnet) related services, mainly gnunet itself. -;;; - -;; GENTOO OpenRC: -DONE: depends on "net". -DONE: PIDFILE=/run/gnunet/arm-service.pid -SUID_ROOT_HELPERS=exit, nat-server, nat-client, transport-bluetooth, transport-wlan, vpn - -/var/lib/gnunet/.local/share/gnunet/gnunet.conf must be chmod 600 and chown gnunet:gnunet -/var/lib/gnunet/.cache/gnunet must exist. -/usr/lib/gnunet/libexec/gnunet-helper-SUID_ROOT_HELPERS must be s+u (--> suid) - -/usr/lib/gnunet/libexec/gnunet-helper-dns must be: chown root:gnunetdns and chmod 4750 -/usr/lib/gnunet/libexec/gnunet-service-dns must be: chown gnunet:gnunetdns and chmod 2750 - -directory with PID file must then be chowned by gnunet:gnunet - -user gnunet startet dann /usr/lib/gnunet/libexec/gnunet-service-arm -d - -stop process hat: -start-stop-daemon --stop --signal QUIT --pidfile ${PIDFILE} -sleep 1 -killall -u gnunet -sleep 1 -rm -rf /tmp/gnunet-gnunet-runtime >/dev/null 2>&1 -rm -rf /tmp/gnunet-system-runtime >/dev/null 2>&1 - -/etc/nsswitch.conf kriegt den eintrag: -hosts: files gns [NOTFOUND=return] dns - -und die dateien die in der source rumliegen bzgl nss müssen noch kopiert werden -UND nss muss sie finden. - - - -(define-record-type* - gnunet-configuration make-gnunet-configuration - gnunet-configuration? - (package gnunet-configuration-package - (default gnunet)) - (config-file gnunet-configuration-config-file - (default %default-gnunet-config-file))) - -;; TODO: [PATHS] DEFAULTCONFIG = ? -(define %default-gnunet-config-file - (plain-file "gnunet.conf" " -[PATHS] -SERVICEHOME = /var/lib/gnunet -GNUNET_CONFIG_HOME = /var/lib/gnunet - -[arm] -SYSTEM_ONLY = YES -USER_ONLY = NO - -[nat] -BEHIND_NAT = YES -ENABLE_UPNP = NO -USE_LOCALADDR = NO -DISABLEV6 = YES - -[hostlist] -OPTIONS = -b -e -")) - -(define gnunet-shepherd-service - (match-lambda - (($ package config-file) - (list (shepherd-service - (provision '(gnunet)) - ;; do we require networking? arm will try to reconnect until a connection - ;; exists (again), but we might also set up vpn and not succeed at service - ;; boot time as well as the general certificate issue we have especially on - ;; Guix-on-GuixSD systems. - (requirement '(loopback)) - (documentation "Run the GNUnet service.") - (start - (let ((gnunet - (file-append package "/lib/gnunet/libexec/gnunet-service-arm"))) - #~(make-forkexec-constructor - (list #$gnunet "-c" #$config-file) - #:log-file "/var/log/gnunet.log" - #:pid-file "/var/run/gnunet/arm-service.pid"))) - (stop - #~(make-kill-destructor))))))) - -(define %gnunet-accounts - (list (user-group - (name "gnunetdns") - (system? #t)) - (user-group - (name "gnunet") - (system? #t)) - (user-account - (name "gnunet") - (group "gnunet") - (system? #t) - (comment "GNUnet system user") - (home-directory "/var/lib/gnunet") - (shell #~(string-append #$shadow "/sbin/nologin"))))) - -;; TODO: setuids. -;; TODO: certificate issues -- gnunet should honor CURL_CA_BUNDLE! -(define gnunet-activation - (match-lambda - (($ package config-file) - (let ((gnunet - (file-append package "/lib/gnunet/libexec/gnunet-service-arm"))) - #~(begin - ;; Create the .config + .cache for gnunet user - (mkdir-p "/var/lib/gnunet/.config/gnunet") - (mkdir-p "/var/lib/gnunet/.cache/gnunet")))))) - -(define gnunet-service-type - (service-type - (name 'gnunet) - (extensions (list (service-extension account-service-type - (const %gnunet-accounts)) - (service-extension activation-service-type - gnunet-activation) - (service-extension profile-service-type - (compose list gnunet-configuration-package)) - (service-extension shepherd-root-service-type - gnunet-shepherd-service))))) - -;;; gnunet.scm ends here diff --git a/contrib/services/shepherd/ng0_wip/janneke-os-modified.scm b/contrib/services/shepherd/ng0_wip/janneke-os-modified.scm deleted file mode 100644 index d75d14598..000000000 --- a/contrib/services/shepherd/ng0_wip/janneke-os-modified.scm +++ /dev/null @@ -1,62 +0,0 @@ -(use-modules (gnu)) -(use-service-modules -;; admin - base - mcron - networking - ssh) - -(use-package-modules - admin - ssh - version-control - gnunet) - -(define %user (getenv "USER")) - -(define os - (operating-system - (host-name "os") - (timezone "Europe/Amsterdam") - (locale "en_US.UTF-8") - - (bootloader - (grub-configuration - (device "/dev/sda"))) - - (file-systems - (cons* (file-system (mount-point "/") - (device "/dev/sda1") - (type "ext4")) - %base-file-systems)) - - (groups - (cons* (user-group (name %user)) - %base-groups)) - - (users - (cons* (user-account (name %user) - (group %user) - (password (crypt "" "xx")) - (uid 1000) - (supplementary-groups '("wheel" "gnunet")) - (home-directory (string-append "/home/" %user))) - %base-user-accounts)) - - (packages - (cons* - git - openssh - gnunet - %base-packages)) - - (services - (cons* - (dhcp-client-service) - (lsh-service #:port-number 2222 - #:allow-empty-passwords? #t - #:root-login? #t) - (gnunet-service) - %base-services - )))) -os -- 2.25.1