Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #11663

updating shopt compat settings to include current version

From Mike Frysinger <vapier@gentoo.org>
Newsgroups gnu.bash.bug
Subject updating shopt compat settings to include current version
Date 2015-10-15 13:34 -0400
Message-ID <mailman.403.1444930560.7904.bug-bash@gnu.org> (permalink)

Show all headers | View raw


[Multipart message — attachments visible in raw view] - view raw

with bash-4.0, new compat options were introduced:
	shopt -s compat32
and with bash-4.3, a variable was added:
	export BASH_COMPAT=3.2

but things get a little weird when you want to set the compat level to
the current version:
	$ echo $BASH_VERSION
	4.3.42(1)-release
	$ shopt -s compat43
	bash: shopt: compat43: invalid shell option name
	$ export BASH_COMPAT=4.3
	<no error as DEFAULT_COMPAT_LEVEL is 43>

we're interested in this in Gentoo because we want to set the current
shell compat level to a min version even if that version is the active
one.  ideally it'd be:
	if ! shopt -s compat43 ; then
		echo "error: >=bash-4.3 required, but ${BASH_VERSION} found" >&2
		exit 1
	fi

instead we have to probe the active version ourselves:
	if ! shopt -s compat43 ; then
		if [[ ${BASH_VERSINFO[0]} -ne "4" || ${BASH_VERSINFO[1]} -ne "3" ]] ; then
			echo ...
			exit 1
		fi
	fi

the BASH_COMPAT variable isn't as useful:
 - possible to accidentally export and impact other shell scripts
 - doesn't fail for <bash-4.3 versions
 - when set to a bad value, $? is set to 0
 - need to capture & test stderr
which means you end up with:
	if ([[ -n $( (BASH_COMPAT=4.3) 2>&1 ) ]] ||
	    [[ ${BASH_VERSINFO[0]} -lt 4 ]] ||
	    [[ ${BASH_VERSINFO[0]} -eq 4 && ${BASH_VERSINFO[1]} -lt 3 ]]) ; then
		echo ...
		exit 1
	fi
	BASH_COMPAT=4.3

so my request is simple: can we have compatXY added for the current version ?
so in the upcoming bash-4.4 release, get a compat44 option added.
-mike

Back to gnu.bash.bug | Previous | Next | Find similar


Thread

updating shopt compat settings to include current version Mike Frysinger <vapier@gentoo.org> - 2015-10-15 13:34 -0400

csiph-web