canonical / cloud-init

Official upstream for the cloud-init: cloud instance initialization
https://cloud-init.io/
Other
2.92k stars 871 forks source link

genisoimage may be going away #3838

Open ubuntu-server-builder opened 1 year ago

ubuntu-server-builder commented 1 year ago

This bug was originally filed in Launchpad as LP: #1915077

Launchpad details
affected_projects = ['cloud-utils (Ubuntu)']
assignee = None
assignee_name = None
date_closed = None
date_created = 2021-02-08T21:39:44.694094+00:00
date_fix_committed = None
date_fix_released = None
id = 1915077
importance = undecided
is_complete = False
lp_url = https://bugs.launchpad.net/cloud-init/+bug/1915077
milestone = None
owner = mwhudson
owner_name = Michael Hudson-Doyle
private = False
status = confirmed
submitter = mwhudson
submitter_name = Michael Hudson-Doyle
tags = []
duplicates = []

Launchpad user Michael Hudson-Doyle(mwhudson) wrote on 2021-02-08T21:39:44.694094+00:00

It seems that cdrkit, which is where genisoimage comes from, is dead upstream and is likely to be removed from debian: https://lists.debian.org/debian-cloud/2021/02/msg00011.html

Plenty of cloud-init docs and tutorials refer to genisoimage to create seed ISOs, it may be time to find something else.

ubuntu-server-builder commented 1 year ago

Launchpad user James Falcon(falcojr) wrote on 2021-02-15T14:21:28.240801+00:00

I asked Dan Watkins about this and received this reply:

In terms of scope, cloud-init does not Depend on genisoimage but does recommend its use in documentation. cloud-image-utils (built from cloud-utils) does Depend directly on it.

It sounds like, if it's going away, genisoimage is going away in bookworm, the Debian stable release after the one that just went into freeze (bullseye). bullseye goes into hard freeze (2021-03-12[0]) after hirsute's Debian import freeze (2021-02-25[1]), so there's no chance that it will affect hirsute. If bullseye is released before ~August (Debian don't have set release dates, they release once it's Ready (TM)), and genisoimage is removed from testing soon after that release, then it may affect us is in I.

So from a "when will the wheels fall off in Ubuntu" perspective, we (a) have a decent runway, and (b) will only be affected in the release whose development is open after the removal happens in Debian.

That said, cloud-image-utils is in main[2] and therefore all of its dependencies also need to be in main, so we are not free to choose our own replacement unconstrained. We certainly won't be alone in needing to choose a replacement, apt rdepends genisoimage indicates that, amongst others, ubuntu-desktop and livecd-rootfs (which is the package used to build not only live CD root filesystems but also ~every other Ubuntu image). IMO, it's not really our place to determine the correct replacement here: this is a tool used across different parts of Ubuntu, so Foundations are likely better placed than we.

From an upstream cloud-init perspective, this indicates to me that we shouldn't be recommending genisoimage to our users in our documentation. The sooner we can document the new method of doing this, the fewer users will be broken by its future removal (whether in Debian, Ubuntu or whenever their distro decides to follow suite). Of course, we should align the docs with what Ubuntu is choosing, so there's a (task) dependency there.

[0] https://wiki.debian.org/DebianBullseye [1] https://discourse.ubuntu.com/t/hirsute-hippo-release-schedule/18539 [2] Some details at https://wiki.ubuntu.com/MainInclusionProcess; TL;DR, we support main both in security terms and commercially, so anything that goes into main has to pass muster in terms of supportability.

ubuntu-server-builder commented 1 year ago

Launchpad user Steve Langasek(vorlon) wrote on 2021-02-15T22:18:17+00:00

On Mon, Feb 15, 2021 at 02:21:28PM -0000, James Falcon wrote:

That said, cloud-image-utils is in main[2] and therefore all of its dependencies also need to be in main, so we are not free to choose our own replacement unconstrained. We certainly won't be alone in needing to choose a replacement, apt rdepends genisoimage indicates that, amongst others, ubuntu-desktop and livecd-rootfs (which is the package used to build not only live CD root filesystems but also ~every other Ubuntu image). IMO, it's not really our place to determine the correct replacement here: this is a tool used across different parts of Ubuntu, so Foundations are likely better placed than we.

We use xorriso in place of genisoimage for Ubuntu ISO generation. I'm actually not sure why genisoimage is a dependency of livecd-rootfs, since I don't believe we have any ISOs as output of livecd-rootfs itself.

The ubuntu-meta dependency is being dropped; the seed change has already been merged, and a new ubuntu-desktop is waiting in hirsute-proposed.

-- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developer https://www.debian.org/ slangasek@ubuntu.com vorlon@debian.org

ubuntu-server-builder commented 1 year ago

Launchpad user Dan Watkins(oddbloke) wrote on 2021-02-16T17:57:56+00:00

On Mon, Feb 15, 2021 at 10:18:17PM -0000, Steve Langasek wrote:

On Mon, Feb 15, 2021 at 02:21:28PM -0000, James Falcon wrote:

That said, cloud-image-utils is in main[2] and therefore all of its dependencies also need to be in main, so we are not free to choose our own replacement unconstrained. We certainly won't be alone in needing to choose a replacement, apt rdepends genisoimage indicates that, amongst others, ubuntu-desktop and livecd-rootfs (which is the package used to build not only live CD root filesystems but also ~every other Ubuntu image). IMO, it's not really our place to determine the correct replacement here: this is a tool used across different parts of Ubuntu, so Foundations are likely better placed than we.

We use xorriso in place of genisoimage for Ubuntu ISO generation.

OK, that's clearly what we should be moving to; thanks!

I'm actually not sure why genisoimage is a dependency of livecd-rootfs, since I don't believe we have any ISOs as output of livecd-rootfs itself.

It's used by the CPC Vagrant build scripts to... generate a cloud-init seed ISO. (=

(Who could have introduced that? innocent whistling)

The ubuntu-meta dependency is being dropped; the seed change has already been merged, and a new ubuntu-desktop is waiting in hirsute-proposed.

OK, cool; are we looking to drop it (from main) this cycle? (i.e. Do we need to work on this ~now?)

ubuntu-server-builder commented 1 year ago

Launchpad user Steve Langasek(vorlon) wrote on 2021-02-17T21:48:45+00:00

On Tue, Feb 16, 2021 at 05:57:56PM -0000, Dan Watkins wrote:

I'm actually not sure why genisoimage is a dependency of livecd-rootfs, since I don't believe we have any ISOs as output of livecd-rootfs itself.

It's used by the CPC Vagrant build scripts to... generate a cloud-init seed ISO. (=

(Who could have introduced that? innocent whistling)

Hah! ok.

The ubuntu-meta dependency is being dropped; the seed change has already been merged, and a new ubuntu-desktop is waiting in hirsute-proposed.

OK, cool; are we looking to drop it (from main) this cycle? (i.e. Do we need to work on this ~now?)

There's no hurry, we just wanted people to be in the loop sooner rather than later. I think we could reasonably promote xorriso to main as soon as there was a reverse-dependency demanding it.