Bug#868267: fai-client: fetch-basefile breaks for hostnames with hyphens

andrew bezella abezella at archive.org
Thu Jul 27 00:04:29 CEST 2017


On Wed, 2017-07-26 at 17:34 -0400, Arcady Genkin wrote:
[...]
> # chroot /data/fai-nfsroots/xenial-x64 /bin/bash --version |head -1
> GNU bash, version 4.4.12(1)-release (x86_64-pc-linux-gnu)

ah! ok, apparently a change in bash's behavior between 4.3 and 4.4:

% bash --version | head -n1
GNU bash, version 4.4.7(1)-release (x86_64-pc-linux-gnu)
% export classes="vmops0.us.archive.org"
% bash /usr/lib/fai/fetch-basefile
/usr/lib/fai/fetch-basefile: line 59: found_vmops0.us.archive.org: bad substitution
No basefile matching a class name was found at [FAI_BASEFILEURL]

vs

% bash --version | head -n1
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
% export classes="vmops0.us.archive.org"
% bash /usr/lib/fai/fetch-basefile
No basefile matching a class name was found at [FAI_BASEFILEURL]


in bash 4.4 it appears that either "." or "-" breaks the indirect
variable usage:

% bash --version | head -n1
GNU bash, version 4.4.7(1)-release (x86_64-pc-linux-gnu)
% export classes="vmops0.us.archive.org"
% bash /usr/lib/fai/fetch-basefile
/usr/lib/fai/fetch-basefile: line 59: found_vmops0.us.archive.org: bad substitution
No basefile matching a class name was found at [FAI_BASEFILEURL]
% export classes="vm-ops0"
% bash /usr/lib/fai/fetch-basefile
/usr/lib/fai/fetch-basefile: line 59: found_vm-ops0: bad substitution
No basefile matching a class name was found at [FAI_BASEFILEURL]
% export classes="vmops0"
No basefile matching a class name was found at [FAI_BASEFILEURL]

possibly related to the announcement at https://lists.gnu.org/archive/h
tml/bug-bash/2015-07/msg00027.html which mentions a couple changes to
indirect variable expansion.  unsure if the above is intentional or
collateral damage.  "_" does appear to be ok.


-- 
andrew bezella <abezella at archive.org>
internet archive


More information about the linux-fai mailing list