(address . guix-patches@gnu.org)
From: Sören Tempel <soeren@soeren-tempel.net>
* gnu/packages/admin.scm (dhcpcd): new procedure.
Signed-off-by: Sören Tempel <soeren@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.
gnu/packages/admin.scm | 56 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 56 insertions(+)
Toggle diff (69 lines)
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