** 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

Reply via email to