** Description changed: + [Impact] + + * Manually editing landscape client.conf to unset the data_path + blocks upgrade postinst. That field was not required to be present + before 14.04, and older configurations can fail to upgrade without + purging the existing configuration. + + * Although data_path is set by default, removing the line is accepted + by landscape and it will use a default path. The fix simply makes sure + the postinst script also has that default. + + [Test Case] + + * sed -i -e '/data_path/d' /etc/landscape/client.conf + + * apt install --reinstall landscape-client + + [Regression Potential] + + * The change is fairly trivial. Regression could be possible if the + default paths were changed and not reflected in the postinst. + In such a case the resync flag file wouldn't be created, + resulting in an out-of-sync list of users; this would be low impact. + + [Original Description] + Tested on 14.04.5, landscape-client (14.12-0ubuntu6.14.04). If the data_path directive is not present in /etc/landscape/client.conf, the postinst script will fail with the following error: Setting up landscape-client (14.12-0ubuntu6.14.04) ... install: missing file operand Try 'install --help' for more information. dpkg: error processing package landscape-client (--configure): - subprocess installed post-installation script returned error exit status 1 + subprocess installed post-installation script returned error exit status 1 Errors were encountered while processing: - landscape-client + landscape-client E: Sub-process /usr/bin/dpkg returned an error code (1) Relevant section of the postinst script: - # In response to bug 1508110 we need to trigger a complete update of - # user information. The flag file will be removed by the client when - # the update completes. - DATA_PATH="`grep ^data_path /etc/landscape/client.conf | cut -d= -f2 | tr -d '[[:space:]]'`" - install --owner=landscape --directory $DATA_PATH - USER_UPDATE_FLAG_FILE="$DATA_PATH/user-update-flag" - install --owner=landscape /dev/null $USER_UPDATE_FLAG_FILE + # In response to bug 1508110 we need to trigger a complete update of + # user information. The flag file will be removed by the client when + # the update completes. + DATA_PATH="`grep ^data_path /etc/landscape/client.conf | cut -d= -f2 | tr -d '[[:space:]]'`" + install --owner=landscape --directory $DATA_PATH + USER_UPDATE_FLAG_FILE="$DATA_PATH/user-update-flag" + install --owner=landscape /dev/null $USER_UPDATE_FLAG_FILE It would be helpful if the script checked for data_path's existence and emitted a more informative error message. How to reproduce: Install/configure/register landscape-client. Remove landscape-client Remove data_path from /etc/landscape/client.conf Reinstall landscape-client.
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1728681 Title: postinst script fails if data_path not set in client.conf To manage notifications about this bug go to: https://bugs.launchpad.net/landscape-client/+bug/1728681/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs