Ubuntu 22.04, debianutils moved run-parts into /usr/bin, breaking systemd-cron in the course

Bug #1993037 reported by Wladimir Mutel
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
debianutils (Ubuntu)
Won't Fix
Undecided
Unassigned
systemd-cron (Ubuntu)
Won't Fix
Undecided
Unassigned

Bug Description

(Found in Ubuntu 22.04 LTS)
package debianutils keeps run-parts executable in /usr/bin/
while package systemd-cron tries to find it in /bin/

$ which run-parts
/usr/bin/run-parts

$ dpkg -S `which run-parts`
debianutils: /usr/bin/run-parts

$ grep =/bin/run /lib/systemd/system/cron*
/lib/systemd/system/cron-daily.service:ExecStart=/bin/run-parts --report /etc/cron.daily
/lib/systemd/system/cron-hourly.service:ExecStart=/bin/run-parts --report /etc/cron.hourly
/lib/systemd/system/cron-monthly.service:ExecStart=/bin/run-parts --report /etc/cron.monthly
/lib/systemd/system/cron-weekly.service:ExecStart=/bin/run-parts --report /etc/cron.weekly

Because of that, cron-daily.serice gets info "failed" state soon after system reboot.

Please resolve the problem to make systemd-cron more usable.
Thanks in advance for your help.

Wladimir Mutel (mwg)
summary: - hardcoded wrong path to run-parts in cron-daily.service
+ hardcoded wrong path to run-parts in cron-*.service
Revision history for this message
Alexandre Detiste (alexandre-detiste) wrote : Re: [Bug 1993037] [NEW] hardcoded wrong path to run-parts in cron-*.service

I think there was a bad debianutils in "Debian sid" that rightfuly never
migrated to "Debian testing", but because the weird way Ubuntu agressively
pulls things from sid it ended up there.

So WONTFIX. Upstream at least.
Ask you distro wizards.

Revision history for this message
Wladimir Mutel (mwg) wrote (last edit ): Re: hardcoded wrong path to run-parts in cron-*.service

Indeed, I checked debianutils file lists in Debian stable, testing and even unstable, and found run-parts in /bin/ there.
In Ubuntu Jammy, however, debianutils are of version 5.5-1ubuntu2 , and in their changelog, we see :

debianutils (5.0-1) unstable; urgency=medium
...
  [ Clint Adams ]
...
  * Move run-parts to /usr/bin and installkernel to /usr/sbin.

 -- Clint Adams <email address hidden> Tue, 17 Aug 2021 17:03:42 -0400

Same note we see in https://metadata.ftp-master.debian.org/changelogs//main/d/debianutils/debianutils_5.7-0.3_changelog , but a note about reverting these changes is seen nowhere.

Wladimir Mutel (mwg)
summary: - hardcoded wrong path to run-parts in cron-*.service
+ Ubuntu debianutils moved run-parts into /usr/bin, breaking systemd-cron
+ in the course
Revision history for this message
Alexandre Detiste (alexandre-detiste) wrote : Re: Ubuntu debianutils moved run-parts into /usr/bin, breaking systemd-cron in the course

  * Revert move to /usr (no. 5).
    closes: #992481, #992615, #992639, #992649

Revision history for this message
Wladimir Mutel (mwg) wrote (last edit ):

how expensive (by time and effort) would it be to add this revert as a SRU ?
I see this bug is a copy of https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=992649
Ubuntu imported debianutils exactly in this unlucky moment between v5.0 and v5.6
Also it would be very interesting to know the motivation of "move to /usr" which then had to be reverted.

Revision history for this message
Sebastien Bacher (seb128) wrote :

Thank you for your bug report, the description fails to mention the Ubuntu serie you are using? assuming it's 22.04 but please either use ubuntu-bug or include details in the futur

tags: added: rls-jj-incoming
Revision history for this message
Wladimir Mutel (mwg) wrote (last edit ): Re: Ubuntu 22.04/22.10, debianutils moved run-parts into /usr/bin, breaking systemd-cron in the course

Yes, it is 22.04, added this into the summary and description.

summary: - Ubuntu debianutils moved run-parts into /usr/bin, breaking systemd-cron
- in the course
+ Ubuntu 22.04, debianutils moved run-parts into /usr/bin, breaking
+ systemd-cron in the course
description: updated
summary: - Ubuntu 22.04, debianutils moved run-parts into /usr/bin, breaking
+ Ubuntu 22.04/22.10, debianutils moved run-parts into /usr/bin, breaking
systemd-cron in the course
summary: - Ubuntu 22.04/22.10, debianutils moved run-parts into /usr/bin, breaking
+ Ubuntu 22.04, debianutils moved run-parts into /usr/bin, breaking
systemd-cron in the course
Wladimir Mutel (mwg)
description: updated
Revision history for this message
Lukas Märdian (slyon) wrote :

Is this a clean installation of Ubuntu 22.04, or have you been upgrading your system from an older installation?

I wonder if you have the `usrmerge` package installed correctly?

Changed in debianutils (Ubuntu):
status: New → Incomplete
Revision history for this message
Wladimir Mutel (mwg) wrote :

My system was upgraded from 20.04 LTS installation, which in turn was upgraded from 18.04 and some number of LTS releases back (since probably 8.04 when it was upgraded from some older Debian).
I don't have separate /usr FS on this system, and usrmerge was not pulled as a dependency during any of the upgrades. Is this package essential now to solve the problem with debianutils ?

Revision history for this message
Steve Langasek (vorlon) wrote :

Are you missing the ubuntu-minimal package on your system?

Non-usrmerged systems are not supported in 22.04 and later.

Revision history for this message
Steve Langasek (vorlon) wrote :

What should have happened on upgrade from 20.04 to 22.04 is:

- upgrade of ubuntu-minimal pulls in usrmerge as a Recommended package
- usrmerge converts your system so that /bin is a symlink to /usr/bin, /sbin is a symlink to /usr/sbin, etc.
- resolving run-parts as either /bin/run-parts or /usr/bin/run-parts on the filesystem just works.

Revision history for this message
Wladimir Mutel (mwg) wrote (last edit ):

Since my upgrade from Debian to Ubuntu in about 2008, I never had ubuntu-minimal installed on my system, nor pulled in by some LTS-to-LTS upgrade.
As we see, Debian has fixed their https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=992649, because usrmerge was not a mandatory package at the time of the fix. Else they would say, "just install usrmerge and you will have everything fixed"
They make it mandatory in Debian Testing only on Sep 17th 2022, that is, after Ubuntu 22.04 LTS release (https://wiki.debian.org/UsrMerge).
And they did so by making init-system-helpers dependent on usrmerge (https://lists.debian.org/debian-devel-announce/2022/09/msg00001.html).
Should this move be copied by Ubuntu in their Jammy LTS release ?

Revision history for this message
Steve Langasek (vorlon) wrote :

Ok. The Ubuntu position is that ubuntu-minimal is the package that defines the smallest system considered Ubuntu. If you don't have ubuntu-minimal installed, you have a pile of packages, but not an Ubuntu system that we can provide support for.

It's impressive that you had a system that has been working continuously without ubuntu-minimal since 2008, I'm glad it's worked for you so far. But the resolution of this bug is that you should install the ubuntu-minimal package.

We will not add additional dependencies on the usrmerge package in an already-released LTS.

Also, if when you say "upgrade from Debian to Ubuntu" you mean cross-grading an existing Debian system, this is not a supported Ubuntu installation path, but if you happen to know whether you followed a cross-grading guide somewhere that fails to mention you should install ubuntu-minimal, I would try to get that guide updated so other users don't trip on such problems.

Changed in debianutils (Ubuntu):
status: Incomplete → Won't Fix
Changed in systemd-cron (Ubuntu):
status: New → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.