coreos/rpm-ostree

`tmp-is-dir` broken symlink for /tmp by default

jmpolom opened this issue · 1 comments

Describe the bug

tmp-is-dir: false appears to symlink /tmp to a non-existent directory by default, specifically /sysroot/tmp. This behavior is undocumented.

Reproduction steps

  1. Create a treefile to build an ostree/container from, and either set tmp-is-dir: false or leave it unset (default is false)
  2. Build the treefile into a container image
  3. Inspect the resulting container with (ex) podman run --rm registry.io/user/mycontainer file /tmp and you will observe the following output:
    /tmp: broken symbolic link to sysroot/tmp
    
  4. Can be confirmed with ls -lh / in the container, and absence of sysroot/tmp with ls -lh /sysroot

Expected behavior

At a minimum, this setting should not result in a broken symlink. The default probably should be true?

Actual behavior

A broken symlink for /tmp which is going to cause all manner of problem if you even manage to install the resulting tree/container or rebase to it.

System details

FCOS Stable, rpm-ostree 2024.2-2.fc39.x86_64

Additional information

No response

The default probably should be true?

Yes, the defaults are stupid; we could almost certainly just change this one and not break anything, but I've been trying to be very conservative around breaking changes.

There's other defaults to change, like boot-location: modules. That could all probably be wrapped up into a global edition: 2024 flag.