* [bug#71064] [PATCH 0/7] Nsncd: Introduce package + nscd service update
@ 2024-05-19 12:34 picnoir
2024-05-19 12:46 ` [bug#71064] [PATCH 1/7] gnu: Add rust-libc-0.2.153 picnoir
` (7 more replies)
0 siblings, 8 replies; 10+ messages in thread
From: picnoir @ 2024-05-19 12:34 UTC (permalink / raw)
To: 71064; +Cc: Picnoir
From: Picnoir <picnoir@alternativebit.fr>
Hey Guix,
Some context first. Nscd is a daemon distributed through Glibc originally used
to cache the potentially expensive NSS requests. NSS modules are usually
distributed as shared libraries that are DL-opened at runtime by the programs
linked against glibc. This interface is unstable, Glibc advise to always build
the NSS modules with the same Glibc version the host system uses. This is
obviously an issue for us: a single system closure can contain programs built
against different Glibc versions.
In Guix, we're mis-using Nscd to provide a ABI compatibility layer to load NSS
modules for programs built against a different GLIBC version than the system
one. Nscd is set with a TTL to 0 to disable the caching feature of the
original tool. While this works fine most of the times, it sometimes still
caches failed domain names resolution. It happens quite often While switching
between wifi networks for instance.
Nsncd is a non-caching Nscd replacement. It was originally written
NixOS adopted this Nscd replacement last year. This migration solved the
unwanted caching issues there.
This patch introduces the Nsnncd package and modifies the current Nscd service
adding a flag to use Nsncd instead of Nscd. This flag is disabled by default.
Package-wise: I had to introduce a bunch of packages to please the Cargo
version resolver. I'm a upstream contributor, I can probably relax those later
on. I was a bit shy to bump rust-nix for all the packages, I just introduced a
new version of it.
Service-wise: I introduced a new flag in the Nscd service instead of creating
a new Nsncd service from scratch to keep the existing service dependency
graph. It does not make 100% sense because Nsncd does not share the same CLI
API with Nscd. Nsncd actually does not support any configuration file. 🤷
Picnoir (7):
gnu: Add rust-libc-0.2.153.
gnu: Add rust-nix-0.28.
gnu: Add rust-dns-lookup-2.
gnu: Add rust-temp-env-0.3.
gnu: Add rust-slog-async-2-8.
gnu: Add nsncd.
gnu: services: nscd: add Nsncd optional support.
gnu/packages/crates-io.scm | 112 +++++++++++++++++++++++++++++++++++++
gnu/packages/nss.scm | 44 +++++++++++++++
gnu/services/base.scm | 9 ++-
3 files changed, 163 insertions(+), 2 deletions(-)
base-commit: cf5f7a8bf9ca2288700fcf351bbca0fc341ec969
--
2.41.0
^ permalink raw reply [flat|nested] 10+ messages in thread
* [bug#71064] [PATCH 1/7] gnu: Add rust-libc-0.2.153.
2024-05-19 12:34 [bug#71064] [PATCH 0/7] Nsncd: Introduce package + nscd service update picnoir
@ 2024-05-19 12:46 ` picnoir
2024-05-19 12:46 ` [bug#71064] [PATCH 2/7] gnu: Add rust-nix-0.28 picnoir
` (6 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: picnoir @ 2024-05-19 12:46 UTC (permalink / raw)
To: 71064; +Cc: Picnoir, Efraim Flashner
From: Picnoir <picnoir@alternativebit.fr>
* gnu/packages/crates-io.scm (rust-libc-0.2.153): New variable. Required by
rust-nix 0.18.
Change-Id: I95c6663b0262f3e893c38ed51c34176144e4f750
---
gnu/packages/crates-io.scm | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index cce3e8b0b1..e8e643589a 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -33597,6 +33597,19 @@ (define-public rust-libc-0.2
(license (list license:expat
license:asl2.0))))
+(define-public rust-libc-0.2.153
+ (package
+ (inherit rust-libc-0.2)
+ (name "rust-libc")
+ (version "0.2.153")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "libc" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1gg7m1ils5dms5miq9fyllrcp0jxnbpgkx71chd2i0lafa8qy6cw"))))))
+
(define-public rust-libc-print-0.1
(package
(name "rust-libc-print")
--
2.41.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [bug#71064] [PATCH 2/7] gnu: Add rust-nix-0.28.
2024-05-19 12:34 [bug#71064] [PATCH 0/7] Nsncd: Introduce package + nscd service update picnoir
2024-05-19 12:46 ` [bug#71064] [PATCH 1/7] gnu: Add rust-libc-0.2.153 picnoir
@ 2024-05-19 12:46 ` picnoir
2024-05-19 12:46 ` [bug#71064] [PATCH 3/7] gnu: Add rust-dns-lookup-2 picnoir
` (5 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: picnoir @ 2024-05-19 12:46 UTC (permalink / raw)
To: 71064; +Cc: Picnoir, Efraim Flashner
From: Picnoir <picnoir@alternativebit.fr>
* gnu/packages/crates-io.scm (rust-nix-0.28): New variable. Required by Nsncd.
Change-Id: I51964d3be9cfb5e78b727a1a9e400fb61e57321f
---
gnu/packages/crates-io.scm | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index e8e643589a..ecae320792 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -41005,6 +41005,37 @@ (define-public rust-nispor-1
(description "Unified interface for Linux network state querying.")
(license license:asl2.0)))
+(define-public rust-nix-0.28
+ (package
+ (name "rust-nix")
+ (version "0.28.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "nix" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1r0rylax4ycx3iqakwjvaa178jrrwiiwghcw95ndzy72zk25c8db"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-bitflags" ,rust-bitflags-2)
+ ("rust-cfg-if" ,rust-cfg-if-1)
+ ("rust-cfg-aliases" ,rust-cfg-aliases-0.1)
+ ("rust-libc" ,rust-libc-0.2.153)
+ ("rust-memoffset" ,rust-memoffset-0.9)
+ ("rust-pin-utils" ,rust-pin-utils-0.1))
+ #:cargo-development-inputs (("rust-assert-impl" ,rust-assert-impl-0.1)
+ ("rust-caps" ,rust-caps-0.5)
+ ("rust-parking-lot" ,rust-parking-lot-0.12)
+ ("rust-rand" ,rust-rand-0.8)
+ ("rust-semver" ,rust-semver-1)
+ ("rust-sysctl" ,rust-sysctl-0.4)
+ ("rust-tempfile" ,rust-tempfile-3))))
+ (home-page "https://github.com/nix-rust/nix")
+ (synopsis "Rust friendly bindings to *nix APIs")
+ (description "Rust friendly bindings to *nix APIs")
+ (license license:expat)))
+
(define-public rust-nix-0.27
(package
(name "rust-nix")
--
2.41.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [bug#71064] [PATCH 3/7] gnu: Add rust-dns-lookup-2.
2024-05-19 12:34 [bug#71064] [PATCH 0/7] Nsncd: Introduce package + nscd service update picnoir
2024-05-19 12:46 ` [bug#71064] [PATCH 1/7] gnu: Add rust-libc-0.2.153 picnoir
2024-05-19 12:46 ` [bug#71064] [PATCH 2/7] gnu: Add rust-nix-0.28 picnoir
@ 2024-05-19 12:46 ` picnoir
2024-05-19 12:46 ` [bug#71064] [PATCH 4/7] gnu: Add rust-temp-env-0.3 picnoir
` (4 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: picnoir @ 2024-05-19 12:46 UTC (permalink / raw)
To: 71064; +Cc: Picnoir, Efraim Flashner
From: Picnoir <picnoir@alternativebit.fr>
* gnu/packages/crates-io.scm (rust-dns-lookup-2): New variable. Required by
Nsncd.
Change-Id: I66a8488c93cc0c119417270db93733424a791069
---
gnu/packages/crates-io.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index ecae320792..1753dc0ac8 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -19942,6 +19942,31 @@ (define-public rust-dns-parser-0.8
not support network, only raw protocol parser.")
(license (list license:expat license:asl2.0))))
+(define-public rust-dns-lookup-2
+ (package
+ (name "rust-dns-lookup")
+ (version "2.0.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "dns-lookup" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1z74n2zij2gahycabm0gkmkyx574h76gwk7sz93yqpr3qa3n0xp5"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-cfg-if" ,rust-cfg-if-1)
+ ("rust-libc" ,rust-libc-0.2)
+ ("rust-socket2" ,rust-socket2-0.5)
+ ("rust-windows-sys" ,rust-windows-sys-0.48))))
+ (home-page "https://github.com/keeperofdakeys/dns-lookup/")
+ (synopsis
+ "A simple dns resolving api, much like rust's unstable api. Also includes getaddrinfo and getnameinfo wrappers for libc variants.")
+ (description
+ "This package provides a simple dns resolving api, much like rust's unstable api.
+ Also includes getaddrinfo and getnameinfo wrappers for libc variants.")
+ (license (list license:expat license:asl2.0))))
+
(define-public rust-dns-sd-0.1
(package
(name "rust-dns-sd")
--
2.41.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [bug#71064] [PATCH 4/7] gnu: Add rust-temp-env-0.3.
2024-05-19 12:34 [bug#71064] [PATCH 0/7] Nsncd: Introduce package + nscd service update picnoir
` (2 preceding siblings ...)
2024-05-19 12:46 ` [bug#71064] [PATCH 3/7] gnu: Add rust-dns-lookup-2 picnoir
@ 2024-05-19 12:46 ` picnoir
2024-05-19 12:46 ` [bug#71064] [PATCH 5/7] gnu: Add rust-slog-async-2-8 picnoir
` (3 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: picnoir @ 2024-05-19 12:46 UTC (permalink / raw)
To: 71064; +Cc: Picnoir, Efraim Flashner
From: Picnoir <picnoir@alternativebit.fr>
* gnu/packages/crates-io.scm (rust-temp-env-0.3): New variable. Required by
Nsncd.
Change-Id: I0cf5084339b889aa6fdaeeeca7b6be2ffcdcb48c
---
gnu/packages/crates-io.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 1753dc0ac8..2b71e1d588 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -68736,6 +68736,27 @@ (define-public rust-tectonic-xetex-layout-0.2
a C API.")
(license license:expat)))
+(define-public rust-temp-env-0.3
+ (package
+ (name "rust-temp-env")
+ (version "0.3.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "temp-env" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0l7hpkd0nhiy4w70j9xbygl1vjr9ipcfxii164n40iwg0ralhdwn"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-futures" ,rust-futures-0.3)
+ ("rust-parking-lot" ,rust-parking-lot-0.12))
+ #:cargo-development-inputs (("rust-tokio" ,rust-tokio-1))))
+ (home-page "https://github.com/vmx/temp-env")
+ (synopsis "Set environment variables temporarily.")
+ (description "Set environment variables temporarily.")
+ (license (list license:expat license:asl2.0))))
+
(define-public rust-temp-testdir-0.2
(package
(name "rust-temp-testdir")
--
2.41.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [bug#71064] [PATCH 5/7] gnu: Add rust-slog-async-2-8.
2024-05-19 12:34 [bug#71064] [PATCH 0/7] Nsncd: Introduce package + nscd service update picnoir
` (3 preceding siblings ...)
2024-05-19 12:46 ` [bug#71064] [PATCH 4/7] gnu: Add rust-temp-env-0.3 picnoir
@ 2024-05-19 12:46 ` picnoir
2024-05-19 12:46 ` [bug#71064] [PATCH 6/7] gnu: Add nsncd picnoir
` (2 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: picnoir @ 2024-05-19 12:46 UTC (permalink / raw)
To: 71064; +Cc: Picnoir, Efraim Flashner
From: Picnoir <picnoir@alternativebit.fr>
* gnu/packages/crates-io.scm (rust-slog-async-2-8): New variable. Required by
Nsncd.
Change-Id: I9f1a6041c92760b481acc30c0bddd28330b98b2c
---
gnu/packages/crates-io.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 2b71e1d588..2f574ee255 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -62944,6 +62944,28 @@ (define-public rust-slog-async-2
(description "This package provides an asynchronous drain for slog.")
(license (list license:mpl2.0 license:expat license:asl2.0))))
+(define-public rust-slog-async-2-8
+ (package
+ (name "rust-slog-async")
+ (version "2.8.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "slog-async" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "113b17aw7jx7mr68vwfq2yiv6mb4702hz6a0g587jb4ai67h7j3j"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5)
+ ("rust-slog" ,rust-slog-2)
+ ("rust-take-mut" ,rust-take-mut-0.2)
+ ("rust-thread-local" ,rust-thread-local-1))))
+ (home-page "https://github.com/slog-rs/slog")
+ (synopsis "Asynchronous drain for slog-rs")
+ (description "Asynchronous drain for slog-rs")
+ (license (list license:mpl2.0 license:expat license:asl2.0))))
+
(define-public rust-slog-kvfilter-0.7
(package
(name "rust-slog-kvfilter")
--
2.41.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [bug#71064] [PATCH 6/7] gnu: Add nsncd.
2024-05-19 12:34 [bug#71064] [PATCH 0/7] Nsncd: Introduce package + nscd service update picnoir
` (4 preceding siblings ...)
2024-05-19 12:46 ` [bug#71064] [PATCH 5/7] gnu: Add rust-slog-async-2-8 picnoir
@ 2024-05-19 12:46 ` picnoir
2024-05-19 12:46 ` [bug#71064] [PATCH 7/7] gnu: services: nscd: add Nsncd optional support picnoir
2024-06-02 18:52 ` [bug#71064] [PATCH 0/7] Nsncd: Introduce package + nscd service update Ludovic Courtès
7 siblings, 0 replies; 10+ messages in thread
From: picnoir @ 2024-05-19 12:46 UTC (permalink / raw)
To: 71064; +Cc: Picnoir
From: Picnoir <picnoir@alternativebit.fr>
* gnu/packages/nss.scm (nsncd): New variable. Introducing Nsncd, a non-caching
alternative of Glibc Nscd.
Change-Id: I18ba7ffbb6fb59c4928829bb98a8da4e6963e587
---
gnu/packages/nss.scm | 44 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
diff --git a/gnu/packages/nss.scm b/gnu/packages/nss.scm
index 162e748094..492b5ef3bd 100644
--- a/gnu/packages/nss.scm
+++ b/gnu/packages/nss.scm
@@ -28,6 +28,8 @@ (define-module (gnu packages nss)
#:use-module (guix utils)
#:use-module (guix gexp)
#:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module (guix build-system cargo)
#:use-module (guix build-system gnu)
#:use-module (guix build-system mozilla)
#:use-module ((guix licenses) #:prefix license:)
@@ -35,6 +37,7 @@ (define-module (gnu packages nss)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
+ #:use-module (gnu packages crates-io)
#:use-module (gnu packages compression)
#:use-module (gnu packages perl)
#:use-module (gnu packages sqlite))
@@ -286,3 +289,44 @@ (define-public nss/fixed
;; work around that, set the time to roughly the release date.
(invoke "faketime" "2024-01-23" "./nss/tests/all.sh"))
(format #t "test suite not run~%"))))))))))))
+
+(define-public nsncd
+ (package
+ (name "nsncd")
+ (version "unstable-2024-04-09")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/twosigma/nsncd")
+ (commit "7605e330d5a313a8656e6fcaf1c10cd6b5cdd427")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1hk8bh2a02nyk3rpzbjx1a2iiz15d0vx3ysa180wmr8gsc9ymph5"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-test-flags
+ '("--"
+ ; These tests fail with the current builder network setup
+ "--skip=ffi::test_gethostbyaddr_r"
+ "--skip=ffi::test_gethostbyname2_r")
+ #:cargo-inputs
+ (("rust-anyhow" ,rust-anyhow-1)
+ ("rust-atoi" ,rust-atoi-2)
+ ("rust-slog" ,rust-slog-2)
+ ("rust-slog-async" ,rust-slog-async-2-8)
+ ("rust-slog-term" ,rust-slog-term-2)
+ ("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5)
+ ("rust-nix" ,rust-nix-0.28)
+ ("rust-num-derive" ,rust-num-derive-0.3)
+ ("rust-num-traits" ,rust-num-traits-0.2)
+ ("rust-sd-notify" ,rust-sd-notify-0.4)
+ ("rust-static-assertions" ,rust-static-assertions-1)
+ ("rust-dns-lookup" ,rust-dns-lookup-2))
+ #:cargo-development-inputs
+ (("rust-criterion" ,rust-criterion-0.5)
+ ("rust-temp-env" ,rust-temp-env-0.3))))
+ (home-page "https://github.com/twosigma/nsncd")
+ (synopsis "The name service non-caching daemon")
+ (description "The name service non-caching daemon")
+ (license (list license:asl2.0))))
--
2.41.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [bug#71064] [PATCH 7/7] gnu: services: nscd: add Nsncd optional support.
2024-05-19 12:34 [bug#71064] [PATCH 0/7] Nsncd: Introduce package + nscd service update picnoir
` (5 preceding siblings ...)
2024-05-19 12:46 ` [bug#71064] [PATCH 6/7] gnu: Add nsncd picnoir
@ 2024-05-19 12:46 ` picnoir
2024-06-02 18:55 ` Ludovic Courtès
2024-06-02 18:52 ` [bug#71064] [PATCH 0/7] Nsncd: Introduce package + nscd service update Ludovic Courtès
7 siblings, 1 reply; 10+ messages in thread
From: picnoir @ 2024-05-19 12:46 UTC (permalink / raw)
To: 71064; +Cc: Picnoir
From: Picnoir <picnoir@alternativebit.fr>
* gnu/services/base.scm (services: nscd: add Nsncd optional support): Add a
new nscd-use-nscd? field in the Nscd configuration record. When set to #t, the
nscd service will use Nsncd in place of the Glibc's Nscd. I'm not 100% sure
adding this to the existing Nscd service is a good idea, it's however the most
convenient option for now. Or is it? :)
Change-Id: I73d03bd149ff005130e1ed2532e1b4b0e3d572f5
---
gnu/services/base.scm | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 85160bd3ab..66306384c0 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -79,6 +79,7 @@ (define-module (gnu services base)
#:select (bcachefs-tools exfat-utils jfsutils zfs))
#:use-module (gnu packages fonts)
#:use-module (gnu packages terminals)
+ #:use-module (gnu packages nss)
#:use-module ((gnu packages wm) #:select (sway))
#:use-module ((gnu build file-systems)
#:select (mount-flags->bit-mask
@@ -1284,6 +1285,8 @@ (define-deprecated (mingetty-service config)
(define-record-type* <nscd-configuration> nscd-configuration
make-nscd-configuration
nscd-configuration?
+ (use-nsncd? nscd-use-nsncd? ;boolean
+ (default #t))
(log-file nscd-configuration-log-file ;string
(default "/var/log/nscd.log"))
(debug-level nscd-debug-level ;integer
@@ -1447,12 +1450,14 @@ (define (nscd-shepherd-service config)
(requirement '(user-processes syslogd))
(start #~(make-forkexec-constructor
- (list #$nscd "-f" #$nscd.conf "--foreground")
+ #$(if (nscd-use-nsncd? config)
+ #~(list #$(file-append nsncd "/bin/nsncd"))
+ #~(list #$nscd "-f" #$nscd.conf "--foreground"))
;; Wait for the PID file. However, the PID file is
;; written before nscd is actually listening on its
;; socket (XXX).
- #:pid-file "/var/run/nscd/nscd.pid"
+ #$@(if (nscd-use-nsncd? config) '() '(#:pid-file "/var/run/nscd/nscd.pid"))
#:environment-variables
(list (string-append "LD_LIBRARY_PATH="
--
2.41.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [bug#71064] [PATCH 0/7] Nsncd: Introduce package + nscd service update
2024-05-19 12:34 [bug#71064] [PATCH 0/7] Nsncd: Introduce package + nscd service update picnoir
` (6 preceding siblings ...)
2024-05-19 12:46 ` [bug#71064] [PATCH 7/7] gnu: services: nscd: add Nsncd optional support picnoir
@ 2024-06-02 18:52 ` Ludovic Courtès
7 siblings, 0 replies; 10+ messages in thread
From: Ludovic Courtès @ 2024-06-02 18:52 UTC (permalink / raw)
To: picnoir; +Cc: 71064
Howdy Picnoir,
Thanks for the patch set! As you write, nsncd is going to be very
useful for Nix and Guix, so this is a much welcome addition.
picnoir@alternativebit.fr skribis:
> gnu: Add rust-libc-0.2.153.
> gnu: Add rust-nix-0.28.
> gnu: Add rust-dns-lookup-2.
> gnu: Add rust-temp-env-0.3.
> gnu: Add rust-slog-async-2-8.
> gnu: Add nsncd.
> gnu: services: nscd: add Nsncd optional support.
I applied everything but the last patch. I took the liberty to tweak
descriptions as per our guidelines¹, adding me as co-author. I also
changed the ‘version’ field of nsncd to remove the “unstable-” prefix.
Let me know if anything’s amiss.
As for the last patch, I’ll comment separately.
Thanks,
Ludo’.
¹ https://guix.gnu.org/manual/devel/en/html_node/Synopses-and-Descriptions.html
^ permalink raw reply [flat|nested] 10+ messages in thread
* [bug#71064] [PATCH 7/7] gnu: services: nscd: add Nsncd optional support.
2024-05-19 12:46 ` [bug#71064] [PATCH 7/7] gnu: services: nscd: add Nsncd optional support picnoir
@ 2024-06-02 18:55 ` Ludovic Courtès
0 siblings, 0 replies; 10+ messages in thread
From: Ludovic Courtès @ 2024-06-02 18:55 UTC (permalink / raw)
To: picnoir; +Cc: 71064
Hi,
picnoir@alternativebit.fr skribis:
> From: Picnoir <picnoir@alternativebit.fr>
>
> * gnu/services/base.scm (services: nscd: add Nsncd optional support): Add a
> new nscd-use-nscd? field in the Nscd configuration record. When set to #t, the
> nscd service will use Nsncd in place of the Glibc's Nscd. I'm not 100% sure
> adding this to the existing Nscd service is a good idea, it's however the most
> convenient option for now. Or is it? :)
Well, there needs to be a flag somehow. :-)
Nitpick: could you describe the changes at a syntactic level in the
commit log? I know our conventions aren’t common today, so whoever
commits it can eventually tweak it on your behalf if needed.
> + (use-nsncd? nscd-use-nsncd? ;boolean
> + (default #t))
I’m tempted to make it:
(implementation nscd-implementation (default 'glibc))
And thus 'nsncd would be the other supported value.
Do you think that makes sense?
Anyhow, could you adjust doc/guix.texi to mention the new field?
Apart from that, the patch looks good to me. Could you send an updated
version?
Thanks!
Ludo’.
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2024-06-03 4:57 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-19 12:34 [bug#71064] [PATCH 0/7] Nsncd: Introduce package + nscd service update picnoir
2024-05-19 12:46 ` [bug#71064] [PATCH 1/7] gnu: Add rust-libc-0.2.153 picnoir
2024-05-19 12:46 ` [bug#71064] [PATCH 2/7] gnu: Add rust-nix-0.28 picnoir
2024-05-19 12:46 ` [bug#71064] [PATCH 3/7] gnu: Add rust-dns-lookup-2 picnoir
2024-05-19 12:46 ` [bug#71064] [PATCH 4/7] gnu: Add rust-temp-env-0.3 picnoir
2024-05-19 12:46 ` [bug#71064] [PATCH 5/7] gnu: Add rust-slog-async-2-8 picnoir
2024-05-19 12:46 ` [bug#71064] [PATCH 6/7] gnu: Add nsncd picnoir
2024-05-19 12:46 ` [bug#71064] [PATCH 7/7] gnu: services: nscd: add Nsncd optional support picnoir
2024-06-02 18:55 ` Ludovic Courtès
2024-06-02 18:52 ` [bug#71064] [PATCH 0/7] Nsncd: Introduce package + nscd service update Ludovic Courtès
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).