See https://bugs.launchpad.net/bugs/1895302
On Tue, Sep 22, 2020, 07:41 Oliver Grawert <[email protected]> wrote: > please note that the stable UbuntuCore18 images regressed due to this: > > https://github.com/snapcore/core18/issues/170 > > ** Bug watch added: github.com/snapcore/core18/issues #170 > https://github.com/snapcore/core18/issues/170 > > -- > You received this bug notification because you are subscribed to the bug > report. > https://bugs.launchpad.net/bugs/1888575 > > Title: > Split motd-news config into a new package > > Status in base-files package in Ubuntu: > Fix Released > Status in livecd-rootfs package in Ubuntu: > Invalid > Status in ubuntu-meta package in Ubuntu: > Fix Released > Status in base-files source package in Xenial: > Fix Released > Status in livecd-rootfs source package in Xenial: > Triaged > Status in ubuntu-meta source package in Xenial: > Fix Committed > Status in base-files source package in Bionic: > Fix Released > Status in livecd-rootfs source package in Bionic: > Invalid > Status in ubuntu-meta source package in Bionic: > Fix Released > Status in base-files source package in Focal: > Fix Released > Status in livecd-rootfs source package in Focal: > Invalid > Status in ubuntu-meta source package in Focal: > Fix Released > Status in base-files source package in Groovy: > Fix Released > Status in livecd-rootfs source package in Groovy: > Invalid > Status in ubuntu-meta source package in Groovy: > Fix Released > > Bug description: > [Impact] > The motd-news script is largely useless for desktop users, as they > rarely login via a text console. It makes more sense for server users. > > We can use package dependencies to have the motd-news script enabled on > servers, but disabled on desktops, and still handle upgrades. This is the > plan: > - move /etc/default/motd-news from base-files into a new binary package > (motd-news-config, produced by src:base-files) > - have ubuntu-server depend on motd-news-config > - have base-files break current ubuntu-server, so that if base-files if > upgraded and ubuntu-server is installed, ubuntu-server will also be > upgraded to the new version which has the depends on motd-news-config > > Care must be taken to preserve a changed /etc/default/motd-news when > the upgrade installs the new motd-news-config package. For example, on > a server that has set ENABLED=0 in /etc/default/motd-news and upgrades > to the new base-files and ubuntu-server, and gets the new motd-config- > news package, ENABLED=0 must remain set. > > [Test Case] > a) base-files installed, ubuntu-server installed, unmodified > /e/d/motd-news > apt install base-files > - upgrades ubuntu-server > - installs motd-news-config > - /e/d/motd-news remains, motd-news remains enabled > > b) base-files installed, ubuntu-server installed, modified /e/d/motd-news > apt install base-files > - upgrades ubuntu-server > - installs motd-news-config > - /e/d/motd-news remains with the original modification > > c) base-files installed, ubuntu-server not installed, unmodified > /e/d/motd-news > apt install base-files > - upgrades base-files > - removes /e/d/motd-news > - motd-news is disabled > > d) base-files installed, ubuntu-server not installed, modified > /e/d/motd-news > apt install base-files > - upgrades base-files > - /e/d/motd-news gets renamed to backup > - motd-news is disabled > > e) removing motd-news-config will also remove ubuntu-server (since > it's a depends, and not a recommends) > > f) upgrading just ubuntu-server should pull motd-news-config in, and > force-upgrade base-files > > g) Removing motd-news-server leaves /e/d/motd-news around; purging > motd-news-server removes the /e/d/motd-news config file > > h) base-files installed, ubuntu-server installed, removed /e/d/motd-news > - apt install base-files > - upgrades base-files, upgrades ubuntu-server, installs motd-news-config > - /e/d/motd-news is installed with ENABLED=0 > > i) base-files installed, ubuntu-server NOT installed, removed > e/d/motd-news > - apt install base-files > - base-files is upgraded > - no /e/d/motd-news is installed, motd-news remains disabled > > j) Perform a release upgrade from the previous ubuntu release to the > one being tested while having ubuntu-server NOT installed (or use a > desktop install). At the end, motd-news should be disabled. Verify > with: > > $ sudo /etc/update-motd.d/50-motd-news --force > $ (no output) > > k) Test that supporting changes for xenial are in place: > > i) verify grub-legacy-ec2 is not in the xenial server seed > ii) verify that the rootfs manifest built from the ubuntu-cpc project > contains the ubuntu-server package > iii) verify that images built from the ubuntu-cpc project which purge > grub-legacy-ec2 have retained ubuntu-server > > [Regression Potential] > This update is about config file ownership transfer: /e/d/motd-news > belonged to base-files, now it belongs to motd-news-config. We tried to > handle two important cases here: > a) /e/d/motd-news config was changed while it belonged to base-files. > For example, an user could have set ENABLED=0. We need to transfer that > change to the motd-news-config package when it is installed, otherwise this > SRU would jsut re-enabled motd-news. This is handled in > d/motd-news-config.postinst's configure case. > > b) /e/d/motd-news config file was *removed* while it belonged to > base-files. In such a case, a normal upgrade of the package (base-files in > this example) would not reinstate the file. Much less this upgrade here, > which has an explicit rm_conffile maintscript-helper for it. But the > motd-news-config package that could be installed in the transaction would > place the default config file back, and the default is ENABLED=1. Thus, a > system that had motd-news disabled via removing the config file would now > have it re-enabled after the upgrade. > This was trickier to handle, and we do it in base-files's postinst and > motd-news-config's postinst. The drawback is that in one scenario, where > just base-files is upgraded and /e/d/motd-news was manually removed by the > user, there will be a /e/d/motd-news.wasremoved leftover empty file (see > "other info" below for details). > > In general, the regression risks here are: > - have motd-news enabled again on a system where it was previously > disabled. We tried to envision two ways it would have been disabled (set > ENABLED=0, and remove the config file). There are probably others > - differences in dpkg and/or debhelper behavior in older ubuntu releases > leading to unexpected results (should be covered by the test cases from > this SRU) > - xenial in particular is trickier, because src:base-files there does > NOT use debhelper, so many of the things we take for granted have to be > done by hand > - have some sort of dpkg postinst or dependency error because of > unpredicted scenarios. Certain assumptions are being made, like the renames > that dpkg-maintscript-helper does, and that the filename > /etc/default/motd-news.wasremoved that I'm touching and verifying is really > mine and not something that was there already. > - the versions I'm breaking/replacing on, and using rm_conffiles on, > must be exact. These are the versions today in the archive (2020-08-12): > > base-files: > x: 9.4ubuntu4.12 > b: 10.1ubuntu2.9 > f: 11ubuntu5.1 > g: 11ubuntu12 (was 11ubuntu10) > > ubuntu-meta: > x: 1.361.4 > b: 1.417.4 > f: 1.450.1 > g: 1.452 > > Which reflect in these relationships in the updated packages: > Groovy: > ubuntu-server 1.453: > Depends: motd-news-config > base-files 11ubuntu11: > Breaks: ubuntu-server (<< 1.453) > rm_conffile /etc/default/motd-news 11ubuntu11~ base-files > motd-news-config 11ubuntu11: > Breaks/Replaces: base-files (<< 11ubuntu11) > > Focal: > ubuntu-server 1.450.2: > Depends: motd-news-config > base-files 11ubuntu5.2: > Breaks: ubuntu-server (<< 1.450.2) > rm_conffile /etc/default/motd-news 11ubuntu5.2~ base-files > motd-news-config 11ubuntu5.2: > Breaks/Replaces: base-files (<< 11ubuntu5.2) > > Bionic: > ubuntu-server 1.417.5: > Depends: motd-news-config > base-files 10.1ubuntu2.10: > Breaks: ubuntu-server (<< 1.417.5) > rm_conffile /etc/default/motd-news 10.1ubuntu2.10~ base-files > motd-news-config 10.1ubuntu2.10: > Breaks/Replaces: base-files (<< 10.1ubuntu2.10) > > Xenial: > ubuntu-server 1.361.5: > Depends: motd-news-config > base-files 9.4ubuntu4.13: > Breaks: ubuntu-server (<< 1.361.5) > rm_conffile /etc/default/motd-news 9.4ubuntu4.13~ base-files > motd-news-config 9.4ubuntu4.13: > Breaks/Replaces: base-files (<< 9.4ubuntu4.13) > > [Other Info] > a) Testcase (i) will leave around an empty > /etc/default/motd-news.wasremoved file, created by the base-files postinst. > This file is removed by the motd-news-config postinst, but since that > package doesn't get installed in that particular scenario, the file > remains. I toyed with the idea of adding an extra check to base-file's > postinst, like this: > --- a/debian/postinst.in > +++ b/debian/postinst.in > @@ -133,7 +133,11 @@ motd_news_config="/etc/default/motd-news" > if [ ! -e ${motd_news_config} ]; then > if [ ! -e ${motd_news_config}.dpkg-remove ]; then > if [ ! -e ${motd_news_config}.dpkg-backup ]; then > - touch ${motd_news_config}.wasremoved > + # The .wasremoved file only matters if ubuntu-server is installed, > + # because that's what will pull in motd-news-config > + if dpkg -l ubuntu-server 2>/dev/null | grep -q ^i; then > + touch ${motd_news_config}.wasremoved > + fi > fi > fi > fi > > But deemed it too risky, and not worth further potential regressions. > It seemed to work, though, at least for groovy. > > b) Currently the xenial cloud images, with the exception of the AWS > one, do not have ubuntu-server installed. This means that this SRU > will disable motd-news on them, unless ubuntu-server was manually > installed for some reason. This includes LXD xenial images as well. > > c) The new motd-news-config package has its d/control priority set to > "optional", so a release upgrade won't pick it up (presumably the same > applies to the installer). I've been told there are archive overrides > that might need updating as well: dear SRU team member, please check, > or ask an archive admin to check. > > To manage notifications about this bug go to: > > https://bugs.launchpad.net/ubuntu/+source/base-files/+bug/1888575/+subscriptions > > Launchpad-Notification-Type: bug > Launchpad-Bug: distribution=ubuntu; sourcepackage=base-files; > component=main; status=Fix Released; importance=Undecided; assignee= > [email protected]; > Launchpad-Bug: distribution=ubuntu; sourcepackage=livecd-rootfs; > component=main; status=Invalid; importance=Undecided; assignee=None; > Launchpad-Bug: distribution=ubuntu; sourcepackage=ubuntu-meta; > component=main; status=Fix Released; importance=Undecided; assignee= > [email protected]; > Launchpad-Bug: distribution=ubuntu; distroseries=xenial; > sourcepackage=base-files; component=main; status=Fix Released; > importance=Undecided; [email protected]; > Launchpad-Bug: distribution=ubuntu; distroseries=xenial; > sourcepackage=livecd-rootfs; component=main; status=Triaged; > importance=Undecided; assignee=None; > Launchpad-Bug: distribution=ubuntu; distroseries=xenial; > sourcepackage=ubuntu-meta; component=main; status=Fix Committed; > importance=Undecided; [email protected]; > Launchpad-Bug: distribution=ubuntu; distroseries=bionic; > sourcepackage=base-files; component=main; status=Fix Released; > importance=Undecided; [email protected]; > Launchpad-Bug: distribution=ubuntu; distroseries=bionic; > sourcepackage=livecd-rootfs; component=main; status=Invalid; > importance=Undecided; assignee=None; > Launchpad-Bug: distribution=ubuntu; distroseries=bionic; > sourcepackage=ubuntu-meta; component=main; status=Fix Released; > importance=Undecided; [email protected]; > Launchpad-Bug: distribution=ubuntu; distroseries=focal; > sourcepackage=base-files; component=main; status=Fix Released; > importance=Undecided; [email protected]; > Launchpad-Bug: distribution=ubuntu; distroseries=focal; > sourcepackage=livecd-rootfs; component=main; status=Invalid; > importance=Undecided; assignee=None; > Launchpad-Bug: distribution=ubuntu; distroseries=focal; > sourcepackage=ubuntu-meta; component=main; status=Fix Released; > importance=Undecided; [email protected]; > Launchpad-Bug: distribution=ubuntu; distroseries=groovy; > sourcepackage=base-files; component=main; status=Fix Released; > importance=Undecided; [email protected]; > Launchpad-Bug: distribution=ubuntu; distroseries=groovy; > sourcepackage=livecd-rootfs; component=main; status=Invalid; > importance=Undecided; assignee=None; > Launchpad-Bug: distribution=ubuntu; distroseries=groovy; > sourcepackage=ubuntu-meta; component=main; status=Fix Released; > importance=Undecided; [email protected]; > Launchpad-Bug-Tags: verification-done-bionic verification-done-focal > verification-needed verification-needed-xenial > Launchpad-Bug-Information-Type: Public > Launchpad-Bug-Private: no > Launchpad-Bug-Security-Vulnerability: no > Launchpad-Bug-Commenters: ahasenack janitor mvo ogra sil2100 tjaalton > vorlon > Launchpad-Bug-Reporter: Andreas Hasenack (ahasenack) > Launchpad-Bug-Modifier: Oliver Grawert (ogra) > Launchpad-Message-Rationale: Subscriber > Launchpad-Message-For: ahasenack > -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1888575 Title: Split motd-news config into a new package To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/base-files/+bug/1888575/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
