** Description changed: [Impact] The samba-common-bin postinst script relies on the presence of the /run/samba directory. This directory will not be available unless samba- common-bin is installed right after samba-common, whose postinst script creates /run/samba. Although samba-common-bin Depends on samba-common, reducing the risk of an user hitting the described bug, samba-common only Recommends samba-common-bin, making the following case possible: The user installs samba-common. Then, the user removes samba-common-bin. Then the user reboots the system (which removes /run/samba created during samba-common installation). Finally, the user installs samba- common-bin, which results in a postinst script failure. For the case described above, restarting the system and reconfiguring (or running the installation again) should fix the issue, since the samba-common-bin systemd-tmpfiles configuration would now create /run/samba (running systemd-tmpfiles --create for the samba-common-bin would also work). The proposed patch cherry picks commit 0c3b205 from Debian to run systemd-tempfiles before the testparm call and applies further changes so the #DEBHELPER# tag can be expanded using debhelper compat 12. Aditionally, it introduces an autopkgtest test case for the fixed issue. [Test Plan] - Run the following steps: + To reproduce the issue, run the following steps: # apt install samba-common # apt remove samba-common-bin Reboot the system and verify that the /run/samba directory no longer exists Run # apt install samba-common-bin This command should exit with a non-zero status, as described in the - original bug report + original bug report. + + After applying the proposed changes, performing the steps above should + result in a successful exit status for the last command. [Where problems could occur] There are 2 changes to be considered here. The one to d/rules and the one to d/samba-common-bin.postinst The change to d/rules makes the #DEBHELPER# tag, moved in the change to d/samba-common-bin.postinst to actually generate code. The generated code is making a call to systemd-tmpfiles, which is provided by the systemd package. However, samba-common-bin does not deppend on systemd. Here is the generated snippet: # Automatically added by dh_installsystemd/12.10ubuntu1 if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then - # In case this system is running systemd, we need to ensure that all - # necessary tmpfiles (if any) are created before starting. - if [ -d /run/systemd/system ] ; then - systemd-tmpfiles --create samba.conf >/dev/null || true - fi + # In case this system is running systemd, we need to ensure that all + # necessary tmpfiles (if any) are created before starting. + if [ -d /run/systemd/system ] ; then + systemd-tmpfiles --create samba.conf >/dev/null || true + fi fi # End automatically added section The snipped showed above does check for evidence that systemd-tmpfiles is available in the system, although it does not make such check directly. However, in case /run/systemd/system is available and systemd- tmpfiles is not, the postinst script will not fail at that point. Still, if the systemd-tmpfiles command does not run, the issue this SRU is fixing will still manifest itself under the described conditions (which is true for hirsute, impish, and Debian stable as well). [Other Info] This issue was already fixed in Debian unstable and, consequently, in Ubuntu hirsute and impish. [Original message] ProblemType: Package DistroRelease: Ubuntu 20.04 Package: samba-common-bin 2:4.11.6+dfsg-0ubuntu1.6 ProcVersionSignature: Ubuntu 5.4.0-54.60-generic 5.4.65 Uname: Linux 5.4.0-54-generic x86_64 ApportVersion: 2.20.11-0ubuntu27.12 Architecture: amd64 CasperMD5CheckResult: skip Date: Tue Nov 24 07:17:34 2020 DistributionChannelDescriptor: - # This is the distribution channel descriptor for the OEM CDs - # For more information see http://wiki.ubuntu.com/DistributionChannelDescriptor - canonical-oem-somerville-bionic-amd64-20180608-47+loki-n3-v3-whl+X32 + # This is the distribution channel descriptor for the OEM CDs + # For more information see http://wiki.ubuntu.com/DistributionChannelDescriptor + canonical-oem-somerville-bionic-amd64-20180608-47+loki-n3-v3-whl+X32 ErrorMessage: o subprocesso instalado, do pacote samba-common-bin, o script post-installation retornou erro do status de saída 1 InstallationDate: Installed on 2020-11-12 (11 days ago) InstallationMedia: Ubuntu 18.04 "Bionic" - Build amd64 LIVE Binary 20180608-09:38 Python3Details: /usr/bin/python3.8, Python 3.8.5, python3-minimal, 3.8.2-0ubuntu2 PythonDetails: /usr/bin/python2.7, Python 2.7.18, python-is-python2, 2.7.17-4 RelatedPackageVersions: - dpkg 1.19.7ubuntu3 - apt 2.0.2ubuntu0.1 + dpkg 1.19.7ubuntu3 + apt 2.0.2ubuntu0.1 SambaClientRegression: Yes SourcePackage: samba Title: package samba-common-bin 2:4.11.6+dfsg-0ubuntu1.6 failed to install/upgrade: o subprocesso instalado, do pacote samba-common-bin, o script post-installation retornou erro do status de saída 1 UpgradeStatus: Upgraded to focal on 2020-11-21 (3 days ago)
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1905387 Title: samba-common-bin should call systemd-tmpfiles before testparm To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/samba/+bug/1905387/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
