Switch from usrmerge to usr-is-merged

Bug #2027712 reported by Luca Boccassi
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
cloud-images
Confirmed
Undecided
Unassigned
init-system-helpers (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Last year in Debian we added the 'usr-is-merged' binary package to the 'usrmerge' source package. Its purpose is to be an empty metapackage that simply asserts that the system is usr-merged. This is done via the postinst. Contrary to usrmerge, it doesn't ship any additional code, perform any additional action or have any additional dependencies.

In Debian, we have an essential package (init-system-helpers) that depends on usrmerge | usr-is-merged, so that on upgrade for already installed images usrmerge is pulled in and all systems are forcibly merged.

But for new images being built, the boostrap (eg: debootstrap) process will instead pull in usr-is-merged, which will save space and reduce the overall code footprint.

The problem in Ubuntu is that while usrmerge is in main, usr-is-merged is in universe, so unless the bootstrap tool enables universe for the initial bootstrap phase, usrmerge is always pulled in.

Refs:

https://packages.ubuntu.com/mantic/usr-is-merged
https://packages.ubuntu.com/mantic/usrmerge
https://packages.ubuntu.com/mantic/init-system-helpers

Tags: cpc-2836

Related branches

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Thanks Luca,
I think it is no problem at all to promote usr-is-merged to main.

And while this would only save a few bytes on a new image we have to be clear that any win is a win.
Especially since so many other changes keep increasing image size.

Currently seeded into the ISO builds:
usrmerge (from usrmerge) is seeded in:
  edubuntu: daily-live
  kubuntu: daily-live
  lubuntu: daily-live
  ubuntu-base: daily
  ubuntu-budgie: daily-legacy, daily-live
  ubuntu-mate: daily-live
  ubuntu-server: daily-live, daily-preinstalled
  ubuntu-unity: daily-live
  ubuntu: daily-canary, daily-legacy, daily-live, daily-preinstalled
  ubuntucinnamon: daily-live
  ubuntukylin: daily-live
  ubuntustudio: dvd
  xubuntu: daily-live, daily-minimal

IMHO We'd actually want to keep both in main in any case and should do so to stay there independent to their seeding in an iso/image to avoid noise of moving in/out based on changes to their build.

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Xnox already ensured back in 2021 that it can be uninstalled [1]

But as outlined here, in some cases e.g. when a new image is built the new way, then it does never need to be installed in the first place.

I'm trying to not mess up the builds by removing it from `required` yet,
but I'll proposed it to be

And - so far - while it is removable, our images e.g. cloudimages still have it installed.
$ dpkg -l | grep merge
ii usrmerge 35ubuntu1 all Convert the system to the merged /usr directories scheme

Here [2] is a branch for the seeds which would get that started and once landed and promoted would allow to create images that do not have usrmerge nor ever need it.

But it is for foundations (owns usrmerge) and CPC (builds the images) to make the final call, I'm just trying to help to make this a clear case. But there could be plans, intents or details that elude me :-)

[1]: https://git.launchpad.net/~ubuntu-core-dev/ubuntu-seeds/+git/platform/commit/?id=e07ef4944b623670878dfb6cd35df5399605584e
[2]: https://code.launchpad.net/~paelzer/ubuntu-seeds/+git/platform/+merge/446838

Changed in cloud-images:
status: New → Confirmed
tags: added: cpc-2836
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

FYI Change of the way this shall be tackled.

Per Steves very helpful comment in the MR to the seeds:
"I don't think we want either of these packages in main. They are transitional packages; while the transition is still ongoing in Debian, in Ubuntu the transition completed two LTS cycles ago.

We should just patch init-system-helpers in Ubuntu to drop the dependency which is no longer needed."

@Foundations
I'm adding a task for init-system-helpers to represent the work for that change.

@CPC
The cloud-image tasks can stay to eventually verify that the image builds (after that change to init-system-helpers) really have neither installed.

Revision history for this message
Luca Boccassi (bluca) wrote :

Thanks - up to you how to solve it of course, but please bear in mind that you'll also need to patch debootstrap - and debootstrap from other distro (say, from Debian build an Ubuntu image) might break as a result

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package init-system-helpers - 1.65.2ubuntu1

---------------
init-system-helpers (1.65.2ubuntu1) mantic; urgency=medium

  * Drop dependency on usrmerge; this transition is long completed in
    Ubuntu. LP: #2027712.

 -- Steve Langasek <email address hidden> Mon, 17 Jul 2023 08:32:00 -0700

Changed in init-system-helpers (Ubuntu):
status: New → Fix Released
Revision history for this message
Luca Boccassi (bluca) wrote :

Do you intend to backport the init-system-helpers to current short-term releases and Jammy? It would make our life easier, so that we don't need to special-case by release when building images

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.