All autopkgtests for the newly accepted apt (1.8.4) for disco have finished 
running.
The following regressions have been reported in tests triggered by the package:

reprotest/0.7.8 (s390x)
gcc-snapshot/unknown (armhf)
apt/1.8.4 (amd64, armhf, s390x, ppc64el, arm64, i386)
autopkgtest/5.10ubuntu1 (amd64, i386)
gcc-7/7.4.0-8ubuntu1 (armhf)


Please visit the excuses page listed below and investigate the failures, 
proceeding afterwards as per the StableReleaseUpdates policy regarding 
autopkgtest regressions [1].

https://people.canonical.com/~ubuntu-archive/proposed-
migration/disco/update_excuses.html#apt

[1] https://wiki.ubuntu.com/StableReleaseUpdates#Autopkgtest_Regressions

Thank you!

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to apt in Ubuntu.
https://bugs.launchpad.net/bugs/1840995

Title:
  check_stamp() function of apt.systemd.daily should not assume interval
  is a number

Status in apt package in Ubuntu:
  Fix Released
Status in apt source package in Disco:
  Fix Committed

Bug description:
  [Impact]
  Warning messages when using suffixes in intervals such as d for day

  /usr/lib/apt/apt.systemd.daily: 87: [: Illegal number: 20h

  [Test case]
  Create 99local in apt.conf.d with
  APT::Periodic::Update-Package-Lists "1d";
  and run /usr/lib/apt/apt.systemd.daily - make sure no warning appears.

  [Regression potential]
  The fix replaces -eq 0 checks with = 0 checks which might have different 
behavior in case -eq also accepts some values as equal to 0 that are not 
literally 0 and that now no longer match. But then you'd have to do stuff like 
set the interval to "+0", and it seems unrealistic people do that.

  [Original bug report]
  In the second half of the function there is

      # Calculate the interval in seconds depending on the unit specified
      if [ "${interval%s}" != "$interval" ] ; then
          interval="${interval%s}"
      elif [ "${interval%m}" != "$interval" ] ; then
          interval="${interval%m}"
          interval=$((interval*60))
      elif [ "${interval%h}" != "$interval" ] ; then
          interval="${interval%h}"
          interval=$((interval*60*60))
      else
          interval="${interval%d}"
          interval=$((interval*60*60*24))
      fi

  so, a variable might hold something like "1d", "100m", etc.

  Yet in the first there is a condition

      if [ "$interval" -eq 0 ]; then
          debug_echo "check_stamp: interval=0"
          # treat as no time has passed
          return 1
      fi

  which treats the value as a number and leads to

  /usr/lib/apt/apt.systemd.daily: 87: [: Illegal number: 20h

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1840995/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to