Skip to content

compose postprocess not handling rpm db in /usr/lib/sysimage #5462

@alexlarsson

Description

@alexlarsson

In automotive, we're using the "traditional" osbuild approach to building an ostree image, similar to say fedora-ostree-image.mpp.yaml. This does basically a dnf install $rpms, and then rpm-ostree compose postprocess to create the tree which is made the ostree commit.

In cs9, after the dnf install the rpm db is in /var/lib/rpm, and all works fine. In the postprocess stage, this is moved to /usr/share/rpm and the rpm config is updated to read from ther.

However, in cs10, the rpm db is in /usr/lib/sysimage/rpm, and /var/lib/rpm is a symlink to that.
When we reach rpmostree_rootfs_postprocess_common() and try to move /var/lib/rpm it sees its a symlink and not a directory, so it does nothing, but then it changes the rpm config anyway, even though /usr/share/rpm doesn't even exist.

Long term i think we want to just keep using /usr/lib/sysimage/rpm (as in #5455), but for now this should probably be fixed to detect this case and move from /usr/lib/sysimage/rpm to /var/lib/rpm.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions