[Bug 1745531] Re: [SRU] Reinforce hostname preseed regex
Eric Desrochers
eric.desrochers at canonical.com
Mon Jan 29 19:39:29 UTC 2018
** Changed in: debian-installer (Ubuntu Bionic)
Assignee: Eric Desrochers (slashd) => Hua Zhang (zhhuabj)
** Changed in: debian-installer (Ubuntu Artful)
Assignee: Eric Desrochers (slashd) => Hua Zhang (zhhuabj)
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to debian-installer in Ubuntu.
https://bugs.launchpad.net/bugs/1745531
Title:
[SRU] Reinforce hostname preseed regex
Status in debian-installer package in Ubuntu:
In Progress
Status in preseed package in Ubuntu:
Fix Released
Status in debian-installer source package in Trusty:
In Progress
Status in preseed source package in Trusty:
In Progress
Status in debian-installer source package in Xenial:
In Progress
Status in preseed source package in Xenial:
In Progress
Status in debian-installer source package in Artful:
In Progress
Status in preseed source package in Artful:
In Progress
Status in debian-installer source package in Bionic:
In Progress
Status in preseed source package in Bionic:
Fix Released
Bug description:
[Impact]
This is the same issue reported in https://bugs.launchpad.net/ubuntu/+source/preseed/+bug/1452202
However that is marked as 'Fix Released' and the issue is still occurring so it seems best to just open a new bug according to Eric's comment.
The present hostname preseed regex looks like:
if ! echo "$RET" | grep -q 'ubuntu'; then
...
/bin/sed -i "s/$CURRENT_HOSTNAME/$NETCFG_HOSTNAME/" /etc/hosts
...
fi
There are still multiple problems with them according to Peter's
comment
(https://bugs.launchpad.net/ubuntu/+source/preseed/+bug/1452202/comments/64)
and Mathieu's comment
(https://bugs.launchpad.net/ubuntu/+source/preseed/+bug/1452202/comments/93).
- The default hostname is 'ubuntu', and is the value you will get if
nothing is preseeded -- we *do* need to skip it in this case, although
the grep may need to be more precise. A name like 'ubuntuxenial'
should match this grep.
- The sed needs to be fixed to more appropriately catch for the exact
string, rather than any substring -- ie. it should not match
'ipv6-allnodes' if the name received from DHCP was 'node'. It should
only match and replace for 'node'.
So the fix will try to:
1) Keep the if statement and add the -w option to grep to be more robust
2) Modify the sed cmd with word boundaries (\b) to be more robust as well.
[Test Case]
Install Ubuntu using a preseed[1] file[2] and add the following line in the preseed recipe :
d-i netcfg/hostname string <HOSTNAME>
Change the HOSTNAME to see if the hostname in /etc/hosts can be
updated correctly.
[1] - url=http://<WEB_SERVER>/<PRESEED_FILE>
[2] - https://help.ubuntu.com/lts/installation-guide/example-preseed.txt
[Regression Potential]
* none expected, the actual changes are as follows:
- if ! echo "$RET" | grep -q 'ubuntu'; then
+ if ! echo "$RET" | grep -qw 'ubuntu'; then
...
- /bin/sed -i "s/$CURRENT_HOSTNAME/$NETCFG_HOSTNAME/" /etc/hosts
+ /bin/sed -i "s/\b${CURRENT_HOSTNAME}\b/${NETCFG_HOSTNAME}/g" /etc/hosts
[Original Description]
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/debian-installer/+bug/1745531/+subscriptions
More information about the foundations-bugs
mailing list