Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Jan 2017 16:32:53 +0000 (UTC)
From:      "Pedro F. Giffuni" <pfg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r312992 - in head: contrib/openresolv sbin/resolvconf
Message-ID:  <201701301632.v0UGWrG6055942@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pfg
Date: Mon Jan 30 16:32:53 2017
New Revision: 312992
URL: https://svnweb.freebsd.org/changeset/base/312992

Log:
  MFV r312970:
  openresolv: update to version 3.9.0.
  
  It is now possible to drop the _WITH_ARG vars thanks to a change to the
  pdns_recursor upstreamed by Guy Yur.
  
  MFC after:	3 weeks

Modified:
  head/contrib/openresolv/Makefile
  head/contrib/openresolv/configure
  head/contrib/openresolv/libc.in
  head/contrib/openresolv/pdns_recursor.in
  head/contrib/openresolv/resolvconf.8.in
  head/contrib/openresolv/resolvconf.conf.5.in
  head/contrib/openresolv/resolvconf.in
  head/sbin/resolvconf/Makefile
Directory Properties:
  head/contrib/openresolv/   (props changed)

Modified: head/contrib/openresolv/Makefile
==============================================================================
--- head/contrib/openresolv/Makefile	Mon Jan 30 15:20:13 2017	(r312991)
+++ head/contrib/openresolv/Makefile	Mon Jan 30 16:32:53 2017	(r312992)
@@ -37,6 +37,11 @@ SED_STATUSARG=		-e 's:@STATUSARG@:${STAT
 DISTPREFIX?=	${PKG}-${VERSION}
 DISTFILEGZ?=	${DISTPREFIX}.tar.gz
 DISTFILE?=	${DISTPREFIX}.tar.xz
+DISTINFO=	${DISTFILE}.distinfo
+DISTINFOSIGN=	${DISTINFO}.asc
+CKSUM?=		cksum -a SHA256
+PGP?=		netpgp
+
 FOSSILID?=	current
 
 .SUFFIXES: .in
@@ -53,7 +58,7 @@ clean:
 	rm -f ${TARGET}
 
 distclean: clean
-	rm -f config.mk ${DISTFILE}
+	rm -f config.mk ${DISTFILE} ${DISTINFO} ${DISTINFOSIGN}
 
 installdirs:
 
@@ -83,3 +88,11 @@ dist:
 	fossil tarball --name ${DISTPREFIX} ${FOSSILID} ${DISTFILEGZ}
 	gunzip -c ${DISTFILEGZ} | xz >${DISTFILE}
 	rm ${DISTFILEGZ}
+
+distinfo: dist
+	rm -f ${DISTINFO} ${DISTINFOSIGN}
+	${CKSUM} ${DISTFILE} >${DISTINFO}
+	#printf "SIZE (${DISTFILE}) = %s\n" $$(wc -c <${DISTFILE}) >>${DISTINFO}
+	${PGP} --clearsign --output=${DISTINFOSIGN} ${DISTINFO}
+	chmod 644 ${DISTINFOSIGN}
+	ls -l ${DISTFILE} ${DISTINFO} ${DISTINFOSIGN}

Modified: head/contrib/openresolv/configure
==============================================================================
--- head/contrib/openresolv/configure	Mon Jan 30 15:20:13 2017	(r312991)
+++ head/contrib/openresolv/configure	Mon Jan 30 16:32:53 2017	(r312992)
@@ -120,14 +120,21 @@ echo "Configuring openresolv for ... $OS
 rm -rf $CONFIG_MK
 echo "# $OS" >$CONFIG_MK
 
-# On FreeBSD, /etc/init.d/foo status returns 0 if foo is not enabled
-# regardless of if it's not running.
-# So we force onestatus to work around this silly bug.
-if [ -z "$STATUSARG" ]; then
-	case "$OS" in
-	freebsd*)	STATUSARG="onestatus";;
-	esac
-fi
+case "$OS" in
+freebsd*)
+	# On FreeBSD, /etc/init.d/foo status returns 0 if foo is not enabled
+	# regardless of if it's not running.
+	# So we force onestatus to work around this silly bug.
+	if [ -z "$STATUSARG" ]; then
+		STATUSARG="onestatus"
+	fi
+	;;
+linux*)
+	# cksum does't support -a and netpgp is rare
+	echo "CKSUM=		sha256sum --tag" >>$CONFIG_MK
+	echo "PGP=		gpg2" >>$CONFIG_MK
+	;;
+esac
 
 for x in SYSCONFDIR SBINDIR LIBEXECDIR VARDIR MANDIR RESTARTCMD RCDIR STATUSARG
 do

Modified: head/contrib/openresolv/libc.in
==============================================================================
--- head/contrib/openresolv/libc.in	Mon Jan 30 15:20:13 2017	(r312991)
+++ head/contrib/openresolv/libc.in	Mon Jan 30 16:32:53 2017	(r312992)
@@ -216,7 +216,7 @@ fi
 if $backup; then
 	if [ "$newconf" = "$signature$NL" ]; then
 		if [ -e "$resolv_conf.bak" ]; then
-			newconf="$(cat "$resolv_conf.bak")"
+			newconf="$(cat "$resolv_conf.bak")$NL"
 		fi
 	elif [ -e "$resolv_conf" ]; then
 		read line <"$resolv_conf"

Modified: head/contrib/openresolv/pdns_recursor.in
==============================================================================
--- head/contrib/openresolv/pdns_recursor.in	Mon Jan 30 15:20:13 2017	(r312991)
+++ head/contrib/openresolv/pdns_recursor.in	Mon Jan 30 16:32:53 2017	(r312992)
@@ -34,7 +34,6 @@ NL="
 "
 
 : ${pdns_service:=pdns_recursor}
-: ${pdns_restart:=@RESTARTCMD ${pdns_service}@}
 
 newzones=
 
@@ -68,5 +67,12 @@ if [ ! -f "$pdns_zones" ] || \
 	[ "$(cat "$pdns_zones")" != "$(printf %s "$newzones")" ]
 then
 	printf %s "$newzones" >"$pdns_zones"
-	eval $pdns_restart
+	if [ -n "$pdns_restart" ]; then
+		eval $pdns_restart
+	elif [ -n "$RESTARTCMD" ]; then
+		set -- ${pdns_service}
+		eval $RESTARTCMD
+	else
+		@SBINDIR@/resolvconf -r ${pdns_service}
+	fi
 fi

Modified: head/contrib/openresolv/resolvconf.8.in
==============================================================================
--- head/contrib/openresolv/resolvconf.8.in	Mon Jan 30 15:20:13 2017	(r312991)
+++ head/contrib/openresolv/resolvconf.8.in	Mon Jan 30 16:32:53 2017	(r312992)
@@ -22,7 +22,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.Dd May 7, 2016
+.Dd November 29, 2016
 .Dt RESOLVCONF 8
 .Os
 .Sh NAME
@@ -45,6 +45,8 @@
 .Fl il Ar pattern
 .Nm
 .Fl u
+.Nm
+.Fl Fl version
 .Sh DESCRIPTION
 .Nm
 manages
@@ -106,7 +108,7 @@ See
 .Xr resolvconf.conf 5
 for how to configure
 .Nm
-to use a local name server.
+to use a local name server and how to remove the private marking.
 .Pp
 .Nm
 can mark an interfaces
@@ -126,7 +128,7 @@ on the
 .Ar interface .
 .Pp
 Here are some options for the above commands:-
-.Bl -tag -width indent
+.Bl -tag -width pattern_opt
 .It Fl f
 Ignore non existent interfaces.
 Only really useful for deleting interfaces.
@@ -146,7 +148,7 @@ as exclusive when adding, otherwise only
 .Pp
 .Nm
 has some more commands for general usage:-
-.Bl -tag -width indent
+.Bl -tag -width pattern_opt
 .It Fl i Ar pattern
 List the interfaces and protocols, optionally matching
 .Ar pattern ,
@@ -168,12 +170,15 @@ to update all its subscribers.
 .Nm
 does not update the subscribers when adding a resolv.conf that matches
 what it already has for that interface.
+.It Fl Fl version
+Echo the resolvconf version to
+.Em stdout .
 .El
 .Pp
 .Nm
 also has some commands designed to be used by it's subscribers and
 system startup:-
-.Bl -tag -width indent
+.Bl -tag -width pattern_opt
 .It Fl I
 Initialise the state directory
 .Pa @VARDIR@ .
@@ -223,7 +228,7 @@ Here are some suggested protocol tags to
 .Pa resolv.conf
 file registered on an
 .Ar interface Ns No :-
-.Bl -tag -width indent
+.Bl -tag -width pattern_opt
 .It dhcp
 Dynamic Host Configuration Protocol.
 Initial versions of

Modified: head/contrib/openresolv/resolvconf.conf.5.in
==============================================================================
--- head/contrib/openresolv/resolvconf.conf.5.in	Mon Jan 30 15:20:13 2017	(r312991)
+++ head/contrib/openresolv/resolvconf.conf.5.in	Mon Jan 30 16:32:53 2017	(r312992)
@@ -22,7 +22,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.Dd April 28, 2016
+.Dd December 29, 2016
 .Dt RESOLVCONF.CONF 5
 .Os
 .Sh NAME
@@ -69,6 +69,11 @@ If unset, defaults to the following:-
 These interfaces will be processed next, unless they have a metric.
 If unset, defaults to the following:-
 .D1 tap[0-9]* tun[0-9]* vpn vpn[0-9]* ppp[0-9]* ippp[0-9]*
+.It Sy inclusive_interfaces
+Ignore any exlcusive marking for these interfaces.
+This is handy when 3rd party integrations force the
+.Nm resolvconf -x
+option and you want to disable it easily.
 .It Sy local_nameservers
 If unset, defaults to the following:-
 .D1 127.* 0.0.0.0 255.255.255.255 ::1
@@ -102,6 +107,11 @@ Requires a local nameserver other than l
 This is equivalent to the
 .Nm resolvconf -p
 option.
+.It Sy public_interfaces
+Force these interface to be public, overriding the private marking.
+This is handy when 3rd party integrations force the
+.Nm resolvconf -p
+option and you want to disable it easily.
 .It Sy replace
 Is a space separated list of replacement keywords.
 The syntax is this:

Modified: head/contrib/openresolv/resolvconf.in
==============================================================================
--- head/contrib/openresolv/resolvconf.in	Mon Jan 30 15:20:13 2017	(r312991)
+++ head/contrib/openresolv/resolvconf.in	Mon Jan 30 16:32:53 2017	(r312992)
@@ -25,13 +25,19 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 RESOLVCONF="$0"
-OPENRESOLV_VERSION="3.8.1"
+OPENRESOLV_VERSION="3.9.0"
 SYSCONFDIR=@SYSCONFDIR@
 LIBEXECDIR=@LIBEXECDIR@
 VARDIR=@VARDIR@
 RCDIR=@RCDIR@
 RESTARTCMD=@RESTARTCMD@
 
+if [ "$1" = "--version" ]; then
+	echo "openresolv $OPENRESOLV_VERSION"
+	echo "Copyright (c) 2007-2016 Roy Marples"
+	exit 0
+fi
+
 # Disregard dhcpcd setting
 unset interface_order state_dir
 
@@ -90,6 +96,7 @@ usage()
 	                   that match the specified pattern
 
 	  -u               Run updates from our current DNS information
+	  --version        Echo the ${RESOLVCONF##*/} version
 
 	Options:
 	  -f               Ignore non existent interfaces
@@ -129,6 +136,34 @@ strip_trailing_dots()
 	printf "\n"
 }
 
+private_iface()
+{
+	local p
+
+	# Allow expansion
+	cd "$IFACEDIR"
+
+	# Public interfaces override private ones.
+	for p in $public_interfaces; do
+		case "$iface" in
+		"$p"|"$p":*) return 1;;
+		esac
+	done
+
+	if [ -e "$PRIVATEDIR/$iface" ]; then
+		return 0
+	fi
+	
+	for p in $private_interfaces; do
+		case "$iface" in
+		"$p"|"$p":*) return 0;;
+		esac
+	done
+
+	# Not a private interface
+	return 1
+}
+
 # Parse resolv.conf's and make variables
 # for domain name servers, search name servers and global nameservers
 parse_resolv()
@@ -144,20 +179,10 @@ parse_resolv()
 			if ${new}; then
 				iface="${line#\# resolv.conf from *}"
 				new=false
-				if [ -e "$PRIVATEDIR/$iface" ]; then
+				if private_iface "$iface"; then
 					private=true
 				else
-					# Allow expansion
-					cd "$IFACEDIR"
 					private=false
-					for p in $private_interfaces; do
-						case "$iface" in
-						"$p"|"$p":*)
-							private=true
-							break
-							;;
-						esac
-					done
 				fi
 			fi
 			;;
@@ -301,9 +326,9 @@ fi"
 	/usr/sbin/service \$1 restart;
 fi"
 	elif [ -x /bin/sv ]; then
-		RESTARTCMD="/bin/sv try-restart \$1"
+		RESTARTCMD="/bin/sv status \$1 >/dev/null 2>&1 && /bin/sv try-restart \$1"
 	elif [ -x /usr/bin/sv ]; then
-		RESTARTCMD="/usr/bin/sv try-restart \$1"
+		RESTARTCMD="/usr/bin/sv status \$1 >/dev/null 2>&1 && /usr/bin/sv try-restart \$1"
 	elif [ -e /etc/arch-release -a -d /etc/rc.d ]; then
 		RCDIR=/etc/rc.d
 		RESTARTCMD="if [ -e /var/run/daemons/\$1 ]; then
@@ -378,6 +403,14 @@ list_resolv()
 			done
 		fi
 		excl=true
+		cd "$IFACEDIR"
+		for i in $inclusive_interfaces; do
+			if [ -f "$i" -a "$list" = "$i" ]; then
+				list=
+				excl=false
+				break
+			fi
+		done
 		;;
 	*)
 		excl=false
@@ -418,7 +451,6 @@ list_resolv()
 
 	cd "$IFACEDIR"
 	retval=1
-	excl=true
 	for i in $(uniqify $list); do
 		# Only list interfaces which we really have
 		if ! [ -f "$i" ]; then
@@ -432,8 +464,7 @@ list_resolv()
 		if [ "$cmd" = i -o "$cmd" = "-i" ]; then
 			printf %s "$i "
 		else
-			echo_resolv "$i"
-			echo
+			echo_resolv "$i" && echo
 		fi
 		[ $? = 0 -a "$retval" = 1 ] && retval=0
 	done

Modified: head/sbin/resolvconf/Makefile
==============================================================================
--- head/sbin/resolvconf/Makefile	Mon Jan 30 15:20:13 2017	(r312991)
+++ head/sbin/resolvconf/Makefile	Mon Jan 30 16:32:53 2017	(r312992)
@@ -20,20 +20,16 @@ SBINDIR=	/sbin
 
 # We don't assume to restart the services in /sbin.  So, though
 # our service(8) is in /usr/sbin, we can use it, here.
-CMD1_WITH_ARG=		\1 onestatus >/dev/null 2>\&1
-CMD2_WITH_ARG=		\1 restart
-RESTARTCMD_WITH_ARG=	/usr/sbin/service ${CMD1_WITH_ARG} \&\& /usr/sbin/service ${CMD2_WITH_ARG}
-CMD1=		\\$$1 onestatus >/dev/null 2>\&1
-CMD2=		\\$$1 restart
-RESTARTCMD=	"/usr/sbin/service ${CMD1} \&\& /usr/sbin/service ${CMD2}"
+CMD1=		\1 onestatus >/dev/null 2>\&1
+CMD2=		\1 restart
+RESTARTCMD=	/usr/sbin/service ${CMD1} \&\& /usr/sbin/service ${CMD2}
 
 .for f in ${SCRIPTS} ${FILES} ${MAN}
 ${f}:	${f}.in
 	sed	-e 's:@SYSCONFDIR@:${SYSCONFDIR}:g' \
 		-e 's:@LIBEXECDIR@:${FILESDIR}:g' \
 		-e 's:@VARDIR@:${VARDIR}:g' \
-		-e 's:@RESTARTCMD \(.*\)@:${RESTARTCMD_WITH_ARG}:g' \
-		-e 's:@RESTARTCMD@:${RESTARTCMD}:g' \
+		-e 's:@RESTARTCMD \(.*\)@:${RESTARTCMD}:g' \
 		-e 's:@RCDIR@:${RCDIR}:g' \
 		-e 's:@SBINDIR@:${SBINDIR}:g' \
 		-e 's: vpn : ng[0-9]*&:g' \



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201701301632.v0UGWrG6055942>