gnu: Add openresolv.

* gnu/packages/dns.scm (openresolv): New variable.
This commit is contained in:
Brice Waegeneire 2020-04-29 13:57:00 +02:00
parent 15014dc618
commit 6b6647f815
No known key found for this signature in database
GPG key ID: A94903A166A18FAE
3 changed files with 68 additions and 0 deletions

View file

@ -34,6 +34,7 @@
# Copyright © 2020 Felix Gruber <felgru@posteo.net>
# Copyright © 2020 Ryan Prior <rprior@protonmail.com>
# Copyright © 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
# Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
#
# This file is part of GNU Guix.
#
@ -1322,6 +1323,7 @@ dist_patch_DATA = \
%D%/packages/patches/openmpi-mtl-priorities.patch \
%D%/packages/patches/openocd-nrf52.patch \
%D%/packages/patches/openssh-hurd.patch \
%D%/packages/patches/openresolv-restartcmd-guix.patch \
%D%/packages/patches/openssl-runpath.patch \
%D%/packages/patches/openssl-1.1-c-rehash-in.patch \
%D%/packages/patches/openssl-c-rehash-in.patch \

View file

@ -16,6 +16,7 @@
;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2020 Leo Famulari <leo@famulari.name>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;;
;;; This file is part of GNU Guix.
;;;
@ -1001,3 +1002,34 @@ (define-public maradns
consists of a UDP-only authoritative DNS server for hosting domains, and a UDP
and TCP-capable recursive DNS server for finding domains on the internet.")
(license license:bsd-2)))
(define-public openresolv
(package
(name "openresolv")
(version "3.10.0")
(source (origin
(method url-fetch)
(uri (string-append "https://roy.marples.name/downloads/openresolv/"
"openresolv-" version ".tar.xz"))
(sha256
(base32
"01ms6c087la4hk0f0w6n2vpsb7dg4kklah2rqyhz88p0vr9bqy20"))
(patches
(search-patches "openresolv-restartcmd-guix.patch"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; No test suite
#:configure-flags
(list (string-append "--sysconfdir=/etc"))
#:make-flags
(list (string-append "SYSCONFDIR=/" (assoc-ref %outputs "out") "/etc"))))
(home-page "https://roy.marples.name/projects/openresolv/")
(synopsis "Resolvconf POSIX compliant implementation, a middleman for resolv.conf")
(description "openresolv is an implementation of @command{resolvconf}, the
middleman between the network configuration services and
@file{/etc/resolv.conf}. @command{resolvconf} itself is just a script that
stores, removes and lists a full @file{resolv.conf} generated for the
interface. It then calls all the helper scripts it knows about so it can
configure the real @file{/etc/resolv.conf} and optionally any local
nameservers other than libc.")
(license license:bsd-2)))

View file

@ -0,0 +1,34 @@
From 7f0ce36828ec1e130bee857b8236ca091e4d8a2c Mon Sep 17 00:00:00 2001
From: Brice Waegeneire <brice@waegenei.re>
Date: Sat, 9 May 2020 15:52:06 +0200
Subject: [PATCH] Add RESTARTCMD for Guix System.
---
openresolv need to know how to restart the nscd service, this patch teach it
to do it on Guix System by using shepherd.
resolvconf.in | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/resolvconf.in b/resolvconf.in
index 3cad04d..5ef5294 100644
--- a/resolvconf.in
+++ b/resolvconf.in
@@ -369,6 +369,13 @@ detect_init()
then
/etc/rc.d/$1 restart
fi'
+ elif [ -e /gnu/store ] && [ -e /run/current-system/profile ]; then
+ # Guix System
+ RESTARTCMD='
+ if /run/current-system/profile/bin/herd status $1 2>&1
+ then
+ /run/current-system/profile/bin/herd restart $1
+ fi'
else
for x in /etc/init.d/rc.d /etc/rc.d /etc/init.d; do
[ -d $x ] || continue
--
2.26.0