Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package openresolv for openSUSE:Factory checked in at 2025-04-28 16:17:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/openresolv (Old) and /work/SRC/openSUSE:Factory/.openresolv.new.30101 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openresolv" Mon Apr 28 16:17:49 2025 rev:7 rq:1273077 version:3.15.0 Changes: -------- --- /work/SRC/openSUSE:Factory/openresolv/openresolv.changes 2025-03-31 11:44:54.148447455 +0200 +++ /work/SRC/openSUSE:Factory/.openresolv.new.30101/openresolv.changes 2025-04-28 16:18:15.914008606 +0200 @@ -1,0 +2,6 @@ +Sun Apr 27 14:21:08 UTC 2025 - Andrea Manzini <andrea.manz...@suse.com> + +- update to 3.15.0: + * Add support for systemd-resolved as resolvconf + +------------------------------------------------------------------- Old: ---- openresolv-3.14.1.tar.xz openresolv-3.14.1.tar.xz.asc New: ---- openresolv-3.15.0.tar.xz openresolv-3.15.0.tar.xz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ openresolv.spec ++++++ --- /var/tmp/diff_new_pack.7ChibN/_old 2025-04-28 16:18:16.750043636 +0200 +++ /var/tmp/diff_new_pack.7ChibN/_new 2025-04-28 16:18:16.754043804 +0200 @@ -17,7 +17,7 @@ Name: openresolv -Version: 3.14.1 +Version: 3.15.0 Release: 0 Summary: DNS management framework License: BSD-2-Clause @@ -39,7 +39,7 @@ %prep %autosetup -sed -i -e 's/^#!\/bin\/sh$//' named.in pdnsd.in dnsmasq.in unbound.in libc.in pdns_recursor.in +sed -i -e 's/^#!\/bin\/sh$//' named.in pdnsd.in dnsmasq.in unbound.in libc.in pdns_recursor.in systemd-resolved.in %build ./configure --bindir=%{_sbindir} --libexecdir=%{_libexecdir}/resolvconf ++++++ openresolv-3.14.1.tar.xz -> openresolv-3.15.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openresolv-3.14.1/.gitignore new/openresolv-3.15.0/.gitignore --- old/openresolv-3.14.1/.gitignore 2025-03-28 20:35:30.000000000 +0100 +++ new/openresolv-3.15.0/.gitignore 2025-04-25 21:09:48.000000000 +0200 @@ -9,6 +9,7 @@ named pdnsd pdns_recursor +systemd-resolved unbound avahi-daemon diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openresolv-3.14.1/Makefile new/openresolv-3.15.0/Makefile --- old/openresolv-3.14.1/Makefile 2025-03-28 20:35:30.000000000 +0100 +++ new/openresolv-3.15.0/Makefile 2025-04-25 21:09:48.000000000 +0200 @@ -24,7 +24,7 @@ MANMODE?= 0444 RESOLVCONF= resolvconf resolvconf.8 resolvconf.conf.5 -SUBSCRIBERS= libc dnsmasq named pdnsd pdns_recursor unbound +SUBSCRIBERS= libc dnsmasq named pdnsd pdns_recursor systemd-resolved unbound LIBC_SUBSCRIBERS= avahi-daemon mdnsd TARGET= ${RESOLVCONF} ${SUBSCRIBERS} ${LIBC_SUBSCRIBERS} SRCS= ${TARGET:C,$,.in,} # pmake diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openresolv-3.14.1/README.md new/openresolv-3.15.0/README.md --- old/openresolv-3.14.1/README.md 2025-03-28 20:35:30.000000000 +0100 +++ new/openresolv-3.15.0/README.md 2025-04-25 21:09:48.000000000 +0200 @@ -58,6 +58,7 @@ * [dnsmasq](http://www.thekelleys.org.uk/dnsmasq/doc.html) * [ISC BIND](http://www.isc.org/software/bind) * [PowerDNS Recursor](http://wiki.powerdns.com/trac) + * [systemd-resolved](https://www.freedesktop.org/software/systemd/man/latest/systemd-resolved.service.html) See the [configuration section](https://roy.marples.name/projects/openresolv/configuration) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openresolv-3.14.1/libc.in new/openresolv-3.15.0/libc.in --- old/openresolv-3.14.1/libc.in 2025-03-28 20:35:30.000000000 +0100 +++ new/openresolv-3.15.0/libc.in 2025-04-25 21:09:48.000000000 +0200 @@ -94,6 +94,9 @@ fi fi : ${resolv_conf:=/etc/resolv.conf} +if [ "$resolv_conf" = "/dev/null" ]; then + exit 0 +fi : ${resolv_conf_tmp:="$resolv_conf.$$.openresolv"} : ${libc_service:=nscd} : ${list_resolv:=@SBINDIR@/resolvconf -L} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openresolv-3.14.1/resolvconf.8.in new/openresolv-3.15.0/resolvconf.8.in --- old/openresolv-3.14.1/resolvconf.8.in 2025-03-28 20:35:30.000000000 +0100 +++ new/openresolv-3.15.0/resolvconf.8.in 2025-04-25 21:09:48.000000000 +0200 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd March 24, 2025 +.Dd April 21, 2025 .Dt RESOLVCONF 8 .Os .Sh NAME @@ -46,7 +46,7 @@ .Fl d Ar interface Ns Op Ar .protocol .Nm .Op Fl x -.Fl iLl Ar pattern +.Fl iLlp Ar pattern .Nm .Fl u .Nm @@ -149,10 +149,14 @@ Set the metric of the interface when adding it, default of 0. Lower metrics take precedence. This affects the default order of interfaces when listed. -.It Fl p +.It Fl p Op Ar pattern Marks the interface .Pa resolv.conf -as private. +as private if the +.Fl a +command is given, otherwise private interfaces matching +.Ar pattern +are listed. .It Fl x Mark the interface .Pa resolv.conf @@ -162,13 +166,13 @@ .Nm has some more commands for general usage:- .Bl -tag -width pattern_opt -.It Fl i Ar pattern +.It Fl i Op Ar pattern List the interfaces and protocols, optionally matching .Ar pattern , we have .Pa resolv.conf files for. -.It Fl L Ar pattern +.It Fl L Op Ar pattern List the .Pa resolv.conf files we have, @@ -179,7 +183,7 @@ .Ar pattern is specified then we list the files for the interfaces and protocols that match it. -.It Fl l Ar pattern +.It Fl l Op Ar pattern List the .Pa resolv.conf files we have. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openresolv-3.14.1/resolvconf.conf.5.in new/openresolv-3.15.0/resolvconf.conf.5.in --- old/openresolv-3.14.1/resolvconf.conf.5.in 2025-03-28 20:35:30.000000000 +0100 +++ new/openresolv-3.15.0/resolvconf.conf.5.in 2025-04-25 21:09:48.000000000 +0200 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd March 24, 2025 +.Dd April 23, 2025 .Dt RESOLVCONF.CONF 5 .Os .Sh NAME @@ -190,6 +190,11 @@ Defaults to .Pa /etc/resolv.conf if not set. +Set to +.Pa /dev/null +to stop +.Xr resolvconf 8 +from changing it. .It Sy resolv_conf_options A list of libc resolver options, as specified in .Xr resolv.conf 5 . @@ -242,6 +247,7 @@ the subscribers main configuration file. .Pp To disable a subscriber, simply set its name to NO. +If the subscriber name has a dash in it, then replace it with an underscore. For example, to disable the libc subscriber you would set: .Bd -compact -literal -offset indent libc=NO @@ -337,6 +343,15 @@ allow-from=127.0.0.0/8, ::1/128 forward-zones-file=/etc/pdns/recursor-zones.conf .Ed +.It Sy systemd_resolved_conf +This file tells systemd-resolved about global name servers. +.Pp +Example resolvconf.conf for systemd-resolved: +.Bd -compact -literal -offset indent +name_servers=127.0.0.53 +resolv_conf_options="edns0 trust-ad" +systemd_resolved_conf=/run/systemd/resolved.conf.d/60-resolvconf.conf +.Ed .It Sy unbound_conf This file tells unbound about specific and global name servers. .It Sy unbound_insecure diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openresolv-3.14.1/resolvconf.in new/openresolv-3.15.0/resolvconf.in --- old/openresolv-3.14.1/resolvconf.in 2025-03-28 20:35:30.000000000 +0100 +++ new/openresolv-3.15.0/resolvconf.in 2025-04-25 21:09:48.000000000 +0200 @@ -25,7 +25,7 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. RESOLVCONF="$0" -OPENRESOLV_VERSION="3.14.1" +OPENRESOLV_VERSION="3.15.0" SYSCONFDIR=@SYSCONFDIR@ LIBEXECDIR=@LIBEXECDIR@ VARDIR=@VARDIR@ @@ -167,6 +167,8 @@ private_iface() { + iface="$1" + # Allow expansion cd "$IFACEDIR" @@ -650,6 +652,19 @@ return $retval } +list_private() +{ + IFACES= + for i in $(list_resolv -i $@ 2>/dev/null); do + if private_iface "$i"; then + IFACES="${IFACES}${IFACES:+ }$i" + fi + done + if [ -n "$IFACES" ]; then + echo "$IFACES" + fi +} + list_remove() { [ -z "$2" ] && return 0 @@ -828,6 +843,10 @@ shift $(($OPTIND - 1)) args="$iface${iface:+ }$*" +if [ -z "$cmd" ] && [ "$IF_PRIVATE" = 1 ]; then + cmd=p +fi + # -I inits the state dir if [ "$cmd" = I ]; then if [ -d "$VARDIR" ]; then @@ -850,7 +869,12 @@ # -L is the same as -l, but post-processed from our config if [ "$cmd" = L ]; then list_resolv "-$cmd" "$args" | replace - exit $?2 + exit $? +fi + +if [ "$cmd" = p ]; then + list_private "$args" + exit $? fi # Restart a service or echo the command to restart a service @@ -1170,7 +1194,11 @@ cd "$_PWD" for script in "$LIBEXECDIR"/*; do if [ -f "$script" ]; then - eval script_enabled="\$${script##*/}" + script_var="${script##*/}" + while [ "${script_var%%-*}" != "$script_var" ]; do + script_var="${script_var%%-*}_${script_var#*-}" + done + eval script_enabled="\$$script_var" case "${script_enabled:-YES}" in [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1) ;; *) continue;; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openresolv-3.14.1/systemd-resolved.in new/openresolv-3.15.0/systemd-resolved.in --- old/openresolv-3.14.1/systemd-resolved.in 1970-01-01 01:00:00.000000000 +0100 +++ new/openresolv-3.15.0/systemd-resolved.in 2025-04-25 21:09:48.000000000 +0200 @@ -0,0 +1,67 @@ +#!/bin/sh +# Copyright (c) 2009-2023 Roy Marples +# All rights reserved + +# systemd-resolved subscriber for resolvconf + +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +[ -f "@SYSCONFDIR@"/resolvconf.conf ] || exit 0 +. "@SYSCONFDIR@/resolvconf.conf" || exit 1 +[ -n "$systemd_resolved_conf" ] || exit 0 +[ -n "$RESOLVCONF" ] || eval "$(@SBINDIR@/resolvconf -v)" +NL=" +" + +conf="# Generated by resolvconf$NL" +conf="${conf}$NL" +conf="${conf}[Resolve]$NL" + +# We emit blank values to force them to reset on SIGHUP +conf="${conf}DNS=$NAMESERVERS$NL" + +# Once https://github.com/systemd/systemd/issues/20485 is resolved, +# we could do something with the per domain name servers +domains= +for d in $DOMAINS; do + domain=${d%%:*} + domains="${domains}${domains:+ }$domain" +done +conf="${conf}Domains=$domains$NL" + +# Try to ensure that config dirs exist +if command -v config_mkdirs >/dev/null 2>&1; then + config_mkdirs "$systemd_resolved_conf" +else + @SBINDIR@/resolvconf -D "$systemd_resolved_conf" +fi + +if [ ! -f "$systemd_resolved_conf" ] || \ + [ "$(cat "$systemd_resolved_conf")" != "$(printf %s "$conf")" ] +then + printf %s "$conf" >"$systemd_resolved_conf" + pid=$(pidof systemd-resolved) + if [ -n "$pid" ]; then + kill -HUP $pid + fi +fi