GNU bug report logs - #75494
[PATCH] gnu: Add dhcpcd.

Previous Next

Package: guix-patches;

Reported by: soeren <at> soeren-tempel.net

Date: Sat, 11 Jan 2025 12:59:01 UTC

Severity: normal

Tags: patch

Done: Zheng Junjie <zhengjunjie <at> iscas.ac.cn>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Zheng Junjie <zhengjunjie <at> iscas.ac.cn>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#75494: closed ([PATCH] gnu: Add dhcpcd.)
Date: Mon, 27 Jan 2025 03:53:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Mon, 27 Jan 2025 11:52:25 +0800
with message-id <87tt9kzzeu.fsf <at> iscas.ac.cn>
and subject line Re: [bug#75494] [PATCH] gnu: Add dhcpcd.
has caused the debbugs.gnu.org bug report #75494,
regarding [PATCH] gnu: Add dhcpcd.
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
75494: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=75494
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: soeren <at> soeren-tempel.net
To: guix-patches <at> gnu.org
Subject: [PATCH] gnu: Add dhcpcd.
Date: Sat, 11 Jan 2025 13:55:14 +0100
From: Sören Tempel <soeren <at> soeren-tempel.net>

* gnu/packages/admin.scm (dhcpcd): new procedure.

Signed-off-by: Sören Tempel <soeren <at> soeren-tempel.net>
---
This adds an alternative to isc-dhcpd which has reached its end-of-life
in 2022 (i.e. three years ago!) and hasn't been maintained and patched
upstream since [1]. This patch has been extracted from #68675 [2] in the
hopes that it will be easier to get the package merged first and then
propose either a standalone services [3] or a service integrated into
dhcp-client-service-type [4] separatly afterwards.

[1]: https://issues.guix.gnu.org/68619
[2]: https://issues.guix.gnu.org/68675
[3]: https://github.com/nmeum/guix-channel/blob/b1b80697a9d35ca015ce56ccf3031f91f2bf554f/src/nmeum/services/networking.scm#L130-L132
[4]: https://issues.guix.gnu.org/68675#10

 gnu/packages/admin.scm | 56 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)

diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 7fd05341993..2e9640a9e1e 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -1712,6 +1712,62 @@ (define-public isc-dhcp
       (license license:mpl2.0)
       (properties '((cpe-name . "dhcp"))))))
 
+(define-public dhcpcd
+  (package
+    (name "dhcpcd")
+    (version "10.0.6")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/NetworkConfiguration/dhcpcd")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32 "07n7d5wsmy955i6l8rkcmxhgxjygj2cxgpw79id2hx9w41fbkl5l"))
+       (file-name (git-file-name name version))))
+    (inputs (list bash-minimal))
+    (native-inputs (list eudev))
+    (build-system gnu-build-system)
+    (arguments
+     (list
+      #:test-target "test"
+      #:configure-flags #~(list "--enable-ipv6"
+                                "--enable-privsep"
+                                "--privsepuser=dhcpcd"
+                                (string-append "--dbdir=" "/var/db/dhcpcd")
+                                (string-append "--rundir=" "/var/run/dhcpcd")
+                                (string-append "CC=" #$(cc-for-target)))
+      #:phases #~(modify-phases %standard-phases
+                   (add-after 'unpack 'do-not-create-dbdir
+                     (lambda _
+                       ;; Make sure that the Makefile doesn't attempt to create
+                       ;; /var/db/dhcpcd for which it doesn't have permissions.
+                       (substitute* "src/Makefile"
+                         (("\\$\\{INSTALL\\} -m \\$\\{DBMODE\\} -d \\$\\{DESTDIR\\}\\$\\{DBDIR\\}")
+                          ""))))
+                   (add-before 'build 'setenv
+                     (lambda _
+                       (setenv "HOST_SH" (which "sh"))))
+                   (add-after 'install 'wrap-hooks
+                     (lambda* (#:key inputs outputs #:allow-other-keys)
+                       (let* ((out (assoc-ref outputs "out"))
+                              (libexec (string-append out "/libexec"))
+                              (sed (search-input-file inputs "/bin/sed"))
+                              (rm (search-input-file inputs "/bin/rm")))
+                         (wrap-program (string-append libexec
+                                                      "/dhcpcd-run-hooks")
+                           `("PATH" ":" suffix
+                             (,(dirname sed)
+                              ,(dirname rm))))))))))
+    (home-page "https://roy.marples.name/projects/dhcpcd")
+    (synopsis "Feature-rich DHCP and DHCPv6 client")
+    (description
+     "Provides a DHCP and a DHCPv6 client.  Additionally,
+dhcpcd is also an IPv4LL (aka ZeroConf) client.  In layperson's terms,
+dhcpcd runs on your machine and silently configures your computer to work
+on the attached networks without trouble and mostly without configuration.")
+    (license license:bsd-2)))
+
 (define-public radvd
   (package
     (name "radvd")

base-commit: bd24a13c572f1c4cf0e104adc7ca81fe71fee632


[Message part 3 (message/rfc822, inline)]
From: Zheng Junjie <zhengjunjie <at> iscas.ac.cn>
To: soeren <at> soeren-tempel.net
Cc: Sharlatan Hellseher <sharlatanus <at> gmail.com>, 75494-done <at> debbugs.gnu.org
Subject: Re: [bug#75494] [PATCH] gnu: Add dhcpcd.
Date: Mon, 27 Jan 2025 11:52:25 +0800
[Message part 4 (text/plain, inline)]
soeren <at> soeren-tempel.net writes:

> From: Sören Tempel <soeren <at> soeren-tempel.net>
>
> * gnu/packages/admin.scm (dhcpcd): new procedure.
>
> Signed-off-by: Sören Tempel <soeren <at> soeren-tempel.net>

see https://guix.gnu.org/manual/devel/en/html_node/Commit-Access.html#Commit-Policy
|   When pushing a commit on behalf of somebody else, please add a
|‘Signed-off-by’ line at the end of the commit log message—e.g., with
|‘git am --signoff’.  This improves tracking of who did what.

So you don't need to add this line

> ---
> This adds an alternative to isc-dhcpd which has reached its end-of-life
> in 2022 (i.e. three years ago!) and hasn't been maintained and patched
> upstream since [1]. This patch has been extracted from #68675 [2] in the
> hopes that it will be easier to get the package merged first and then
> propose either a standalone services [3] or a service integrated into
> dhcp-client-service-type [4] separatly afterwards.
>
> [1]: https://issues.guix.gnu.org/68619
> [2]: https://issues.guix.gnu.org/68675
> [3]: https://github.com/nmeum/guix-channel/blob/b1b80697a9d35ca015ce56ccf3031f91f2bf554f/src/nmeum/services/networking.scm#L130-L132
> [4]: https://issues.guix.gnu.org/68675#10
>
>  gnu/packages/admin.scm | 56 ++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 56 insertions(+)
>
> diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
> index 7fd05341993..2e9640a9e1e 100644
> --- a/gnu/packages/admin.scm
> +++ b/gnu/packages/admin.scm
> @@ -1712,6 +1712,62 @@ (define-public isc-dhcp
>        (license license:mpl2.0)
>        (properties '((cpe-name . "dhcp"))))))
>  
> +(define-public dhcpcd
> +  (package
> +    (name "dhcpcd")
> +    (version "10.0.6")
> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "https://github.com/NetworkConfiguration/dhcpcd")
> +             (commit (string-append "v" version))))
> +       (sha256
> +        (base32 "07n7d5wsmy955i6l8rkcmxhgxjygj2cxgpw79id2hx9w41fbkl5l"))
> +       (file-name (git-file-name name version))))
adjust to

(origin
 (uri ...)
 (file-name ...)
 (sha256 ...))

It's a general habit

> +    (inputs (list bash-minimal))

please test the cross-compilation next time.

I add coreutils-minimal for rm, add sed for sed, and move eudev from
native-inputs to inputs, because this is a compile-time library
dependency.


> +    (native-inputs (list eudev))
> +    (build-system gnu-build-system)
> +    (arguments
> +     (list
> +      #:test-target "test"
> +      #:configure-flags #~(list "--enable-ipv6"
> +                                "--enable-privsep"
> +                                "--privsepuser=dhcpcd"
> +                                (string-append "--dbdir=" "/var/db/dhcpcd")
> +                                (string-append "--rundir=" "/var/run/dhcpcd")
> +                                (string-append "CC=" #$(cc-for-target)))
> +      #:phases #~(modify-phases %standard-phases
> +                   (add-after 'unpack 'do-not-create-dbdir
> +                     (lambda _
> +                       ;; Make sure that the Makefile doesn't attempt to create
> +                       ;; /var/db/dhcpcd for which it doesn't have permissions.
> +                       (substitute* "src/Makefile"
> +                         (("\\$\\{INSTALL\\} -m \\$\\{DBMODE\\} -d \\$\\{DESTDIR\\}\\$\\{DBDIR\\}")

I added a \ to avoid being too long

> +                          ""))))
> +                   (add-before 'build 'setenv
> +                     (lambda _
> +                       (setenv "HOST_SH" (which "sh"))))
> +                   (add-after 'install 'wrap-hooks
> +                     (lambda* (#:key inputs outputs #:allow-other-keys)
> +                       (let* ((out (assoc-ref outputs "out"))
> +                              (libexec (string-append out "/libexec"))
> +                              (sed (search-input-file inputs "/bin/sed"))
> +                              (rm (search-input-file inputs "/bin/rm")))
> +                         (wrap-program (string-append libexec
> +                                                      "/dhcpcd-run-hooks")

adjust to (string-append #$output "/libexec/dhcpcd-run-hooks").

> +                           `("PATH" ":" suffix
> +                             (,(dirname sed)
> +                              ,(dirname rm))))))))))
> +    (home-page "https://roy.marples.name/projects/dhcpcd")
> +    (synopsis "Feature-rich DHCP and DHCPv6 client")
> +    (description
> +     "Provides a DHCP and a DHCPv6 client.  Additionally,
> +dhcpcd is also an IPv4LL (aka ZeroConf) client.  In layperson's terms,
> +dhcpcd runs on your machine and silently configures your computer to work
> +on the attached networks without trouble and mostly without configuration.")
> +    (license license:bsd-2)))
> +
>  (define-public radvd
>    (package
>      (name "radvd")
>
> base-commit: bd24a13c572f1c4cf0e104adc7ca81fe71fee632
pushed, closing.
[signature.asc (application/pgp-signature, inline)]

This bug report was last modified 118 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.